|
@@ -5,17 +5,24 @@ import com.alibaba.fastjson.JSONObject;
|
|
|
import com.bz.zoneiot.water.api.dto.AlarmDetailsAddDto;
|
|
|
import com.bz.zoneiot.water.api.dto.DeviceDataDto;
|
|
|
import com.bz.zoneiot.water.api.dto.DeviceStateDto;
|
|
|
+import com.bz.zoneiot.water.api.dto.WorkOrderManageByAlarmDto;
|
|
|
import com.bz.zoneiot.water.api.enums.AlarmStateEnum;
|
|
|
import com.bz.zoneiot.water.api.enums.DeviceStatusEnum;
|
|
|
import com.bz.zoneiot.water.core.dao.DeviceMapper;
|
|
|
+import com.bz.zoneiot.water.web.client.OperationManagerClient;
|
|
|
import com.bz.zoneiot.water.web.service.AlarmTypeDetailsService;
|
|
|
import com.bz.zoneiot.water.web.service.handle.ReceiveDeviceDataService;
|
|
|
import com.bz.zoneiot.water.web.service.NotifyService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* @author Andy
|
|
@@ -36,6 +43,9 @@ public class NotifyServiceImpl implements NotifyService {
|
|
|
@Resource
|
|
|
private DeviceMapper deviceMapper;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private OperationManagerClient operationManagerClient;
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public Integer insertAlarmInfo(AlarmDetailsAddDto dto) {
|
|
@@ -61,6 +71,18 @@ public class NotifyServiceImpl implements NotifyService {
|
|
|
if (!DeviceStatusEnum.offline(dto.getDeviceStatus())) {
|
|
|
Long deviceId = deviceMapper.findDeviceIdByIotDeviceId(dto.getDeviceId());
|
|
|
alarmTypeDetailsService.updateStateByDeviceId(deviceId, AlarmStateEnum.HISTORY_ALARM.getCode());
|
|
|
+ // 处理工单
|
|
|
+ List<WorkOrderManageByAlarmDto> workOrders = operationManagerClient.findWorkOrderByDeviceIds(Arrays.asList(deviceId));
|
|
|
+ if (CollectionUtils.isEmpty(workOrders)){
|
|
|
+ log.info("【接收通知】设备ID:{},无工单信息", deviceId);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ WorkOrderManageByAlarmDto orderManageByAlarmDto = workOrders.get(0);
|
|
|
+ if (orderManageByAlarmDto.getOrderStatus() == null || orderManageByAlarmDto.getOrderStatus() == 0) {
|
|
|
+ operationManagerClient.batchDeleteByAlarms(new ArrayList<>(Arrays.asList(deviceId)));
|
|
|
+ log.info("【接收通知】设备ID:{},工单未派单且无报警信息,删除工单", deviceId);
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
log.info("【接收通知】物联修改设备状态信息end:{}", dto.toString());
|
|
|
}
|