Przeglądaj źródła

add 延迟任务消息id
fix 脚本解析修复

A17404李放 3 lat temu
rodzic
commit
3917f54b47
16 zmienionych plików z 108 dodań i 43 usunięć
  1. 5 3
      coffee-common/src/main/java/com/coffee/common/cache/value/SimpleValue.java
  2. 22 0
      coffee-common/src/main/java/com/coffee/common/entity/AbstractMsgId.java
  3. 12 3
      coffee-common/src/main/java/com/coffee/common/util/RedissonUtil.java
  4. 9 4
      coffee-system/src/main/java/com/coffee/bus/controller/BusConstantController.java
  5. 19 7
      coffee-system/src/main/java/com/coffee/bus/controller/BusHospitalController.java
  6. 1 1
      coffee-system/src/main/java/com/coffee/bus/entity/BusHospitalConfigEntity.java
  7. 4 2
      coffee-system/src/main/java/com/coffee/bus/hospital/HospitalManager.java
  8. 5 3
      coffee-system/src/main/java/com/coffee/bus/hospital/HospitalManagerRegister.java
  9. 11 1
      coffee-system/src/main/java/com/coffee/bus/hospital/config/HospitalAutoUndoConfigHandler.java
  10. 2 2
      coffee-system/src/main/java/com/coffee/bus/hospital/config/HospitalFinishMonitorConfigHandler.java
  11. 3 4
      coffee-system/src/main/java/com/coffee/bus/hospital/config/HospitalFunctionAnalConfigHandler.java
  12. 6 4
      coffee-system/src/main/java/com/coffee/bus/hospital/config/HospitalFunctionExtraConfigHandler.java
  13. 1 1
      coffee-system/src/main/java/com/coffee/bus/hospital/config/bean/FunctionOtherConfig.java
  14. 1 1
      coffee-system/src/main/java/com/coffee/bus/hospital/script/ExecuteResult.java
  15. 6 6
      coffee-system/src/main/java/com/coffee/bus/hospital/script/PythonParse.java
  16. 1 1
      coffee-system/src/main/java/com/coffee/bus/service/LocalBusHospitalConfigService.java

+ 5 - 3
coffee-common/src/main/java/com/coffee/common/cache/value/SimpleValue.java

@@ -3,7 +3,9 @@ package com.coffee.common.cache.value;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.EnumUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.annotation.IEnum;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.yaml.snakeyaml.util.EnumUtils;
@@ -49,7 +51,7 @@ public class SimpleValue implements Value {
         }
         if (targetClass == Date.class) {
             if (source instanceof String) {
-               return (T) DateUtil.parse(String.valueOf(source));
+                return (T) DateUtil.parse(String.valueOf(source));
             }
             if (source instanceof Number) {
                 return (T) new Date(((Number) source).longValue());
@@ -114,7 +116,7 @@ public class SimpleValue implements Value {
                 T[] enumConstants = targetClass.getEnumConstants();
                 for (T enumConstant : enumConstants) {
                     if (String.valueOf(source).equals(( (Enum)enumConstant).ordinal())
-                    ||String.valueOf(source).equals(( (Enum)enumConstant).name())) {
+                            ||String.valueOf(source).equals(( (Enum)enumConstant).name())) {
                         return enumConstant;
                     }
                 }
@@ -137,7 +139,7 @@ public class SimpleValue implements Value {
             List<?> val = convert(source, List.class, new Class[]{componentType});
             return (T) val.toArray((Object[]) Array.newInstance(componentType, val.size()));
         }
-            return null;
+        return JSONUtil.toBean(JSONUtil.parseObj(source),targetClass);
     }
 
     private Collection<?> newCollection(Class<?> targetClass) {

+ 22 - 0
coffee-common/src/main/java/com/coffee/common/entity/AbstractMsgId.java

@@ -0,0 +1,22 @@
+package com.coffee.common.entity;
+
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName AbstractMsgId.java
+ * @Description TODO
+ * @createTime 2022年05月23日 23:10:00
+ */
+@Data
+public abstract class AbstractMsgId implements Serializable {
+    private String id;
+
+    public AbstractMsgId() {
+        this.id= IdWorker.getIdStr();
+    }
+}

+ 12 - 3
coffee-common/src/main/java/com/coffee/common/util/RedissonUtil.java

@@ -1,9 +1,12 @@
 package com.coffee.common.util;
 
 
+import cn.hutool.json.JSONUtil;
+import com.coffee.common.entity.AbstractMsgId;
 import io.netty.channel.DefaultEventLoop;
 import io.netty.channel.EventLoopGroup;
 import lombok.Getter;
+import lombok.extern.slf4j.Slf4j;
 import org.redisson.api.*;
 import org.redisson.client.codec.Codec;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,15 +24,16 @@ import java.util.function.Consumer;
  * @createTime 2022年05月17日 16:16:00
  */
 @Component
+@Slf4j
 public class RedissonUtil {
 
     @Autowired
     @Getter
     private RedissonClient redissonClient;
 
-    private static Map<String,RDelayedQueue<Object>> delayedQueueMap=new ConcurrentHashMap<>();
+    private static Map<String,RDelayedQueue<AbstractMsgId>> delayedQueueMap=new ConcurrentHashMap<>();
 
-    private static Map<String,RBlockingDeque<Object>> blockingDequeMap=new ConcurrentHashMap<>();
+    private static Map<String,RBlockingDeque<AbstractMsgId>> blockingDequeMap=new ConcurrentHashMap<>();
 
     private static Map<String,RLock> lockMap=new ConcurrentHashMap<>();
     private EventLoopGroup eventLoopGroup=new DefaultEventLoop();
@@ -51,7 +55,7 @@ public class RedissonUtil {
         synchronized (name){
             if(!blockingDequeMap.containsKey(name)){
                 String lockName="lock:"+name;
-                RBlockingDeque<Object> value = redissonClient.getBlockingDeque(name);
+                RBlockingDeque<AbstractMsgId> value = redissonClient.getBlockingDeque(name);
                 delayedQueueMap.putIfAbsent(name,redissonClient.getDelayedQueue(value));
                 lockMap.putIfAbsent(lockName,redissonClient.getLock(lockName));
                 value.subscribeOnElements(i->{
@@ -60,10 +64,15 @@ public class RedissonUtil {
                         RLock lock = lockMap.get(lockName);
                         try {
                             if (lock.tryLock(-1,20,TimeUnit.SECONDS)) {
+                                log.info("任务id:{},延迟任务:{}",i.getId(),JSONUtil.toJsonStr(i));
                                 try {
                                     consumer.accept(i);
                                     value.popAsync();
+                                    log.info("任务id:{},延迟任务:{},成功处理完成",i.getId(), JSONUtil.toJsonStr(i));
+                                }catch (Exception e){
+                                    log.error("任务id:{},延迟任务:{},报错原因:", i.getId(),JSONUtil.toJsonStr(i),e);
                                 }finally {
+
                                     lock.unlockAsync();
                                 }
                             }

+ 9 - 4
coffee-system/src/main/java/com/coffee/bus/controller/BusConstantController.java

@@ -1,5 +1,6 @@
 package com.coffee.bus.controller;
 
+import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
@@ -44,11 +45,12 @@ public class BusConstantController {
     }
 
     @PostMapping("/{type}/page")
+    @SaCheckPermission("bus:constant:query")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "type",value = "常量类型",required = true,allowableValues = "mix,doctor,alarm",allowMultiple = true,dataTypeClass = ConstantEnum.class),
             @ApiImplicitParam(name = "query",value = "查询参数",required = true)
     })
-    @ApiOperation(value = "使用POST方式分页动态查询")
+    @ApiOperation(value = "使用POST方式分页动态查询",notes = "权限【bus:constant:query】")
     public R<IPage<?>> queryPager(@PathVariable("type") ConstantEnum type,@RequestBody QueryParamEntity<?> query) {
         AbstractConstantService constantService = constantHashMap.get(type);
         if(constantService==null){
@@ -58,11 +60,12 @@ public class BusConstantController {
     }
 
     @PostMapping("/{type}/remove")
+    @SaCheckPermission("bus:constant:delete")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "id",value = "主键id",required = true),
             @ApiImplicitParam(name = "type",value = "常量类型",required = true,allowableValues = "mix,doctor,alarm",allowMultiple = true,dataTypeClass = ConstantEnum.class)
     })
-    @ApiOperation(value = "根据ID删除")
+    @ApiOperation(value = "根据ID删除",notes = "权限【bus:constant:delete】")
     public R delete(@PathVariable("type") ConstantEnum type,@RequestParam("id") Serializable id) {
         if(StrUtil.isNullOrUndefined(String.valueOf(id))){
             return R.success();
@@ -77,7 +80,8 @@ public class BusConstantController {
     }
 
     @PostMapping("/save/{type}")
-    @ApiOperation(value = "新增数据")
+    @SaCheckPermission("bus:constant:add")
+    @ApiOperation(value = "新增数据",notes = "权限【bus:constant:add】")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "type",value = "常量类型",required = true,allowableValues = "doctor,alarm,mix",allowMultiple = true,dataTypeClass = ConstantEnum.class)
     })
@@ -90,7 +94,8 @@ public class BusConstantController {
     }
 
     @PostMapping("/update/{type}")
-    @ApiOperation(value = "更新数据")
+    @SaCheckPermission("bus:constant:edit")
+    @ApiOperation(value = "更新数据",notes = "权限【bus:constant:edit】")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "type",value = "常量类型",required = true,allowableValues = "doctor,alarm,mix",allowMultiple = true,dataTypeClass = ConstantEnum.class)
     })

+ 19 - 7
coffee-system/src/main/java/com/coffee/bus/controller/BusHospitalController.java

@@ -5,6 +5,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.dev33.satoken.annotation.SaMode;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.mapper.Mapper;
 import com.coffee.bus.bean.Script;
@@ -22,6 +23,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
+import org.simpleframework.xml.Attribute;
 import org.springframework.web.bind.annotation.*;
 
 /**
@@ -55,7 +57,8 @@ public class BusHospitalController extends BaseCrudController<BusHospitalEntity,
     }
 
     @PostMapping("/{id}/script")
-    @ApiOperation(value = "保存医院信息解析脚本")
+    @SaCheckPermission("bus:hospital:script:save")
+    @ApiOperation(value = "保存医院信息解析脚本",notes = "保存医院信息解析脚本,权限【bus:hospital:script:save】")
     public R script(@PathVariable("id") String id,@RequestBody Script script){
         BusHospitalEntity busHospitalEntity = new BusHospitalEntity();
         busHospitalEntity.setId(id);
@@ -68,15 +71,15 @@ public class BusHospitalController extends BaseCrudController<BusHospitalEntity,
     }
 
     @PostMapping("/debug")
-    @SaCheckPermission("bus:hospital:script")
-    @ApiOperation(value = "执行解析脚本",notes = "医院必选,根据入参执行解析脚本,权限【bus:hospital:script】")
+    @SaCheckPermission("bus:hospital:script:query")
+    @ApiOperation(value = "执行解析脚本",notes = "医院必选,根据入参执行解析脚本,权限【bus:hospital:script:query】")
     public R debug(@RequestBody ExecScript execScript){
         return R.success( scriptManager.debug(execScript.getContent(),execScript.getInput()));
     }
 
     @PostMapping("/draft/script")
-    @SaCheckPermission("bus:hospital:script")
-    @ApiOperation(value = "保存脚本草稿脚本",notes = "医院必选,保存脚本草稿脚本,权限【bus:hospital:script】")
+    @SaCheckPermission("bus:hospital:script:edit")
+    @ApiOperation(value = "保存脚本草稿脚本",notes = "医院必选,保存脚本草稿脚本,权限【bus:hospital:script:edit】")
     public R draftScript(@RequestAttribute("tenantId")@ApiParam(hidden = true) String tenantId, @RequestBody Script script){
         scriptManager.check(script.getContent(),script.getType());
         hospitalService.update(new UpdateWrapper<BusHospitalEntity>().lambda().eq(BusHospitalEntity::getId,tenantId)
@@ -85,8 +88,8 @@ public class BusHospitalController extends BaseCrudController<BusHospitalEntity,
     }
 
     @PostMapping("/publish/script")
-    @SaCheckPermission("bus:hospital:script")
-    @ApiOperation(value = "发布脚本",notes = "医院必选,发布脚本,发布后即用该脚本解析his数据,权限【bus:hospital:script】")
+    @SaCheckPermission("bus:hospital:script:pub")
+    @ApiOperation(value = "发布脚本",notes = "医院必选,发布脚本,发布后即用该脚本解析his数据,权限【bus:hospital:script:pub】")
     public R publishScript(@RequestAttribute("tenantId")@ApiParam(hidden = true) String tenantId){
         BusHospitalEntity hospital = hospitalService.getById(tenantId);
         if (ObjectUtil.isNull(hospital.getScript())||StrUtil.isEmpty(hospital.getScript().getContent())) {
@@ -120,4 +123,13 @@ public class BusHospitalController extends BaseCrudController<BusHospitalEntity,
     public R<Boolean> validate(@RequestBody String name){
         return R.success(this.hospitalService.validateName(name));
     }
+
+
+    @PostMapping("/look/script")
+    @SaCheckPermission("bus:hospital:script:query")
+    @ApiOperation(value = "查看医院脚本信息",notes = "His对接策略编辑,权限【bus:hospital:script:query】")
+    public R<BusHospitalEntity> lookScript(@RequestAttribute("tenantId") String id){
+        return R.success(this.hospitalService.getOne(new QueryWrapper<BusHospitalEntity>().lambda().select(BusHospitalEntity::getId,BusHospitalEntity::getScript,BusHospitalEntity::getStrategy,BusHospitalEntity::getDraftScript)
+                .eq(BusHospitalEntity::getId,id)));
+    }
 }

+ 1 - 1
coffee-system/src/main/java/com/coffee/bus/entity/BusHospitalConfigEntity.java

@@ -23,7 +23,7 @@ import java.util.Map;
 public class BusHospitalConfigEntity extends TenantGenericEntity<String,String>  {
 
 
-    @ApiModelProperty(value = "配置类型",example = "eval:评价配置,extra:其他设置,undo:撤泵配置",allowableValues = "eval:评价配置,extra:其他设置,undo:撤泵配置")
+    @ApiModelProperty(value = "配置类型",example = "eval:评价配置,other:其他设置,undo:撤泵配置",allowableValues = "eval:评价配置,other:其他设置,undo:撤泵配置")
     private ConfigEnum type;
 
     @TableField(typeHandler = FastjsonTypeHandler.class,javaType = true)

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

@@ -71,7 +71,8 @@ public class HospitalManager {
                            WsPublishUtils wsPublishUtils,
                            ScriptManager scriptManager,
                            ConfigStorageManager configStorageManager,
-                           RedissonUtil redissonUtil) {
+                           RedissonUtil redissonUtil,
+                           LocalBusDeviceAlarmService alarmService) {
         this.hospitalId = hospitalId;
         this.hospitalService = hospitalService;
         this.hospitalConfigService = hospitalConfigService;
@@ -79,6 +80,7 @@ public class HospitalManager {
         this.scriptManager = scriptManager;
         this.hospitalId = hospitalId;
         this.storage=configStorageManager.getStorage(hospitalId);
+        this.alarmService=alarmService;
         this.autoUndoConfigHandler=new HospitalAutoUndoConfigHandler(storage,hospitalId,redissonUtil,deviceRunningService,infusionHistoryService,deviceRegistry,wsPublishUtils,patientRegistry);
         this.finishMonitorConfigHandler=new HospitalFinishMonitorConfigHandler(storage,hospitalId,redissonUtil,deviceRunningService,infusionHistoryService,deviceRegistry,wsPublishUtils,patientRegistry);
         this.analConfigHandler=new HospitalFunctionAnalConfigHandler(storage,hospitalId,redissonUtil,deviceRunningService,infusionHistoryService,deviceRegistry,wsPublishUtils,patientRegistry,alarmService);
@@ -137,7 +139,7 @@ public class HospitalManager {
                     FunctionAnalConfig anal = otherConfig.getAnal();
                     analConfigHandler.setConfig(anal);
                     //其他
-                    FunctionExtraConfig extraConfig = otherConfig.getExtra();
+                    FunctionExtraConfig extraConfig = otherConfig.getOther();
                     extraConfigHandler.setConfig(extraConfig);
                     break;
                 default:break;

+ 5 - 3
coffee-system/src/main/java/com/coffee/bus/hospital/HospitalManagerRegister.java

@@ -34,8 +34,9 @@ public class HospitalManagerRegister {
     private ScriptManager scriptManager;
     private ConfigStorageManager configStorageManager;
     private RedissonUtil redissonUtil;
+    private LocalBusDeviceAlarmService alarmService;
 
-    public HospitalManagerRegister( LocalBusHospitalService hospitalService, LocalBusHospitalConfigService hospitalConfigService, LocalBusClinicService clinicService, LocalBusDeviceRunningService deviceRunningService, LocalBusInfusionHistoryService infusionHistoryService, PatientRegistry patientRegistry, DeviceRegistry deviceRegistry, WsPublishUtils wsPublishUtils, ScriptManager scriptManager, ConfigStorageManager configStorageManager, RedissonUtil redissonUtil) {
+    public HospitalManagerRegister( LocalBusHospitalService hospitalService, LocalBusHospitalConfigService hospitalConfigService, LocalBusClinicService clinicService, LocalBusDeviceRunningService deviceRunningService, LocalBusInfusionHistoryService infusionHistoryService, PatientRegistry patientRegistry, DeviceRegistry deviceRegistry, WsPublishUtils wsPublishUtils, ScriptManager scriptManager, ConfigStorageManager configStorageManager,LocalBusDeviceAlarmService alarmService, RedissonUtil redissonUtil) {
         this.hospitalService = hospitalService;
         this.hospitalConfigService = hospitalConfigService;
         this.clinicService = clinicService;
@@ -47,17 +48,18 @@ public class HospitalManagerRegister {
         this.scriptManager = scriptManager;
         this.configStorageManager = configStorageManager;
         this.redissonUtil = redissonUtil;
+        this.alarmService=alarmService;
     }
 
     public void register(String hospitalId){
         managerMap.computeIfAbsent(hospitalId,k->
-                new HospitalManager(k,hospitalService,hospitalConfigService,clinicService,deviceRunningService,infusionHistoryService,patientRegistry,deviceRegistry,wsPublishUtils,scriptManager,configStorageManager,redissonUtil)
+                new HospitalManager(k,hospitalService,hospitalConfigService,clinicService,deviceRunningService,infusionHistoryService,patientRegistry,deviceRegistry,wsPublishUtils,scriptManager,configStorageManager,redissonUtil,alarmService)
         );
     };
 
     public HospitalManager get(String hospitalId){
         return  managerMap.computeIfAbsent(hospitalId,k->
-                new HospitalManager(k,hospitalService,hospitalConfigService,clinicService,deviceRunningService,infusionHistoryService,patientRegistry,deviceRegistry,wsPublishUtils,scriptManager,configStorageManager,redissonUtil)
+                new HospitalManager(k,hospitalService,hospitalConfigService,clinicService,deviceRunningService,infusionHistoryService,patientRegistry,deviceRegistry,wsPublishUtils,scriptManager,configStorageManager,redissonUtil,alarmService)
         );
     }
 

+ 11 - 1
coffee-system/src/main/java/com/coffee/bus/hospital/config/HospitalAutoUndoConfigHandler.java

@@ -14,6 +14,7 @@ import com.coffee.bus.service.dto.ManualUndoConfig;
 import com.coffee.bus.service.dto.UndoDeviceConfig;
 import com.coffee.bus.utils.WsPublishUtils;
 import com.coffee.common.cache.ConfigStorage;
+import com.coffee.common.entity.AbstractMsgId;
 import com.coffee.common.util.RedissonUtil;
 import lombok.Builder;
 import lombok.Data;
@@ -57,6 +58,15 @@ public class HospitalAutoUndoConfigHandler extends  AbstractHospitalConfigHandle
         judgeShutdown(source,config);
     }
 
+    /**
+     * 描述: 不在服务区处理
+     * @author lifang
+     * @date 2022/5/23 23:24
+     * @param device
+     * @param patientCode
+     * @param tenantId
+     * @return void
+     */
     public void judgeNoSignal(String device,String patientCode,String tenantId){
         FunctionFinishMonitorConfig config = this.getConfig().as(FunctionFinishMonitorConfig.class);
         if(config==null||!Boolean.TRUE.equals(config.isEnable())|| Objects.isNull(config.getNoSignalInterval())){
@@ -142,7 +152,7 @@ public class HospitalAutoUndoConfigHandler extends  AbstractHospitalConfigHandle
 
     @Data
     @Builder
-    static class UndoEntity{
+    static class UndoEntity extends AbstractMsgId {
         private String deviceId;
         private String patientCode;
         private UndoDeviceConfig config;

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

@@ -16,12 +16,12 @@ import com.coffee.bus.service.dto.ManualUndoConfig;
 import com.coffee.bus.service.dto.UndoDeviceConfig;
 import com.coffee.bus.utils.WsPublishUtils;
 import com.coffee.common.cache.ConfigStorage;
+import com.coffee.common.entity.AbstractMsgId;
 import com.coffee.common.util.RedissonUtil;
 import lombok.Builder;
 import lombok.Data;
 import org.redisson.api.RDelayedQueue;
 
-import java.io.Serializable;
 import java.util.Date;
 import java.util.Objects;
 import java.util.concurrent.TimeUnit;
@@ -157,7 +157,7 @@ public class HospitalFinishMonitorConfigHandler extends AbstractHospitalConfigHa
 
     @Data
     @Builder
-    static class FinishMonitorEntity implements Serializable {
+    static class FinishMonitorEntity extends AbstractMsgId {
         private String deviceId;
         private String patientCode;
         private UndoDeviceConfig config;

+ 3 - 4
coffee-system/src/main/java/com/coffee/bus/hospital/config/HospitalFunctionAnalConfigHandler.java

@@ -15,14 +15,13 @@ import com.coffee.bus.service.LocalBusDeviceRunningService;
 import com.coffee.bus.service.LocalBusInfusionHistoryService;
 import com.coffee.bus.utils.WsPublishUtils;
 import com.coffee.common.cache.ConfigStorage;
+import com.coffee.common.entity.AbstractMsgId;
 import com.coffee.common.util.RedissonUtil;
 import lombok.Builder;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.redisson.api.RDelayedQueue;
-import org.redisson.api.RedissonClient;
 
-import java.io.Serializable;
 import java.util.Date;
 import java.util.Optional;
 import java.util.concurrent.TimeUnit;
@@ -203,7 +202,7 @@ public class HospitalFunctionAnalConfigHandler extends AbstractHospitalConfigHan
     }
     @Data
     @Builder
-    static class AnalEntity implements Serializable {
+    static class AnalEntity extends AbstractMsgId {
         private String deviceId;
         private Integer pcaValidCount;
         private Integer pcaInvalidCount;
@@ -219,7 +218,7 @@ public class HospitalFunctionAnalConfigHandler extends AbstractHospitalConfigHan
 
     @Data
     @Builder
-    static class NoneAnalEntity implements Serializable {
+    static class NoneAnalEntity extends AbstractMsgId   {
         private String deviceId;
         private Integer timeout;
         private TimeUnit unit;

+ 6 - 4
coffee-system/src/main/java/com/coffee/bus/hospital/config/HospitalFunctionExtraConfigHandler.java

@@ -3,7 +3,6 @@ package com.coffee.bus.hospital.config;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.coffee.bus.entity.BusDeviceAlarmEntity;
-import com.coffee.bus.enums.ConfigEnum;
 import com.coffee.bus.hospital.config.bean.FunctionExtraConfig;
 import com.coffee.bus.entity.BusDeviceRunningEntity;
 import com.coffee.bus.entity.BusInfusionHistoryEntity;
@@ -17,13 +16,13 @@ import com.coffee.bus.service.LocalBusDeviceRunningService;
 import com.coffee.bus.service.LocalBusInfusionHistoryService;
 import com.coffee.bus.utils.WsPublishUtils;
 import com.coffee.common.cache.ConfigStorage;
+import com.coffee.common.entity.AbstractMsgId;
 import com.coffee.common.util.RedissonUtil;
 import lombok.Builder;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.redisson.api.RDelayedQueue;
 
-import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.concurrent.TimeUnit;
@@ -85,6 +84,9 @@ public class HospitalFunctionExtraConfigHandler  extends  AbstractHospitalConfig
      * @return void
      */
     private void judgeNoSignal(BusDeviceRunningEntity source,int interval){
+        if(DeviceStatusEnum.Shutdown.equals(source.getRunState())){
+            return;
+        }
         RDelayedQueue delayedQueue = redissonUtil.getDelayedQueue(getId() +"-signal"+ "-" + source.getTenantId() + "-" + source.getDeviceId(), e -> {
             if(e instanceof  NoSignalEntity){
                 this.handleNoSignal((NoSignalEntity) e);
@@ -217,7 +219,7 @@ public class HospitalFunctionExtraConfigHandler  extends  AbstractHospitalConfig
 
     @Data
     @Builder
-    static class NoSignalEntity implements Serializable {
+    static class NoSignalEntity extends AbstractMsgId {
         private String deviceId;
         private String patientCode;
         private Integer timeout;
@@ -230,7 +232,7 @@ public class HospitalFunctionExtraConfigHandler  extends  AbstractHospitalConfig
 
     @Data
     @Builder
-    static class LowInfusionEntity implements Serializable {
+    static class LowInfusionEntity extends AbstractMsgId   {
         private String deviceId;
         private Integer timeout;
         private TimeUnit unit;

+ 1 - 1
coffee-system/src/main/java/com/coffee/bus/hospital/config/bean/FunctionOtherConfig.java

@@ -17,7 +17,7 @@ import java.io.Serializable;
 @ApiModel("其他配置")
 public class FunctionOtherConfig implements Serializable {
     @ApiModelProperty("其他配置")
-    private FunctionExtraConfig extra;
+    private FunctionExtraConfig other;
     @ApiModelProperty("镇痛不足配置")
     private FunctionAnalConfig anal;
 }

+ 1 - 1
coffee-system/src/main/java/com/coffee/bus/hospital/script/ExecuteResult.java

@@ -14,7 +14,7 @@ import java.util.function.Supplier;
 public class ExecuteResult {
     @ApiModelProperty("脚本是否执行成功")
     private boolean success;
-    @ApiModelProperty("脚本输入参数成功")
+    @ApiModelProperty("脚本输入参数")
     private String input;
     @ApiModelProperty("脚本输出")
     private JSON result;

+ 6 - 6
coffee-system/src/main/java/com/coffee/bus/hospital/script/PythonParse.java

@@ -25,14 +25,14 @@ public class PythonParse implements ScriptParse {
     private PyFunction pyFunction;
 
     public PythonParse() {
-//        Properties p = new Properties();
-//        p.setProperty("python.console.encoding", "UTF-8");
-//        PySystemState systemState = Py.getSystemState();
-////        PyString xml = new PyString("\\python-modules");
+        Properties p = new Properties();
+        p.setProperty("python.console.encoding", "UTF-8");
+        PySystemState systemState = Py.getSystemState();
+//        PyString xml = new PyString("\\python-modules");
 //        PyString xml = new PyString("E:\\software\\coffee-boot\\coffee-admin\\src\\main\\resources\\python");
 //        systemState.path.append(xml);
-//        PythonInterpreter.initialize(System.getProperties(), p, new String[] {});
-//        interpreter = new PythonInterpreter();
+        PythonInterpreter.initialize(System.getProperties(), p, new String[] {});
+        interpreter = new PythonInterpreter();
 
     }
 

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

@@ -132,7 +132,7 @@ public class LocalBusHospitalConfigService extends BaseService<BusHospitalConfig
         anal.setValid(true);
 
         FunctionOtherConfig result = new FunctionOtherConfig();
-        result.setExtra(extraConfig);
+        result.setOther(extraConfig);
         result.setAnal(anal);
         return JSONUtil.parseObj(result);
     }