1.定义主对象
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel("定时任务corn对象")
public class TimingCornVo {
@ApiModelProperty(value = "corn字符串")
String corn;
@ApiModelProperty(value = "corn转换后数据集合")
List<TimingCornSubVo> subVoList;
}
2.定义子对象,用于存放corn的每个部分数据
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.ArrayUtils;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel("定时任务corn子对象")
public class TimingCornSubVo {
@ApiModelProperty(value = "数据类型[0:秒,1:分,2时,3:日,4:月,5:周,6:年]")
Integer type;
@ApiModelProperty(value = "使用类型[0:不指定,1:每单位执行,2:周期执行内单位频率执行,3:指定开始时间和频率,4:指定时间执行,5最后一个(日和周,月中最后一个月或月中最后的星期)]")
Integer useType;
@ApiModelProperty(value = "执行时间数据[useType2:两个数据,表示x-y,useType3:任意个合法范围内数值],useType4:两个数据,表示x/y")
Integer[] data;
/**
* 参数校验
* 在工具类中对顺序进行了排序,因此此处不校验大小问题
*/
public void checkParam() throws Exception {
if (null==type||type<0||type>6){
throw new Exception("类型取值不合法");
}
if (null==useType||useType<0||useType>5){
throw new Exception("使用类型取值不合法");
}
if (useType == 0){
if (type<3){
throw new Exception("秒,分,时使用类型不能为不指定");
}
}else if (useType == 2){
if (ArrayUtils.isEmpty(data)||data.length!=2){
throw new Exception("周期执行类型数据必须为两个");
}
}else if (useType == 3){
if (ArrayUtils.isEmpty(data)||data.length!=2){
throw new Exception("指定开始和频率类型数据必须为两个");
}
}else if (useType == 4){
if (ArrayUtils.isEmpty(data)&&type!=6){