Răsfoiți Sursa

进水报警 和 出水报警 触发报警的时候,新增几个字段处理

王苗苗 1 lună în urmă
părinte
comite
c732df35cf

+ 38 - 0
slibra-quartz/src/main/java/com/slibra/quartz/task/AsyncTask.java

@@ -1918,6 +1918,14 @@ public class AsyncTask {
         tXinyiWarningRecord.setCreateBy(WARNING_DEFAULT_CREATE);
         tXinyiWarningRecord.setCreateTime(DateUtils.getNowDate());
         tXinyiWarningRecord.setRemark(ZERO_SZ_WARNING.getCode());
+        //2025年02月10日14:45:08 下面是新增加的字段
+        tXinyiWarningRecord.setWaterType(BusinessEnum.WaterTypeEnum.CS.getCode());
+        //超污染物限制:计算公式为:当前氨氮/氨氮设计值 或者 当前氨氮/氨氮管控值(智能工单使用)  这里是出水的 【需要根据超标还是超管控,具体计算】
+        //超污染物负荷值:计算公式为:当前水量与氨氮乘积  /  设计水量与设计进水氨氮的乘积(智能工单使用)
+        tXinyiWarningRecord.setCwrwfhz(this.getCwrwfhz(tXinyiIndustry, normConfig));
+        BigDecimal csNh3 = tXinyiIndustry.getCsNh3();
+        BigDecimal csadBzz = normConfig.getCsadBzz();
+        BigDecimal csadGkz = normConfig.getCsadGkz();
 
         //2024年5月25日17:52:33  如果工业库获取不到数据,也触发报警,但是不调用决策接口
         if(Objects.isNull(currentVal) || currentVal.compareTo(BigDecimal.ZERO) == 0){
@@ -1926,12 +1934,18 @@ public class AsyncTask {
         }else if(currentVal.compareTo(multiply) > 0){//一级
             tXinyiWarningRecord.setReason(category + CHAOBIAO_WARNING);
             tXinyiWarningRecord.setLevel(WARNING_LEVEL_ONE);
+            tXinyiWarningRecord.setSymbol(BusinessEnum.WarningSymbolEnum.CBZZ.getCode());
+            tXinyiWarningRecord.setCwrwxz(csNh3.divide(csadBzz, NUMBER_SCALE_4, RoundingMode.HALF_UP));
         }else if(currentVal.compareTo(csBzz) >= 0 && currentVal.compareTo(multiply) <= 0){//二级
             tXinyiWarningRecord.setReason(category + CHAOBIAO_WARNING);
             tXinyiWarningRecord.setLevel(WARNING_LEVEL_TWO);
+            tXinyiWarningRecord.setSymbol(BusinessEnum.WarningSymbolEnum.CBZZ.getCode());
+            tXinyiWarningRecord.setCwrwxz(csNh3.divide(csadBzz, NUMBER_SCALE_4, RoundingMode.HALF_UP));
         }else if(!Objects.isNull(csGkz) && currentVal.compareTo(csGkz) > 0){
             tXinyiWarningRecord.setReason(category + CHAOGUANKONG_WARNING);
             tXinyiWarningRecord.setLevel(WARNING_LEVEL_THREE);
+            tXinyiWarningRecord.setSymbol(BusinessEnum.WarningSymbolEnum.CGKZ.getCode());
+            tXinyiWarningRecord.setCwrwxz(csNh3.divide(csadGkz, NUMBER_SCALE_4, RoundingMode.HALF_UP));
         }else{
             tXinyiWarningRecord = null;//这种的无需处理
         }
@@ -2004,6 +2018,18 @@ public class AsyncTask {
 
     }
 
+    /**
+     *
+     * 超污染物负荷值:计算公式为:当前水量与氨氮乘积  /  设计水量与设计进水氨氮的乘积(智能工单使用)
+     * 因为配置的值都不为0 所以不做校验了
+     * @param tXinyiIndustry
+     * @param normConfig
+     * @return
+     */
+    private BigDecimal getCwrwfhz(TXinyiIndustry tXinyiIndustry, TXinyiNormConfig normConfig) {
+        return (tXinyiIndustry.getJsSlq().multiply(tXinyiIndustry.getJsNh3())).divide((normConfig.getJsslSjz().multiply(normConfig.getJsadSjz())), NUMBER_SCALE_4, RoundingMode.HALF_UP);
+    }
+
 
     /**
      * 通过输入的值 生成对应类型的报警对象(进水)
@@ -2029,6 +2055,14 @@ public class AsyncTask {
         tXinyiWarningRecord.setCreateBy(WARNING_DEFAULT_CREATE);
         tXinyiWarningRecord.setCreateTime(DateUtils.getNowDate());
         tXinyiWarningRecord.setRemark(ZERO_SZ_WARNING.getCode());
+        //2025年02月10日14:45:08 下面是新增加的字段
+        tXinyiWarningRecord.setWaterType(BusinessEnum.WaterTypeEnum.JS.getCode());
+        //超污染物限制:计算公式为:当前氨氮/氨氮设计值 或者 当前氨氮/氨氮管控值(智能工单使用)  这里是出水的 【需要根据超标还是超管控,具体计算】
+        //超污染物负荷值:计算公式为:当前水量与氨氮乘积  /  设计水量与设计进水氨氮的乘积(智能工单使用)
+        tXinyiWarningRecord.setCwrwfhz(this.getCwrwfhz(tXinyiIndustry, normConfig));
+        BigDecimal jsNh3 = tXinyiIndustry.getJsNh3();
+        BigDecimal jsadSjz = normConfig.getJsadSjz();
+
 
         //2024年5月25日17:52:33  如果工业库获取不到数据,也触发报警,但是不调用决策接口
         if(Objects.isNull(currentVal) || currentVal.compareTo(BigDecimal.ZERO) == 0){
@@ -2037,9 +2071,13 @@ public class AsyncTask {
         }else if(currentVal.compareTo(multiply) > 0){//一级
             tXinyiWarningRecord.setReason(category + CHAOBIAO_WARNING);
             tXinyiWarningRecord.setLevel(WARNING_LEVEL_ONE);
+            tXinyiWarningRecord.setSymbol(BusinessEnum.WarningSymbolEnum.CBZZ.getCode());
+            tXinyiWarningRecord.setCwrwxz(jsNh3.divide(jsadSjz, NUMBER_SCALE_4, RoundingMode.HALF_UP));
         }else if(currentVal.compareTo(jsBzz) >= 0 && currentVal.compareTo(multiply) <= 0){//二级
             tXinyiWarningRecord.setReason(category + CHAOBIAO_WARNING);
             tXinyiWarningRecord.setLevel(WARNING_LEVEL_TWO);
+            tXinyiWarningRecord.setSymbol(BusinessEnum.WarningSymbolEnum.CBZZ.getCode());
+            tXinyiWarningRecord.setCwrwxz(jsNh3.divide(jsadSjz, NUMBER_SCALE_4, RoundingMode.HALF_UP));
         }else{
             tXinyiWarningRecord = null;//这种的无需处理
         }