ZhuDongming
2020-04-30 4f879df01e855d436c65e1fbdc74f64ce47c901b
update小时查询表时判断
4 files modified
51 ■■■■ changed files
src/main/java/com/moral/controller/ReportController.java 9 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/mapper/HistoryMinutelyMapper.java 2 ●●● patch | view | raw | blame | history
src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java 38 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/HistoryMinutelyMapper.xml 2 ●●● patch | view | raw | blame | history
src/main/java/com/moral/controller/ReportController.java
@@ -2,7 +2,12 @@
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
@@ -10,7 +15,6 @@
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
@@ -104,7 +108,6 @@
        String type = parameters.get("type").toString();
        String time = parameters.get("time").toString();
        System.out.println(parameters);
        String timeb = "";
        if (parameters.get("timeb") == null) {
            timeb = parameters.get("time").toString();
src/main/java/com/moral/mapper/HistoryMinutelyMapper.java
@@ -24,7 +24,7 @@
   * @param dataCondition
   * @return {format_time:string,e1:double,e2...............}
   */
  List<Map<String, Object>> selectLineChartDateByCrieria(@Param("sensorKeys") List<String> sensorKeys, @Param("timePeriod") TimePeriod timePeriod, @Param("dataCondition") DataCondition dataCondition);
    List<Map<String, Object>> selectLineChartDateByCrieria(@Param("sensorKeys") List<String> sensorKeys, @Param("timePeriod") TimePeriod timePeriod, @Param("timeUnits") String timeUnits, @Param("dataCondition") DataCondition dataCondition);
  List<Map<String, Object>> getSensorData(Map<String, Object> parameters);
src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java
@@ -2,8 +2,11 @@
import java.math.BigDecimal;
import java.text.ParseException;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
import java.util.ArrayList;
@@ -373,6 +376,24 @@
            // String type = (String) parameters.get("type");
            // parameters.putAll(getElementByType(type));
            ParameterUtils.getElementByType(parameters);
            if (parameters.containsKey("timeUnits")) {
                if ("minutely".equals(parameters.get("timeUnits"))) {
                    if (parameters.containsKey("time")) {
                        String[] timeStr = parameters.get("time").toString().split("-");
                        int year = Integer.valueOf(timeStr[0]);
                        int month = Integer.valueOf(timeStr[1]);
                        String yearAndMonth;
                        if (month < 10) {
                            yearAndMonth = "minutely_" + year + "0" + month;
                        } else {
                            yearAndMonth = "minutely_" + year + month;
                        }
                        if (year >= 2020) {
                            parameters.put("timeUnits", yearAndMonth);
                        }
                    }
                }
            }
        }
        String time = (String) parameters.get("time");
        String format = (String) parameters.get("format");
@@ -508,7 +529,22 @@
     */
    public Map<String, List<Double>> queryOneLineChartDateByCrieria(List<String> sensorKeys, TimePeriod timePeriod, DataCondition dataCondition) {
        List<String> timeList = ReportTimeFormat.makeTimeList(timePeriod);
        List<Map<String, Object>> lineChartDatas = historyMinutelyMapper.selectLineChartDateByCrieria(sensorKeys, timePeriod, dataCondition);
        Instant instant = timePeriod.getStartTime().toInstant();
        ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault());
        LocalDate localDate = zdt.toLocalDate();
        int year = localDate.getYear();
        int month = localDate.getMonthValue();
        String timeUnits;
        if (year < 2020) {
            timeUnits = "minutely";
        } else {
            if (month < 10) {
                timeUnits = "minutely_" + year + "0" + month;
            } else {
                timeUnits = "minutely_" + year + month;
            }
        }
        List<Map<String, Object>> lineChartDatas = historyMinutelyMapper.selectLineChartDateByCrieria(sensorKeys, timePeriod, timeUnits, dataCondition);
        Map<String, List<Double>> lineChartDatasWithEmpty = new HashMap<>();
        // lineChartDatasWithEmpty 初始化
        sensorKeys.forEach(sensorKey -> {
src/main/resources/mapper/HistoryMinutelyMapper.xml
@@ -139,7 +139,7 @@
        DATE_FORMAT(time,'${@com.moral.common.util.ReportTimeFormat@toMySqlTimeFormat(timePeriod.timeUnits)}') as
        format_time
        FROM
        `history_minutely` hmi
        history_${timeUnits} hmi
        <where>
            and hmi.time >= #{timePeriod.startTime}
            and hmi.time <![CDATA[<=]]> #{timePeriod.endTime}