| 
					
				 | 
			
			
				@@ -10,10 +10,8 @@ import com.care.bigscreen.service.BigScreenService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.care.common.cache.RedisKeyConstant; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.care.common.cache.RedisUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.care.common.constant.Constants; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.care.common.entity.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.care.common.enums.ChambOrderStatusEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.care.common.enums.MqttMsgStatusEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.care.common.enums.OrderStatusEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.care.common.enums.OrderTypeEnum; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -52,8 +50,6 @@ public class MqttMsgService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private CareMqttMsgService careMqttMsgService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private CareEventOrderChambService careEventOrderChambService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private MqttMsgRedisService mqttMsgRedisService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private RedisUtil redisUtil; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -112,12 +108,14 @@ public class MqttMsgService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             careMqttMsg.setDevId(careDevice.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             careMqttMsg.setType(type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             careMqttMsg.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map msg = (Map) map.get("msg"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Integer tid = (Integer) msg.get("tid"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            careMqttMsg.setTid(tid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if ("BreathHeartRate".equals(type)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 careMqttMsg.setStatus(MqttMsgStatusEnum.HANDLED.getValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 this.careMqttMsgService.save(careMqttMsg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Map msg = (Map) map.get("msg"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Integer breath = (Integer) msg.get("breath"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Integer heart = (Integer) msg.get("heart"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 careDevice.setBreathRate(breath); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -154,6 +152,7 @@ public class MqttMsgService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Map msgMap = (Map) map.get("msg"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Integer conf = (Integer) msgMap.get("conf"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (conf != 255) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     order.setStatus(OrderStatusEnum.TODO.getValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } else {//取消 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -165,12 +164,17 @@ public class MqttMsgService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } else if ("StayTooLong".equals(type)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     order.setOrderType(OrderTypeEnum.JIU_ZHI.getValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                order.setTid(careMqttMsg.getTid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //判断房屋是否有未完成的告警事件,不区分类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //判断房屋是否有未完成的告警事件,区分类型和人 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 QueryWrapper<CareEventOrder> queryWrapper2 = new QueryWrapper<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                queryWrapper2.lambda().eq(CareEventOrder::getDevId, careDevice.getId()).and( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                queryWrapper2.lambda().eq(CareEventOrder::getDevId, careDevice.getId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .eq(CareEventOrder::getOrderType,order.getOrderType()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .eq(CareEventOrder::getTid,order.getTid()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .and( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         wrapper -> wrapper.eq(CareEventOrder::getStatus, OrderStatusEnum.TODO.getValue()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                .or().eq(CareEventOrder::getStatus, OrderStatusEnum.DOING.getValue())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                .or().eq(CareEventOrder::getStatus, OrderStatusEnum.DOING.getValue()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 CareEventOrder orderDb = careEventOrderService.getOne(queryWrapper2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (orderDb != null) { //有未完成的告警事件,不再生成新的告警工单,只作为子事件插入到当前工单的历史记录中。 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -186,17 +190,12 @@ public class MqttMsgService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         careMqttMsg.setStatus(MqttMsgStatusEnum.HANDLED.getValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         this.careMqttMsgService.save(careMqttMsg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (orderDb.getOrderType().equals(order.getOrderType())) {//看取消的类型,和当前一致,则 更新当前的工单状态为取消,记录一条取消his,管家工单标记为取消 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //更新当前的工单状态为取消 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            order.setId(orderDb.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            this.careEventOrderService.autoCancelOrder(order); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //通知页面 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            this.bigScreenService.pushRtEventFlag(order.getOrgId(),order.getStationId(), order.getId().toString(), "orderUpdate"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            this.bigScreenService.pushRtEventFlag(order.getOrgId(),order.getStationId(), order.getId().toString(), "bigscreenRefresh"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } else { // 不一致,则只记录一条取消his 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //记录一条取消his 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            careEventOrderService.saveHisOrder(order, orderDb,true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //更新当前的工单状态为取消 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        order.setId(orderDb.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        this.careEventOrderService.autoCancelOrder(order); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //通知页面 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        this.bigScreenService.pushRtEventFlag(order.getOrgId(),order.getStationId(), order.getId().toString(), "orderUpdate"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        this.bigScreenService.pushRtEventFlag(order.getOrgId(),order.getStationId(), order.getId().toString(), "bigscreenRefresh"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |