jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/QueueMapper.java
@@ -165,11 +165,13 @@ // 某个诊室范围内 [已领用] [已召回-安装] 人员 抢占, 会更新 [工位号] // 没有限定检查类型,不要使用时间槽 @Select("select * from lihu.queue where room_id = #{roomId} and status in ( " + @Select("<script> " + "select * from lihu.queue where room_id = #{roomId} and status in ( " + " <foreach collection='curStatusList' separator=',' item='status'>" + " #{status} " + " </foreach> )" + " order by seq_num, create_time limit 1 " ) " order by seq_num, create_time limit 1 " + "</script>" ) QueueDO getFirstItemByRoomAndStatus(@Param("roomId")Long roomId, @Param("curStatusList")List<Integer> curStatusList); @Update("update lihu.queue set status = #{newStatus} where status = #{curStatus} and seq_num = \n" + jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java
@@ -304,6 +304,7 @@ } firstItem.setStatus( QueueStatusEnum.INSTALLING.getStatus() ); firstItem.setBedNo( bedNo ); queueMapper.updateById( firstItem ); // 检查项目.亲和性 处理逻辑 @@ -314,6 +315,7 @@ for (int i = 0; i < affinityItems.size(); i++) { QueueDO queueItem = affinityItems.get(i); queueItem.setStatus(QueueStatusEnum.AFFINITY_RECEIVED.getStatus()); //改变 排队状态 queueItem.setBedNo( bedNo ); // 跟随到 装机 工位 queueMapper.updateById(queueItem); } } @@ -473,9 +475,9 @@ for (int i = 0; i < affinityItems.size(); i++) { QueueDO queueItem = affinityItems.get(i); queueItem.setStatus(QueueStatusEnum.AFFINITY_WAITING.getStatus()); //改变 排队状态 queueItem.setRoomId(queueItem.getRoomId()); queueItem.setRoomName(queueItem.getRoomName()); queueItem.setBedNo(queueItem.getBedNo()); queueItem.setRoomId(queueDO.getRoomId()); queueItem.setRoomName(queueDO.getRoomName()); queueItem.setBedNo(queueDO.getBedNo()); queueItem.setSeqNum(curSeqNum.get() + 1); // 使用同一个 内部序号 queueMapper.updateById(queueItem); }