Parcourir la source

化验室报警逻辑tiaoz

王苗苗 il y a 4 semaines
Parent
commit
11ec5f8e9a
1 fichiers modifiés avec 125 ajouts et 94 suppressions
  1. 125 94
      slibra-quartz/src/main/java/com/slibra/quartz/task/AsyncTask.java

+ 125 - 94
slibra-quartz/src/main/java/com/slibra/quartz/task/AsyncTask.java

@@ -2991,7 +2991,7 @@ public class AsyncTask {
      * @param category
      * @return
      */
-    private WarningMoreExceed handleXinYiWarningRecordRobotMore(BigDecimal currentVal, String category)  {
+    private WarningMoreExceed handleXinYiWarningRecordRobotMore(BigDecimal csBzz, BigDecimal currentVal, BigDecimal csGkz, String category, TXinyiIndustry tXinyiIndustry, TXinyiNormConfig normConfig, BigDecimal cwrwfhz)  {
         WarningMoreExceed warningMoreExceed = new WarningMoreExceed();
         boolean breakpoint = false;
 
@@ -3015,15 +3015,19 @@ public class AsyncTask {
                 breakpoint = true;
                 //触发报警 并且模拟大模型返回决策问答数据
                 //插入该类型报警
-                warningRecord.setType(0);
-                warningRecord.setCategory(category);
                 warningRecord.setTime(nowDate);
                 warningRecord.setReason(category + BusinessEnum.WarningSymbolEnum.YBGZ_DD_SINGLE.getMsg());
-                warningRecord.setWaterType(BusinessEnum.WaterTypeEnum.JS.getCode());
+                warningRecord.setWaterType(BusinessEnum.WaterTypeEnum.CS.getCode());
                 warningRecord.setSymbol(BusinessEnum.WarningSymbolEnum.YBGZ_DD_SINGLE.getCode());
                 warningRecord.setCreateBy(WARNING_DEFAULT_CREATE);
                 warningRecord.setCreateTime(nowDate);
                 warningRecord.setWarningVal(currentVal);
+                warningRecord.setDesignVal(csBzz);
+                warningRecord.setControlVal(csGkz);
+                warningRecord.setRemark(THREE_HYS_WARNING.getCode());//化验室
+                warningRecord.setCwrwfhz(cwrwfhz);//2025年02月14日10:42:53 具体指标具体计算,由上游传过来。
+                warningRecord.setCwrwxz(getCwrwxzByDetail(currentVal, normConfig, category, false));//根据当前值和类型以及是否超标处理
+                //存起来
                 warningMoreExceed.setBreakPointWarningRecord(warningRecord);
 //                this.xinyiWarningRecordMapper.insertTXinyiWarningRecord(warningRecord);
                 //同时处理决策 不用调用大模型,本地处理问答
@@ -4294,9 +4298,22 @@ public class AsyncTask {
         BigDecimal no3Qyc2Jqr = tXinyiRobot.getNo3Qyc2Jqr();
         BigDecimal nh32Jqr = tXinyiRobot.getNh32Jqr();
 
+        //总氮的标准值和管控值
+        BigDecimal cszzBzz = normConfig.getCszzBzz();
+        BigDecimal cszzGkz = normConfig.getCszzGkz();
+        //氨氮的标准值和管控值
+        BigDecimal csadBzz = normConfig.getCsadBzz();
+        BigDecimal csadGkz = normConfig.getCsadGkz();
+
+        BigDecimal jsSlq = tXinyiIndustry.getJsSlq();
+        BigDecimal jsslSjz = normConfig.getJsslSjz();
+
+        BigDecimal cszlBzz = normConfig.getCszlBzz();
+        BigDecimal cszlGkz = normConfig.getCszlGkz();
+
         WarningMoreExceed warningMoreExceed = null;
         if(!Objects.isNull(no3Hlj1Jqr)){
-            warningMoreExceed = handleXinYiWarningRecordRobotMore(no3Hlj1Jqr, ROBOT_XSY_1.getCode());
+            warningMoreExceed = handleXinYiWarningRecordRobotMore(cszzBzz, no3Hlj1Jqr, cszzGkz, ROBOT_XSY_1.getCode(), tXinyiIndustry, normConfig, getCwrwfhzByDetail(jsSlq, tXinyiIndustry.getJsTn(), jsslSjz, normConfig.getJszdSjz()));
             if(warningMoreExceed.isBreakpoint()){
                 breakpointCount++;
                 breakPointList.add(warningMoreExceed.getBreakPointWarningRecord());
@@ -4305,7 +4322,7 @@ public class AsyncTask {
 
 
         if(!Objects.isNull(no3Hlj2Jqr)){
-            warningMoreExceed = handleXinYiWarningRecordRobotMore(no3Hlj2Jqr, ROBOT_XSY_2.getCode());
+            warningMoreExceed = handleXinYiWarningRecordRobotMore(cszzBzz, no3Hlj2Jqr, cszzGkz, ROBOT_XSY_2.getCode(), tXinyiIndustry, normConfig, getCwrwfhzByDetail(jsSlq, tXinyiIndustry.getJsTn(), jsslSjz, normConfig.getJszdSjz()));
             if(warningMoreExceed.isBreakpoint()){
                 breakpointCount++;
                 breakPointList.add(warningMoreExceed.getBreakPointWarningRecord());
@@ -4315,7 +4332,7 @@ public class AsyncTask {
 
         if(!Objects.isNull(tpRccJqr)){
             BigDecimal csTp = tpRccJqr.divide(ROBOT_HY_DIVIDE, NUMBER_SCALE_4, RoundingMode.HALF_UP);
-            warningMoreExceed = handleXinYiWarningRecordRobotMore(csTp, ROBOT_ECCZLSY.getCode());
+            warningMoreExceed = handleXinYiWarningRecordRobotMore(cszlBzz, csTp, cszlGkz, ROBOT_ECCZLSY.getCode(), tXinyiIndustry, normConfig, getCwrwfhzByDetail(jsSlq, tXinyiIndustry.getJsTp(), jsslSjz, normConfig.getJszlSjz()));
             if(warningMoreExceed.isBreakpoint()){
                 breakpointCount++;
                 breakPointList.add(warningMoreExceed.getBreakPointWarningRecord());
@@ -4341,7 +4358,7 @@ public class AsyncTask {
             no3Hlj2Jqr = BigDecimal.ZERO;
         BigDecimal anDan2 = no3Qyc2Jqr.add(nh32Jqr).subtract(no3Hlj2Jqr);
         BigDecimal divide = anDan1.add(anDan2).divide(DECIMAL_2, INT_2, RoundingMode.HALF_UP);
-        warningMoreExceed = handleXinYiWarningRecordRobotMore(divide, ROBOT_CS_AD.getCode());
+        warningMoreExceed = handleXinYiWarningRecordRobotMore(csadBzz, divide, csadGkz, ROBOT_CS_AD.getCode(), tXinyiIndustry, normConfig, getCwrwfhzByDetail(jsSlq, tXinyiIndustry.getJsNh3(), jsslSjz, normConfig.getJsadSjz()));
         if(warningMoreExceed.isBreakpoint()){
             breakpointCount++;
             breakPointList.add(warningMoreExceed.getBreakPointWarningRecord());
@@ -4350,7 +4367,6 @@ public class AsyncTask {
 
         //下面是处理多个指标的 【断点】报警
         //断点
-        Date nowDate = DateUtils.getNowDate();
         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){//恢复正常 关闭多个断点报警
@@ -4418,10 +4434,21 @@ public class AsyncTask {
             if(CollectionUtils.isEmpty(tXinyiWarningRecords)){
                 //新增的断点的数据全部都报警
                 for (TXinyiWarningRecord tXinyiWarningRecord : breakPointList) {
+                    String category = tXinyiWarningRecord.getCategory();
+                    //后续对应的指标是否可以进行报警
+                    //如果出现单指标报警  标识后续同指标是否可以继续报警
+                    if(ROBOT_XSY_1.getCode().equals(category))
+                        xsy1Execute = false;
+                    if(ROBOT_XSY_2.getCode().equals(category))
+                        xsy2Execute = false;
+                    if(ROBOT_ECCZLSY.getCode().equals(category))
+                        ecczlxyExecute = false;
+                    if(ROBOT_CS_AD.getCode().equals(category))
+                        csADExecute = false;
                     //关闭该指标的其他类型的报警
-                    closeOtherWarningsByCategory(tXinyiWarningRecord.getCategory(), BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE_HYS.getCode());
+                    closeOtherWarningsByCategory(category, BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE_HYS.getCode());
                     //原来集合里存放的都是单指标异常 下面2个值需要重新赋值
-                    tXinyiWarningRecord.setReason(tXinyiWarningRecord.getCategory() + BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE_HYS.getMsg());
+                    tXinyiWarningRecord.setReason(category + BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE_HYS.getMsg());
                     tXinyiWarningRecord.setSymbol(BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE_HYS.getCode());
                     this.xinyiWarningRecordMapper.insertTXinyiWarningRecord(tXinyiWarningRecord);
                     //同时处理决策 不用调用大模型,本地处理问答
@@ -4435,11 +4462,22 @@ public class AsyncTask {
                 //插入新的报警
                 if(!CollectionUtils.isEmpty(breakPointListNew)){
                     for (TXinyiWarningRecord tXinyiWarningRecord : breakPointListNew) {
+                        String category = tXinyiWarningRecord.getCategory();
+                        //后续对应的指标是否可以进行报警
+                        //如果出现单指标报警  标识后续同指标是否可以继续报警
+                        if(ROBOT_XSY_1.getCode().equals(category))
+                            xsy1Execute = false;
+                        if(ROBOT_XSY_2.getCode().equals(category))
+                            xsy2Execute = false;
+                        if(ROBOT_ECCZLSY.getCode().equals(category))
+                            ecczlxyExecute = false;
+                        if(ROBOT_CS_AD.getCode().equals(category))
+                            csADExecute = false;
                         //关闭该指标的其他类型的报警
-                        closeOtherWarningsByCategory(tXinyiWarningRecord.getCategory(), BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE_HYS.getCode());
+                        closeOtherWarningsByCategory(category, BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE_HYS.getCode());
                         //新插入
                         //原来集合里存放的都是单指标异常 下面2个值需要重新赋值
-                        tXinyiWarningRecord.setReason(tXinyiWarningRecord.getCategory() + BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE_HYS.getMsg());
+                        tXinyiWarningRecord.setReason(category + BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE_HYS.getMsg());
                         tXinyiWarningRecord.setSymbol(BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE_HYS.getCode());
                         this.xinyiWarningRecordMapper.insertTXinyiWarningRecord(tXinyiWarningRecord);
                         //同时处理决策 不用调用大模型,本地处理问答
@@ -4455,7 +4493,8 @@ public class AsyncTask {
                 }
             }
             //如果出现多指标问题,后续的报警不再处理
-            return;
+            //2025年03月03日17:31:53 只有上述指标出现异常的,才不可以报警,不会让所有的都不报警
+//            return;
         }
 
 
@@ -4464,15 +4503,6 @@ public class AsyncTask {
 //        robotOriginWarning(tXinyiRobot, normConfig, tXinyiIndustry);
         //这里需要根据是否出现了断点判断,做不同的 其他类型的报警  不能执行所有指标的 因为有可能某个指标是 单指标断点,这种的就不用执行其他报警了
 
-        //总氮的标准值和管控值
-        BigDecimal cszzBzz = normConfig.getCszzBzz();
-        BigDecimal cszzGkz = normConfig.getCszzGkz();
-        //氨氮的标准值和管控值
-        BigDecimal csadBzz = normConfig.getCsadBzz();
-        BigDecimal csadGkz = normConfig.getCsadGkz();
-
-        BigDecimal jsSlq = tXinyiIndustry.getJsSlq();
-        BigDecimal jsslSjz = normConfig.getJsslSjz();
 
         //#1好氧硝酸盐
         if(!Objects.isNull(no3Hlj1Jqr) && no3Hlj1Jqr.compareTo(BigDecimal.ZERO) > 0 && xsy1Execute){
@@ -4491,8 +4521,6 @@ public class AsyncTask {
         //总磷
         if(!Objects.isNull(tpRccJqr) && tpRccJqr.compareTo(BigDecimal.ZERO) > 0 && ecczlxyExecute){
             BigDecimal csTp = tpRccJqr.divide(ROBOT_HY_DIVIDE, NUMBER_SCALE_4, RoundingMode.HALF_UP);
-            BigDecimal cszlBzz = normConfig.getCszlBzz();
-            BigDecimal cszlGkz = normConfig.getCszlGkz();
             if(!Objects.isNull(cszlBzz)){
                 handleXinYiWarningsRobotOrigin(cszlBzz, csTp, cszlGkz, ROBOT_ECCZLSY.getCode(), tXinyiIndustry, normConfig, getCwrwfhzByDetail(jsSlq, tXinyiIndustry.getJsTp(), jsslSjz, normConfig.getJszlSjz()));
             }
@@ -4506,73 +4534,73 @@ public class AsyncTask {
 
     }
 
-    private void robotOriginWarning(TXinyiRobot tXinyiRobot, TXinyiNormConfig normConfig, TXinyiIndustry tXinyiIndustry) {
-        //总氮的标准值和管控值
-        BigDecimal cszzBzz = normConfig.getCszzBzz();
-        BigDecimal cszzGkz = normConfig.getCszzGkz();
-        //氨氮的标准值和管控值
-        BigDecimal csadBzz = normConfig.getCsadBzz();
-        BigDecimal csadGkz = normConfig.getCsadGkz();
-
-        BigDecimal jsSlq = tXinyiIndustry.getJsSlq();
-        BigDecimal jsslSjz = normConfig.getJsslSjz();
-
-        //#1好氧硝酸盐
-        BigDecimal no3Hlj1Jqr = tXinyiRobot.getNo3Hlj1Jqr();
-        if(!Objects.isNull(no3Hlj1Jqr)){
-            if(!Objects.isNull(cszzBzz)){
-                handleXinYiWarningsRobotOrigin(cszzBzz, no3Hlj1Jqr, cszzGkz, ROBOT_XSY_1.getCode(), tXinyiIndustry, normConfig, getCwrwfhzByDetail(jsSlq, tXinyiIndustry.getJsTn(), jsslSjz, normConfig.getJszdSjz()));
-            }
-        }
-
-        //#2好氧硝酸盐
-        BigDecimal no3Hlj2Jqr = tXinyiRobot.getNo3Hlj2Jqr();
-        if(!Objects.isNull(no3Hlj2Jqr)){
-            if(!Objects.isNull(cszzBzz)){
-                handleXinYiWarningsRobotOrigin(cszzBzz, no3Hlj2Jqr, cszzGkz, ROBOT_XSY_2.getCode(), tXinyiIndustry, normConfig, getCwrwfhzByDetail(jsSlq, tXinyiIndustry.getJsTn(), jsslSjz, normConfig.getJszdSjz()));
-            }
-        }
-
-        //总磷
-        BigDecimal tpRccJqr = tXinyiRobot.getTpRccJqr();
-        if(!Objects.isNull(tpRccJqr)){
-            BigDecimal csTp = tpRccJqr.divide(ROBOT_HY_DIVIDE, NUMBER_SCALE_4, RoundingMode.HALF_UP);
-            BigDecimal cszlBzz = normConfig.getCszlBzz();
-            BigDecimal cszlGkz = normConfig.getCszlGkz();
-            if(!Objects.isNull(cszlBzz)){
-                handleXinYiWarningsRobotOrigin(cszlBzz, csTp, cszlGkz, ROBOT_ECCZLSY.getCode(), tXinyiIndustry, normConfig, getCwrwfhzByDetail(jsSlq, tXinyiIndustry.getJsTp(), jsslSjz, normConfig.getJszlSjz()));
-            }
-        }
-
-        //1#缺氧出-硝酸盐
-        BigDecimal no3Qyc1Jqr = tXinyiRobot.getNo3Qyc1Jqr();
-        BigDecimal nh31Jqr = tXinyiRobot.getNh31Jqr();
-        //判断 增加容错
-        if(Objects.isNull(no3Qyc1Jqr))
-            no3Qyc1Jqr = BigDecimal.ZERO;
-        if(Objects.isNull(nh31Jqr))
-            nh31Jqr = BigDecimal.ZERO;
-        if(Objects.isNull(no3Hlj1Jqr))
-            no3Hlj1Jqr = BigDecimal.ZERO;
-        BigDecimal anDan1 = no3Qyc1Jqr.add(nh31Jqr).subtract(no3Hlj1Jqr);
-
-
-        //2#缺氧出-硝酸盐
-        BigDecimal no3Qyc2Jqr = tXinyiRobot.getNo3Qyc2Jqr();
-        BigDecimal nh32Jqr = tXinyiRobot.getNh32Jqr();
-        //判断 增加容错
-        if(Objects.isNull(no3Qyc2Jqr))
-            no3Qyc2Jqr = BigDecimal.ZERO;
-        if(Objects.isNull(nh32Jqr))
-            nh32Jqr = BigDecimal.ZERO;
-        if(Objects.isNull(no3Hlj2Jqr))
-            no3Hlj2Jqr = BigDecimal.ZERO;
-        BigDecimal anDan2 = no3Qyc2Jqr.add(nh32Jqr).subtract(no3Hlj2Jqr);
-        if(!Objects.isNull(csadBzz)){
-            BigDecimal divide = anDan1.add(anDan2).divide(DECIMAL_2, INT_2, RoundingMode.HALF_UP);
-            handleXinYiWarningsRobotOrigin(csadBzz, divide, csadGkz, ROBOT_CS_AD.getCode(), tXinyiIndustry, normConfig, getCwrwfhzByDetail(jsSlq, tXinyiIndustry.getJsNh3(), jsslSjz, normConfig.getJsadSjz()));
-        }
-    }
+//    private void robotOriginWarning(TXinyiRobot tXinyiRobot, TXinyiNormConfig normConfig, TXinyiIndustry tXinyiIndustry) {
+//        //总氮的标准值和管控值
+//        BigDecimal cszzBzz = normConfig.getCszzBzz();
+//        BigDecimal cszzGkz = normConfig.getCszzGkz();
+//        //氨氮的标准值和管控值
+//        BigDecimal csadBzz = normConfig.getCsadBzz();
+//        BigDecimal csadGkz = normConfig.getCsadGkz();
+//
+//        BigDecimal jsSlq = tXinyiIndustry.getJsSlq();
+//        BigDecimal jsslSjz = normConfig.getJsslSjz();
+//
+//        //#1好氧硝酸盐
+//        BigDecimal no3Hlj1Jqr = tXinyiRobot.getNo3Hlj1Jqr();
+//        if(!Objects.isNull(no3Hlj1Jqr)){
+//            if(!Objects.isNull(cszzBzz)){
+//                handleXinYiWarningsRobotOrigin(cszzBzz, no3Hlj1Jqr, cszzGkz, ROBOT_XSY_1.getCode(), tXinyiIndustry, normConfig, getCwrwfhzByDetail(jsSlq, tXinyiIndustry.getJsTn(), jsslSjz, normConfig.getJszdSjz()));
+//            }
+//        }
+//
+//        //#2好氧硝酸盐
+//        BigDecimal no3Hlj2Jqr = tXinyiRobot.getNo3Hlj2Jqr();
+//        if(!Objects.isNull(no3Hlj2Jqr)){
+//            if(!Objects.isNull(cszzBzz)){
+//                handleXinYiWarningsRobotOrigin(cszzBzz, no3Hlj2Jqr, cszzGkz, ROBOT_XSY_2.getCode(), tXinyiIndustry, normConfig, getCwrwfhzByDetail(jsSlq, tXinyiIndustry.getJsTn(), jsslSjz, normConfig.getJszdSjz()));
+//            }
+//        }
+//
+//        //总磷
+//        BigDecimal tpRccJqr = tXinyiRobot.getTpRccJqr();
+//        if(!Objects.isNull(tpRccJqr)){
+//            BigDecimal csTp = tpRccJqr.divide(ROBOT_HY_DIVIDE, NUMBER_SCALE_4, RoundingMode.HALF_UP);
+//            BigDecimal cszlBzz = normConfig.getCszlBzz();
+//            BigDecimal cszlGkz = normConfig.getCszlGkz();
+//            if(!Objects.isNull(cszlBzz)){
+//                handleXinYiWarningsRobotOrigin(cszlBzz, csTp, cszlGkz, ROBOT_ECCZLSY.getCode(), tXinyiIndustry, normConfig, getCwrwfhzByDetail(jsSlq, tXinyiIndustry.getJsTp(), jsslSjz, normConfig.getJszlSjz()));
+//            }
+//        }
+//
+//        //1#缺氧出-硝酸盐
+//        BigDecimal no3Qyc1Jqr = tXinyiRobot.getNo3Qyc1Jqr();
+//        BigDecimal nh31Jqr = tXinyiRobot.getNh31Jqr();
+//        //判断 增加容错
+//        if(Objects.isNull(no3Qyc1Jqr))
+//            no3Qyc1Jqr = BigDecimal.ZERO;
+//        if(Objects.isNull(nh31Jqr))
+//            nh31Jqr = BigDecimal.ZERO;
+//        if(Objects.isNull(no3Hlj1Jqr))
+//            no3Hlj1Jqr = BigDecimal.ZERO;
+//        BigDecimal anDan1 = no3Qyc1Jqr.add(nh31Jqr).subtract(no3Hlj1Jqr);
+//
+//
+//        //2#缺氧出-硝酸盐
+//        BigDecimal no3Qyc2Jqr = tXinyiRobot.getNo3Qyc2Jqr();
+//        BigDecimal nh32Jqr = tXinyiRobot.getNh32Jqr();
+//        //判断 增加容错
+//        if(Objects.isNull(no3Qyc2Jqr))
+//            no3Qyc2Jqr = BigDecimal.ZERO;
+//        if(Objects.isNull(nh32Jqr))
+//            nh32Jqr = BigDecimal.ZERO;
+//        if(Objects.isNull(no3Hlj2Jqr))
+//            no3Hlj2Jqr = BigDecimal.ZERO;
+//        BigDecimal anDan2 = no3Qyc2Jqr.add(nh32Jqr).subtract(no3Hlj2Jqr);
+//        if(!Objects.isNull(csadBzz)){
+//            BigDecimal divide = anDan1.add(anDan2).divide(DECIMAL_2, INT_2, RoundingMode.HALF_UP);
+//            handleXinYiWarningsRobotOrigin(csadBzz, divide, csadGkz, ROBOT_CS_AD.getCode(), tXinyiIndustry, normConfig, getCwrwfhzByDetail(jsSlq, tXinyiIndustry.getJsNh3(), jsslSjz, normConfig.getJsadSjz()));
+//        }
+//    }
 
 
     /**
@@ -4611,8 +4639,6 @@ public class AsyncTask {
                 //触发报警 并且模拟大模型返回决策问答数据
                 if(CollectionUtils.isEmpty(tXinyiNoChangeYCSGRecords)){
                     //插入该类型报警
-                    warningRecordYCSG.setType(0);
-                    warningRecordYCSG.setCategory(category);
                     warningRecordYCSG.setTime(nowDate);
                     warningRecordYCSG.setReason(category + BusinessEnum.WarningSymbolEnum.SJYC_YCSG.getMsg());
                     warningRecordYCSG.setWaterType(BusinessEnum.WaterTypeEnum.CS.getCode());
@@ -4620,6 +4646,11 @@ public class AsyncTask {
                     warningRecordYCSG.setCreateBy(WARNING_DEFAULT_CREATE);
                     warningRecordYCSG.setCreateTime(nowDate);
                     warningRecordYCSG.setWarningVal(currentVal);
+                    warningRecordYCSG.setDesignVal(csBzz);
+                    warningRecordYCSG.setControlVal(csGkz);
+                    warningRecordYCSG.setRemark(THREE_HYS_WARNING.getCode());//化验室
+                    warningRecordYCSG.setCwrwfhz(cwrwfhz);//2025年02月14日10:42:53 具体指标具体计算,由上游传过来。
+                    warningRecordYCSG.setCwrwxz(getCwrwxzByDetail(currentVal, normConfig, category, false));//根据当前值和类型以及是否超标处理
                     this.xinyiWarningRecordMapper.insertTXinyiWarningRecord(warningRecordYCSG);
                     //同时处理决策 不用调用大模型,本地处理问答
                     addChatRecordByYCSG(warningRecordYCSG, tXinyiIndustry, normConfig, category, exceedVal);