Browse Source

Merge branch 'dev' into nb-pc-rabbitmq

18339543638 3 years ago
parent
commit
fbab523beb

+ 13 - 0
nb-admin/src/test/java/com/nb/admin/BusClinicTest.java

@@ -6,6 +6,7 @@ import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.nb.core.result.R;
+import com.nb.web.api.enums.ClinicManageEnum;
 import com.nb.web.service.bus.controller.BusDeviceHistoryController;
 import com.nb.web.service.bus.controller.vo.ClinicStatsVo;
 import com.nb.web.api.entity.BusClinicEntity;
@@ -14,6 +15,7 @@ import com.nb.web.api.entity.BusInfusionHistoryEntity;
 import com.nb.web.service.bus.service.LocalBusClinicService;
 import com.nb.web.service.bus.service.LocalBusDocService;
 import com.nb.web.service.bus.service.LocalBusInfusionHistoryService;
+import com.nb.web.service.bus.service.LocalBusPatientService;
 import com.nb.web.service.bus.service.dto.ClinicStatsReturnResult;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.junit.Test;
@@ -53,6 +55,8 @@ public class BusClinicTest {
     @Autowired
     private LocalBusDocService docService;
 
+    @Autowired
+    private LocalBusPatientService patientService;
     @Autowired
     private BusDeviceHistoryController historyController;
     @Test
@@ -113,4 +117,13 @@ public class BusClinicTest {
         System.out.println(tokenValueListByLoginId);
     }
 
+    @Test
+    public void updateManage(){
+        patientService.setManageType("1579644321062793219", ClinicManageEnum.hospital);
+        patientService.setManageType("1579644321062793219", ClinicManageEnum.family);
+        while (true){
+
+        }
+    }
+
 }

+ 2 - 1
nb-im/src/main/java/com/nb/im/enums/ImStatusEnum.java

@@ -19,7 +19,8 @@ public enum  ImStatusEnum  implements IEnum<Integer> {
     WAITING(0,"等待医生确认"),
     SUCCESS(1,"成功建立聊天室"),
     DOCTOR_LIFT(2,"医生关闭聊天室"),
-    AUTO_LIST(3,"24小时自动关闭聊天室");
+    AUTO_LIST(3,"24小时自动关闭聊天室"),
+    ASSIST_LIFT(4,"看护人解除看护");
 
     private Integer value;
     private String text;

+ 12 - 0
nb-im/src/main/java/com/nb/im/listener/ImPatientInfoListener.java

@@ -1,6 +1,7 @@
 package com.nb.im.listener;
 
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.nb.app.assistant.api.event.AssistLiftEvent;
 import com.nb.im.entity.ImRoomEntity;
 import com.nb.im.enums.ImStatusEnum;
 import com.nb.im.service.LocalImRoomService;
@@ -35,4 +36,15 @@ public class ImPatientInfoListener {
                 .set(ImRoomEntity::getPatientSex,patientInfoEvent.getPatientSex())
         );
     }
+
+    @EventListener
+    @Async
+    public void assistLift(AssistLiftEvent event){
+        roomService.update(new UpdateWrapper<ImRoomEntity>()
+                .lambda()
+                .eq(ImRoomEntity::getAssistId,event.getAssistId())
+                .eq(ImRoomEntity::getPatientId,event.getPatientId())
+                .in(ImRoomEntity::getStatus,ImStatusEnum.SUCCESS,ImStatusEnum.WAITING)
+                .set(ImRoomEntity::getStatus,ImStatusEnum.ASSIST_LIFT));
+    }
 }

+ 1 - 0
nb-im/src/main/java/com/nb/im/service/LocalImRoomService.java

@@ -181,6 +181,7 @@ public class LocalImRoomService extends BaseService<ImRoomMapper, ImRoomEntity,S
         return result==null?0L:result;
     }
 
+    @Transactional(rollbackFor = Exception.class)
     public Boolean finished(String roomId) {
         boolean result = this.update(new UpdateWrapper<ImRoomEntity>()
                 .lambda()

+ 23 - 0
nb-service-api/app-assistant-api/src/main/java/com/nb/app/assistant/api/event/AssistLiftEvent.java

@@ -0,0 +1,23 @@
+package com.nb.app.assistant.api.event;
+
+import lombok.Getter;
+import org.springframework.context.ApplicationEvent;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName AssistLiftEvent.java
+ * @Description 解除看护绑定事件
+ * @createTime 2022年10月11日 15:54:00
+ */
+@Getter
+public class AssistLiftEvent extends ApplicationEvent {
+    private String assistId;
+    private String patientId;
+
+    public AssistLiftEvent(Object source, String assistId, String patientId) {
+        super(source);
+        this.assistId = assistId;
+        this.patientId = patientId;
+    }
+}

+ 2 - 2
nb-service/app-assistant/src/main/java/com/nb/app/assistant/listener/AssitPatientInfoListener.java → nb-service/app-assistant/src/main/java/com/nb/app/assistant/listener/AssistPatientInfoListener.java

@@ -19,12 +19,12 @@ import org.springframework.scheduling.annotation.Async;
  */
 @Configuration
 @AllArgsConstructor
-public class AssitPatientInfoListener {
+public class AssistPatientInfoListener {
     private final LocalAssistantUserBindService userBindService;
 
     @EventListener
     @Async
-    public void patientInfoAssistf(PatientInfoEvent patientInfoEvent){
+    public void patientInfoAssist(PatientInfoEvent patientInfoEvent){
         String patientId = patientInfoEvent.getPatientId();
         userBindService.update(new UpdateWrapper<AssistantUserBindEntity>()
                 .lambda().eq(AssistantUserBindEntity::getPatientId,patientId)

+ 36 - 0
nb-service/app-assistant/src/main/java/com/nb/app/assistant/listener/ClinicManageInfoListener.java

@@ -0,0 +1,36 @@
+package com.nb.app.assistant.listener;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.nb.app.assistant.api.entity.AssistantUserBindEntity;
+import com.nb.app.assistant.api.enums.BindEnum;
+import com.nb.app.assistant.service.LocalAssistantUserBindService;
+import com.nb.web.api.event.ClinicManageEvent;
+import com.nb.web.api.event.PatientInfoEvent;
+import lombok.AllArgsConstructor;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.event.EventListener;
+import org.springframework.scheduling.annotation.Async;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName PatientInfoListener.java
+ * @Description TODO
+ * @createTime 2022年08月20日 17:15:00
+ */
+@Configuration
+@AllArgsConstructor
+public class ClinicManageInfoListener {
+    private final LocalAssistantUserBindService userBindService;
+
+    @EventListener
+    @Async
+    public void clinicManageInfo(ClinicManageEvent event){
+        String patientId = event.getPatientId();
+        userBindService.update(new UpdateWrapper<AssistantUserBindEntity>()
+                .lambda().eq(AssistantUserBindEntity::getPatientId,patientId)
+                .eq(AssistantUserBindEntity::getStatus, BindEnum.SUCCESS)
+                .set(AssistantUserBindEntity::getManageType,event.getManage())
+        );
+    }
+}

+ 2 - 2
nb-service/app-assistant/src/main/java/com/nb/app/assistant/service/LocalAssistantUserBindService.java

@@ -4,7 +4,6 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.spring.SpringUtil;
-import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
@@ -19,6 +18,7 @@ import com.nb.app.assistant.api.feign.result.ContactQuery;
 import com.nb.app.assistant.api.feign.result.UpdateBindPatientParam;
 import com.nb.app.assistant.constant.UnEvalConstant;
 import com.nb.app.assistant.delay.UnEvalNotifyConfig;
+import com.nb.app.assistant.api.event.AssistLiftEvent;
 import com.nb.app.assistant.mapper.AssistantUserBindMapper;
 import com.nb.app.assistant.service.dto.AssistPatientResult;
 import com.nb.app.assistant.service.dto.EditAssistBindDto;
@@ -283,7 +283,7 @@ public class LocalAssistantUserBindService extends BaseService<AssistantUserBind
                         .eq(StrUtil.isNotEmpty(assistId),AssistantUserBindEntity::getAssistId, assistId)
                         .set(AssistantUserBindEntity::getStatus,StrUtil.isEmpty(doctorId)? BindEnum.ASSIST_MANUAL_LIFTED: BindEnum.DOCTOR_MANUAL_LIFTED));
         if (result) {
-            //todo 发送断开消息
+            SpringUtil.publishEvent(new AssistLiftEvent(this,userBind.getAssistId(),userBind.getPatientId()));
         }
         return result;
     }

+ 11 - 1
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/LocalBusPatientService.java

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.extra.spring.SpringUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -13,6 +14,7 @@ import com.nb.web.api.entity.BusClinicEntity;
 import com.nb.web.api.entity.BusDeviceEntity;
 import com.nb.web.api.entity.BusInfusionHistoryEntity;
 import com.nb.web.api.enums.ClinicManageEnum;
+import com.nb.web.api.event.ClinicManageEvent;
 import com.nb.web.api.feign.IPatientClient;
 import com.nb.web.api.feign.result.*;
 import com.nb.web.api.feign.query.PatientMonitorQuery;
@@ -509,16 +511,24 @@ public class LocalBusPatientService extends BaseService<BusPatientMapper, BusPat
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public boolean setManageType(String clinicId, ClinicManageEnum manageEnum) {
         BusClinicEntity clinic = clinicService.getById(clinicId);
         if(clinic==null){
             return true;
         }
+        if(ObjectUtil.equal(manageEnum,clinic.getManageType())){
+            return true;
+        }
         boolean result = clinicService.update(new UpdateWrapper<BusClinicEntity>()
                 .lambda()
                 .eq(BusClinicEntity::getId, clinicId)
                 .set(BusClinicEntity::getManageType, manageEnum));
-        CompletableFuture.runAsync(()-> wsPublishUtils.publishPatientMonitor(clinic.getPatientId(),clinic.getTenantId()));
+        if(result){
+            CompletableFuture.runAsync(()-> wsPublishUtils.publishPatientMonitor(clinic.getPatientId(),clinic.getTenantId()));
+            SpringUtil.publishEvent(new ClinicManageEvent(this,clinic.getTenantId(),clinic.getPatientId(),manageEnum));
+        }
+
         return result;
     }