eight
2025-04-01 b63358eeefeb4c7d0078cffe5dbba0380a740afc
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java
@@ -338,7 +338,7 @@
        devRent.setCheckType( queueSaveReqVO.getBookCheckType() );
        devRentMapper.insert(devRent);
        //startHurryUpOneCheckType( queue.getBookCheckType() );
        startHurryUpOneCheckType( queue.getBookCheckType() );
    }
    @Override
@@ -570,11 +570,11 @@
     * @return
     */
    @Override
    public Integer patientJump(String patId, Byte jumped) {
        Integer updateNum = queueMapper.queueJump(patId, QueueStatusEnum.WAITING.getStatus(), jumped);
    public Integer patientJump(String patId, Integer bookCheckType, Byte jumped) {
        Integer updateNum = queueMapper.queueJump(patId, bookCheckType, QueueStatusEnum.WAITING.getStatus(), jumped);
        //QueueDO queueDO = queueMapper.getQueueByPatId(patId);
        //startHurryUpOneCheckType(Integer.valueOf(queueDO.getBookCheckType()));
        QueueDO queueDO = queueMapper.getQueueByPatId(patId, bookCheckType);
        startHurryUpOneCheckType(Integer.valueOf(queueDO.getBookCheckType()));
        return updateNum;
    }
@@ -664,6 +664,9 @@
        return roomDO;
    }
    /**
     * 装机召回,是抢占式的,会改变装机工位
     */
    private void procAffinityWhenInstallRecall(String patId, Integer[] affinityCheckTypes, Long roomId_operator, String bedNo_operator) {
        List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypesAndStatus(
                        patId, affinityCheckTypes, QueueStatusEnum.AFFINITY_RECEIVED.getStatus());
@@ -676,11 +679,15 @@
        }
    }
    /**
     * 预约确认后,主动寻求依附
     */
    private void procAffinityWhenQueue(/*IN, OUT*/QueueSaveReqVO queueSaveReqVO, Integer[] affinityCheckTypes) {
        // 如果存在 处于 [就诊准备中] | [就诊中] 的亲和项,则跟随其中一个亲和项
        // 如果存在 [就诊准备] [就诊中] [过号] [已召回] 能被依附的检查项,则依附到其中一个
        List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypesAndStatusList(
                queueSaveReqVO.getPatId(), affinityCheckTypes,
                List.of(QueueStatusEnum.READY.getStatus(), QueueStatusEnum.ONSTAGE.getStatus()));
                List.of(QueueStatusEnum.READY.getStatus(), QueueStatusEnum.ONSTAGE.getStatus(),
                        QueueStatusEnum.PASSED.getStatus(), QueueStatusEnum.RECALLED.getStatus()));
        if (!affinityItems.isEmpty()) {
            QueueDO queueItem = affinityItems.get(0);
            queueSaveReqVO.setStatus(QueueStatusEnum.AFFINITY_WAITING.getStatus()); // [亲和-排队] 状态