|
@@ -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;//这种的无需处理
|
|
|
}
|