eight
2024-11-11 c116b3cd452dcb3de02935711a1ca3441382657d
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java
@@ -6,6 +6,7 @@
import cn.lihu.jh.module.ecg.Utils;
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.devrent.DevRentDO;
import cn.lihu.jh.module.ecg.dal.mysql.call.CallMapper;
import cn.lihu.jh.module.ecg.dal.mysql.devrent.DevRentMapper;
@@ -197,7 +198,7 @@
            e.printStackTrace();
        }
        System.out.println("startBedDoctorOff ========");
        //System.out.println("startBedDoctorOff ========");
        return ECG_INNER_ERROR;
    }
@@ -216,7 +217,7 @@
            e.printStackTrace();
        }
        System.out.println("startNextPatient ========");
        //System.out.println("startNextPatient ========");
        return ECG_INNER_ERROR;
    }
@@ -268,7 +269,6 @@
            queueServiceTxFunctions.resetRoom(needCloseBed);
            queueServiceTxFunctions.bedReload();
            queueServiceTxFunctions.monitorInfo();
            queueServiceTxFunctions.resetQueueSequenceTable();
        });
    }
@@ -318,7 +318,28 @@
    @Override
    @Transactional
    public void queue(QueueSaveReqVO queueSaveReqVO) {
        queueSaveReqVO.setStatus(QueueStatusEnum.WAITING.getStatus()); //排队中
        queueSaveReqVO.setStatus(QueueStatusEnum.WAITING.getStatus()); //默认状态: 排队中
        // 处理 检查项目.亲和性 逻辑
        CheckTypeDO checkTypeDO = queueServiceTxFunctions.getCheckTypeItem( queueSaveReqVO.getBookCheckType() );
        if ( checkTypeDO.getAffinityCheckTypes().length > 0) {
            List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckItems(queueSaveReqVO.getPatId(), checkTypeDO.getAffinityCheckTypes());
            //List<Integer> affinityItemIDs = affinityItems.stream().map(queueItem -> queueItem.getId()).toList();
            //queueSaveReqVO.setAffinityItems(affinityItemIDs);
            for (int i=0; i < affinityItems.size(); i++) {
                QueueDO queueItem = affinityItems.get(i);
                if (QueueStatusEnum.READY.getStatus() == queueItem.getStatus()
                        || QueueStatusEnum.ONSTAGE.getStatus() == queueItem.getStatus()) {
                    queueSaveReqVO.setStatus(QueueStatusEnum.AFFINITY_ALREADY.getStatus()); //改变 排队状态
                    queueSaveReqVO.setRoomId(queueItem.getRoomId());
                    queueSaveReqVO.setRoomName(queueItem.getRoomName());
                    queueSaveReqVO.setBedNo(queueItem.getBedNo());
                    break;
                }
            }
        }
        QueueDO queue = BeanUtils.toBean(queueSaveReqVO, QueueDO.class);
        queueMapper.insert(queue);
@@ -350,10 +371,6 @@
    // 领用 叫号
    @Override
    public void finishReceiveNextPatient(Long roomId, String bedNo) {
        // 从 DB 把 [就诊中] 的人 设置为 【已领用】
        //Integer ret =  queueMapper.updateBedQueueStatus(roomId, bedNo,
        //        QueueStatusEnum.ONSTAGE.getStatus(), QueueStatusEnum.RECEIVED.getStatus());
        // 从 DB 检查 该工位 是否有 [就诊中] 人员,若有就.放弃取下一位
        List<Integer> queueStatusList = new ArrayList<>();
        queueStatusList.add(QueueStatusEnum.ONSTAGE.getStatus());
@@ -367,11 +384,7 @@
    // 装机 叫号
    @Override
    public void finishInstallNextPatient(Long roomId, String bedNo) {
        // 从 DB 把 [安装中] 的人 设置为 [已就诊]
        //Integer ret =  queueMapper.updateBedQueueStatus(roomId, bedNo,
        //        QueueStatusEnum.INSTALLING.getStatus(), QueueStatusEnum.FINISH.getStatus());
        // 从 DB 检查 该工位 是否有 [就诊中] 人员,若有就.放弃取下一位
        // 从 DB 检查 该工位 是否有 [安装中] 人员,若有就.放弃取下一位
        List<Integer> queueStatusList = new ArrayList<>();
        queueStatusList.add(QueueStatusEnum.INSTALLING.getStatus());
        Integer num = queueMapper.bedQueueStatisticByStatus(roomId, bedNo, queueStatusList);