From 5579b3cf5d5e2a5b7ec90c89fa843639ba7e2a87 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期四, 27 四月 2023 12:42:17 +0800
Subject: [PATCH] 修改告警和预警数据入库方法

---
 src/main/java/com/yssh/run/InitDataRunner.java                     |   17 ++++++++
 src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java |   66 ++++++++++-----------------------
 src/main/java/com/yssh/scheduled/ReadCsvTask.java                  |    4 +-
 src/main/java/com/yssh/utils/CalculateUtils.java                   |    9 ++--
 src/main/resources/mapping/SuYuanMapper.xml                        |    4 +-
 5 files changed, 45 insertions(+), 55 deletions(-)

diff --git a/src/main/java/com/yssh/run/InitDataRunner.java b/src/main/java/com/yssh/run/InitDataRunner.java
index 12dc4f4..11e60c8 100644
--- a/src/main/java/com/yssh/run/InitDataRunner.java
+++ b/src/main/java/com/yssh/run/InitDataRunner.java
@@ -1,6 +1,7 @@
 package com.yssh.run;
 
 import com.yssh.scheduled.ReadCsvTask;
+import com.yssh.service.impl.WarningAnalyseServiceImpl;
 import com.yssh.utils.CacheUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -15,6 +16,7 @@
 import com.yssh.service.IDictRecordService;
 
 import javax.annotation.Resource;
+import java.util.Calendar;
 
 @Component
 public class InitDataRunner implements ApplicationRunner {
@@ -26,6 +28,9 @@
 
     @Autowired
     private IDictRecordService dictRecordService;
+
+    @Resource
+    WarningAnalyseServiceImpl warningAnalyseService;
 
     @Resource
     ReadCsvTask task;
@@ -41,8 +46,18 @@
         // 璇诲彇dat鏁版嵁
         commonService.readDatData();
 
+        //test();
+        logger.info("***************** 绯荤粺鍚姩瀹屾瘯 *****************" + "\n");
+    }
+
+    private void test() {
         //task.corpReserveDataSync();
 
-        logger.info("***************** 绯荤粺鍚姩瀹屾瘯 *****************" + "\n");
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.MONTH, 5);
+        calendar.set(Calendar.DAY_OF_MONTH, 8);
+        calendar.set(Calendar.HOUR_OF_DAY, 13);
+
+        warningAnalyseService.warningOperationStorage(calendar.getTime());
     }
 }
diff --git a/src/main/java/com/yssh/scheduled/ReadCsvTask.java b/src/main/java/com/yssh/scheduled/ReadCsvTask.java
index 3e2e27d..c832961 100644
--- a/src/main/java/com/yssh/scheduled/ReadCsvTask.java
+++ b/src/main/java/com/yssh/scheduled/ReadCsvTask.java
@@ -124,7 +124,7 @@
 
 			try {
 				// 璁$畻棰勮/鎶ヨ,骞朵笖杩涜鍏ュ簱鎿嶄綔
-				Thread.sleep(10000); // 60000
+				Thread.sleep(2 * 60 * 1000);
 			} catch (InterruptedException e) {
 				logger.error("鐫$湢涓�鍒嗛挓鍚庢墽琛岄璀�/鎶ヨ璁$畻,骞朵笖杩涜鍏ュ簱鎿嶄綔鍑虹幇寮傚父锛屽紓甯稿師鍥犳槸锛�", e);
 				e.printStackTrace();
@@ -162,7 +162,7 @@
 		EasyCsv.read(filePath, SuYuan.class, new CsvParser(suYuanService, time)).doRead();
 		//璁$畻棰勮/鎶ヨ,骞朵笖杩涜鍏ュ簱鎿嶄綔
 		try {
-			Thread.sleep(1000 * 60 * 1);
+			Thread.sleep(60 * 1000);
 		} catch (InterruptedException e) {
 			logger.error("鐫$湢涓�鍒嗛挓鍚庢墽琛岄璀�/鎶ヨ璁$畻,骞朵笖杩涜鍏ュ簱鎿嶄綔鍑虹幇寮傚父锛屽紓甯稿師鍥犳槸锛�", e);
 			e.printStackTrace();
diff --git a/src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java b/src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java
index 55af0f0..59c84fe 100644
--- a/src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java
+++ b/src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java
@@ -83,7 +83,7 @@
         Calendar calendar = getCalendar(nowDate);
         for (int i = 0; i < 3; i++) {
             calendar.add(Calendar.HOUR, -1);
-            List<WarningDetail> rs = alarmAnalyseOperation(calendar.getTime());
+            List<WarningDetail> rs = getAlarmWarnAnalyse(calendar.getTime(), false);
             if (null != rs && rs.size() > 0) {
                 list.addAll(rs);
             }
@@ -117,7 +117,7 @@
         Calendar calendar = getCalendar(nowDate);
         for (int i = 0; i < 3; i++) {
             calendar.add(Calendar.HOUR, -1);
-            List<WarningDetail> rs = warningAnalyseOperation(calendar.getTime());
+            List<WarningDetail> rs = getAlarmWarnAnalyse(calendar.getTime(), true);
             if (null != rs && rs.size() > 0) {
                 list.addAll(rs);
             }
@@ -128,70 +128,44 @@
         return result;
     }
 
-    public List<WarningDetail> alarmAnalyseOperation(Date date) {
-        List<WarningDetail> result = new ArrayList<>();
-        String time = DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, date);
+    private List<WarningDetail> getAlarmWarnAnalyse(Date date, boolean isWarn) {
         List<String> ids = CalculateUtils.assembleId(commonService.getCheckPoints3d());
-        if (ids.size() == 0) {
-            return result;
-        }
-        DictRecord dictRecord = dictRecordMapper.selectByCreateTime(Long.parseLong(time));
-        if (null == dictRecord) {
-            return result;
-        }
-        String tableName = dictRecord.getTableName();
-        if (suYuanMapper.isTableExists(tableName) == 0) {
-            return result;
-        }
 
-        List<SuYuan2d> list = suYuanMapper.getAlarmsAnalyse(tableName, ids);
-        if (null != list && list.size() > 0) {
-            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;
-    }
-
-    public List<WarningDetail> warningAnalyseOperation(Date date) {
-        List<WarningDetail> result = new ArrayList<>();
         String time = DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, date);
-        List<String> ids = CalculateUtils.assembleId(commonService.getCheckPoints3d());
-        if (ids.size() == 0) {
-            return result;
-        }
         DictRecord dictRecord = dictRecordMapper.selectByCreateTime(Long.parseLong(time));
-        if (null == dictRecord) {
-            return result;
-        }
+        if (null == dictRecord) return null;
+
         String tableName = dictRecord.getTableName();
-        if (suYuanMapper.isTableExists(tableName) == 0) {
-            return result;
+        if (suYuanMapper.isTableExists(tableName) == 0) return null;
+
+        List<SuYuan2d> list = isWarn ? suYuanMapper.getWarningAnalyse(tableName, ids) : suYuanMapper.getAlarmsAnalyse(tableName, ids);
+        if (null == list || list.isEmpty()) {
+            return null;
         }
 
-        List<SuYuan2d> list = suYuanMapper.getWarningAnalyse(tableName, ids);
-        if (null != list && list.size() > 0) {
-            for (SuYuan2d s : list) {
-                String locationName = commonService.select3dCheckPointById(s.getId()).getName();
-                result.add(new WarningDetail(0L, tableName, s.getId(), locationName, date, 1, s.getValue()));
-            }
+        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()));
         }
+
         return result;
     }
 
     @Override
     public void warningOperationStorage(Date date) {
         List<WarningDetail> allData = new ArrayList<>();
-        List<WarningDetail> alarms = this.alarmAnalyseOperation(date);
+        List<WarningDetail> alarms = this.getAlarmWarnAnalyse(date, false);
         if (StringUtils.isNotEmpty(alarms)) {
             allData.addAll(alarms);
         }
-        List<WarningDetail> warnings = this.warningAnalyseOperation(date);
+
+        List<WarningDetail> warnings = this.getAlarmWarnAnalyse(date, true);
         if (StringUtils.isNotEmpty(warnings)) {
             allData.addAll(warnings);
         }
+
         if (StringUtils.isNotEmpty(allData)) {
             try {
                 insertWarningDetails(allData);
diff --git a/src/main/java/com/yssh/utils/CalculateUtils.java b/src/main/java/com/yssh/utils/CalculateUtils.java
index 267b97a..4f494c3 100644
--- a/src/main/java/com/yssh/utils/CalculateUtils.java
+++ b/src/main/java/com/yssh/utils/CalculateUtils.java
@@ -49,9 +49,10 @@
 	 * @Description: 缁勮id
 	 */
 	public static List<String> assembleId(List<MonitorPointPosition> checkPoints) {
-		List<String> ids2d = new ArrayList<String>();
+		List<String> ids2d = new ArrayList<>();
 		for (MonitorPointPosition point : checkPoints) {
-			ids2d.add(point.getX() + "_" + point.getY() + "_" + point.getZ());
+			// ids2d.add(point.getX() + "_" + point.getY() + "_" + point.getZ());
+			ids2d.add(point.getX() + "_" + point.getY() + "_" + 0);
 		}
 		return ids2d;
 	}
@@ -66,7 +67,7 @@
 	 * @backup 寮哄埗灏嗗眰绾ф敼涓� 0
 	 */
 	public static List<String> aloneCrosswiseExtend(MonitorPointPosition checkPoint, int range) {
-		List<String> ids = new ArrayList<String>();
+		List<String> ids = new ArrayList<>();
 		Integer x = checkPoint.getX();
 		Integer y = checkPoint.getY();
 		for (int i = x - range / 2; i <= x + range / 2; i++) {
@@ -79,7 +80,7 @@
 	}
 
 	public static List<String> temporary(MonitorPointPosition point, int range) {
-		List<String> ids3d = new ArrayList<String>();
+		List<String> ids3d = new ArrayList<>();
 		Integer x = point.getX();
 		Integer y = point.getY();
 		Integer z = point.getZ();
diff --git a/src/main/resources/mapping/SuYuanMapper.xml b/src/main/resources/mapping/SuYuanMapper.xml
index a574b5f..404a175 100644
--- a/src/main/resources/mapping/SuYuanMapper.xml
+++ b/src/main/resources/mapping/SuYuanMapper.xml
@@ -111,7 +111,7 @@
     	<foreach collection="ids" item="item" open="(" separator="," close=")">
     		#{item}
     	</foreach>
-    	AND c > (SELECT jcbj FROM alert_config LIMIT 0, 1)
+    	AND c > (SELECT jcbj FROM alert_config LIMIT 1)
     </select>
     
     <select id="getWarningAnalyse" resultMap="SuYuan2dResult">
@@ -121,7 +121,7 @@
     	<foreach collection="ids" item="item" open="(" separator="," close=")">
     		#{item}
     	</foreach>
-    	AND c > (SELECT jcyj FROM alert_config LIMIT 0, 1)
+    	AND c > (SELECT jcyj FROM alert_config LIMIT 1)
     </select>
     
     <select id="getMonitorData" resultMap="SuYuanMonitorDataResult">

--
Gitblit v1.9.3