SysJob.java 3.5 KB

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