SysJob.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. package com.ruoyi.quartz.domain;
  2. import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
  3. import com.alibaba.excel.annotation.ExcelProperty;
  4. import com.baomidou.mybatisplus.annotation.*;
  5. import com.fasterxml.jackson.annotation.JsonFormat;
  6. import com.ruoyi.common.annotation.ExcelDictFormat;
  7. import com.ruoyi.common.constant.ScheduleConstants;
  8. import com.ruoyi.common.convert.ExcelDictConvert;
  9. import com.ruoyi.common.utils.StringUtils;
  10. import com.ruoyi.quartz.util.CronUtils;
  11. import lombok.Data;
  12. import lombok.NoArgsConstructor;
  13. import lombok.experimental.Accessors;
  14. import javax.validation.constraints.NotBlank;
  15. import javax.validation.constraints.Size;
  16. import java.io.Serializable;
  17. import java.util.Date;
  18. import java.util.HashMap;
  19. import java.util.Map;
  20. /**
  21. * 定时任务调度表 sys_job
  22. *
  23. * @deprecated 3.5.0删除 迁移至xxl-job
  24. * @author ruoyi
  25. */
  26. @Data
  27. @NoArgsConstructor
  28. @Accessors(chain = true)
  29. @TableName("sys_job")
  30. @ExcelIgnoreUnannotated
  31. public class SysJob implements Serializable {
  32. private static final long serialVersionUID = 1L;
  33. /**
  34. * 任务ID
  35. */
  36. @ExcelProperty(value = "任务序号")
  37. @TableId(value = "job_id", type = IdType.AUTO)
  38. private Long jobId;
  39. /**
  40. * 任务名称
  41. */
  42. @NotBlank(message = "任务名称不能为空")
  43. @Size(min = 0, max = 64, message = "任务名称不能超过64个字符")
  44. @ExcelProperty(value = "任务名称")
  45. private String jobName;
  46. /**
  47. * 任务组名
  48. */
  49. @ExcelProperty(value = "任务组名", converter = ExcelDictConvert.class)
  50. @ExcelDictFormat(dictType = "sys_job_group")
  51. private String jobGroup;
  52. /**
  53. * 调用目标字符串
  54. */
  55. @NotBlank(message = "调用目标字符串不能为空")
  56. @Size(min = 0, max = 500, message = "调用目标字符串长度不能超过500个字符")
  57. @ExcelProperty(value = "调用目标字符串")
  58. private String invokeTarget;
  59. /**
  60. * cron执行表达式
  61. */
  62. @NotBlank(message = "Cron执行表达式不能为空")
  63. @Size(min = 0, max = 255, message = "Cron执行表达式不能超过255个字符")
  64. @ExcelProperty(value = "执行表达式")
  65. private String cronExpression;
  66. /**
  67. * cron计划策略
  68. */
  69. @ExcelProperty(value = "计划策略 ", converter = ExcelDictConvert.class)
  70. @ExcelDictFormat(readConverterExp = "0=默认,1=立即触发执行,2=触发一次执行,3=不触发立即执行")
  71. private String misfirePolicy = ScheduleConstants.MISFIRE_DEFAULT;
  72. /**
  73. * 是否并发执行(0允许 1禁止)
  74. */
  75. @ExcelProperty(value = "并发执行", converter = ExcelDictConvert.class)
  76. @ExcelDictFormat(readConverterExp = "0=允许,1=禁止")
  77. private String concurrent;
  78. /**
  79. * 任务状态(0正常 1暂停)
  80. */
  81. @ExcelProperty(value = "任务状态", converter = ExcelDictConvert.class)
  82. @ExcelDictFormat(dictType = "sys_job_status")
  83. private String status;
  84. /**
  85. * 创建者
  86. */
  87. @TableField(fill = FieldFill.INSERT)
  88. private String createBy;
  89. /**
  90. * 创建时间
  91. */
  92. @TableField(fill = FieldFill.INSERT)
  93. private Date createTime;
  94. /**
  95. * 更新者
  96. */
  97. @TableField(fill = FieldFill.INSERT_UPDATE)
  98. private String updateBy;
  99. /**
  100. * 更新时间
  101. */
  102. @TableField(fill = FieldFill.INSERT_UPDATE)
  103. private Date updateTime;
  104. /**
  105. * 备注
  106. */
  107. private String remark;
  108. /**
  109. * 请求参数
  110. */
  111. @TableField(exist = false)
  112. private Map<String, Object> params = new HashMap<>();
  113. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  114. public Date getNextValidTime() {
  115. if (StringUtils.isNotEmpty(cronExpression)) {
  116. return CronUtils.getNextExecution(cronExpression);
  117. }
  118. return null;
  119. }
  120. }