燕山石化溯源三维电子沙盘-【后端】-服务
1
13693261870
2023-04-26 a3d41aaa84c64dd296a2bd89198682276ef7b1d3
src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java
@@ -1,5 +1,6 @@
package com.yssh.service.impl;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
@@ -56,6 +57,8 @@
   @Autowired
   private IAsyncService asyncService;
   private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHH");
   @Override
   @Async("threadPoolTaskExecutor")
   public void insertWarningDetails(List<WarningDetail> warning) throws Exception {
@@ -77,11 +80,31 @@
      if (StringUtils.isNull(dictRecord)) {
         nowDate = DateUtils.getAPeriodOfTime(nowDate, -1, Calendar.HOUR_OF_DAY);
      }
      List<WarningDetail> list = alarmAnalyseOperation(nowDate);
      //List<WarningDetail> list = alarmAnalyseOperation(nowDate);
      List<WarningDetail> list = new ArrayList<>();
      Calendar calendar = getCalendar(nowDate);
      for (int i = 0; i < 3; i++) {
         calendar.add(Calendar.HOUR, -1);
         List<WarningDetail> rs = alarmAnalyseOperation(calendar.getTime());
         if (null != rs && rs.size() > 0) {
            list.addAll(rs);
         }
      }
      list.forEach(s -> {
         result.add(new WarningVo(s.getLocationName(), s.getSuYuanId(), 0.0, 0.0, s.getValue()));
      });
      return result;
   }
   private Calendar getCalendar(Date nowDate) {
      Calendar calendar = Calendar.getInstance();
      calendar.setTime(nowDate);
      calendar.add(Calendar.HOUR, 1);
      return calendar;
   }
   @Override
@@ -93,7 +116,18 @@
      if (StringUtils.isNull(dictRecord)) {
         nowDate = DateUtils.getAPeriodOfTime(nowDate, -1, Calendar.HOUR_OF_DAY);
      }
      List<WarningDetail> list = warningAnalyseOperation(nowDate);
      //List<WarningDetail> list = warningAnalyseOperation(nowDate);
      List<WarningDetail> list = new ArrayList<>();
      Calendar calendar = getCalendar(nowDate);
      for (int i = 0; i < 3; i++) {
         calendar.add(Calendar.HOUR, -1);
         List<WarningDetail> rs = warningAnalyseOperation(calendar.getTime());
         if (null != rs && rs.size() > 0) {
            list.addAll(rs);
         }
      }
      list.forEach(s -> {
         result.add(new WarningVo(s.getLocationName(), s.getSuYuanId(), 0.0, 0.0, s.getValue()));
      });
@@ -195,7 +229,7 @@
   @Override
   public Map<String, List<Double>> selectEachLocationDataChange() {
      Map<String, List<Double>> result = new LinkedHashMap<>();
      /*Map<String, List<Double>> result = new LinkedHashMap<>();
      List<MonitorPointPosition> checkPoints = commonService.getCheckPoints3d();
      Date nowDate = DateUtils.getNowDate();
      Long endTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, nowDate));
@@ -215,12 +249,41 @@
            result.put(c.getName(), values);
         }
      });
      return result;*/
      Map<String, List<Double>> result = new LinkedHashMap<>();
      List<MonitorPointPosition> checkPoints = commonService.getCheckPoints3d();
      Date nowDate = DateUtils.getNowDate();
      Long endTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, nowDate));
      Long startTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getAPeriodOfTime(nowDate, -3, Calendar.HOUR_OF_DAY)));
      List<DictRecord> recordList = dictRecordMapper.selectByTimeDictRecordList(startTime, endTime);
      List<String> tableNames = new ArrayList<>();
      for (DictRecord dr : recordList) {
         if (suYuanMapper.isTableExists(dr.getTableName()) > 0) {
            tableNames.add(dr.getTableName());
         }
      }
      if (tableNames.isEmpty()) {
         return result;
      }
      for (MonitorPointPosition c : checkPoints) {
         List<Double> values = new ArrayList<>();
         List<SuYuanMonitorData> data = suYuanMapper.getMonitorData(tableNames, c.getId());
         if (null != data && data.size() > 0) {
            for (SuYuanMonitorData v : data) {
               values.add(v.getValue());
            }
         }
         result.put(c.getName(), values);
      }
      return result;
   }
   @Override
   public List<Map<String, Object>> selectThisMonthLocationValueDataTop10() {
      List<Map<String, Object>> result = new ArrayList<>();
      /*List<Map<String, Object>> result = new ArrayList<>();
      List<MonitorPointPosition> checkPoints = commonService.getCheckPoints3d();
      Long startTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getMonthStart()));
      Long endTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getMonthEnd()));
@@ -238,7 +301,34 @@
         }
         result.add(map);
      });
      return CalculateUtils.sort(result, "value", true).subList(0, 10);*/
      List<Map<String, Object>> result = new ArrayList<>();
      List<MonitorPointPosition> checkPoints = commonService.getCheckPoints3d();
      Long startTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getMonthStart()));
      Long endTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getMonthEnd()));
      List<DictRecord> recordList = dictRecordMapper.selectByTimeDictRecordList(startTime, endTime);
      List<String> tableNames = new ArrayList<>();
      for (DictRecord dr : recordList) {
         if (suYuanMapper.isTableExists(dr.getTableName()) > 0) {
            tableNames.add(dr.getTableName());
         }
      }
      if (tableNames.isEmpty()) {
         return result;
      }
      for (MonitorPointPosition c : checkPoints) {
         Map<String, Object> map = suYuanMapper.getMonthValueDataMax(tableNames, c.getId());
         if (null != map && map.size() > 0) {
            String suYuanId = map.get("id").toString();
            map.put("name", commonService.select3dCheckPointById(suYuanId).getName());
            map.remove("id");
         }
         result.add(map);
      }
      return CalculateUtils.sort(result, "value", true).subList(0, 10);
   }
}