From a21055c644b56fc44b56ed7e2bfe77a82e1b739d Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期四, 10 十月 2024 18:25:23 +0800
Subject: [PATCH] 检查类型 从 字典 换成 DB 表

---
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/vo/AppointmentRespVO.java |    1 -
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java                    |    5 +++--
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueService.java                        |    2 +-
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/appointment/AppointmentDO.java          |    1 -
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/checktype/CheckTypeMapper.java               |    9 ++++++++-
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java             |   17 +++++++++++++----
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/config/MySpringEventListener.java                      |   23 +----------------------
 7 files changed, 26 insertions(+), 32 deletions(-)

diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/config/MySpringEventListener.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/config/MySpringEventListener.java
index f9fab35..b469ee7 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/config/MySpringEventListener.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/config/MySpringEventListener.java
@@ -1,16 +1,12 @@
 package cn.lihu.jh.module.ecg.config;
 
-import cn.lihu.jh.framework.common.exception.ServiceException;
-import cn.lihu.jh.framework.common.exception.enums.GlobalErrorCodeConstants;
 import cn.lihu.jh.module.ecg.Utils;
-import cn.lihu.jh.module.ecg.enums.ErrorCodeConstants;
 import cn.lihu.jh.module.ecg.service.callingscreen.BigScreenConfig;
 import cn.lihu.jh.module.ecg.service.callingscreen.CallingScreenService;
 import cn.lihu.jh.module.ecg.service.config.EcgConfigService;
 import cn.lihu.jh.module.ecg.service.queue.QueueService;
 import cn.lihu.jh.module.infra.api.config.ConfigApi;
 import cn.lihu.jh.module.system.api.dict.DictDataApi;
-import cn.lihu.jh.module.system.api.dict.dto.DictDataRespDTO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.boot.context.event.ApplicationStartedEvent;
 import org.springframework.context.event.EventListener;
@@ -18,10 +14,7 @@
 
 import javax.annotation.Resource;
 import java.time.LocalTime;
-import java.util.Arrays;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import static cn.lihu.jh.module.ecg.Constants.*;
 
@@ -48,21 +41,7 @@
     public void onApplicationEvent(ApplicationStartedEvent event) {
         log.info("搴旂敤鍚姩瀹屾垚锛岀郴缁熷垵濮嬨�傘�傘��");
 
-        String strQueueReadyMax = configApi.getConfigValueByKey(ECG_QUEUE_READY_MAX_KEY);
-        int[] queueReadyMax = Arrays.stream(strQueueReadyMax.split(","))
-                .mapToInt(Integer::parseInt)
-                .toArray();
-        List<DictDataRespDTO> dictDataRespDTOList = dictDataApi.getDictDataList("ecg_check_type");
-        if ( dictDataRespDTOList.size() != queueReadyMax.length) {
-            log.error(ErrorCodeConstants.ECG_CONFIG_ERROR.getMsg());
-        }
-
-        Integer checkTypeNum = dictDataRespDTOList.size() < queueReadyMax.length ? dictDataRespDTOList.size() : queueReadyMax.length;
-        Map max = new HashMap<Integer, Integer>();
-        for (int i=0; i<checkTypeNum; i++) {
-            max.put( Integer.valueOf(dictDataRespDTOList.get(i).getValue()), queueReadyMax[i]);
-        }
-        queueService.setCheckTypeReadyMax( max );
+        queueService.initCheckType();
 
         BigScreenConfig bigScreenConfig = new BigScreenConfig();
         Integer waitingSize = Integer.valueOf(configApi.getConfigValueByKey(ECG_SCREEN_PANE_WAITING_KEY));
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/vo/AppointmentRespVO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/vo/AppointmentRespVO.java
index 39348f9..018c589 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/vo/AppointmentRespVO.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/vo/AppointmentRespVO.java
@@ -89,7 +89,6 @@
 
     @Schema(description = "棰勭害妫�鏌ョ被鍨�", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
     @ExcelProperty(value = "棰勭害妫�鏌ョ被鍨�", converter = DictConvert.class)
-    @DictFormat("ecg_check_type") // TODO 浠g爜浼樺寲锛氬缓璁缃埌瀵瑰簲鐨� DictTypeConstants 鏋氫妇绫讳腑
     private Byte bookCheckType;
 
     @Schema(description = "棰勭害鏉ユ簮锛歑绯荤粺銆佹姢澹墜鍔ㄩ绾�", requiredMode = Schema.RequiredMode.REQUIRED)
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/appointment/AppointmentDO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/appointment/AppointmentDO.java
index be21885..48203dd 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/appointment/AppointmentDO.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/appointment/AppointmentDO.java
@@ -107,7 +107,6 @@
     /**
      * 棰勭害妫�鏌ョ被鍨�
      *
-     * 鏋氫妇 {@link TODO ecg_check_type 瀵瑰簲鐨勭被}
      */
     private Byte bookCheckType;
     /**
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/checktype/CheckTypeMapper.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/checktype/CheckTypeMapper.java
index 7eede30..987d12e 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/checktype/CheckTypeMapper.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/checktype/CheckTypeMapper.java
@@ -6,7 +6,9 @@
 import cn.lihu.jh.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.lihu.jh.framework.mybatis.core.mapper.BaseMapperX;
 import cn.lihu.jh.module.ecg.dal.dataobject.checktype.CheckTypeDO;
-import org.apache.ibatis.annotations.Mapper;
+import cn.lihu.jh.module.ecg.dal.dataobject.room.RoomDO;
+import cn.lihu.jh.module.ecg.enums.BedStatusEnum;
+import org.apache.ibatis.annotations.*;
 import cn.lihu.jh.module.ecg.controller.admin.checktype.vo.*;
 
 /**
@@ -27,4 +29,9 @@
                 .orderByDesc(CheckTypeDO::getId));
     }
 
+    @Select("<script> " +
+              "SELECT * FROM lihu.check_type;" +
+            "</script>")
+    List<CheckTypeDO> simpleCheckTypeList();
+
 }
\ No newline at end of file
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueService.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueService.java
index ec540b2..6d62b73 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueService.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueService.java
@@ -20,7 +20,7 @@
  */
 public interface QueueService {
 
-    void setCheckTypeReadyMax(Map<Integer, Integer> max);
+    void initCheckType();
     void startBiz();
     void closeBiz();
 
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java
index bc007a9..7e18a19 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java
@@ -7,6 +7,7 @@
 import cn.lihu.jh.module.ecg.controller.admin.room.vo.MonitorInfoVO;
 import cn.lihu.jh.module.ecg.dal.dataobject.devrent.DevRentDO;
 import cn.lihu.jh.module.ecg.dal.mysql.call.CallMapper;
+import cn.lihu.jh.module.ecg.dal.mysql.checktype.CheckTypeMapper;
 import cn.lihu.jh.module.ecg.dal.mysql.devrent.DevRentMapper;
 import cn.lihu.jh.module.ecg.enums.DevRentStateEnum;
 import cn.lihu.jh.module.system.api.oauth2.OAuth2TokenApi;
@@ -348,8 +349,8 @@
         return patientStatisticVO;
     }
 
-    public void setCheckTypeReadyMax(Map<Integer, Integer> max) {
-        queueServiceTxFunctions.setCheckTypeReadyMax( max );
+    public void initCheckType() {
+        queueServiceTxFunctions.initCheckType( );
     }
 
     public void startBiz() {
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java
index 7d5d6e3..7d4f6d3 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java
@@ -4,10 +4,12 @@
 import cn.lihu.jh.framework.common.exception.enums.GlobalErrorCodeConstants;
 import cn.lihu.jh.framework.common.util.object.BeanUtils;
 import cn.lihu.jh.module.ecg.controller.admin.room.vo.MonitorInfoVO;
+import cn.lihu.jh.module.ecg.dal.dataobject.checktype.CheckTypeDO;
 import cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueDO;
 import cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueStatisticDO;
 import cn.lihu.jh.module.ecg.dal.dataobject.room.RoomDO;
 import cn.lihu.jh.module.ecg.dal.mysql.call.CallMapper;
+import cn.lihu.jh.module.ecg.dal.mysql.checktype.CheckTypeMapper;
 import cn.lihu.jh.module.ecg.dal.mysql.devrent.DevRentMapper;
 import cn.lihu.jh.module.ecg.dal.mysql.queue.queueMapper;
 import cn.lihu.jh.module.ecg.dal.mysql.room.RoomMapper;
@@ -22,6 +24,7 @@
 import java.util.*;
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
 
 import static cn.lihu.jh.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.lihu.jh.framework.common.pojo.CommonResult.error;
@@ -52,6 +55,10 @@
     @Resource
     private DevRentMapper devRentMapper;
 
+    @Resource
+    private CheckTypeMapper checkTypeMapper;
+
+
     AtomicInteger openingFlag = new AtomicInteger(0);
     AtomicInteger curSeqNum = new AtomicInteger(0);
 
@@ -63,7 +70,7 @@
     // 鍩轰簬绫诲瀷鐨�, 瑁呮満鍑嗗鐨勪紭鍏堥槦鍒�
     Map<Integer, PriorityBlockingQueue<BedQueueBO>> mapReadyPriorityQueue = new HashMap();
 
-    Map<Integer, Integer> mapCheckTypeVsReadyMax = null;
+    Map<Integer, CheckTypeDO> mapCheckTypeVsReadyMax = null;
 
     /**
      * 宸插叧闂� 鎴栬�� 鍏抽棴涓紝鍙互寮�閫氬伐浣�
@@ -402,8 +409,9 @@
         openingFlag.set(flag);
     }
 
-    public void setCheckTypeReadyMax(Map<Integer, Integer> max) {
-        mapCheckTypeVsReadyMax = max;
+    public void initCheckType() {
+        List<CheckTypeDO> checkTypeDOList = checkTypeMapper.simpleCheckTypeList();
+        mapCheckTypeVsReadyMax = checkTypeDOList.stream().collect(Collectors.toMap(CheckTypeDO::getValue, checkType -> checkType));
     }
 
     public BedQueueBO getBedQueueBO(Long roomId, String bedNo) {
@@ -429,7 +437,8 @@
         Integer[] checkTypes = roomDO.getCheckTypes();
         Integer ret = 0;
         for (int i=0; i<checkTypes.length; i++) {
-            Integer tmp = mapCheckTypeVsReadyMax.get(checkTypes[i]);
+            CheckTypeDO checkTypeDO = mapCheckTypeVsReadyMax.get(checkTypes[i]);
+            Integer tmp = checkTypeDO.getReadyNum();
             ret = ret < tmp ? tmp : ret;  //鍙栧ぇ鍊�
         }
         return ret;

--
Gitblit v1.9.3