浏览代码

fix 设备使用修复
del 删除冗余代码

A17404李放 3 年之前
父节点
当前提交
edbf97198c

+ 4 - 3
coffee-system/src/main/java/com/coffee/bus/controller/BusDeviceHistoryController.java

@@ -1,13 +1,12 @@
 package com.coffee.bus.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.mapper.Mapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.coffee.bus.entity.BusDeviceAlarmEntity;
 import com.coffee.bus.entity.BusDeviceHistoryEntity;
 import com.coffee.bus.service.LocalBusDeviceAlarmService;
 import com.coffee.bus.service.LocalBusDeviceHistoryService;
-import com.coffee.bus.service.dto.AlarmQuery;
 import com.coffee.bus.service.dto.DeviceAlarmQuery;
 import com.coffee.bus.service.dto.DeviceHistoryQuery;
 import com.coffee.bus.service.dto.DeviceUse;
@@ -58,7 +57,9 @@ public class BusDeviceHistoryController extends BaseCrudController<BusDeviceHist
     @SaCheckPermission("bus:device:use")
     @ApiOperation(value = "设备使用查询",notes = "权限:【bus:device:use】")
     public R<List<DeviceUse>> deviceUse(@RequestAttribute(value = "tenantId",required = false)@ApiParam(hidden = true) String tenantId, @RequestBody @Validated DeviceAlarmQuery query){
-        query.setTenantId(tenantId);
+        if(StrUtil.isNotEmpty(tenantId)){
+            query.setTenantId(tenantId);
+        }
         return R.success(deviceAlarmService.selectCountAlarm(query));
     }
 

+ 3 - 0
coffee-system/src/main/java/com/coffee/bus/entity/BusHospitalLogEntity.java

@@ -1,6 +1,8 @@
 package com.coffee.bus.entity;
 
 import cn.hutool.json.JSON;
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
@@ -41,6 +43,7 @@ public class BusHospitalLogEntity extends TenantGenericEntity<String,String> {
     private String input;
 
     @ApiModelProperty(value = "医院数据处理结果")
+    @TableField(typeHandler = FastjsonTypeHandler.class)
     private Object result;
 
     @ApiModelProperty("错误消息")

+ 4 - 2
coffee-system/src/main/java/com/coffee/bus/hospital/config/HospitalFinishMonitorConfigHandler.java

@@ -86,7 +86,8 @@ public class HospitalFinishMonitorConfigHandler extends AbstractHospitalConfigHa
                 .config(undoDeviceConfig)
                 .infusionId(infusionId)
                 .timeout(config.getNoSignalInterval())
-                .unit(TimeUnit.DAYS)
+                //todo
+                .unit(TimeUnit.MINUTES)
                 .tenantId(tenantId)
                 .timestamp(new Date())
                 .build();
@@ -120,7 +121,8 @@ public class HospitalFinishMonitorConfigHandler extends AbstractHospitalConfigHa
                     .patientCode(source.getPatientCode())
                     .config(undoDeviceConfig)
                     .timeout(config.getShutDownInterval())
-                    .unit(TimeUnit.DAYS)
+                    //todo
+                    .unit(TimeUnit.MINUTES)
                     .tenantId(source.getTenantId())
                     .timestamp(new Date())
                     .build();

+ 2 - 5
coffee-system/src/main/java/com/coffee/bus/hospital/his/HisScriptSession.java

@@ -27,11 +27,8 @@ import com.coffee.common.cache.manager.ConfigStorageManager;
 import com.coffee.common.cache.value.Value;
 import com.coffee.common.exception.CustomException;
 import com.coffee.common.result.R;
-import com.coffee.common.thread.DefaultHandlerThreadFactory;
-import com.coffee.common.thread.DefaultUncaughtExceptionHandler;
 import lombok.Getter;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.util.Assert;
 import org.springframework.web.context.request.async.DeferredResult;
 import org.tio.core.ChannelContext;
@@ -108,7 +105,7 @@ public class HisScriptSession {
      */
     public  DeferredResult<R<BusClinicEntity>>  syncGetPatientInfo(String patientCode, long timeout, TimeUnit unit){
         if (!isOnline()) {
-            log.warn("医院不在线,拉取【{}】信息失败,拉取方式【同步】",patientCode);
+            log.warn("医院【{}】不在线,拉取【{}】信息失败,拉取方式【同步】",hospitalId,patientCode);
             throw new CustomException("医院不在线,拉取信息失败");
         }
         String messageId = IdWorker.getIdStr();
@@ -151,7 +148,7 @@ public class HisScriptSession {
     public  DeferredResult<R<BusClinicEntity>>  asyncGetPatientInfo(String patientCode,long timeout, TimeUnit unit,boolean needResult){
         if(!isOnline()){
             //将请求缓存
-            log.warn("医院不在线,拉取【{}】信息失败,是否为用户拉取【{}】,拉取方式【异步】",patientCode,needResult);
+            log.warn("医院【{}】不在线,拉取【{}】信息失败,是否为用户拉取【{}】,拉取方式【异步】",hospitalId,patientCode,needResult);
             throw new CustomException("医院不在线,拉取信息失败");
         }
         String messageId = IdWorker.getIdStr();

+ 2 - 6
coffee-system/src/main/java/com/coffee/bus/service/LocalBusInfusionHistoryService.java

@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import cn.hutool.extra.spring.SpringUtil;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.coffee.aliyun.utils.Constants;
 import com.coffee.aliyun.utils.Items;
 import com.coffee.aliyun.utils.PumpParams;
@@ -17,8 +16,6 @@ import com.coffee.bus.listener.event.infusion.InfusionUpdateEvent;
 import com.coffee.bus.mapper.BusInfusionHistoryMapper;
 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.dto.ManualUndoConfig;
 import com.coffee.bus.service.dto.UndoDeviceConfig;
 import com.coffee.common.crud.BaseService;
@@ -29,7 +26,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.Assert;
 
-import javax.validation.constraints.NotNull;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -180,8 +176,8 @@ public class LocalBusInfusionHistoryService extends BaseService<BusInfusionHisto
                 .lambda()
                 .eq(BusInfusionHistoryEntity::getTenantId, tenantId)
                 .eq(BusInfusionHistoryEntity::getPatientCode, patientCode)
-                .gt(BusInfusionHistoryEntity::getStartTime, startTime)
-                .lt(BusInfusionHistoryEntity::getClinicStartTime, startTime));
+                .ge(BusInfusionHistoryEntity::getStartTime, startTime)
+                .le(BusInfusionHistoryEntity::getClinicStartTime, startTime));
         if(CollectionUtil.isNotEmpty(infusionHistories)){
             infusionHistories.sort(Comparator.comparing(BusInfusionHistoryEntity::getStartTime));
             infusionHistories.forEach(infusion-> {

+ 1 - 0
coffee-system/src/main/java/com/coffee/bus/service/LocalBusPatientService.java

@@ -114,6 +114,7 @@ public class LocalBusPatientService extends BaseService<BusPatientMapper, BusPat
      */
     public DeferredResult<R<BusClinicEntity>> getPatientInfoFromHis(String hospitalId, String patientCode, long timeout,boolean sync){
         HisScriptSession hisScriptSession = scriptSessionManager.get(hospitalId);
+        log.info("医院【{}】,开始拉取病号【{}】信息,拉取方式【{}】",hospitalId,patientCode,sync?"同步":"异步");
         return sync?hisScriptSession.syncGetPatientInfo(patientCode,timeout,TimeUnit.SECONDS):hisScriptSession.asyncGetPatientInfo(patientCode,timeout,TimeUnit.SECONDS,true);
     }
 

+ 0 - 5
coffee-system/src/main/java/com/coffee/bus/service/dto/DeviceUse.java

@@ -1,16 +1,11 @@
 package com.coffee.bus.service.dto;
 
-import com.coffee.bus.enums.DeviceAlarmEnum;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import jnr.ffi.annotations.In;
 import lombok.Data;
-import org.hibernate.validator.constraints.Length;
-import org.springframework.context.annotation.Bean;
 
 import java.io.Serializable;
-import java.util.List;
 import java.util.Map;
 
 /**

+ 1 - 0
coffee-system/src/main/java/com/coffee/bus/websocket/DefaultWebSocketMsgHandler.java

@@ -66,6 +66,7 @@ public class DefaultWebSocketMsgHandler implements IWsMsgHandler {
                     HisScriptSession hisScriptSession = scriptSessionManager.get(hospitalId);
                     //绑定
                     hisScriptSession.bindChannel(channelContext);
+                    log.info("医院脚本连接成功,医院编码【{}】",authorization);
                 }else {
                     unbind(channelContext);
                     Thread.sleep(50);

+ 2 - 4
coffee-system/src/main/java/com/coffee/bus/websocket/listener/DeviceInfoListener.java

@@ -123,10 +123,8 @@ public class DeviceInfoListener {
                     wsPublishUtils.publishMonitorTotalCount(device.getTenantId());
                 }
                 if(device.isNewInfusion()){
-                    CompletableFuture.runAsync(()->{
-                        hospitalManagerRegister.get(device.getTenantId()).getScriptSession()
-                                .asyncGetPatientInfo(device.getPatientCode(),10, TimeUnit.SECONDS,false);
-                    },executor)
+                    CompletableFuture.runAsync(()->patientService.getPatientInfoFromHis(device.getTenantId(),device.getPatientCode(),10,false)
+                            ,executor)
                             .exceptionally(t->{
                                 log.error("新的输注产生后,拉取病号【{}】信息失败,失败原因:",device.getPatientCode(),t);
                                 return null;

+ 4 - 3
coffee-system/src/main/resources/mapper/bus/BusDeviceAlarmMapper.xml

@@ -13,13 +13,14 @@
 
     <select id="selectWarnCount" parameterType="com.coffee.bus.service.dto.DeviceAlarmQuery" resultType="com.coffee.bus.service.dto.DeviceWarnCountResult">
         SELECT
-            tenant_id,
+            da.tenant_id,
             SUM(CASE warn_will_finished WHEN 1 THEN 1 ELSE 0 END) as 'warn_will_finished',
                 SUM(CASE warn_low_battery WHEN 1 THEN 1 ELSE 0 END) as 'warn_low_battery',
                 SUM(CASE warn_analgesic_poor WHEN 1 THEN 1 ELSE 0 END) as 'warn_analgesic_poor'
 
         FROM
-            bus_device_alarm
+        bus_device_alarm AS da
+        left JOIN bus_device AS d ON da.device_id = d.id
         WHERE
         1=1
         <if test="query.uploadTimeMin != null">
@@ -32,7 +33,7 @@
             AND d.type = #{query.type}
         </if>
         GROUP BY
-            tenant_id
+            da.tenant_id
     </select>