Selaa lähdekoodia

产生预警事件时,自动生成相关描述
调整预警方案的定时器时间

andyliu 1 kuukausi sitten
vanhempi
commit
2b249ca7fc

+ 19 - 2
src/main/java/com/shkpr/service/warncore/bizhandler/CommToolHandler.java

@@ -1,16 +1,15 @@
 package com.shkpr.service.warncore.bizhandler;
 
 import com.shkpr.service.warncore.commtools.CommTool;
+import com.shkpr.service.warncore.commtools.TimeTool;
 import com.shkpr.service.warncore.dbdao.DBMgrProxy;
 import com.shkpr.service.warncore.dbdao.services.intef.OrdWarnEventInfoDBService;
 import com.shkpr.service.warncore.dbdao.services.intef.OrdWarnPlanInfoDBService;
 import com.shkpr.service.warncore.dbdao.tables.OrdWarnEventInfoTable;
-import com.shkpr.service.warncore.dbdao.tables.OrdWarnPlanInfoTable;
 import com.shkpr.service.warncore.dto.OrdWarnRuleCondition;
 import com.shkpr.service.warncore.dto.ResponseCode;
 import org.springframework.util.StringUtils;
 
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -96,4 +95,22 @@ public class CommToolHandler {
         }
         return code;
     }
+
+    public static String genUnionEventRemark(String zoneName, String itemName, long eventTime){
+        if (StringUtils.isEmpty(zoneName) || StringUtils.isEmpty(itemName) || eventTime <= 0L)
+            return "";
+        StringBuilder remark = new StringBuilder(zoneName);
+        remark.append("于")
+                .append(TimeTool.convertUTC2DateStr(eventTime, TimeTool.TIMESTAMP_FORMAT))
+                .append("发生了");
+        String arrItemName[] = itemName.split("--");
+        if (arrItemName != null && arrItemName.length >= 2){
+            if (arrItemName[0].equals(arrItemName[1])){
+                remark.append("【").append(arrItemName[0]).append("】报警");
+            }else
+                remark.append("【").append(itemName).append("】报警");
+        }else
+            remark.append("【").append(itemName).append("】报警");
+        return remark.toString();
+    }
 }

+ 3 - 1
src/main/java/com/shkpr/service/warncore/bizhandler/SiteDataWarnHandler.java

@@ -171,7 +171,7 @@ public class SiteDataWarnHandler {
         if (code == ResponseCode.RESULT_NORMAL){
             if (planDetail.getItemKey().endsWith("empty")){//无数据
                 code = analysisDataForReportByHour(planDetail, rules, thisStepTempRes);
-            }else if (planDetail.getItemKey().endsWith("swo")){//小时水量
+            }else if (planDetail.getItemKey().endsWith("shwo")){//小时水量
                 code = analysisDataForReportByHour(planDetail, rules, thisStepTempRes);
             }else {
                 if ("set".equals(planDetail.getDoPickWay())){//时段曲线
@@ -198,6 +198,7 @@ public class SiteDataWarnHandler {
     }
 
     //处理站点的实时样本曲线
+    //该算法不支持跨天的事件合并
     private static ResponseCode analysisDataForRealBySet(OrdWarnPlanDetail planDetail, List<OrdWarnPlanRules> rules, OrdWarnPlanTempStep thisTempStep){
         String step = "Start to deep analysis";
         ResponseCode code = ResponseCode.RESULT_NORMAL;
@@ -451,6 +452,7 @@ public class SiteDataWarnHandler {
     }
 
     //处理站点时段的小时统计数据
+    //该算法不支持跨天的事件合并
     private static ResponseCode analysisDataForReportByHour(OrdWarnPlanDetail planDetail, List<OrdWarnPlanRules> rules, OrdWarnPlanTempStep thisTempStep){
         String step = "Start to deep analysis";
         ResponseCode code = ResponseCode.RESULT_NORMAL;

+ 2 - 0
src/main/java/com/shkpr/service/warncore/bizhandler/ZoneDataWarnHandler.java

@@ -412,6 +412,8 @@ public class ZoneDataWarnHandler {
         return code;
     }
 
+    //按小时分析时,不支持跨天的事件合并
+    //按日/月分析时,支持跨天/月的事件合并
     private static ResponseCode analysisDataStepByStep(OrdWarnPlanDetail planDetail, List<OrdWarnPlanRules> rules, OrdWarnPlanTempStep thisTempStep){
         String step = "Start to deep analysis";
         ResponseCode code = ResponseCode.RESULT_NORMAL;

+ 1 - 0
src/main/java/com/shkpr/service/warncore/dto/OrdWarnPlanDetail.java

@@ -8,6 +8,7 @@ import lombok.Setter;
 public class OrdWarnPlanDetail {
     private String uid = "";
     private String itemKey = "";
+    private String itemName = "";
     private String title ="";
     private String ownerSrc = "";
     private String ownerId = "";

+ 3 - 0
src/main/java/com/shkpr/service/warncore/jsonbean/JPOrdWarnEventInfo.java

@@ -2,6 +2,7 @@ package com.shkpr.service.warncore.jsonbean;
 
 import com.global.base.tools.FastJsonUtil;
 import com.global.base.tools.RandomUtil;
+import com.shkpr.service.warncore.bizhandler.CommToolHandler;
 import com.shkpr.service.warncore.commtools.CommTool;
 import com.shkpr.service.warncore.dto.OrdWarnEventRule;
 import com.shkpr.service.warncore.dto.OrdWarnPlanDetail;
@@ -44,6 +45,7 @@ public class JPOrdWarnEventInfo {
     private long updateTime = 0L;
     private int sendway = 3;
     private String planBatch = "";
+    private String remark = "";
 
     public JPOrdWarnEventInfo() {
     }
@@ -73,6 +75,7 @@ public class JPOrdWarnEventInfo {
         this.updateTime = eventTime;
         this.uid = CommTool.genWarnEventId(eventTime, "");
         this.title = String.format("%s--%s--%s事件", planDetail.getTitle(), this.uid.substring(5,15), RandomUtil.getDigitalRandomStr(4));
+        this.remark = CommToolHandler.genUnionEventRemark(planDetail.getOwner(), planDetail.getItemName(), eventTime);
     }
 
     private String formatRule(List<OrdWarnPlanRules> rules){

+ 6 - 6
src/main/resources/application.properties

@@ -124,12 +124,12 @@ cron.refresh.timer.clock=0 0-5 0 * * ?
 cron.clear.local.cache=0 15 0 * * ?
 #\u6BCF\u5206\u949F\u7684\u7B2C20\u79D2\u6267\u884C\u4E00\u6B21
 cron.check.minute.warn=20 0/1 * * * ?
-#\u6BCF\u4E2A\u6574\u70B9\u7684\u7B2C10\u5206\u949F\u6267\u884C\u4E00\u6B21
-cron.check.hour.warn=0 10 * * * ?
-#\u6BCF\u592900:30:00\u6267\u884C\u4E00\u6B21
-cron.check.day.warn=0 30 0 * * ?
-#\u6BCF\u67081\u65E5\u768401:00:00\u6267\u884C\u4E00\u6B21
-cron.check.month.warn=0 0 1 1 * ?
+#\u6BCF\u4E2A\u6574\u70B9\u7684\u7B2C40\u5206\u949F\u6267\u884C\u4E00\u6B21
+cron.check.hour.warn=0 40 * * * ?
+#\u6BCF\u592920:00:00\u6267\u884C\u4E00\u6B21
+cron.check.day.warn=0 00 20 * * ?
+#\u6BCF\u670826\u65E5\u768401:00:00\u6267\u884C\u4E00\u6B21
+cron.check.month.warn=0 0 1 26 * ?
 
 #\u4E07\u7EF4\u7F51\u8BBF\u95EE\u7684\u4EE3\u7406\u5730\u5740(\u4E3A\u7A7A\u65F6\uFF0C\u8BBF\u95EE\u4E07\u7EF4\u7F51\u4E0D\u4F7F\u7528\u4EE3\u7406)
 global.www.proxy.address=