kaiyu
2020-11-16 8a16116027464d17e800cd070d256aff59350b7d
更改监测因子趋势图M
2 files modified
50 ■■■■■ changed files
src/main/java/com/moral/controller/ScreenController.java 13 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java 37 ●●●● patch | view | raw | blame | history
src/main/java/com/moral/controller/ScreenController.java
@@ -701,6 +701,9 @@
        //该方法用于判断时间是具体到年月日
        ParameterUtils.getTimeType4Time(parameters);
        String time1 = (String) parameters.get("time");
        time1 = time1.replaceAll(" ", "");
        parameters.put("time",time1);
        String mac1 = (String) parameters.get("mac");
        List<Map<String, Object>> list = null;
        if (mac1 != null && mac1.equals("p5dnd7a0392018") && time1.substring(0, 4).equals("2019")) {
@@ -711,6 +714,12 @@
            parameters.put("sensors", Arrays.asList(sensorKey));
            // monitorPointService.isCompensateCalculation(parameters);
            list = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters);
            /* 0点的数据是昨天11点到今天0点的,界面显示1-24点的,所以不需要0点的数据,但需要单独查询24点的数据
                因为改动以前24点的数据是23-24,现在24点的数据是第二天0点的数据,
             */
            /*改动范围start-------------------------------------------------------------------------*/
            list.remove(0);
            if (list.size() == 23) {
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -722,6 +731,7 @@
                //将全格式时间截取
                String time2 = sdf2.format(date);
                parameters.put("time", time2);
                /*查询第二天0点的数据,以24点的形式存进集合中*/
                List<Map<String, Object>> nextDayList = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters);
                if(!ObjectUtils.isEmpty(nextDayList)){
                    time1=time1.replaceAll(" 00:00:00"," 24");
@@ -730,6 +740,9 @@
                    list.add(datas);
                }
            }
            /*改动范围end-------------------------------------------------------------------------*/
            for (Map<String, Object> map : list) {
                String time = map.get("time").toString();
                time = time.substring(time.length() - 2);
src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java
@@ -10,6 +10,7 @@
import com.moral.mapper.HistoryMapper;
import com.moral.util.AQICalculation;
import com.moral.util.AQICalculation2;
import com.moral.util.DateUtil;
import io.swagger.models.auth.In;
import org.apache.commons.collections.MapUtils;
import org.springframework.stereotype.Service;
@@ -22,6 +23,7 @@
import com.moral.service.DeviceService;
import com.moral.service.HistoryHourlyService;
import com.moral.service.SensorService;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
@@ -154,8 +156,35 @@
                Date date1 = calendar.getTime();
                String date2 = simpleDateFormat.format(date1);
                List<Map> list = historyHourlyMapper.getDataByMacAndTime(mac, sensor, perTime, date2);
                list.remove(0);
                /*以前1-2点的数据数据库中存的是1点,现在数据库中存2点,但界面显示1-24。
                * 但24点的数据存储于第二天零点,所以需要单独查询*/
                /*改动范围start----------------------------------------------------------------*/
                if (list.size() == 23) {
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    //获取全格式时间yyyy-MM-dd HH:mm:ss
                    perTime = perTime + " 00:00:00";
                    Date perTimeDate = sdf.parse(perTime);
                    perTimeDate = DateUtil.rollDay(perTimeDate, 1);
                    Date endTimeDate = DateUtil.rollDay(perTimeDate, 2);
                    //将全格式时间截取
                    String startTime = simpleDateFormat.format(perTimeDate);
                    String endTime = simpleDateFormat.format(endTimeDate);
                    //比如查询2020-11-16的数据,则需要添加17号0点的数据到集合中,查询时间为2020-11-17---2020-11-18
                    List<Map> nextDayList = historyHourlyMapper.getDataByMacAndTime(mac, sensor, startTime, endTime);
                    if(!ObjectUtils.isEmpty(nextDayList)){
                        perTime=perTime.replaceAll(" 00:00:00"," 24");
                        Map<String, Object> datas = nextDayList.get(0);
                        datas.put("time",perTime);
                        list.add(datas);
                    }
                }
                /*改动范围end----------------------------------------------------------------*/
                List<Map> newList = new ArrayList<Map>();
                for (int i = 0; i < 24; i++) {
                for (int i = 0; i <= 24; i++) {
                    Map map=new HashMap();
                    if (i < 10) {
                        map.put("time","0"+i);
@@ -180,7 +209,7 @@
                lists.add(newList);
            }
            for (int i = 0; i < 24; i++) {
            for (int i = 0; i <= 24; i++) {
                Map<String, Object> map = new HashMap<>();
                List iList = new ArrayList();
                for (List<Map> list : lists) {
@@ -207,9 +236,9 @@
        } catch (ParseException e) {
            e.printStackTrace();
        }
        for (int i = 0; i <perList.size() ; i++) {
        /*for (int i = 0; i <perList.size() ; i++) {
            perList.get(i).replace("time",perList.get(i).get("time"),(Integer) perList.get(i).get("time")+1);
        }
        }*/
        int j=0;
        for (int i = 0; i <perList.size() ; i++) {
            if (!((List)perList.get(i).get("values")).get(0).equals("")){