Răsfoiți Sursa

报警分类细化 缺失的逻辑完善

王苗苗 1 lună în urmă
părinte
comite
787ad7cbbd

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

@@ -428,14 +428,15 @@ public class BusinessEnum {
         CBZZ(0, "超标准值"),
         CGKZ(1, "超管控值"),
         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, "连续检测数据同步失败"),
+        YBGZ_DD_MORE_GYK(3, "工业库仪表故障(多指标断点)"),
+        YBGZ_DD_MORE_HYS(4, "连续检测仪表故障(多指标断点)"),
+        YBGZ_LX_SINGLE(5, "仪表故障(单指标连续不变)"),
+        YBGZ_LX_MORE(6, "仪表故障(多指标连续不变)"),
+        SJYC_YCSG(7, "数据异常(单点突变 - 异常升高)"),
+        SJYC_YCPD(8, "数据异常(单点突变 - 异常偏低)"),
+//        SJYC_DDYC(9, "数据异常(单点异常 - 超过标准值)"),  //此种类型 代维导致异常的,现在无规律,无法处理
+        INDUSTRY_SYNC_ERROR(10, "在线仪表数据同步失败"),
+        ROBOT_SYNC_ERROR(11, "连续检测数据同步失败"),
         ;
 
         private final Integer code;

+ 19 - 15
slibra-quartz/src/main/java/com/slibra/quartz/task/AsyncTask.java

@@ -1577,7 +1577,7 @@ public class AsyncTask {
         //下面是处理多个指标的 【断点】和 连续不变的报警
         //断点
         Date nowDate = DateUtils.getNowDate();
-        TXinyiWarningRecord warningRecord = TXinyiWarningRecord.builder().symbol(BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE.getCode()).status(0).build();
+        TXinyiWarningRecord warningRecord = TXinyiWarningRecord.builder().symbol(BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE_GYK.getCode()).status(0).build();
         List<TXinyiWarningRecord> tXinyiWarningRecords = this.xinyiWarningRecordMapper.selectTXinyiWarningRecordList(warningRecord);
         if(breakpointCount < 1){//恢复正常 关闭多个断点报警
             if(!CollectionUtils.isEmpty(tXinyiWarningRecords)){
@@ -1601,16 +1601,16 @@ public class AsyncTask {
             }
         }else{
             //将其他类型的报警全部关闭
-            closeOtherWarningsBySymbol(BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE.getCode());
+            closeOtherWarningsBySymbol(BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE_GYK.getCode());
             //再新增新的类型的报警
             if(CollectionUtils.isEmpty(tXinyiWarningRecords)){
                 //插入该类型报警
                 warningRecord.setType(0);
-                String msg = BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE.getMsg();
+                String msg = BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE_GYK.getMsg();
                 warningRecord.setCategory(msg);
                 warningRecord.setTime(nowDate);
                 warningRecord.setReason(msg);
-                warningRecord.setSymbol(BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE.getCode());
+                warningRecord.setSymbol(BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE_GYK.getCode());
                 warningRecord.setCreateBy(WARNING_DEFAULT_CREATE);
                 warningRecord.setCreateTime(nowDate);
                 this.xinyiWarningRecordMapper.insertTXinyiWarningRecord(warningRecord);
@@ -1642,7 +1642,7 @@ public class AsyncTask {
                 //插入该类型报警
                 this.xinyiWarningRecordMapper.insertTXinyiWarningRecord(noChangeWarningRecord);
                 //同时处理决策 不用调用大模型,本地处理问答
-                addChatRecordByBreakPointsSingle(noChangeWarningRecord, tXinyiIndustry, normConfig, category);
+                addChatRecordByNoChangeSingle(noChangeWarningRecord, tXinyiIndustry, normConfig, category);
             }else{
                 log.info("工业库报警的时候,发现存在仪表故障(连续不变单个指标)的报警,并且已经有该类型报警了,不做任何处理");
             }
@@ -2265,7 +2265,7 @@ public class AsyncTask {
                 warningRecord.setType(0);
                 warningRecord.setCategory(category);
                 warningRecord.setTime(nowDate);
-                warningRecord.setReason(BusinessEnum.WarningSymbolEnum.YBGZ_DD_SINGLE.getMsg());
+                warningRecord.setReason(category + BusinessEnum.WarningSymbolEnum.YBGZ_DD_SINGLE.getMsg());
                 warningRecord.setWaterType(BusinessEnum.WaterTypeEnum.CS.getCode());
                 warningRecord.setSymbol(BusinessEnum.WarningSymbolEnum.YBGZ_DD_SINGLE.getCode());
                 warningRecord.setCreateBy(WARNING_DEFAULT_CREATE);
@@ -2295,7 +2295,7 @@ public class AsyncTask {
                 warningRecordNoChangeSingle.setType(0);
                 warningRecordNoChangeSingle.setCategory(category);
                 warningRecordNoChangeSingle.setTime(nowDate);
-                warningRecordNoChangeSingle.setReason(BusinessEnum.WarningSymbolEnum.YBGZ_LX_SINGLE.getMsg());
+                warningRecordNoChangeSingle.setReason(category +  BusinessEnum.WarningSymbolEnum.YBGZ_LX_SINGLE.getMsg());
                 warningRecordNoChangeSingle.setWaterType(BusinessEnum.WaterTypeEnum.CS.getCode());
                 warningRecordNoChangeSingle.setSymbol(BusinessEnum.WarningSymbolEnum.YBGZ_LX_SINGLE.getCode());
                 warningRecordNoChangeSingle.setCreateBy(WARNING_DEFAULT_CREATE);
@@ -2632,7 +2632,7 @@ public class AsyncTask {
                 warningRecord.setType(0);
                 warningRecord.setCategory(category);
                 warningRecord.setTime(nowDate);
-                warningRecord.setReason(BusinessEnum.WarningSymbolEnum.YBGZ_DD_SINGLE.getMsg());
+                warningRecord.setReason(category + BusinessEnum.WarningSymbolEnum.YBGZ_DD_SINGLE.getMsg());
                 warningRecord.setWaterType(BusinessEnum.WaterTypeEnum.JS.getCode());
                 warningRecord.setSymbol(BusinessEnum.WarningSymbolEnum.YBGZ_DD_SINGLE.getCode());
                 warningRecord.setCreateBy(WARNING_DEFAULT_CREATE);
@@ -2660,7 +2660,7 @@ public class AsyncTask {
                 warningRecordNoChangeSingle.setType(0);
                 warningRecordNoChangeSingle.setCategory(category);
                 warningRecordNoChangeSingle.setTime(nowDate);
-                warningRecordNoChangeSingle.setReason(BusinessEnum.WarningSymbolEnum.YBGZ_LX_SINGLE.getMsg());
+                warningRecordNoChangeSingle.setReason(category + BusinessEnum.WarningSymbolEnum.YBGZ_LX_SINGLE.getMsg());
                 warningRecordNoChangeSingle.setWaterType(BusinessEnum.WaterTypeEnum.JS.getCode());
                 warningRecordNoChangeSingle.setSymbol(BusinessEnum.WarningSymbolEnum.YBGZ_LX_SINGLE.getCode());
                 warningRecordNoChangeSingle.setCreateBy(WARNING_DEFAULT_CREATE);
@@ -2715,7 +2715,7 @@ public class AsyncTask {
                 warningRecord.setType(0);
                 warningRecord.setCategory(category);
                 warningRecord.setTime(nowDate);
-                warningRecord.setReason(BusinessEnum.WarningSymbolEnum.YBGZ_DD_SINGLE.getMsg());
+                warningRecord.setReason(category + BusinessEnum.WarningSymbolEnum.YBGZ_DD_SINGLE.getMsg());
                 warningRecord.setWaterType(BusinessEnum.WaterTypeEnum.JS.getCode());
                 warningRecord.setSymbol(BusinessEnum.WarningSymbolEnum.YBGZ_DD_SINGLE.getCode());
                 warningRecord.setCreateBy(WARNING_DEFAULT_CREATE);
@@ -2763,6 +2763,8 @@ public class AsyncTask {
             //2025年02月21日14:33:37 这里要改成当前值和上个小时比较  上个小时和上上个小时比较
             BigDecimal exceedVal = existsYCSG(currentVal, category, tXinyiIndustries);
             if(!Objects.isNull(exceedVal)){//这里不能只返回一个布尔类型的结果,因为还要获取百分比的值
+                //关闭同类型的其他报警
+                closeOtherWarningsByCategory(category, BusinessEnum.WarningSymbolEnum.SJYC_YCSG.getCode());
                 //触发报警 并且模拟大模型返回决策问答数据
                 if(CollectionUtils.isEmpty(tXinyiNoChangeYCSGRecords)){
                     //插入该类型报警
@@ -2801,6 +2803,8 @@ public class AsyncTask {
             //2025年02月21日15:05:41 这里只需要比较当前值和标准值的差 以及上个小时的值和标准值的差 所以不用取最近3个小时的
             BigDecimal exceedVal = existsYCPD(currentVal, category, tXinyiIndustry1, jsBzz);
             if(!Objects.isNull(exceedVal)){//这里不能只返回一个布尔类型的结果,因为还要获取百分比的值
+                //关闭同类型的其他报警
+                closeOtherWarningsByCategory(category, BusinessEnum.WarningSymbolEnum.SJYC_YCPD.getCode());
                 //触发报警 并且模拟大模型返回决策问答数据
                 if(CollectionUtils.isEmpty(tXinyiNoChangeYCPDRecords)){
                     //插入该类型报警
@@ -3725,7 +3729,7 @@ public class AsyncTask {
         chatReq.setUserId(WARNING_DEFAULT_CREATE);
         String showVal = this.buildShowValue(tXinyiWarningRecord, tXinyiIndustry, normConfig, DateUtils.getNowDate());
         chatReq.setShowVal(showVal);//前端展示的数据和提问的数据不一致
-        chatReq.setQuestion(BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE.getMsg());//本地问题
+        chatReq.setQuestion(BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE_GYK.getMsg());//本地问题
         chatReq.setAnswer(MORE_BREAKPOINT_ANSWER);
         chatReq.setWarningId(String.valueOf(tXinyiWarningRecord.getId()));
         chatReq.setCounts(1);//问答次数
@@ -4016,7 +4020,7 @@ public class AsyncTask {
         //下面是处理多个指标的 【断点】报警
         //断点
         Date nowDate = DateUtils.getNowDate();
-        TXinyiWarningRecord warningRecord = TXinyiWarningRecord.builder().symbol(BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE.getCode()).status(0).build();
+        TXinyiWarningRecord warningRecord = TXinyiWarningRecord.builder().symbol(BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE_HYS.getCode()).status(0).build();
         List<TXinyiWarningRecord> tXinyiWarningRecords = this.xinyiWarningRecordMapper.selectTXinyiWarningRecordList(warningRecord);
         if(breakpointCount < 1){//恢复正常 关闭多个断点报警
             if(!CollectionUtils.isEmpty(tXinyiWarningRecords)){
@@ -4040,16 +4044,16 @@ public class AsyncTask {
             }
         }else{
             //将其他类型的报警全部关闭
-            closeOtherWarningsBySymbol(BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE.getCode());
+            closeOtherWarningsBySymbol(BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE_HYS.getCode());
             //再新增新的类型的报警
             if(CollectionUtils.isEmpty(tXinyiWarningRecords)){
                 //插入该类型报警
                 warningRecord.setType(0);
-                String msg = BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE.getMsg();
+                String msg = BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE_HYS.getMsg();
                 warningRecord.setCategory(msg);
                 warningRecord.setTime(nowDate);
                 warningRecord.setReason(msg);
-                warningRecord.setSymbol(BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE.getCode());
+                warningRecord.setSymbol(BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE_HYS.getCode());
                 warningRecord.setCreateBy(WARNING_DEFAULT_CREATE);
                 warningRecord.setCreateTime(nowDate);
                 this.xinyiWarningRecordMapper.insertTXinyiWarningRecord(warningRecord);