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