src/main/java/com/moral/controller/ReportController.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/moral/entity/charts/LineChartCriteria.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/moral/service/HistoryMinutelyService.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
src/main/resources/mapper/HistoryMinutelyMapper.xml | ●●●●● patch | view | raw | blame | history | |
src/main/webapp/img/ico04_bak.png | patch | view | raw | blame | history | |
src/main/webapp/img/ico_coo04_bak.png | patch | view | raw | blame | history |
src/main/java/com/moral/controller/ReportController.java
@@ -35,7 +35,7 @@ return new ResultBean<Map<String,List<Object>>>(demo); } @PostMapping("line-chart") public ResultBean <List<List<PairData>>> lineChart(@RequestBody LineChartCriteria lineChartCriteria){ public ResultBean <Map<String, List<List<PairData>>>> lineChart(@RequestBody LineChartCriteria lineChartCriteria){ return new ResultBean<>(historyMinutelyService.queryLineChartDateByCrieria(lineChartCriteria)); } @GetMapping("excel") src/main/java/com/moral/entity/charts/LineChartCriteria.java
@@ -6,7 +6,7 @@ @Data public class LineChartCriteria { private String sensorKey;//传感器类别 private List<String> sensorKeys;//传感器类别 private TimePeriod timePeriod;//时间区间 private List<DataCondition> dataConditions;//数据取样条件 } src/main/java/com/moral/service/HistoryMinutelyService.java
@@ -17,5 +17,5 @@ Map<String, Object> getMonthAverageBySensor(Map<String, Object> parameters); List<List<PairData>> queryLineChartDateByCrieria(LineChartCriteria lineChartCriteria); Map<String, List<List<PairData>>> queryLineChartDateByCrieria(LineChartCriteria lineChartCriteria); } src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java
@@ -9,7 +9,6 @@ import java.time.temporal.TemporalAdjusters; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Date; @@ -27,8 +26,6 @@ import java.util.concurrent.ExecutorCompletionService; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.stream.Collector; import java.util.stream.Collectors; import javax.annotation.Resource; @@ -452,16 +449,20 @@ * @return */ @Override public List<List<PairData>> queryLineChartDateByCrieria(LineChartCriteria lineChartCriteria){ String sensorKey = lineChartCriteria.getSensorKey(); TimePeriod timePeriod = lineChartCriteria.getTimePeriod(); List<DataCondition> dataConditionList = lineChartCriteria.getDataConditions(); List<List<PairData>> list = new ArrayList<>(); dataConditionList.forEach(item -> { List<PairData> pairDataList = queryOneLineChartDateByCrieria(sensorKey,timePeriod,item); list.add(pairDataList); }); return list; public Map<String, List<List<PairData>>> queryLineChartDateByCrieria(LineChartCriteria lineChartCriteria){ Map<String,List<List<PairData>>> listMap = new HashMap<>(); for(String sensorKey:lineChartCriteria.getSensorKeys()){ TimePeriod timePeriod = lineChartCriteria.getTimePeriod(); List<DataCondition> dataConditionList = lineChartCriteria.getDataConditions(); List<List<PairData>> list = new ArrayList<>(); dataConditionList.forEach(item -> { List<PairData> pairDataList = queryOneLineChartDateByCrieria(sensorKey,timePeriod,item); list.add(pairDataList); }); listMap.put(sensorKey,list); } return listMap; } /** src/main/resources/mapper/HistoryMinutelyMapper.xml
@@ -43,12 +43,14 @@ </select> <select id="selectLineChartDateByCrieria" resultMap="PairDataResultMap"> SELECT <if test='"MINUTE"!=dataCondition.timeUnits.toString()'> AVG(json->'$.${sensorKey}[0]') </if> <if test='"MINUTE"==dataCondition.timeUnits.toString()'> json->'$.${sensorKey}[0]' </if> <choose> <when test="'MINUTE'==dataCondition.timeUnits.toString() and 'DEVICE'==dataCondition.areaRange.toString()"> json->'$.${sensorKey}[0]' </when> <otherwise> AVG(json->'$.${sensorKey}[0]') </otherwise> </choose> as value, DATE_FORMAT(time,'${@com.moral.common.util.ReportTimeFormat@toMySqlTimeFormat(timePeriod.timeUnits)}') as format_time FROM @@ -70,7 +72,7 @@ and mpt.id = #{dataCondition.areaRangeId} </if> <if test='"PROVINCE"==dataCondition.areaRange.toString()'> and mpt.provice_code = #{dataCondition.areaRangeId} and mpt.province_code = #{dataCondition.areaRangeId} </if> <if test='"CITY"==dataCondition.areaRange.toString()'> and mpt.city_code = #{dataCondition.areaRangeId} @@ -81,7 +83,7 @@ </where> ) </where> <if test='"MINUTE"!=dataCondition.timeUnits.toString()'> <if test="'MINUTE'!=dataCondition.timeUnits.toString() or 'DEVICE'!=dataCondition.areaRange.toString()"> GROUP BY format_time </if> ORDER BY format_time asc src/main/webapp/img/ico04_bak.png
src/main/webapp/img/ico_coo04_bak.png