Selaa lähdekoodia

add 增加日志
fix 修复部分bug

A17404李放 3 vuotta sitten
vanhempi
commit
cc7ae17a95

+ 5 - 2
nb-system/src/main/java/com/coffee/bus/controller/BusClinicController.java

@@ -8,9 +8,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.coffee.bus.controller.vo.ClinicStatsVo;
 import com.coffee.bus.controller.vo.ClinicEditVo;
 import com.coffee.bus.entity.*;
-import com.coffee.bus.registry.device.DeviceRegistry;
 import com.coffee.bus.service.*;
 import com.coffee.bus.service.dto.*;
+import com.coffee.common.annotation.Log;
 import com.coffee.common.entity.GenericEntity;
 import com.coffee.common.exception.CustomException;
 import com.coffee.common.result.R;
@@ -73,7 +73,7 @@ public class BusClinicController {
         return R.success(clinicService.latestQueryPage(query));
     }
 
-
+    @Log(title = "查询临床信息的镇痛访视记录单")
     @PostMapping("/anal/record/{clinicId}/{after}")
     @SaCheckPermission("bus:clinic:query")
     @ApiOperation(value = "查询临床信息的镇痛访视记录单",notes = "权限【bus:clinic:query】")
@@ -151,6 +151,7 @@ public class BusClinicController {
     }
 
 
+    @Log(title = "编辑病人(当前)信息")
     @PostMapping("/edit")
     @SaCheckPermission("bus:clinic:edit")
     @ApiOperation(value = "编辑病人(当前)信息",notes = "编辑病人临床信息,权限【bus:clinic:edit】")
@@ -172,6 +173,7 @@ public class BusClinicController {
         }
     }
 
+    @Log(title = "新增无泵监控手术信息")
     @PostMapping("/save")
     @SaCheckPermission("bus:clinic:save")
     @ApiOperation(value = "新增手术信息",notes = "新增病人信息,权限【bus:clinic:save】")
@@ -180,6 +182,7 @@ public class BusClinicController {
         return R.success();
     }
 
+    @Log(title = "查询病人信息详情")
     @PostMapping("/view/{id}")
     @SaCheckPermission("bus:clinic:query")
     @ApiOperation(value = "根据ID查询",notes = "新增病人信息,权限【bus:clinic:query】")

+ 23 - 16
nb-system/src/main/java/com/coffee/bus/controller/BusDeviceController.java

@@ -14,6 +14,7 @@ import com.coffee.bus.exception.ErrorStatus;
 import com.coffee.bus.service.LocalBusDeviceService;
 import com.coffee.bus.service.dto.DeviceQuery;
 import com.coffee.bus.service.dto.DeviceResult;
+import com.coffee.common.annotation.Log;
 import com.coffee.common.crud.BaseService;
 import com.coffee.common.crud.controller.BaseCrudController;
 import com.coffee.common.exception.CustomException;
@@ -43,6 +44,8 @@ import java.util.List;
 @Api(tags = "设备管理",description = "统一权限前缀(device:info),device:info:add")
 public class BusDeviceController extends BaseCrudController<BusDeviceEntity, String> {
     private final LocalBusDeviceService deviceService;
+
+    @Log(title = "设备换绑")
     @PostMapping("/shift/bind")
     @ApiOperation(value = "设备换绑",notes = "权限【device:info:shift】")
     public R shift(@RequestBody DeviceBindVo vo){
@@ -103,6 +106,7 @@ public class BusDeviceController extends BaseCrudController<BusDeviceEntity, Str
      * 从阿里云同步系统所有的设备,只有超级管理员才有此权限。将阿里云所有的设备同步到系统。
      * @return
      */
+    @Log(title = "从阿里云同步设备")
     @ApiOperation(value = "从阿里云同步设备",notes = "从阿里云平台获取设备并更新,权限【device:info:poll】")
     @SaCheckPermission("device:info:poll")
     @PutMapping("/sync-device")
@@ -118,27 +122,30 @@ public class BusDeviceController extends BaseCrudController<BusDeviceEntity, Str
     }
 
 
-    /**
-     * @author 龙三郎
-     * 从阿里云同步系统所有的设备,只有超级管理员才有此权限。将阿里云所有的设备同步到系统。
-     * @return
-     */
-    @ApiOperation(value = "从阿里云同步设备1",notes = "从阿里云平台获取设备并更新,权限【device:info:poll】")
-    @SaCheckPermission("device:info:poll")
-    @PutMapping("/sync-device1")
-    public R syncDevice1() {
-        int i = deviceService.syncAllDevice();
-        if (i > 0){
-            return R.success(i,"同步成功");
-        }else {
-            return R.fail("同步失败");
-        }
-    }
+//    /**
+//     * @author 龙三郎
+//     * 从阿里云同步系统所有的设备,只有超级管理员才有此权限。将阿里云所有的设备同步到系统。
+//     * @return
+//     */
+//    @ApiOperation(value = "从阿里云同步设备1",notes = "从阿里云平台获取设备并更新,权限【device:info:poll】")
+//    @SaCheckPermission("device:info:poll")
+//    @PutMapping("/sync-device1")
+//    public R syncDevice1() {
+//        int i = deviceService.syncAllDevice();
+//        if (i > 0){
+//            return R.success(i,"同步成功");
+//        }else {
+//            return R.fail("同步失败");
+//        }
+//    }
+
     /**
      * @author 龙三郎
      * 从阿里云更新系统中存在的设备,如果设备在系统中不存在,则不更新。
      * @return
      */
+    @Log(title = "从阿里云更新本地设备")
+
     @SaCheckPermission("device:info:poll")
     @ApiOperation(value = "从阿里云更新本地设备",notes = "从阿里云平台获取设备并更新,参数为设备id列表,格式如['123456','456123'],参数可为空。权限【device:info:poll】")
     @PutMapping("/sync-device/batch")

+ 2 - 0
nb-system/src/main/java/com/coffee/bus/registry/constant/DeviceKeyConstant.java

@@ -13,6 +13,8 @@ public class DeviceKeyConstant {
 
     public static final String TENANT_ID="tenantId";
 
+    public static final String INFUSION_TENANT_ID="infusion_tenantId";
+
     public static final String START_TIME="startTime";
 
     public static final String PATIENT_CODE="patientCode";

+ 23 - 0
nb-system/src/main/java/com/coffee/bus/registry/device/ClusterDeviceOperator.java

@@ -98,6 +98,29 @@ public class ClusterDeviceOperator implements DeviceOperator {
         return value.asString();
     }
 
+    @Override
+    public void setInfusionTenantId(String tenantId) {
+        put(DeviceKeyConstant.INFUSION_TENANT_ID,wrapperValue(tenantId) );
+    }
+
+    @Override
+    public String getInfusionTenantId() {
+        Value value = getValue(DeviceKeyConstant.INFUSION_TENANT_ID);
+        if(value==null){
+            BusInfusionHistoryEntity lastInfusion = getLastInfusion();
+            if(lastInfusion==null){
+                //当输注不存在时,采用设备绑定的医院id
+                String tenantId = getTenantId();
+                value=Value.simple(tenantId);
+                setInfusionTenantId(tenantId);
+            }else {
+                value=Value.simple(lastInfusion.getTenantId());
+                setInfusionTenantId(lastInfusion.getTenantId());
+            }
+        }
+        return value.asString();
+    }
+
 
     @Override
     public void setStartTime(Date startTime) {

+ 0 - 30
nb-system/src/main/java/com/coffee/bus/registry/device/ClusterDeviceRegistry.java

@@ -21,9 +21,6 @@ import java.util.concurrent.ConcurrentHashMap;
 @Service
 @Slf4j
 public class ClusterDeviceRegistry implements DeviceRegistry {
-    private final LocalBusInfusionHistoryService infusionHistoryService;
-    private final LocalBusDeviceService deviceService;
-    private final LocalBusInfusionModifyService infusionModifyService;
 
     private static Map<String,ClusterDeviceOperator> operatorMap=new ConcurrentHashMap<>();
     @Override
@@ -35,33 +32,6 @@ public class ClusterDeviceRegistry implements DeviceRegistry {
         ClusterDeviceOperator deviceOperator = operatorMap.computeIfAbsent(key,k->new ClusterDeviceOperator( deviceId));
         if(!deviceOperator.getExist()){
             log.warn("设备号【{}】不存在,设备处理失败",deviceId);
-//            //从数据库中获取数据
-//            BusInfusionHistoryEntity lastInfusion=infusionHistoryService.lastInfusion(deviceId);
-//            BusDeviceEntity device = deviceService.getOne(new QueryWrapper<BusDeviceEntity>().lambda()
-//                    .eq(BusDeviceEntity::getDeviceId, deviceId));
-//            if(device==null){
-//                log.warn("设备【{}】不存在",deviceId);
-//                //设备不存在,即缓存操作不存在
-//                return null;
-//            }
-//            //设备注册信息
-//            deviceOperator.setEnable(device.getEnable());
-//            deviceOperator.setTenantId(device.getTenantId());
-//            //设备运行信息
-//            if(lastInfusion!=null){
-//                deviceOperator.setClassification(lastInfusion.getClassification());
-//                deviceOperator.setInfusionId(lastInfusion.getId());
-//                BusInfusionModifyEntity infusionModify = infusionHistoryService.lastModify(lastInfusion.getId());
-//                if(infusionModify!=null){
-//                    deviceOperator.setInfusionParam(infusionModify.signParam());
-//                }
-//                if (BusDeviceAlarmEntity.alarmOrWarn(lastInfusion)) {
-//                    deviceOperator.setAlarmOrWarn(BusDeviceAlarmEntity.parseRunning(lastInfusion).signParm());
-//                }
-//                deviceOperator.setStartTime(lastInfusion.getStartTime());
-//                deviceOperator.setContinueDose(lastInfusion.getContinueDose());
-//            }
-//            return deviceOperator;
         }
         return deviceOperator;
     }

+ 15 - 5
nb-system/src/main/java/com/coffee/bus/registry/device/DeviceOperator.java

@@ -18,9 +18,6 @@ import java.util.Date;
 public interface DeviceOperator extends Operator {
 
 
-
-
-
      /**
       * 描述:设备是否存在
       * @author lifang
@@ -58,17 +55,30 @@ public interface DeviceOperator extends Operator {
     boolean getEnable();
 
     /**
-     * 设置医院id
+     * 设置设备绑定的医院id
      * @param tenantId
      */
     void setTenantId(String tenantId);
 
     /**
-     * 获取医院id
+     * 获取设备绑定的医院id
      * @return
      */
     String getTenantId();
 
+
+
+    /**
+     * 设置设备当前输注绑定的医院id
+     * @param tenantId
+     */
+    void setInfusionTenantId(String tenantId);
+
+    /**
+     * 获取设备当前输注绑定的医院id
+     * @return
+     */
+    String getInfusionTenantId();
     /**
      * 设置设备开机时间
      * @param startTime

+ 7 - 7
nb-system/src/main/java/com/coffee/bus/websocket/listener/DeviceInfoListener.java

@@ -13,24 +13,24 @@ import com.coffee.bus.enums.DeviceTypeEnum;
 import com.coffee.bus.enums.FlowStatusEnum;
 import com.coffee.bus.enums.PatientAlarmEnum;
 import com.coffee.bus.hospital.HospitalManagerRegister;
-import com.coffee.bus.registry.device.DeviceRegistry;
 import com.coffee.bus.listener.event.bean.DeviceInfoEvent;
 import com.coffee.bus.registry.device.DeviceOperator;
+import com.coffee.bus.registry.device.DeviceRegistry;
 import com.coffee.bus.registry.patient.PatientOperator;
 import com.coffee.bus.registry.patient.PatientRegistry;
 import com.coffee.bus.service.*;
 import com.coffee.bus.utils.WsPublishUtils;
 import lombok.AllArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
+import org.slf4j.Logger;
 import org.springframework.context.event.EventListener;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.validation.constraints.DecimalMax;
-import javax.validation.constraints.DecimalMin;
 import java.math.BigDecimal;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
+import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.Executor;
 import java.util.function.Supplier;
@@ -43,10 +43,10 @@ import java.util.function.Supplier;
  * @createTime 2022年03月27日 11:21:00
  */
 @Component
-@Slf4j
 @AllArgsConstructor
 public class DeviceInfoListener {
 
+    private static final Logger log = org.slf4j.LoggerFactory.getLogger(DeviceInfoListener.class);
     private final DeviceRegistry deviceRegistry;
 
     private final LocalBusDeviceAlarmService alarmService;
@@ -193,7 +193,7 @@ public class DeviceInfoListener {
         device.setMonitorType(true);
         device.setUploadTime(device.getUploadTime()==null?new Date():device.getUploadTime());
 
-        device.setTenantId(deviceOperator.getTenantId());
+        device.setTenantId(deviceOperator.getInfusionTenantId());
         //将设备撤泵标志去除
         device.setIsUndo(false);
 

+ 6 - 0
nb-system/src/main/java/com/coffee/bus/websocket/listener/HisInfoListener.java

@@ -5,6 +5,7 @@ import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.coffee.bus.entity.BusClinicEntity;
 import com.coffee.bus.entity.BusHospitalEntity;
+import com.coffee.bus.entity.BusPatientEntity;
 import com.coffee.bus.hospital.his.strategy.HisStrategyHandler;
 import com.coffee.bus.hospital.his.strategy.HisStrategyManager;
 import com.coffee.bus.hospital.his.strategy.HisStrategyManagerRegister;
@@ -50,6 +51,11 @@ public class HisInfoListener {
             return;
         }
         try {
+            BusPatientEntity patient = patientService.findByFormatCode(patientCode, hospitalId);
+            if(patient==null){
+                log.error("从his拉去的病号【{}】信息不存在",patientCode);
+                return;
+            }
             BusHospitalEntity hospital = hospitalService.getById(hospitalId);
             HisStrategyManager<? extends HisStrategyHandler> hisStrategyManager = managerRegister.get(hospital.getStrategy());