From a2761c246812ce17aee71251c3e9c242a2c5375e Mon Sep 17 00:00:00 2001
From: Jay <csj123456>
Date: 星期三, 16 四月 2025 09:39:32 +0800
Subject: [PATCH] 设置默认分页数值

---
 shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/consumer/ModelPredictFinishConsumer.java |   46 ++++++++++++++++++++++++++++++++++++----------
 1 files changed, 36 insertions(+), 10 deletions(-)

diff --git a/shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/consumer/ModelPredictFinishConsumer.java b/shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/consumer/ModelPredictFinishConsumer.java
index 422f03d..0d57f0b 100644
--- a/shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/consumer/ModelPredictFinishConsumer.java
+++ b/shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/consumer/ModelPredictFinishConsumer.java
@@ -20,6 +20,8 @@
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.stream.Collectors;
 
 /**
@@ -40,9 +42,11 @@
     @Resource
     private RabbitTemplate rabbitTemplate;
 
-    private static String lastRunAlarm = "";
+    private static Map<String, Long> lastRunTime = new ConcurrentHashMap<>();
 
-    private static Map<String, Long> lastRunTime = new HashMap<>();
+    public static Map<Long, List<String>> finishModuleMap = new ConcurrentHashMap<>();
+
+    public static List<Long> finishAlarmMap = new CopyOnWriteArrayList<>();
 
     /**
      * 监听预测完成,产生预警消息
@@ -62,8 +66,15 @@
             }
             // 预测时间
             Date predictTime = DateUtils.parse(messageJson.get("predictTime").toString(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
-            // 预测模块/预测管网
+            // 预测管网
             String moduleType = messageJson.get("moduleType").toString();
+            if (!finishModuleMap.containsKey(predictTime.getTime())) {
+                List<String> mList = new ArrayList<>();
+                finishModuleMap.put(predictTime.getTime(), mList);
+            }
+            finishModuleMap.get(predictTime.getTime()).add(moduleType);
+            log.info("finishModuleMap:" + JSONObject.toJSONString(finishModuleMap));
+
             if (moduleType.equals(CommonConstant.NET_BFG) || moduleType.equals(CommonConstant.NET_COG) ||
                     moduleType.equals(CommonConstant.NET_LDG) ||
                     moduleType.equals(CommonConstant.NET_LDG1) ||
@@ -110,8 +121,17 @@
                     log.info("AlarmPreData: " + JSONArray.toJSONString(result));
 
                     // 对比预测值是否超限
+                    int fromIndex = 0;
                     int toIndex = result.size();
-                    int fromIndex = result.size() - configItem.getCompLength();
+                    if (!configItem.getCompLength().contains(",")) {
+                        fromIndex = result.size() - Integer.parseInt(configItem.getCompLength().trim());
+                    } else {
+                        String[] cpArr = configItem.getCompLength().split(",");
+                        fromIndex = Integer.parseInt(cpArr[0]);
+                        toIndex = Integer.parseInt(cpArr[1]);
+                    }
+                    log.info("fromIndex:" + fromIndex);
+                    log.info("toIndex:" + toIndex);
                     List<Object[]> predictList = result.subList(fromIndex, toIndex);
                     for (Object[] data : predictList) {
                         BigDecimal dataValue = new BigDecimal(Double.parseDouble(data[1].toString())).setScale(2, BigDecimal.ROUND_HALF_UP);
@@ -186,13 +206,19 @@
                     }
                 }
 
-                if (!CollectionUtils.isEmpty(alarmList)) {
-                    log.info("发送预警消息");
-                    Map<String, Object> msg = new HashMap<>(2);
-                    msg.put("predictTime", DateUtils.format(predictTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
-                    msg.put("alarmList", alarmList);
-                    rabbitTemplate.convertAndSend(RoutingConstant.EXCHANGE, RoutingConstant.Iailab_Model_Alarm, msg);
+                if (CollectionUtils.isEmpty(alarmList)) {
+                    log.info("alarmList is empty");
+                    // return;
+                } else {
+                    finishAlarmMap.add(predictTime.getTime());
                 }
+
+                log.info("发送预警消息");
+                Map<String, Object> msg = new HashMap<>(2);
+                msg.put("predictTime", DateUtils.format(predictTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
+                msg.put("alarmList", alarmList);
+                msg.put("moduleType", moduleType);
+                rabbitTemplate.convertAndSend(RoutingConstant.EXCHANGE, RoutingConstant.Iailab_Model_Alarm, msg);
             }
         } catch (Exception e) {
             e.printStackTrace();

--
Gitblit v1.9.3