From 6e88d32c8fe09152a326adf4961691373fcfda87 Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期五, 23 八月 2024 16:17:48 +0800 Subject: [PATCH] update --- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/config/DynamicSchedulingConfig.java | 20 +++++++--- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/listener/MySpringEventListener.java | 15 +++---- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java | 7 +++ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/Utils.java | 25 +++++++++--- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueService.java | 1 5 files changed, 48 insertions(+), 20 deletions(-) diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/Utils.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/Utils.java index 57a0132..4b40db7 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/Utils.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/Utils.java @@ -3,12 +3,14 @@ import jodd.typeconverter.impl.LocalTimeConverter; import java.time.LocalTime; +import java.util.ArrayList; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Utils { - public static LocalTime parseOpeningTime(String strOpeningTime) { - String regex = "(\\d+)[:锛歖(\\d+)"; + public static List<LocalTime> parseOpeningTime(String strOpeningTime) { + String regex = "(\\d+)[:锛歖(\\d+)~(\\d+)[:锛歖(\\d+)"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(strOpeningTime); @@ -19,12 +21,23 @@ String fullMatch = matcher.group(); // 鑾峰彇绗竴涓崟鑾风粍锛堝皬鏃讹級 - String strHour = matcher.group(1); + String strOpenHour = matcher.group(1); // 鑾峰彇绗簩涓崟鑾风粍锛堝垎閽燂級 - String strMinute = matcher.group(2); + String strOpenMinute = matcher.group(2); - LocalTime localTime = LocalTime.of(Integer.valueOf(strHour), Integer.valueOf(strMinute)); - return localTime; + // 鑾峰彇绗竴涓崟鑾风粍锛堝皬鏃讹級 + String strCloseHour = matcher.group(3); + + // 鑾峰彇绗簩涓崟鑾风粍锛堝垎閽燂級 + String strCloseMinute = matcher.group(4); + + LocalTime localOpenTime = LocalTime.of(Integer.valueOf(strOpenHour), Integer.valueOf(strOpenMinute)); + LocalTime localCloseTime = LocalTime.of(Integer.valueOf(strCloseHour), Integer.valueOf(strCloseMinute)); + List openCloseTime = new ArrayList<LocalTime>(); + openCloseTime.add(localOpenTime); + openCloseTime.add(localCloseTime); + return openCloseTime; } } + diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/config/DynamicSchedulingConfig.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/config/DynamicSchedulingConfig.java index 6b2108d..55279a1 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/config/DynamicSchedulingConfig.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/config/DynamicSchedulingConfig.java @@ -11,6 +11,7 @@ import javax.annotation.Resource; import java.time.LocalTime; import java.time.format.DateTimeFormatter; +import java.util.List; import java.util.concurrent.Executors; import static cn.lihu.jh.module.ecg.Constants.ECG_OPENING_TIME_KEY; @@ -29,15 +30,22 @@ public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { taskRegistrar.setScheduler(Executors.newScheduledThreadPool(1)); - String strOpeningTime = configApi.getConfigValueByKey(ECG_OPENING_TIME_KEY); - LocalTime openingTime = Utils.parseOpeningTime(strOpeningTime); - String cronExpression = String.format("0 %d %d * * ?", openingTime.getMinute(), openingTime.getHour()); - System.out.println(cronExpression); + String strOpenCloseTime = configApi.getConfigValueByKey(ECG_OPENING_TIME_KEY); + List<LocalTime> list = Utils.parseOpeningTime(strOpenCloseTime); + LocalTime openingTime = list.get(0); + LocalTime closeTime = list.get(1); + String openCronExpression = String.format("0 %d %d * * ?", openingTime.getMinute(), openingTime.getHour()); + String closeCronExpression = String.format("0 %d %d * * ?", closeTime.getMinute(), closeTime.getHour()); taskRegistrar.addCronTask(() -> { - System.out.println("Dynamic Task executed at: " + System.currentTimeMillis()); + System.out.println("Opening Task executed at: " + System.currentTimeMillis()); queueService.startBiz(); - }, cronExpression); + }, openCronExpression); + + taskRegistrar.addCronTask(() -> { + System.out.println("Close Task executed at: " + System.currentTimeMillis()); + queueService.closeBiz(); + }, closeCronExpression); } } diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/listener/MySpringEventListener.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/listener/MySpringEventListener.java index a47b0e3..3cd057a 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/listener/MySpringEventListener.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/listener/MySpringEventListener.java @@ -9,6 +9,7 @@ import javax.annotation.Resource; import java.time.LocalTime; +import java.util.List; import static cn.lihu.jh.module.ecg.Constants.ECG_OPENING_TIME_KEY; @@ -25,19 +26,17 @@ public void onApplicationEvent(ApplicationStartedEvent event) { System.out.println("搴旂敤鍚姩瀹屾垚锛岀郴缁熷垵濮嬨�傘�傘��"); - queueService.initBedQueueAndSeqNumFromDB(); - - String strOpeningTime = configApi.getConfigValueByKey(ECG_OPENING_TIME_KEY); - LocalTime openingTime = Utils.parseOpeningTime(strOpeningTime); + String strOpenCloseTime = configApi.getConfigValueByKey(ECG_OPENING_TIME_KEY); + List<LocalTime> list = Utils.parseOpeningTime(strOpenCloseTime); + LocalTime openingTime = list.get(0); + LocalTime closeTime = list.get(1); // 鑾峰彇褰撳墠鏃堕棿 LocalTime currentTime = LocalTime.now(); // 姣旇緝鏃堕棿 - if (currentTime.isBefore(openingTime)) { - // NO OP - } else if (currentTime.isAfter(openingTime)) { - queueService.startBiz(); + if (currentTime.isBefore(openingTime) || currentTime.isAfter(closeTime)) { + queueService.closeBiz(); } else { queueService.startBiz(); } diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueService.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueService.java index 67fb19f..2555762 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueService.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueService.java @@ -15,6 +15,7 @@ public interface QueueService { void startBiz(); + void closeBiz(); /** * 鍒涘缓鎺掗槦 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 c16b26d..6bdd64e 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 @@ -276,6 +276,9 @@ } public void startBiz() { + if (1 == openingFlag.get()) + return; + // 娓呴櫎闈炲綋澶╃殑鎺掗槦浜哄憳 queueMapper.clearQueue(); @@ -285,6 +288,10 @@ hurryup(); } + public void closeBiz() { + openingFlag.set(0); + } + @Override public Integer recallPatient(Long roomId, String bedNo, String patId) { Integer updateNum = queueMapper.passedPatientReturn(roomId, bedNo, patId, -- Gitblit v1.9.3