ソースを参照

先标记历史报警再判断工单信息

yuejiaying 4 年 前
コミット
019a1ba23f

+ 15 - 4
sms_water/src/main/java/com/huaxu/service/impl/AlarmDetailsServiceImpl.java

@@ -265,6 +265,19 @@ public class AlarmDetailsServiceImpl implements AlarmDetailsService {
 
         //处理完成后,剩下的标记为历史数据
         if(alarmDetailsDtoMap.values().size() > 0) {
+            //循环更新历史报警数据
+            Long currentTime =System.currentTimeMillis(); //系统时间
+            for(AlarmDetailsDto value : alarmDetailsDtoMap.values()){
+                value.setDateUpdate(new Date());
+                //从对象中拿到时间
+                Long startTime = value.getAlarmStartTime().getTime();
+                Long diff=(currentTime-startTime)/1000/60;
+                value.setAlarmValue(diff.doubleValue());
+                value.setAlarmEndTime(new Date());
+                value.setState(0);
+                alarmDetailMapper.update(value);//直接更新
+            }
+
             //恢复正常的设备id
             Set<Long> deviceIds = alarmDetailsDtoMap.values().stream()
                     .map(a -> a.getDeviceId().longValue())
@@ -274,8 +287,6 @@ public class AlarmDetailsServiceImpl implements AlarmDetailsService {
             //对报警信息分组
             Map<Integer,List<AlarmDetailsDto>> deviceIdAlarmDetailsMap = alarmDetailsDtoMap.values().stream().collect(Collectors.groupingBy(AlarmDetailsDto::getDeviceId));
             if (workOrders.size() > 0) {
-                //系统时间
-                Long currentTime =System.currentTimeMillis();
                 List<WorkOrderManageByAlarmDto> orderUpdate = new ArrayList<>();
                 List<Long> orderDelete = new ArrayList<>();
 
@@ -285,14 +296,14 @@ public class AlarmDetailsServiceImpl implements AlarmDetailsService {
                     List<AlarmDetailsDto> alarmDetailsDtoList = deviceIdAlarmDetailsMap.get(orderManageByAlarmDto.getDeviceId().intValue());
                     //标记为历史数据 并 修改工单描述
                     for (AlarmDetailsDto alarmDetailsDto : alarmDetailsDtoList) {
-                        alarmDetailsDto.setDateUpdate(new Date());
+                        /*alarmDetailsDto.setDateUpdate(new Date());
                         //从对象中拿到时间
                         Long startTime = alarmDetailsDto.getAlarmStartTime().getTime();
                         Long diff=(currentTime-startTime)/1000/60;
                         alarmDetailsDto.setAlarmValue(diff.doubleValue());
                         alarmDetailsDto.setAlarmEndTime(new Date());
                         alarmDetailsDto.setState(0);
-                        alarmDetailMapper.update(alarmDetailsDto);//直接更新
+                        alarmDetailMapper.update(alarmDetailsDto);//直接更新*/
                         taskDesc = taskDesc.replace(";" + alarmDetailsDto.getAlarmContent(), "")
                                 .replace(alarmDetailsDto.getAlarmContent(), "");
                     }