package com.jcdm.quartz.domain; import java.util.Date; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.fasterxml.jackson.annotation.JsonFormat; import com.jcdm.common.annotation.Excel; import com.jcdm.common.annotation.Excel.ColumnType; import com.jcdm.common.constant.ScheduleConstants; import com.jcdm.common.core.domain.BaseEntity; import com.jcdm.common.utils.StringUtils; import com.jcdm.quartz.util.CronUtils; /** * 定时任务调度表 sys_job * * @author jc */ public class SysJob extends BaseEntity { private static final long serialVersionUID = 1L; /** 任务ID */ @Excel(name = "任务åºå·", cellType = ColumnType.NUMERIC) private Long jobId; /** 任务å称 */ @Excel(name = "任务å称") private String jobName; /** 任务组å */ @Excel(name = "任务组å") private String jobGroup; /** è°ƒç”¨ç›®æ ‡å—符串 */ @Excel(name = "è°ƒç”¨ç›®æ ‡å—符串") private String invokeTarget; /** cronæ‰§è¡Œè¡¨è¾¾å¼ */ @Excel(name = "æ‰§è¡Œè¡¨è¾¾å¼ ") private String cronExpression; /** cron计划ç–ç•¥ */ @Excel(name = "计划ç–ç•¥ ", readConverterExp = "0=默认,1=ç«‹å³è§¦å‘执行,2=触å‘一次执行,3=ä¸è§¦å‘ç«‹å³æ‰§è¡Œ") private String misfirePolicy = ScheduleConstants.MISFIRE_DEFAULT; /** 是å¦å¹¶å‘执行(0å…许 1ç¦æ¢ï¼‰ */ @Excel(name = "并å‘执行", readConverterExp = "0=å…许,1=ç¦æ¢") private String concurrent; /** 任务状æ€ï¼ˆ0æ£å¸¸ 1æš‚åœï¼‰ */ @Excel(name = "任务状æ€", readConverterExp = "0=æ£å¸¸,1=æš‚åœ") private String status; public Long getJobId() { return jobId; } public void setJobId(Long jobId) { this.jobId = jobId; } @NotBlank(message = "任务å称ä¸èƒ½ä¸ºç©º") @Size(min = 0, max = 64, message = "任务å称ä¸èƒ½è¶…过64个å—符") public String getJobName() { return jobName; } public void setJobName(String jobName) { this.jobName = jobName; } public String getJobGroup() { return jobGroup; } public void setJobGroup(String jobGroup) { this.jobGroup = jobGroup; } @NotBlank(message = "è°ƒç”¨ç›®æ ‡å—符串ä¸èƒ½ä¸ºç©º") @Size(min = 0, max = 500, message = "è°ƒç”¨ç›®æ ‡å—符串长度ä¸èƒ½è¶…过500个å—符") public String getInvokeTarget() { return invokeTarget; } public void setInvokeTarget(String invokeTarget) { this.invokeTarget = invokeTarget; } @NotBlank(message = "Cron执行表达å¼ä¸èƒ½ä¸ºç©º") @Size(min = 0, max = 255, message = "Cron执行表达å¼ä¸èƒ½è¶…过255个å—符") public String getCronExpression() { return cronExpression; } public void setCronExpression(String cronExpression) { this.cronExpression = cronExpression; } @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") public Date getNextValidTime() { if (StringUtils.isNotEmpty(cronExpression)) { return CronUtils.getNextExecution(cronExpression); } return null; } public String getMisfirePolicy() { return misfirePolicy; } public void setMisfirePolicy(String misfirePolicy) { this.misfirePolicy = misfirePolicy; } public String getConcurrent() { return concurrent; } public void setConcurrent(String concurrent) { this.concurrent = concurrent; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("jobId", getJobId()) .append("jobName", getJobName()) .append("jobGroup", getJobGroup()) .append("cronExpression", getCronExpression()) .append("nextValidTime", getNextValidTime()) .append("misfirePolicy", getMisfirePolicy()) .append("concurrent", getConcurrent()) .append("status", getStatus()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("remark", getRemark()) .toString(); } }