Переглянути джерело

工业库报警 和 化验室报警 将报警时 获取需要参数失败的情况 不再抛出异常,打印信息并退出

王苗苗 1 місяць тому
батько
коміт
e2986ce9b0

+ 28 - 9
slibra-quartz/src/main/java/com/slibra/quartz/task/AsyncTask.java

@@ -113,8 +113,9 @@ public class AsyncTask {
             try {
                 warningDate = DateUtils.parseDate(tXinyiIndustry.getTestHour(), DateUtils.YYYYMMDDHH_TS);
             } catch (ParseException e) {
-                log.error("将工业库的化验时间转换date类型异常");
-                throw new RuntimeException(e.getMessage());
+//                throw new RuntimeException(e.getMessage());
+                log.error("将工业库的化验时间转换date类型异常,异常信息为{}", e.getMessage());
+                return;
             }
             //查询工业库同步任务失败的报警正在进行的数据
             TXinyiWarningRecord warningRecord = TXinyiWarningRecord.builder().symbol(BusinessEnum.WarningSymbolEnum.INDUSTRY_SYNC_ERROR.getCode()).status(0).build();
@@ -3862,13 +3863,30 @@ public class AsyncTask {
         log.info("进入了定时任务判断机器人化验库是否超标及后续逻辑--新的逻辑处理");
         //查询配置
         List<TXinyiNormConfig> tXinyiNormConfigs = this.xinyiNormConfigMapper.selectTXinyiNormConfigList(null);
-        if(CollectionUtils.isEmpty(tXinyiNormConfigs))
-            throw new RuntimeException("未查询到配置信息");
+        if(CollectionUtils.isEmpty(tXinyiNormConfigs)){
+//            throw new ServiceException("未查询到配置信息");
+            log.error("未查询到配置信息");
+            return;
+        }
         TXinyiNormConfig normConfig = tXinyiNormConfigs.get(0);
 
+        String testHour = tXinyiRobot.getTestHour();
+        if(StringUtils.isBlank(testHour)){
+            log.error("化验室报警的时候,获取化验室的化验时间-小时失败,无法处理后续操作");
+            return;
+        }
+
         //查询最新的一条工业库的数据(showvalue展示使用)
-        List<TXinyiIndustry> tXinyiIndustries = this.xinyiIndustryMapper.selectNIndustry(1);
-        TXinyiIndustry tXinyiIndustry = CollectionUtils.isEmpty(tXinyiIndustries) ? new TXinyiIndustry() : tXinyiIndustries.get(0);
+        //2025年02月26日15:55:16 逻辑调整:这里不使用最新的一条工业库数据,获取化验室的同时段的数据
+//        List<TXinyiIndustry> tXinyiIndustries = this.xinyiIndustryMapper.selectNIndustry(1);
+        List<TXinyiIndustry> tXinyiIndustries = this.xinyiIndustryMapper.selectTXinyiIndustryList(TXinyiIndustry.builder().testHour(testHour).build());
+        if(CollectionUtils.isEmpty(tXinyiIndustries)){
+//            throw new ServiceException("未查询到对应的工业库数据,无法进行图表数据展示!");
+            log.error("未查询到对应的工业库数据,无法进行图表数据展示!");
+            return;
+        }
+
+        TXinyiIndustry tXinyiIndustry = tXinyiIndustries.get(0);
 
         //新的逻辑:
         //只要当前获取的工业库数据和当前时间
@@ -3877,10 +3895,11 @@ public class AsyncTask {
         Date nowDate = DateUtils.getNowDate();
         Date warningDate = null;
         try {
-            warningDate = DateUtils.parseDate(tXinyiRobot.getTestHour(), DateUtils.YYYYMMDDHH_TS);
+            warningDate = DateUtils.parseDate(testHour, DateUtils.YYYYMMDDHH_TS);
         } catch (ParseException e) {
-            log.error("将化验室的的化验时间转换date类型异常");
-            throw new RuntimeException(e.getMessage());
+//            throw new RuntimeException(e.getMessage());
+            log.error("将化验室的的化验时间转换date类型异常,异常信息为{}", e.getMessage());
+            return;
         }
         //查询工业库同步任务失败的报警正在进行的数据
         TXinyiWarningRecord warningRecord = TXinyiWarningRecord.builder().symbol(BusinessEnum.WarningSymbolEnum.ROBOT_SYNC_ERROR.getCode()).status(0).build();

+ 20 - 8
slibra-quartz/src/main/java/com/slibra/quartz/task/RyTask.java

@@ -437,17 +437,26 @@ public class RyTask
         log.info("进入了新的单独的工业库的报警逻辑处理~~~~&&&");
         //获取配置表
         List<TXinyiNormConfig> tXinyiNormConfigs = this.xinyiNormConfigMapper.selectTXinyiNormConfigList(null);
-        if(CollectionUtils.isEmpty(tXinyiNormConfigs))
-            throw new RuntimeException("未查询到配置信息");
+        if(CollectionUtils.isEmpty(tXinyiNormConfigs)){
+//            throw new RuntimeException("未查询到配置信息");
+            log.error("工业库报警的时候,未查询到配置信息");
+            return;
+        }
         TXinyiNormConfig normConfig = tXinyiNormConfigs.get(0);
         //获取最新的一条工业库数据
         TXinyiIndustry industry = this.xinyiIndustryMapper.selectTXinyiIndustryNewest();
-        if(Objects.isNull(industry))
-            throw new ServiceException("未查询到最新的工业库数据");//理论上不会
+        if(Objects.isNull(industry)){
+//            throw new ServiceException("未查询到最新的工业库数据");//理论上不会
+            log.error("未查询到最新的工业库数据");
+            return;
+        }
         //获取同时刻的计算数据
         List<TXinyiCalculate> tXinyiCalculates = this.xinyiCalculateMapper.selectTXinyiCalculateList(TXinyiCalculate.builder().testHour(industry.getTestHour()).build());
-        if(CollectionUtils.isEmpty(tXinyiCalculates))
-            throw new ServiceException("未查询到最新的工业库对应的计算数据");//理论上不会
+        if(CollectionUtils.isEmpty(tXinyiCalculates)){
+//            throw new ServiceException("未查询到最新的工业库对应的计算数据");//理论上不会
+            log.error("未查询到最新的工业库对应的计算数据");
+            return;
+        }
         asyncTask.handleWarning(industry, normConfig, tXinyiCalculates.get(0));
     }
 
@@ -750,8 +759,11 @@ public class RyTask
         log.info("进入了单独的化验室数据报警处理^^^***");
         //获取最新的一条化验室数据
         List<TXinyiRobot> robotList = this.xinyiRobotMapper.selectNRobot(1);
-        if(CollectionUtils.isEmpty(robotList))
-            throw new ServiceException("获取最新的工业库的一条数据失败,无法处理工业库报警");//理论上不会
+        if(CollectionUtils.isEmpty(robotList)){
+//            throw new ServiceException("获取最新的工业库的一条数据失败,无法处理工业库报警");//理论上不会
+            log.error("获取最新的工业库的一条数据失败,无法处理工业库报警");
+            return;
+        }
         if(PROD_ENVIRONMENT.equalsIgnoreCase(environment) || DENGBAO_ENVIRONMENT.equalsIgnoreCase(environment)
             || DEV_ENVIRONMENT.equalsIgnoreCase(environment)){
             asyncTask.handleRobotWarningNew(robotList.get(0));