Răsfoiți Sursa

1.解决化验室报警的展示(展示标准值和管控值) 2.因为现在报警显示的都是最新的数据,所以要更新部分字段 3.解决第一次报警没法获取报警时间的问题

wangmiaomiao 8 luni în urmă
părinte
comite
a05e1b3abe

+ 1 - 0
slibra-common/src/main/java/com/slibra/common/constant/MyConstants.java

@@ -266,6 +266,7 @@ public class MyConstants {
 
     public static void main(String[] args) {
         System.out.println(DecimalUtils.getAbsAndScale(new BigDecimal("2.211"), MyConstants.INT_0));
+        System.out.println(DecimalUtils.getAbsAndScaleStr("2.211", MyConstants.INT_0));
     }
 
 }

+ 15 - 2
slibra-quartz/src/main/java/com/slibra/quartz/task/AsyncTask.java

@@ -1475,6 +1475,7 @@ public class AsyncTask {
         Date warningTime = tXinyiWarningRecord.getTime();
         String remark = tXinyiWarningRecord.getRemark();
         int count = DateUtils.differentHoursByMillisecond(warningTime, DateUtils.getNowDate()) + 1;
+        String category = tXinyiWarningRecord.getCategory();
         /*basic.put("title", tXinyiWarningRecord.getReason());
         basic.put("报警时间", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM ,warningTime));
         basic.put("报警值", tXinyiWarningRecord.getWarningVal());
@@ -1489,7 +1490,11 @@ public class AsyncTask {
 //        basic.put("管控值", tXinyiWarningRecord.getControlVal());
         basic.put("告警级别", tXinyiWarningRecord.getLevel());*/
         //2024年6月25日16:00:18 进出水展示的不一样
-        if(tXinyiWarningRecord.getCategory().contains("出水")){//出水的展示
+        //2024年7月15日10:57:31 因为新增了化验室的3个指标,也是出水数据
+        if(category.contains("出水")
+            || ROBOT_ECCZLSY.getCode().equalsIgnoreCase(category)
+                || ROBOT_XSY_2.getCode().equalsIgnoreCase(category)
+                    || ROBOT_XSY_1.getCode().equalsIgnoreCase(category)){//出水的展示
             ShowValueCSBasic showValueCSBasic = new ShowValueCSBasic();
             if("0".equals(remark)){//水质报警
                 showValueCSBasic.setH("在线仪表");
@@ -1681,6 +1686,8 @@ public class AsyncTask {
             Date nowDate = DateUtils.getNowDate();
             if(CollectionUtils.isEmpty(tXinyiWarningRecords)){//之前没有告警记录
                 //保存到数据库中
+                //2024年7月15日11:06:16 因为只有一个告警记录,但是如果一直报警,现在报警时间取的是更新时间,兼容第一次报警处理
+                tXinyiWarningRecord.setUpdateTime(nowDate);
                 this.xinyiWarningRecordMapper.insertTXinyiWarningRecord(tXinyiWarningRecord);
                 if(WARNING_LEVEL_NO_DATE.equals(tXinyiWarningRecord.getLevel())){
                     //只保存一个普通的问答记录 不需要调用决策信息,但是实时数据还是要记录的
@@ -1703,6 +1710,8 @@ public class AsyncTask {
                         xinyiWarningRecord.setTime(tXinyiWarningRecord.getTime());
                         xinyiWarningRecord.setUpdateTime(nowDate);
                         xinyiWarningRecord.setUpdateBy(WARNING_DEFAULT_CREATE);
+                        //2024年7月15日11:07:33 报警的级别也要重新计算并更新
+                        xinyiWarningRecord.setLevel(tXinyiWarningRecord.getLevel());
                         //更新数据库
                         this.xinyiWarningRecordMapper.updateTXinyiWarningRecord(xinyiWarningRecord);
                         //继续调用决策
@@ -1894,7 +1903,7 @@ public class AsyncTask {
                 BigDecimal cszlBzz = normConfig.getCszlBzz();
                 BigDecimal cszlGkz = normConfig.getCszlGkz();
                 if(!Objects.isNull(cszlBzz)){
-                    handleXinYiWarningsRobot(cszlBzz, csTp, cszlGkz, BusinessEnum.WarningCategoryEnum.ROBOT_ECCZLSY.getCode(), tXinyiIndustry, normConfig);
+                    handleXinYiWarningsRobot(cszlBzz, csTp, cszlGkz, ROBOT_ECCZLSY.getCode(), tXinyiIndustry, normConfig);
                 }
             }
 
@@ -1963,6 +1972,8 @@ public class AsyncTask {
             Date nowDate = DateUtils.getNowDate();
             if(CollectionUtils.isEmpty(tXinyiWarningRecords)){//之前没有告警记录
                 //保存到数据库中
+                //2024年7月15日11:06:16 因为只有一个告警记录,但是如果一直报警,现在报警时间取的是更新时间,兼容第一次报警处理
+                tXinyiWarningRecord.setUpdateTime(nowDate);
                 this.xinyiWarningRecordMapper.insertTXinyiWarningRecord(tXinyiWarningRecord);
                 if(WARNING_LEVEL_NO_DATE.equals(tXinyiWarningRecord.getLevel())){
                     //只保存一个普通的问答记录 不需要调用决策信息,但是实时数据还是要记录的
@@ -1985,6 +1996,8 @@ public class AsyncTask {
                         xinyiWarningRecord.setTime(tXinyiWarningRecord.getTime());
                         xinyiWarningRecord.setUpdateTime(nowDate);
                         xinyiWarningRecord.setUpdateBy(WARNING_DEFAULT_CREATE);
+                        //2024年7月15日11:07:33 报警的级别也要重新计算并更新
+                        xinyiWarningRecord.setLevel(tXinyiWarningRecord.getLevel());
                         //更新数据库
                         this.xinyiWarningRecordMapper.updateTXinyiWarningRecord(xinyiWarningRecord);
                         //继续调用决策