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

+ 5 - 1
nb-system/src/main/java/com/nb/bus/controller/BusStatsAnalyseController.java

@@ -4,11 +4,11 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
 import com.nb.bus.enums.StatsAnalyseEnum;
-import com.nb.bus.service.LocalBusInfusionHistoryService;
 import com.nb.bus.service.dto.CombineQuery;
 import com.nb.bus.service.dto.CombineResult;
 import com.nb.bus.stats.CommonStats;
 import com.nb.bus.stats.entity.StatsAnalyseResult;
+import com.nb.bus.utils.ThreadUtil;
 import com.nb.common.exception.CustomException;
 import com.nb.common.exception.TenantException;
 import com.nb.common.result.R;
@@ -60,9 +60,13 @@ public class BusStatsAnalyseController {
         CommonStats commonStats=statsMap.get(analyseEnum);
 
         List result = commonStats.queryResult(query);
+        //提示分析时,根据所选设备类型 进行分析判定
+
+        ThreadUtil.getSingleThreadLocal().set(query.getDeviceType());
         if(CollectionUtil.isNotEmpty(result)){
             result.sort(Comparator.comparing(CombineResult::getInfusionStartTime));
             StatsAnalyseResult of = StatsAnalyseResult.of(commonStats.handlePie(result), commonStats.handleLine(result, query.getTimeUnit()), commonStats.handleTable(result,query.getTimeUnit()));
+            ThreadUtil.getSingleThreadLocal().remove();
             return R.success(of);
         }
         return R.success(StatsAnalyseResult.empty());

+ 1 - 1
nb-system/src/main/java/com/nb/bus/enums/FlowStatusEnum.java

@@ -25,7 +25,7 @@ public enum FlowStatusEnum implements IEnum<Integer> {
      */
     None(0,"正常"),
     Limited(1,"加档受限"),
-    MaxFlow(2,"流速已达上限"),
+    MaxFlow(2,"持续量已达上限"),
     Up(3,"加档"),
     Down(4,"减档"),
     Lowest(5,"低输注状态");

+ 13 - 6
nb-system/src/main/java/com/nb/bus/service/LocalBusDeviceAlarmService.java

@@ -1,5 +1,6 @@
 package com.nb.bus.service;
 
+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;
@@ -55,22 +56,28 @@ public class LocalBusDeviceAlarmService extends BaseService<BusDeviceAlarmMapper
         if(entity.getDeviceType()==null){
             entity.setDeviceType(infusionHistoryEntity.getType());
         }
-        if(entity.getAlarmState()==null){
+        if(entity.getAlarmState()==null
+                || ObjectUtil.equal(entity.getAlarmState(),infusionHistoryEntity.getAlarm())){
             entity.setAlarmState(DeviceAlarmEnum.None);
         }
-        if(entity.getWarnAnalgesicPoor()==null){
+        if(entity.getWarnAnalgesicPoor()==null
+                || ObjectUtil.equal(entity.getWarnAnalgesicPoor(),infusionHistoryEntity.getWarnAnalgesicPoor())){
             entity.setWarnAnalgesicPoor(false);
         }
-        if(entity.getWarnFlow()==null){
+        if(entity.getWarnFlow()==null
+                || ObjectUtil.equal(entity.getWarnFlow(),infusionHistoryEntity.getWarnFlow())){
             entity.setWarnFlow(FlowStatusEnum.None);
         }
-        if(entity.getWarnWillFinished()==null){
+        if(entity.getWarnWillFinished()==null
+                || ObjectUtil.equal(entity.getWarnWillFinished(),infusionHistoryEntity.getWarnWillFinished())){
             entity.setWarnWillFinished(false);
         }
-        if(entity.getWarnLowBattery()==null){
+        if(entity.getWarnLowBattery()==null
+                || ObjectUtil.equal(entity.getWarnLowBattery(),infusionHistoryEntity.getWarnLowBattery())){
             entity.setWarnLowBattery(false);
         }
-        if(entity.getWarnAnalgesicPoor()==null){
+        if(entity.getWarnAnalgesicPoor()==null
+                || ObjectUtil.equal(entity.getWarnAnalgesicPoor(),infusionHistoryEntity.getWarnAnalgesicPoor())){
             entity.setWarnAnalgesicPoor(false);
         }
        if(!entity.alarmOrWarn()){

+ 5 - 3
nb-system/src/main/java/com/nb/bus/service/LocalBusDeviceManualService.java

@@ -83,16 +83,18 @@ public class LocalBusDeviceManualService extends BaseService<BusDeviceManualMapp
     public void save(BusDeviceManualEntity manual, BusClinicEntity clinic) {
         //将临床设置为无泵监控临床
         if (StrUtil.isEmpty(clinic.getPatientCode())) {
-            throw new CustomException("号不能为空");
+            throw new CustomException("住院号号不能为空");
         }
         Date now = new Date();
         clinic.setMonitorType(false);
         if(clinic.getMonitorStartTime()==null){
             clinic.setMonitorStartTime(now);
         }
-        BusClinicEntity existClinic = clinicService.getOne(new QueryWrapper<BusClinicEntity>().lambda().eq(BusClinicEntity::getPatientCode, clinic.getPatientCode()).eq(BusClinicEntity::getMonitorType, false));
+        BusClinicEntity existClinic = clinicService.getOne(new QueryWrapper<BusClinicEntity>().lambda().eq(BusClinicEntity::getPatientCode, clinic.getPatientCode())
+                .eq(BusClinicEntity::getFinished,false)
+                .eq(BusClinicEntity::getMonitorType, false));
         if(existClinic!=null){
-            throw new CustomException(String.format("病号【{%s}】在无泵列表中已存在",clinic.getPatientCode()));
+            throw new CustomException(String.format("住院号【{%s}】在无泵列表中已存在",clinic.getPatientCode()));
         }
         clinicService.save(clinic);
         BusDeviceManualEntity existManual = this.getOne(new QueryWrapper<BusDeviceManualEntity>().lambda().eq(BusDeviceManualEntity::getClinicId, clinic.getId()));

+ 74 - 52
nb-system/src/main/java/com/nb/bus/stats/analyse/AlarmStatsAnalyse.java

@@ -2,16 +2,14 @@ package com.nb.bus.stats.analyse;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.text.CharSequenceUtil;
-import com.nb.bus.enums.DeviceAlarmEnum;
-import com.nb.bus.enums.FlowStatusEnum;
-import com.nb.bus.enums.StatsAnalyseEnum;
-import com.nb.bus.enums.StatsTimeUnit;
+import com.nb.bus.enums.*;
 import com.nb.bus.service.LocalBusInfusionHistoryService;
 import com.nb.bus.service.dto.CombineAlarmResult;
 import com.nb.bus.service.dto.CombineQuery;
 import com.nb.bus.stats.CommonStats;
 import com.nb.bus.stats.entity.*;
 import com.nb.bus.stats.enums.PieEnum;
+import com.nb.bus.utils.ThreadUtil;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import org.springframework.stereotype.Service;
@@ -80,8 +78,8 @@ public class AlarmStatsAnalyse implements CommonStats<CombineAlarmResult> {
         groupByTime.forEach((timeRange,combineResults)->{
             for (CombineAlarmResult combineResult : combineResults) {
                 alarmScatter.handle(combineResult,timeRange);
-
             }
+            alarmScatter.fillAllAlarm(timeRange,addIntelligentParam());
         });
         result.getTime().addAll(alarmScatter.keySet());
         //均值、方差
@@ -118,7 +116,7 @@ public class AlarmStatsAnalyse implements CommonStats<CombineAlarmResult> {
         Map<String, AlarmTotalPieResult> groupByTime = new HashMap<>();
         //根据时间区间对镇痛方式进行统计
         results.forEach((timeRange,combineResults)->{
-            AlarmTotalPieResult alarmTotalPieResult = groupByTime.computeIfAbsent(timeRange, k -> new AlarmTotalPieResult());
+            AlarmTotalPieResult alarmTotalPieResult = groupByTime.computeIfAbsent(timeRange, k -> new AlarmTotalPieResult(addIntelligentParam()));
             combineResults.forEach(alarmTotalPieResult::handle);
             time.add(timeRange);
         });
@@ -148,16 +146,18 @@ public class AlarmStatsAnalyse implements CommonStats<CombineAlarmResult> {
                     .add(computeRatio(BigDecimal.valueOf(totalResult.getInfusionMax().getValue()),total));
 
             //智能泵专属
-            lineContentMap.computeIfAbsent("加档率",k->new LineResult.LineContent<>(FlowStatusEnum.Up.getText())).getValue()
-                    .add(computeRatio(BigDecimal.valueOf(totalResult.getFlowUp().getValue()),total));
-            lineContentMap.computeIfAbsent("减档率",k->new LineResult.LineContent<>(FlowStatusEnum.Down.getText())).getValue()
-                    .add(computeRatio(BigDecimal.valueOf(totalResult.getFlowDown().getValue()),total));
-            lineContentMap.computeIfAbsent("流速已达上限率",k->new LineResult.LineContent<>(FlowStatusEnum.MaxFlow.getText())).getValue()
-                    .add(computeRatio(BigDecimal.valueOf(totalResult.getFlowMax().getValue()),total));
-            lineContentMap.computeIfAbsent("加档受限率",k->new LineResult.LineContent<>(FlowStatusEnum.Limited.getText())).getValue()
-                    .add(computeRatio(BigDecimal.valueOf(totalResult.getFlowLimited().getValue()),total));
-            lineContentMap.computeIfAbsent("低输注率",k->new LineResult.LineContent<>(FlowStatusEnum.Lowest.getText())).getValue()
-                    .add(computeRatio(BigDecimal.valueOf(totalResult.getLowInfusion().getValue()),total));
+            if(addIntelligentParam()){
+                lineContentMap.computeIfAbsent("加档率",k->new LineResult.LineContent<>(FlowStatusEnum.Up.getText())).getValue()
+                        .add(computeRatio(BigDecimal.valueOf(totalResult.getFlowUp().getValue()),total));
+                lineContentMap.computeIfAbsent("减档率",k->new LineResult.LineContent<>(FlowStatusEnum.Down.getText())).getValue()
+                        .add(computeRatio(BigDecimal.valueOf(totalResult.getFlowDown().getValue()),total));
+                lineContentMap.computeIfAbsent("流速已达上限率",k->new LineResult.LineContent<>(FlowStatusEnum.MaxFlow.getText())).getValue()
+                        .add(computeRatio(BigDecimal.valueOf(totalResult.getFlowMax().getValue()),total));
+                lineContentMap.computeIfAbsent("加档受限率",k->new LineResult.LineContent<>(FlowStatusEnum.Limited.getText())).getValue()
+                        .add(computeRatio(BigDecimal.valueOf(totalResult.getFlowLimited().getValue()),total));
+                lineContentMap.computeIfAbsent("低输注率",k->new LineResult.LineContent<>(FlowStatusEnum.Lowest.getText())).getValue()
+                        .add(computeRatio(BigDecimal.valueOf(totalResult.getLowInfusion().getValue()),total));
+            }
         });
         result.setContent(new ArrayList<>(lineContentMap.values()));
         return result;
@@ -176,7 +176,7 @@ public class AlarmStatsAnalyse implements CommonStats<CombineAlarmResult> {
         Map<String, AlarmTotalPieResult> groupByTime = new HashMap<>();
         //根据时间区间对镇痛方式进行统计
         results.forEach((timeRange,combineResults)->{
-            AlarmTotalPieResult alarmTotalPieResult = groupByTime.computeIfAbsent(timeRange, k -> new AlarmTotalPieResult());
+            AlarmTotalPieResult alarmTotalPieResult = groupByTime.computeIfAbsent(timeRange, k -> new AlarmTotalPieResult(addIntelligentParam()));
             combineResults.forEach(alarmTotalPieResult::handle);
             time.add(timeRange);
         });
@@ -194,12 +194,15 @@ public class AlarmStatsAnalyse implements CommonStats<CombineAlarmResult> {
             lineContentMap.computeIfAbsent(DeviceAlarmEnum.Bubble.getText(),k->new LineResult.LineContent<>(DeviceAlarmEnum.Bubble.getText())).getValue().add(totalResult.getBubble().getValue());
             lineContentMap.computeIfAbsent(DeviceAlarmEnum.InfusionMax.getText(),k->new LineResult.LineContent<>(DeviceAlarmEnum.InfusionMax.getText())).getValue().add(totalResult.getLowInfusion().getValue());
 
-            //智能泵专属
-            lineContentMap.computeIfAbsent(FlowStatusEnum.Up.getText(), k->new LineResult.LineContent<>(FlowStatusEnum.Up.getText())).getValue().add(totalResult.getFlowUp().getValue());
-            lineContentMap.computeIfAbsent(FlowStatusEnum.Down.getText(),k->new LineResult.LineContent<>(FlowStatusEnum.Down.getText())).getValue().add(totalResult.getFlowDown().getValue());
-            lineContentMap.computeIfAbsent(FlowStatusEnum.MaxFlow.getText(),k->new LineResult.LineContent<>(FlowStatusEnum.MaxFlow.getText())).getValue().add(totalResult.getFlowMax().getValue());
-            lineContentMap.computeIfAbsent(FlowStatusEnum.Limited.getText(),k->new LineResult.LineContent<>(FlowStatusEnum.Limited.getText())).getValue().add(totalResult.getFlowLimited().getValue());
-            lineContentMap.computeIfAbsent(FlowStatusEnum.Lowest.getText(),k->new LineResult.LineContent<>(FlowStatusEnum.Lowest.getText())).getValue().add(totalResult.getLowInfusion().getValue());
+            if(addIntelligentParam()){
+                //智能泵专属
+                lineContentMap.computeIfAbsent(FlowStatusEnum.Up.getText(), k->new LineResult.LineContent<>(FlowStatusEnum.Up.getText())).getValue().add(totalResult.getFlowUp().getValue());
+                lineContentMap.computeIfAbsent(FlowStatusEnum.Down.getText(),k->new LineResult.LineContent<>(FlowStatusEnum.Down.getText())).getValue().add(totalResult.getFlowDown().getValue());
+                lineContentMap.computeIfAbsent(FlowStatusEnum.MaxFlow.getText(),k->new LineResult.LineContent<>(FlowStatusEnum.MaxFlow.getText())).getValue().add(totalResult.getFlowMax().getValue());
+                lineContentMap.computeIfAbsent(FlowStatusEnum.Limited.getText(),k->new LineResult.LineContent<>(FlowStatusEnum.Limited.getText())).getValue().add(totalResult.getFlowLimited().getValue());
+                lineContentMap.computeIfAbsent(FlowStatusEnum.Lowest.getText(),k->new LineResult.LineContent<>(FlowStatusEnum.Lowest.getText())).getValue().add(totalResult.getLowInfusion().getValue());
+            }
+
         });
         result.setContent(new ArrayList<>(lineContentMap.values()));
         result.setSampleCount(CollUtil.size(results));
@@ -224,14 +227,17 @@ public class AlarmStatsAnalyse implements CommonStats<CombineAlarmResult> {
                 "低电量",
                 DeviceAlarmEnum.Bubble.getText(),
                 DeviceAlarmEnum.InfusionMax.getText());
-        //智能泵专属
-        columnNames=CollUtil.unionAll(columnNames,Arrays.asList(
-                FlowStatusEnum.Up.getText(),
-                FlowStatusEnum.Down.getText(),
-                FlowStatusEnum.MaxFlow.getText(),
-                FlowStatusEnum.Limited.getText(),
-                FlowStatusEnum.Lowest.getText()
-        ));
+        if(addIntelligentParam()){
+            //智能泵专属
+            columnNames=CollUtil.unionAll(columnNames,Arrays.asList(
+                    FlowStatusEnum.Up.getText(),
+                    FlowStatusEnum.Down.getText(),
+                    FlowStatusEnum.MaxFlow.getText(),
+                    FlowStatusEnum.Limited.getText(),
+                    FlowStatusEnum.Lowest.getText()
+            ));
+        }
+
         //顺序不可错! 先数量后比率
         List<StatsColumn> allColumn = getAllColumn(columnNames);
 
@@ -244,7 +250,7 @@ public class AlarmStatsAnalyse implements CommonStats<CombineAlarmResult> {
         Map<String, AlarmTotalPieResult> groupByTimeCountResult = new HashMap<>();
         //根据时间区间对镇痛方式进行统计
         groupByTimeResults.forEach((timeRange,combineResults)->{
-            AlarmTotalPieResult alarmTotalPieResult = groupByTimeCountResult.computeIfAbsent(timeRange, k -> new AlarmTotalPieResult());
+            AlarmTotalPieResult alarmTotalPieResult = groupByTimeCountResult.computeIfAbsent(timeRange, k -> new AlarmTotalPieResult(addIntelligentParam()));
             combineResults.forEach(alarmTotalPieResult::handle);
             alarmTotalPieResult.setInfusionCount(combineResults.stream().map(CombineAlarmResult::getId).distinct().count());
         });
@@ -278,18 +284,19 @@ public class AlarmStatsAnalyse implements CommonStats<CombineAlarmResult> {
             contentValues.put(DeviceAlarmEnum.InfusionMax.getText()+"比率",computeRatio(BigDecimal.valueOf(totalResult.getInfusionMax().getValue()),total));
 
             //智能泵专属
-            contentValues.put( FlowStatusEnum.Up.getText(),totalResult.getFlowUp().getValue());
-            contentValues.put( FlowStatusEnum.Down.getText(),totalResult.getFlowDown().getValue());
-            contentValues.put(FlowStatusEnum.Limited.getText(),totalResult.getFlowLimited().getValue());
-            contentValues.put(FlowStatusEnum.MaxFlow.getText(),totalResult.getFlowMax().getValue());
-            contentValues.put(FlowStatusEnum.Lowest.getText(),totalResult.getLowInfusion().getValue());
-
-            contentValues.put( FlowStatusEnum.Up.getText()+"比率",computeRatio(BigDecimal.valueOf(totalResult.getFlowUp().getValue()),total));
-            contentValues.put( FlowStatusEnum.Down.getText()+"比率",computeRatio(BigDecimal.valueOf(totalResult.getFlowDown().getValue()),total));
-            contentValues.put(FlowStatusEnum.Limited.getText()+"比率",computeRatio(BigDecimal.valueOf(totalResult.getFlowLimited().getValue()),total));
-            contentValues.put(FlowStatusEnum.MaxFlow.getText()+"比率",computeRatio(BigDecimal.valueOf(totalResult.getFlowMax().getValue()),total));
-            contentValues.put(FlowStatusEnum.Lowest.getText()+"比率",computeRatio(BigDecimal.valueOf(totalResult.getLowInfusion().getValue()),total));
+            if(addIntelligentParam()){
+                contentValues.put( FlowStatusEnum.Up.getText(),totalResult.getFlowUp().getValue());
+                contentValues.put( FlowStatusEnum.Down.getText(),totalResult.getFlowDown().getValue());
+                contentValues.put(FlowStatusEnum.Limited.getText(),totalResult.getFlowLimited().getValue());
+                contentValues.put(FlowStatusEnum.MaxFlow.getText(),totalResult.getFlowMax().getValue());
+                contentValues.put(FlowStatusEnum.Lowest.getText(),totalResult.getLowInfusion().getValue());
 
+                contentValues.put( FlowStatusEnum.Up.getText()+"比率",computeRatio(BigDecimal.valueOf(totalResult.getFlowUp().getValue()),total));
+                contentValues.put( FlowStatusEnum.Down.getText()+"比率",computeRatio(BigDecimal.valueOf(totalResult.getFlowDown().getValue()),total));
+                contentValues.put(FlowStatusEnum.Limited.getText()+"比率",computeRatio(BigDecimal.valueOf(totalResult.getFlowLimited().getValue()),total));
+                contentValues.put(FlowStatusEnum.MaxFlow.getText()+"比率",computeRatio(BigDecimal.valueOf(totalResult.getFlowMax().getValue()),total));
+                contentValues.put(FlowStatusEnum.Lowest.getText()+"比率",computeRatio(BigDecimal.valueOf(totalResult.getLowInfusion().getValue()),total));
+            }
 
             contents.add(contentValues);
         });
@@ -317,7 +324,7 @@ public class AlarmStatsAnalyse implements CommonStats<CombineAlarmResult> {
      */
     private PieResult totalPie(List<CombineAlarmResult> results){
         PieResult result = PieResult.of(PieEnum.total.name(),PieEnum.total.getText());
-        AlarmTotalPieResult alarmTotalPieResult = new AlarmTotalPieResult();
+        AlarmTotalPieResult alarmTotalPieResult = new AlarmTotalPieResult(addIntelligentParam());
         results.forEach(alarmTotalPieResult::handle);
         result.setContent(new ArrayList<>(alarmTotalPieResult.values()));
         return result;
@@ -340,14 +347,13 @@ public class AlarmStatsAnalyse implements CommonStats<CombineAlarmResult> {
      */
     private List<PieResult> alarmAnalysePie(List<CombineAlarmResult> results){
         Map<DeviceAlarmEnum, PieResult> resultMap = new EnumMap<>(DeviceAlarmEnum.class);
-        resultMap.put(DeviceAlarmEnum.Jam,PieResult.of("jam","堵塞报警原因分析饼图"));
-        resultMap.put(DeviceAlarmEnum.Limit,PieResult.of("limit","极限报警原因分析饼图"));
-        resultMap.put(DeviceAlarmEnum.NotBox,PieResult.of("noBox","未装药盒报警原因分析饼图"));
-        resultMap.put(DeviceAlarmEnum.OutOfControl,PieResult.of("outOfControl","电机失控报警原因分析饼图"));
-        resultMap.put(DeviceAlarmEnum.Machine,PieResult.of("machine","机械故障报警原因分析饼图"));
-        resultMap.put(DeviceAlarmEnum.LowBattery,PieResult.of("lowBattery","电量耗尽报警原因分析饼图"));
-        resultMap.put(DeviceAlarmEnum.Bubble,PieResult.of("bubble","气泡无液报警原因分析饼图"));
-//        resultMap.put(DeviceAlarmEnum.InfusionMax,PieResult.of("infusionMax","返厂维护报警原因分析饼图"));
+        resultMap.put(DeviceAlarmEnum.Jam,PieResult.of("jam",DeviceAlarmEnum.Jam.getText()+"原因分析饼图"));
+        resultMap.put(DeviceAlarmEnum.Limit,PieResult.of("limit",DeviceAlarmEnum.Limit.getText()+"原因分析饼图"));
+        resultMap.put(DeviceAlarmEnum.NotBox,PieResult.of("noBox",DeviceAlarmEnum.NotBox.getText()+"原因分析饼图"));
+        resultMap.put(DeviceAlarmEnum.OutOfControl,PieResult.of("outOfControl",DeviceAlarmEnum.OutOfControl.getText()+"原因分析饼图"));
+        resultMap.put(DeviceAlarmEnum.Machine,PieResult.of("machine",DeviceAlarmEnum.Machine.getText()+"原因分析饼图"));
+        resultMap.put(DeviceAlarmEnum.LowBattery,PieResult.of("lowBattery",DeviceAlarmEnum.LowBattery.getText()+"原因分析饼图"));
+        resultMap.put(DeviceAlarmEnum.Bubble,PieResult.of("bubble",DeviceAlarmEnum.Bubble.getText()+"原因分析饼图"));
         //按照报警类型分类
         Map<DeviceAlarmEnum, List<CombineAlarmResult>> alarmMap = results.stream()
                 .peek(r->{
@@ -368,4 +374,20 @@ public class AlarmStatsAnalyse implements CommonStats<CombineAlarmResult> {
         });
         return new ArrayList<>(resultMap.values());
     }
+
+
+    /**
+     * 描述:是否添加智能泵的提示参数 当查询设备类型为空或是智能泵时添加
+     * @author lifang
+     * @date 2022/7/15 10:28
+     * @param
+     * @return boolean
+     */
+    public boolean addIntelligentParam(){
+        Object deviceType = ThreadUtil.getSingleThreadLocal().get();
+        if(deviceType==null|| DeviceTypeEnum.intelligent.getValue().equals(deviceType)){
+            return true;
+        }
+        return false;
+    }
 }

+ 27 - 0
nb-system/src/main/java/com/nb/bus/stats/entity/AlarmScatter.java

@@ -227,8 +227,35 @@ public class AlarmScatter extends LinkedHashMap<String, Map<String, AlarmScatter
                     default:break;
                 }
             }
+        }
+    }
 
+    /**
+     * 描述: 补齐所有提示信息
+     * @author lifang
+     * @date 2022/7/15 10:35
+     * @param time
+     * @return void
+     */
+    public void fillAllAlarm(String time,boolean intelligent){
+        getJam(time);
+        getLimit(time);
+        getNoBox(time);
+        getMachine(time);
+        getOutOfControl(time);
+        getLowBattery(time);
+        getBubble(time);
+        getInfusionMax(time);
+        getAnalgesicPoor(time);
+        getNoSignal(time);
+        if(intelligent){
+            getFlowUp(time);
+            getFlowDown(time);
+            getLowInfusion(time);
+            getFlowLimited(time);
+            getFlowMax(time);
         }
+
     }
 
     @Data

+ 38 - 25
nb-system/src/main/java/com/nb/bus/stats/entity/AlarmTotalPieResult.java

@@ -26,6 +26,9 @@ public class AlarmTotalPieResult extends HashMap<String,PieContent> {
     @Getter
     private long total=0;
 
+    //是否添加智能泵参数,默认添加
+    private boolean intelligent=true;
+
     @ApiModelProperty(value = "输注总数")
     @Getter
     @Setter
@@ -164,7 +167,14 @@ public class AlarmTotalPieResult extends HashMap<String,PieContent> {
         ++total;
     }
 
-    public AlarmTotalPieResult() {
+    /**
+     * 描述:  是否添加智能泵参数
+     * @author lifang
+     * @date 2022/7/15 10:30
+     * @param intelligent
+     */
+    public AlarmTotalPieResult(boolean intelligent) {
+        this.intelligent=intelligent;
         getJam();
         getLimit();
         getNoBox();
@@ -175,12 +185,14 @@ public class AlarmTotalPieResult extends HashMap<String,PieContent> {
         getLowBattery();
         getBubble();
         getInfusionMax();
-        //智能泵专属
-        getLowInfusion();
-        getFlowLimited();
-        getFlowMax();
-        getFlowDown();
-        getFlowUp();
+        if(intelligent){
+            //智能泵专属
+            getLowInfusion();
+            getFlowLimited();
+            getFlowMax();
+            getFlowDown();
+            getFlowUp();
+        }
     }
 
     public void handle(CombineAlarmResult alarmResult) {
@@ -222,27 +234,28 @@ public class AlarmTotalPieResult extends HashMap<String,PieContent> {
             if (DeviceStatusEnum.NoSignal.equals(runState)) {
                 incrementNoSignal();
             }
-            FlowStatusEnum warnFlow = alarmResult.getWarnFlow();
-            if(warnFlow!=null){
-                switch (warnFlow){
-                    case Up:
-                        incrementFlowUp();
-                        break;
-                    case Down:
-                        incrementFlowDown();
-                        break;
-                    case Lowest:
-                        incrementLowInfusion();
-                        break;
-                    case Limited:
-                        incrementFlowLimited();
-                        break;
-                    case MaxFlow:
-                        incrementFlowMax();
+            if(intelligent){
+                FlowStatusEnum warnFlow = alarmResult.getWarnFlow();
+                if(warnFlow!=null){
+                    switch (warnFlow){
+                        case Up:
+                            incrementFlowUp();
+                            break;
+                        case Down:
+                            incrementFlowDown();
+                            break;
+                        case Lowest:
+                            incrementLowInfusion();
+                            break;
+                        case Limited:
+                            incrementFlowLimited();
+                            break;
+                        case MaxFlow:
+                            incrementFlowMax();
                         default:break;
+                    }
                 }
             }
-
         }
     }
 }

+ 15 - 0
nb-system/src/main/java/com/nb/bus/utils/ThreadUtil.java

@@ -0,0 +1,15 @@
+package com.nb.bus.utils;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName ThreadUtil.java
+ * @Description TODO
+ * @createTime 2022年07月15日 11:23:00
+ */
+public class ThreadUtil {
+    private static ThreadLocal threadLocal=new ThreadLocal();
+    public static ThreadLocal getSingleThreadLocal(){
+        return threadLocal;
+    }
+  }