eight
2024-11-14 3f3ec086fc73102dd2473fd2e197c3c9a16d4231
refactor
已修改2个文件
65 ■■■■■ 文件已修改
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/QueueMapper.java 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/QueueMapper.java
@@ -67,27 +67,44 @@
    @Select("<script>" +
            "SELECT * FROM lihu.queue " +
            "where pat_id = #{patId} and book_check_type in (" +
            " <foreach collection='arrCheckType' separator=',' item='checkType'>" +
            "   #{checkType} " +
            " </foreach> )" +
            " and TO_DAYS(book_date) = TO_DAYS(NOW()) " +
            "where pat_id = #{patId} " +
            "  and book_check_type in (" +
            "    <foreach collection='arrCheckType' separator=',' item='checkType'>" +
            "      #{checkType} " +
            "    </foreach> )" +
            "  and TO_DAYS(book_date) = TO_DAYS(NOW()) " +
            "</script>")
    List<QueueDO> getCurPatGivenCheckTypes(@Param("patId")String patId, @Param("arrCheckType")Integer[] arrCheckType);
    @Select("<script>" +
            "SELECT * FROM lihu.queue " +
            "where pat_id = #{patId} and book_check_type in (" +
            " <foreach collection='arrCheckType' separator=',' item='checkType'>" +
            "   #{checkType} " +
            " </foreach> ) " +
            " and status = #{status} " +
            " and TO_DAYS(book_date) = TO_DAYS(NOW()) " +
            "where pat_id = #{patId} " +
            "  and book_check_type in (" +
            "    <foreach collection='arrCheckType' separator=',' item='_checkType'>" +
            "      #{_checkType} " +
            "    </foreach> ) " +
            "  and status = #{status} " +
            "  and TO_DAYS(book_date) = TO_DAYS(NOW()) " +
            "</script>")
    List<QueueDO> getCurPatGivenCheckTypesAndStatus(@Param("patId")String patId, @Param("arrCheckType")Integer[] arrCheckType, @Param("status")Integer status);
    @Select("<script>" +
            "SELECT * FROM lihu.queue " +
            "where pat_id = #{patId} " +
            "  and book_check_type in (" +
            "    <foreach collection='arrCheckType' separator=',' item='_checkType'>" +
            "      #{_checkType} " +
            "    </foreach> ) " +
            "  and status in (" +
            "    <foreach collection='statusList' separator=',' item='_status'>" +
            "      #{_status} " +
            "    </foreach> ) " +
            "  and TO_DAYS(book_date) = TO_DAYS(NOW()) " +
            "</script>")
    List<QueueDO> getCurPatGivenCheckTypesAndStatusList(@Param("patId")String patId, @Param("arrCheckType")Integer[] arrCheckType, @Param("statusList")List<Integer> statusList);
    @Select("<script>" +
            "SELECT * FROM lihu.queue " +
            "where id >= #{from} and status in (" +
            " <foreach collection='statusList' separator=',' item='status'>" +
            "  #{status} " +
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java
@@ -318,24 +318,22 @@
    @Override
    @Transactional
    public void queue(QueueSaveReqVO queueSaveReqVO) {
        queueSaveReqVO.setStatus(QueueStatusEnum.WAITING.getStatus()); //默认状态: 排队中
        // 默认以 [排队中] 状态 进入 queue 表
        queueSaveReqVO.setStatus(QueueStatusEnum.WAITING.getStatus());
        // 处理 检查项目.亲和性 逻辑
        // 如果存在 处于 [就诊准备中] | [就诊中] 的亲和项,则跟随其中一个亲和项
        CheckTypeDO checkTypeDO = queueServiceTxFunctions.getCheckTypeItem( queueSaveReqVO.getBookCheckType() );
        if ( checkTypeDO.getAffinityCheckTypes().length > 0) {
            List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypes(queueSaveReqVO.getPatId(), checkTypeDO.getAffinityCheckTypes());
            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_WAITING.getStatus()); //改变 排队状态
                    queueSaveReqVO.setRoomId(queueItem.getRoomId());
                    queueSaveReqVO.setRoomName(queueItem.getRoomName());
                    queueSaveReqVO.setBedNo(queueItem.getBedNo());
                    queueSaveReqVO.setSeqNum(queueItem.getSeqNum());
                    break;
                }
            List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypesAndStatusList( queueSaveReqVO.getPatId(), checkTypeDO.getAffinityCheckTypes(),
                    List.of(QueueStatusEnum.READY.getStatus(), QueueStatusEnum.ONSTAGE.getStatus()));
            if (!affinityItems.isEmpty()) {
                QueueDO queueItem = affinityItems.get(0);
                queueSaveReqVO.setStatus(QueueStatusEnum.AFFINITY_WAITING.getStatus()); // [亲和-排队] 状态
                queueSaveReqVO.setRoomId(queueItem.getRoomId());
                queueSaveReqVO.setRoomName(queueItem.getRoomName());
                queueSaveReqVO.setBedNo(queueItem.getBedNo());
                queueSaveReqVO.setSeqNum(queueItem.getSeqNum());
            }
        }