jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/queueController.java
@@ -100,7 +100,7 @@ @PreAuthorize("@ss.hasPermission('ecg:queue:setting')") public CommonResult<Integer> openingSetting() { // 从DB同步工位的患者队列数据到 工位优先队列, 可能有新开工位 queueService.initQueue(); queueService.initBedQueueAndSeqNumFromDB(); return success(0); } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/queueMapper.java
@@ -6,11 +6,8 @@ import cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueDO; import cn.lihu.jh.module.ecg.dal.dataobject.queue.BedQueueStatisticDO; import cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueStatisticDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.*; import cn.lihu.jh.module.ecg.controller.admin.queue.vo.*; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import java.util.List; @@ -103,5 +100,8 @@ @Update("update lihu.queue set jump_flag = #{jumped} " + " where status = #{curStatus} and pat_id = #{patId}") Integer queueJump(@Param("patId")String patId, @Param("curStatus")Byte curStatus, @Param("jumped")Byte jumped ); @Delete("delete from lihu.queue where TO_DAYS(book_date) != TO_DAYS(NOW())") Integer clearQueue(); } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/listener/MySpringEventListener.java
@@ -9,7 +9,6 @@ import javax.annotation.Resource; import java.time.LocalTime; import java.time.format.DateTimeFormatter; import static cn.lihu.jh.module.ecg.Constants.ECG_OPENING_TIME_KEY; @@ -26,7 +25,7 @@ public void onApplicationEvent(ApplicationStartedEvent event) { System.out.println("应用启动完成,系统初始。。。"); queueService.initQueue(); queueService.initBedQueueAndSeqNumFromDB(); String strOpeningTime = configApi.getConfigValueByKey(ECG_OPENING_TIME_KEY); LocalTime openingTime = Utils.parseOpeningTime(strOpeningTime); jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueService.java
@@ -63,7 +63,7 @@ /** * 系统重启时,从DB同步工位的患者队列数据到 工位优先队列 */ void initQueue(); void initBedQueueAndSeqNumFromDB(); /** * 把医生候诊的队列塞满 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java
@@ -94,9 +94,11 @@ } /** * 系统重启时,从DB同步工位的患者队列数据到 工位优先队列 * !!开诊期间,不能执行这个方法,否则会有 P0 问题 * 1. 每天开诊前 从DB同步工位的患者队列数据到 工位优先队列 * 2. 服务运维重启时 */ public void initQueue() { public void initBedQueueAndSeqNumFromDB() { priorityQueue.clear(); mapBedVsQueue.clear(); @@ -274,6 +276,11 @@ } public void startBiz() { // 清除非当天的排队人员 queueMapper.clearQueue(); initBedQueueAndSeqNumFromDB(); openingFlag.set(1); hurryup(); }