Browse Source

根据上下班时间来给盒子发送是否开启/关闭算法

tjf 1 week ago
parent
commit
39d486dfbd

+ 2 - 2
ruoyi-admin/src/main/resources/application.yml

@@ -19,8 +19,8 @@ spring:
     # 国际化资源文件路径
     basename: i18n/messages
   profiles:
-          active: druid
-#          active: prod
+#          active: druid
+          active: prod
   # 文件上传
   servlet:
     multipart:

+ 11 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java

@@ -201,6 +201,17 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
         return sec;
     }
 
+    /**
+     * 获取时间date1与date2相差的秒数
+     *
+     * @param startDate 起始时间
+     * @param endDate 结束时间
+     * @return 返回相差的秒数
+     */
+    public static int getOffsetSeconds(Date startDate, Date endDate) {
+        int seconds = (int) ((endDate.getTime() - startDate.getTime()) / 1000);
+        return seconds;
+    }
     /**
      * 增加 LocalDateTime ==> Date
      */

+ 5 - 5
ruoyi-system/src/main/java/com/ruoyi/system/service/Task.java

@@ -34,7 +34,7 @@ public class Task {
      * 查询是否是节假日
      */
     @Async
-    @Scheduled(cron = "0 5 0 * * ? ")
+    @Scheduled(cron = "0 01 12 * * ? ")
     public void thirdNucleicAcid() {
         String data = DateUtils.getDate();
         //判断当天天是否是法定节假日  0 上班 1周末 2节假日
@@ -61,7 +61,7 @@ public class Task {
                     String date = DateUtils.getDate();
                     Date dateEnd = DateUtils.parseDate(date + " " + clockBeginAm);
                     //活得差值的秒数
-                    long sec = DateUtils.timeDistanceSec(dateEnd, dateBegin);
+                    long sec = DateUtils.getOffsetSeconds(dateBegin, dateEnd);
                     ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
                     Runnable task = () -> mqttService.publish(DETECTION_WORK_STAT, ONE);
                     scheduler.schedule(task, sec, TimeUnit.SECONDS);
@@ -72,7 +72,7 @@ public class Task {
                     String date = DateUtils.getDate();
                     Date dateEnd = DateUtils.parseDate(date + " " + clockEndAm);
                     //活得差值的秒数
-                    long sec = DateUtils.timeDistanceSec(dateEnd, dateBegin);
+                    long sec = DateUtils.getOffsetSeconds(dateBegin, dateEnd);
                     ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
                     Runnable task = () -> mqttService.publish(DETECTION_WORK_STAT, ZERO);
                     scheduler.schedule(task, sec, TimeUnit.SECONDS);
@@ -83,7 +83,7 @@ public class Task {
                     String date = DateUtils.getDate();
                     Date dateEnd = DateUtils.parseDate(date + " " + clockBeginPm);
                     //活得差值的秒数
-                    long sec = DateUtils.timeDistanceSec(dateEnd, dateBegin);
+                    long sec = DateUtils.getOffsetSeconds(dateBegin, dateEnd);
                     ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
                     Runnable task = () -> mqttService.publish(DETECTION_WORK_STAT, ONE);
                     scheduler.schedule(task, sec, TimeUnit.SECONDS);
@@ -94,7 +94,7 @@ public class Task {
                     String date = DateUtils.getDate();
                     Date dateEnd = DateUtils.parseDate(date + " " + clockEndPm);
                     //活得差值的秒数
-                    long sec = DateUtils.timeDistanceSec(dateEnd, dateBegin);
+                    long sec = DateUtils.getOffsetSeconds(dateBegin, dateEnd);
                     ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
                     Runnable task = () -> mqttService.publish(DETECTION_WORK_STAT, ZERO);
                     scheduler.schedule(task, sec, TimeUnit.SECONDS);