ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java
@@ -7,6 +7,7 @@ import java.io.Serializable; import java.util.Date; import java.util.HashMap; import java.util.Map; /** @@ -43,6 +44,6 @@ private String remark; /** 请求参数 */ private Map<String, Object> params; private Map<String, Object> params = new HashMap<>(); } ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java
@@ -1,24 +1,37 @@ package com.ruoyi.generator.domain; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.constant.GenConstants; import com.ruoyi.common.core.domain.BaseEntity; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import org.apache.commons.lang3.ArrayUtils; import javax.validation.Valid; import javax.validation.constraints.NotBlank; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 业务表 gen_table * * @author ruoyi */ public class GenTable extends BaseEntity @Data @NoArgsConstructor @Accessors(chain = true) @TableName("gen_table") public class GenTable { private static final long serialVersionUID = 1L; /** 编号 */ @TableId(value = "table_id", type = IdType.AUTO) private Long tableId; /** 表名称 */ @@ -69,262 +82,75 @@ private String genPath; /** 主键信息 */ @TableField(exist = false) private GenTableColumn pkColumn; /** 子表信息 */ @TableField(exist = false) private GenTable subTable; /** 表列信息 */ @Valid @TableField(exist = false) private List<GenTableColumn> columns; /** 其它生成选项 */ private String options; /** * 创建者 */ private String createBy; /** * 创建时间 */ @TableField(fill = FieldFill.INSERT) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; /** * 更新者 */ private String updateBy; /** * 更新时间 */ @TableField(fill = FieldFill.INSERT_UPDATE) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; /** * 备注 */ private String remark; /** * 请求参数 */ @TableField(exist = false) private Map<String, Object> params = new HashMap<>(); /** 树编码字段 */ @TableField(exist = false) private String treeCode; /** 树父编码字段 */ @TableField(exist = false) private String treeParentCode; /** 树名称字段 */ @TableField(exist = false) private String treeName; /** 上级菜单ID字段 */ @TableField(exist = false) private String parentMenuId; /** 上级菜单名称字段 */ @TableField(exist = false) private String parentMenuName; public Long getTableId() { return tableId; } public void setTableId(Long tableId) { this.tableId = tableId; } public String getTableName() { return tableName; } public void setTableName(String tableName) { this.tableName = tableName; } public String getTableComment() { return tableComment; } public void setTableComment(String tableComment) { this.tableComment = tableComment; } public String getSubTableName() { return subTableName; } public void setSubTableName(String subTableName) { this.subTableName = subTableName; } public String getSubTableFkName() { return subTableFkName; } public void setSubTableFkName(String subTableFkName) { this.subTableFkName = subTableFkName; } public String getClassName() { return className; } public void setClassName(String className) { this.className = className; } public String getTplCategory() { return tplCategory; } public void setTplCategory(String tplCategory) { this.tplCategory = tplCategory; } public String getPackageName() { return packageName; } public void setPackageName(String packageName) { this.packageName = packageName; } public String getModuleName() { return moduleName; } public void setModuleName(String moduleName) { this.moduleName = moduleName; } public String getBusinessName() { return businessName; } public void setBusinessName(String businessName) { this.businessName = businessName; } public String getFunctionName() { return functionName; } public void setFunctionName(String functionName) { this.functionName = functionName; } public String getFunctionAuthor() { return functionAuthor; } public void setFunctionAuthor(String functionAuthor) { this.functionAuthor = functionAuthor; } public String getGenType() { return genType; } public void setGenType(String genType) { this.genType = genType; } public String getGenPath() { return genPath; } public void setGenPath(String genPath) { this.genPath = genPath; } public GenTableColumn getPkColumn() { return pkColumn; } public void setPkColumn(GenTableColumn pkColumn) { this.pkColumn = pkColumn; } public GenTable getSubTable() { return subTable; } public void setSubTable(GenTable subTable) { this.subTable = subTable; } public List<GenTableColumn> getColumns() { return columns; } public void setColumns(List<GenTableColumn> columns) { this.columns = columns; } public String getOptions() { return options; } public void setOptions(String options) { this.options = options; } public String getTreeCode() { return treeCode; } public void setTreeCode(String treeCode) { this.treeCode = treeCode; } public String getTreeParentCode() { return treeParentCode; } public void setTreeParentCode(String treeParentCode) { this.treeParentCode = treeParentCode; } public String getTreeName() { return treeName; } public void setTreeName(String treeName) { this.treeName = treeName; } public String getParentMenuId() { return parentMenuId; } public void setParentMenuId(String parentMenuId) { this.parentMenuId = parentMenuId; } public String getParentMenuName() { return parentMenuName; } public void setParentMenuName(String parentMenuName) { this.parentMenuName = parentMenuName; } public boolean isSub() { ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java
@@ -1,20 +1,34 @@ package com.ruoyi.generator.domain; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseEntity; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import javax.validation.constraints.NotBlank; import java.util.Date; import java.util.HashMap; import java.util.Map; /** * 代码生成业务字段表 gen_table_column * * @author ruoyi */ @Data @NoArgsConstructor @Accessors(chain = true) @TableName("gen_table_column") public class GenTableColumn extends BaseEntity { private static final long serialVersionUID = 1L; /** 编号 */ @TableId(value = "column_id", type = IdType.AUTO) private Long columnId; /** 归属表编号 */ @@ -69,89 +83,39 @@ /** 排序 */ private Integer sort; public void setColumnId(Long columnId) { this.columnId = columnId; } /** * 创建者 */ private String createBy; public Long getColumnId() { return columnId; } /** * 创建时间 */ @TableField(fill = FieldFill.INSERT) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; public void setTableId(Long tableId) { this.tableId = tableId; } /** * 更新者 */ private String updateBy; public Long getTableId() { return tableId; } /** * 更新时间 */ @TableField(fill = FieldFill.INSERT_UPDATE) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; public void setColumnName(String columnName) { this.columnName = columnName; } public String getColumnName() { return columnName; } public void setColumnComment(String columnComment) { this.columnComment = columnComment; } public String getColumnComment() { return columnComment; } public void setColumnType(String columnType) { this.columnType = columnType; } public String getColumnType() { return columnType; } public void setJavaType(String javaType) { this.javaType = javaType; } public String getJavaType() { return javaType; } public void setJavaField(String javaField) { this.javaField = javaField; } public String getJavaField() { return javaField; } /** * 请求参数 */ @TableField(exist = false) private Map<String, Object> params = new HashMap<>(); public String getCapJavaField() { return StrUtil.upperFirst(javaField); } public void setIsPk(String isPk) { this.isPk = isPk; } public String getIsPk() { return isPk; } public boolean isPk() @@ -164,16 +128,6 @@ return isPk != null && StrUtil.equals("1", isPk); } public String getIsIncrement() { return isIncrement; } public void setIsIncrement(String isIncrement) { this.isIncrement = isIncrement; } public boolean isIncrement() { return isIncrement(this.isIncrement); @@ -182,16 +136,6 @@ public boolean isIncrement(String isIncrement) { return isIncrement != null && StrUtil.equals("1", isIncrement); } public void setIsRequired(String isRequired) { this.isRequired = isRequired; } public String getIsRequired() { return isRequired; } public boolean isRequired() @@ -204,16 +148,6 @@ return isRequired != null && StrUtil.equals("1", isRequired); } public void setIsInsert(String isInsert) { this.isInsert = isInsert; } public String getIsInsert() { return isInsert; } public boolean isInsert() { return isInsert(this.isInsert); @@ -222,16 +156,6 @@ public boolean isInsert(String isInsert) { return isInsert != null && StrUtil.equals("1", isInsert); } public void setIsEdit(String isEdit) { this.isEdit = isEdit; } public String getIsEdit() { return isEdit; } public boolean isEdit() @@ -244,16 +168,6 @@ return isEdit != null && StrUtil.equals("1", isEdit); } public void setIsList(String isList) { this.isList = isList; } public String getIsList() { return isList; } public boolean isList() { return isList(this.isList); @@ -264,16 +178,6 @@ return isList != null && StrUtil.equals("1", isList); } public void setIsQuery(String isQuery) { this.isQuery = isQuery; } public String getIsQuery() { return isQuery; } public boolean isQuery() { return isQuery(this.isQuery); @@ -282,46 +186,6 @@ public boolean isQuery(String isQuery) { return isQuery != null && StrUtil.equals("1", isQuery); } public void setQueryType(String queryType) { this.queryType = queryType; } public String getQueryType() { return queryType; } public String getHtmlType() { return htmlType; } public void setHtmlType(String htmlType) { this.htmlType = htmlType; } public void setDictType(String dictType) { this.dictType = dictType; } public String getDictType() { return dictType; } public void setSort(Integer sort) { this.sort = sort; } public Integer getSort() { return sort; } public boolean isSuperColumn() ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableColumnMapper.java
@@ -1,14 +1,16 @@ package com.ruoyi.generator.mapper; import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.generator.domain.GenTableColumn; import java.util.List; /** * 业务字段 数据层 * * @author ruoyi */ public interface GenTableColumnMapper public interface GenTableColumnMapper extends BaseMapper<GenTableColumn> { /** * 根据表名称查询列信息 ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableMapper.java
@@ -1,14 +1,16 @@ package com.ruoyi.generator.mapper; import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.generator.domain.GenTable; import java.util.List; /** * 业务 数据层 * * @author ruoyi */ public interface GenTableMapper public interface GenTableMapper extends BaseMapper<GenTable> { /** * 查询业务列表 ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableColumnServiceImpl.java
@@ -1,6 +1,8 @@ package com.ruoyi.generator.service; import java.util.List; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import cn.hutool.core.convert.Convert; @@ -13,7 +15,7 @@ * @author ruoyi */ @Service public class GenTableColumnServiceImpl implements IGenTableColumnService public class GenTableColumnServiceImpl extends ServiceImpl<GenTableColumnMapper, GenTableColumn> implements IGenTableColumnService { @Autowired private GenTableColumnMapper genTableColumnMapper; ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java
@@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.GenConstants; import com.ruoyi.common.exception.CustomException; @@ -44,7 +45,7 @@ * @author ruoyi */ @Service public class GenTableServiceImpl implements IGenTableService public class GenTableServiceImpl extends ServiceImpl<GenTableMapper, GenTable> implements IGenTableService { private static final Logger log = LoggerFactory.getLogger(GenTableServiceImpl.class); ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableColumnService.java
@@ -1,14 +1,16 @@ package com.ruoyi.generator.service; import java.util.List; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.generator.domain.GenTableColumn; import java.util.List; /** * 业务字段 服务层 * * @author ruoyi */ public interface IGenTableColumnService public interface IGenTableColumnService extends IService<GenTableColumn> { /** * 查询业务字段列表 ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableService.java
@@ -1,15 +1,17 @@ package com.ruoyi.generator.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.generator.domain.GenTable; import java.util.List; import java.util.Map; import com.ruoyi.generator.domain.GenTable; /** * 业务 服务层 * * @author ruoyi */ public interface IGenTableService public interface IGenTableService extends IService<GenTable> { /** * 查询业务列表 ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJob.java
@@ -1,34 +1,45 @@ package com.ruoyi.quartz.domain; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel.ColumnType; import com.ruoyi.common.constant.ScheduleConstants; import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.quartz.util.CronUtils; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Size; import java.io.Serializable; import java.util.Date; import java.util.HashMap; import java.util.Map; /** * 定时任务调度表 sys_job * * @author ruoyi */ public class SysJob extends BaseEntity implements Serializable @Data @NoArgsConstructor @Accessors(chain = true) @TableName("sys_job") public class SysJob implements Serializable { private static final long serialVersionUID = 1L; /** 任务ID */ @Excel(name = "任务序号", cellType = ColumnType.NUMERIC) @TableId(value = "job_id", type = IdType.AUTO) private Long jobId; /** 任务名称 */ @NotBlank(message = "任务名称不能为空") @Size(min = 0, max = 64, message = "任务名称不能超过64个字符") @Excel(name = "任务名称") private String jobName; @@ -37,10 +48,14 @@ private String jobGroup; /** 调用目标字符串 */ @NotBlank(message = "调用目标字符串不能为空") @Size(min = 0, max = 500, message = "调用目标字符串长度不能超过500个字符") @Excel(name = "调用目标字符串") private String invokeTarget; /** cron执行表达式 */ @NotBlank(message = "Cron执行表达式不能为空") @Size(min = 0, max = 255, message = "Cron执行表达式不能超过255个字符") @Excel(name = "执行表达式 ") private String cronExpression; @@ -56,61 +71,40 @@ @Excel(name = "任务状态", readConverterExp = "0=正常,1=暂停") private String status; public Long getJobId() { return jobId; } /** * 创建者 */ private String createBy; public void setJobId(Long jobId) { this.jobId = jobId; } /** * 创建时间 */ @TableField(fill = FieldFill.INSERT) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; @NotBlank(message = "任务名称不能为空") @Size(min = 0, max = 64, message = "任务名称不能超过64个字符") public String getJobName() { return jobName; } /** * 更新者 */ private String updateBy; public void setJobName(String jobName) { this.jobName = jobName; } /** * 更新时间 */ @TableField(fill = FieldFill.INSERT_UPDATE) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; public String getJobGroup() { return jobGroup; } /** * 备注 */ private String remark; 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; } /** * 请求参数 */ @TableField(exist = false) private Map<String, Object> params = new HashMap<>(); @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") public Date getNextValidTime() @@ -122,52 +116,4 @@ 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(); } } ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJobLog.java
@@ -1,22 +1,33 @@ package com.ruoyi.quartz.domain; import java.util.Date; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import java.util.Date; import java.util.HashMap; import java.util.Map; /** * 定时任务调度日志表 sys_job_log * * @author ruoyi */ public class SysJobLog extends BaseEntity @Data @NoArgsConstructor @Accessors(chain = true) @TableName("sys_job_log") public class SysJobLog { private static final long serialVersionUID = 1L; /** ID */ @Excel(name = "日志序号") @TableId(value = "job_log_id", type = IdType.AUTO) private Long jobLogId; /** 任务名称 */ @@ -43,113 +54,25 @@ @Excel(name = "异常信息") private String exceptionInfo; /** * 创建时间 */ @TableField(fill = FieldFill.INSERT) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; /** * 请求参数 */ @TableField(exist = false) private Map<String, Object> params = new HashMap<>(); /** 开始时间 */ @TableField(exist = false) private Date startTime; /** 停止时间 */ @TableField(exist = false) private Date stopTime; public Long getJobLogId() { return jobLogId; } public void setJobLogId(Long jobLogId) { this.jobLogId = jobLogId; } 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; } public String getInvokeTarget() { return invokeTarget; } public void setInvokeTarget(String invokeTarget) { this.invokeTarget = invokeTarget; } public String getJobMessage() { return jobMessage; } public void setJobMessage(String jobMessage) { this.jobMessage = jobMessage; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getExceptionInfo() { return exceptionInfo; } public void setExceptionInfo(String exceptionInfo) { this.exceptionInfo = exceptionInfo; } public Date getStartTime() { return startTime; } public void setStartTime(Date startTime) { this.startTime = startTime; } public Date getStopTime() { return stopTime; } public void setStopTime(Date stopTime) { this.stopTime = stopTime; } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("jobLogId", getJobLogId()) .append("jobName", getJobName()) .append("jobGroup", getJobGroup()) .append("jobMessage", getJobMessage()) .append("status", getStatus()) .append("exceptionInfo", getExceptionInfo()) .append("startTime", getStartTime()) .append("stopTime", getStopTime()) .toString(); } } ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/SysJobLogMapper.java
@@ -1,14 +1,16 @@ package com.ruoyi.quartz.mapper; import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.quartz.domain.SysJobLog; import java.util.List; /** * 调度任务日志信息 数据层 * * @author ruoyi */ public interface SysJobLogMapper public interface SysJobLogMapper extends BaseMapper<SysJobLog> { /** * 获取quartz调度器日志的计划任务 ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/SysJobMapper.java
@@ -1,14 +1,16 @@ package com.ruoyi.quartz.mapper; import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.quartz.domain.SysJob; import java.util.List; /** * 调度任务信息 数据层 * * @author ruoyi */ public interface SysJobMapper public interface SysJobMapper extends BaseMapper<SysJob> { /** * 查询调度任务日志集合 ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobLogService.java
@@ -1,14 +1,16 @@ package com.ruoyi.quartz.service; import java.util.List; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.quartz.domain.SysJobLog; import java.util.List; /** * 定时任务调度日志信息信息 服务层 * * @author ruoyi */ public interface ISysJobLogService public interface ISysJobLogService extends IService<SysJobLog> { /** * 获取quartz调度器日志的计划任务 ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobService.java
@@ -1,16 +1,18 @@ package com.ruoyi.quartz.service; import java.util.List; import org.quartz.SchedulerException; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.exception.job.TaskException; import com.ruoyi.quartz.domain.SysJob; import org.quartz.SchedulerException; import java.util.List; /** * 定时任务调度信息信息 服务层 * * @author ruoyi */ public interface ISysJobService public interface ISysJobService extends IService<SysJob> { /** * 获取quartz调度器的计划任务 ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobLogServiceImpl.java
@@ -1,6 +1,8 @@ package com.ruoyi.quartz.service.impl; import java.util.List; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.quartz.domain.SysJobLog; @@ -13,7 +15,7 @@ * @author ruoyi */ @Service public class SysJobLogServiceImpl implements ISysJobLogService public class SysJobLogServiceImpl extends ServiceImpl<SysJobLogMapper, SysJobLog> implements ISysJobLogService { @Autowired private SysJobLogMapper jobLogMapper; ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java
@@ -2,6 +2,8 @@ import java.util.List; import javax.annotation.PostConstruct; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.quartz.JobDataMap; import org.quartz.JobKey; import org.quartz.Scheduler; @@ -23,7 +25,7 @@ * @author ruoyi */ @Service public class SysJobServiceImpl implements ISysJobService public class SysJobServiceImpl extends ServiceImpl<SysJobMapper, SysJob> implements ISysJobService { @Autowired private Scheduler scheduler;