src/main/java/com/whyc/constant/SqlConstant.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/controller/BatteryDataController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/dto/BadBattMonDTO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/mapper/BatteryDataMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/BatteryDataService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/BatteryDataMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/whyc/constant/SqlConstant.java
@@ -38,4 +38,15 @@ " `create_time` DATETIME NULL,\n" + " PRIMARY KEY (`id`));"; /**用户对应的电池组id*/ public static String BattGroupIdsOfUser =" (select distinct db_battinf.tb_battinf.battgroupid " + "from " + "db_battinf.tb_battinf," + "db_user.tb_user_battgroup_baojigroup_battgroup," + "db_user.tb_user_battgroup_baojigroup_usr," + "db_user.tb_user_inf " + "where db_user.tb_user_battgroup_baojigroup_battgroup.BattGroupId=db_battinf.tb_battinf.BattGroupId " + "and db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id=db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id " + "and db_user.tb_user_inf.uid=db_user.tb_user_battgroup_baojigroup_usr.uid " + "and db_user.tb_user_inf.uid=? )"; } src/main/java/com/whyc/controller/BatteryDataController.java
@@ -34,6 +34,12 @@ return service.getBatteryCap(userId); } @GetMapping("capStatus") @ApiOperation(value = "电池单体容量状态") public Response monCapStatus(@RequestParam Integer userId){ return service.getMonCapStatus(userId); } @GetMapping("monVol") @ApiOperation(value = "单体电压统计") public Response getMonVol(@RequestParam Integer userId){ @@ -52,9 +58,6 @@ return service.getMonRes(userId); } /** * TODO:单体容量统计,统计格式待定,如何统计待确定 */ @GetMapping("monCap") @ApiOperation(value = "单体容量统计") public Response getMonCap(@RequestParam Integer userId){ src/main/java/com/whyc/dto/BadBattMonDTO.java
New file @@ -0,0 +1,23 @@ package com.whyc.dto; /**落后电池单体*/ public class BadBattMonDTO { private Integer note; private Integer num; public Integer getNote() { return note; } public void setNote(Integer note) { this.note = note; } public Integer getNum() { return num; } public void setNum(Integer num) { this.num = num; } } src/main/java/com/whyc/mapper/BatteryDataMapper.java
@@ -1,5 +1,6 @@ package com.whyc.mapper; import com.whyc.dto.BadBattMonDTO; import com.whyc.dto.BatteryInfo; import com.whyc.dto.DataAnalysisFloatDTO; import com.whyc.pojo.BatteryEndurance; @@ -13,4 +14,7 @@ List<BatteryRTState> getBatteryCap(Integer userId); Integer getTotalMonNum(Integer userId); List<BadBattMonDTO> getBadMonOfCapAlarm(Integer userId); } src/main/java/com/whyc/service/BatteryDataService.java
@@ -1,10 +1,8 @@ package com.whyc.service; import com.whyc.dto.AnalysisMonCapDTO; import com.whyc.dto.BatteryInfo; import com.whyc.dto.Response; import com.whyc.constant.AlarmConstant; import com.whyc.dto.*; import com.whyc.mapper.*; import com.whyc.dto.AnalysisMonFieldDTO; import com.whyc.pojo.BatteryEndurance; import com.whyc.pojo.BatteryRTState; import com.whyc.pojo.Tables; @@ -44,7 +42,20 @@ /**按时间阶段统计续航*/ private static Map enduranceAnalysis(List<BatteryEndurance> enduranceList, List<Integer> times) { Map<String,Integer> map = new HashMap<>(); Map<String,Integer> map = new LinkedHashMap<>(); //初始化续航分类 for (int i = 0; i < times.size(); i++) { if(i ==0 ){ map.put("续航"+times.get(0)+"小时内",0); } else if(i == times.size()-1){ map.put("续航"+times.get(i-1)+"小时到"+times.get(i)+"小时",0); map.put("续航"+times.get(times.size()-1)+"小时以上",0); }else { map.put("续航" + times.get(i-1) + "小时到" + times.get(i) + "小时", 0); } } for (int i = 0; i < enduranceList.size(); i++) { //每一个具体的续航进行分组 @@ -116,6 +127,44 @@ return maps; } /** * 落后单体统计,统计各种类型所占比例: * 容量告警:单体容量告警 * 容量更换:单体容量更换 * 总电池单体-上面两种:单体容量健康 */ public Response getMonCapStatus(Integer userId) { //初始化 单体容量健康 单体容量告警 单体容量更换 和 map Map<String,Integer> monCapMap = new HashMap(); Integer monCapGood = 0; Integer monCapAlarm = 0; Integer monCapChange = 0; //查询用户管理的总单体数 Integer totalMonNum = mapper.getTotalMonNum(userId); //查询用户管理的落后单体数 List<BadBattMonDTO> list = mapper.getBadMonOfCapAlarm(userId); if(!list.isEmpty()) { for (int i = 0; i < list.size(); i++) { //容量告警 if (list.get(i).getNote() == AlarmConstant.Alarm_CapAlarm) { monCapAlarm = list.get(i).getNum(); } //容量更换 else { monCapChange = list.get(i).getNum(); } } } monCapGood = totalMonNum - monCapAlarm -monCapChange ; monCapMap.put("单体容量健康",monCapGood); monCapMap.put("单体容量告警",monCapAlarm); monCapMap.put("单体容量更换",monCapChange); return new Response().set(1,monCapMap); } /**单体信息统计*/ public List<AnalysisMonFieldDTO> monFieldStatistics(String filedName, String fieldName2) { //查询所有的电池组 src/main/resources/mapper/BatteryDataMapper.xml
@@ -52,4 +52,34 @@ <select id="getMonVolAndTemp" resultType="com.whyc.dto.DataAnalysisFloatDTO"></select> <select id="getMonRes" resultType="com.whyc.dto.DataAnalysisFloatDTO"></select> <select id="getMonCap" resultType="com.whyc.dto.DataAnalysisFloatDTO"></select> <select id="getTotalMonNum" resultType="java.lang.Integer"> SELECT SUM(moncount) AS totalMonNum FROM db_battinf.tb_battinf, db_user.tb_user_battgroup_baojigroup_battgroup, db_user.tb_user_battgroup_baojigroup_usr, db_user.tb_user_inf WHERE db_user.tb_user_battgroup_baojigroup_battgroup.BattGroupId = db_battinf.tb_battinf.BattGroupId AND db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id = db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id AND db_user.tb_user_inf.uid = db_user.tb_user_battgroup_baojigroup_usr.uid AND db_user.tb_user_inf.uid = #{userId} </select> <select id="getBadMonOfCapAlarm" resultType="com.whyc.dto.BadBattMonDTO"> SELECT note,count(distinct battgroupid,mon_num) as num FROM web_site.tb_badbatt_mon where note in (119010,119011) and battgroupid in ( select distinct db_battinf.tb_battinf.battgroupid from db_battinf.tb_battinf,db_user.tb_user_battgroup_baojigroup_battgroup,db_user.tb_user_battgroup_baojigroup_usr,db_user.tb_user_inf where db_user.tb_user_battgroup_baojigroup_battgroup.BattGroupId=db_battinf.tb_battinf.BattGroupId and db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id=db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id and db_user.tb_user_inf.uid=db_user.tb_user_battgroup_baojigroup_usr.uid and db_user.tb_user_inf.uid=#{userId} ) group by note </select> </mapper>