From e458133f5db4afe2e497af8ac3e1fc29bbc979aa Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期五, 27 九月 2024 14:52:29 +0800 Subject: [PATCH] bug fix : 开启工位 提示工位队列已经存在 --- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 54 insertions(+), 6 deletions(-) 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 6c6136a..697126a 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 @@ -6,8 +6,14 @@ import javax.annotation.Resource; 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.devrent.DevRentMapper; +import cn.lihu.jh.module.ecg.enums.DevRentStateEnum; +import cn.lihu.jh.module.system.api.oauth2.OAuth2TokenApi; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; import org.springframework.validation.annotation.Validated; @@ -42,10 +48,19 @@ public class QueueServiceImpl implements QueueService { @Resource + private OAuth2TokenApi oAuth2TokenApi; + + @Resource private queueMapper queueMapper; @Resource private RoomMapper roomMapper; + + @Resource + private CallMapper callMapper; + + @Resource + private DevRentMapper devRentMapper; AtomicInteger openingFlag = new AtomicInteger(0); AtomicInteger curSeqNum = new AtomicInteger(0); @@ -89,8 +104,8 @@ } @Override - public ErrorCode startBedOpen(Long roomId, String bedNo) { - Future<ErrorCode> future = singleThreadExecutor.submit( new BedOpenCallable(this, roomId, bedNo)); + public ErrorCode startBedOpen(Long roomId, String roomName, String bedNo) { + Future<ErrorCode> future = singleThreadExecutor.submit( new BedOpenCallable(this, roomId, roomName, bedNo)); try { ErrorCode ret = future.get(); @@ -234,6 +249,15 @@ } @Override + public void startResetRoom() { + singleThreadExecutor.execute( () -> { + resetRoom(); + bedReload(); + monitorInfo(); + }); + } + + @Override public MonitorInfoVO getMonitorInfo() { MonitorInfoVO monitorInfoVO = new MonitorInfoVO(); monitorInfoVO.setOpeningFlag( openingFlag.get() ); @@ -249,7 +273,7 @@ * @return */ @Override - public ErrorCode bedOpen(Long roomId, String bedNo) { + public ErrorCode bedOpen(Long roomId, String roomName, String bedNo) { BedQueueBO bedQueueBO2 = mapBedVsQueue.get(String.format("%09d%s", roomId, bedNo)); if (null != bedQueueBO2) { log.error("bedOpen mapBedVsQueue has existed. " + roomId + " " + bedNo); @@ -272,6 +296,7 @@ // 鏂板宸ヤ綅 浼樺厛闃熷垪 BedQueueBO bedQueueBO = new BedQueueBO(); bedQueueBO.setRoomId(roomId); + bedQueueBO.setRoomName(roomName); bedQueueBO.setBedNo(bedNo); bedQueueBO.setMaxQueueNum(queueReadyMax); bedQueueBO.setQueueNum(new AtomicInteger(queueDOList.size())); @@ -456,7 +481,6 @@ } /** - * 锛侊紒寮�璇婃湡闂达紝涓嶈兘鎵ц杩欎釜鏂规硶锛屽惁鍒欎細鏈� P0 闂 * 1. 姣忓ぉ寮�璇婂墠 浠嶥B鍚屾宸ヤ綅鐨勬偅鑰呴槦鍒楁暟鎹埌 宸ヤ綅浼樺厛闃熷垪 * 2. 鏈嶅姟杩愮淮閲嶅惎鏃� */ @@ -467,6 +491,8 @@ // 娓呴櫎闈炲綋澶╃殑鎺掗槦浜哄憳 queueMapper.clearQueue(); + // 娓呴櫎闈炲綋澶╃殑璇煶鍙彿璁板綍 + callMapper.clearCall(); // 浠嶥B 鑾峰彇 宸ヤ綅鍒楄〃 List<BedStatusEnum> bedStatusEnumList = new ArrayList<BedStatusEnum>(); @@ -502,8 +528,7 @@ } /** - * TODO 鏂板紑闃熷垪鏃讹紝闇�瑕佹妸鎺掗槦涓殑浜� 杞埌 灏辫瘖鍑嗗 鐘舵�� - * 绛夊埌鍙栦笅涓�涓� 鎺掗槦涓汉鍛� 鐨勯�昏緫瀹屾垚鍚庯紝鍐嶅洖鏉ヤ笉閿� + * */ public void hurryup() { if (0 == openingFlag.get()) @@ -577,10 +602,15 @@ * @param queueSaveReqVO */ @Override + @Transactional public void queue(QueueSaveReqVO queueSaveReqVO) { queueSaveReqVO.setStatus(QueueStatusEnum.WAITING.getStatus()); //鎺掗槦涓� QueueDO queue = BeanUtils.toBean(queueSaveReqVO, QueueDO.class); queueMapper.insert(queue); + + DevRentDO devRent = BeanUtils.toBean(queueSaveReqVO, DevRentDO.class); + devRent.setState( DevRentStateEnum.FREE.getState() ); + devRentMapper.insert(devRent); startHurryUp(); } @@ -685,4 +715,22 @@ + " opening " + openingFlag.get()); } + @Override + public RoomDO getDocRoomInfo(Long docId) { + return roomMapper.getRoomByDocId(docId); + } + + public void resetRoom() { + // 韪㈠嚭鍦ㄥ骇鐨勫尰鐢� + List<BedStatusEnum> bedStatusEnumList = new ArrayList<BedStatusEnum>(); + bedStatusEnumList.add(BedStatusEnum.DOCTOR_ON); + bedStatusEnumList.add(BedStatusEnum.PAUSE); + List<RoomDO> roomDOList = roomMapper.simpleRoomList(bedStatusEnumList); + List<Long> userIdList = roomDOList.stream().map(roomDO -> roomDO.getDocId()).toList(); + oAuth2TokenApi.tick(userIdList); + + // 鍏抽棴鎵�鏈夊伐浣� + Integer ret = roomMapper.resetRoom(BedStatusEnum.CLOSED.getStatus()); + } + } -- Gitblit v1.9.3