From ae24af77aaa940a64281f9f1bf2fe5ab3f9c68b8 Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期五, 30 八月 2024 16:48:41 +0800 Subject: [PATCH] update --- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java | 55 +++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 39 insertions(+), 16 deletions(-) diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java index ef629f5..f6ca95c 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java @@ -7,6 +7,7 @@ import javax.annotation.Resource; import cn.lihu.jh.module.ecg.Utils; +import cn.lihu.jh.module.ecg.config.DynamicSchedulingConfig; import cn.lihu.jh.module.ecg.dal.dataobject.room.RoomDO; import cn.lihu.jh.module.ecg.service.room.RoomService; import org.springframework.scheduling.config.CronTask; @@ -51,14 +52,7 @@ private ConfigApi configApi; @Resource - private ScheduledTaskRegistrar taskRegistrar; - - @Resource - private QueueService queueService; - - @Resource private RoomService roomService; - @Resource private queueMapper queueMapper; @@ -115,6 +109,7 @@ e.printStackTrace(); } + System.out.println("startBedOpen ========"); return ECG_INNER_ERROR; } @@ -131,6 +126,7 @@ e.printStackTrace(); } + System.out.println("startBedClose ========"); return ECG_INNER_ERROR; } @@ -149,6 +145,7 @@ e.printStackTrace(); } + System.out.println("startBedDoctorPause ========"); return ECG_INNER_ERROR; } @@ -167,6 +164,7 @@ e.printStackTrace(); } + System.out.println("startBedDoctorResume ========"); return ECG_INNER_ERROR; } @@ -185,6 +183,7 @@ e.printStackTrace(); } + System.out.println("startBedDoctorOn ========"); return ECG_INNER_ERROR; } @@ -203,6 +202,26 @@ e.printStackTrace(); } + System.out.println("startBedDoctorOff ========"); + return ECG_INNER_ERROR; + } + + @Override + public ErrorCode startNextPatient(Long roomId, String bedNo) { + Future<ErrorCode> future = singleThreadExecutor.submit( + new BedDoctorNextPatientCallable(this, roomId, bedNo) + ); + + try { + ErrorCode ret = future.get(); + return ret; + } catch (InterruptedException e) { + e.printStackTrace(); + } catch (ExecutionException e) { + e.printStackTrace(); + } + + System.out.println("startNextPatient ========"); return ECG_INNER_ERROR; } @@ -497,14 +516,15 @@ startHurryUp(); } - private void nextPatient(Long roomId, String bedNo) { + @Override + public ErrorCode nextPatient(Long roomId, String bedNo) { // 浠� DB 鎶� 搴忓彿鏈�灏忕殑 灏辫瘖鍑嗗涓殑浜� 璁剧疆涓哄氨璇婁腑 Integer updateNum = queueMapper.updateQueueStatus(roomId, bedNo, QueueStatusEnum.READY.getStatus(), QueueStatusEnum.ONSTAGE.getStatus()); // 璇ュ伐浣� 娌℃湁 灏辫瘖鍑嗗涓� 浜哄憳 if (null == updateNum || 0 == updateNum) { - return; + return QUEUE_NOT_READY_PATIENT; } // 浼樺厛闃熷垪涓� 璇ュ伐浣� 灏辫瘖鍑嗗涓汉鐨勬暟閲� 鍑忎竴 @@ -513,7 +533,8 @@ priorityQueue.remove(bo); priorityQueue.offer(bo); - startHurryUp(); + hurryup(); + return SUCCESS; } public void finishNextPatient(Long roomId, String bedNo) { @@ -521,7 +542,7 @@ Integer ret = queueMapper.updateQueueStatus(roomId, bedNo, QueueStatusEnum.ONSTAGE.getStatus(), QueueStatusEnum.FINISH.getStatus()); - nextPatient(roomId, bedNo); + startNextPatient(roomId, bedNo); } public void passNextPatient(Long roomId, String bedNo) { @@ -529,7 +550,7 @@ Integer ret = queueMapper.updateQueueStatus(roomId, bedNo, QueueStatusEnum.ONSTAGE.getStatus(), QueueStatusEnum.PASSED.getStatus()); - nextPatient(roomId, bedNo); + startNextPatient(roomId, bedNo); } public List<QueueDO> getDoctorQueueByStatus(Long roomId, String bedNo, List<Byte> statusList) { @@ -582,8 +603,8 @@ @Override public void resetScheduler() { - Set<ScheduledTask> taskList = taskRegistrar.getScheduledTasks(); - taskList.forEach((task)->task.cancel()); + ScheduledTaskRegistrar taskRegistrar = DynamicSchedulingConfig.static_scheduledTaskRegistrar; + taskRegistrar.getScheduledTasks().forEach(ScheduledTask::cancel); String strOpenCloseTime = configApi.getConfigValueByKey(ECG_OPENING_TIME_KEY); List<LocalTime> list = Utils.parseOpeningTime(strOpenCloseTime); @@ -598,18 +619,20 @@ taskRegistrar.scheduleCronTask(new CronTask(() -> { System.out.println("Opening Task executed at: " + System.currentTimeMillis()); - queueService.startBiz(); + startBiz(); }, openCronExpression)); taskRegistrar.scheduleCronTask(new CronTask(() -> { System.out.println("Close Task executed at: " + System.currentTimeMillis()); - queueService.closeBiz(); + closeBiz(); }, closeCronExpression)); taskRegistrar.scheduleCronTask(new CronTask(() -> { System.out.println("Room Reset Task executed at: " + System.currentTimeMillis()); roomService.resetRoom(); }, roomResetCronExpression)); + + taskRegistrar.afterPropertiesSet(); } @Override -- Gitblit v1.9.3