Bläddra i källkod

fix 居家管理实时更新

18339543638 3 år sedan
förälder
incheckning
8877928b98

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

+ 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;
     }