Pārlūkot izejas kodu

加个过滤条件呢

wukai 6 dienas atpakaļ
vecāks
revīzija
0beafa60bf

+ 0 - 2
jjt-biz/src/main/java/com/jjt/dye/service/impl/DyeCalcHourServiceImpl.java

@@ -215,8 +215,6 @@ public class DyeCalcHourServiceImpl implements IDyeCalcHourService {
                 continue;
             }
             List<DyeDeviceVO> devices = entry.getValue();
-            //这个存储iot返回的字段映射  key值为组装的iot返回的name,value为自己组装的s-code-id
-            Map<String, String> fieldMap = new HashMap<>(16);
             for (DyeDeviceVO device : devices) {
                 if (types != null && !StringUtils.containsAny(device.getTypeId().toString(), types)) {
                     continue;

+ 21 - 21
jjt-biz/src/main/java/com/jjt/dye/service/impl/DyeProcAlarmServiceImpl.java

@@ -151,7 +151,7 @@ public class DyeProcAlarmServiceImpl implements IDyeProcAlarmService {
         List<DyeProcAlarm> result = selectDyeProcAlarmList(dyeProcAlarm);
 
         // 先按paraCode+device_id分组
-        Map<String, List<DyeProcAlarm>> groupedAlarms = result.stream()
+        Map<String, List<DyeProcAlarm>> groupedAlarms = result.stream().filter(alarm -> StringUtils.containsAny(alarm.getLine(), lines)).filter(alarm -> StringUtils.containsAny(alarm.getTypeId() + "", types))
                 .collect(Collectors.groupingBy(
                         alarm -> alarm.getParaCode() + "_" + alarm.getDeviceId()
                 ));
@@ -162,21 +162,21 @@ public class DyeProcAlarmServiceImpl implements IDyeProcAlarmService {
         // 对每组数据按startTime排序后进行合并处理
         for (Map.Entry<String, List<DyeProcAlarm>> entry : groupedAlarms.entrySet()) {
             List<DyeProcAlarm> group = entry.getValue();
-            
+
             // 按startTime排序
             group.sort(Comparator.comparing(DyeProcAlarm::getStartTime));
-            
+
             // 合并相邻且时间间隔在5分钟内的记录
             List<DyeProcAlarm> mergedGroup = mergeAlarmsInGroup(group);
             mergedResults.addAll(mergedGroup);
         }
-        
+
         return mergedResults;
     }
 
     /**
      * 合并同一组内的告警记录
-     * 
+     *
      * @param alarms 按时间排序的告警记录列表
      * @return 合并后的告警记录列表
      */
@@ -187,28 +187,28 @@ public class DyeProcAlarmServiceImpl implements IDyeProcAlarmService {
 
         List<DyeProcAlarm> mergedAlarms = new ArrayList<>();
         DyeProcAlarm currentAlarm = alarms.get(0).clone();
-        
+
         // 初始化actValue范围
         if (currentAlarm.getActValue() != null) {
             String formattedVal = formatBigDecimal(currentAlarm.getActValue());
             currentAlarm.setActValueRange(formattedVal + "-" + formattedVal);
         }
-        
+
         // 设置初始endTime为startTime,因为在创建时endTime通常未设置
         if (currentAlarm.getEndTime() == null && currentAlarm.getStartTime() != null) {
             currentAlarm.setEndTime(currentAlarm.getStartTime());
         }
-        
+
         mergedAlarms.add(currentAlarm);
 
         for (int i = 1; i < alarms.size(); i++) {
             DyeProcAlarm nextAlarm = alarms.get(i);
-            
+
             // 确保下一个告警的endTime也被初始化
             if (nextAlarm.getEndTime() == null && nextAlarm.getStartTime() != null) {
                 nextAlarm.setEndTime(nextAlarm.getStartTime());
             }
-            
+
             // 判断是否需要合并:时间间隔在5分钟内(300000毫秒)
             // 只有当时间字段都不为null时才进行合并判断
             if (nextAlarm.getStartTime() != null && currentAlarm.getEndTime() != null) {
@@ -218,7 +218,7 @@ public class DyeProcAlarmServiceImpl implements IDyeProcAlarmService {
                     if (nextAlarm.getEndTime() != null) {
                         currentAlarm.setEndTime(nextAlarm.getEndTime());
                     }
-                    
+
                     // 更新actValue范围(最小值-最大值)
                     if (nextAlarm.getActValue() != null) {
                         String existingRange = currentAlarm.getActValueRange();
@@ -264,39 +264,39 @@ public class DyeProcAlarmServiceImpl implements IDyeProcAlarmService {
                 } else {
                     // 不满足合并条件,新建记录
                     currentAlarm = nextAlarm.clone();
-                    
+
                     // 初始化actValue范围
                     if (currentAlarm.getActValue() != null) {
                         String formattedVal = formatBigDecimal(currentAlarm.getActValue());
                         currentAlarm.setActValueRange(formattedVal + "-" + formattedVal);
                     }
-                    
+
                     // 设置初始endTime为startTime
                     if (currentAlarm.getEndTime() == null && currentAlarm.getStartTime() != null) {
                         currentAlarm.setEndTime(currentAlarm.getStartTime());
                     }
-                    
+
                     mergedAlarms.add(currentAlarm);
                 }
             } else {
                 // 时间字段为null,不能判断是否合并,直接添加为新记录
                 currentAlarm = nextAlarm.clone();
-                
+
                 // 初始化actValue范围
                 if (currentAlarm.getActValue() != null) {
                     String formattedVal = formatBigDecimal(currentAlarm.getActValue());
                     currentAlarm.setActValueRange(formattedVal + "-" + formattedVal);
                 }
-                
+
                 // 设置初始endTime为startTime
                 if (currentAlarm.getEndTime() == null && currentAlarm.getStartTime() != null) {
                     currentAlarm.setEndTime(currentAlarm.getStartTime());
                 }
-                
+
                 mergedAlarms.add(currentAlarm);
             }
         }
-        
+
         return mergedAlarms;
     }
 
@@ -424,7 +424,7 @@ public class DyeProcAlarmServiceImpl implements IDyeProcAlarmService {
         //需要合并记录 tp_id+device_id相同,记录actValue的范围(最小值-最大值)存入actValueRange字段中
         // startTime记录第一次出现的时间,endTime记录最后一次出现的时间
         // 只有当两条记录时间间隔在5分钟以内时才进行合并
-        
+
         // 先按paraCode+device_id分组
         Map<String, List<DyeProcAlarm>> groupedAlarms = result.stream()
                 .collect(Collectors.groupingBy(
@@ -437,10 +437,10 @@ public class DyeProcAlarmServiceImpl implements IDyeProcAlarmService {
         // 对每组数据按startTime排序后进行合并处理
         for (Map.Entry<String, List<DyeProcAlarm>> entry : groupedAlarms.entrySet()) {
             List<DyeProcAlarm> group = entry.getValue();
-            
+
             // 按startTime排序
             group.sort(Comparator.comparing(DyeProcAlarm::getStartTime));
-            
+
             // 合并相邻且时间间隔在5分钟内的记录
             List<DyeProcAlarm> mergedGroup = mergeAlarmsInGroup(group);
             mergedResults.addAll(mergedGroup);