src/main/java/com/whyc/controller/BattdischargePlanController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/mapper/BaoJiGroupBattGroupMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/pojo/BaojiGroupBattGroup.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/BaoJiGroupBattGroupService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/BaoJiGroupService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/BattdischargePlanService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/BaojiGroupBattGroupMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | 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