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