From d2bf8caa38cc592cf5516bf64da27ad1ec8ea308 Mon Sep 17 00:00:00 2001
From: liuhaonan <konodioda2333@vip.qq.com>
Date: 星期五, 17 十二月 2021 17:30:28 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/utils/TaskOrderUtil.java |   77 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 77 insertions(+), 0 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/TaskOrderUtil.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/TaskOrderUtil.java
new file mode 100644
index 0000000..8ceed7f
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/TaskOrderUtil.java
@@ -0,0 +1,77 @@
+package com.sandu.ximon.admin.utils;
+
+import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.util.StrUtil;
+import com.sandu.ximon.admin.constant.Constants;
+import com.sandu.ximon.admin.dto.SingleLightOrderDto;
+import com.sandu.ximon.dao.enums.WeekEnums;
+import org.quartz.DateBuilder;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author chenjiantian
+ * @date 2021/12/15 18:06
+ * 浠诲姟鍛戒护宸ュ叿绫�
+ */
+public class TaskOrderUtil {
+
+    public static SingleLightOrderDto parseLightOrder(String lightOrder) {
+        if (StrUtil.length(lightOrder) != 7) {
+            return null;
+        }
+        SingleLightOrderDto singleLightOrderDto = new SingleLightOrderDto();
+        singleLightOrderDto.setHour(NumberUtil.parseInt(lightOrder.substring(0, 2)));
+        singleLightOrderDto.setMinute(NumberUtil.parseInt(lightOrder.substring(2, 4)));
+        singleLightOrderDto.setBrightness(NumberUtil.parseInt(lightOrder.substring(4, 7)));
+        return singleLightOrderDto;
+    }
+
+    public static Integer[] parseLightWeek(Integer week) {
+        if (week == null) {
+            return null;
+        }
+        List<Integer> list = new ArrayList<>();
+        if((WeekEnums.SUNDAY.getCode() & week) > 0){
+            list.add(DateBuilder.SUNDAY);
+        }
+        if((WeekEnums.MONDAY.getCode() & week) > 0){
+            list.add(DateBuilder.MONDAY);
+        }
+        if((WeekEnums.TUESDAY.getCode() & week) > 0){
+            list.add(DateBuilder.TUESDAY);
+        }
+        if((WeekEnums.WEDNESDAY.getCode() & week) > 0){
+            list.add(DateBuilder.WEDNESDAY);
+        }
+        if((WeekEnums.THURSDAY.getCode() & week) > 0){
+            list.add(DateBuilder.THURSDAY);
+        }
+        if((WeekEnums.FRIDAY.getCode() & week) > 0){
+            list.add(DateBuilder.FRIDAY);
+        }
+        if((WeekEnums.SATURDAY.getCode() & week) > 0){
+            list.add(DateBuilder.SATURDAY);
+        }
+        return list.toArray(new Integer[0]);
+    }
+
+    /**
+     * 鏍规嵁缁欏畾鐨勬椂鍒嗗懆鐢熸垚cron
+     * @param hour 鏃�
+     * @param minute 鍒�
+     * @param daysOfWeek 1琛ㄧず鐨勬槸鏄熸湡鏃ワ紝7琛ㄧず鐨勬槦鏈熷叚
+     * @return cron
+     */
+    public static String getHourAndMinuteOnGivenDaysOfWeek(int hour, int minute, Integer... daysOfWeek) {
+        StringBuilder cronExpression = new StringBuilder(String.format("0 %d %d ? * %d", minute, hour,
+                daysOfWeek[0]));
+
+        for (int i = 1; i < daysOfWeek.length; i++) {
+            cronExpression.append(",").append(daysOfWeek[i]);
+        }
+        return cronExpression.toString();
+    }
+}

--
Gitblit v1.9.3