From c48f179be89343dc1620bfa147433bfe87d9bed3 Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期一, 11 十一月 2024 17:29:50 +0800 Subject: [PATCH] 检查项-亲和性处理 --- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java | 62 +++++++++++++++++++++++++++++-- 1 files changed, 58 insertions(+), 4 deletions(-) diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java index 4d11472..278c4cc 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java @@ -3,14 +3,17 @@ import cn.lihu.jh.framework.common.pojo.CommonResult; import cn.lihu.jh.framework.security.core.util.SecurityFrameworkUtils; import cn.lihu.jh.module.ecg.controller.admin.jobrecord.vo.JobRecordSaveReqVO; +import cn.lihu.jh.module.ecg.dal.dataobject.checktype.CheckTypeDO; import cn.lihu.jh.module.ecg.dal.dataobject.devmanage.DeviceDO; import cn.lihu.jh.module.ecg.dal.dataobject.jobrecord.JobRecordDO; +import cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueDO; import cn.lihu.jh.module.ecg.dal.mysql.devmanage.DeviceMapper; import cn.lihu.jh.module.ecg.dal.mysql.jobrecord.JobRecordMapper; import cn.lihu.jh.module.ecg.dal.mysql.queue.QueueMapper; import cn.lihu.jh.module.ecg.enums.DevRentStateEnum; import cn.lihu.jh.module.ecg.enums.DevStateEnum; import cn.lihu.jh.module.ecg.enums.QueueStatusEnum; +import cn.lihu.jh.module.ecg.service.queue.QueueServiceTxFunctions; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; @@ -40,6 +43,9 @@ @Service @Validated public class DevRentServiceImpl implements DevRentService { + + @Resource + QueueServiceTxFunctions queueServiceTxFunctions; @Resource private DevRentMapper devRentMapper; @@ -183,8 +189,39 @@ } // 鏇存柊..闃熷垪鐘舵�� - queueMapper.updateBedQueueStatus(createReqVO.getRoomId(), createReqVO.getBedNo(), - QueueStatusEnum.ONSTAGE.getStatus(), QueueStatusEnum.RECEIVED.getStatus()); + //queueMapper.updateBedQueueStatus(createReqVO.getRoomId(), createReqVO.getBedNo(), + // QueueStatusEnum.ONSTAGE.getStatus(), QueueStatusEnum.RECEIVED.getStatus()); + + QueueDO firstOnStageQueueItem = queueMapper.getFirstItemByBedAndStatus(createReqVO.getRoomId(), createReqVO.getBedNo(), QueueStatusEnum.ONSTAGE.getStatus()); + CheckTypeDO checkTypeDO = queueServiceTxFunctions.getCheckTypeItem( firstOnStageQueueItem.getBookCheckType() ); + + // QueueStatusEnum.ONSTAGE => QueueStatusEnum.RECEIVED + firstOnStageQueueItem.setStatus(QueueStatusEnum.RECEIVED.getStatus()); // 榛樿鐘舵�� 璁剧疆 + // 妫�鏌ラ」鐩�.浜插拰鎬� 澶勭悊閫昏緫 + if (checkTypeDO.getAffinityCheckTypes().length > 0) { + List<QueueDO> affinityInstallingItems = queueMapper.getCurPatGivenCheckTypesAndStatus(firstOnStageQueueItem.getPatId(), checkTypeDO.getAffinityCheckTypes(), QueueStatusEnum.INSTALLING.getStatus()); + if (!affinityInstallingItems.isEmpty()) { + firstOnStageQueueItem.setStatus(QueueStatusEnum.AFFINITY_RECEIVED.getStatus()); + } + } + queueMapper.updateById( firstOnStageQueueItem ); + + // 妫�鏌ラ」鐩�.浜插拰鎬� 澶勭悊閫昏緫 + if (checkTypeDO.getAffinityCheckTypes().length > 0) { + List<QueueDO> affinityReadyItems = queueMapper.getCurPatGivenCheckTypesAndStatus(firstOnStageQueueItem.getPatId(), checkTypeDO.getAffinityCheckTypes(), QueueStatusEnum.READY.getStatus()); + if (!affinityReadyItems.isEmpty()) { + QueueDO tmpQueueDO = affinityReadyItems.get(0); + tmpQueueDO.setStatus(QueueStatusEnum.ONSTAGE.getStatus()); + queueMapper.updateById(tmpQueueDO); + } else { + List<QueueDO> affinityAffinityWaitingItems = queueMapper.getCurPatGivenCheckTypesAndStatus(firstOnStageQueueItem.getPatId(), checkTypeDO.getAffinityCheckTypes(), QueueStatusEnum.AFFINITY_WAITING.getStatus()); + if (!affinityAffinityWaitingItems.isEmpty()) { + QueueDO tmpQueueDO = affinityAffinityWaitingItems.get(0); + tmpQueueDO.setStatus(QueueStatusEnum.ONSTAGE.getStatus()); + queueMapper.updateById(tmpQueueDO); + } + } + } return CommonResult.success(rent_id); } @@ -257,8 +294,25 @@ } // 鏇存柊..闃熷垪鐘舵�� - queueMapper.updateBedQueueStatus(createReqVO.getRoomId(), createReqVO.getBedNo(), - QueueStatusEnum.INSTALLING.getStatus(), QueueStatusEnum.FINISH.getStatus()); + //queueMapper.updateBedQueueStatus(createReqVO.getRoomId(), createReqVO.getBedNo(), + // QueueStatusEnum.INSTALLING.getStatus(), QueueStatusEnum.FINISH.getStatus()); + + QueueDO firstInstallingQueueItem = queueMapper.getFirstItemByBedAndStatus(createReqVO.getRoomId(), + createReqVO.getBedNo(), QueueStatusEnum.INSTALLING.getStatus()); + // QueueStatusEnum.INSTALLING => QueueStatusEnum.FINISH + firstInstallingQueueItem.setStatus(QueueStatusEnum.FINISH.getStatus()); // 榛樿鐘舵�� 璁剧疆 + queueMapper.updateById( firstInstallingQueueItem ); + + // 妫�鏌ラ」鐩�.浜插拰鎬� 澶勭悊閫昏緫 + CheckTypeDO checkTypeDO = queueServiceTxFunctions.getCheckTypeItem( firstInstallingQueueItem.getBookCheckType() ); + if (checkTypeDO.getAffinityCheckTypes().length > 0) { + List<QueueDO> affinityAffinityReceivedItems = queueMapper.getCurPatGivenCheckTypesAndStatus(firstInstallingQueueItem.getPatId(), checkTypeDO.getAffinityCheckTypes(), QueueStatusEnum.AFFINITY_RECEIVED.getStatus()); + if (!affinityAffinityReceivedItems.isEmpty()) { + QueueDO tmpQueueDO = affinityAffinityReceivedItems.get(0); + tmpQueueDO.setStatus(QueueStatusEnum.INSTALLING.getStatus()); + queueMapper.updateById(tmpQueueDO); + } + } return CommonResult.success(rent_id); } -- Gitblit v1.9.3