Ver código fonte

化验室氨氮报警合并成一个 出水氨氮逻辑处理

wangmiaomiao 8 meses atrás
pai
commit
3eee92ec29

+ 1 - 2
slibra-common/src/main/java/com/slibra/common/enums/BusinessEnum.java

@@ -28,8 +28,7 @@ public class BusinessEnum {
         ROBOT_ANDAN_1("#1氨氮", "#1氨氮"),
         ROBOT_ANDAN_2("#2氨氮", "#2氨氮"),
 
-        //2024年7月26日11:11:06 氨氮报警(两个池子)合成一个
-        ROBOT_CS_ANDAN("出水氨氮", "出水氨氮"),
+        //2024年7月26日11:11:06 氨氮报警(两个池子)合成一个出水氨氮  CS_AD
 
         //生化报警
         NHLB("内回流比", "内回流比"),

+ 80 - 4
slibra-quartz/src/main/java/com/slibra/quartz/task/AsyncTask.java

@@ -2026,7 +2026,7 @@ public class AsyncTask {
 
             //2024年7月18日10:48:15 新增报警:出水氨氮 - 连续检测报警
             //1池
-            BigDecimal no3Qyc1Jqr = tXinyiRobot.getNo3Qyc1Jqr();
+            /*BigDecimal no3Qyc1Jqr = tXinyiRobot.getNo3Qyc1Jqr();
             BigDecimal nh31Jqr = tXinyiRobot.getNh31Jqr();
             //判断 增加容错
             if(Objects.isNull(no3Qyc1Jqr))
@@ -2053,9 +2053,35 @@ public class AsyncTask {
             BigDecimal anDan2 = no3Qyc2Jqr.add(nh32Jqr).subtract(no3Hlj2Jqr);
             if(!Objects.isNull(csadBzz)){
                 handleXinYiWarningsRobot(csadBzz, anDan2, csadGkz, ROBOT_ANDAN_2.getCode(), tXinyiIndustry, normConfig);
-            }
+            }*/
+
+            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);
+
 
-            //TODO:合并成一个
+            //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);
+                handleXinYiWarningsRobot(csadBzz, divide, csadGkz, CS_AD.getCode(), tXinyiIndustry, normConfig);
+            }
         }
     }
 
@@ -2187,7 +2213,7 @@ public class AsyncTask {
             BigDecimal tpRccJqr2 = tXinyiRobot2.getTpRccJqr();
             if(!Objects.isNull(tpRccJqr1) && !Objects.isNull(tpRccJqr2) && tpRccJqr1.compareTo(tpRccJqr2) > INT_0)
                 result = true;
-        }else if(BusinessEnum.WarningCategoryEnum.ROBOT_ANDAN_1.getCode().equals(category)){
+        }/*else if(BusinessEnum.WarningCategoryEnum.ROBOT_ANDAN_1.getCode().equals(category)){
             //计算1
             BigDecimal no3Qyc1Jqr1 = tXinyiRobot1.getNo3Qyc1Jqr();
             BigDecimal nh31Jqr1 = tXinyiRobot1.getNh31Jqr();
@@ -2237,6 +2263,56 @@ public class AsyncTask {
             BigDecimal anDan2 = no3Qyc1Jqr2.add(nh31Jqr2).subtract(no3Hlj1Jqr2);
             if(anDan1.compareTo(anDan2) > INT_0)
                 result = true;
+        }*/else if(BusinessEnum.WarningCategoryEnum.CS_AD.getCode().equals(category)){//2024年7月26日14:33:39 合并一个指标:出水氨氮
+            //计算1(1池)
+            BigDecimal no3Qyc1Jqr11 = tXinyiRobot1.getNo3Qyc1Jqr();
+            BigDecimal nh31Jqr11 = tXinyiRobot1.getNh31Jqr();
+            BigDecimal no3Hlj1Jqr11 = tXinyiRobot1.getNo3Hlj1Jqr();
+            if(Objects.isNull(no3Qyc1Jqr11))
+                no3Qyc1Jqr11 = BigDecimal.ZERO;
+            if(Objects.isNull(nh31Jqr11))
+                nh31Jqr11 = BigDecimal.ZERO;
+            if(Objects.isNull(no3Hlj1Jqr11))
+                no3Hlj1Jqr11 = BigDecimal.ZERO;
+            BigDecimal anDan11 = no3Qyc1Jqr11.add(nh31Jqr11).subtract(no3Hlj1Jqr11);
+            //计算1(2池)
+            BigDecimal no3Qyc1Jqr12 = tXinyiRobot1.getNo3Qyc2Jqr();
+            BigDecimal nh31Jqr12 = tXinyiRobot1.getNh32Jqr();
+            BigDecimal no3Hlj1Jqr12 = tXinyiRobot1.getNo3Hlj2Jqr();
+            if(Objects.isNull(no3Qyc1Jqr12))
+                no3Qyc1Jqr12 = BigDecimal.ZERO;
+            if(Objects.isNull(nh31Jqr12))
+                nh31Jqr12 = BigDecimal.ZERO;
+            if(Objects.isNull(no3Hlj1Jqr12))
+                no3Hlj1Jqr12 = BigDecimal.ZERO;
+            BigDecimal anDan12 = no3Qyc1Jqr12.add(nh31Jqr12).subtract(no3Hlj1Jqr12);
+            BigDecimal divide1 = anDan11.add(anDan12).divide(DECIMAL_2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
+
+            //计算2(1池)
+            BigDecimal no3Qyc1Jqr21 = tXinyiRobot2.getNo3Qyc1Jqr();
+            BigDecimal nh31Jqr21 = tXinyiRobot2.getNh31Jqr();
+            BigDecimal no3Hlj1Jqr21 = tXinyiRobot2.getNo3Hlj1Jqr();
+            if(Objects.isNull(no3Qyc1Jqr21))
+                no3Qyc1Jqr21 = BigDecimal.ZERO;
+            if(Objects.isNull(nh31Jqr21))
+                nh31Jqr21 = BigDecimal.ZERO;
+            if(Objects.isNull(no3Hlj1Jqr21))
+                no3Hlj1Jqr21 = BigDecimal.ZERO;
+            BigDecimal anDan21 = no3Qyc1Jqr21.add(nh31Jqr21).subtract(no3Hlj1Jqr21);
+            //计算2(2池)
+            BigDecimal no3Qyc1Jqr22 = tXinyiRobot2.getNo3Qyc2Jqr();
+            BigDecimal nh31Jqr22 = tXinyiRobot2.getNh32Jqr();
+            BigDecimal no3Hlj1Jqr22 = tXinyiRobot2.getNo3Hlj2Jqr();
+            if(Objects.isNull(no3Qyc1Jqr22))
+                no3Qyc1Jqr22 = BigDecimal.ZERO;
+            if(Objects.isNull(nh31Jqr22))
+                nh31Jqr22 = BigDecimal.ZERO;
+            if(Objects.isNull(no3Hlj1Jqr22))
+                no3Hlj1Jqr22 = BigDecimal.ZERO;
+            BigDecimal anDan22 = no3Qyc1Jqr22.add(nh31Jqr22).subtract(no3Hlj1Jqr22);
+            BigDecimal divide2 = anDan21.add(anDan22).divide(DECIMAL_2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
+            if(divide1.compareTo(divide2) > INT_0)
+                result = true;
         }else{
             log.error("暂时还不支持的报警类型~~~~");
         }