fengxiang
2018-03-19 00d2837b0056d84394df6ebcb4e779698c283c0d
数据查看功能
2 files added
5 files modified
35 ■■■■ changed files
src/main/java/com/moral/controller/ReportController.java 2 ●●● patch | view | raw | blame | history
src/main/java/com/moral/entity/charts/LineChartCriteria.java 2 ●●● patch | view | raw | blame | history
src/main/java/com/moral/service/HistoryMinutelyService.java 2 ●●● patch | view | raw | blame | history
src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java 13 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/HistoryMinutelyMapper.xml 16 ●●●●● 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,8 +449,9 @@
     * @return
     */
    @Override
    public List<List<PairData>> queryLineChartDateByCrieria(LineChartCriteria lineChartCriteria){
        String sensorKey = lineChartCriteria.getSensorKey();
    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<>();
@@ -461,7 +459,10 @@
            List<PairData> pairDataList =  queryOneLineChartDateByCrieria(sensorKey,timePeriod,item);
            list.add(pairDataList);
        });
        return  list;
            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()'>
                <choose>
                    <when test="'MINUTE'==dataCondition.timeUnits.toString() and 'DEVICE'==dataCondition.areaRange.toString()">
                 json->'$.${sensorKey}[0]'
             </if>
                    </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