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