|
@@ -1,12 +1,17 @@
|
|
|
package com.usky.iot.service.config;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.usky.backend.domain.StatusVO;
|
|
|
import com.usky.common.core.bean.ApiResult;
|
|
|
import com.usky.demo.RemoteTsdbProxyService;
|
|
|
+import com.usky.iot.domain.BaseAlarm;
|
|
|
+import com.usky.iot.domain.DmpDeviceInfo;
|
|
|
import com.usky.iot.domain.DmpDeviceStatus;
|
|
|
import com.usky.iot.mapper.DmpDeviceStatusMapper;
|
|
|
+import com.usky.iot.service.BaseAlarmService;
|
|
|
import com.usky.iot.service.DmpDeviceStatusService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -17,8 +22,10 @@ import java.time.Instant;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.ZoneOffset;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
|
|
|
@Slf4j
|
|
|
@Configuration
|
|
@@ -29,6 +36,9 @@ public class DeviceOperate {
|
|
|
@Autowired
|
|
|
DmpDeviceStatusService dmpDeviceStatusService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ BaseAlarmService baseAlarmService;
|
|
|
+
|
|
|
@Async
|
|
|
public void updateDeviceStatus(){
|
|
|
log.info("定时同步设备状态数据 start");
|
|
@@ -59,4 +69,63 @@ public class DeviceOperate {
|
|
|
}
|
|
|
log.info("定时同步设备状态数据 end");
|
|
|
}
|
|
|
+
|
|
|
+ @Async
|
|
|
+ public void deviceAlarm(List<StatusVO> list,List<DmpDeviceInfo> devInfoList,List<BaseAlarm> baseUnAlarmList){
|
|
|
+ log.info("定时同步设备告警数据 start");
|
|
|
+ if(CollectionUtils.isNotEmpty(devInfoList)){
|
|
|
+ for(int i=0;i<list.size();i++){
|
|
|
+ String currentDate = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
|
+ if(Objects.nonNull(list.get(i).getTime()) && currentDate.equals(list.get(i).getTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")))){
|
|
|
+ //设备离线告警恢复在线自动默认处理
|
|
|
+ if(CollectionUtils.isNotEmpty(baseUnAlarmList)){
|
|
|
+ for(int j=0;j<baseUnAlarmList.size();j++){
|
|
|
+ if(list.get(i).getDeviceId().equals(baseUnAlarmList.get(j).getDeviceId()) && list.get(i).getProductCode().equals(baseUnAlarmList.get(j).getProductCode())){
|
|
|
+ LambdaUpdateWrapper<BaseAlarm> updateWrapper1 = Wrappers.lambdaUpdate();
|
|
|
+ updateWrapper1.set(BaseAlarm::getHandleStatus,1)
|
|
|
+ .set(BaseAlarm::getHandleBy,"YT_admin")
|
|
|
+ .set(BaseAlarm::getHandleTime,LocalDateTime.now())
|
|
|
+ .eq(BaseAlarm::getDeviceId,list.get(i).getDeviceId())
|
|
|
+ .eq(BaseAlarm::getHandleStatus,0)
|
|
|
+ .eq(BaseAlarm::getProductCode,list.get(i).getProductCode());
|
|
|
+ baseAlarmService.update(updateWrapper1);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }else{
|
|
|
+
|
|
|
+ for(int j=0;j<devInfoList.size();j++){
|
|
|
+ if(list.get(i).getDeviceId().equals(devInfoList.get(j).getDeviceId()) && list.get(i).getProductCode().equals(devInfoList.get(j).getProductCode())){
|
|
|
+ int count = 0;
|
|
|
+ for(int k=0;k<baseUnAlarmList.size();k++){
|
|
|
+ if(list.get(i).getDeviceId().equals(baseUnAlarmList.get(k).getDeviceId()) && list.get(i).getProductCode().equals(baseUnAlarmList.get(k).getProductCode())){
|
|
|
+ count++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(count == 0){
|
|
|
+ BaseAlarm baseAlarm = new BaseAlarm();
|
|
|
+ baseAlarm.setDeviceId(list.get(i).getDeviceId());
|
|
|
+ baseAlarm.setAlarmTime(LocalDateTime.parse(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH"))+":00:00",DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
|
|
+ baseAlarm.setAlarmType("001");
|
|
|
+ baseAlarm.setAlarmObject(devInfoList.get(j).getDeviceName());
|
|
|
+ baseAlarm.setAlarmData("");
|
|
|
+ baseAlarm.setAlarmAttribute("离线告警");
|
|
|
+ baseAlarm.setAlarmContent("设备离线告警");
|
|
|
+ baseAlarm.setAlarmGrade(1);
|
|
|
+
|
|
|
+ baseAlarm.setAlarmAddress(devInfoList.get(j).getInstallAddress());
|
|
|
+ baseAlarm.setProductCode(devInfoList.get(j).getProductCode());
|
|
|
+ baseAlarmService.add(baseAlarm);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.info("定时同步设备告警数据 end");
|
|
|
+ }
|
|
|
}
|