Parcourir la source

update 删除冗余代码,改掉坏味道
update 输注详情查询以输注为主

A17404李放 il y a 3 ans
Parent
commit
d8d1e2a3d5
48 fichiers modifiés avec 258 ajouts et 88 suppressions
  1. 1 1
      coffee-admin/src/main/resources/application-dev.yml
  2. 0 2
      coffee-common/src/main/java/com/coffee/common/cache/message/RedisClusterCache.java
  3. 2 6
      coffee-common/src/main/java/com/coffee/common/entity/TenantGenericEntity.java
  4. 3 1
      coffee-framework/src/main/java/com/coffee/framework/config/SwaggerConfig.java
  5. 3 1
      coffee-framework/src/main/java/com/coffee/framework/web/service/impl/UserServiceImpl.java
  6. 1 1
      coffee-system/src/main/java/com/coffee/bus/controller/BusEvaluationController.java
  7. 0 1
      coffee-system/src/main/java/com/coffee/bus/controller/BusHospitalController.java
  8. 0 2
      coffee-system/src/main/java/com/coffee/bus/controller/BusHospitalLogController.java
  9. 12 6
      coffee-system/src/main/java/com/coffee/bus/controller/BusPatientController.java
  10. 3 0
      coffee-system/src/main/java/com/coffee/bus/controller/vo/MonitorDetailVo.java
  11. 1 2
      coffee-system/src/main/java/com/coffee/bus/entity/BusDrugEntity.java
  12. 1 1
      coffee-system/src/main/java/com/coffee/bus/entity/BusFormulaEntity.java
  13. 1 1
      coffee-system/src/main/java/com/coffee/bus/entity/BusHospitalConfigEntity.java
  14. 0 3
      coffee-system/src/main/java/com/coffee/bus/entity/BusHospitalLogEntity.java
  15. 0 1
      coffee-system/src/main/java/com/coffee/bus/hospital/HospitalManagerRegister.java
  16. 0 1
      coffee-system/src/main/java/com/coffee/bus/hospital/config/HospitalAutoUndoConfigHandler.java
  17. 0 1
      coffee-system/src/main/java/com/coffee/bus/hospital/config/HospitalFunctionExtraConfigHandler.java
  18. 0 1
      coffee-system/src/main/java/com/coffee/bus/hospital/his/strategy/all/EqualsStrategyHandler.java
  19. 1 1
      coffee-system/src/main/java/com/coffee/bus/registry/RegistryConstant.java
  20. 0 3
      coffee-system/src/main/java/com/coffee/bus/registry/device/ClusterDeviceRegistry.java
  21. 1 3
      coffee-system/src/main/java/com/coffee/bus/service/LocalBusClinicService.java
  22. 0 1
      coffee-system/src/main/java/com/coffee/bus/service/LocalBusDeviceAlarmService.java
  23. 1 1
      coffee-system/src/main/java/com/coffee/bus/service/LocalBusDeviceHistoryService.java
  24. 0 1
      coffee-system/src/main/java/com/coffee/bus/service/LocalBusDeviceService.java
  25. 2 6
      coffee-system/src/main/java/com/coffee/bus/service/LocalBusHospitalConfigService.java
  26. 3 3
      coffee-system/src/main/java/com/coffee/bus/service/LocalBusPatientService.java
  27. 1 2
      coffee-system/src/main/java/com/coffee/bus/service/constant/LocalBusConMixService.java
  28. 2 0
      coffee-system/src/main/java/com/coffee/bus/service/dto/AlarmQuery.java
  29. 1 1
      coffee-system/src/main/java/com/coffee/bus/service/dto/ClinicStatsQueryResult.java
  30. 1 3
      coffee-system/src/main/java/com/coffee/bus/service/dto/ClinicStatsReturnResult.java
  31. 1 1
      coffee-system/src/main/java/com/coffee/bus/service/dto/CombineAlarmResult.java
  32. 1 9
      coffee-system/src/main/java/com/coffee/bus/service/dto/DeviceAlarmQuery.java
  33. 2 0
      coffee-system/src/main/java/com/coffee/bus/service/dto/DeviceHistoryQuery.java
  34. 0 1
      coffee-system/src/main/java/com/coffee/bus/service/dto/DeviceWarnCountResult.java
  35. 2 1
      coffee-system/src/main/java/com/coffee/bus/service/dto/EvalQuery.java
  36. 1 3
      coffee-system/src/main/java/com/coffee/bus/service/dto/HospitalScriptResult.java
  37. 1 3
      coffee-system/src/main/java/com/coffee/bus/service/dto/PatientMonitorDetailResult.java
  38. 1 2
      coffee-system/src/main/java/com/coffee/bus/stats/CommonStats.java
  39. 32 0
      coffee-system/src/main/java/com/coffee/bus/stats/analyse/AlarmStatsAnalyse.java
  40. 127 0
      coffee-system/src/main/java/com/coffee/bus/stats/entity/AlarmScatter.java
  41. 7 1
      coffee-system/src/main/java/com/coffee/bus/stats/entity/LineResult.java
  42. 1 1
      coffee-system/src/main/java/com/coffee/bus/stats/report/GenderStatsReport.java
  43. 1 1
      coffee-system/src/main/java/com/coffee/bus/web/handler/TenantIdHandler.java
  44. 0 2
      coffee-system/src/main/java/com/coffee/bus/websocket/HisConnectionHandler.java
  45. 0 2
      coffee-system/src/main/java/com/coffee/bus/websocket/listener/HisInfoListener.java
  46. 16 2
      coffee-system/src/main/resources/mapper/bus/BusDeviceAlarmMapper.xml
  47. 12 1
      coffee-system/src/main/resources/mapper/bus/BusDeviceHistoryMapper.xml
  48. 12 1
      coffee-system/src/main/resources/mapper/bus/BusEvaluationMapper.xml

+ 1 - 1
coffee-admin/src/main/resources/application-dev.yml

@@ -101,7 +101,7 @@ spring:
         max-wait: -1ms
 request:
   check:
-    enable: true
+    enable: false
     # 开启请求验签
     sign: true
     # 请求与服务器时间间隔不得超过 10分钟

+ 0 - 2
coffee-common/src/main/java/com/coffee/common/cache/message/RedisClusterCache.java

@@ -5,7 +5,6 @@ import org.springframework.data.redis.core.HashOperations;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.ScanOptions;
 import org.springframework.util.CollectionUtils;
-import reactor.core.publisher.Mono;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -61,7 +60,6 @@ public class RedisClusterCache<K, V> implements ClusterCache<K, V> {
 
     @Override
     public V getAndRemove(K key) {
-        // TODO: 2020/8/24 使用script实现?
         V result = hash.get(redisKey, key);
         remove(key);
         return result;

+ 2 - 6
coffee-common/src/main/java/com/coffee/common/entity/TenantGenericEntity.java

@@ -1,11 +1,7 @@
 package com.coffee.common.entity;
 
-import com.alibaba.fastjson.annotation.JSONField;
 import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.TableField;
-import com.coffee.common.config.mybatis.TenantNameHandler;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import lombok.Getter;
@@ -18,7 +14,7 @@ import lombok.Setter;
  * @Description 多租户父类
  * @createTime 2022年03月15日 17:02:00
  */
-public abstract class TenantGenericEntity<PK,TN> extends GenericEntity<PK> {
+public abstract class TenantGenericEntity<K,T> extends GenericEntity<K> {
 
     private static final long serialVersionUID = 1L;
 
@@ -26,5 +22,5 @@ public abstract class TenantGenericEntity<PK,TN> extends GenericEntity<PK> {
     @TableField(value = "tenant_id",fill = FieldFill.INSERT)
     @Setter
     @JsonSerialize(using = ToStringSerializer.class)
-    private TN tenantId;
+    private T tenantId;
 }

+ 3 - 1
coffee-framework/src/main/java/com/coffee/framework/config/SwaggerConfig.java

@@ -93,7 +93,9 @@ public class SwaggerConfig implements WebMvcConfigurer {
 
     private List<SecurityScheme> security() {
         return Arrays.asList(new ApiKey("BASE_TOKEN", "Authorization",   In.HEADER.toValue()),
-                new ApiKey("租户id", "Tenant-Id",   In.HEADER.toValue()));
+                new ApiKey("租户id", "Tenant-Id",   In.HEADER.toValue()),
+                new ApiKey("签名", "Sign",   In.HEADER.toValue()),
+                new ApiKey("时间戳", "Timestamp",   In.HEADER.toValue()));
     }
 
     /**

+ 3 - 1
coffee-framework/src/main/java/com/coffee/framework/web/service/impl/UserServiceImpl.java

@@ -4,6 +4,7 @@ import cn.dev33.satoken.spring.SpringMVCUtil;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.extra.spring.SpringUtil;
 import cn.hutool.http.useragent.UserAgent;
 import cn.hutool.http.useragent.UserAgentUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -161,7 +162,8 @@ public class UserServiceImpl implements IUserService {
             loginUser.setUsername(req.getMobile());
         }
         loginUser.setLoginTime(new Date());
-        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
+
+        HttpServletRequest request = SpringMVCUtil.getRequest();
         UserAgent userAgent = UserAgentUtil.parse(request.getHeader("User-Agent"));
         String ipAddress = IpUtil.getClientIp(request);
         loginUser.setIpAddress(ipAddress);

+ 1 - 1
coffee-system/src/main/java/com/coffee/bus/controller/BusEvaluationController.java

@@ -22,7 +22,7 @@ import org.springframework.web.bind.annotation.RestController;
  * @author lifang
  * @version 1.0.0
  * @ClassName BusHospitalController.java
- * @Description TODO
+ * @Description
  * @createTime 2022年03月19日 09:28:00
  */
 @RestController

+ 0 - 1
coffee-system/src/main/java/com/coffee/bus/controller/BusHospitalController.java

@@ -16,7 +16,6 @@ import com.coffee.bus.hospital.HospitalManagerRegister;
 import com.coffee.bus.hospital.his.strategy.HisStrategyEnum;
 import com.coffee.bus.hospital.script.ScriptManager;
 import com.coffee.bus.service.LocalBusHospitalService;
-import com.coffee.bus.service.dto.HospitalScriptResult;
 import com.coffee.common.crud.BaseService;
 import com.coffee.common.crud.controller.BaseCrudController;
 import com.coffee.common.exception.CustomException;

+ 0 - 2
coffee-system/src/main/java/com/coffee/bus/controller/BusHospitalLogController.java

@@ -1,10 +1,8 @@
 package com.coffee.bus.controller;
 
 import com.baomidou.mybatisplus.core.mapper.Mapper;
-import com.coffee.bus.entity.BusHospitalEntity;
 import com.coffee.bus.entity.BusHospitalLogEntity;
 import com.coffee.bus.service.LocalBusHospitalLogService;
-import com.coffee.bus.service.LocalBusHospitalService;
 import com.coffee.common.crud.BaseService;
 import com.coffee.common.crud.controller.BaseCrudController;
 import io.swagger.annotations.Api;

+ 12 - 6
coffee-system/src/main/java/com/coffee/bus/controller/BusPatientController.java

@@ -4,6 +4,8 @@ import cn.dev33.satoken.SaManager;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.dev33.satoken.stp.StpLogic;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.text.CharSequenceUtil;
+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;
@@ -231,13 +233,17 @@ public class BusPatientController  implements BaseQueryController<BusPatientEnti
         BusClinicEntity clinic =null;
         Boolean monitorType = vo.getMonitorType();
         if(Boolean.TRUE.equals(monitorType)){
-            String patientCode = vo.getPatientCode();
-            BusPatientEntity patient = patientService.getOne(new QueryWrapper<BusPatientEntity>().lambda().eq(BusPatientEntity::getCode, patientCode));
-            if(patient==null){
-                throw new CustomException("该病号信息不存在,请刷新后重试");
+            String infusionId = vo.getInfusionId();
+            if(CharSequenceUtil.isAllBlank(infusionId)){
+                String patientCode = vo.getPatientCode();
+                BusPatientEntity patient = patientService.getOne(new QueryWrapper<BusPatientEntity>().lambda().eq(BusPatientEntity::getCode, patientCode));
+                if(patient==null){
+                    throw new CustomException("该病号信息不存在,请刷新后重试");
+                }
+                clinic = clinicService.getById(patient.getClinicId());
+                infusionId=patient.getInfusionId();
             }
-            clinic = clinicService.getById(patient.getClinicId());
-            BusInfusionHistoryEntity infusion =infusionService.getById(patient.getInfusionId());
+            BusInfusionHistoryEntity infusion =infusionService.getById(infusionId);
             result.setInfusion(infusion);
         }else {
             String clinicId = vo.getClinicId();

+ 3 - 0
coffee-system/src/main/java/com/coffee/bus/controller/vo/MonitorDetailVo.java

@@ -25,4 +25,7 @@ public class MonitorDetailVo {
     @ApiModelProperty("病号")
     @NotNull(message = "病号不能为空")
     private String patientCode;
+
+    @ApiModelProperty("输注id,当输注id存在时,以输注id为主,在输注历史查询时使用")
+    private String infusionId;
 }

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

@@ -7,14 +7,13 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.ToString;
-import lombok.experimental.Accessors;
 import org.hibernate.validator.constraints.Length;
 
 /**
  * @author zsl
  * @version 1.0.0
  * @ClassName BusDrugEntity.java
- * @Description TODO
+ * @Description
  * @createTime 2022/4/189:22
  */
 

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

@@ -16,7 +16,7 @@ import java.util.*;
  * @author zsl
  * @version 1.0.0
  * @ClassName BusFormulaEntity.java
- * @Description TODO
+ * @Description
  * @createTime 2022/4/1817:30
  */
 

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

@@ -14,7 +14,7 @@ import java.util.Map;
  * @author lifang
  * @version 1.0.0
  * @ClassName BusHospitalConfigEntity.java
- * @Description TODO
+ * @Description
  * @createTime 2022年04月12日 10:07:00
  */
 @Data

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

@@ -2,10 +2,7 @@ package com.coffee.bus.entity;
 
 
 import cn.hutool.json.JSONObject;
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
 import com.coffee.common.entity.TenantGenericEntity;
 import com.coffee.common.exception.ExecuteResult;
 

+ 0 - 1
coffee-system/src/main/java/com/coffee/bus/hospital/HospitalManagerRegister.java

@@ -1,7 +1,6 @@
 package com.coffee.bus.hospital;
 
 import com.coffee.bus.registry.device.DeviceRegistry;
-import com.coffee.bus.registry.patient.PatientRegistry;
 import com.coffee.bus.hospital.script.ScriptManager;
 import com.coffee.bus.service.*;
 import com.coffee.bus.utils.WsPublishUtils;

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

@@ -1,7 +1,6 @@
 package com.coffee.bus.hospital.config;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.coffee.bus.entity.BusInfusionHistoryEntity;
 import com.coffee.bus.entity.BusPatientEntity;
 import com.coffee.bus.hospital.config.bean.FunctionAutoUndoConfig;
 import com.coffee.bus.hospital.config.bean.FunctionFinishMonitorConfig;

+ 0 - 1
coffee-system/src/main/java/com/coffee/bus/hospital/config/HospitalFunctionExtraConfigHandler.java

@@ -1,6 +1,5 @@
 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.hospital.config.bean.FunctionExtraConfig;

+ 0 - 1
coffee-system/src/main/java/com/coffee/bus/hospital/his/strategy/all/EqualsStrategyHandler.java

@@ -10,7 +10,6 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Comparator;
 import java.util.List;
 
 /**

+ 1 - 1
coffee-system/src/main/java/com/coffee/bus/registry/RegistryConstant.java

@@ -4,7 +4,7 @@ package com.coffee.bus.registry;
  * @author lifang
  * @version 1.0.0
  * @ClassName RegistryConstant.java
- * @Description TODO
+ * @Description
  * @createTime 2022年04月02日 16:30:00
  */
 public class RegistryConstant {

+ 0 - 3
coffee-system/src/main/java/com/coffee/bus/registry/device/ClusterDeviceRegistry.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.coffee.bus.entity.*;
 import com.coffee.bus.registry.RegistryConstant;
 import com.coffee.bus.service.*;
-import com.coffee.bus.websocket.listener.DeviceInfoListener;
 import com.coffee.common.cache.manager.ClusterConfigStorageManager;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -63,8 +62,6 @@ public class ClusterDeviceRegistry implements DeviceRegistry {
                 }
                 deviceOperator.setStartTime(lastInfusion.getStartTime());
                 deviceOperator.setStatus(lastInfusion.getRunState());
-            }else {
-                //todo 更新设备类型
             }
 
 

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

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.coffee.bus.controller.vo.ClinicStatsVo;
 import com.coffee.bus.entity.BusClinicEntity;
-import com.coffee.bus.entity.BusDeviceRunningEntity;
 import com.coffee.bus.entity.BusInfusionHistoryEntity;
 import com.coffee.bus.entity.BusPatientEntity;
 import com.coffee.bus.mapper.BusClinicMapper;
@@ -19,7 +18,6 @@ import com.coffee.common.crud.BaseService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.Assert;
@@ -30,7 +28,7 @@ import java.util.*;
  * @author lifang
  * @version 1.0.0
  * @ClassName LocalBusHospitalService.java
- * @Description TODO
+ * @Description
  * @createTime 2022年03月19日 09:27:00
  */
 @Service

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

@@ -4,7 +4,6 @@ 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.metadata.IPage;
-import com.coffee.bus.entity.BusClinicEntity;
 import com.coffee.bus.entity.BusDeviceAlarmEntity;
 import com.coffee.bus.entity.BusHospitalEntity;
 import com.coffee.bus.enums.DeviceAlarmEnum;

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

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Service;
  * @author lifang
  * @version 1.0.0
  * @ClassName LocalBusHospitalService.java
- * @Description TODO
+ * @Description
  * @createTime 2022年03月19日 09:27:00
  */
 @Service

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

@@ -2,7 +2,6 @@ package com.coffee.bus.service;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.text.CharSequenceUtil;
-import cn.hutool.core.util.StrUtil;
 import com.aliyuncs.iot.model.v20180120.QueryDeviceDetailResponse;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;

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

@@ -90,9 +90,7 @@ public class LocalBusHospitalConfigService extends BaseService<BusHospitalConfig
 
         try {
             this.save(otherConfig);
-        } finally {
-
-        }
+        }catch (Exception e){}
 
         BusHospitalConfigEntity undoConfig = new BusHospitalConfigEntity();
         undoConfig.setTenantId("1");
@@ -100,9 +98,7 @@ public class LocalBusHospitalConfigService extends BaseService<BusHospitalConfig
         undoConfig.setConfig(getUndoDefault());
         try {
             this.save(undoConfig);
-        } finally {
-
-        }
+        } catch (Exception e){}
     }
 
     public BusHospitalConfigEntity getDefaultConfig( ConfigEnum type){

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

@@ -46,7 +46,7 @@ import java.util.concurrent.TimeUnit;
  * @author lifang
  * @version 1.0.0
  * @ClassName LocalBusHospitalService.java
- * @Description TODO
+ * @Description
  * @createTime 2022年03月19日 09:27:00
  */
 @Service
@@ -217,12 +217,12 @@ public class LocalBusPatientService extends BaseService<BusPatientMapper, BusPat
 
     /**
      *
-     * 病人手动更新当前监控的临床信息 todo
+     * 病人手动更新当前监控的临床信息
      * @param clinic
      */
     @Transactional(rollbackFor = Exception.class)
     public void manualEdit(BusClinicEntity clinic) {
-        //先更新手术信息 todo
+        //先更新手术信息
         clinicService.updateById(clinic);
         //后更新病人信息
         BusPatientEntity patient = BusPatientEntity.of(clinic);

+ 1 - 2
coffee-system/src/main/java/com/coffee/bus/service/constant/LocalBusConMixService.java

@@ -6,7 +6,6 @@ import com.coffee.bus.entity.BusConMixEntity;
 import com.coffee.bus.enums.ConstantEnum;
 import com.coffee.bus.enums.ConstantMixEnum;
 import com.coffee.bus.mapper.BusConMixMapper;
-import com.coffee.common.crud.BaseService;
 import com.coffee.common.exception.CustomException;
 import com.coffee.common.util.RedissonUtil;
 import org.redisson.api.RMap;
@@ -23,7 +22,7 @@ import java.util.stream.Collectors;
  * @author lifang
  * @version 1.0.0
  * @ClassName LocalBusConMixService.java
- * @Description TODO
+ * @Description
  * @createTime 2022年03月19日 09:27:00
  */
 @Service

+ 2 - 0
coffee-system/src/main/java/com/coffee/bus/service/dto/AlarmQuery.java

@@ -24,6 +24,8 @@ public class AlarmQuery {
     @ApiModelProperty("设备id")
     @NotNull(message = "设备id不能为空")
     private String deviceId;
+    @ApiModelProperty("输注id")
+    private String infusionId;
     @ApiModelProperty("分页参数")
     @NotNull(message = "分页参数不能为空")
     private Page<BusDeviceAlarmEntity> page;

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

@@ -12,7 +12,7 @@ import java.util.Date;
  * @author lifang
  * @version 1.0.0
  * @ClassName ClinicStatsQueryResult.java
- * @Description TODO
+ * @Description
  * @createTime 2022年04月27日 16:55:00
  */
 @ApiModel("统计查询数据库结果")

+ 1 - 3
coffee-system/src/main/java/com/coffee/bus/service/dto/ClinicStatsReturnResult.java

@@ -4,9 +4,7 @@ import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.DateUtil;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import io.swagger.annotations.ApiOperation;
 import lombok.Data;
-import org.python.antlr.ast.Str;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
@@ -15,7 +13,7 @@ import java.util.*;
  * @author lifang
  * @version 1.0.0
  * @ClassName ClinicStatsResult.java
- * @Description TODO
+ * @Description
  * @createTime 2022年04月27日 16:16:00
  */
 @Data

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

@@ -9,7 +9,7 @@ import lombok.Data;
  * @author lifang
  * @version 1.0.0
  * @ClassName CombineAlarmResult.java
- * @Description TODO
+ * @Description
  * @createTime 2022年06月07日 09:50:00
  */
 @Data

+ 1 - 9
coffee-system/src/main/java/com/coffee/bus/service/dto/DeviceAlarmQuery.java

@@ -1,18 +1,10 @@
 package com.coffee.bus.service.dto;
 
-import com.baomidou.mybatisplus.annotation.FieldStrategy;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.coffee.bus.enums.DeviceAlarmEnum;
-import com.coffee.bus.enums.DeviceTypeEnum;
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.hibernate.validator.constraints.Length;
-
-import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.util.Date;
 
@@ -20,7 +12,7 @@ import java.util.Date;
  * @author zsl
  * @version 1.0.0
  * @ClassName DeviceAlarmQuery.java
- * @Description TODO
+ * @Description
  * @createTime 2022/5/1915:35
  */
 @ApiModel("设备使用")

+ 2 - 0
coffee-system/src/main/java/com/coffee/bus/service/dto/DeviceHistoryQuery.java

@@ -25,6 +25,8 @@ public class DeviceHistoryQuery {
     @ApiModelProperty("设备id")
     @NotNull(message = "设备id不能为空")
     private String deviceId;
+    @ApiModelProperty("输注id")
+    private String infusionId;
     @ApiModelProperty("分页参数")
     @NotNull(message = "分页参数不能为空")
     private Page<BusDeviceHistoryEntity> page;

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

@@ -1,6 +1,5 @@
 package com.coffee.bus.service.dto;
 
-import com.coffee.bus.enums.DeviceAlarmEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;

+ 2 - 1
coffee-system/src/main/java/com/coffee/bus/service/dto/EvalQuery.java

@@ -1,7 +1,6 @@
 package com.coffee.bus.service.dto;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.coffee.bus.entity.BusDeviceAlarmEntity;
 import com.coffee.bus.entity.BusEvaluationEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -25,6 +24,8 @@ public class EvalQuery {
     @ApiModelProperty("设备id")
     @NotNull(message = "设备id不能为空")
     private String deviceId;
+    @ApiModelProperty("输注id")
+    private String infusionId;
     @ApiModelProperty("分页参数")
     @NotNull(message = "分页参数不能为空")
     private Page<BusEvaluationEntity> page;

+ 1 - 3
coffee-system/src/main/java/com/coffee/bus/service/dto/HospitalScriptResult.java

@@ -1,7 +1,5 @@
 package com.coffee.bus.service.dto;
 
-import com.baomidou.mybatisplus.annotation.FieldStrategy;
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.coffee.bus.bean.Script;
 import com.coffee.bus.hospital.his.strategy.HisStrategyEnum;
 import io.swagger.annotations.ApiModelProperty;
@@ -13,7 +11,7 @@ import lombok.NoArgsConstructor;
  * @author lifang
  * @version 1.0.0
  * @ClassName HospitalScriptResult.java
- * @Description TODO
+ * @Description
  * @createTime 2022年05月26日 15:52:00
  */
 @Data

+ 1 - 3
coffee-system/src/main/java/com/coffee/bus/service/dto/PatientMonitorDetailResult.java

@@ -3,21 +3,19 @@ package com.coffee.bus.service.dto;
 import com.coffee.bus.entity.BusClinicEntity;
 import com.coffee.bus.entity.BusDeviceManualEntity;
 import com.coffee.bus.entity.BusInfusionHistoryEntity;
-import com.coffee.bus.entity.BusPatientEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
-import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 
 /**
  * @author lifang
  * @version 1.0.0
  * @ClassName PatientMonitorDetailResult.java
- * @Description TODO
+ * @Description
  * @createTime 2022年04月23日 11:39:00
  */
 @ApiModel("病人监控信息返回结果")

+ 1 - 2
coffee-system/src/main/java/com/coffee/bus/stats/CommonStats.java

@@ -13,7 +13,6 @@ import com.coffee.bus.stats.entity.TableResult;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.*;
-import java.util.concurrent.atomic.AtomicLong;
 import java.util.function.Consumer;
 import java.util.function.Function;
 import java.util.function.Predicate;
@@ -127,7 +126,7 @@ public interface CommonStats<T extends CombineResult> {
         List<String> time = result.getTime();
         List<BigDecimal> totalData=new ArrayList<>();
         //根据时间区间对镇痛方式进行统计
-        LineResult.LineContent<BigDecimal> lineContent = new LineResult.LineContent<BigDecimal>("均数");
+        LineResult.LineContent<BigDecimal> lineContent = new LineResult.LineContent<>("均数");
         groupByTime.forEach((timeRange,combineResults)->{
             List<BigDecimal> sources = combineResults.stream()
                     .peek(peek)

+ 32 - 0
coffee-system/src/main/java/com/coffee/bus/stats/analyse/AlarmStatsAnalyse.java

@@ -1,6 +1,7 @@
 package com.coffee.bus.stats.analyse;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.text.CharSequenceUtil;
 import com.coffee.bus.enums.DeviceAlarmEnum;
 import com.coffee.bus.enums.StatsAnalyseEnum;
@@ -17,6 +18,7 @@ import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.function.Predicate;
 import java.util.stream.Collectors;
 
 /**
@@ -56,11 +58,41 @@ public class AlarmStatsAnalyse implements CommonStats<CombineAlarmResult> {
         List<LineResult> result = new ArrayList<>();
         result.add(countLine(groupByTime));
         result.add(ratioLine(groupByTime));
+        //增加散点图
+//        result.add(alarmScatter(groupByTime));
+        result.add(addAlarmLine(groupByTime,
+                LineResult.of("analgesicPoor",false,false,"镇痛不足分析走势图"),
+                combineResult-> Boolean.TRUE.equals(combineResult.getWarnAnalgesicPoor()),
+                unit));
 
         //比率
         return result;
     }
 
+    /**
+     * 描述: 添加报警均数、最大值、最小值
+     * @author lifang
+     * @date 2022/6/11 16:27
+     * @param groupByTime
+     * @param result
+     * @param predicate
+     * @return LineResult
+     */
+    private LineResult addAlarmLine(Map<String, List<CombineAlarmResult>> groupByTime, LineResult result, Predicate<CombineAlarmResult> predicate,StatsTimeUnit unit) {
+        groupByTime.forEach((timeRange,combineResults)->{
+            //以天为单位
+            int totalSize = CollUtil.size(combineResults);
+
+        });
+        handleMixPolyLines(groupByTime,result,
+                combineResult -> { },
+                predicate,
+                combineResult -> BigDecimal.ONE);
+        result.setMax(null);
+        result.setMin(null);
+        return result;
+    }
+
     /**
      * 描述: 提示比率折线图
      * @author lifang

+ 127 - 0
coffee-system/src/main/java/com/coffee/bus/stats/entity/AlarmScatter.java

@@ -0,0 +1,127 @@
+package com.coffee.bus.stats.entity;
+
+import lombok.AllArgsConstructor;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.function.Function;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName AlarmScatter.java
+ * @Description <报警名称,<时间,报警次数>>
+ * @createTime 2022年06月11日 17:10:00
+ */
+public class AlarmScatter extends LinkedHashMap<String, Map<String, AlarmScatter.AlarmStatsByTime>> {
+    public Map<String, AlarmScatter.AlarmStatsByTime> getJam(String time) {
+        return this.computeIfAbsent("jam", initValue(time));
+    }
+
+    public void incrementJam(String time) {
+        incrementValue(this.getJam(time));
+    }
+
+    public Map<String, AlarmScatter.AlarmStatsByTime> getLimit(String time) {
+        return this.computeIfAbsent("limit", initValue(time));
+    }
+
+    public void incrementLimit(String time) {
+        incrementValue(this.getLimit(time));
+    }
+
+    public Map<String, AlarmScatter.AlarmStatsByTime> getNoBox(String time) {
+        return this.computeIfAbsent("noBox", initValue(time));
+    }
+
+    public void incrementNoBox(String time) {
+        incrementValue(this.getNoBox(time));
+    }
+
+    public Map<String, AlarmScatter.AlarmStatsByTime> getOutOfControl(String time) {
+        return this.computeIfAbsent("outOfControl", initValue(time));
+    }
+
+    public void incrementOutOfControl(String time) {
+        incrementValue(this.getOutOfControl(time));
+    }
+
+
+    public Map<String, AlarmScatter.AlarmStatsByTime> getAnalgesicPoor(String time) {
+        return this.computeIfAbsent("analgesicPoor", initValue(time));
+    }
+
+
+    public void incrementAnalgesicPoor(String time) {
+        incrementValue(this.getAnalgesicPoor(time));
+    }
+
+    public Map<String, AlarmScatter.AlarmStatsByTime> getNoSignal(String time) {
+        return this.computeIfAbsent("noSignal", initValue(time));
+    }
+
+    public void incrementNoSignal(String time) {
+        incrementValue(this.getNoSignal(time));
+    }
+
+
+    public Map<String, AlarmScatter.AlarmStatsByTime> getMachine(String time) {
+        return this.computeIfAbsent("machine",  initValue(time));
+    }
+
+    public void incrementMachine(String time) {
+        incrementValue(this.getMachine(time));
+    }
+
+    public Map<String, AlarmScatter.AlarmStatsByTime> getLowBattery(String time) {
+        return this.computeIfAbsent("lowBattery", initValue(time));
+    }
+
+
+    public void incrementLowBattery(String time) {
+        incrementValue(this.getLowBattery(time));
+    }
+
+    public Map<String, AlarmScatter.AlarmStatsByTime> getBubble(String time) {
+        return this.computeIfAbsent("bubble",  initValue(time));
+    }
+
+
+    public void incrementBubble(String time) {
+        incrementValue(this.getBubble(time));
+    }
+
+    public Map<String, AlarmScatter.AlarmStatsByTime> getLowInfusion(String time) {
+        return this.computeIfAbsent("lowInfusion",  initValue(time));
+    }
+
+    public void incrementLowInfusion(String time) {
+        incrementValue(this.getLowInfusion(time));
+    }
+
+    public Map<String, AlarmScatter.AlarmStatsByTime> getInfusionMax(String time) {
+        return this.computeIfAbsent("infusionMax", initValue(time));
+    }
+
+    public void incrementInfusionMax(String time) {
+        incrementValue(this.getInfusionMax(time));
+    }
+
+    private void incrementValue(Map<String, AlarmScatter.AlarmStatsByTime> map){
+
+    }
+
+
+    private Function<String, Map<String, AlarmScatter.AlarmStatsByTime>>  initValue(String time){
+        return  k->{
+            Map<String, AlarmScatter.AlarmStatsByTime> map = new LinkedHashMap<>();
+            map.computeIfAbsent(time,t->AlarmStatsByTime.of(time,0L));
+            return map;
+        };
+    }
+    @AllArgsConstructor(staticName = "of")
+    public static class AlarmStatsByTime{
+        private String time;
+        private Long count;
+    }
+}

+ 7 - 1
coffee-system/src/main/java/com/coffee/bus/stats/entity/LineResult.java

@@ -26,6 +26,8 @@ public class LineResult<V> {
     private boolean ratio;
     @ApiModelProperty("是否为柱状图")
     private boolean bar;
+    @ApiModelProperty("折线图变为散点图")
+    private boolean scatter;
     @ApiModelProperty("样本总数")
     private Integer sampleCount;
     @ApiModelProperty("最大值")
@@ -40,7 +42,11 @@ public class LineResult<V> {
     private String description;
 
     public static <T> LineResult<T> of(String id, boolean ratio, boolean bar, String description) {
-        return new LineResult<T>(id,new ArrayList<>(),new ArrayList<>(),ratio,bar,null,null,null,null,null,description);
+        return new LineResult<T>(id,new ArrayList<>(),new ArrayList<>(),ratio,bar,false,null,null,null,null,null,description);
+    }
+
+    public static <T> LineResult<T> of(String id, boolean ratio, boolean bar,boolean scatter, String description) {
+        return new LineResult<T>(id,new ArrayList<>(),new ArrayList<>(),ratio,bar,scatter,null,null,null,null,null,description);
     }
 
     @Data

+ 1 - 1
coffee-system/src/main/java/com/coffee/bus/stats/report/GenderStatsReport.java

@@ -23,7 +23,7 @@ import java.util.*;
  * @author lifang
  * @version 1.0.0
  * @ClassName GenderStatsReport.java
- * @Description TODO
+ * @Description
  * @createTime 2022年06月08日 09:09:00
  */
 @AllArgsConstructor

+ 1 - 1
coffee-system/src/main/java/com/coffee/bus/web/handler/TenantIdHandler.java

@@ -13,7 +13,7 @@ import javax.servlet.http.HttpServletResponse;
  * @author lifang
  * @version 1.0.0
  * @ClassName TenantIdHandler.java
- * @Description TODO
+ * @Description
  * @createTime 2022年04月19日 14:22:00
  */
 @Component

+ 0 - 2
coffee-system/src/main/java/com/coffee/bus/websocket/HisConnectionHandler.java

@@ -8,13 +8,11 @@ import com.coffee.bus.entity.BusHospitalEntity;
 import com.coffee.bus.hospital.his.HisScriptSession;
 import com.coffee.bus.hospital.his.HisScriptSessionManager;
 import com.coffee.bus.service.LocalBusHospitalService;
-import com.coffee.common.config.websocket.DefaultMessageListener;
 import com.coffee.common.config.websocket.MessagingRequest;
 import com.coffee.common.config.websocket.WebSocketConstant;
 import com.coffee.common.config.websocket.handler.Subscribe;
 import com.coffee.common.result.R;
 import lombok.AllArgsConstructor;
-import org.redisson.api.RPatternTopic;
 import org.springframework.stereotype.Component;
 import org.tio.core.ChannelContext;
 import org.tio.core.Tio;

+ 0 - 2
coffee-system/src/main/java/com/coffee/bus/websocket/listener/HisInfoListener.java

@@ -5,7 +5,6 @@ import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.coffee.bus.entity.BusClinicEntity;
 import com.coffee.bus.entity.BusHospitalEntity;
-import com.coffee.bus.entity.BusPatientEntity;
 import com.coffee.bus.hospital.his.strategy.HisStrategyHandler;
 import com.coffee.bus.hospital.his.strategy.HisStrategyManager;
 import com.coffee.bus.hospital.his.strategy.HisStrategyManagerRegister;
@@ -19,7 +18,6 @@ import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
-import java.util.Comparator;
 import java.util.List;
 
 /**

+ 16 - 2
coffee-system/src/main/resources/mapper/bus/BusDeviceAlarmMapper.xml

@@ -4,8 +4,22 @@
 
     <select id="pageQuery" parameterType="com.coffee.bus.service.dto.AlarmQuery" resultType="com.coffee.bus.entity.BusDeviceAlarmEntity">
         select a.* from
-        (select * from bus_device_alarm where alarm=1) as a
-        join (select * from bus_infusion_history where clinic_id=#{query.clinicId} and device_id=#{query.deviceId}) as h
+        (select * from bus_device_alarm
+        <where>
+            alarm=1
+            <if test="query.infusionId != null">
+                infusion_id=#{query.infusionId}
+            </if>
+        </where>) as a
+        join (select * from bus_infusion_history
+        <where>
+            <if test="query.clinicId != null">
+                and clinic_id=#{query.clinicId}
+            </if>
+            <if test="query.deviceId != null">
+                and device_id=#{query.deviceId})
+            </if>
+        </where>) as h
         on a.infusion_id=h.id
     </select>
 

+ 12 - 1
coffee-system/src/main/resources/mapper/bus/BusDeviceHistoryMapper.xml

@@ -6,7 +6,18 @@
     <select id="pageQuery" parameterType="com.coffee.bus.service.dto.DeviceHistoryQuery" resultType="com.coffee.bus.entity.BusDeviceHistoryEntity">
         select h.* from
          bus_device_history  as h
-        join (select * from bus_infusion_history where clinic_id=#{query.clinicId} and device_id=#{query.deviceId}) as i
+        join (select * from bus_infusion_history
+        <where>
+            <if test="query.clinicId !=null">
+                and clinic_id=#{query.clinicId}
+            </if>
+            <if test="query.deviceId !=null">
+                and deviceId=#{query.deviceId}
+            </if>
+            <if test="query.clinicId !=null">
+                and clinic_id=#{query.clinicId}
+            </if>
+        </where>) as i
         on h.infusion_id=i.id
         order by h.upload_time desc
     </select>

+ 12 - 1
coffee-system/src/main/resources/mapper/bus/BusEvaluationMapper.xml

@@ -6,7 +6,18 @@
     <select id="pageQuery" parameterType="com.coffee.bus.service.dto.EvalQuery" resultType="com.coffee.bus.entity.BusEvaluationEntity">
         select e.* from
          bus_evaluation  as e
-        join (select * from bus_infusion_history where clinic_id=#{query.clinicId} and device_id=#{query.deviceId}) as i
+        join (select * from bus_infusion_history
+         <where>
+        <if test="query.clinicId !=null">
+            and clinic_id=#{query.clinicId}
+        </if>
+        <if test="query.deviceId !=null">
+            and deviceId=#{query.deviceId}
+        </if>
+        <if test="query.clinicId !=null">
+            and clinic_id=#{query.clinicId}
+        </if>
+    </where>) as i
         on e.infusion_id=i.id
     </select>