|
@@ -1883,7 +1883,7 @@ public class AsyncTask {
|
|
|
tXinyiWarningRecord.setSymbol(BusinessEnum.WarningSymbolEnum.YBGZ_LX_MORE.getCode());
|
|
|
this.xinyiWarningRecordMapper.insertTXinyiWarningRecord(tXinyiWarningRecord);
|
|
|
//同时处理决策 不用调用大模型,本地处理问答
|
|
|
- addChatRecordByBreakPointsMore(tXinyiWarningRecord, tXinyiIndustry, normConfig);
|
|
|
+ addChatRecordByNoChangeMore(tXinyiWarningRecord, tXinyiIndustry, normConfig);
|
|
|
}
|
|
|
}else{//之前存在报警了 所以需要2个集合数据进行匹配,如果新的和原来的一样则不用做任何操作【持续报警】;如果不一样,则新的要报警,老报警要关闭
|
|
|
List<TXinyiWarningRecord> noChangeListNew = new ArrayList<>(noChangeList);//断点集合[需要新增的]
|
|
@@ -1928,7 +1928,7 @@ public class AsyncTask {
|
|
|
tXinyiWarningRecord.setSymbol(BusinessEnum.WarningSymbolEnum.YBGZ_LX_MORE.getCode());
|
|
|
this.xinyiWarningRecordMapper.insertTXinyiWarningRecord(tXinyiWarningRecord);
|
|
|
//同时处理决策 不用调用大模型,本地处理问答
|
|
|
- addChatRecordByBreakPointsMore(tXinyiWarningRecord, tXinyiIndustry, normConfig);
|
|
|
+ addChatRecordByNoChangeMore(tXinyiWarningRecord, tXinyiIndustry, normConfig);
|
|
|
}
|
|
|
}
|
|
|
//关闭老的报警
|
|
@@ -3375,104 +3375,183 @@ public class AsyncTask {
|
|
|
*
|
|
|
* 【工业库异常升高】先判断该指标是否超过最大值,如果超过了,返回对应的超过的值; 如果没有超标,返回null。
|
|
|
* 一个字段返回用作2个地方
|
|
|
+ * 2025年03月06日10:35:30 判断是否超标,不再获取最近3个小时;最近2个小时比较即可。
|
|
|
* @param currentVal
|
|
|
* @param category
|
|
|
* @param industryList
|
|
|
* @return
|
|
|
*/
|
|
|
private BigDecimal existsYCSG(BigDecimal currentVal, String category, List<TXinyiIndustry> industryList) {
|
|
|
+// BigDecimal result = null;//默认不超标
|
|
|
+// TXinyiIndustry tXinyiIndustry1 = industryList.get(INDEX_1);
|
|
|
+// TXinyiIndustry tXinyiIndustry2 = industryList.get(INDEX_2);
|
|
|
+// BigDecimal compareVal = BigDecimal.valueOf(YCSG_VAL_CONF);
|
|
|
+// if(BusinessEnum.WarningCategoryEnum.CS_COD.getCode().equals(category)){
|
|
|
+// BigDecimal csCod1 = tXinyiIndustry1.getCsCod();
|
|
|
+// BigDecimal csCod2 = tXinyiIndustry2.getCsCod();
|
|
|
+// if(!Objects.isNull(currentVal) && !Objects.isNull(csCod1) && !Objects.isNull(csCod2)){
|
|
|
+// BigDecimal divide1 = currentVal.subtract(csCod1).divide(csCod1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// BigDecimal divide2 = csCod1.subtract(csCod2).divide(csCod2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+// result = divide1;
|
|
|
+// }
|
|
|
+// }else if(BusinessEnum.WarningCategoryEnum.CS_SS.getCode().equals(category)){
|
|
|
+// BigDecimal csSs1 = tXinyiIndustry1.getCsSs();
|
|
|
+// BigDecimal csSs2 = tXinyiIndustry2.getCsSs();
|
|
|
+// if(!Objects.isNull(currentVal) && !Objects.isNull(csSs1) && !Objects.isNull(csSs2)){
|
|
|
+// BigDecimal divide1 = currentVal.subtract(csSs1).divide(csSs1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// BigDecimal divide2 = csSs1.subtract(csSs2).divide(csSs2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+// result = divide1;
|
|
|
+// }
|
|
|
+// }else if(BusinessEnum.WarningCategoryEnum.CS_ZD.getCode().equals(category)){
|
|
|
+// BigDecimal csTn1 = tXinyiIndustry1.getCsTn();
|
|
|
+// BigDecimal csTn2 = tXinyiIndustry2.getCsTn();
|
|
|
+// if(!Objects.isNull(currentVal) && !Objects.isNull(csTn1)){
|
|
|
+// BigDecimal divide1 = currentVal.subtract(csTn1).divide(csTn1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// BigDecimal divide2 = csTn1.subtract(csTn2).divide(csTn2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+// result = divide1;
|
|
|
+// }
|
|
|
+// }else if(BusinessEnum.WarningCategoryEnum.CS_ZL.getCode().equals(category)){
|
|
|
+// BigDecimal csTp1 = tXinyiIndustry1.getCsTp();
|
|
|
+// BigDecimal csTp2 = tXinyiIndustry2.getCsTp();
|
|
|
+// if(!Objects.isNull(currentVal) && !Objects.isNull(csTp1)){
|
|
|
+// BigDecimal divide1 = currentVal.subtract(csTp1).divide(csTp1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// BigDecimal divide2 = csTp1.subtract(csTp2).divide(csTp2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+// result = divide1;
|
|
|
+// }
|
|
|
+// }else if(BusinessEnum.WarningCategoryEnum.CS_AD.getCode().equals(category)){
|
|
|
+// BigDecimal csNh31 = tXinyiIndustry1.getCsNh3();
|
|
|
+// BigDecimal csNh32 = tXinyiIndustry2.getCsNh3();
|
|
|
+// if(!Objects.isNull(currentVal) && !Objects.isNull(csNh31)){
|
|
|
+// BigDecimal divide1 = currentVal.subtract(csNh31).divide(csNh31, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// BigDecimal divide2 = csNh31.subtract(csNh32).divide(csNh32, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+// result = divide1;
|
|
|
+// }
|
|
|
+// }else if(BusinessEnum.WarningCategoryEnum.JS_COD.getCode().equals(category)){
|
|
|
+// BigDecimal jsCod1 = tXinyiIndustry1.getJsCod();
|
|
|
+// BigDecimal jsCod2 = tXinyiIndustry2.getJsCod();
|
|
|
+// if(!Objects.isNull(currentVal) && !Objects.isNull(jsCod1)){
|
|
|
+// BigDecimal divide1 = currentVal.subtract(jsCod1).divide(jsCod1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// BigDecimal divide2 = jsCod1.subtract(jsCod2).divide(jsCod2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+// result = divide1;
|
|
|
+// }
|
|
|
+// }else if(BusinessEnum.WarningCategoryEnum.JS_SS.getCode().equals(category)){
|
|
|
+// BigDecimal jsSs1 = tXinyiIndustry1.getJsSs();
|
|
|
+// BigDecimal jsSs2 = tXinyiIndustry2.getJsSs();
|
|
|
+// if(!Objects.isNull(currentVal) && !Objects.isNull(jsSs1)){
|
|
|
+// BigDecimal divide1 = currentVal.subtract(jsSs1).divide(jsSs1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// BigDecimal divide2 = jsSs1.subtract(jsSs2).divide(jsSs2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+// result = divide1;
|
|
|
+// }
|
|
|
+// }else if(BusinessEnum.WarningCategoryEnum.JS_ZD.getCode().equals(category)){
|
|
|
+// BigDecimal jsTn1 = tXinyiIndustry1.getJsTn();
|
|
|
+// BigDecimal jsTn2 = tXinyiIndustry2.getJsTn();
|
|
|
+// if(!Objects.isNull(currentVal) && !Objects.isNull(jsTn1)){
|
|
|
+// BigDecimal divide1 = currentVal.subtract(jsTn1).divide(jsTn1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// BigDecimal divide2 = jsTn1.subtract(jsTn2).divide(jsTn2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+// result = divide1;
|
|
|
+// }
|
|
|
+// }else if(BusinessEnum.WarningCategoryEnum.JS_ZL.getCode().equals(category)){
|
|
|
+// BigDecimal jsTp1 = tXinyiIndustry1.getJsTp();
|
|
|
+// BigDecimal jsTp2 = tXinyiIndustry2.getJsTp();
|
|
|
+// if(!Objects.isNull(currentVal) && !Objects.isNull(jsTp1)){
|
|
|
+// BigDecimal divide1 = currentVal.subtract(jsTp1).divide(jsTp1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// BigDecimal divide2 = jsTp1.subtract(jsTp2).divide(jsTp2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+// result = divide1;
|
|
|
+// }
|
|
|
+// }else if(BusinessEnum.WarningCategoryEnum.JS_AD.getCode().equals(category)){
|
|
|
+// BigDecimal jsNh31 = tXinyiIndustry1.getJsNh3();
|
|
|
+// BigDecimal jsNh32 = tXinyiIndustry2.getJsNh3();
|
|
|
+// if(!Objects.isNull(currentVal) && !Objects.isNull(jsNh31)){
|
|
|
+// BigDecimal divide1 = currentVal.subtract(jsNh31).divide(jsNh31, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// BigDecimal divide2 = jsNh31.subtract(jsNh32).divide(jsNh32, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+// result = divide1;
|
|
|
+// }
|
|
|
+// }else{
|
|
|
+// log.error("暂时还不支持的报警类型~~~~");
|
|
|
+// }
|
|
|
+// return result;
|
|
|
+
|
|
|
BigDecimal result = null;//默认不超标
|
|
|
TXinyiIndustry tXinyiIndustry1 = industryList.get(INDEX_1);
|
|
|
- TXinyiIndustry tXinyiIndustry2 = industryList.get(INDEX_2);
|
|
|
BigDecimal compareVal = BigDecimal.valueOf(YCSG_VAL_CONF);
|
|
|
if(BusinessEnum.WarningCategoryEnum.CS_COD.getCode().equals(category)){
|
|
|
BigDecimal csCod1 = tXinyiIndustry1.getCsCod();
|
|
|
- BigDecimal csCod2 = tXinyiIndustry2.getCsCod();
|
|
|
- if(!Objects.isNull(currentVal) && !Objects.isNull(csCod1) && !Objects.isNull(csCod2)){
|
|
|
+ if(!Objects.isNull(currentVal) && !Objects.isNull(csCod1)){
|
|
|
BigDecimal divide1 = currentVal.subtract(csCod1).divide(csCod1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- BigDecimal divide2 = csCod1.subtract(csCod2).divide(csCod2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+ if(divide1.compareTo(compareVal) > 0)
|
|
|
result = divide1;
|
|
|
}
|
|
|
}else if(BusinessEnum.WarningCategoryEnum.CS_SS.getCode().equals(category)){
|
|
|
BigDecimal csSs1 = tXinyiIndustry1.getCsSs();
|
|
|
- BigDecimal csSs2 = tXinyiIndustry2.getCsSs();
|
|
|
- if(!Objects.isNull(currentVal) && !Objects.isNull(csSs1) && !Objects.isNull(csSs2)){
|
|
|
+ if(!Objects.isNull(currentVal) && !Objects.isNull(csSs1)){
|
|
|
BigDecimal divide1 = currentVal.subtract(csSs1).divide(csSs1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- BigDecimal divide2 = csSs1.subtract(csSs2).divide(csSs2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+ if(divide1.compareTo(compareVal) > 0)
|
|
|
result = divide1;
|
|
|
}
|
|
|
}else if(BusinessEnum.WarningCategoryEnum.CS_ZD.getCode().equals(category)){
|
|
|
BigDecimal csTn1 = tXinyiIndustry1.getCsTn();
|
|
|
- BigDecimal csTn2 = tXinyiIndustry2.getCsTn();
|
|
|
if(!Objects.isNull(currentVal) && !Objects.isNull(csTn1)){
|
|
|
BigDecimal divide1 = currentVal.subtract(csTn1).divide(csTn1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- BigDecimal divide2 = csTn1.subtract(csTn2).divide(csTn2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+ if(divide1.compareTo(compareVal) > 0)
|
|
|
result = divide1;
|
|
|
}
|
|
|
}else if(BusinessEnum.WarningCategoryEnum.CS_ZL.getCode().equals(category)){
|
|
|
BigDecimal csTp1 = tXinyiIndustry1.getCsTp();
|
|
|
- BigDecimal csTp2 = tXinyiIndustry2.getCsTp();
|
|
|
if(!Objects.isNull(currentVal) && !Objects.isNull(csTp1)){
|
|
|
BigDecimal divide1 = currentVal.subtract(csTp1).divide(csTp1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- BigDecimal divide2 = csTp1.subtract(csTp2).divide(csTp2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+ if(divide1.compareTo(compareVal) > 0)
|
|
|
result = divide1;
|
|
|
}
|
|
|
}else if(BusinessEnum.WarningCategoryEnum.CS_AD.getCode().equals(category)){
|
|
|
BigDecimal csNh31 = tXinyiIndustry1.getCsNh3();
|
|
|
- BigDecimal csNh32 = tXinyiIndustry2.getCsNh3();
|
|
|
if(!Objects.isNull(currentVal) && !Objects.isNull(csNh31)){
|
|
|
BigDecimal divide1 = currentVal.subtract(csNh31).divide(csNh31, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- BigDecimal divide2 = csNh31.subtract(csNh32).divide(csNh32, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+ if(divide1.compareTo(compareVal) > 0)
|
|
|
result = divide1;
|
|
|
}
|
|
|
}else if(BusinessEnum.WarningCategoryEnum.JS_COD.getCode().equals(category)){
|
|
|
BigDecimal jsCod1 = tXinyiIndustry1.getJsCod();
|
|
|
- BigDecimal jsCod2 = tXinyiIndustry2.getJsCod();
|
|
|
if(!Objects.isNull(currentVal) && !Objects.isNull(jsCod1)){
|
|
|
BigDecimal divide1 = currentVal.subtract(jsCod1).divide(jsCod1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- BigDecimal divide2 = jsCod1.subtract(jsCod2).divide(jsCod2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+ if(divide1.compareTo(compareVal) > 0)
|
|
|
result = divide1;
|
|
|
}
|
|
|
}else if(BusinessEnum.WarningCategoryEnum.JS_SS.getCode().equals(category)){
|
|
|
BigDecimal jsSs1 = tXinyiIndustry1.getJsSs();
|
|
|
- BigDecimal jsSs2 = tXinyiIndustry2.getJsSs();
|
|
|
if(!Objects.isNull(currentVal) && !Objects.isNull(jsSs1)){
|
|
|
BigDecimal divide1 = currentVal.subtract(jsSs1).divide(jsSs1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- BigDecimal divide2 = jsSs1.subtract(jsSs2).divide(jsSs2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+ if(divide1.compareTo(compareVal) > 0)
|
|
|
result = divide1;
|
|
|
}
|
|
|
}else if(BusinessEnum.WarningCategoryEnum.JS_ZD.getCode().equals(category)){
|
|
|
BigDecimal jsTn1 = tXinyiIndustry1.getJsTn();
|
|
|
- BigDecimal jsTn2 = tXinyiIndustry2.getJsTn();
|
|
|
if(!Objects.isNull(currentVal) && !Objects.isNull(jsTn1)){
|
|
|
BigDecimal divide1 = currentVal.subtract(jsTn1).divide(jsTn1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- BigDecimal divide2 = jsTn1.subtract(jsTn2).divide(jsTn2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+ if(divide1.compareTo(compareVal) > 0)
|
|
|
result = divide1;
|
|
|
}
|
|
|
}else if(BusinessEnum.WarningCategoryEnum.JS_ZL.getCode().equals(category)){
|
|
|
BigDecimal jsTp1 = tXinyiIndustry1.getJsTp();
|
|
|
- BigDecimal jsTp2 = tXinyiIndustry2.getJsTp();
|
|
|
if(!Objects.isNull(currentVal) && !Objects.isNull(jsTp1)){
|
|
|
BigDecimal divide1 = currentVal.subtract(jsTp1).divide(jsTp1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- BigDecimal divide2 = jsTp1.subtract(jsTp2).divide(jsTp2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+ if(divide1.compareTo(compareVal) > 0)
|
|
|
result = divide1;
|
|
|
}
|
|
|
}else if(BusinessEnum.WarningCategoryEnum.JS_AD.getCode().equals(category)){
|
|
|
BigDecimal jsNh31 = tXinyiIndustry1.getJsNh3();
|
|
|
- BigDecimal jsNh32 = tXinyiIndustry2.getJsNh3();
|
|
|
if(!Objects.isNull(currentVal) && !Objects.isNull(jsNh31)){
|
|
|
BigDecimal divide1 = currentVal.subtract(jsNh31).divide(jsNh31, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- BigDecimal divide2 = jsNh31.subtract(jsNh32).divide(jsNh32, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+ if(divide1.compareTo(compareVal) > 0)
|
|
|
result = divide1;
|
|
|
}
|
|
|
}else{
|
|
@@ -3488,41 +3567,127 @@ public class AsyncTask {
|
|
|
*
|
|
|
* 【化验室异常升高】先判断该指标是否超过最大值,如果超过了,返回对应的超过的值; 如果没有超标,返回null。
|
|
|
* 一个字段返回用作2个地方
|
|
|
+ * 2025年03月06日10:40:54 不再用连续2个小时超标,只判断当前值和上个小时的值比较
|
|
|
* @param currentVal
|
|
|
* @param category
|
|
|
* @param tXinyiRobots
|
|
|
* @return
|
|
|
*/
|
|
|
private BigDecimal existsRobotYCSG(BigDecimal currentVal, String category, List<TXinyiRobot> tXinyiRobots) {
|
|
|
+// BigDecimal result = null;//默认不超标
|
|
|
+// TXinyiRobot tXinyiRobot1 = tXinyiRobots.get(INDEX_1);
|
|
|
+// TXinyiRobot tXinyiRobot2 = tXinyiRobots.get(INDEX_2);
|
|
|
+// BigDecimal compareVal = BigDecimal.valueOf(YCSG_VAL_CONF);
|
|
|
+// if(BusinessEnum.WarningCategoryEnum.ROBOT_XSY_1.getCode().equals(category)){
|
|
|
+// BigDecimal no3Hlj1Jqr1 = tXinyiRobot1.getNo3Hlj1Jqr();
|
|
|
+// BigDecimal no3Hlj1Jqr2 = tXinyiRobot2.getNo3Hlj1Jqr();
|
|
|
+// if(!Objects.isNull(currentVal) && !Objects.isNull(no3Hlj1Jqr1) && !Objects.isNull(no3Hlj1Jqr2)){
|
|
|
+// BigDecimal divide1 = currentVal.subtract(no3Hlj1Jqr1).divide(no3Hlj1Jqr1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// BigDecimal divide2 = no3Hlj1Jqr1.subtract(no3Hlj1Jqr2).divide(no3Hlj1Jqr2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+// result = divide1;
|
|
|
+// }
|
|
|
+// }else if(BusinessEnum.WarningCategoryEnum.ROBOT_XSY_2.getCode().equals(category)){
|
|
|
+// BigDecimal no3Hlj2Jqr1 = tXinyiRobot1.getNo3Hlj2Jqr();
|
|
|
+// BigDecimal no3Hlj2Jqr2 = tXinyiRobot2.getNo3Hlj2Jqr();
|
|
|
+// if(!Objects.isNull(currentVal) && !Objects.isNull(no3Hlj2Jqr1) && !Objects.isNull(no3Hlj2Jqr2)){
|
|
|
+// BigDecimal divide1 = currentVal.subtract(no3Hlj2Jqr1).divide(no3Hlj2Jqr1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// BigDecimal divide2 = no3Hlj2Jqr1.subtract(no3Hlj2Jqr2).divide(no3Hlj2Jqr2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+// result = divide1;
|
|
|
+// }
|
|
|
+// }else if(BusinessEnum.WarningCategoryEnum.ROBOT_ECCZLSY.getCode().equals(category)){
|
|
|
+// BigDecimal tpRccJqr1 = tXinyiRobot1.getTpRccJqr();
|
|
|
+// BigDecimal tpRccJqr2 = tXinyiRobot2.getTpRccJqr();
|
|
|
+// if(!Objects.isNull(currentVal) && !Objects.isNull(tpRccJqr1) && !Objects.isNull(tpRccJqr2)){
|
|
|
+// BigDecimal divide1 = currentVal.subtract(tpRccJqr1).divide(tpRccJqr1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// BigDecimal divide2 = tpRccJqr1.subtract(tpRccJqr2).divide(tpRccJqr2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+// result = divide1;
|
|
|
+// }
|
|
|
+// }else if(BusinessEnum.WarningCategoryEnum.ROBOT_CS_AD.getCode().equals(category)){//2025年02月25日16:23:08 合并一个指标:出水氨氮 通过计算获得
|
|
|
+// //计算得到对应的值
|
|
|
+// //计算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 anDan1 = 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 anDan2 = anDan21.add(anDan22).divide(DECIMAL_2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+//
|
|
|
+// if(!Objects.isNull(currentVal) && !Objects.isNull(anDan1) && !Objects.isNull(anDan2)){
|
|
|
+// BigDecimal divide1 = currentVal.subtract(anDan1).divide(anDan1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// BigDecimal divide2 = anDan1.subtract(anDan2).divide(anDan2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
+// if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+// result = divide1;
|
|
|
+// }
|
|
|
+// }else{
|
|
|
+// log.error("化验室暂时还不支持的报警类型~~~~");
|
|
|
+// }
|
|
|
+// return result;
|
|
|
+
|
|
|
BigDecimal result = null;//默认不超标
|
|
|
TXinyiRobot tXinyiRobot1 = tXinyiRobots.get(INDEX_1);
|
|
|
- TXinyiRobot tXinyiRobot2 = tXinyiRobots.get(INDEX_2);
|
|
|
BigDecimal compareVal = BigDecimal.valueOf(YCSG_VAL_CONF);
|
|
|
if(BusinessEnum.WarningCategoryEnum.ROBOT_XSY_1.getCode().equals(category)){
|
|
|
BigDecimal no3Hlj1Jqr1 = tXinyiRobot1.getNo3Hlj1Jqr();
|
|
|
- BigDecimal no3Hlj1Jqr2 = tXinyiRobot2.getNo3Hlj1Jqr();
|
|
|
- if(!Objects.isNull(currentVal) && !Objects.isNull(no3Hlj1Jqr1) && !Objects.isNull(no3Hlj1Jqr2)){
|
|
|
+ if(!Objects.isNull(currentVal) && !Objects.isNull(no3Hlj1Jqr1)){
|
|
|
BigDecimal divide1 = currentVal.subtract(no3Hlj1Jqr1).divide(no3Hlj1Jqr1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- BigDecimal divide2 = no3Hlj1Jqr1.subtract(no3Hlj1Jqr2).divide(no3Hlj1Jqr2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+ if(divide1.compareTo(compareVal) > 0)
|
|
|
result = divide1;
|
|
|
}
|
|
|
}else if(BusinessEnum.WarningCategoryEnum.ROBOT_XSY_2.getCode().equals(category)){
|
|
|
BigDecimal no3Hlj2Jqr1 = tXinyiRobot1.getNo3Hlj2Jqr();
|
|
|
- BigDecimal no3Hlj2Jqr2 = tXinyiRobot2.getNo3Hlj2Jqr();
|
|
|
- if(!Objects.isNull(currentVal) && !Objects.isNull(no3Hlj2Jqr1) && !Objects.isNull(no3Hlj2Jqr2)){
|
|
|
+ if(!Objects.isNull(currentVal) && !Objects.isNull(no3Hlj2Jqr1) ){
|
|
|
BigDecimal divide1 = currentVal.subtract(no3Hlj2Jqr1).divide(no3Hlj2Jqr1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- BigDecimal divide2 = no3Hlj2Jqr1.subtract(no3Hlj2Jqr2).divide(no3Hlj2Jqr2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+ if(divide1.compareTo(compareVal) > 0)
|
|
|
result = divide1;
|
|
|
}
|
|
|
}else if(BusinessEnum.WarningCategoryEnum.ROBOT_ECCZLSY.getCode().equals(category)){
|
|
|
BigDecimal tpRccJqr1 = tXinyiRobot1.getTpRccJqr();
|
|
|
- BigDecimal tpRccJqr2 = tXinyiRobot2.getTpRccJqr();
|
|
|
- if(!Objects.isNull(currentVal) && !Objects.isNull(tpRccJqr1) && !Objects.isNull(tpRccJqr2)){
|
|
|
+ if(!Objects.isNull(currentVal) && !Objects.isNull(tpRccJqr1)){
|
|
|
BigDecimal divide1 = currentVal.subtract(tpRccJqr1).divide(tpRccJqr1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- BigDecimal divide2 = tpRccJqr1.subtract(tpRccJqr2).divide(tpRccJqr2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+ if(divide1.compareTo(compareVal) > 0)
|
|
|
result = divide1;
|
|
|
}
|
|
|
}else if(BusinessEnum.WarningCategoryEnum.ROBOT_CS_AD.getCode().equals(category)){//2025年02月25日16:23:08 合并一个指标:出水氨氮 通过计算获得
|
|
@@ -3551,34 +3716,10 @@ public class AsyncTask {
|
|
|
BigDecimal anDan12 = no3Qyc1Jqr12.add(nh31Jqr12).subtract(no3Hlj1Jqr12);
|
|
|
BigDecimal anDan1 = 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 anDan2 = anDan21.add(anDan22).divide(DECIMAL_2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
|
|
|
- if(!Objects.isNull(currentVal) && !Objects.isNull(anDan1) && !Objects.isNull(anDan2)){
|
|
|
+ if(!Objects.isNull(currentVal) && !Objects.isNull(anDan1)){
|
|
|
BigDecimal divide1 = currentVal.subtract(anDan1).divide(anDan1, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- BigDecimal divide2 = anDan1.subtract(anDan2).divide(anDan2, NUMBER_SCALE_4, RoundingMode.HALF_UP);
|
|
|
- if(divide1.compareTo(compareVal) > 0 && divide2.compareTo(compareVal) > 0)
|
|
|
+ if(divide1.compareTo(compareVal) > 0)
|
|
|
result = divide1;
|
|
|
}
|
|
|
}else{
|
|
@@ -3968,7 +4109,8 @@ public class AsyncTask {
|
|
|
String showVal = this.buildShowValue(warningRecord, tXinyiIndustry, normConfig, DateUtils.getNowDate());
|
|
|
chatReq.setShowVal(showVal);//前端展示的数据和提问的数据不一致
|
|
|
chatReq.setQuestion(BusinessEnum.WarningSymbolEnum.SJYC_YCSG.getMsg());//本地问题
|
|
|
- chatReq.setAnswer(category + YCSG_ANSWER_ONE + exceedVal.multiply(BigDecimal_100) + "%" + YCSG_ANSWER_TWO + warningRecord.getWarningVal() + YCSG_ANSWER_THREE);
|
|
|
+// chatReq.setAnswer(category + YCSG_ANSWER_ONE + exceedVal.multiply(BigDecimal_100) + "%" + YCSG_ANSWER_TWO + warningRecord.getWarningVal() + YCSG_ANSWER_THREE);
|
|
|
+ chatReq.setAnswer(YCSG_ANSWER_REPLACE.replaceAll("@@@0", category).replaceAll("@@@1", String.valueOf(warningRecord.getWarningVal())).replaceAll("@@@2", exceedVal.multiply(BigDecimal_100) + "%"));
|
|
|
chatReq.setWarningId(String.valueOf(warningRecord.getId()));
|
|
|
chatReq.setCounts(1);//问答次数
|
|
|
|
|
@@ -3990,7 +4132,8 @@ public class AsyncTask {
|
|
|
String showVal = this.buildShowValue(warningRecord, tXinyiIndustry, normConfig, DateUtils.getNowDate());
|
|
|
chatReq.setShowVal(showVal);//前端展示的数据和提问的数据不一致
|
|
|
chatReq.setQuestion(BusinessEnum.WarningSymbolEnum.YBGZ_LX_SINGLE.getMsg());//本地问题
|
|
|
- chatReq.setAnswer(SINGLE_NO_CHANGE_ANSWER_ONE + category + SINGLE_NO_CHANGE_ANSWER_TWO + category + SINGLE_NO_CHANGE_ANSWER_THREE);
|
|
|
+// chatReq.setAnswer(SINGLE_NO_CHANGE_ANSWER_ONE + category + SINGLE_NO_CHANGE_ANSWER_TWO + category + SINGLE_NO_CHANGE_ANSWER_THREE);
|
|
|
+ chatReq.setAnswer(SINGLE_NO_CHANGE_ANSWER_REPLACE.replaceAll("@@@0", category));
|
|
|
chatReq.setWarningId(String.valueOf(warningRecord.getId()));
|
|
|
chatReq.setCounts(1);//问答次数
|
|
|
|
|
@@ -4012,7 +4155,8 @@ public class AsyncTask {
|
|
|
String showVal = this.buildShowValue(warningRecord, tXinyiIndustry, normConfig, DateUtils.getNowDate());
|
|
|
chatReq.setShowVal(showVal);//前端展示的数据和提问的数据不一致
|
|
|
chatReq.setQuestion(BusinessEnum.WarningSymbolEnum.YBGZ_DD_SINGLE.getMsg());//本地问题
|
|
|
- chatReq.setAnswer(SINGLE_BREAKPOINT_ANSWER_PREFIX + category + SINGLE_BREAKPOINT_ANSWER_SUFFIX);
|
|
|
+// chatReq.setAnswer(SINGLE_BREAKPOINT_ANSWER_PREFIX + category + SINGLE_BREAKPOINT_ANSWER_SUFFIX);
|
|
|
+ chatReq.setAnswer(SINGLE_BREAKPOINT_ANSWER_REPLACE.replaceAll("@@@0", category));
|
|
|
chatReq.setWarningId(String.valueOf(warningRecord.getId()));
|
|
|
chatReq.setCounts(1);//问答次数
|
|
|
|
|
@@ -4035,7 +4179,8 @@ public class AsyncTask {
|
|
|
String showVal = this.buildShowValue(tXinyiWarningRecord, tXinyiIndustry, normConfig, DateUtils.getNowDate());
|
|
|
chatReq.setShowVal(showVal);//前端展示的数据和提问的数据不一致
|
|
|
chatReq.setQuestion(BusinessEnum.WarningSymbolEnum.YBGZ_LX_MORE.getMsg());//本地问题
|
|
|
- chatReq.setAnswer(MORE_NO_CHANGE_ANSWER);
|
|
|
+// chatReq.setAnswer(MORE_NO_CHANGE_ANSWER);
|
|
|
+ chatReq.setAnswer(MORE_NO_CHANGE_ANSWER_REPLACE.replaceAll("@@@0", tXinyiWarningRecord.getCategory()).replaceAll("@@@1", String.valueOf(tXinyiWarningRecord.getWarningVal())));
|
|
|
chatReq.setWarningId(String.valueOf(tXinyiWarningRecord.getId()));
|
|
|
chatReq.setCounts(1);//问答次数
|
|
|
|
|
@@ -4057,7 +4202,8 @@ public class AsyncTask {
|
|
|
String showVal = this.buildShowValue(tXinyiWarningRecord, tXinyiIndustry, normConfig, DateUtils.getNowDate());
|
|
|
chatReq.setShowVal(showVal);//前端展示的数据和提问的数据不一致
|
|
|
chatReq.setQuestion(BusinessEnum.WarningSymbolEnum.YBGZ_DD_MORE_GYK.getMsg());//本地问题
|
|
|
- chatReq.setAnswer(MORE_BREAKPOINT_ANSWER);
|
|
|
+// chatReq.setAnswer(MORE_BREAKPOINT_ANSWER);
|
|
|
+ chatReq.setAnswer(MORE_BREAKPOINT_ANSWER_REPLACE.replaceAll("@@@0", tXinyiWarningRecord.getCategory()));
|
|
|
chatReq.setWarningId(String.valueOf(tXinyiWarningRecord.getId()));
|
|
|
chatReq.setCounts(1);//问答次数
|
|
|
|
|
@@ -4070,7 +4216,9 @@ public class AsyncTask {
|
|
|
public static void main(String[] args) {
|
|
|
System.out.println(CCCDCHRT_LAST);
|
|
|
System.out.println(GSLS_LAST);
|
|
|
- System.out.println(BigDecimal.valueOf(1).subtract(null));
|
|
|
+// System.out.println(BigDecimal.valueOf(1).subtract(null));
|
|
|
+ String s = "asd@@@1dsa@@@1111@@@1222".replaceAll("@@@1", "!");
|
|
|
+ System.out.println(s);
|
|
|
}
|
|
|
|
|
|
/**
|