Browse Source

fix 低电量报警改为电量耗尽

18339543638 3 năm trước cách đây
mục cha
commit
2bc04c0830

+ 1 - 1
nb-service-api/web-service-api/src/main/java/com/nb/web/api/entity/common/CommonDeviceParam.java

@@ -108,7 +108,7 @@ public class CommonDeviceParam<K,T>  extends DeviceProperties<K,T>  {
         handleWarn();
         //去除多余符号
         if (StrUtil.isNotEmpty(warns)) {
-            return warns.endsWith(";")&&warns.length()>2?warns.substring(0,warns.length()-1):warns;
+            return warns.endsWith(";")?warns.substring(0,warns.length()-1):warns;
         }
         return warns;
     }

+ 12 - 6
nb-service/web-service/src/main/java/com/nb/web/service/bus/listener/DeviceInfoListener.java

@@ -198,22 +198,22 @@ public class DeviceInfoListener implements IIotMsgHandler {
      * @return void
      */
     private void handleIntelligent(BusDeviceRunningEntity device, DeviceOperator deviceOperator, List<Supplier<?>> cacheOperation) {
-
         //开机数据不进行加减档判定
         if (!DeviceStatusEnum.StartUp.equals(device.getRunState())) {
             if(DeviceTypeEnum.intelligent.equals(device.getType())
-                    &&null==device.getWarnFlow()
+                    &&FlowStatusEnum.None==device.getWarnFlow()
                     && Boolean.FALSE.equals(device.isNewInfusion())){
                 BigDecimal lastContinueDose = deviceOperator.getContinueDose();
+                boolean flowLimit = deviceOperator.isFlowLimit();
                 if(lastContinueDose==null){
-                    device.setWarnFlow(FlowStatusEnum.None);
+                    device.setWarnFlow(flowLimit?FlowStatusEnum.Limited:FlowStatusEnum.None);
                     if(log.isDebugEnabled()){
                         log.warn("设备【{}】流速在缓存中不存在",device.getContinueDose());
                     }
                 }else {
                     if(CompareUtil.compare(device.getContinueDose(),lastContinueDose)>0){
                         log.info("消息【{}】,设备【{}】,当前流速【{}】,上一状态流速【{}】,加档",device.getMsgId(),device.getDeviceId(),device.getContinueDose(),lastContinueDose);
-                        device.setWarnFlow(FlowStatusEnum.Up);
+                        device.setWarnFlow(flowLimit?FlowStatusEnum.Limited:FlowStatusEnum.Up);
                     }else if(CompareUtil.compare(device.getContinueDose(),lastContinueDose)<0){
                         log.info("消息【{}】,设备【{}】,当前流速【{}】,上一状态流速【{}】,减档",device.getMsgId(),device.getDeviceId(),device.getContinueDose(),lastContinueDose);
                         device.setWarnFlow(FlowStatusEnum.Down);
@@ -225,9 +225,11 @@ public class DeviceInfoListener implements IIotMsgHandler {
             cacheOperation.add(()->{
                 deviceOperator.setContinueDose(device.getContinueDose());
                 if(FlowStatusEnum.Down.equals(device.getWarnFlow())
-                ||(device.isNewInfusion()&&FlowStatusEnum.Limited.equals(device.getWarnFlow()))){
+                ||(device.isNewInfusion()&&!FlowStatusEnum.Limited.equals(device.getWarnFlow()))){
                     //减档或者非加档受限的新输注
                     deviceOperator.setFlowLimit(false);
+                }else if(FlowStatusEnum.Limited.equals(device.getWarnFlow())){
+                    deviceOperator.setFlowLimit(true);
                 }
                 return null;
             });
@@ -242,7 +244,11 @@ public class DeviceInfoListener implements IIotMsgHandler {
     }
 
     private void init(BusDeviceRunningEntity device,DeviceOperator deviceOperator ) {
-
+        if(DeviceTypeEnum.intelligent.equals(device.getType())
+        &&device.getFlowUpLimit().compareTo(device.getContinueDose())>=0
+        &&!FlowStatusEnum.None.equals(device.getWarnFlow())){
+            device.setWarnFlow(FlowStatusEnum.Limited);
+        }
 //        if(device.getWarnFlow()!=null&&FlowStatusEnum.None.equals(device.getWarnFlow())){
 //            device.setWarnFlow(null);
 //        }