diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ScheduleConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ScheduleConstants.java
index b562cff1..7eae6eb4 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ScheduleConstants.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ScheduleConstants.java
@@ -1,31 +1,42 @@
package com.ruoyi.common.core.constant;
+import lombok.Getter;
+
/**
* 任务调度通用常量
- *
+ *
* @author ruoyi
*/
-public class ScheduleConstants
-{
+public class ScheduleConstants {
public static final String TASK_CLASS_NAME = "TASK_CLASS_NAME";
- /** 执行目标key */
+ /**
+ * 执行目标key
+ */
public static final String TASK_PROPERTIES = "TASK_PROPERTIES";
- /** 默认 */
+ /**
+ * 默认
+ */
public static final String MISFIRE_DEFAULT = "0";
- /** 立即触发执行 */
+ /**
+ * 立即触发执行
+ */
public static final String MISFIRE_IGNORE_MISFIRES = "1";
- /** 触发一次执行 */
+ /**
+ * 触发一次执行
+ */
public static final String MISFIRE_FIRE_AND_PROCEED = "2";
- /** 不触发立即执行 */
+ /**
+ * 不触发立即执行
+ */
public static final String MISFIRE_DO_NOTHING = "3";
- public enum Status
- {
+ @Getter
+ public enum Status {
/**
* 正常
*/
@@ -35,16 +46,11 @@ public class ScheduleConstants
*/
PAUSE("1");
- private String value;
+ private final String value;
- private Status(String value)
- {
+ Status(String value) {
this.value = value;
}
- public String getValue()
- {
- return value;
- }
}
}
diff --git a/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/IJobDataLogService.java b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/IJobDataLogService.java
new file mode 100644
index 00000000..76fc413d
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/IJobDataLogService.java
@@ -0,0 +1,31 @@
+package com.ruoyi.common.services;
+
+import com.ruoyi.common.services.constants.JobLogStatus;
+import com.ruoyi.common.services.domain.JobDataLog;
+
+/**
+ * 定时任务数据日志服务接口
+ *
+ * @author Alan Scipio
+ * created on 2024/2/20
+ */
+public interface IJobDataLogService {
+
+ /**
+ * 添加日志
+ */
+ void addLog(JobDataLog log);
+
+ default void addLog(JobLogStatus status, String logType, String message) {
+ JobDataLog log = new JobDataLog();
+ log.setStatus(status.getCode() + "");
+ log.setLogType(logType);
+ log.setMessage(message);
+ addLog(log);
+ }
+
+ default void addLog(JobLogStatus status, String message) {
+ addLog(status, null, message);
+ }
+
+}
diff --git a/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/JobDataLogServiceImpl.java b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/JobDataLogServiceImpl.java
new file mode 100644
index 00000000..b2298f1b
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/JobDataLogServiceImpl.java
@@ -0,0 +1,44 @@
+package com.ruoyi.common.services;
+
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.utils.uuid.snowflake.SnowFlakeIdGenerator;
+import com.ruoyi.common.services.domain.JobDataLog;
+import com.ruoyi.common.services.mapper.JobDataLogMapper;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+
+/**
+ * 定时任务数据日志服务接口
+ *
+ * @author Alan Scipio
+ * created on 2024/2/20
+ */
+@Service
+public class JobDataLogServiceImpl implements IJobDataLogService {
+
+ @Resource
+ private JobDataLogMapper jobDataLogMapper;
+
+ @Override
+ public void addLog(JobDataLog log) {
+ if (StringUtils.isBlank(log.getMessage())) {
+ throw new IllegalArgumentException("message cannot be blank");
+ }
+ if (StringUtils.isBlank(log.getStatus())) {
+ throw new IllegalArgumentException("status cannot be blank");
+ }
+ if (log.getStatus().length() > 1) {
+ throw new IllegalArgumentException("status length must be 1");
+ }
+ if (log.getLogId() == null) {
+ log.setLogId(SnowFlakeIdGenerator.nextIdLong());
+ }
+ if (log.getJobClass() == null) {
+ StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
+ StackTraceElement caller = stackTraceElements[2];
+ log.setJobClass(caller.getClassName());
+ log.setJobMethod(caller.getMethodName());
+ }
+ jobDataLogMapper.insertSelective(log);
+ }
+}
diff --git a/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/constants/JobLogStatus.java b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/constants/JobLogStatus.java
new file mode 100644
index 00000000..ffd1cfca
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/constants/JobLogStatus.java
@@ -0,0 +1,24 @@
+package com.ruoyi.common.services.constants;
+
+import com.ruoyi.common.core.constant.IEnum;
+import lombok.Getter;
+
+/**
+ * @author Alan Scipio
+ * created on 2024/2/20
+ */
+@Getter
+public enum JobLogStatus implements IEnum {
+
+ SUCCESS(0, "正常执行"),
+
+ ERROR(1, "异常");
+
+ private final int code;
+ private final String name;
+
+ JobLogStatus(int code, String name) {
+ this.code = code;
+ this.name = name;
+ }
+}
diff --git a/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/constants/SeqType.java b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/constants/SeqType.java
index a472ec9b..f954d585 100644
--- a/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/constants/SeqType.java
+++ b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/constants/SeqType.java
@@ -12,7 +12,7 @@ public enum SeqType implements IEnum {
UNIT_CD(1, "UNIT", "单位代码"),
- GOODE_TYPE_CD(2, "GT", "商品类型代码"),
+ ITEM_TYPE_CD(2, "ITYPE", "商品类型代码"),
WHS_CD(3, "WHS", "仓库代码"),
diff --git a/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/domain/JobDataLog.java b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/domain/JobDataLog.java
new file mode 100644
index 00000000..40d2708c
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/domain/JobDataLog.java
@@ -0,0 +1,166 @@
+package com.ruoyi.common.services.domain;
+
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * This class was generated by MyBatis Generator.
+ *
+ *
+ * - Table: sys_job_data_log
+ * - Remarks: 定时任务数据日志表
+ *
+ *
+ * @author ryas
+ * created on 2024-02-20
+ */
+public class JobDataLog extends BaseEntity implements Serializable {
+ /**
+ * 任务数据日志ID
+ */
+ private Long logId;
+
+ /**
+ * 执行开始时间
+ */
+ private Date startTime;
+
+ /**
+ * 执行结束时间
+ */
+ private Date endTime;
+
+ /**
+ * 日志内容
+ */
+ private String message;
+
+ /**
+ * 日志类型
+ */
+ private String logType;
+
+ /**
+ * 状态(0正常执行 1异常)
+ */
+ private String status;
+
+ /**
+ * 任务执行类
+ */
+ private String jobClass;
+
+ /**
+ * 任务执行方法名
+ */
+ private String jobMethod;
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ public static JobDataLog of(Date startTime, Date endTime, String message, String logType, String status, String jobClass, String jobMethod) {
+ JobDataLog jobDataLog = new JobDataLog();
+ jobDataLog.setStartTime(startTime);
+ jobDataLog.setEndTime(endTime);
+ jobDataLog.setMessage(message);
+ jobDataLog.setLogType(logType);
+ jobDataLog.setStatus(status);
+ jobDataLog.setJobClass(jobClass);
+ jobDataLog.setJobMethod(jobMethod);
+ return jobDataLog;
+ }
+
+ public static JobDataLog of(Date startTime, Date endTime, String message, String logType, String status) {
+ return of(startTime, endTime, message, logType, status, null, null);
+ }
+
+ public static JobDataLog of(String message, String logType, String status) {
+ return of(null, null, message, logType, status);
+ }
+
+ public Long getLogId() {
+ return logId;
+ }
+
+ public void setLogId(Long logId) {
+ this.logId = logId;
+ }
+
+ public Date getStartTime() {
+ return startTime;
+ }
+
+ public void setStartTime(Date startTime) {
+ this.startTime = startTime;
+ }
+
+ public Date getEndTime() {
+ return endTime;
+ }
+
+ public void setEndTime(Date endTime) {
+ this.endTime = endTime;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message == null ? null : message.trim();
+ }
+
+ public String getLogType() {
+ return logType;
+ }
+
+ public void setLogType(String logType) {
+ this.logType = logType == null ? null : logType.trim();
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status == null ? null : status.trim();
+ }
+
+ public String getJobClass() {
+ return jobClass;
+ }
+
+ public void setJobClass(String jobClass) {
+ this.jobClass = jobClass == null ? null : jobClass.trim();
+ }
+
+ public String getJobMethod() {
+ return jobMethod;
+ }
+
+ public void setJobMethod(String jobMethod) {
+ this.jobMethod = jobMethod == null ? null : jobMethod.trim();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append(getClass().getSimpleName());
+ sb.append(" [");
+ sb.append("Hash = ").append(hashCode());
+ sb.append(", logId=").append(logId);
+ sb.append(", startTime=").append(startTime);
+ sb.append(", endTime=").append(endTime);
+ sb.append(", message=").append(message);
+ sb.append(", logType=").append(logType);
+ sb.append(", status=").append(status);
+ sb.append(", jobClass=").append(jobClass);
+ sb.append(", jobMethod=").append(jobMethod);
+ sb.append(", serialVersionUID=").append(serialVersionUID);
+ sb.append("]");
+ return sb.toString();
+ }
+}
\ No newline at end of file
diff --git a/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/mapper/JobDataLogDynamicSqlSupport.java b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/mapper/JobDataLogDynamicSqlSupport.java
new file mode 100644
index 00000000..c08c47d3
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/mapper/JobDataLogDynamicSqlSupport.java
@@ -0,0 +1,108 @@
+package com.ruoyi.common.services.mapper;
+
+import org.mybatis.dynamic.sql.AliasableSqlTable;
+import org.mybatis.dynamic.sql.SqlColumn;
+
+import java.sql.JDBCType;
+import java.util.Date;
+
+public final class JobDataLogDynamicSqlSupport {
+ public static final JobDataLog jobDataLog = new JobDataLog();
+
+ /**
+ * 任务数据日志ID
+ */
+ public static final SqlColumn logId = jobDataLog.logId;
+
+ /**
+ * 执行开始时间
+ */
+ public static final SqlColumn startTime = jobDataLog.startTime;
+
+ /**
+ * 执行结束时间
+ */
+ public static final SqlColumn endTime = jobDataLog.endTime;
+
+ /**
+ * 日志内容
+ */
+ public static final SqlColumn message = jobDataLog.message;
+
+ /**
+ * 日志类型
+ */
+ public static final SqlColumn logType = jobDataLog.logType;
+
+ /**
+ * 状态(0正常执行 1异常)
+ */
+ public static final SqlColumn status = jobDataLog.status;
+
+ /**
+ * 任务执行类
+ */
+ public static final SqlColumn jobClass = jobDataLog.jobClass;
+
+ /**
+ * 任务执行方法名
+ */
+ public static final SqlColumn jobMethod = jobDataLog.jobMethod;
+
+ /**
+ * 创建者
+ */
+ public static final SqlColumn createBy = jobDataLog.createBy;
+
+ /**
+ * 创建时间
+ */
+ public static final SqlColumn createTime = jobDataLog.createTime;
+
+ /**
+ * 更新者
+ */
+ public static final SqlColumn updateBy = jobDataLog.updateBy;
+
+ /**
+ * 更新时间
+ */
+ public static final SqlColumn updateTime = jobDataLog.updateTime;
+
+ /**
+ * 备注信息
+ */
+ public static final SqlColumn remark = jobDataLog.remark;
+
+ public static final class JobDataLog extends AliasableSqlTable {
+ public final SqlColumn logId = column("log_id", JDBCType.BIGINT);
+
+ public final SqlColumn startTime = column("start_time", JDBCType.TIMESTAMP);
+
+ public final SqlColumn endTime = column("end_time", JDBCType.TIMESTAMP);
+
+ public final SqlColumn message = column("message", JDBCType.VARCHAR);
+
+ public final SqlColumn logType = column("log_type", JDBCType.CHAR);
+
+ public final SqlColumn status = column("status", JDBCType.CHAR);
+
+ public final SqlColumn jobClass = column("job_class", JDBCType.VARCHAR);
+
+ public final SqlColumn jobMethod = column("job_method", JDBCType.VARCHAR);
+
+ public final SqlColumn createBy = column("create_by", JDBCType.VARCHAR);
+
+ public final SqlColumn createTime = column("create_time", JDBCType.TIMESTAMP);
+
+ public final SqlColumn updateBy = column("update_by", JDBCType.VARCHAR);
+
+ public final SqlColumn updateTime = column("update_time", JDBCType.TIMESTAMP);
+
+ public final SqlColumn remark = column("remark", JDBCType.VARCHAR);
+
+ public JobDataLog() {
+ super("sys_job_data_log", JobDataLog::new);
+ }
+ }
+}
\ No newline at end of file
diff --git a/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/mapper/JobDataLogMapper.java b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/mapper/JobDataLogMapper.java
new file mode 100644
index 00000000..9c5333e6
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/mapper/JobDataLogMapper.java
@@ -0,0 +1,215 @@
+package com.ruoyi.common.services.mapper;
+
+import com.ruoyi.common.security.utils.SecurityUtilsExt;
+import com.ruoyi.common.services.domain.JobDataLog;
+import org.apache.ibatis.annotations.*;
+import org.apache.ibatis.type.JdbcType;
+import org.mybatis.dynamic.sql.BasicColumn;
+import org.mybatis.dynamic.sql.delete.DeleteDSLCompleter;
+import org.mybatis.dynamic.sql.select.CountDSLCompleter;
+import org.mybatis.dynamic.sql.select.SelectDSLCompleter;
+import org.mybatis.dynamic.sql.select.render.SelectStatementProvider;
+import org.mybatis.dynamic.sql.update.UpdateDSL;
+import org.mybatis.dynamic.sql.update.UpdateDSLCompleter;
+import org.mybatis.dynamic.sql.update.UpdateModel;
+import org.mybatis.dynamic.sql.util.SqlProviderAdapter;
+import org.mybatis.dynamic.sql.util.mybatis3.*;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Optional;
+
+import static com.ruoyi.common.services.mapper.JobDataLogDynamicSqlSupport.*;
+import static org.mybatis.dynamic.sql.SqlBuilder.isEqualTo;
+
+@Mapper
+public interface JobDataLogMapper extends CommonCountMapper, CommonDeleteMapper, CommonInsertMapper, CommonUpdateMapper {
+ BasicColumn[] selectList = BasicColumn.columnList(logId, startTime, endTime, message, logType, status, jobClass, jobMethod, createBy, createTime, updateBy, updateTime, remark);
+
+ @SelectProvider(type=SqlProviderAdapter.class, method="select")
+ @Results(id="JobDataLogResult", value = {
+ @Result(column="log_id", property="logId", jdbcType=JdbcType.BIGINT, id=true),
+ @Result(column="start_time", property="startTime", jdbcType=JdbcType.TIMESTAMP),
+ @Result(column="end_time", property="endTime", jdbcType=JdbcType.TIMESTAMP),
+ @Result(column="message", property="message", jdbcType=JdbcType.VARCHAR),
+ @Result(column="log_type", property="logType", jdbcType=JdbcType.CHAR),
+ @Result(column="status", property="status", jdbcType=JdbcType.CHAR),
+ @Result(column="job_class", property="jobClass", jdbcType=JdbcType.VARCHAR),
+ @Result(column="job_method", property="jobMethod", jdbcType=JdbcType.VARCHAR),
+ @Result(column="create_by", property="createBy", jdbcType=JdbcType.VARCHAR),
+ @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
+ @Result(column="update_by", property="updateBy", jdbcType=JdbcType.VARCHAR),
+ @Result(column="update_time", property="updateTime", jdbcType=JdbcType.TIMESTAMP),
+ @Result(column="remark", property="remark", jdbcType=JdbcType.VARCHAR)
+ })
+ List selectMany(SelectStatementProvider selectStatement);
+
+ @SelectProvider(type=SqlProviderAdapter.class, method="select")
+ @ResultMap("JobDataLogResult")
+ Optional selectOne(SelectStatementProvider selectStatement);
+
+ default long count(CountDSLCompleter completer) {
+ return MyBatis3Utils.countFrom(this::count, jobDataLog, completer);
+ }
+
+ default int delete(DeleteDSLCompleter completer) {
+ return MyBatis3Utils.deleteFrom(this::delete, jobDataLog, completer);
+ }
+
+ default int deleteByPrimaryKey(Long logId_) {
+ return delete(c ->
+ c.where(logId, isEqualTo(logId_))
+ );
+ }
+
+ default int insert(JobDataLog row) {
+ row.setCommonForInsert(SecurityUtilsExt.getUserIdStr());
+ return MyBatis3Utils.insert(this::insert, row, jobDataLog, c ->
+ c.map(logId).toProperty("logId")
+ .map(startTime).toProperty("startTime")
+ .map(endTime).toProperty("endTime")
+ .map(message).toProperty("message")
+ .map(logType).toProperty("logType")
+ .map(status).toProperty("status")
+ .map(jobClass).toProperty("jobClass")
+ .map(jobMethod).toProperty("jobMethod")
+ .map(createBy).toProperty("createBy")
+ .map(createTime).toProperty("createTime")
+ .map(updateBy).toProperty("updateBy")
+ .map(updateTime).toProperty("updateTime")
+ .map(remark).toProperty("remark")
+ );
+ }
+
+ default int insertMultiple(Collection records) {
+ for (JobDataLog row : records) {
+ row.setCommonForInsert(SecurityUtilsExt.getUserIdStr());
+ }
+ return MyBatis3Utils.insertMultiple(this::insertMultiple, records, jobDataLog, c ->
+ c.map(logId).toProperty("logId")
+ .map(startTime).toProperty("startTime")
+ .map(endTime).toProperty("endTime")
+ .map(message).toProperty("message")
+ .map(logType).toProperty("logType")
+ .map(status).toProperty("status")
+ .map(jobClass).toProperty("jobClass")
+ .map(jobMethod).toProperty("jobMethod")
+ .map(createBy).toProperty("createBy")
+ .map(createTime).toProperty("createTime")
+ .map(updateBy).toProperty("updateBy")
+ .map(updateTime).toProperty("updateTime")
+ .map(remark).toProperty("remark")
+ );
+ }
+
+ default int insertSelective(JobDataLog row) {
+ row.setCommonForInsert(SecurityUtilsExt.getUserIdStr());
+ return MyBatis3Utils.insert(this::insert, row, jobDataLog, c ->
+ c.map(logId).toPropertyWhenPresent("logId", row::getLogId)
+ .map(startTime).toPropertyWhenPresent("startTime", row::getStartTime)
+ .map(endTime).toPropertyWhenPresent("endTime", row::getEndTime)
+ .map(message).toPropertyWhenPresent("message", row::getMessage)
+ .map(logType).toPropertyWhenPresent("logType", row::getLogType)
+ .map(status).toPropertyWhenPresent("status", row::getStatus)
+ .map(jobClass).toPropertyWhenPresent("jobClass", row::getJobClass)
+ .map(jobMethod).toPropertyWhenPresent("jobMethod", row::getJobMethod)
+ .map(createBy).toPropertyWhenPresent("createBy", row::getCreateBy)
+ .map(createTime).toPropertyWhenPresent("createTime", row::getCreateTime)
+ .map(updateBy).toPropertyWhenPresent("updateBy", row::getUpdateBy)
+ .map(updateTime).toPropertyWhenPresent("updateTime", row::getUpdateTime)
+ .map(remark).toPropertyWhenPresent("remark", row::getRemark)
+ );
+ }
+
+ default Optional selectOne(SelectDSLCompleter completer) {
+ return MyBatis3Utils.selectOne(this::selectOne, selectList, jobDataLog, completer);
+ }
+
+ default List select(SelectDSLCompleter completer) {
+ return MyBatis3Utils.selectList(this::selectMany, selectList, jobDataLog, completer);
+ }
+
+ default List selectDistinct(SelectDSLCompleter completer) {
+ return MyBatis3Utils.selectDistinct(this::selectMany, selectList, jobDataLog, completer);
+ }
+
+ default Optional selectByPrimaryKey(Long logId_) {
+ return selectOne(c ->
+ c.where(logId, isEqualTo(logId_))
+ );
+ }
+
+ default int update(UpdateDSLCompleter completer) {
+ return MyBatis3Utils.update(this::update, jobDataLog, completer);
+ }
+
+ static UpdateDSL updateAllColumns(JobDataLog row, UpdateDSL dsl) {
+ return dsl.set(logId).equalTo(row::getLogId)
+ .set(startTime).equalTo(row::getStartTime)
+ .set(endTime).equalTo(row::getEndTime)
+ .set(message).equalTo(row::getMessage)
+ .set(logType).equalTo(row::getLogType)
+ .set(status).equalTo(row::getStatus)
+ .set(jobClass).equalTo(row::getJobClass)
+ .set(jobMethod).equalTo(row::getJobMethod)
+ .set(createBy).equalTo(row::getCreateBy)
+ .set(createTime).equalTo(row::getCreateTime)
+ .set(updateBy).equalTo(row::getUpdateBy)
+ .set(updateTime).equalTo(row::getUpdateTime)
+ .set(remark).equalTo(row::getRemark);
+ }
+
+ static UpdateDSL updateSelectiveColumns(JobDataLog row, UpdateDSL dsl) {
+ row.setCommonForUpdate(SecurityUtilsExt.getUserIdStr());
+ return dsl.set(logId).equalToWhenPresent(row::getLogId)
+ .set(startTime).equalToWhenPresent(row::getStartTime)
+ .set(endTime).equalToWhenPresent(row::getEndTime)
+ .set(message).equalToWhenPresent(row::getMessage)
+ .set(logType).equalToWhenPresent(row::getLogType)
+ .set(status).equalToWhenPresent(row::getStatus)
+ .set(jobClass).equalToWhenPresent(row::getJobClass)
+ .set(jobMethod).equalToWhenPresent(row::getJobMethod)
+ .set(createBy).equalToWhenPresent(row::getCreateBy)
+ .set(createTime).equalToWhenPresent(row::getCreateTime)
+ .set(updateBy).equalToWhenPresent(row::getUpdateBy)
+ .set(updateTime).equalToWhenPresent(row::getUpdateTime)
+ .set(remark).equalToWhenPresent(row::getRemark);
+ }
+
+ default int updateByPrimaryKey(JobDataLog row) {
+ return update(c ->
+ c.set(startTime).equalTo(row::getStartTime)
+ .set(endTime).equalTo(row::getEndTime)
+ .set(message).equalTo(row::getMessage)
+ .set(logType).equalTo(row::getLogType)
+ .set(status).equalTo(row::getStatus)
+ .set(jobClass).equalTo(row::getJobClass)
+ .set(jobMethod).equalTo(row::getJobMethod)
+ .set(createBy).equalTo(row::getCreateBy)
+ .set(createTime).equalTo(row::getCreateTime)
+ .set(updateBy).equalTo(row::getUpdateBy)
+ .set(updateTime).equalTo(row::getUpdateTime)
+ .set(remark).equalTo(row::getRemark)
+ .where(logId, isEqualTo(row::getLogId))
+ );
+ }
+
+ default int updateByPrimaryKeySelective(JobDataLog row) {
+ row.setCommonForUpdate(SecurityUtilsExt.getUserIdStr());
+ return update(c ->
+ c.set(startTime).equalToWhenPresent(row::getStartTime)
+ .set(endTime).equalToWhenPresent(row::getEndTime)
+ .set(message).equalToWhenPresent(row::getMessage)
+ .set(logType).equalToWhenPresent(row::getLogType)
+ .set(status).equalToWhenPresent(row::getStatus)
+ .set(jobClass).equalToWhenPresent(row::getJobClass)
+ .set(jobMethod).equalToWhenPresent(row::getJobMethod)
+ .set(createBy).equalToWhenPresent(row::getCreateBy)
+ .set(createTime).equalToWhenPresent(row::getCreateTime)
+ .set(updateBy).equalToWhenPresent(row::getUpdateBy)
+ .set(updateTime).equalToWhenPresent(row::getUpdateTime)
+ .set(remark).equalToWhenPresent(row::getRemark)
+ .where(logId, isEqualTo(row::getLogId))
+ );
+ }
+}
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/RuoYiFileApplication.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/RuoYiFileApplication.java
index dbdb2e97..c70bff9d 100644
--- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/RuoYiFileApplication.java
+++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/RuoYiFileApplication.java
@@ -16,6 +16,7 @@ import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class RuoYiFileApplication {
public static void main(String[] args) {
+ System.setProperty("pagehelper.banner", "false"); //关闭pagehelper的banner
SpringApplication.run(RuoYiFileApplication.class, args);
System.out.println("(♥◠‿◠)ノ゙ 文件服务模块启动成功 ლ(´ڡ`ლ)゙");
}
diff --git a/ruoyi-modules/ruoyi-job/pom.xml b/ruoyi-modules/ruoyi-job/pom.xml
index d8f3cda3..2679ea5a 100644
--- a/ruoyi-modules/ruoyi-job/pom.xml
+++ b/ruoyi-modules/ruoyi-job/pom.xml
@@ -16,8 +16,8 @@
-
-
+
+
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
@@ -46,7 +46,7 @@
org.springframework.boot
spring-boot-starter-actuator
-
+
diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/domain/SysJob.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/domain/SysJob.java
index 728faac9..a3d075b5 100644
--- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/domain/SysJob.java
+++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/domain/SysJob.java
@@ -1,12 +1,5 @@
package com.ruoyi.job.domain;
-import java.io.Serial;
-import java.util.Date;
-
-import jakarta.validation.constraints.NotBlank;
-import jakarta.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.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.annotation.Excel.ColumnType;
@@ -14,6 +7,13 @@ import com.ruoyi.common.core.constant.ScheduleConstants;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.web.domain.BaseEntity;
import com.ruoyi.job.util.CronUtils;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.Size;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.io.Serial;
+import java.util.Date;
/**
* 定时任务调度表 sys_job
@@ -51,7 +51,7 @@ public class SysJob extends BaseEntity {
/**
* cron执行表达式
*/
- @Excel(name = "执行表达式 ")
+ @Excel(name = "执行表达式")
private String cronExpression;
/**
@@ -72,6 +72,12 @@ public class SysJob extends BaseEntity {
@Excel(name = "任务状态", readConverterExp = "0=正常,1=暂停")
private String status;
+ /**
+ * 自定义QuartzJob类
+ */
+ @Excel(name = "自定义QuartzJob类")
+ private String customJobClass;
+
public Long getJobId() {
return jobId;
}
@@ -150,6 +156,14 @@ public class SysJob extends BaseEntity {
this.status = status;
}
+ public String getCustomJobClass() {
+ return customJobClass;
+ }
+
+ public void setCustomJobClass(String customJobClass) {
+ this.customJobClass = customJobClass;
+ }
+
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
@@ -161,6 +175,7 @@ public class SysJob extends BaseEntity {
.append("misfirePolicy", getMisfirePolicy())
.append("concurrent", getConcurrent())
.append("status", getStatus())
+ .append("customJobClass", getCustomJobClass())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobLogMapper.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobLogMapper.java
index 742eba54..d6b739b1 100644
--- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobLogMapper.java
+++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobLogMapper.java
@@ -1,64 +1,64 @@
package com.ruoyi.job.mapper;
-import java.util.List;
import com.ruoyi.job.domain.SysJobLog;
+import java.util.List;
+
/**
* 调度任务日志信息 数据层
- *
+ *
* @author ruoyi
*/
-public interface SysJobLogMapper
-{
+public interface SysJobLogMapper {
/**
* 获取quartz调度器日志的计划任务
- *
+ *
* @param jobLog 调度日志信息
* @return 调度任务日志集合
*/
- public List selectJobLogList(SysJobLog jobLog);
+ List selectJobLogList(SysJobLog jobLog);
/**
* 查询所有调度任务日志
*
* @return 调度任务日志列表
*/
- public List selectJobLogAll();
+ List selectJobLogAll();
/**
* 通过调度任务日志ID查询调度信息
- *
+ *
* @param jobLogId 调度任务日志ID
* @return 调度任务日志对象信息
*/
- public SysJobLog selectJobLogById(Long jobLogId);
+ SysJobLog selectJobLogById(Long jobLogId);
/**
* 新增任务日志
- *
+ *
* @param jobLog 调度日志信息
* @return 结果
*/
- public int insertJobLog(SysJobLog jobLog);
+ int insertJobLog(SysJobLog jobLog);
/**
* 批量删除调度日志信息
- *
+ *
* @param logIds 需要删除的数据ID
* @return 结果
*/
- public int deleteJobLogByIds(Long[] logIds);
+ int deleteJobLogByIds(Long[] logIds);
/**
* 删除任务日志
- *
+ *
* @param jobId 调度日志ID
* @return 结果
*/
- public int deleteJobLogById(Long jobId);
+ int deleteJobLogById(Long jobId);
/**
* 清空任务日志
*/
- public void cleanJobLog();
+ void cleanJobLog();
}
diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobMapper.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobMapper.java
index 352fa874..dd67df6b 100644
--- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobMapper.java
+++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobMapper.java
@@ -1,67 +1,67 @@
package com.ruoyi.job.mapper;
-import java.util.List;
import com.ruoyi.job.domain.SysJob;
+import java.util.List;
+
/**
* 调度任务信息 数据层
- *
+ *
* @author ruoyi
*/
-public interface SysJobMapper
-{
+public interface SysJobMapper {
/**
* 查询调度任务日志集合
- *
+ *
* @param job 调度信息
* @return 操作日志集合
*/
- public List selectJobList(SysJob job);
+ List selectJobList(SysJob job);
/**
* 查询所有调度任务
- *
+ *
* @return 调度任务列表
*/
- public List selectJobAll();
+ List selectJobAll();
/**
* 通过调度ID查询调度任务信息
- *
+ *
* @param jobId 调度ID
* @return 角色对象信息
*/
- public SysJob selectJobById(Long jobId);
+ SysJob selectJobById(Long jobId);
/**
* 通过调度ID删除调度任务信息
- *
+ *
* @param jobId 调度ID
* @return 结果
*/
- public int deleteJobById(Long jobId);
+ int deleteJobById(Long jobId);
/**
* 批量删除调度任务信息
- *
+ *
* @param ids 需要删除的数据ID
* @return 结果
*/
- public int deleteJobByIds(Long[] ids);
+ int deleteJobByIds(Long[] ids);
/**
* 修改调度任务信息
- *
+ *
* @param job 调度任务信息
* @return 结果
*/
- public int updateJob(SysJob job);
+ int updateJob(SysJob job);
/**
* 新增调度任务信息
- *
+ *
* @param job 调度任务信息
* @return 结果
*/
- public int insertJob(SysJob job);
+ int insertJob(SysJob job);
}
diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/ISysJobLogService.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/ISysJobLogService.java
index 0e804e20..45ca0958 100644
--- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/ISysJobLogService.java
+++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/ISysJobLogService.java
@@ -1,56 +1,56 @@
package com.ruoyi.job.service;
-import java.util.List;
import com.ruoyi.job.domain.SysJobLog;
+import java.util.List;
+
/**
* 定时任务调度日志信息信息 服务层
- *
+ *
* @author ruoyi
*/
-public interface ISysJobLogService
-{
+public interface ISysJobLogService {
/**
* 获取quartz调度器日志的计划任务
- *
+ *
* @param jobLog 调度日志信息
* @return 调度任务日志集合
*/
- public List selectJobLogList(SysJobLog jobLog);
+ List selectJobLogList(SysJobLog jobLog);
/**
* 通过调度任务日志ID查询调度信息
- *
+ *
* @param jobLogId 调度任务日志ID
* @return 调度任务日志对象信息
*/
- public SysJobLog selectJobLogById(Long jobLogId);
+ SysJobLog selectJobLogById(Long jobLogId);
/**
* 新增任务日志
- *
+ *
* @param jobLog 调度日志信息
*/
- public void addJobLog(SysJobLog jobLog);
+ void addJobLog(SysJobLog jobLog);
/**
* 批量删除调度日志信息
- *
+ *
* @param logIds 需要删除的日志ID
* @return 结果
*/
- public int deleteJobLogByIds(Long[] logIds);
+ int deleteJobLogByIds(Long[] logIds);
/**
* 删除任务日志
- *
+ *
* @param jobId 调度日志ID
* @return 结果
*/
- public int deleteJobLogById(Long jobId);
+ int deleteJobLogById(Long jobId);
/**
* 清空任务日志
*/
- public void cleanJobLog();
+ void cleanJobLog();
}
diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobLogServiceImpl.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobLogServiceImpl.java
index 0886f310..60a2dcde 100644
--- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobLogServiceImpl.java
+++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobLogServiceImpl.java
@@ -1,77 +1,72 @@
package com.ruoyi.job.service;
-import java.util.List;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
import com.ruoyi.job.domain.SysJobLog;
import com.ruoyi.job.mapper.SysJobLogMapper;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
/**
* 定时任务调度日志信息 服务层
- *
+ *
* @author ruoyi
*/
@Service
-public class SysJobLogServiceImpl implements ISysJobLogService
-{
- @Autowired
+public class SysJobLogServiceImpl implements ISysJobLogService {
+ @Resource
private SysJobLogMapper jobLogMapper;
/**
* 获取quartz调度器日志的计划任务
- *
+ *
* @param jobLog 调度日志信息
* @return 调度任务日志集合
*/
@Override
- public List selectJobLogList(SysJobLog jobLog)
- {
+ public List selectJobLogList(SysJobLog jobLog) {
return jobLogMapper.selectJobLogList(jobLog);
}
/**
* 通过调度任务日志ID查询调度信息
- *
+ *
* @param jobLogId 调度任务日志ID
* @return 调度任务日志对象信息
*/
@Override
- public SysJobLog selectJobLogById(Long jobLogId)
- {
+ public SysJobLog selectJobLogById(Long jobLogId) {
return jobLogMapper.selectJobLogById(jobLogId);
}
/**
* 新增任务日志
- *
+ *
* @param jobLog 调度日志信息
*/
@Override
- public void addJobLog(SysJobLog jobLog)
- {
+ public void addJobLog(SysJobLog jobLog) {
jobLogMapper.insertJobLog(jobLog);
}
/**
* 批量删除调度日志信息
- *
+ *
* @param logIds 需要删除的数据ID
* @return 结果
*/
@Override
- public int deleteJobLogByIds(Long[] logIds)
- {
+ public int deleteJobLogByIds(Long[] logIds) {
return jobLogMapper.deleteJobLogByIds(logIds);
}
/**
* 删除任务日志
- *
+ *
* @param jobId 调度日志ID
*/
@Override
- public int deleteJobLogById(Long jobId)
- {
+ public int deleteJobLogById(Long jobId) {
return jobLogMapper.deleteJobLogById(jobId);
}
@@ -79,8 +74,7 @@ public class SysJobLogServiceImpl implements ISysJobLogService
* 清空任务日志
*/
@Override
- public void cleanJobLog()
- {
+ public void cleanJobLog() {
jobLogMapper.cleanJobLog();
}
}
diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java
index 71fda968..2ece6374 100644
--- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java
+++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java
@@ -1,21 +1,21 @@
package com.ruoyi.job.service;
-import java.util.List;
-
+import com.ruoyi.common.core.constant.ScheduleConstants;
+import com.ruoyi.common.core.exception.job.TaskException;
+import com.ruoyi.job.domain.SysJob;
+import com.ruoyi.job.mapper.SysJobMapper;
+import com.ruoyi.job.util.CronUtils;
+import com.ruoyi.job.util.ScheduleUtils;
import jakarta.annotation.PostConstruct;
+import jakarta.annotation.Resource;
import org.quartz.JobDataMap;
import org.quartz.JobKey;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.ruoyi.common.core.constant.ScheduleConstants;
-import com.ruoyi.common.core.exception.job.TaskException;
-import com.ruoyi.job.domain.SysJob;
-import com.ruoyi.job.mapper.SysJobMapper;
-import com.ruoyi.job.util.CronUtils;
-import com.ruoyi.job.util.ScheduleUtils;
+
+import java.util.List;
/**
* 定时任务调度信息 服务层
@@ -24,10 +24,10 @@ import com.ruoyi.job.util.ScheduleUtils;
*/
@Service
public class SysJobServiceImpl implements ISysJobService {
- @Autowired
+ @Resource
private Scheduler scheduler;
- @Autowired
+ @Resource
private SysJobMapper jobMapper;
/**
diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/RyTask.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/RyTask.java
index 01bd14a8..9d5d568a 100644
--- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/RyTask.java
+++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/RyTask.java
@@ -5,24 +5,20 @@ import com.ruoyi.common.core.utils.StringUtils;
/**
* 定时任务调度测试
- *
+ *
* @author ruoyi
*/
@Component("ryTask")
-public class RyTask
-{
- public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
- {
+public class RyTask {
+ public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) {
System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
}
- public void ryParams(String params)
- {
+ public void ryParams(String params) {
System.out.println("执行有参方法:" + params);
}
- public void ryNoParams()
- {
+ public void ryNoParams() {
System.out.println("执行无参方法");
}
}
diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/AbstractQuartzJob.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/AbstractQuartzJob.java
index 0097d1e6..a269f53c 100644
--- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/AbstractQuartzJob.java
+++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/AbstractQuartzJob.java
@@ -1,11 +1,5 @@
package com.ruoyi.job.util;
-import java.util.Date;
-import org.quartz.Job;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import com.ruoyi.common.core.constant.ScheduleConstants;
import com.ruoyi.common.core.utils.ExceptionUtil;
import com.ruoyi.common.core.utils.SpringUtils;
@@ -14,38 +8,36 @@ import com.ruoyi.common.core.utils.bean.BeanUtils;
import com.ruoyi.job.domain.SysJob;
import com.ruoyi.job.domain.SysJobLog;
import com.ruoyi.job.service.ISysJobLogService;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Date;
/**
* 抽象quartz调用
*
* @author ruoyi
*/
-public abstract class AbstractQuartzJob implements Job
-{
+public abstract class AbstractQuartzJob implements Job {
private static final Logger log = LoggerFactory.getLogger(AbstractQuartzJob.class);
/**
* 线程本地变量
*/
- private static ThreadLocal threadLocal = new ThreadLocal<>();
+ private static final ThreadLocal threadLocal = new ThreadLocal<>();
@Override
- public void execute(JobExecutionContext context) throws JobExecutionException
- {
+ public void execute(JobExecutionContext context) {
SysJob sysJob = new SysJob();
BeanUtils.copyBeanProp(sysJob, context.getMergedJobDataMap().get(ScheduleConstants.TASK_PROPERTIES));
- try
- {
+ try {
before(context, sysJob);
- if (sysJob != null)
- {
- doExecute(context, sysJob);
- }
+ doExecute(context, sysJob);
after(context, sysJob, null);
- }
- catch (Exception e)
- {
- log.error("任务执行异常 - :", e);
+ } catch (Exception e) {
+ log.error("任务执行异常 - :", e);
after(context, sysJob, e);
}
}
@@ -54,10 +46,9 @@ public abstract class AbstractQuartzJob implements Job
* 执行前
*
* @param context 工作执行上下文对象
- * @param sysJob 系统计划任务
+ * @param sysJob 系统计划任务
*/
- protected void before(JobExecutionContext context, SysJob sysJob)
- {
+ protected void before(JobExecutionContext context, SysJob sysJob) {
threadLocal.set(new Date());
}
@@ -65,10 +56,9 @@ public abstract class AbstractQuartzJob implements Job
* 执行后
*
* @param context 工作执行上下文对象
- * @param sysJob 系统计划任务
+ * @param sysJob 系统计划任务
*/
- protected void after(JobExecutionContext context, SysJob sysJob, Exception e)
- {
+ protected void after(JobExecutionContext context, SysJob sysJob, Exception e) {
Date startTime = threadLocal.get();
threadLocal.remove();
@@ -80,14 +70,11 @@ public abstract class AbstractQuartzJob implements Job
sysJobLog.setStopTime(new Date());
long runMs = sysJobLog.getStopTime().getTime() - sysJobLog.getStartTime().getTime();
sysJobLog.setJobMessage(sysJobLog.getJobName() + " 总共耗时:" + runMs + "毫秒");
- if (e != null)
- {
+ if (e != null) {
sysJobLog.setStatus("1");
String errorMsg = StringUtils.substring(ExceptionUtil.getExceptionMessage(e), 0, 2000);
sysJobLog.setExceptionInfo(errorMsg);
- }
- else
- {
+ } else {
sysJobLog.setStatus("0");
}
@@ -99,7 +86,7 @@ public abstract class AbstractQuartzJob implements Job
* 执行方法,由子类重载
*
* @param context 工作执行上下文对象
- * @param sysJob 系统计划任务
+ * @param sysJob 系统计划任务
* @throws Exception 执行过程中的异常
*/
protected abstract void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception;
diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/CronUtils.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/CronUtils.java
index 98a4147d..a0669fec 100644
--- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/CronUtils.java
+++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/CronUtils.java
@@ -1,25 +1,23 @@
package com.ruoyi.job.util;
+import org.quartz.CronExpression;
+
import java.text.ParseException;
import java.util.Date;
-import org.quartz.CronExpression;
/**
* cron表达式工具类
- *
- * @author ruoyi
*
+ * @author ruoyi
*/
-public class CronUtils
-{
+public class CronUtils {
/**
* 返回一个布尔值代表一个给定的Cron表达式的有效性
*
* @param cronExpression Cron表达式
* @return boolean 表达式是否有效
*/
- public static boolean isValid(String cronExpression)
- {
+ public static boolean isValid(String cronExpression) {
return CronExpression.isValidExpression(cronExpression);
}
@@ -29,15 +27,11 @@ public class CronUtils
* @param cronExpression Cron表达式
* @return String 无效时返回表达式错误描述,如果有效返回null
*/
- public static String getInvalidMessage(String cronExpression)
- {
- try
- {
+ public static String getInvalidMessage(String cronExpression) {
+ try {
new CronExpression(cronExpression);
return null;
- }
- catch (ParseException pe)
- {
+ } catch (ParseException pe) {
return pe.getMessage();
}
}
@@ -48,15 +42,11 @@ public class CronUtils
* @param cronExpression Cron表达式
* @return Date 下次Cron表达式执行时间
*/
- public static Date getNextExecution(String cronExpression)
- {
- try
- {
+ public static Date getNextExecution(String cronExpression) {
+ try {
CronExpression cron = new CronExpression(cronExpression);
return cron.getNextValidTimeAfter(new Date(System.currentTimeMillis()));
- }
- catch (ParseException e)
- {
+ } catch (ParseException e) {
throw new IllegalArgumentException(e.getMessage());
}
}
diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/JobInvokeUtil.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/JobInvokeUtil.java
index 9a81a35a..4fe90d53 100644
--- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/JobInvokeUtil.java
+++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/JobInvokeUtil.java
@@ -1,39 +1,36 @@
package com.ruoyi.job.util;
+import com.ruoyi.common.core.utils.SpringUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.job.domain.SysJob;
+
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.LinkedList;
import java.util.List;
-import com.ruoyi.common.core.utils.SpringUtils;
-import com.ruoyi.common.core.utils.StringUtils;
-import com.ruoyi.job.domain.SysJob;
/**
* 任务执行工具
*
* @author ruoyi
*/
-public class JobInvokeUtil
-{
+public class JobInvokeUtil {
+
/**
* 执行方法
*
* @param sysJob 系统任务
*/
- public static void invokeMethod(SysJob sysJob) throws Exception
- {
+ public static void invokeMethod(SysJob sysJob) throws Exception {
String invokeTarget = sysJob.getInvokeTarget();
String beanName = getBeanName(invokeTarget);
String methodName = getMethodName(invokeTarget);
List