18339543638 преди 3 години
родител
ревизия
30267c9496

+ 5 - 0
nb-im/src/main/java/com/nb/im/entity/ImRoomEntity.java

@@ -74,6 +74,11 @@ public class ImRoomEntity extends GenericEntity<String> {
     @ApiModelProperty("聊天室最后一条消息时间")
     private Date lastMsgTime;
 
+    @ApiModelProperty("监控是否结束")
+    private Boolean monitorFinished;
+
+    @ApiModelProperty("监控结束时间")
+    private Date monitorFinishedTime;
 
     /**
      * 描述: 由看护人发起的咨询或一件疼痛呼叫

+ 57 - 0
nb-im/src/main/java/com/nb/im/listener/MonitorStatusListener.java

@@ -0,0 +1,57 @@
+package com.nb.im.listener;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.nb.im.entity.ImRoomEntity;
+import com.nb.im.enums.ImStatusEnum;
+import com.nb.im.service.LocalImRoomService;
+import com.nb.web.api.event.ClinicFinishedEvent;
+import lombok.AllArgsConstructor;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.event.EventListener;
+
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.temporal.ChronoUnit;
+import java.util.Date;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName MonitorStatusListener.java
+ * @Description TODO
+ * @createTime 2022年08月24日 09:27:00
+ */
+@Configuration
+@AllArgsConstructor
+public class MonitorStatusListener {
+    private final LocalImRoomService roomService;
+    @EventListener
+    public void monitorFinished(ClinicFinishedEvent event){
+        String patientId = event.getPatientId();
+
+        roomService.update(new UpdateWrapper<ImRoomEntity>()
+                .lambda()
+                .eq(ImRoomEntity::getPatientId,patientId)
+                .in(ImRoomEntity::getStatus, ImStatusEnum.WAITING,ImStatusEnum.SUCCESS)
+                .set(ImRoomEntity::getMonitorFinishedTime,new Date())
+                .set(ImRoomEntity::getMonitorFinished,true)
+        );
+    }
+
+    @EventListener
+    public void monitorReset(ClinicFinishedEvent event){
+        String patientId = event.getPatientId();
+        //两小时前的时间
+        LocalDateTime dateTime = LocalDateTime.now().plus(-2, ChronoUnit.HOURS);
+        Date date = Date.from(dateTime.atZone(ZoneId.systemDefault()).toInstant());
+        //临床结束未满两小时的进行处理
+        roomService.update(new UpdateWrapper<ImRoomEntity>()
+                .lambda()
+                .eq(ImRoomEntity::getPatientId,patientId)
+                .in(ImRoomEntity::getStatus, ImStatusEnum.WAITING,ImStatusEnum.SUCCESS)
+                .eq(ImRoomEntity::getMonitorFinished,true)
+                .gt(ImRoomEntity::getMonitorFinishedTime,date)
+                .set(ImRoomEntity::getMonitorFinished,false)
+        );
+    }
+}

+ 1 - 1
nb-service/web-service/src/main/resources/mapper/bus/BusDeviceMapper.xml

@@ -73,7 +73,7 @@
                 and status = #{query.status}
             </if>
             <if test="query.iccId!=null">
-                and sim_iccid = #{query.iccId}
+                and sim_iccid like concat('%',#{query.iccId},'%')
             </if>
         </where>
         ) AS d