Răsfoiți Sursa

处理历史化验室和工业库报警的时候 对应的日期都采用对应的检测时间,而不是当前时间

王苗苗 3 zile în urmă
părinte
comite
640c3249f7

+ 37 - 23
slibra-admin/src/main/java/com/slibra/web/controller/business/HandleDataController.java

@@ -2314,7 +2314,10 @@ public class HandleDataController extends BaseController
      */
     private void handleXinYiWarningRecordJSOriginTp(BigDecimal jsBzz, BigDecimal currentVal, String category, TXinyiIndustry tXinyiIndustry, TXinyiNormConfig normConfig, BigDecimal cwrwfhz) {
 
-        Date nowDate = DateUtils.getNowDate();
+        String testHour = tXinyiIndustry.getTestHour();
+        //这里也不能用当前日期,要用对应检测时间
+//        Date nowDate = DateUtils.getNowDate();
+        Date nowDate = DateUtils.parseDate(testHour);
 
         List<TXinyiIndustry> tXinyiIndustries = this.xinyiIndustryMapper.selectNIndustry(INT_8);
         if(CollectionUtils.isEmpty(tXinyiIndustries) || tXinyiIndustries.size() < INT_8){
@@ -2340,7 +2343,7 @@ public class HandleDataController extends BaseController
      */
     private void normalIndustryWarningJsTp(BigDecimal jsBzz, BigDecimal currentVal, String category, TXinyiIndustry tXinyiIndustry, TXinyiNormConfig normConfig, BigDecimal cwrwfhz, Date nowDate, List<TXinyiIndustry> tXinyiIndustries) {
         //新的判断进水氨氮是否超标
-        TXinyiWarningRecord tXinyiWarningRecord = existsNormalJsTp(jsBzz, currentVal, category, cwrwfhz, tXinyiIndustries, normConfig);
+        TXinyiWarningRecord tXinyiWarningRecord = existsNormalJsTp(jsBzz, currentVal, category, cwrwfhz, tXinyiIndustries, normConfig, nowDate);
 
         //最近3条输出 连续升高趋势 和 新增的报警都需要
         //当前状态正常 需要查询历史有无正在报警的数据,如果有,将报警状态改完2(系统自动关闭)
@@ -2394,9 +2397,10 @@ public class HandleDataController extends BaseController
      * @param cwrwfhz
      * @param tXinyiIndustries
      * @param normConfig
+     * @param nowDate
      * @return
      */
-    private TXinyiWarningRecord existsNormalJsTp(BigDecimal jsBzz, BigDecimal currentVal, String category, BigDecimal cwrwfhz, List<TXinyiIndustry> tXinyiIndustries, TXinyiNormConfig normConfig) {
+    private TXinyiWarningRecord existsNormalJsTp(BigDecimal jsBzz, BigDecimal currentVal, String category, BigDecimal cwrwfhz, List<TXinyiIndustry> tXinyiIndustries, TXinyiNormConfig normConfig, Date nowDate) {
         boolean flag = false;
         TXinyiIndustry tXinyiIndustry = tXinyiIndustries.get(INDEX_0);
         BigDecimal jsTp0 = tXinyiIndustry.getJsTp();
@@ -2424,12 +2428,12 @@ public class HandleDataController extends BaseController
         tXinyiWarningRecord.setStatus(0);
         tXinyiWarningRecord.setType(0);
         tXinyiWarningRecord.setCategory(category);
-        tXinyiWarningRecord.setTime(DateUtils.getNowDate());
+        tXinyiWarningRecord.setTime(nowDate);
         tXinyiWarningRecord.setWarningVal(currentVal);
         tXinyiWarningRecord.setDesignVal(jsBzz);
 //        tXinyiWarningRecord.setControlVal(csGkz);
         tXinyiWarningRecord.setCreateBy(WARNING_DEFAULT_CREATE);
-        tXinyiWarningRecord.setCreateTime(DateUtils.getNowDate());
+        tXinyiWarningRecord.setCreateTime(nowDate);
         tXinyiWarningRecord.setRemark(ZERO_SZ_WARNING.getCode());
         //2025年02月10日14:45:08 下面是新增加的字段
         tXinyiWarningRecord.setWaterType(BusinessEnum.WaterTypeEnum.JS.getCode());
@@ -2460,16 +2464,16 @@ public class HandleDataController extends BaseController
      */
     private void handleXinYiWarningRecordJSOriginCod(BigDecimal jsBzz, BigDecimal currentVal, String category, TXinyiIndustry tXinyiIndustry, TXinyiNormConfig normConfig, BigDecimal cwrwfhz) {
 
-        Date nowDate = DateUtils.getNowDate();
+        String testHour = tXinyiIndustry.getTestHour();
+        //这里也不能用当前日期,要用对应检测时间
+//        Date nowDate = DateUtils.getNowDate();
+        Date nowDate = DateUtils.parseDate(testHour);
 
         List<TXinyiIndustry> tXinyiIndustries = this.xinyiIndustryMapper.selectNIndustry(INT_8);
         if(CollectionUtils.isEmpty(tXinyiIndustries) || tXinyiIndustries.size() < INT_8){
             log.error("处理生化报警时,获取最近的8条工业库数据失败~~~~~~~");
             return ;
         }
-        //拼接决策的最近8小时的值
-        String last8Str = this.getJsCodStrByList(tXinyiIndustries);
-
 
         //最开始的工艺报警  (超标准工艺报警) 2025年04月16日15:40:23 改成只有超标准才会报警,并且具体逻辑做拆分
         normalIndustryWarningJsCod(jsBzz, currentVal, category, tXinyiIndustry, normConfig, cwrwfhz, nowDate, tXinyiIndustries);
@@ -2490,7 +2494,7 @@ public class HandleDataController extends BaseController
      */
     private void normalIndustryWarningJsCod(BigDecimal jsBzz, BigDecimal currentVal, String category, TXinyiIndustry tXinyiIndustry, TXinyiNormConfig normConfig, BigDecimal cwrwfhz, Date nowDate, List<TXinyiIndustry> tXinyiIndustries) {
         //新的判断进水氨氮是否超标
-        TXinyiWarningRecord tXinyiWarningRecord = existsNormalJsCod(jsBzz, currentVal, category, cwrwfhz, tXinyiIndustries, normConfig);
+        TXinyiWarningRecord tXinyiWarningRecord = existsNormalJsCod(jsBzz, currentVal, category, cwrwfhz, tXinyiIndustries, normConfig, nowDate);
 
         //最近3条输出 连续升高趋势 和 新增的报警都需要
         //当前状态正常 需要查询历史有无正在报警的数据,如果有,将报警状态改完2(系统自动关闭)
@@ -2543,9 +2547,10 @@ public class HandleDataController extends BaseController
      * @param cwrwfhz
      * @param tXinyiIndustries
      * @param normConfig
+     * @param nowDate
      * @return
      */
-    private TXinyiWarningRecord existsNormalJsCod(BigDecimal jsBzz, BigDecimal currentVal, String category, BigDecimal cwrwfhz, List<TXinyiIndustry> tXinyiIndustries, TXinyiNormConfig normConfig) {
+    private TXinyiWarningRecord existsNormalJsCod(BigDecimal jsBzz, BigDecimal currentVal, String category, BigDecimal cwrwfhz, List<TXinyiIndustry> tXinyiIndustries, TXinyiNormConfig normConfig, Date nowDate) {
         boolean flag = false;
         TXinyiIndustry tXinyiIndustry = tXinyiIndustries.get(INDEX_0);
         BigDecimal jsCod0 = tXinyiIndustry.getJsCod();
@@ -2570,12 +2575,12 @@ public class HandleDataController extends BaseController
         tXinyiWarningRecord.setStatus(0);
         tXinyiWarningRecord.setType(0);
         tXinyiWarningRecord.setCategory(category);
-        tXinyiWarningRecord.setTime(DateUtils.getNowDate());
+        tXinyiWarningRecord.setTime(nowDate);
         tXinyiWarningRecord.setWarningVal(currentVal);
         tXinyiWarningRecord.setDesignVal(jsBzz);
 //        tXinyiWarningRecord.setControlVal(csGkz);
         tXinyiWarningRecord.setCreateBy(WARNING_DEFAULT_CREATE);
-        tXinyiWarningRecord.setCreateTime(DateUtils.getNowDate());
+        tXinyiWarningRecord.setCreateTime(nowDate);
         tXinyiWarningRecord.setRemark(ZERO_SZ_WARNING.getCode());
         //2025年02月10日14:45:08 下面是新增加的字段
         tXinyiWarningRecord.setWaterType(BusinessEnum.WaterTypeEnum.JS.getCode());
@@ -2622,7 +2627,11 @@ public class HandleDataController extends BaseController
      */
     private void handleXinYiWarningsCsOriginCod(BigDecimal csBzz, BigDecimal currentVal, BigDecimal csGkz, String category, TXinyiIndustry tXinyiIndustry, TXinyiNormConfig normConfig, BigDecimal cwrwfhz) {
 
-        Date nowDate = DateUtils.getNowDate();
+        String testHour = tXinyiIndustry.getTestHour();
+        //这里也不能用当前日期,要用对应检测时间
+//        Date nowDate = DateUtils.getNowDate();
+        Date nowDate = DateUtils.parseDate(testHour);
+
         List<TXinyiIndustry> tXinyiIndustries = this.xinyiIndustryMapper.selectNIndustry(INT_4);
         if(CollectionUtils.isEmpty(tXinyiIndustries) || tXinyiIndustries.size() < INT_4){
             log.error("处理生化报警时,获取最近的4条工业库数据失败~~~~~~~");
@@ -2656,7 +2665,7 @@ public class HandleDataController extends BaseController
      */
     private void normalIndustryWarningCsCod(BigDecimal csBzz, BigDecimal currentVal, String category, TXinyiIndustry tXinyiIndustry, TXinyiNormConfig normConfig, BigDecimal cwrwfhz, Date nowDate, List<TXinyiIndustry> tXinyiIndustries, BigDecimal csGkz) {
         //新的判断进水氨氮是否超标
-        TXinyiWarningRecord tXinyiWarningRecord = existsNormalCsCod(csBzz, currentVal, category, cwrwfhz, tXinyiIndustries, normConfig, csGkz);
+        TXinyiWarningRecord tXinyiWarningRecord = existsNormalCsCod(csBzz, currentVal, category, cwrwfhz, tXinyiIndustries, normConfig, csGkz, nowDate);
 
         //最近3条输出 连续升高趋势 和 新增的报警都需要
         //当前状态正常 需要查询历史有无正在报警的数据,如果有,将报警状态改完2(系统自动关闭)
@@ -2709,9 +2718,10 @@ public class HandleDataController extends BaseController
      * @param cwrwfhz
      * @param tXinyiIndustries
      * @param normConfig
+     * @param nowDate
      * @return
      */
-    private TXinyiWarningRecord existsNormalCsCod(BigDecimal csBzz, BigDecimal currentVal, String category, BigDecimal cwrwfhz, List<TXinyiIndustry> tXinyiIndustries, TXinyiNormConfig normConfig, BigDecimal csGkz) {
+    private TXinyiWarningRecord existsNormalCsCod(BigDecimal csBzz, BigDecimal currentVal, String category, BigDecimal cwrwfhz, List<TXinyiIndustry> tXinyiIndustries, TXinyiNormConfig normConfig, BigDecimal csGkz, Date nowDate) {
         boolean flag = false;
         TXinyiIndustry tXinyiIndustry = tXinyiIndustries.get(INDEX_0);
         BigDecimal csCod0 = tXinyiIndustry.getCsCod();
@@ -2770,12 +2780,12 @@ public class HandleDataController extends BaseController
         tXinyiWarningRecord.setStatus(0);
         tXinyiWarningRecord.setType(0);
         tXinyiWarningRecord.setCategory(category);
-        tXinyiWarningRecord.setTime(DateUtils.getNowDate());
+        tXinyiWarningRecord.setTime(nowDate);
         tXinyiWarningRecord.setWarningVal(currentVal);
         tXinyiWarningRecord.setDesignVal(csBzz);
         tXinyiWarningRecord.setControlVal(csGkz);
         tXinyiWarningRecord.setCreateBy(WARNING_DEFAULT_CREATE);
-        tXinyiWarningRecord.setCreateTime(DateUtils.getNowDate());
+        tXinyiWarningRecord.setCreateTime(nowDate);
         tXinyiWarningRecord.setRemark(ZERO_SZ_WARNING.getCode());
         //2025年02月10日14:45:08 下面是新增加的字段
         tXinyiWarningRecord.setWaterType(BusinessEnum.WaterTypeEnum.CS.getCode());
@@ -3687,7 +3697,10 @@ public class HandleDataController extends BaseController
      */
     private void handleXinYiWarningsRobotOriginCsTp(BigDecimal csBzz, BigDecimal currentVal, BigDecimal csGkz, String category, TXinyiIndustry tXinyiIndustry, TXinyiNormConfig normConfig, BigDecimal cwrwfhz, List<TXinyiRobot> tXinyiRobots) {
 
-        Date nowDate = DateUtils.getNowDate();
+        String testHour = tXinyiIndustry.getTestHour();
+        //这里也不能用当前日期,要用对应检测时间
+//        Date nowDate = DateUtils.getNowDate();
+        Date nowDate = DateUtils.parseDate(testHour);
 
 //        //单点突变-异常升高报警
 //        if (existsYcsgRobots(csBzz, currentVal, csGkz, category, tXinyiIndustry, normConfig, cwrwfhz, tXinyiRobots, nowDate))
@@ -3713,7 +3726,7 @@ public class HandleDataController extends BaseController
      * @param nowDate
      */
     private void robotCsTpGybz(BigDecimal csBzz, BigDecimal currentVal, BigDecimal csGkz, String category, TXinyiIndustry tXinyiIndustry, TXinyiNormConfig normConfig, BigDecimal cwrwfhz, List<TXinyiRobot> tXinyiRobots, Date nowDate) {
-        TXinyiWarningRecord tXinyiWarningRecord = getRobotCsTpWarningBean(csBzz, currentVal, csGkz, category, normConfig, cwrwfhz, tXinyiRobots);
+        TXinyiWarningRecord tXinyiWarningRecord = getRobotCsTpWarningBean(csBzz, currentVal, csGkz, category, normConfig, cwrwfhz, tXinyiRobots, nowDate);
         //判断是否存在要报警的数据
         //当前状态正常 需要查询历史有无正在报警的数据,如果有,将报警状态改完2(系统自动关闭)
         List<TXinyiWarningRecord> tXinyiWarningRecords = this.xinyiWarningRecordMapper.selectTXinyiWarningRecordList(TXinyiWarningRecord.builder().delFlag(0).type(0).category(category).status(0).build());
@@ -3766,9 +3779,10 @@ public class HandleDataController extends BaseController
      * @param normConfig
      * @param cwrwfhz
      * @param tXinyiRobots
+     * @param nowDate
      * @return
      */
-    private TXinyiWarningRecord getRobotCsTpWarningBean(BigDecimal csBzz, BigDecimal currentVal, BigDecimal csGkz, String category, TXinyiNormConfig normConfig, BigDecimal cwrwfhz, List<TXinyiRobot> tXinyiRobots) {
+    private TXinyiWarningRecord getRobotCsTpWarningBean(BigDecimal csBzz, BigDecimal currentVal, BigDecimal csGkz, String category, TXinyiNormConfig normConfig, BigDecimal cwrwfhz, List<TXinyiRobot> tXinyiRobots, Date nowDate) {
         //判断是否存在
         boolean flag1 = true;
         for (TXinyiRobot xinyiRobot : tXinyiRobots) {
@@ -3787,12 +3801,12 @@ public class HandleDataController extends BaseController
         tXinyiWarningRecord.setStatus(0);
         tXinyiWarningRecord.setType(0);
         tXinyiWarningRecord.setCategory(category);
-        tXinyiWarningRecord.setTime(DateUtils.getNowDate());
+        tXinyiWarningRecord.setTime(nowDate);
         tXinyiWarningRecord.setWarningVal(currentVal);
         tXinyiWarningRecord.setDesignVal(csBzz);
         tXinyiWarningRecord.setControlVal(csGkz);
         tXinyiWarningRecord.setCreateBy(WARNING_DEFAULT_CREATE);
-        tXinyiWarningRecord.setCreateTime(DateUtils.getNowDate());
+        tXinyiWarningRecord.setCreateTime(nowDate);
         tXinyiWarningRecord.setRemark(THREE_HYS_WARNING.getCode());//化验室
         tXinyiWarningRecord.setCwrwfhz(cwrwfhz);//2025年02月14日10:42:53 具体指标具体计算,由上游传过来。
         //2025年02月17日13:53:49 化验室的报警都是对应的类型都是出水