src/main/java/com/whyc/controller/BatteryDataController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/dto/BatteryInfo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/mapper/BatteryDataMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/mapper/BatteryResDataMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/mapper/BatteryTestDataMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/BatteryDataService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/BatteryResDataMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/BatteryTestDataMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/whyc/controller/BatteryDataController.java
@@ -34,11 +34,16 @@ return service.getBatteryCap(userId); } /**这个接口后续需要考虑是否分开电压统计和温度统计*/ @GetMapping("monVolAndTemp") @ApiOperation(value = "单体电压和温度统计") public Response getMonVolAndTemp(@RequestParam Integer userId){ return service.getMonVolAndTemp(userId); @GetMapping("monVol") @ApiOperation(value = "单体电压统计") public Response getMonVol(@RequestParam Integer userId){ return service.getMonVol(userId); } @GetMapping("monTemp") @ApiOperation(value = "单体温度统计") public Response getMonTemp(@RequestParam Integer userId){ return service.getMonTemp(userId); } @GetMapping("monRes") src/main/java/com/whyc/dto/BatteryInfo.java
@@ -5,9 +5,47 @@ */ public class BatteryInfo { private String stationName; private String batteryGroupIds; private Integer batteryStatus; private Integer count; private Integer batteryGroupId; private Float monVolStd; private Float monCapStd; private Float maxTestCurr; private Float minTestCurr; private Float avgTestCurr; private Float maxTestCap; private Float minTestCap; private Float avgTestCap; private Float maxTestVol; private Float minTestVol; private Float avgTestVol; public String getStationName() { return stationName; } public void setStationName(String stationName) { this.stationName = stationName; } public String getBatteryGroupIds() { return batteryGroupIds; } public void setBatteryGroupIds(String batteryGroupIds) { this.batteryGroupIds = batteryGroupIds; } public Integer getBatteryStatus() { return batteryStatus; @@ -24,4 +62,100 @@ public void setCount(Integer count) { this.count = count; } public Integer getBatteryGroupId() { return batteryGroupId; } public void setBatteryGroupId(Integer batteryGroupId) { this.batteryGroupId = batteryGroupId; } public Float getMonVolStd() { return monVolStd; } public void setMonVolStd(Float monVolStd) { this.monVolStd = monVolStd; } public Float getMonCapStd() { return monCapStd; } public void setMonCapStd(Float monCapStd) { this.monCapStd = monCapStd; } public Float getMaxTestCurr() { return maxTestCurr; } public void setMaxTestCurr(Float maxTestCurr) { this.maxTestCurr = maxTestCurr; } public Float getMinTestCurr() { return minTestCurr; } public void setMinTestCurr(Float minTestCurr) { this.minTestCurr = minTestCurr; } public Float getAvgTestCurr() { return avgTestCurr; } public void setAvgTestCurr(Float avgTestCurr) { this.avgTestCurr = avgTestCurr; } public Float getMaxTestCap() { return maxTestCap; } public void setMaxTestCap(Float maxTestCap) { this.maxTestCap = maxTestCap; } public Float getMinTestCap() { return minTestCap; } public void setMinTestCap(Float minTestCap) { this.minTestCap = minTestCap; } public Float getAvgTestCap() { return avgTestCap; } public void setAvgTestCap(Float avgTestCap) { this.avgTestCap = avgTestCap; } public Float getMaxTestVol() { return maxTestVol; } public void setMaxTestVol(Float maxTestVol) { this.maxTestVol = maxTestVol; } public Float getMinTestVol() { return minTestVol; } public void setMinTestVol(Float minTestVol) { this.minTestVol = minTestVol; } public Float getAvgTestVol() { return avgTestVol; } public void setAvgTestVol(Float avgTestVol) { this.avgTestVol = avgTestVol; } } src/main/java/com/whyc/mapper/BatteryDataMapper.java
@@ -1,5 +1,6 @@ package com.whyc.mapper; import com.whyc.dto.BatteryInfo; import com.whyc.dto.DataAnalysisFloatDTO; import com.whyc.pojo.BatteryEndurance; import com.whyc.pojo.BatteryRTState; @@ -12,12 +13,4 @@ List<BatteryRTState> getBatteryCap(Integer userId); //TODO List<DataAnalysisFloatDTO> getMonVolAndTemp(Integer userId); //TODO DataAnalysisFloatDTO getMonRes(Integer userId); //TODO DataAnalysisFloatDTO getMonCap(Integer userId); } src/main/java/com/whyc/mapper/BatteryResDataMapper.java
New file @@ -0,0 +1,12 @@ package com.whyc.mapper; import com.whyc.dto.BatteryInfo; import com.whyc.dto.DataAnalysisFloatDTO; import java.util.List; public interface BatteryResDataMapper { List<BatteryInfo> getResStationAndBatteryGroupIds(Integer userId); DataAnalysisFloatDTO getResStatisticsByBattGroupIds(Integer[] batteryGroupIds); } src/main/java/com/whyc/mapper/BatteryTestDataMapper.java
New file @@ -0,0 +1,16 @@ package com.whyc.mapper; import com.whyc.dto.BatteryInfo; import com.whyc.dto.DataAnalysisFloatDTO; import java.util.List; public interface BatteryTestDataMapper { List<BatteryInfo> getStationAndBatteryGroupIds(Integer userId); DataAnalysisFloatDTO getStatisticsByBattGroupIds(Integer[] ids,String field); List<BatteryInfo> getCapStatisticsByBattGroupIds(Integer[] ids); List<BatteryInfo> getVolAndCapStd(Integer[] ids); } src/main/java/com/whyc/service/BatteryDataService.java
@@ -1,8 +1,11 @@ package com.whyc.service; import com.whyc.dto.BatteryInfo; import com.whyc.dto.DataAnalysisFloatDTO; import com.whyc.dto.Response; import com.whyc.mapper.BatteryDataMapper; import com.whyc.mapper.BatteryResDataMapper; import com.whyc.mapper.BatteryTestDataMapper; import com.whyc.pojo.BatteryEndurance; import com.whyc.pojo.BatteryRTState; import com.whyc.util.MathUtil; @@ -16,6 +19,12 @@ @Resource private BatteryDataMapper mapper; @Resource private BatteryResDataMapper resMapper; @Resource private BatteryTestDataMapper testDataMapper; public Response getEndurance(Integer userId) { List<BatteryEndurance> enduranceList = mapper.endurance(userId); @@ -98,19 +107,71 @@ return maps; } public Response getMonVolAndTemp(Integer userId) { List<DataAnalysisFloatDTO> dataList= mapper.getMonVolAndTemp(userId); return new Response<>().set(1,dataList); public Response getMonVol(Integer userId) { HashMap<String, Object> resMap = new HashMap<>(); List<BatteryInfo> batteryInfos = testDataMapper.getStationAndBatteryGroupIds(userId); for (BatteryInfo temp:batteryInfos) { //根据BattGroupIds查询到对应的数值 String[] batteryGroupIds = temp.getBatteryGroupIds().split(","); Integer[] ids = new Integer[batteryGroupIds.length]; for (int i = 0; i < batteryGroupIds.length; i++) { ids[i] = Integer.parseInt(batteryGroupIds[i]); } DataAnalysisFloatDTO dataStatistics = testDataMapper.getStatisticsByBattGroupIds(ids,"mon_vol"); resMap.put(temp.getStationName(),dataStatistics); } return new Response<>().set(1,resMap); } public Response getMonTemp(Integer userId) { HashMap<String, Object> resMap = new HashMap<>(); List<BatteryInfo> batteryInfos = testDataMapper.getStationAndBatteryGroupIds(userId); for (BatteryInfo temp:batteryInfos) { //根据BattGroupIds查询到对应的数值 String[] batteryGroupIds = temp.getBatteryGroupIds().split(","); Integer[] ids = new Integer[batteryGroupIds.length]; for (int i = 0; i < batteryGroupIds.length; i++) { ids[i] = Integer.parseInt(batteryGroupIds[i]); } DataAnalysisFloatDTO dataStatistics = testDataMapper.getStatisticsByBattGroupIds(ids,"mon_tmp"); resMap.put(temp.getStationName(),dataStatistics); } return new Response<>().set(1,resMap); } public Response getMonRes(Integer userId) { DataAnalysisFloatDTO data= mapper.getMonRes(userId); return new Response<>().set(1,data); HashMap<String, Object> resMap = new HashMap<>(); List<BatteryInfo> batteryInfos = resMapper.getResStationAndBatteryGroupIds(userId); for (BatteryInfo temp:batteryInfos) { //根据BattGroupIds查询到对应的数值 String[] batteryGroupIds = temp.getBatteryGroupIds().split(","); Integer[] ids = new Integer[batteryGroupIds.length]; for (int i = 0; i < batteryGroupIds.length; i++) { ids[i] = Integer.parseInt(batteryGroupIds[i]); } DataAnalysisFloatDTO dataStatistics = resMapper.getResStatisticsByBattGroupIds(ids); resMap.put(temp.getStationName(),dataStatistics); } return new Response<>().set(1,resMap); } public Response getMonCap(Integer userId) { DataAnalysisFloatDTO data= mapper.getMonCap(userId); return new Response<>().set(1,data); HashMap<String, Object> resMap = new HashMap<>(); List<BatteryInfo> batteryInfos = testDataMapper.getStationAndBatteryGroupIds(userId); for (BatteryInfo temp:batteryInfos) { String[] batteryGroupIds = temp.getBatteryGroupIds().split(","); Integer[] ids = new Integer[batteryGroupIds.length]; for (int i = 0; i < batteryGroupIds.length; i++) { ids[i] = Integer.parseInt(batteryGroupIds[i]); } //查询标准 List<BatteryInfo> batteryStdList = testDataMapper.getVolAndCapStd(ids); //查询最值 List<BatteryInfo> batteryStatisticList = testDataMapper.getCapStatisticsByBattGroupIds(ids); } return new Response<>().set(1,resMap); } src/main/resources/mapper/BatteryResDataMapper.xml
New file @@ -0,0 +1,38 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.whyc.mapper.BatteryResDataMapper" > <select id="getResStationAndBatteryGroupIds" resultType="com.whyc.dto.BatteryInfo"> SELECT stationName, GROUP_Concat( DISTINCT resDataInf.battGroupId ) AS batteryGroupIds FROM db_batt_testdata.tb_battresdata_inf resDataInf, db_battinf.tb_battinf battInf WHERE resDataInf.BattGroupId = battInf.BattGroupId AND resDataInf.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 StationId </select> <select id="getResStatisticsByBattGroupIds" resultType="com.whyc.dto.DataAnalysisFloatDTO"> select min(mon_res) as 'min',max(mon_res) as 'max',avg(mon_res) as 'average' from <foreach collection="array" item="batteryGroupId" separator="union" open="(" close=")temp"> select mon_res from db_batt_testdata.tb_battresdata_#{batteryGroupId} </foreach> </select> </mapper> src/main/resources/mapper/BatteryTestDataMapper.xml
New file @@ -0,0 +1,66 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.whyc.mapper.BatteryTestDataMapper" > <select id="getStationAndBatteryGroupIds" resultType="com.whyc.dto.BatteryInfo"> SELECT stationName, GROUP_Concat( DISTINCT testDataInf.battGroupId ) AS batteryGroupIds FROM db_batt_testdata.tb_batttestdata_inf testDataInf, db_battinf.tb_battinf battInf WHERE testDataInf.BattGroupId = battInf.BattGroupId AND testDataInf.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 StationId </select> <select id="getStatisticsByBattGroupIds" resultType="com.whyc.dto.DataAnalysisFloatDTO"> select min(${field}) as 'min',max(${field}) as 'max',avg(${field}) as 'average' from <foreach collection="ids" item="batteryGroupId" separator="union" open="(" close=")temp"> select ${field} from db_batt_testdata.tb_batttestdata_#{batteryGroupId} </foreach> </select> <select id="getVolAndCapStd" resultType="com.whyc.dto.BatteryInfo"> select BattGroupId,MonVolStd,MonCapStd from db_battinf.tb_battinf where BattGroupId in <foreach collection="array" item="id" open="(" close=")" separator=","> #{id} </foreach> </select> <select id="getCapStatisticsByBattGroupIds" resultType="com.whyc.dto.BatteryInfo"> <foreach collection="array" item="id" separator=")union(" open="(" close=")"> SELECT BattGroupId, max( abs( test_curr ) ) maxTestCurr, min( abs( test_curr ) ) minTestCurr, avg( abs( test_curr ) ) avgTestCurr, max( abs( test_cap ) ) maxTestCap, min( abs( test_cap ) ) minTestCap, avg( abs( test_cap ) ) avgTestCap, min( abs( mon_vol ) ) minMonVol, max( mon_vol ) maxMonVol FROM db_batt_testdata.tb_batttestdata_#{id} where test_type=3 group by mon_num order by null </foreach> </select> </mapper>