| 
					
				 | 
			
			
				@@ -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()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 |