From aa86cb57b09c5300db3c33d75d91d8b51a4b636f Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期五, 16 六月 2023 09:27:45 +0800
Subject: [PATCH] 1

---
 src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java |  556 ++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 369 insertions(+), 187 deletions(-)

diff --git a/src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java b/src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java
index 02ca1d7..3fef537 100644
--- a/src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java
+++ b/src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java
@@ -10,22 +10,14 @@
 import java.util.Map;
 import java.util.concurrent.CountDownLatch;
 
+import com.yssh.dao.*;
+import com.yssh.entity.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 import com.google.common.collect.Lists;
-import com.yssh.dao.AlertConfigMapper;
-import com.yssh.dao.DictRecordMapper;
-import com.yssh.dao.SuYuanMapper;
-import com.yssh.dao.WarningDetailMapper;
-import com.yssh.entity.DictRecord;
-import com.yssh.entity.MonitorPointPosition;
-import com.yssh.entity.SuYuan2d;
-import com.yssh.entity.SuYuanMonitorData;
-import com.yssh.entity.WarningDetail;
 import com.yssh.entity.vo.WarningVo;
 import com.yssh.service.IAsyncService;
 import com.yssh.service.ICommonService;
@@ -34,202 +26,206 @@
 import com.yssh.utils.DateUtils;
 import com.yssh.utils.StringUtils;
 
+import javax.annotation.Resource;
+
 @Service
 public class WarningAnalyseServiceImpl implements IWarningAnalyseService {
+    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
 
-	protected final Logger logger = LoggerFactory.getLogger(this.getClass());
+    @Resource
+    private WarningDetailMapper warningDetailMapper;
 
-	@Autowired
-	private WarningDetailMapper warningDetailMapper;
+    @Resource
+    private ICommonService commonService;
 
-	@Autowired
-	private AlertConfigMapper alertConfigMapper;
+    @Resource
+    private SuYuanMapper suYuanMapper;
 
-	@Autowired
-	private ICommonService commonService;
+    @Resource
+    private DictRecordMapper dictRecordMapper;
 
-	@Autowired
-	private SuYuanMapper suYuanMapper;
+    @Resource
+    private IAsyncService asyncService;
 
-	@Autowired
-	private DictRecordMapper dictRecordMapper;
+    @Resource
+    private QxshMapper qxshMapper;
 
-	@Autowired
-	private IAsyncService asyncService;
+    private SimpleDateFormat ym = new SimpleDateFormat("yyyyMM%");
 
-	private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHH");
+    private SimpleDateFormat ymdh = new SimpleDateFormat("yyyyMMddHH");
 
-	@Override
-	@Async("threadPoolTaskExecutor")
-	public void insertWarningDetails(List<WarningDetail> warning) throws Exception {
-		//鎻掑叆鏁版嵁
-		List<List<WarningDetail>> list = Lists.partition(warning, IAsyncService.BATCH_INSERT_NUMBER);
-		CountDownLatch countDownLatch = new CountDownLatch(list.size());
-		for (List<WarningDetail> corpReserveList : list) {
-			asyncService.executeAsync("", corpReserveList, warningDetailMapper, countDownLatch);
-		}
-		countDownLatch.await();
-	}
+    private SimpleDateFormat ymdhms = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
-	@Override
-	public List<WarningVo> getRunTimeAlarmAnalyse() {
-		List<WarningVo> result = new ArrayList<>();
-		Date nowDate = DateUtils.getNowDate();
-		String time = DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, nowDate);
-		DictRecord dictRecord = dictRecordMapper.selectByCreateTime(Long.parseLong(time));
-		if (StringUtils.isNull(dictRecord)) {
-			nowDate = DateUtils.getAPeriodOfTime(nowDate, -1, Calendar.HOUR_OF_DAY);
-		}
+    @Override
+    @Async("threadPoolTaskExecutor")
+    public void insertWarningDetails(List<WarningDetail> warning) throws Exception {
+        //鎻掑叆鏁版嵁
+        List<List<WarningDetail>> list = Lists.partition(warning, IAsyncService.BATCH_INSERT_NUMBER);
+        CountDownLatch countDownLatch = new CountDownLatch(list.size());
+        for (List<WarningDetail> corpReserveList : list) {
+            asyncService.executeAsync("", corpReserveList, warningDetailMapper, countDownLatch);
+        }
+        countDownLatch.await();
+    }
 
-		//List<WarningDetail> list = alarmAnalyseOperation(nowDate);
+    @Override
+    public List<WarningVo> getRunTimeAlarmAnalyse() {
+        List<WarningVo> result = new ArrayList<>();
+        Date nowDate = DateUtils.getNowDate();
+        //String time = DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, nowDate);
+        //DictRecord dictRecord = dictRecordMapper.selectByCreateTime(Long.parseLong(time));
+        //if (StringUtils.isNull(dictRecord)) {
+        //	nowDate = DateUtils.getAPeriodOfTime(nowDate, -1, Calendar.HOUR_OF_DAY);
+        //}
+        //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<WarningDetail> list = new ArrayList<>();
+        Calendar calendar = getCalendar(nowDate);
+        for (int i = 0; i < 6; i++) {
+            calendar.add(Calendar.HOUR, -1);
+            List<WarningDetail> rs = getAlarmWarnAnalyse(calendar.getTime(), false);
+            if (null != rs && rs.size() > 0) {
+                list.addAll(rs);
+            }
+        }
+        list.forEach(s -> {
+            String time = ymdh.format(s.getCreateTime());
+            result.add(new WarningVo(s.getLocationName(), s.getSuYuanId(), 0.0, 0.0, s.getValue(), time));
+        });
+        return result;
+    }
 
-		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);
 
-	private Calendar getCalendar(Date nowDate) {
-		Calendar calendar = Calendar.getInstance();
-		calendar.setTime(nowDate);
-		calendar.add(Calendar.HOUR, 1);
+        return calendar;
+    }
 
-		return calendar;
-	}
+    @Override
+    public List<WarningVo> getRunTimeWarningAnalyse() {
+        List<WarningVo> result = new ArrayList<>();
+        Date nowDate = DateUtils.getNowDate();
+        //String time = DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, nowDate);
+        //DictRecord dictRecord = dictRecordMapper.selectByCreateTime(Long.parseLong(time));
+        //if (StringUtils.isNull(dictRecord)) {
+        //	nowDate = DateUtils.getAPeriodOfTime(nowDate, -1, Calendar.HOUR_OF_DAY);
+        //}
+        //List<WarningDetail> list = warningAnalyseOperation(nowDate);
 
-	@Override
-	public List<WarningVo> getRunTimeWarningAnalyse() {
-		List<WarningVo> result = new ArrayList<>();
-		Date nowDate = DateUtils.getNowDate();
-		String time = DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, nowDate);
-		DictRecord dictRecord = dictRecordMapper.selectByCreateTime(Long.parseLong(time));
-		if (StringUtils.isNull(dictRecord)) {
-			nowDate = DateUtils.getAPeriodOfTime(nowDate, -1, Calendar.HOUR_OF_DAY);
-		}
+        List<WarningDetail> list = new ArrayList<>();
+        Calendar calendar = getCalendar(nowDate);
+        for (int i = 0; i < 6; i++) {
+            calendar.add(Calendar.HOUR, -1);
+            List<WarningDetail> rs = getAlarmWarnAnalyse(calendar.getTime(), true);
+            if (null != rs && rs.size() > 0) {
+                list.addAll(rs);
+            }
+        }
+        list.forEach(s -> {
+            String time = ymdh.format(s.getCreateTime());
+            result.add(new WarningVo(s.getLocationName(), s.getSuYuanId(), 0.0, 0.0, s.getValue(), time));
+        });
+        return result;
+    }
 
-		//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);
-			}
-		}
+    private List<WarningDetail> getAlarmWarnAnalyse(Date date, boolean isWarn) {
+        List<String> ids = CalculateUtils.assembleId(commonService.getCheckPoints3d());
 
-		list.forEach(s -> {
-			result.add(new WarningVo(s.getLocationName(), s.getSuYuanId(), 0.0, 0.0, s.getValue()));
-		});
-		return result;
-	}
+        String time = DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, date);
+        DictRecord dictRecord = dictRecordMapper.selectByCreateTime(Long.parseLong(time));
+        if (null == dictRecord) return null;
 
-	public List<WarningDetail> alarmAnalyseOperation(Date date) {
-		List<WarningDetail> result = new ArrayList<WarningDetail>();
-		String time = DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, date);
-		List<String> ids = CalculateUtils.assembleId(commonService.getCheckPoints3d());
-		DictRecord dictRecord = dictRecordMapper.selectByCreateTime(Long.parseLong(time));
-		if (StringUtils.isNull(dictRecord)) {
-			return result;
-		}
-		String tableName = dictRecord.getTableName();
-		List<SuYuan2d> list = suYuanMapper.getAlarmsAnalyse(tableName, ids);
-		list.forEach(s -> {
-			String locationName = commonService.select3dCheckPointById(s.getId()).getName();
-			result.add(new WarningDetail(0L, tableName, s.getId(), locationName, date, 0, s.getValue()));
-		});
-		return result;
-	}
+        String tableName = dictRecord.getTableName();
+        if (suYuanMapper.isTableExists(tableName) == 0) return null;
 
-	public List<WarningDetail> warningAnalyseOperation(Date date) {
-		List<WarningDetail> result = new ArrayList<WarningDetail>();
-		String time = DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, date);
-		List<String> ids = CalculateUtils.assembleId(commonService.getCheckPoints3d());
-		DictRecord dictRecord = dictRecordMapper.selectByCreateTime(Long.parseLong(time));
-		if (StringUtils.isNull(dictRecord)) {
-			return result;
-		}
-		String tableName = dictRecord.getTableName();
-		List<SuYuan2d> list = suYuanMapper.getWarningAnalyse(tableName, ids);
-		list.forEach(s -> {
-			String locationName = commonService.select3dCheckPointById(s.getId()).getName();
-			result.add(new WarningDetail(0L, tableName, s.getId(), locationName, date, 1, s.getValue()));
-		});
-		return result;
-	}
+        List<SuYuan2d> list = isWarn ? suYuanMapper.getWarningAnalyse(tableName, ids) : suYuanMapper.getAlarmsAnalyse(tableName, ids);
+        if (null == list || list.isEmpty()) {
+            return null;
+        }
 
-	@Override
-	public void warningOperationStorage(Date date) {
-		List<WarningDetail> allData = new ArrayList<>();
-		List<WarningDetail> alarms = this.alarmAnalyseOperation(date);
-		if (StringUtils.isNotEmpty(alarms)) {
-			allData.addAll(alarms);
-		}
-		List<WarningDetail> warnings = this.warningAnalyseOperation(date);
-		if (StringUtils.isNotEmpty(warnings)) {
-			allData.addAll(warnings);
-		}
-		if (StringUtils.isNotEmpty(allData)) {
-			try {
-				insertWarningDetails(allData);
-			} catch (Exception e) {
-				logger.error("鎵归噺鎻掑叆鍛婅鏁版嵁鍑虹幇寮傚父锛侊紒锛�");
-				e.printStackTrace();
-			}
-		}
-	}
+        int type = isWarn ? 1 : 0;
+        List<WarningDetail> result = new ArrayList<>();
+        for (SuYuan2d s : list) {
+            String locationName = commonService.select3dCheckPointById(s.getId()).getName();
+            result.add(new WarningDetail(0L, tableName, s.getId(), locationName, date, type, s.getValue()));
+        }
 
-	@Override
-	public Map<String, Integer> countThisMonthAlarmAndWarning() {
-		Map<String, Integer> result = new HashMap<>();
-		Map<String, Object> param = new HashMap<String, Object>();
-		param.put("type", 0);
-		param.put("startTime", DateUtils.getMonthStart());
-		param.put("endTime", DateUtils.getMonthEnd());
-		List<WarningVo> alarms = warningDetailMapper.selectWarningDetailByMap(param);
-		if (StringUtils.isNull(alarms)) {
-			alarms = new ArrayList<>();
-		}
-		result.put("alarmNumber", alarms.size());
-		param.put("type", 1);
-		List<WarningVo> warnings = warningDetailMapper.selectWarningDetailByMap(param);
-		if (StringUtils.isNull(warnings)) {
-			warnings = new ArrayList<>();
-		}
-		result.put("warningNumber", warnings.size());
-		return result;
-	}
+        return result;
+    }
 
-	@Override
-	public Map<String, List<Map<String, Object>>> countEverydayAlarmAndWarning() {
-		Map<String, List<Map<String, Object>>> result = new HashMap<>();
-		Map<String, Object> param = new HashMap<String, Object>();
-		param.put("type", 0);
-		Date endTime = DateUtils.getNowDate();
-		//涓婂懆鐨勪粖澶�
-		param.put("startTime", DateUtils.getAPeriodOfTime(endTime, -7, Calendar.DATE));
-		param.put("endTime", endTime);
-		List<Map<String, Object>> alarmDayCount = warningDetailMapper.selectWarningDayCountByMap(param);
-		result.put("alarmDayCount", alarmDayCount);
-		param.put("type", 1);
-		List<Map<String, Object>> warningDayCount = warningDetailMapper.selectWarningDayCountByMap(param);
-		result.put("warningDayCount", warningDayCount);
-		return result;
-	}
+    @Override
+    public void warningOperationStorage(Date date) {
+        List<WarningDetail> allData = new ArrayList<>();
+        List<WarningDetail> alarms = this.getAlarmWarnAnalyse(date, false);
+        if (StringUtils.isNotEmpty(alarms)) {
+            allData.addAll(alarms);
+        }
 
-	@Override
-	public Map<String, List<Double>> selectEachLocationDataChange() {
-		Map<String, List<Double>> result = new LinkedHashMap<>();
+        List<WarningDetail> warnings = this.getAlarmWarnAnalyse(date, true);
+        if (StringUtils.isNotEmpty(warnings)) {
+            allData.addAll(warnings);
+        }
+
+        if (StringUtils.isNotEmpty(allData)) {
+            try {
+                insertWarningDetails(allData);
+            } catch (Exception e) {
+                logger.error("鎵归噺鎻掑叆鍛婅鏁版嵁鍑虹幇寮傚父锛侊紒锛�", e);
+                e.printStackTrace();
+            }
+        }
+    }
+
+    @Override
+    public Map<String, Integer> countThisMonthAlarmAndWarning() {
+        Map<String, Integer> result = new HashMap<>();
+        Map<String, Object> param = new HashMap<>();
+        param.put("startTime", ymdhms.format(DateUtils.getMonthStart()));
+        param.put("endTime", ymdhms.format(DateUtils.getMonthEnd()));
+
+        param.put("type", 0);
+        List<WarningVo> alarms = warningDetailMapper.selectWarningDetailByMap(param);
+        if (StringUtils.isNull(alarms)) {
+            alarms = new ArrayList<>();
+        }
+        result.put("alarmNumber", alarms.size());
+
+        param.put("type", 1);
+        List<WarningVo> warnings = warningDetailMapper.selectWarningDetailByMap(param);
+        if (StringUtils.isNull(warnings)) {
+            warnings = new ArrayList<>();
+        }
+        result.put("warningNumber", warnings.size());
+
+        return result;
+    }
+
+    @Override
+    public Map<String, List<Map<String, Object>>> countEverydayAlarmAndWarning() {
+        Map<String, List<Map<String, Object>>> result = new HashMap<>();
+
+        Map<String, Object> param = new HashMap<String, Object>();
+        Date now = new Date();
+        Date last = DateUtils.getAPeriodOfTime(now, -7, Calendar.DATE); // 涓婂懆鐨勪粖澶�
+        param.put("startTime", ymdhms.format(last));
+        param.put("endTime", ymdhms.format(now));
+
+        param.put("type", 0);
+        List<Map<String, Object>> alarmDayCount = warningDetailMapper.selectWarningDayCountByMap(param);
+        result.put("alarmDayCount", alarmDayCount);
+
+        param.put("type", 1);
+        List<Map<String, Object>> warningDayCount = warningDetailMapper.selectWarningDayCountByMap(param);
+        result.put("warningDayCount", warningDayCount);
+
+        return result;
+    }
+
+    @Override
+    public Map<String, List<Double>> selectEachLocationDataChange() {
+		/*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));
@@ -249,12 +245,41 @@
 				result.put(c.getName(), values);
 			}
 		});
-		return result;
-	}
+		return result;*/
 
-	@Override
-	public List<Map<String, Object>> selectThisMonthLocationValueDataTop10() {
-		List<Map<String, Object>> result = new ArrayList<>();
+        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<MonitorPointPosition> checkPoints = commonService.getCheckPoints3d();
 		Long startTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getMonthStart()));
 		Long endTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getMonthEnd()));
@@ -272,7 +297,164 @@
 			}
 			result.add(map);
 		});
-		return CalculateUtils.sort(result, "value", true).subList(0, 10);
-	}
+		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()));
+        //startTime = 2023040100L;
+        //endTime = 2023043023L;
+
+        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;
+        }
+
+        /*List<String> idList = new ArrayList<>();
+        for (MonitorPointPosition c : checkPoints) {
+            idList.add("'" + c.getId() + "'");
+        }
+        String ids = String.join(",", idList);*/
+
+        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");
+                map.put("name", c.getName());
+                result.add(map);
+            }
+        }
+
+        return CalculateUtils.sort(result, "value", true).subList(0, 10);
+    }
+
+    @Override
+    public List<Qxsh> selectMonthTop10() {
+        String time = ym.format(new Date());
+
+        List<Qxsh> list = qxshMapper.selectMonthTop10(time);
+
+        return list;
+    }
+
+    @Override
+    public Map<String, List<Double>> select3Hours() {
+        Map<String, List<Double>> map = new LinkedHashMap<>();
+
+        List<String> times = DateUtils.get3Hours();
+        List<Qxsh> list = qxshMapper.select3Hours(times);
+        if (null == list || list.isEmpty()) {
+            return map;
+        }
+
+        for (Qxsh qxsh : list) {
+            String name = qxsh.getName();
+
+            List<Double> values = map.computeIfAbsent(name, k -> new ArrayList<>());
+            values.add(qxsh.getValue());
+        }
+
+        return map;
+    }
+
+    @Override
+    public List<WarningVo> getAlarmAndWarnByTime(Date begin, Date end) {
+        String startTime = ymdhms.format(begin);
+        String endTime = ymdhms.format(end);
+
+        List<WarningDetail> rs = warningDetailMapper.selectByTime(startTime, endTime);
+        if (null == rs || rs.isEmpty()) {
+            return null;
+        }
+
+        List<WarningVo> list = new ArrayList<>();
+        for (WarningDetail wd : rs) {
+            String time = ymdh.format(wd.getCreateTime());
+            list.add(new WarningVo(wd.getLocationName(), wd.getSuYuanId(), 0.0, 0.0, wd.getValue(), time));
+        }
+
+        return list;
+    }
+
+    public List<WarningVo> getAlarmAndWarnByTime_old(Date begin, Date end) {
+        List<WarningVo> list = new ArrayList<>();
+        List<String> ids = CalculateUtils.assembleId(commonService.getCheckPoints3d());
+        if (ids.size() == 0) {
+            return list;
+        }
+        List<DictRecord> dictList = dictRecordMapper.selectByTime(ymdhms.format(begin), ymdhms.format(end));
+        if (null == dictList || dictList.isEmpty()) {
+            return list;
+        }
+        List<String> tables = new ArrayList<>();
+        for (DictRecord dr : dictList) {
+            if (suYuanMapper.isTableExists(dr.getTableName()) > 0) {
+                tables.add(dr.getTableName());
+            }
+        }
+        if (tables.size() == 0) {
+            return list;
+        }
+
+        for (String tab : tables) {
+            List<WarningDetail> alarmList = getAlarmByTime(tab, ids);
+            for (WarningDetail s : alarmList) {
+                String time = ymdh.format(s.getCreateTime());
+                list.add(new WarningVo(s.getLocationName(), s.getSuYuanId(), 0.0, 0.0, s.getValue(), time));
+            }
+        }
+        for (String tab : tables) {
+            List<WarningDetail> warnList = getWarnByTime(tab, ids);
+            for (WarningDetail s : warnList) {
+                String time = ymdh.format(s.getCreateTime());
+                list.add(new WarningVo(s.getLocationName(), s.getSuYuanId(), 0.0, 0.0, s.getValue(), time));
+            }
+        }
+
+        return list;
+    }
+
+    private List<WarningDetail> getAlarmByTime(String tableName, List<String> ids) {
+        List<WarningDetail> result = new ArrayList<>();
+        List<SuYuan2d> list = suYuanMapper.getAlarmsAnalyse(tableName, ids);
+        if (null != list && list.size() > 0) {
+            Date date = getDateByTabName(tableName);
+            for (SuYuan2d s : list) {
+                String locationName = commonService.select3dCheckPointById(s.getId()).getName();
+                result.add(new WarningDetail(0L, tableName, s.getId(), locationName, date, 0, s.getValue()));
+            }
+        }
+        return result;
+    }
+
+    private List<WarningDetail> getWarnByTime(String tableName, List<String> ids) {
+        List<WarningDetail> result = new ArrayList<>();
+        List<SuYuan2d> list = suYuanMapper.getWarningAnalyse(tableName, ids);
+        if (null != list && list.size() > 0) {
+            Date date = getDateByTabName(tableName);
+            for (SuYuan2d s : list) {
+                String locationName = commonService.select3dCheckPointById(s.getId()).getName();
+                result.add(new WarningDetail(0L, tableName, s.getId(), locationName, date, 1, s.getValue()));
+            }
+        }
+        return result;
+    }
+
+    private Date getDateByTabName(String tab) {
+        try {
+            return ymdh.parse(tab.replace("su_yuan_", ""));
+        } catch (Exception e) {
+            return new Date();
+        }
+    }
 }

--
Gitblit v1.9.3