Просмотр исходного кода

update 不在服务区判定更新

A17404李放 3 лет назад
Родитель
Сommit
c764b9326b

+ 0 - 1
nb-admin/src/test/java/com/coffee/admin/AliyunTest.java

@@ -66,7 +66,6 @@ public class AliyunTest {
                     .last("limit 1"));
             if(one!=null){
                 deviceEntity.setInfusionId(one.getId());
-                deviceEntity.setType(one.getType());
             }
         }
         deviceService.updateBatchById(deviceList);

+ 1 - 0
nb-system/src/main/java/com/coffee/bus/entity/BusDeviceEntity.java

@@ -51,6 +51,7 @@ public class BusDeviceEntity extends TenantGenericEntity<String,String> {
     private String infusionId;
 
     @ApiModelProperty(value = "设备类型")
+    @Deprecated
     @Length(max = 255,message = "设备类型不得超过255个字符")
     private DeviceTypeEnum type;
 

+ 15 - 5
nb-system/src/main/java/com/coffee/bus/hospital/config/HospitalFinishMonitorConfigHandler.java

@@ -73,6 +73,18 @@ public class HospitalFinishMonitorConfigHandler extends AbstractHospitalConfigHa
         }
     }
 
+    /**
+     * 描述: 关机到撤泵(结束临床)
+     * @author lifang
+     * @date 2022/7/4 9:00
+     * @param patientId
+     * @param device
+     * @param patientCode
+     * @param tenantId
+     * @param infusionId
+     * @param uploadTime
+     * @return void
+     */
     public void judgeNoSignalAutoFinish(String patientId,String device, String patientCode, String tenantId, String infusionId, Date uploadTime){
         FunctionFinishMonitorConfig config = this.getConfig().as(FunctionFinishMonitorConfig.class);
         if(config==null||!Boolean.TRUE.equals(config.isEnable())|| Objects.isNull(config.getNoSignalInterval())){
@@ -93,8 +105,7 @@ public class HospitalFinishMonitorConfigHandler extends AbstractHospitalConfigHa
                 .patientId(patientId)
                 .timeout(config.getNoSignalInterval())
                 .uploadTime(uploadTime)
-                //todo
-                .unit(TimeUnit.MINUTES)
+                .unit(TimeUnit.DAYS)
                 .tenantId(tenantId)
                 .timestamp(new Date())
                 .build();
@@ -103,7 +114,7 @@ public class HospitalFinishMonitorConfigHandler extends AbstractHospitalConfigHa
     }
 
     /**
-     * 描述: 处理关机到结束时间
+     * 描述: 处理关机到撤泵(结束临床)时间
      * @author lifang
      * @date 2022/5/19 16:51
      * @param source
@@ -130,8 +141,7 @@ public class HospitalFinishMonitorConfigHandler extends AbstractHospitalConfigHa
                     .config(undoDeviceConfig)
                     .timeout(config.getShutDownInterval())
                     .uploadTime(source.getUploadTime())
-                    //todo
-                    .unit(TimeUnit.MINUTES)
+                    .unit(TimeUnit.DAYS)
                     .tenantId(source.getTenantId())
                     .timestamp(new Date())
                     .build();

+ 7 - 11
nb-system/src/main/java/com/coffee/bus/hospital/config/HospitalFunctionExtraConfigHandler.java

@@ -8,6 +8,7 @@ import com.coffee.bus.entity.BusInfusionHistoryEntity;
 import com.coffee.bus.enums.DeviceStatusEnum;
 import com.coffee.bus.enums.DeviceTypeEnum;
 import com.coffee.bus.hospital.enums.ConfigHandlerEnums;
+import com.coffee.bus.registry.device.DeviceOperator;
 import com.coffee.bus.registry.device.DeviceRegistry;
 import com.coffee.bus.service.LocalBusDeviceAlarmService;
 import com.coffee.bus.service.LocalBusInfusionHistoryService;
@@ -20,8 +21,6 @@ import lombok.Builder;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.redisson.api.RDelayedQueue;
-
-import java.math.BigDecimal;
 import java.util.Date;
 import java.util.concurrent.TimeUnit;
 
@@ -40,9 +39,6 @@ public class HospitalFunctionExtraConfigHandler  extends  AbstractHospitalConfig
     private HospitalFinishMonitorConfigHandler monitorConfigHandler;
     private HospitalAutoUndoConfigHandler autoUndoConfigHandler;
     private LocalBusDeviceAlarmService alarmService;
-    private LocalBusPatientService patientService;
-    //最后一次不在服务区警报延迟任务
-    private NoSignalEntity lastNoSignalWarn;
     //最后一次低输注警报延迟任务
     private LowInfusionEntity lastLowInfusionWarn;
 
@@ -56,7 +52,6 @@ public class HospitalFunctionExtraConfigHandler  extends  AbstractHospitalConfig
         this.monitorConfigHandler=monitorConfigHandler;
         this.autoUndoConfigHandler=autoUndoConfigHandler;
         this.alarmService=alarmService;
-        this.patientService=patientService;
     }
 
     @Override
@@ -101,11 +96,8 @@ public class HospitalFunctionExtraConfigHandler  extends  AbstractHospitalConfig
                 this.handleNoSignal((NoSignalEntity) e);
             }
         });
-        //清空延迟队列消息
-        if(lastNoSignalWarn!=null){
-            delayedQueue.remove(lastNoSignalWarn);
-        }
-        lastNoSignalWarn = NoSignalEntity.builder()
+
+       NoSignalEntity lastNoSignalWarn = NoSignalEntity.builder()
                 .deviceId(source.getDeviceId())
                 .patientCode(source.getPatientCode())
                 .tenantId(source.getTenantId())
@@ -129,6 +121,10 @@ public class HospitalFunctionExtraConfigHandler  extends  AbstractHospitalConfig
      */
     private void handleNoSignal(NoSignalEntity source){
         String deviceId = source.getDeviceId();
+        Date lastUploadTime =  deviceRegistry.getOperator(source.getDeviceId()).getUploadTime();
+        if(!lastUploadTime.equals(source.getUploadTime())){
+            return;
+        }
         BusInfusionHistoryEntity infusionHistory = infusionHistoryService.getById(source.getInfusionId());
         if (Boolean.TRUE.equals(infusionHistory.getFinished())) {
             //输注已结束

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

@@ -31,8 +31,9 @@ public class DeviceKeyConstant {
 
     public static final String IS_EXIST="is_exist";
 
-
     public static final String VALID_PCA="valid_pca";
 
     public static final String APPEND_DOSE="append_dose";
+
+    public static final String UPLOAD="upload";
 }

+ 20 - 2
nb-system/src/main/java/com/coffee/bus/registry/device/ClusterDeviceOperator.java

@@ -11,9 +11,7 @@ import com.coffee.bus.service.LocalBusDeviceService;
 import com.coffee.bus.service.LocalBusInfusionHistoryService;
 import com.coffee.common.cache.value.Value;
 import com.coffee.common.util.RedissonUtil;
-import org.redisson.api.LocalCachedMapOptions;
 import org.redisson.api.RMap;
-import org.redisson.api.RMapCache;
 import java.math.BigDecimal;
 import java.util.Date;
 
@@ -292,6 +290,26 @@ public class ClusterDeviceOperator implements DeviceOperator {
         put(DeviceKeyConstant.APPEND_DOSE,wrapperValue(totalAppendDose) );
     }
 
+    @Override
+    public Date getUploadTime() {
+        Value value = getValue(DeviceKeyConstant.UPLOAD);
+        if(value==null){
+            BusInfusionHistoryEntity lastInfusion = getLastInfusion();
+            if(lastInfusion==null){
+                value=Value.simple(null);
+            }else {
+                value=Value.simple(lastInfusion.getLastUploadTime());
+            }
+            setUploadTime(lastInfusion==null?null:lastInfusion.getLastUploadTime());
+        }
+        return value.asDate();
+    }
+
+    @Override
+    public void setUploadTime(Date uploadTime) {
+        put(DeviceKeyConstant.UPLOAD,wrapperValue(uploadTime) );
+    }
+
     @Override
     public BigDecimal getTotalAppendDose() {
         Value value = getValue(DeviceKeyConstant.APPEND_DOSE);

+ 13 - 1
nb-system/src/main/java/com/coffee/bus/registry/device/DeviceOperator.java

@@ -185,12 +185,24 @@ public interface DeviceOperator extends Operator {
      */
     void setTotalAppendDose(BigDecimal totalAppendDose);
 
+    /**
+     * 获取该设备最后一次设备上传时间
+     *
+     */
+    Date getUploadTime();
+
+
+    /**
+     * 设置该设备最后一次设备上传时间
+     * @param uploadTime
+     */
+    void setUploadTime(Date uploadTime);
+
     /**
      * 获取此次输注过程中的总追加量
      *
      */
     BigDecimal getTotalAppendDose();
 
-
     void clear();
 }

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

@@ -117,7 +117,6 @@ public class DeviceInfoListener {
                             .lambda()
                             .eq(BusDeviceEntity::getDeviceId,device.getDeviceId())
                             .set(BusDeviceEntity::getInfusionId,device.getInfusionId())
-                            .set(BusDeviceEntity::getType,device.getType())
                     );
                     infusionHistoryService.save(infusionHistory);
                 }else {
@@ -125,6 +124,7 @@ public class DeviceInfoListener {
                 }
 
                 cacheOperation.add(()->{
+                    deviceOperator.setUploadTime(device.getUploadTime());
                     wsPublishUtils.publishPatientMonitor(device.getPatientId(),device.getTenantId());
                     if (Boolean.TRUE.equals(device.isResetUndo())||Boolean.TRUE.equals(device.isInfusionModify())) {
                         if (Boolean.TRUE.equals(device.isInfusionModify())) {