whycxzp
2023-03-15 eaef8ae825f698283b75c34d97924d636c3a25bb
包机组设置为班组,提前校验是否站点重复
7个文件已修改
128 ■■■■■ 已修改文件
src/main/java/com/whyc/controller/BattdischargePlanController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/BaoJiGroupBattGroupMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/BaojiGroupBattGroup.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BaoJiGroupBattGroupService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BaoJiGroupService.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BattdischargePlanService.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BaojiGroupBattGroupMapper.xml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/BattdischargePlanController.java
@@ -60,4 +60,22 @@
    public Response addPro(@RequestBody List<BattdischargePlan> list){
        return service.addPro(list);
    }
    @ApiOperation("new-2023-03-15 创建放电计划")
    @GetMapping("generateDischargePlan")
    public Response insertGenerateDischargePlan(){
        return service.generateDischargePlan();
    }
    /**
     * 调整放电计划的原则:
     * 1.支持相同类型的站点类型互换,优先推荐同组,其次其他组
     * 2.若站点互换无法满足要求,可以见缝插针,插入到后面某天.
     * @return TODO
     */
    @ApiOperation("new-2023-03-15 调整放电计划")
    @PutMapping("updateDischargePlan")
    public Response updateDischargePlan(){
        return null;
    }
}
src/main/java/com/whyc/mapper/BaoJiGroupBattGroupMapper.java
@@ -1,5 +1,6 @@
package com.whyc.mapper;
import com.whyc.pojo.BaoJiGroup;
import com.whyc.pojo.Battinf;
import com.whyc.pojo.BaojiGroupBattGroup;
import com.whyc.pojo.UserInf;
@@ -30,4 +31,9 @@
    void deleteStationList(List<BaojiGroupBattGroup> baoJiGroupBattGroupList);
    List<Battinf> getStationInfoList(Long uId,String stationName1);
    List<BaojiGroupBattGroup> getBaoJiGroupListWithinBattGroupList();
    List<BaojiGroupBattGroup> getStationIdListWithDischargePlanFlag();
}
src/main/java/com/whyc/pojo/BaojiGroupBattGroup.java
@@ -10,6 +10,8 @@
import lombok.ToString;
import org.apache.ibatis.type.Alias;
import java.util.List;
@Data
@ApiModel(value="BaojiGroupBattGroup", description="")
@@ -35,6 +37,17 @@
    @TableField(exist = false)
    private Integer devId;
    @TableField(exist = false)
    private List<Battinf> battGroupList;
    @TableField(exist = false)
    private String stationName1;
    @TableField(exist = false)
    private String stationName2;
    @TableField(exist = false)
    private String stationName3;
    @TableField(exist = false)
    private String stationName5;
    public BaojiGroupBattGroup(Integer baojiGroupId, Integer stationId, Integer battGroupId) {
        this.baojiGroupId = baojiGroupId;
        this.stationId = stationId;
src/main/java/com/whyc/service/BaoJiGroupBattGroupService.java
@@ -5,6 +5,7 @@
import com.whyc.dto.Response;
import com.whyc.mapper.BaoJiGroupBattGroupMapper;
import com.whyc.mapper.BattInfMapper;
import com.whyc.pojo.BaoJiGroup;
import com.whyc.pojo.BaojiGroupBattGroup;
import com.whyc.pojo.Battinf;
import com.whyc.pojo.UserInf;
@@ -94,4 +95,8 @@
    public List<Battinf> getStationInfoList(Long uId, String stationName1) {
        return mapper.getStationInfoList(uId,stationName1);
    }
    public List<BaojiGroupBattGroup> getBaoJiGroupListWithinBattGroupList() {
        return mapper.getBaoJiGroupListWithinBattGroupList();
    }
}
src/main/java/com/whyc/service/BaoJiGroupService.java
@@ -1,5 +1,6 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.whyc.dto.Response;
@@ -10,10 +11,13 @@
import com.whyc.pojo.BaoJiGroup;
import com.whyc.pojo.BaoJiGroupUser;
import com.whyc.pojo.BaojiGroupBattGroup;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class BaoJiGroupService {
@@ -29,6 +33,9 @@
    @Resource
    private CommonMapper commonMapper;
    @Autowired
    private BattInfService battInfService;
    public void add(String groupName) {
        BaoJiGroup baoJiGroup = new BaoJiGroup();
@@ -59,10 +66,41 @@
        return mapper.selectList(null);
    }
    /**
     * 每次设置放电标识时,提前校验组内是否与其他标识班组存在相同站点,存在则提示,不修改
     * @param baoJiGroupId
     * @param flag
     * @return
     */
    public Response updateDischargeFlag(Long baoJiGroupId, Integer flag) {
        if(flag==1) {
            //查询要设置的包机组的站点
            QueryWrapper<BaojiGroupBattGroup> query = Wrappers.query();
            query.select("baoji_group_id", "StationId").eq("baoji_group_id", baoJiGroupId);
            List<BaojiGroupBattGroup> stationIdList = BaoJiGroupBattGroupMapper.selectList(query);
            stationIdList = stationIdList.stream().distinct().collect(Collectors.toList());
            //查询其他的组,包含的所有站点
            List<BaojiGroupBattGroup> stationIdListWithDischargePlanFlag = BaoJiGroupBattGroupMapper.getStationIdListWithDischargePlanFlag();
            stationIdListWithDischargePlanFlag = stationIdListWithDischargePlanFlag.stream().distinct().collect(Collectors.toList());
            List<BaojiGroupBattGroup> repeatedStationIdList = new LinkedList<>();
            for (int i = 0; i < stationIdList.size(); i++) {
                BaojiGroupBattGroup baojiGroupBattGroup = stationIdList.get(i);
                for (int j = 0; j < stationIdListWithDischargePlanFlag.size(); j++) {
                    BaojiGroupBattGroup baojiGroupBattGroupWithFlag = stationIdListWithDischargePlanFlag.get(j);
                    if (baojiGroupBattGroupWithFlag.getStationId().equals(baojiGroupBattGroup.getStationId())) {
                        repeatedStationIdList.add(baojiGroupBattGroupWithFlag);
                        break;
                    }
                }
            }
            //查询重复站点的信息
            if (repeatedStationIdList.size() > 0) {
                return new Response().setII(1, false, repeatedStationIdList, "设置失败");
            }
        }
        UpdateWrapper<BaoJiGroup> update = Wrappers.update();
        update.set("discharge_plan_flag",flag).eq("baoji_group_id",baoJiGroupId);
        mapper.update(null,update);
        return new Response().setII(1,"设置完成");
        return new Response().set(1,true,"设置完成");
    }
}
src/main/java/com/whyc/service/BattdischargePlanService.java
@@ -7,10 +7,7 @@
import com.whyc.mapper.BattInfMapper;
import com.whyc.mapper.BattRtstateMapper;
import com.whyc.mapper.BattdischargePlanMapper;
import com.whyc.pojo.BattMapInformation;
import com.whyc.pojo.BattRtstate;
import com.whyc.pojo.BattdischargePlan;
import com.whyc.pojo.UserInf;
import com.whyc.pojo.*;
import com.whyc.util.ActionUtil;
import org.springframework.stereotype.Service;
@@ -28,6 +25,9 @@
    @Resource
    private BattRtstateMapper rtstateMapper;
    @Resource
    private BaoJiGroupBattGroupService baoJiGroupBattGroupService;
    //查询
    public Response serchByCondition(BattdischargePlan battdischargePlan) {
@@ -182,4 +182,18 @@
        return planRes;
    }
    /**
     * 原则:
     * 0.每个站点只取第一组电池参与放电计划
     * 1.每天最多1个节点站,每天最多3个放电站点
     * 2.各班组尽量扁平,尽量保证各个组完全放电完成时间接近
     * @return
     */
    public Response generateDischargePlan() {
        //查询所有可用的组以及每个组的站点
        List<BaojiGroupBattGroup> baoJiGroupListWithinBattGroupList = baoJiGroupBattGroupService.getBaoJiGroupListWithinBattGroupList();
        return null;
    }
}
src/main/resources/mapper/BaojiGroupBattGroupMapper.xml
@@ -7,6 +7,18 @@
        <result column="StationId" jdbcType="INTEGER" property="stationId"/>
        <result column="BattGroupId" jdbcType="INTEGER" property="battGroupId"/>
    </resultMap>
    <resultMap id="Map_BaojiGroupBattGroup" type="BaojiGroupBattGroup">
        <result column="baoji_group_id" jdbcType="INTEGER" property="baojiGroupId"/>
        <result column="baoji_group_name" jdbcType="INTEGER" property="baojiGroupName"/>
<!--        <collection  ofType="BattInf" property="battGroupList" select="com.whyc.mapper.BattInfMapper.getFirstBattGroupByStationId" column="StationId">-->
        <collection  ofType="BattInf" property="battGroupList">
            <result column="StationId" property="stationId"/>
            <result column="BattGroupId" property="battGroupId"/>
            <result column="StationName" property="stationName"/>
            <result column="BattGroupName" property="battGroupName"/>
            <result column="NodeStation" property="nodeStation"/>
        </collection>
    </resultMap>
    <sql id="Base_Column_List">
        num, baoji_group_id, StationId, BattGroupId
    </sql>
@@ -75,6 +87,18 @@
        </if>
        order by stationName
    </select>
    <select id="getBaoJiGroupListWithinBattGroupList" resultMap="Map_BaojiGroupBattGroup">
        SELECT gb.baoji_group_id,g.baoji_group_name,gb.StationId,b.BattGroupId,b.StationName,b.BattGroupName,b.NodeStation FROM db_user.tb_user_battgroup_baojigroup_battgroup gb,db_user.tb_user_battgroup_baojigroup g,db_battinf.tb_battinf b
        where g.baoji_group_id = gb.baoji_group_id and gb.StationId = b.StationId
        and g.discharge_plan_flag = 1
        and b.GroupIndexInFBSDevice = 0
        and b.FBSDeviceName like "%BTSE"
    </select>
    <select id="getStationIdListWithDischargePlanFlag" resultType="com.whyc.pojo.BaojiGroupBattGroup">
        SELECT gb.baoji_group_id,gb.StationId,g.baoji_group_name,b.StationName1,b.StationName2,b.StationName3,b.StationName5  FROM db_user.tb_user_battgroup_baojigroup g,db_user.tb_user_battgroup_baojigroup_battgroup gb,db_battinf.tb_battinf b
        where g.baoji_group_id = gb.baoji_group_id and gb.StationId = b.StationId
        and g.discharge_plan_flag = 1 and gb.BattGroupId!=0
    </select>
    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
        delete from tb_user_battgroup_baojigroup_battgroup