Ver código fonte

新增工业库的其他类型的报警处理

王苗苗 1 mês atrás
pai
commit
e8b9aeeb9d

+ 24 - 0
slibra-common/src/main/java/com/slibra/common/constant/MyConstants.java

@@ -420,6 +420,30 @@ public class MyConstants {
 
     //2024年10月25日09:17:04 新增登录使用的秘钥
     public static final String LOGIN_SECRET_KEY = "qwertasdfg159753";
+
+    //断点且多个水质都发生断点解决方案
+    public static final String SINGLE_BREAKPOINT_ANSWER_PREFIX = "数据发生断点问题,经排查网络连接没有问题,但可能是现场的";
+    public static final String SINGLE_BREAKPOINT_ANSWER_SUFFIX = "仪表出现了故障,或者仪表的数据输出模块可能存在问题。这些问题可能导致仪表无法正确传输数据,需要检查仪表及其连接部分,确保数据能够正常采集和传输。";
+
+    public static final String MORE_BREAKPOINT_ANSWER = "数据发生断点问题,经排查可能是中控上位机系统出现了故障,或者数据传输网络和相关设备存在问题,也有可能是仪表站房发生了停电故障。这些因素都可能影响系统的正常运行,建议检查上位机系统、网络设备以及仪表站房的电力供应,确保各个环节都正常工作。";
+
+    public static final String SINGLE_NO_CHANGE_ANSWER_ONE = "数据发生连续不变,经排查";
+    public static final String SINGLE_NO_CHANGE_ANSWER_TWO = "仪表可能存在堵塞或故障,或者仪表的数据输出模块可能出现问题,这可能导致数据无法正常传输。建议检查";
+    public static final String SINGLE_NO_CHANGE_ANSWER_THREE = "仪表是否有堵塞情况,同时检查仪表的输出模块是否工作正常,确保数据的准确采集和传输。";
+
+    public static final String MORE_NO_CHANGE_ANSWER = "数据发生连续不变,经排查可能是数据传输网络或相关设备出现了问题,或者中控上位机系统本身存在故障。这些问题可能影响数据的正常传输和系统的稳定运行。建议检查网络连接、设备状态以及中控上位机系统,确保它们正常工作以避免数据丢失或系统故障。";
+
+
+    public static final String YCSG_ANSWER_ONE = "水质数据发生突变,突变增幅";
+    public static final String YCSG_ANSWER_TWO = ",突变前数据";
+    public static final String YCSG_ANSWER_THREE = ",建议检查仪表状态或进行人工取样校核。如果问题已经得到解决,请标记为已解决状态,无需进一步处理。但仍建议继续观察,以确保问题不再复发。";
+
+    public static final double YCSG_VAL_CONF = 0.5D;
+    public static final double YCPD_VAL_CONF = 0.7D;
+
+    public static final String YCPD_ANSWER_ONE = "水质数据发生异常偏低,低于设计值";
+    public static final String YCPD_ANSWER_TWO = ",建议检查仪表状态或进行人工取样校核,仪表可能存在堵塞或者故障,如果问题已经得到解决,请标记为已解决状态,无需进一步处理。但仍建议继续观察,以确保问题不再复发。";
+
     public static void main(String[] args) {
         System.out.println(DecimalUtils.getAbsAndScale(new BigDecimal("2.211"), MyConstants.INT_0));
         System.out.println(DecimalUtils.getAbsAndScaleStr("2.211", MyConstants.INT_0));

+ 9 - 5
slibra-common/src/main/java/com/slibra/common/enums/BusinessEnum.java

@@ -427,11 +427,15 @@ public class BusinessEnum {
     {
         CBZZ(0, "超标准值"),
         CGKZ(1, "超管控值"),
-        YBGZ_DD(2, "仪表故障(断点)"),
-        YBGZ_LX(3, "仪表故障(连续不变)"),
-        SJYC_YCSG(4, "数据异常(单点突变 - 异常升高)"),
-        SJYC_YCPD(5, "数据异常(单点突变 - 异常偏低)"),
-        SJYC_DDYC(6, "数据异常(单点异常 - 超过标准值)"),
+        YBGZ_DD_SINGLE(2, "仪表故障(单指标断点)"),
+        YBGZ_DD_MORE(3, "仪表故障(多指标断点)"),
+        YBGZ_LX_SINGLE(4, "仪表故障(单指标连续不变)"),
+        YBGZ_LX_MORE(5, "仪表故障(多指标连续不变)"),
+        SJYC_YCSG(6, "数据异常(单点突变 - 异常升高)"),
+        SJYC_YCPD(7, "数据异常(单点突变 - 异常偏低)"),
+        SJYC_DDYC(8, "数据异常(单点异常 - 超过标准值)"),
+        INDUSTRY_SYNC_ERROR(9, "在线仪表数据同步失败"),
+        ROBOT_SYNC_ERROR(10, "连续检测数据同步失败"),
         ;
 
         private final Integer code;

+ 10 - 0
slibra-common/src/main/java/com/slibra/common/utils/DateUtils.java

@@ -274,5 +274,15 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
         System.out.println(date1);
         System.out.println(getMonthsBefore("2024-02", 2));*/
         System.out.println(plusHour(-1, getNowDate()));
+
+        Date nowDate = DateUtils.getNowDate();
+        Date warningDate = null;
+        try {
+            warningDate = DateUtils.parseDate("2025/02/20 10", DateUtils.YYYYMMDDHH_TS);
+        } catch (ParseException e) {
+            throw new RuntimeException(e.getMessage());
+        }
+        int hours = DateUtils.differentHoursByMillisecond(nowDate, warningDate);
+        System.out.println("hours = " + hours);
     }
 }

Diferenças do arquivo suprimidas por serem muito extensas
+ 905 - 27
slibra-quartz/src/main/java/com/slibra/quartz/task/AsyncTask.java


+ 0 - 1
slibra-quartz/src/main/java/com/slibra/quartz/task/RyTask.java

@@ -448,7 +448,6 @@ public class RyTask
         List<TXinyiCalculate> tXinyiCalculates = this.xinyiCalculateMapper.selectTXinyiCalculateList(TXinyiCalculate.builder().testHour(industry.getTestHour()).build());
         if(CollectionUtils.isEmpty(tXinyiCalculates))
             throw new ServiceException("未查询到最新的工业库对应的计算数据");//理论上不会
-        //todo 特殊情况:工业库一直挂掉了,一直是同一条报警。需要增加一个记录,处理报警规则: 普通的不再报警、但是仪表故障相关的需要报出来  后续完善
         asyncTask.handleWarning(industry, normConfig, tXinyiCalculates.get(0));
     }
 

+ 3 - 0
slibra-system/src/main/java/com/slibra/business/domain/TXinyiWarningRecord.java

@@ -156,4 +156,7 @@ public class TXinyiWarningRecord extends BaseEntity
     public static void main(String[] args) {
         System.out.println(BusinessEnum.WarningSymbolEnum.getMsgByCode(1));
     }
+
+    public void setCategory() {
+    }
 }

+ 27 - 0
slibra-system/src/main/java/com/slibra/business/domain/WarningMoreExceed.java

@@ -0,0 +1,27 @@
+package com.slibra.business.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.slibra.common.annotation.Excel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Builder
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class WarningMoreExceed
+{
+    private static final long serialVersionUID = 1L;
+
+    private boolean breakpoint = false;//是否断点
+
+    private boolean noChange = false;//连续不变
+
+
+}
+

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff