jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/QueueMapper.java
@@ -67,7 +67,8 @@ @Select("<script>" + "SELECT * FROM lihu.queue " + "where pat_id = #{patId} and book_check_type in (" + "where pat_id = #{patId} " + " and book_check_type in (" + " <foreach collection='arrCheckType' separator=',' item='checkType'>" + " #{checkType} " + " </foreach> )" + @@ -77,9 +78,10 @@ @Select("<script>" + "SELECT * FROM lihu.queue " + "where pat_id = #{patId} and book_check_type in (" + " <foreach collection='arrCheckType' separator=',' item='checkType'>" + " #{checkType} " + "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()) " + @@ -88,6 +90,21 @@ @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()); //改变 排队状态 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()); break; } } }