From 00d2837b0056d84394df6ebcb4e779698c283c0d Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Mon, 19 Mar 2018 16:45:22 +0800 Subject: [PATCH] 数据查看功能 --- src/main/java/com/moral/service/HistoryMinutelyService.java | 2 +- src/main/resources/mapper/HistoryMinutelyMapper.xml | 18 ++++++++++-------- src/main/java/com/moral/entity/charts/LineChartCriteria.java | 2 +- src/main/webapp/img/ico04_bak.png | 0 src/main/java/com/moral/controller/ReportController.java | 2 +- src/main/webapp/img/ico_coo04_bak.png | 0 src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java | 27 ++++++++++++++------------- 7 files changed, 27 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/moral/controller/ReportController.java b/src/main/java/com/moral/controller/ReportController.java index f2058a8..d5dd547 100644 --- a/src/main/java/com/moral/controller/ReportController.java +++ b/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") diff --git a/src/main/java/com/moral/entity/charts/LineChartCriteria.java b/src/main/java/com/moral/entity/charts/LineChartCriteria.java index 589a25e..6472203 100644 --- a/src/main/java/com/moral/entity/charts/LineChartCriteria.java +++ b/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;//������������������ } diff --git a/src/main/java/com/moral/service/HistoryMinutelyService.java b/src/main/java/com/moral/service/HistoryMinutelyService.java index ec3f36d..6fee90d 100644 --- a/src/main/java/com/moral/service/HistoryMinutelyService.java +++ b/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); } diff --git a/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java index 0a73e54..43104c6 100644 --- a/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java +++ b/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; } /** diff --git a/src/main/resources/mapper/HistoryMinutelyMapper.xml b/src/main/resources/mapper/HistoryMinutelyMapper.xml index 2bbb17b..797834d 100644 --- a/src/main/resources/mapper/HistoryMinutelyMapper.xml +++ b/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 diff --git a/src/main/webapp/img/ico04_bak.png b/src/main/webapp/img/ico04_bak.png new file mode 100644 index 0000000..9c64a6a --- /dev/null +++ b/src/main/webapp/img/ico04_bak.png Binary files differ diff --git a/src/main/webapp/img/ico_coo04_bak.png b/src/main/webapp/img/ico_coo04_bak.png new file mode 100644 index 0000000..2885216 --- /dev/null +++ b/src/main/webapp/img/ico_coo04_bak.png Binary files differ -- Gitblit v1.8.0