2021与蓝度共同重构项目,服务端
liuhaonan
2021-12-17 d2bf8caa38cc592cf5516bf64da27ad1ec8ea308
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();
    }
}