From e86481b3a32200d83fdcdbca826b72e3776ae5cd Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期六, 12 十月 2024 14:23:55 +0800 Subject: [PATCH] 装机功能 相关 待续 --- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java | 96 ++++++++++++++++++++++++++++++++++++----------- 1 files changed, 73 insertions(+), 23 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 f5224de..4fa8e7c 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 @@ -2,7 +2,6 @@ import java.util.*; import java.util.concurrent.*; -import java.util.concurrent.atomic.AtomicInteger; import javax.annotation.Resource; import cn.lihu.jh.module.ecg.controller.admin.room.vo.MonitorInfoVO; @@ -14,24 +13,20 @@ 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; -import cn.lihu.jh.framework.common.exception.enums.GlobalErrorCodeConstants; import cn.lihu.jh.module.ecg.dal.dataobject.room.RoomDO; import cn.lihu.jh.framework.common.exception.ErrorCode; import cn.lihu.jh.framework.common.pojo.CommonResult; import cn.lihu.jh.module.ecg.controller.admin.room.vo.RoomRespVO; import cn.lihu.jh.module.ecg.dal.dataobject.queue.BedQueueStatisticDO; -import cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueStatisticDO; import cn.lihu.jh.module.ecg.dal.mysql.room.RoomMapper; -import cn.lihu.jh.module.ecg.enums.BedStatusEnum; import cn.lihu.jh.module.ecg.enums.QueueStatusEnum; import cn.lihu.jh.module.ecg.controller.admin.queue.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueDO; import cn.lihu.jh.framework.common.pojo.PageResult; import cn.lihu.jh.framework.common.util.object.BeanUtils; -import cn.lihu.jh.module.ecg.dal.mysql.queue.queueMapper; +import cn.lihu.jh.module.ecg.dal.mysql.queue.QueueMapper; import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.*; import static cn.lihu.jh.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.lihu.jh.framework.common.pojo.CommonResult.error; @@ -54,7 +49,7 @@ private OAuth2TokenApi oAuth2TokenApi; @Resource - private queueMapper queueMapper; + private QueueMapper queueMapper; @Resource private RoomMapper roomMapper; @@ -223,9 +218,35 @@ } @Override - public void startHurryUp() { + public ErrorCode startNextInstallPatient(Long roomId, String bedNo) { + Future<ErrorCode> future = singleThreadExecutor.submit( + new BedDoctorNextInstallPatientCallable(queueServiceTxFunctions, roomId, bedNo) + ); + + try { + ErrorCode ret = future.get(); + return ret; + } catch (InterruptedException e) { + e.printStackTrace(); + } catch (ExecutionException e) { + e.printStackTrace(); + } + + System.out.println("startNextInstallPatient ========"); + return ECG_INNER_ERROR; + } + + @Override + public void startHurryUpOneBed(Long roomId, String bedNo) { singleThreadExecutor.execute( () -> { - queueServiceTxFunctions.hurryup(); + queueServiceTxFunctions.hurryupOneBed(roomId, bedNo); + }); + } + + @Override + public void startHurryUpOneCheckType(Integer checkType) { + singleThreadExecutor.execute( () -> { + queueServiceTxFunctions.hurryupOneCheckType( checkType ); }); } @@ -233,15 +254,15 @@ public void startBedReload() { singleThreadExecutor.execute( () -> { queueServiceTxFunctions.bedReload(); - queueServiceTxFunctions.hurryup(); + queueServiceTxFunctions.hurryupAllBed(); queueServiceTxFunctions.monitorInfo(); }); } @Override - public void startResetRoom() { + public void startResetRoom(Boolean needCloseBed) { singleThreadExecutor.execute( () -> { - queueServiceTxFunctions.resetRoom(); + queueServiceTxFunctions.resetRoom(needCloseBed); queueServiceTxFunctions.bedReload(); queueServiceTxFunctions.monitorInfo(); }); @@ -254,7 +275,7 @@ @Override public CommonResult<RoomRespVO> getRoom(Long roomId, String bedNo, Long docId) { - RoomDO roomDO = roomMapper.getRoom(roomId, bedNo, docId); + RoomDO roomDO = roomMapper.getRoomByRoomBedDoc(roomId, bedNo, docId); if (null == roomDO) { return error(ROOM_NOT_SIT); } @@ -301,27 +322,55 @@ devRent.setState( DevRentStateEnum.FREE.getState() ); devRentMapper.insert(devRent); - startHurryUp(); + startHurryUpOneCheckType( queue.getBookCheckType() ); } + // 甯歌妫�鏌� 鍙彿 + @Override public void finishNextPatient(Long roomId, String bedNo) { // 浠� DB 鎶� 灏辫瘖涓殑浜� 璁剧疆涓哄氨璇婂畬鎴� - Integer ret = queueMapper.updateQueueStatus(roomId, bedNo, + Integer ret = queueMapper.updateBedQueueStatus(roomId, bedNo, QueueStatusEnum.ONSTAGE.getStatus(), QueueStatusEnum.FINISH.getStatus()); startNextPatient(roomId, bedNo); } + // 棰嗙敤 鍙彿 + @Override + public void finishReceiveNextPatient(Long roomId, String bedNo) { + // 浠� DB 鎶� 灏辫瘖涓殑浜� 璁剧疆涓哄氨璇婂畬鎴� + Integer ret = queueMapper.updateBedQueueStatus(roomId, bedNo, + QueueStatusEnum.ONSTAGE.getStatus(), QueueStatusEnum.RECEIVED.getStatus()); + + startNextPatient(roomId, bedNo); + } + + // 瑁呮満 鍙彿 + @Override + public void finishInstallNextPatient(Long roomId, String bedNo) { + // 浠� DB 鎶� [瀹夎涓璢 鐨勪汉 璁剧疆涓� [宸插氨璇奭 + Integer ret = queueMapper.updateBedQueueStatus(roomId, bedNo, + QueueStatusEnum.INSTALLING.getStatus(), QueueStatusEnum.FINISH.getStatus()); + + startNextInstallPatient(roomId, bedNo); + } + public void passNextPatient(Long roomId, String bedNo) { // 浠� DB 鎶� 灏辫瘖涓殑浜� 璁剧疆涓鸿繃鍙� - Integer ret = queueMapper.updateQueueStatus(roomId, bedNo, + Integer ret = queueMapper.updateBedQueueStatus(roomId, bedNo, QueueStatusEnum.ONSTAGE.getStatus(), QueueStatusEnum.PASSED.getStatus()); startNextPatient(roomId, bedNo); } - public List<QueueDO> getDoctorQueueByStatus(Long roomId, String bedNo, List<Byte> statusList) { - List<QueueDO> queueDOList = queueMapper.getDoctorQueueByStatus(roomId, bedNo, statusList); + public List<QueueDO> getBedQueueByStatus(Long roomId, String bedNo, List<Byte> statusList) { + List<QueueDO> queueDOList = queueMapper.getBedQueueByStatus(roomId, bedNo, statusList); + return queueDOList; + } + + @Override + public List<QueueDO> getRoomQueueByStatus(Long roomId, List<Byte> statusList) { + List<QueueDO> queueDOList = queueMapper.getRoomQueueByStatus(roomId, statusList); return queueDOList; } @@ -346,9 +395,8 @@ return patientStatisticVO; } - @Override - public void setQueueReadyMax(Integer max) { - queueServiceTxFunctions.setQueueReadyMax( max ); + public void initCheckType() { + queueServiceTxFunctions.initCheckType( ); } public void startBiz() { @@ -368,14 +416,16 @@ public Integer recallPatient(Long roomId, String bedNo, String patId) { Integer updateNum = queueMapper.recallPassedPatient(roomId, bedNo, patId, QueueStatusEnum.PASSED.getStatus(), QueueStatusEnum.RECALLED.getStatus()); - startHurryUp(); + startHurryUpOneBed(roomId, bedNo); return updateNum; } @Override public Integer patientJump(String patId, Byte jumped) { Integer updateNum = queueMapper.queueJump(patId, QueueStatusEnum.WAITING.getStatus(), jumped); - startHurryUp(); + + QueueDO queueDO = queueMapper.getQueueByPatId(patId); + startHurryUpOneCheckType(Integer.valueOf(queueDO.getBookCheckType())); return updateNum; } -- Gitblit v1.9.3