Commit f60855faa03ef21a49bb3532337e0b4d4d004405
1 parent
bc1504d9
1. 完成 Job 的 CRUD 功能
Showing
27 changed files
with
1274 additions
and
1371 deletions
ruoyi-quartz/src/main/java/com/ruoyi/quartz/config/ScheduleConfig.java renamed to ruoyi-common/src/main/java/com/ruoyi/quartz/config/ScheduleConfig.java
| 1 | -package com.ruoyi.quartz.config; | ||
| 2 | - | ||
| 3 | -import org.springframework.context.annotation.Bean; | ||
| 4 | -import org.springframework.context.annotation.Configuration; | ||
| 5 | -import org.springframework.scheduling.quartz.SchedulerFactoryBean; | ||
| 6 | - | ||
| 7 | -import javax.sql.DataSource; | ||
| 8 | -import java.util.Properties; | ||
| 9 | - | ||
| 10 | -/** | ||
| 11 | - * 定时任务配置 | ||
| 12 | - * | ||
| 13 | - * @author ruoyi | ||
| 14 | - */ | ||
| 15 | -@Configuration | ||
| 16 | -public class ScheduleConfig { | ||
| 17 | - | ||
| 18 | - @Bean | ||
| 19 | - public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource) { | ||
| 20 | - SchedulerFactoryBean factory = new SchedulerFactoryBean(); | ||
| 21 | - factory.setDataSource(dataSource); | ||
| 22 | - | ||
| 23 | - // quartz参数 | ||
| 24 | - Properties prop = new Properties(); | ||
| 25 | - prop.put("org.quartz.scheduler.instanceName", "RuoyiScheduler"); | ||
| 26 | - prop.put("org.quartz.scheduler.instanceId", "AUTO"); | ||
| 27 | - // 集群配置 | ||
| 28 | - prop.put("org.quartz.jobStore.clusterCheckinInterval", "15000"); | ||
| 29 | - prop.put("org.quartz.jobStore.maxMisfiresToHandleAtATime", "1"); | ||
| 30 | - prop.put("org.quartz.jobStore.txIsolationLevelSerializable", "true"); | ||
| 31 | - | ||
| 32 | - // sqlserver 启用 | ||
| 33 | - // prop.put("org.quartz.jobStore.selectWithLockSQL", "SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?"); | ||
| 34 | - prop.put("org.quartz.jobStore.misfireThreshold", "12000"); | ||
| 35 | - factory.setQuartzProperties(prop); | ||
| 36 | - | ||
| 37 | - factory.setSchedulerName("RuoyiScheduler"); | ||
| 38 | - // 延时启动 | ||
| 39 | - factory.setStartupDelay(1); | ||
| 40 | - factory.setApplicationContextSchedulerContextKey("applicationContextKey"); | ||
| 41 | - // 可选,QuartzScheduler | ||
| 42 | - // 启动时更新己存在的Job,这样就不用每次修改targetObject后删除qrtz_job_details表对应记录了 | ||
| 43 | - factory.setOverwriteExistingJobs(true); | ||
| 44 | - | ||
| 45 | - | ||
| 46 | - return factory; | ||
| 47 | - } | ||
| 48 | -} | 1 | +package com.ruoyi.quartz.config; |
| 2 | + | ||
| 3 | +import org.springframework.context.annotation.Bean; | ||
| 4 | +import org.springframework.context.annotation.Configuration; | ||
| 5 | +import org.springframework.scheduling.quartz.SchedulerFactoryBean; | ||
| 6 | + | ||
| 7 | +import javax.sql.DataSource; | ||
| 8 | +import java.util.Properties; | ||
| 9 | + | ||
| 10 | +/** | ||
| 11 | + * 定时任务配置 | ||
| 12 | + * | ||
| 13 | + * @author ruoyi | ||
| 14 | + */ | ||
| 15 | +@Configuration | ||
| 16 | +public class ScheduleConfig { | ||
| 17 | + | ||
| 18 | + @Bean | ||
| 19 | + public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource) { | ||
| 20 | + SchedulerFactoryBean factory = new SchedulerFactoryBean(); | ||
| 21 | + factory.setDataSource(dataSource); | ||
| 22 | + | ||
| 23 | + // quartz参数 | ||
| 24 | + Properties prop = new Properties(); | ||
| 25 | + prop.put("org.quartz.scheduler.instanceName", "RuoyiScheduler"); | ||
| 26 | + prop.put("org.quartz.scheduler.instanceId", "AUTO"); | ||
| 27 | + // 集群配置 | ||
| 28 | + prop.put("org.quartz.jobStore.clusterCheckinInterval", "15000"); | ||
| 29 | + prop.put("org.quartz.jobStore.maxMisfiresToHandleAtATime", "1"); | ||
| 30 | + prop.put("org.quartz.jobStore.txIsolationLevelSerializable", "true"); | ||
| 31 | + | ||
| 32 | + // sqlserver 启用 | ||
| 33 | + // prop.put("org.quartz.jobStore.selectWithLockSQL", "SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?"); | ||
| 34 | + prop.put("org.quartz.jobStore.misfireThreshold", "12000"); | ||
| 35 | + factory.setQuartzProperties(prop); | ||
| 36 | + | ||
| 37 | + factory.setSchedulerName("RuoyiScheduler"); | ||
| 38 | + // 延时启动 | ||
| 39 | + factory.setStartupDelay(1); | ||
| 40 | + factory.setApplicationContextSchedulerContextKey("applicationContextKey"); | ||
| 41 | + // 可选,QuartzScheduler | ||
| 42 | + // 启动时更新己存在的Job,这样就不用每次修改targetObject后删除qrtz_job_details表对应记录了 | ||
| 43 | + factory.setOverwriteExistingJobs(true); | ||
| 44 | + | ||
| 45 | + | ||
| 46 | + return factory; | ||
| 47 | + } | ||
| 48 | +} |
ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobLogController.java renamed to ruoyi-common/src/main/java/com/ruoyi/quartz/controller/SysJobLogController.java
| 1 | -package com.ruoyi.quartz.controller; | ||
| 2 | - | ||
| 3 | -import java.util.List; | ||
| 4 | - | ||
| 5 | -import org.springframework.beans.factory.annotation.Autowired; | ||
| 6 | -import org.springframework.security.access.prepost.PreAuthorize; | ||
| 7 | -import org.springframework.web.bind.annotation.DeleteMapping; | ||
| 8 | -import org.springframework.web.bind.annotation.GetMapping; | ||
| 9 | -import org.springframework.web.bind.annotation.PathVariable; | ||
| 10 | -import org.springframework.web.bind.annotation.RequestMapping; | ||
| 11 | -import org.springframework.web.bind.annotation.RestController; | ||
| 12 | -import com.ruoyi.common.annotation.Log; | ||
| 13 | -import com.ruoyi.common.core.controller.BaseController; | ||
| 14 | -import com.ruoyi.common.core.domain.AjaxResult; | ||
| 15 | -import com.ruoyi.common.core.page.TableDataInfo; | ||
| 16 | -import com.ruoyi.common.enums.BusinessType; | ||
| 17 | -import com.ruoyi.common.utils.poi.ExcelUtil; | ||
| 18 | -import com.ruoyi.quartz.domain.SysJobLog; | ||
| 19 | -import com.ruoyi.quartz.service.ISysJobLogService; | ||
| 20 | - | ||
| 21 | -/** | ||
| 22 | - * 调度日志操作处理 | ||
| 23 | - * | ||
| 24 | - * @author ruoyi | ||
| 25 | - */ | ||
| 26 | -@RestController | ||
| 27 | -@RequestMapping("/monitor/jobLog") | ||
| 28 | -public class SysJobLogController extends BaseController { | ||
| 29 | - @Autowired | ||
| 30 | - private ISysJobLogService jobLogService; | ||
| 31 | - | ||
| 32 | - /** | ||
| 33 | - * 查询定时任务调度日志列表 | ||
| 34 | - */ | ||
| 35 | - @PreAuthorize("@ss.hasPermi('monitor:job:list')") | ||
| 36 | - @GetMapping("/list") | ||
| 37 | - public TableDataInfo list(SysJobLog sysJobLog) { | ||
| 38 | - startPage(); | ||
| 39 | - List<SysJobLog> list = jobLogService.selectJobLogList(sysJobLog); | ||
| 40 | - return getDataTable(list); | ||
| 41 | - } | ||
| 42 | - | ||
| 43 | - /** | ||
| 44 | - * 导出定时任务调度日志列表 | ||
| 45 | - */ | ||
| 46 | - @PreAuthorize("@ss.hasPermi('monitor:job:export')") | ||
| 47 | - @Log(title = "任务调度日志", businessType = BusinessType.EXPORT) | ||
| 48 | - @GetMapping("/export") | ||
| 49 | - public AjaxResult export(SysJobLog sysJobLog) { | ||
| 50 | - List<SysJobLog> list = jobLogService.selectJobLogList(sysJobLog); | ||
| 51 | - ExcelUtil<SysJobLog> util = new ExcelUtil<SysJobLog>(SysJobLog.class); | ||
| 52 | - return util.exportExcel(list, "调度日志"); | ||
| 53 | - } | ||
| 54 | - | ||
| 55 | - /** | ||
| 56 | - * 根据调度编号获取详细信息 | ||
| 57 | - */ | ||
| 58 | - @PreAuthorize("@ss.hasPermi('monitor:job:query')") | ||
| 59 | - @GetMapping(value = "/{configId}") | ||
| 60 | - public AjaxResult getInfo(@PathVariable Long jobLogId) { | ||
| 61 | - return AjaxResult.success(jobLogService.selectJobLogById(jobLogId)); | ||
| 62 | - } | ||
| 63 | - | ||
| 64 | - | ||
| 65 | - /** | ||
| 66 | - * 删除定时任务调度日志 | ||
| 67 | - */ | ||
| 68 | - @PreAuthorize("@ss.hasPermi('monitor:job:remove')") | ||
| 69 | - @Log(title = "定时任务调度日志", businessType = BusinessType.DELETE) | ||
| 70 | - @DeleteMapping("/{jobLogIds}") | ||
| 71 | - public AjaxResult remove(@PathVariable Long[] jobLogIds) { | ||
| 72 | - return toAjax(jobLogService.deleteJobLogByIds(jobLogIds)); | ||
| 73 | - } | ||
| 74 | - | ||
| 75 | - /** | ||
| 76 | - * 清空定时任务调度日志 | ||
| 77 | - */ | ||
| 78 | - @PreAuthorize("@ss.hasPermi('monitor:job:remove')") | ||
| 79 | - @Log(title = "调度日志", businessType = BusinessType.CLEAN) | ||
| 80 | - @DeleteMapping("/clean") | ||
| 81 | - public AjaxResult clean() { | ||
| 82 | - jobLogService.cleanJobLog(); | ||
| 83 | - return AjaxResult.success(); | ||
| 84 | - } | ||
| 85 | -} | 1 | +package com.ruoyi.quartz.controller; |
| 2 | + | ||
| 3 | +import java.util.List; | ||
| 4 | + | ||
| 5 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 6 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 7 | +import org.springframework.web.bind.annotation.DeleteMapping; | ||
| 8 | +import org.springframework.web.bind.annotation.GetMapping; | ||
| 9 | +import org.springframework.web.bind.annotation.PathVariable; | ||
| 10 | +import org.springframework.web.bind.annotation.RequestMapping; | ||
| 11 | +import org.springframework.web.bind.annotation.RestController; | ||
| 12 | +import com.ruoyi.common.annotation.Log; | ||
| 13 | +import com.ruoyi.common.core.controller.BaseController; | ||
| 14 | +import com.ruoyi.common.core.domain.AjaxResult; | ||
| 15 | +import com.ruoyi.common.core.page.TableDataInfo; | ||
| 16 | +import com.ruoyi.common.enums.BusinessType; | ||
| 17 | +import com.ruoyi.common.utils.poi.ExcelUtil; | ||
| 18 | +import com.ruoyi.quartz.domain.SysJobLog; | ||
| 19 | +import com.ruoyi.quartz.service.ISysJobLogService; | ||
| 20 | + | ||
| 21 | +/** | ||
| 22 | + * 调度日志操作处理 | ||
| 23 | + * | ||
| 24 | + * @author ruoyi | ||
| 25 | + */ | ||
| 26 | +@RestController | ||
| 27 | +@RequestMapping("/monitor/jobLog") | ||
| 28 | +public class SysJobLogController extends BaseController { | ||
| 29 | + @Autowired | ||
| 30 | + private ISysJobLogService jobLogService; | ||
| 31 | + | ||
| 32 | + /** | ||
| 33 | + * 查询定时任务调度日志列表 | ||
| 34 | + */ | ||
| 35 | + @PreAuthorize("@ss.hasPermi('monitor:job:list')") | ||
| 36 | + @GetMapping("/list") | ||
| 37 | + public TableDataInfo list(SysJobLog sysJobLog) { | ||
| 38 | + startPage(); | ||
| 39 | + List<SysJobLog> list = jobLogService.selectJobLogList(sysJobLog); | ||
| 40 | + return getDataTable(list); | ||
| 41 | + } | ||
| 42 | + | ||
| 43 | + /** | ||
| 44 | + * 导出定时任务调度日志列表 | ||
| 45 | + */ | ||
| 46 | + @PreAuthorize("@ss.hasPermi('monitor:job:export')") | ||
| 47 | + @Log(title = "任务调度日志", businessType = BusinessType.EXPORT) | ||
| 48 | + @GetMapping("/export") | ||
| 49 | + public AjaxResult export(SysJobLog sysJobLog) { | ||
| 50 | + List<SysJobLog> list = jobLogService.selectJobLogList(sysJobLog); | ||
| 51 | + ExcelUtil<SysJobLog> util = new ExcelUtil<SysJobLog>(SysJobLog.class); | ||
| 52 | + return util.exportExcel(list, "调度日志"); | ||
| 53 | + } | ||
| 54 | + | ||
| 55 | + /** | ||
| 56 | + * 根据调度编号获取详细信息 | ||
| 57 | + */ | ||
| 58 | + @PreAuthorize("@ss.hasPermi('monitor:job:query')") | ||
| 59 | + @GetMapping(value = "/{configId}") | ||
| 60 | + public AjaxResult getInfo(@PathVariable Long jobLogId) { | ||
| 61 | + return AjaxResult.success(jobLogService.selectJobLogById(jobLogId)); | ||
| 62 | + } | ||
| 63 | + | ||
| 64 | +} |
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobLogServiceImpl.java renamed to ruoyi-common/src/main/java/com/ruoyi/quartz/service/impl/SysJobLogServiceImpl.java
| 1 | -package com.ruoyi.quartz.service.impl; | ||
| 2 | - | ||
| 3 | -import java.util.List; | ||
| 4 | - | ||
| 5 | -import org.springframework.beans.factory.annotation.Autowired; | ||
| 6 | -import org.springframework.stereotype.Service; | ||
| 7 | -import com.ruoyi.quartz.domain.SysJobLog; | ||
| 8 | -import com.ruoyi.quartz.mapper.SysJobLogMapper; | ||
| 9 | -import com.ruoyi.quartz.service.ISysJobLogService; | ||
| 10 | - | ||
| 11 | -/** | ||
| 12 | - * 定时任务调度日志信息 服务层 | ||
| 13 | - * | ||
| 14 | - * @author ruoyi | ||
| 15 | - */ | ||
| 16 | -@Service | ||
| 17 | -public class SysJobLogServiceImpl implements ISysJobLogService { | ||
| 18 | - @Autowired | ||
| 19 | - private SysJobLogMapper jobLogMapper; | ||
| 20 | - | ||
| 21 | - /** | ||
| 22 | - * 获取quartz调度器日志的计划任务 | ||
| 23 | - * | ||
| 24 | - * @param jobLog 调度日志信息 | ||
| 25 | - * @return 调度任务日志集合 | ||
| 26 | - */ | ||
| 27 | - @Override | ||
| 28 | - public List<SysJobLog> selectJobLogList(SysJobLog jobLog) { | ||
| 29 | - return jobLogMapper.selectJobLogList(jobLog); | ||
| 30 | - } | ||
| 31 | - | ||
| 32 | - /** | ||
| 33 | - * 通过调度任务日志ID查询调度信息 | ||
| 34 | - * | ||
| 35 | - * @param jobLogId 调度任务日志ID | ||
| 36 | - * @return 调度任务日志对象信息 | ||
| 37 | - */ | ||
| 38 | - @Override | ||
| 39 | - public SysJobLog selectJobLogById(Long jobLogId) { | ||
| 40 | - return jobLogMapper.selectJobLogById(jobLogId); | ||
| 41 | - } | ||
| 42 | - | ||
| 43 | - /** | ||
| 44 | - * 新增任务日志 | ||
| 45 | - * | ||
| 46 | - * @param jobLog 调度日志信息 | ||
| 47 | - */ | ||
| 48 | - @Override | ||
| 49 | - public void addJobLog(SysJobLog jobLog) { | ||
| 50 | - jobLogMapper.insertJobLog(jobLog); | ||
| 51 | - } | ||
| 52 | - | ||
| 53 | - /** | ||
| 54 | - * 批量删除调度日志信息 | ||
| 55 | - * | ||
| 56 | - * @param logIds 需要删除的数据ID | ||
| 57 | - * @return 结果 | ||
| 58 | - */ | ||
| 59 | - @Override | ||
| 60 | - public int deleteJobLogByIds(Long[] logIds) { | ||
| 61 | - return jobLogMapper.deleteJobLogByIds(logIds); | ||
| 62 | - } | ||
| 63 | - | ||
| 64 | - /** | ||
| 65 | - * 删除任务日志 | ||
| 66 | - * | ||
| 67 | - * @param jobId 调度日志ID | ||
| 68 | - */ | ||
| 69 | - @Override | ||
| 70 | - public int deleteJobLogById(Long jobId) { | ||
| 71 | - return jobLogMapper.deleteJobLogById(jobId); | ||
| 72 | - } | ||
| 73 | - | ||
| 74 | - /** | ||
| 75 | - * 清空任务日志 | ||
| 76 | - */ | ||
| 77 | - @Override | ||
| 78 | - public void cleanJobLog() { | ||
| 79 | - jobLogMapper.cleanJobLog(); | ||
| 80 | - } | ||
| 81 | -} | 1 | +package com.ruoyi.quartz.service.impl; |
| 2 | + | ||
| 3 | +import java.util.List; | ||
| 4 | + | ||
| 5 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 6 | +import org.springframework.stereotype.Service; | ||
| 7 | +import com.ruoyi.quartz.domain.SysJobLog; | ||
| 8 | +import com.ruoyi.quartz.mapper.SysJobLogMapper; | ||
| 9 | +import com.ruoyi.quartz.service.ISysJobLogService; | ||
| 10 | + | ||
| 11 | +/** | ||
| 12 | + * 定时任务调度日志信息 服务层 | ||
| 13 | + * | ||
| 14 | + * @author ruoyi | ||
| 15 | + */ | ||
| 16 | +@Service | ||
| 17 | +public class SysJobLogServiceImpl implements ISysJobLogService { | ||
| 18 | + | ||
| 19 | + @Autowired | ||
| 20 | + private SysJobLogMapper jobLogMapper; | ||
| 21 | + | ||
| 22 | + /** | ||
| 23 | + * 获取quartz调度器日志的计划任务 | ||
| 24 | + * | ||
| 25 | + * @param jobLog 调度日志信息 | ||
| 26 | + * @return 调度任务日志集合 | ||
| 27 | + */ | ||
| 28 | + @Override | ||
| 29 | + public List<SysJobLog> selectJobLogList(SysJobLog jobLog) { | ||
| 30 | + return jobLogMapper.selectJobLogList(jobLog); | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + /** | ||
| 34 | + * 通过调度任务日志ID查询调度信息 | ||
| 35 | + * | ||
| 36 | + * @param jobLogId 调度任务日志ID | ||
| 37 | + * @return 调度任务日志对象信息 | ||
| 38 | + */ | ||
| 39 | + @Override | ||
| 40 | + public SysJobLog selectJobLogById(Long jobLogId) { | ||
| 41 | + return jobLogMapper.selectJobLogById(jobLogId); | ||
| 42 | + } | ||
| 43 | + | ||
| 44 | + /** | ||
| 45 | + * 新增任务日志 | ||
| 46 | + * | ||
| 47 | + * @param jobLog 调度日志信息 | ||
| 48 | + */ | ||
| 49 | + @Override | ||
| 50 | + public void addJobLog(SysJobLog jobLog) { | ||
| 51 | + jobLogMapper.insertJobLog(jobLog); | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | +} |
ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/AbstractQuartzJob.java renamed to ruoyi-common/src/main/java/com/ruoyi/quartz/util/AbstractQuartzJob.java
| 1 | -package com.ruoyi.quartz.util; | ||
| 2 | - | ||
| 3 | -import java.util.Date; | ||
| 4 | - | ||
| 5 | -import org.quartz.Job; | ||
| 6 | -import org.quartz.JobExecutionContext; | ||
| 7 | -import org.quartz.JobExecutionException; | ||
| 8 | -import org.slf4j.Logger; | ||
| 9 | -import org.slf4j.LoggerFactory; | ||
| 10 | -import com.ruoyi.common.constant.Constants; | ||
| 11 | -import com.ruoyi.common.constant.ScheduleConstants; | ||
| 12 | -import com.ruoyi.common.utils.ExceptionUtil; | ||
| 13 | -import com.ruoyi.common.utils.StringUtils; | ||
| 14 | -import com.ruoyi.common.utils.bean.BeanUtils; | ||
| 15 | -import com.ruoyi.common.utils.spring.SpringUtils; | ||
| 16 | -import com.ruoyi.quartz.domain.SysJob; | ||
| 17 | -import com.ruoyi.quartz.domain.SysJobLog; | ||
| 18 | -import com.ruoyi.quartz.service.ISysJobLogService; | ||
| 19 | - | ||
| 20 | -/** | ||
| 21 | - * 抽象quartz调用 | ||
| 22 | - * | ||
| 23 | - * @author ruoyi | ||
| 24 | - */ | ||
| 25 | -public abstract class AbstractQuartzJob implements Job { | ||
| 26 | - private static final Logger log = LoggerFactory.getLogger(AbstractQuartzJob.class); | ||
| 27 | - | ||
| 28 | - /** | ||
| 29 | - * 线程本地变量 | ||
| 30 | - */ | ||
| 31 | - private static ThreadLocal<Date> threadLocal = new ThreadLocal<>(); | ||
| 32 | - | ||
| 33 | - @Override | ||
| 34 | - public void execute(JobExecutionContext context) throws JobExecutionException { | ||
| 35 | - SysJob sysJob = new SysJob(); | ||
| 36 | - BeanUtils.copyBeanProp(sysJob, context.getMergedJobDataMap().get(ScheduleConstants.TASK_PROPERTIES)); | ||
| 37 | - try { | ||
| 38 | - before(context, sysJob); | ||
| 39 | - if (sysJob != null) { | ||
| 40 | - doExecute(context, sysJob); | ||
| 41 | - } | ||
| 42 | - after(context, sysJob, null); | ||
| 43 | - } catch (Exception e) { | ||
| 44 | - log.error("任务执行异常 - :", e); | ||
| 45 | - after(context, sysJob, e); | ||
| 46 | - } | ||
| 47 | - } | ||
| 48 | - | ||
| 49 | - /** | ||
| 50 | - * 执行前 | ||
| 51 | - * | ||
| 52 | - * @param context 工作执行上下文对象 | ||
| 53 | - * @param sysJob 系统计划任务 | ||
| 54 | - */ | ||
| 55 | - protected void before(JobExecutionContext context, SysJob sysJob) { | ||
| 56 | - threadLocal.set(new Date()); | ||
| 57 | - } | ||
| 58 | - | ||
| 59 | - /** | ||
| 60 | - * 执行后 | ||
| 61 | - * | ||
| 62 | - * @param context 工作执行上下文对象 | ||
| 63 | - * @param sysJob 系统计划任务 | ||
| 64 | - */ | ||
| 65 | - protected void after(JobExecutionContext context, SysJob sysJob, Exception e) { | ||
| 66 | - Date startTime = threadLocal.get(); | ||
| 67 | - threadLocal.remove(); | ||
| 68 | - | ||
| 69 | - final SysJobLog sysJobLog = new SysJobLog(); | ||
| 70 | - sysJobLog.setJobName(sysJob.getJobName()); | ||
| 71 | - sysJobLog.setJobGroup(sysJob.getJobGroup()); | ||
| 72 | - sysJobLog.setInvokeTarget(sysJob.getInvokeTarget()); | ||
| 73 | - sysJobLog.setStartTime(startTime); | ||
| 74 | - sysJobLog.setStopTime(new Date()); | ||
| 75 | - long runMs = sysJobLog.getStopTime().getTime() - sysJobLog.getStartTime().getTime(); | ||
| 76 | - sysJobLog.setJobMessage(sysJobLog.getJobName() + " 总共耗时:" + runMs + "毫秒"); | ||
| 77 | - if (e != null) { | ||
| 78 | - sysJobLog.setStatus(Constants.FAIL); | ||
| 79 | - String errorMsg = StringUtils.substring(ExceptionUtil.getExceptionMessage(e), 0, 2000); | ||
| 80 | - sysJobLog.setExceptionInfo(errorMsg); | ||
| 81 | - } else { | ||
| 82 | - sysJobLog.setStatus(Constants.SUCCESS); | ||
| 83 | - } | ||
| 84 | - | ||
| 85 | - // 写入数据库当中 | ||
| 86 | - SpringUtils.getBean(ISysJobLogService.class).addJobLog(sysJobLog); | ||
| 87 | - } | ||
| 88 | - | ||
| 89 | - /** | ||
| 90 | - * 执行方法,由子类重载 | ||
| 91 | - * | ||
| 92 | - * @param context 工作执行上下文对象 | ||
| 93 | - * @param sysJob 系统计划任务 | ||
| 94 | - * @throws Exception 执行过程中的异常 | ||
| 95 | - */ | ||
| 96 | - protected abstract void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception; | ||
| 97 | -} | 1 | +package com.ruoyi.quartz.util; |
| 2 | + | ||
| 3 | +import java.util.Date; | ||
| 4 | + | ||
| 5 | +import org.quartz.Job; | ||
| 6 | +import org.quartz.JobExecutionContext; | ||
| 7 | +import org.quartz.JobExecutionException; | ||
| 8 | +import org.slf4j.Logger; | ||
| 9 | +import org.slf4j.LoggerFactory; | ||
| 10 | +import com.ruoyi.common.constant.Constants; | ||
| 11 | +import com.ruoyi.common.constant.ScheduleConstants; | ||
| 12 | +import com.ruoyi.common.utils.ExceptionUtil; | ||
| 13 | +import com.ruoyi.common.utils.StringUtils; | ||
| 14 | +import com.ruoyi.common.utils.bean.BeanUtils; | ||
| 15 | +import com.ruoyi.common.utils.spring.SpringUtils; | ||
| 16 | +import com.ruoyi.quartz.domain.SysJob; | ||
| 17 | +import com.ruoyi.quartz.domain.SysJobLog; | ||
| 18 | +import com.ruoyi.quartz.service.ISysJobLogService; | ||
| 19 | + | ||
| 20 | +/** | ||
| 21 | + * 抽象quartz调用 | ||
| 22 | + * | ||
| 23 | + * @author ruoyi | ||
| 24 | + */ | ||
| 25 | +public abstract class AbstractQuartzJob implements Job { | ||
| 26 | + private static final Logger log = LoggerFactory.getLogger(AbstractQuartzJob.class); | ||
| 27 | + | ||
| 28 | + /** | ||
| 29 | + * 线程本地变量 | ||
| 30 | + */ | ||
| 31 | + private static ThreadLocal<Date> threadLocal = new ThreadLocal<>(); | ||
| 32 | + | ||
| 33 | + @Override | ||
| 34 | + public void execute(JobExecutionContext context) throws JobExecutionException { | ||
| 35 | + SysJob sysJob = new SysJob(); | ||
| 36 | + BeanUtils.copyBeanProp(sysJob, context.getMergedJobDataMap().get(ScheduleConstants.TASK_PROPERTIES)); | ||
| 37 | + try { | ||
| 38 | + before(context, sysJob); | ||
| 39 | + if (sysJob != null) { | ||
| 40 | + doExecute(context, sysJob); | ||
| 41 | + } | ||
| 42 | + after(context, sysJob, null); | ||
| 43 | + } catch (Exception e) { | ||
| 44 | + log.error("任务执行异常 - :", e); | ||
| 45 | + after(context, sysJob, e); | ||
| 46 | + } | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + /** | ||
| 50 | + * 执行前 | ||
| 51 | + * | ||
| 52 | + * @param context 工作执行上下文对象 | ||
| 53 | + * @param sysJob 系统计划任务 | ||
| 54 | + */ | ||
| 55 | + protected void before(JobExecutionContext context, SysJob sysJob) { | ||
| 56 | + threadLocal.set(new Date()); | ||
| 57 | + } | ||
| 58 | + | ||
| 59 | + /** | ||
| 60 | + * 执行后 | ||
| 61 | + * | ||
| 62 | + * @param context 工作执行上下文对象 | ||
| 63 | + * @param sysJob 系统计划任务 | ||
| 64 | + */ | ||
| 65 | + protected void after(JobExecutionContext context, SysJob sysJob, Exception e) { | ||
| 66 | + Date startTime = threadLocal.get(); | ||
| 67 | + threadLocal.remove(); | ||
| 68 | + | ||
| 69 | + final SysJobLog sysJobLog = new SysJobLog(); | ||
| 70 | + sysJobLog.setJobName(sysJob.getJobName()); | ||
| 71 | + sysJobLog.setJobGroup(sysJob.getJobGroup()); | ||
| 72 | + sysJobLog.setInvokeTarget(sysJob.getInvokeTarget()); | ||
| 73 | + sysJobLog.setStartTime(startTime); | ||
| 74 | + sysJobLog.setStopTime(new Date()); | ||
| 75 | + long runMs = sysJobLog.getStopTime().getTime() - sysJobLog.getStartTime().getTime(); | ||
| 76 | + sysJobLog.setJobMessage(sysJobLog.getJobName() + " 总共耗时:" + runMs + "毫秒"); | ||
| 77 | + if (e != null) { | ||
| 78 | + sysJobLog.setStatus(Constants.FAIL); | ||
| 79 | + String errorMsg = StringUtils.substring(ExceptionUtil.getExceptionMessage(e), 0, 2000); | ||
| 80 | + sysJobLog.setExceptionInfo(errorMsg); | ||
| 81 | + } else { | ||
| 82 | + sysJobLog.setStatus(Constants.SUCCESS); | ||
| 83 | + } | ||
| 84 | + | ||
| 85 | + // 写入数据库当中 | ||
| 86 | + SpringUtils.getBean(ISysJobLogService.class).addJobLog(sysJobLog); | ||
| 87 | + } | ||
| 88 | + | ||
| 89 | + /** | ||
| 90 | + * 执行方法,由子类重载 | ||
| 91 | + * | ||
| 92 | + * @param context 工作执行上下文对象 | ||
| 93 | + * @param sysJob 系统计划任务 | ||
| 94 | + * @throws Exception 执行过程中的异常 | ||
| 95 | + */ | ||
| 96 | + protected abstract void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception; | ||
| 97 | +} |
ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleUtils.java renamed to ruoyi-common/src/main/java/com/ruoyi/quartz/util/ScheduleUtils.java
| 1 | -package com.ruoyi.quartz.util; | ||
| 2 | - | ||
| 3 | -import org.quartz.CronScheduleBuilder; | ||
| 4 | -import org.quartz.CronTrigger; | ||
| 5 | -import org.quartz.Job; | ||
| 6 | -import org.quartz.JobBuilder; | ||
| 7 | -import org.quartz.JobDetail; | ||
| 8 | -import org.quartz.JobKey; | ||
| 9 | -import org.quartz.Scheduler; | ||
| 10 | -import org.quartz.SchedulerException; | ||
| 11 | -import org.quartz.TriggerBuilder; | ||
| 12 | -import org.quartz.TriggerKey; | ||
| 13 | -import com.ruoyi.common.constant.ScheduleConstants; | ||
| 14 | -import com.ruoyi.common.exception.job.TaskException; | ||
| 15 | -import com.ruoyi.common.exception.job.TaskException.Code; | ||
| 16 | -import com.ruoyi.quartz.domain.SysJob; | ||
| 17 | - | ||
| 18 | -/** | ||
| 19 | - * 定时任务工具类 | ||
| 20 | - * | ||
| 21 | - * @author ruoyi | ||
| 22 | - */ | ||
| 23 | -public class ScheduleUtils { | ||
| 24 | - | ||
| 25 | - /** | ||
| 26 | - * 设置定时任务策略 | ||
| 27 | - */ | ||
| 28 | - public static CronScheduleBuilder handleCronScheduleMisfirePolicy(SysJob job, CronScheduleBuilder cb) | ||
| 29 | - throws TaskException { | ||
| 30 | - switch (job.getMisfirePolicy()) { | ||
| 31 | - case ScheduleConstants.MISFIRE_DEFAULT: | ||
| 32 | - return cb; | ||
| 33 | - case ScheduleConstants.MISFIRE_IGNORE_MISFIRES: | ||
| 34 | - return cb.withMisfireHandlingInstructionIgnoreMisfires(); | ||
| 35 | - case ScheduleConstants.MISFIRE_FIRE_AND_PROCEED: | ||
| 36 | - return cb.withMisfireHandlingInstructionFireAndProceed(); | ||
| 37 | - case ScheduleConstants.MISFIRE_DO_NOTHING: | ||
| 38 | - return cb.withMisfireHandlingInstructionDoNothing(); | ||
| 39 | - default: | ||
| 40 | - throw new TaskException("The task misfire policy '" + job.getMisfirePolicy() | ||
| 41 | - + "' cannot be used in cron schedule tasks", Code.CONFIG_ERROR); | ||
| 42 | - } | ||
| 43 | - } | ||
| 44 | -} | 1 | +package com.ruoyi.quartz.util; |
| 2 | + | ||
| 3 | +import org.quartz.CronScheduleBuilder; | ||
| 4 | +import org.quartz.CronTrigger; | ||
| 5 | +import org.quartz.Job; | ||
| 6 | +import org.quartz.JobBuilder; | ||
| 7 | +import org.quartz.JobDetail; | ||
| 8 | +import org.quartz.JobKey; | ||
| 9 | +import org.quartz.Scheduler; | ||
| 10 | +import org.quartz.SchedulerException; | ||
| 11 | +import org.quartz.TriggerBuilder; | ||
| 12 | +import org.quartz.TriggerKey; | ||
| 13 | +import com.ruoyi.common.constant.ScheduleConstants; | ||
| 14 | +import com.ruoyi.common.exception.job.TaskException; | ||
| 15 | +import com.ruoyi.common.exception.job.TaskException.Code; | ||
| 16 | +import com.ruoyi.quartz.domain.SysJob; | ||
| 17 | + | ||
| 18 | +/** | ||
| 19 | + * 定时任务工具类 | ||
| 20 | + * | ||
| 21 | + * @author ruoyi | ||
| 22 | + */ | ||
| 23 | +public class ScheduleUtils { | ||
| 24 | + | ||
| 25 | + /** | ||
| 26 | + * 设置定时任务策略 | ||
| 27 | + */ | ||
| 28 | + public static CronScheduleBuilder handleCronScheduleMisfirePolicy(SysJob job, CronScheduleBuilder cb) | ||
| 29 | + throws TaskException { | ||
| 30 | + switch (job.getMisfirePolicy()) { | ||
| 31 | + case ScheduleConstants.MISFIRE_DEFAULT: | ||
| 32 | + return cb; | ||
| 33 | + case ScheduleConstants.MISFIRE_IGNORE_MISFIRES: | ||
| 34 | + return cb.withMisfireHandlingInstructionIgnoreMisfires(); | ||
| 35 | + case ScheduleConstants.MISFIRE_FIRE_AND_PROCEED: | ||
| 36 | + return cb.withMisfireHandlingInstructionFireAndProceed(); | ||
| 37 | + case ScheduleConstants.MISFIRE_DO_NOTHING: | ||
| 38 | + return cb.withMisfireHandlingInstructionDoNothing(); | ||
| 39 | + default: | ||
| 40 | + throw new TaskException("The task misfire policy '" + job.getMisfirePolicy() | ||
| 41 | + + "' cannot be used in cron schedule tasks", Code.CONFIG_ERROR); | ||
| 42 | + } | ||
| 43 | + } | ||
| 44 | +} |
ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java deleted
| 1 | -package com.ruoyi.quartz.controller; | ||
| 2 | - | ||
| 3 | -import java.util.List; | ||
| 4 | - | ||
| 5 | -import org.quartz.SchedulerException; | ||
| 6 | -import org.springframework.beans.factory.annotation.Autowired; | ||
| 7 | -import org.springframework.security.access.prepost.PreAuthorize; | ||
| 8 | -import org.springframework.web.bind.annotation.DeleteMapping; | ||
| 9 | -import org.springframework.web.bind.annotation.GetMapping; | ||
| 10 | -import org.springframework.web.bind.annotation.PathVariable; | ||
| 11 | -import org.springframework.web.bind.annotation.PostMapping; | ||
| 12 | -import org.springframework.web.bind.annotation.PutMapping; | ||
| 13 | -import org.springframework.web.bind.annotation.RequestBody; | ||
| 14 | -import org.springframework.web.bind.annotation.RequestMapping; | ||
| 15 | -import org.springframework.web.bind.annotation.RestController; | ||
| 16 | -import com.ruoyi.common.annotation.Log; | ||
| 17 | -import com.ruoyi.common.core.controller.BaseController; | ||
| 18 | -import com.ruoyi.common.core.domain.AjaxResult; | ||
| 19 | -import com.ruoyi.common.core.page.TableDataInfo; | ||
| 20 | -import com.ruoyi.common.enums.BusinessType; | ||
| 21 | -import com.ruoyi.common.exception.job.TaskException; | ||
| 22 | -import com.ruoyi.common.utils.SecurityUtils; | ||
| 23 | -import com.ruoyi.common.utils.poi.ExcelUtil; | ||
| 24 | -import com.ruoyi.quartz.domain.SysJob; | ||
| 25 | -import com.ruoyi.quartz.service.ISysJobService; | ||
| 26 | -import com.ruoyi.quartz.util.CronUtils; | ||
| 27 | - | ||
| 28 | -/** | ||
| 29 | - * 调度任务信息操作处理 | ||
| 30 | - * | ||
| 31 | - * @author ruoyi | ||
| 32 | - */ | ||
| 33 | -@RestController | ||
| 34 | -@RequestMapping("/monitor/job") | ||
| 35 | -public class SysJobController extends BaseController { | ||
| 36 | - @Autowired | ||
| 37 | - private ISysJobService jobService; | ||
| 38 | - | ||
| 39 | - /** | ||
| 40 | - * 查询定时任务列表 | ||
| 41 | - */ | ||
| 42 | - @PreAuthorize("@ss.hasPermi('monitor:job:list')") | ||
| 43 | - @GetMapping("/list") | ||
| 44 | - public TableDataInfo list(SysJob sysJob) { | ||
| 45 | - startPage(); | ||
| 46 | - List<SysJob> list = jobService.selectJobList(sysJob); | ||
| 47 | - return getDataTable(list); | ||
| 48 | - } | ||
| 49 | - | ||
| 50 | - /** | ||
| 51 | - * 导出定时任务列表 | ||
| 52 | - */ | ||
| 53 | - @PreAuthorize("@ss.hasPermi('monitor:job:export')") | ||
| 54 | - @Log(title = "定时任务", businessType = BusinessType.EXPORT) | ||
| 55 | - @GetMapping("/export") | ||
| 56 | - public AjaxResult export(SysJob sysJob) { | ||
| 57 | - List<SysJob> list = jobService.selectJobList(sysJob); | ||
| 58 | - ExcelUtil<SysJob> util = new ExcelUtil<SysJob>(SysJob.class); | ||
| 59 | - return util.exportExcel(list, "定时任务"); | ||
| 60 | - } | ||
| 61 | - | ||
| 62 | - /** | ||
| 63 | - * 获取定时任务详细信息 | ||
| 64 | - */ | ||
| 65 | - @PreAuthorize("@ss.hasPermi('monitor:job:query')") | ||
| 66 | - @GetMapping(value = "/{jobId}") | ||
| 67 | - public AjaxResult getInfo(@PathVariable("jobId") Long jobId) { | ||
| 68 | - return AjaxResult.success(jobService.selectJobById(jobId)); | ||
| 69 | - } | ||
| 70 | - | ||
| 71 | - /** | ||
| 72 | - * 新增定时任务 | ||
| 73 | - */ | ||
| 74 | - @PreAuthorize("@ss.hasPermi('monitor:job:add')") | ||
| 75 | - @Log(title = "定时任务", businessType = BusinessType.INSERT) | ||
| 76 | - @PostMapping | ||
| 77 | - public AjaxResult add(@RequestBody SysJob sysJob) throws SchedulerException, TaskException { | ||
| 78 | - if (!CronUtils.isValid(sysJob.getCronExpression())) { | ||
| 79 | - return AjaxResult.error("cron表达式不正确"); | ||
| 80 | - } | ||
| 81 | - sysJob.setCreateBy(SecurityUtils.getUsername()); | ||
| 82 | - return toAjax(jobService.insertJob(sysJob)); | ||
| 83 | - } | ||
| 84 | - | ||
| 85 | - /** | ||
| 86 | - * 修改定时任务 | ||
| 87 | - */ | ||
| 88 | - @PreAuthorize("@ss.hasPermi('monitor:job:edit')") | ||
| 89 | - @Log(title = "定时任务", businessType = BusinessType.UPDATE) | ||
| 90 | - @PutMapping | ||
| 91 | - public AjaxResult edit(@RequestBody SysJob sysJob) throws SchedulerException, TaskException { | ||
| 92 | - if (!CronUtils.isValid(sysJob.getCronExpression())) { | ||
| 93 | - return AjaxResult.error("cron表达式不正确"); | ||
| 94 | - } | ||
| 95 | - sysJob.setUpdateBy(SecurityUtils.getUsername()); | ||
| 96 | - return toAjax(jobService.updateJob(sysJob)); | ||
| 97 | - } | ||
| 98 | - | ||
| 99 | - /** | ||
| 100 | - * 定时任务状态修改 | ||
| 101 | - */ | ||
| 102 | - @PreAuthorize("@ss.hasPermi('monitor:job:changeStatus')") | ||
| 103 | - @Log(title = "定时任务", businessType = BusinessType.UPDATE) | ||
| 104 | - @PutMapping("/changeStatus") | ||
| 105 | - public AjaxResult changeStatus(@RequestBody SysJob job) throws SchedulerException { | ||
| 106 | - SysJob newJob = jobService.selectJobById(job.getJobId()); | ||
| 107 | - newJob.setStatus(job.getStatus()); | ||
| 108 | - return toAjax(jobService.changeStatus(newJob)); | ||
| 109 | - } | ||
| 110 | - | ||
| 111 | - /** | ||
| 112 | - * 定时任务立即执行一次 | ||
| 113 | - */ | ||
| 114 | - @PreAuthorize("@ss.hasPermi('monitor:job:changeStatus')") | ||
| 115 | - @Log(title = "定时任务", businessType = BusinessType.UPDATE) | ||
| 116 | - @PutMapping("/run") | ||
| 117 | - public AjaxResult run(@RequestBody SysJob job) throws SchedulerException { | ||
| 118 | - jobService.run(job); | ||
| 119 | - return AjaxResult.success(); | ||
| 120 | - } | ||
| 121 | - | ||
| 122 | - /** | ||
| 123 | - * 删除定时任务 | ||
| 124 | - */ | ||
| 125 | - @PreAuthorize("@ss.hasPermi('monitor:job:remove')") | ||
| 126 | - @Log(title = "定时任务", businessType = BusinessType.DELETE) | ||
| 127 | - @DeleteMapping("/{jobIds}") | ||
| 128 | - public AjaxResult remove(@PathVariable Long[] jobIds) throws SchedulerException, TaskException { | ||
| 129 | - jobService.deleteJobByIds(jobIds); | ||
| 130 | - return AjaxResult.success(); | ||
| 131 | - } | ||
| 132 | -} |
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java deleted
| 1 | -package com.ruoyi.quartz.service.impl; | ||
| 2 | - | ||
| 3 | -import java.util.List; | ||
| 4 | -import javax.annotation.PostConstruct; | ||
| 5 | - | ||
| 6 | -import org.quartz.JobDataMap; | ||
| 7 | -import org.quartz.JobKey; | ||
| 8 | -import org.quartz.Scheduler; | ||
| 9 | -import org.quartz.SchedulerException; | ||
| 10 | -import org.springframework.beans.factory.annotation.Autowired; | ||
| 11 | -import org.springframework.stereotype.Service; | ||
| 12 | -import org.springframework.transaction.annotation.Transactional; | ||
| 13 | -import com.ruoyi.common.constant.ScheduleConstants; | ||
| 14 | -import com.ruoyi.common.exception.job.TaskException; | ||
| 15 | -import com.ruoyi.quartz.domain.SysJob; | ||
| 16 | -import com.ruoyi.quartz.mapper.SysJobMapper; | ||
| 17 | -import com.ruoyi.quartz.service.ISysJobService; | ||
| 18 | -import com.ruoyi.quartz.util.CronUtils; | ||
| 19 | -import com.ruoyi.quartz.util.ScheduleUtils; | ||
| 20 | - | ||
| 21 | -/** | ||
| 22 | - * 定时任务调度信息 服务层 | ||
| 23 | - * | ||
| 24 | - * @author ruoyi | ||
| 25 | - */ | ||
| 26 | -@Service | ||
| 27 | -public class SysJobServiceImpl implements ISysJobService { | ||
| 28 | - @Autowired | ||
| 29 | - private Scheduler scheduler; | ||
| 30 | - | ||
| 31 | - @Autowired | ||
| 32 | - private SysJobMapper jobMapper; | ||
| 33 | - | ||
| 34 | - /** | ||
| 35 | - * 获取quartz调度器的计划任务列表 | ||
| 36 | - * | ||
| 37 | - * @param job 调度信息 | ||
| 38 | - * @return | ||
| 39 | - */ | ||
| 40 | - @Override | ||
| 41 | - public List<SysJob> selectJobList(SysJob job) { | ||
| 42 | - return jobMapper.selectJobList(job); | ||
| 43 | - } | ||
| 44 | - | ||
| 45 | - /** | ||
| 46 | - * 通过调度任务ID查询调度信息 | ||
| 47 | - * | ||
| 48 | - * @param jobId 调度任务ID | ||
| 49 | - * @return 调度任务对象信息 | ||
| 50 | - */ | ||
| 51 | - @Override | ||
| 52 | - public SysJob selectJobById(Long jobId) { | ||
| 53 | - return jobMapper.selectJobById(jobId); | ||
| 54 | - } | ||
| 55 | - | ||
| 56 | - /** | ||
| 57 | - * 暂停任务 | ||
| 58 | - * | ||
| 59 | - * @param job 调度信息 | ||
| 60 | - */ | ||
| 61 | - @Override | ||
| 62 | - @Transactional | ||
| 63 | - public int pauseJob(SysJob job) throws SchedulerException { | ||
| 64 | - Long jobId = job.getJobId(); | ||
| 65 | - String jobGroup = job.getJobGroup(); | ||
| 66 | - job.setStatus(ScheduleConstants.Status.PAUSE.getValue()); | ||
| 67 | - int rows = jobMapper.updateJob(job); | ||
| 68 | - if (rows > 0) { | ||
| 69 | - scheduler.pauseJob(ScheduleUtils.getJobKey(jobId, jobGroup)); | ||
| 70 | - } | ||
| 71 | - return rows; | ||
| 72 | - } | ||
| 73 | - | ||
| 74 | - /** | ||
| 75 | - * 恢复任务 | ||
| 76 | - * | ||
| 77 | - * @param job 调度信息 | ||
| 78 | - */ | ||
| 79 | - @Override | ||
| 80 | - @Transactional | ||
| 81 | - public int resumeJob(SysJob job) throws SchedulerException { | ||
| 82 | - Long jobId = job.getJobId(); | ||
| 83 | - String jobGroup = job.getJobGroup(); | ||
| 84 | - job.setStatus(ScheduleConstants.Status.NORMAL.getValue()); | ||
| 85 | - int rows = jobMapper.updateJob(job); | ||
| 86 | - if (rows > 0) { | ||
| 87 | - scheduler.resumeJob(ScheduleUtils.getJobKey(jobId, jobGroup)); | ||
| 88 | - } | ||
| 89 | - return rows; | ||
| 90 | - } | ||
| 91 | - | ||
| 92 | - /** | ||
| 93 | - * 删除任务后,所对应的trigger也将被删除 | ||
| 94 | - * | ||
| 95 | - * @param job 调度信息 | ||
| 96 | - */ | ||
| 97 | - @Override | ||
| 98 | - @Transactional | ||
| 99 | - public int deleteJob(SysJob job) throws SchedulerException { | ||
| 100 | - Long jobId = job.getJobId(); | ||
| 101 | - String jobGroup = job.getJobGroup(); | ||
| 102 | - int rows = jobMapper.deleteJobById(jobId); | ||
| 103 | - if (rows > 0) { | ||
| 104 | - scheduler.deleteJob(ScheduleUtils.getJobKey(jobId, jobGroup)); | ||
| 105 | - } | ||
| 106 | - return rows; | ||
| 107 | - } | ||
| 108 | - | ||
| 109 | - /** | ||
| 110 | - * 批量删除调度信息 | ||
| 111 | - * | ||
| 112 | - * @param jobIds 需要删除的任务ID | ||
| 113 | - * @return 结果 | ||
| 114 | - */ | ||
| 115 | - @Override | ||
| 116 | - @Transactional | ||
| 117 | - public void deleteJobByIds(Long[] jobIds) throws SchedulerException { | ||
| 118 | - for (Long jobId : jobIds) { | ||
| 119 | - SysJob job = jobMapper.selectJobById(jobId); | ||
| 120 | - deleteJob(job); | ||
| 121 | - } | ||
| 122 | - } | ||
| 123 | - | ||
| 124 | - /** | ||
| 125 | - * 任务调度状态修改 | ||
| 126 | - * | ||
| 127 | - * @param job 调度信息 | ||
| 128 | - */ | ||
| 129 | - @Override | ||
| 130 | - @Transactional | ||
| 131 | - public int changeStatus(SysJob job) throws SchedulerException { | ||
| 132 | - int rows = 0; | ||
| 133 | - String status = job.getStatus(); | ||
| 134 | - if (ScheduleConstants.Status.NORMAL.getValue().equals(status)) { | ||
| 135 | - rows = resumeJob(job); | ||
| 136 | - } else if (ScheduleConstants.Status.PAUSE.getValue().equals(status)) { | ||
| 137 | - rows = pauseJob(job); | ||
| 138 | - } | ||
| 139 | - return rows; | ||
| 140 | - } | ||
| 141 | - | ||
| 142 | - /** | ||
| 143 | - * 立即运行任务 | ||
| 144 | - * | ||
| 145 | - * @param job 调度信息 | ||
| 146 | - */ | ||
| 147 | - @Override | ||
| 148 | - @Transactional | ||
| 149 | - public void run(SysJob job) throws SchedulerException { | ||
| 150 | - Long jobId = job.getJobId(); | ||
| 151 | - String jobGroup = job.getJobGroup(); | ||
| 152 | - SysJob properties = selectJobById(job.getJobId()); | ||
| 153 | - // 参数 | ||
| 154 | - JobDataMap dataMap = new JobDataMap(); | ||
| 155 | - dataMap.put(ScheduleConstants.TASK_PROPERTIES, properties); | ||
| 156 | - scheduler.triggerJob(ScheduleUtils.getJobKey(jobId, jobGroup), dataMap); | ||
| 157 | - } | ||
| 158 | - | ||
| 159 | - /** | ||
| 160 | - * 新增任务 | ||
| 161 | - * | ||
| 162 | - * @param job 调度信息 调度信息 | ||
| 163 | - */ | ||
| 164 | - @Override | ||
| 165 | - @Transactional | ||
| 166 | - public int insertJob(SysJob job) throws SchedulerException, TaskException { | ||
| 167 | - job.setStatus(ScheduleConstants.Status.PAUSE.getValue()); | ||
| 168 | - int rows = jobMapper.insertJob(job); | ||
| 169 | - if (rows > 0) { | ||
| 170 | - ScheduleUtils.createScheduleJob(scheduler, job); | ||
| 171 | - } | ||
| 172 | - return rows; | ||
| 173 | - } | ||
| 174 | - | ||
| 175 | - /** | ||
| 176 | - * 更新任务的时间表达式 | ||
| 177 | - * | ||
| 178 | - * @param job 调度信息 | ||
| 179 | - */ | ||
| 180 | - @Override | ||
| 181 | - @Transactional | ||
| 182 | - public int updateJob(SysJob job) throws SchedulerException, TaskException { | ||
| 183 | - SysJob properties = selectJobById(job.getJobId()); | ||
| 184 | - int rows = jobMapper.updateJob(job); | ||
| 185 | - if (rows > 0) { | ||
| 186 | - updateSchedulerJob(job, properties.getJobGroup()); | ||
| 187 | - } | ||
| 188 | - return rows; | ||
| 189 | - } | ||
| 190 | - | ||
| 191 | - /** | ||
| 192 | - * 更新任务 | ||
| 193 | - * | ||
| 194 | - * @param job 任务对象 | ||
| 195 | - * @param jobGroup 任务组名 | ||
| 196 | - */ | ||
| 197 | - public void updateSchedulerJob(SysJob job, String jobGroup) throws SchedulerException, TaskException { | ||
| 198 | - Long jobId = job.getJobId(); | ||
| 199 | - // 判断是否存在 | ||
| 200 | - JobKey jobKey = ScheduleUtils.getJobKey(jobId, jobGroup); | ||
| 201 | - if (scheduler.checkExists(jobKey)) { | ||
| 202 | - // 防止创建时存在数据问题 先移除,然后在执行创建操作 | ||
| 203 | - scheduler.deleteJob(jobKey); | ||
| 204 | - } | ||
| 205 | - ScheduleUtils.createScheduleJob(scheduler, job); | ||
| 206 | - } | ||
| 207 | - | ||
| 208 | - /** | ||
| 209 | - * 校验cron表达式是否有效 | ||
| 210 | - * | ||
| 211 | - * @param cronExpression 表达式 | ||
| 212 | - * @return 结果 | ||
| 213 | - */ | ||
| 214 | - @Override | ||
| 215 | - public boolean checkCronExpressionIsValid(String cronExpression) { | ||
| 216 | - return CronUtils.isValid(cronExpression); | ||
| 217 | - } | ||
| 218 | -} |
ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/CronUtils.java deleted
| 1 | -package com.ruoyi.quartz.util; | ||
| 2 | - | ||
| 3 | -import java.text.ParseException; | ||
| 4 | -import java.util.Date; | ||
| 5 | - | ||
| 6 | -import org.quartz.CronExpression; | ||
| 7 | - | ||
| 8 | -/** | ||
| 9 | - * cron表达式工具类 | ||
| 10 | - * | ||
| 11 | - * @author ruoyi | ||
| 12 | - */ | ||
| 13 | -public class CronUtils { | ||
| 14 | - /** | ||
| 15 | - * 返回一个布尔值代表一个给定的Cron表达式的有效性 | ||
| 16 | - * | ||
| 17 | - * @param cronExpression Cron表达式 | ||
| 18 | - * @return boolean 表达式是否有效 | ||
| 19 | - */ | ||
| 20 | - public static boolean isValid(String cronExpression) { | ||
| 21 | - return CronExpression.isValidExpression(cronExpression); | ||
| 22 | - } | ||
| 23 | - | ||
| 24 | - /** | ||
| 25 | - * 返回一个字符串值,表示该消息无效Cron表达式给出有效性 | ||
| 26 | - * | ||
| 27 | - * @param cronExpression Cron表达式 | ||
| 28 | - * @return String 无效时返回表达式错误描述,如果有效返回null | ||
| 29 | - */ | ||
| 30 | - public static String getInvalidMessage(String cronExpression) { | ||
| 31 | - try { | ||
| 32 | - new CronExpression(cronExpression); | ||
| 33 | - return null; | ||
| 34 | - } catch (ParseException pe) { | ||
| 35 | - return pe.getMessage(); | ||
| 36 | - } | ||
| 37 | - } | ||
| 38 | - | ||
| 39 | - /** | ||
| 40 | - * 返回下一个执行时间根据给定的Cron表达式 | ||
| 41 | - * | ||
| 42 | - * @param cronExpression Cron表达式 | ||
| 43 | - * @return Date 下次Cron表达式执行时间 | ||
| 44 | - */ | ||
| 45 | - public static Date getNextExecution(String cronExpression) { | ||
| 46 | - try { | ||
| 47 | - CronExpression cron = new CronExpression(cronExpression); | ||
| 48 | - return cron.getNextValidTimeAfter(new Date(System.currentTimeMillis())); | ||
| 49 | - } catch (ParseException e) { | ||
| 50 | - throw new IllegalArgumentException(e.getMessage()); | ||
| 51 | - } | ||
| 52 | - } | ||
| 53 | -} |
ruoyi-ui/src/api/monitor/job.js renamed to ruoyi-ui/src/api/infra/job.js
| @@ -46,35 +46,30 @@ export function delJob(jobId) { | @@ -46,35 +46,30 @@ export function delJob(jobId) { | ||
| 46 | // 导出定时任务调度 | 46 | // 导出定时任务调度 |
| 47 | export function exportJob(query) { | 47 | export function exportJob(query) { |
| 48 | return request({ | 48 | return request({ |
| 49 | - url: '/infra/job/export', | 49 | + url: '/infra/job/export-excel', |
| 50 | method: 'get', | 50 | method: 'get', |
| 51 | - params: query | 51 | + params: query, |
| 52 | + responseType: 'blob' | ||
| 52 | }) | 53 | }) |
| 53 | } | 54 | } |
| 54 | 55 | ||
| 55 | // 任务状态修改 | 56 | // 任务状态修改 |
| 56 | -export function changeJobStatus(jobId, status) { | ||
| 57 | - const data = { | ||
| 58 | - jobId, | ||
| 59 | - status | ||
| 60 | - } | 57 | +export function updateJobStatus(jobId, status) { |
| 61 | return request({ | 58 | return request({ |
| 62 | - url: '/monitor/job/changeStatus', | 59 | + url: '/infra/job/update-status', |
| 63 | method: 'put', | 60 | method: 'put', |
| 64 | - data: data | 61 | + headers:{ |
| 62 | + 'Content-type': 'application/x-www-form-urlencoded' | ||
| 63 | + }, | ||
| 64 | + data: 'id=' + jobId + "&status=" + status, | ||
| 65 | }) | 65 | }) |
| 66 | } | 66 | } |
| 67 | 67 | ||
| 68 | 68 | ||
| 69 | // 定时任务立即执行一次 | 69 | // 定时任务立即执行一次 |
| 70 | -export function runJob(jobId, jobGroup) { | ||
| 71 | - const data = { | ||
| 72 | - jobId, | ||
| 73 | - jobGroup | ||
| 74 | - } | 70 | +export function runJob(jobId) { |
| 75 | return request({ | 71 | return request({ |
| 76 | - url: '/monitor/job/run', | ||
| 77 | - method: 'put', | ||
| 78 | - data: data | 72 | + url: '/infra/job/trigger?id=' + jobId, |
| 73 | + method: 'put' | ||
| 79 | }) | 74 | }) |
| 80 | } | 75 | } |
ruoyi-ui/src/router/index.js
| @@ -100,7 +100,7 @@ export const constantRoutes = [ | @@ -100,7 +100,7 @@ export const constantRoutes = [ | ||
| 100 | children: [ | 100 | children: [ |
| 101 | { | 101 | { |
| 102 | path: 'log', | 102 | path: 'log', |
| 103 | - component: (resolve) => require(['@/views/monitor/job/log'], resolve), | 103 | + component: (resolve) => require(['@/views/infra/job/log'], resolve), |
| 104 | name: 'JobLog', | 104 | name: 'JobLog', |
| 105 | meta: { title: '调度日志' } | 105 | meta: { title: '调度日志' } |
| 106 | } | 106 | } |
ruoyi-ui/src/utils/constants.js
| @@ -48,3 +48,13 @@ export const ToolCodegenTemplateTypeEnum = { | @@ -48,3 +48,13 @@ export const ToolCodegenTemplateTypeEnum = { | ||
| 48 | TREE: 2, // 树形 CRUD | 48 | TREE: 2, // 树形 CRUD |
| 49 | SUB: 3, // 主子表 CRUD | 49 | SUB: 3, // 主子表 CRUD |
| 50 | } | 50 | } |
| 51 | + | ||
| 52 | +/** | ||
| 53 | + * 任务状态的枚举 | ||
| 54 | + */ | ||
| 55 | +export const InfJobStatusEnum = { | ||
| 56 | + INIT: 0, // 初始化中 | ||
| 57 | + NORMAL: 1, // 开启运行 | ||
| 58 | + EXCEPTION: 2, // 异常运行 | ||
| 59 | + STOP: 3, // 暂停运行 | ||
| 60 | +} |
ruoyi-ui/src/views/monitor/druid/index.vue renamed to ruoyi-ui/src/views/infra/druid/index.vue
| 1 | -<template> | ||
| 2 | - <div v-loading="loading" :style="'height:'+ height"> | ||
| 3 | - <iframe :src="src" frameborder="no" style="width: 100%;height: 100%" scrolling="auto" /> | ||
| 4 | - </div> | ||
| 5 | -</template> | ||
| 6 | -<script> | ||
| 7 | -export default { | ||
| 8 | - name: "Druid", | ||
| 9 | - data() { | ||
| 10 | - return { | ||
| 11 | - src: process.env.VUE_APP_BASE_API + "/druid/index.html", | ||
| 12 | - height: document.documentElement.clientHeight - 94.5 + "px;", | ||
| 13 | - loading: true | ||
| 14 | - }; | ||
| 15 | - }, | ||
| 16 | - mounted: function() { | ||
| 17 | - setTimeout(() => { | ||
| 18 | - this.loading = false; | ||
| 19 | - }, 230); | ||
| 20 | - const that = this; | ||
| 21 | - window.onresize = function temp() { | ||
| 22 | - that.height = document.documentElement.clientHeight - 94.5 + "px;"; | ||
| 23 | - }; | ||
| 24 | - } | ||
| 25 | -}; | ||
| 26 | -</script> | 1 | +<template> |
| 2 | + <div v-loading="loading" :style="'height:'+ height"> | ||
| 3 | + <iframe :src="src" frameborder="no" style="width: 100%;height: 100%" scrolling="auto" /> | ||
| 4 | + </div> | ||
| 5 | +</template> | ||
| 6 | +<script> | ||
| 7 | +export default { | ||
| 8 | + name: "Druid", | ||
| 9 | + data() { | ||
| 10 | + return { | ||
| 11 | + src: process.env.VUE_APP_BASE_API + "/druid/index.html", | ||
| 12 | + height: document.documentElement.clientHeight - 94.5 + "px;", | ||
| 13 | + loading: true | ||
| 14 | + }; | ||
| 15 | + }, | ||
| 16 | + mounted: function() { | ||
| 17 | + setTimeout(() => { | ||
| 18 | + this.loading = false; | ||
| 19 | + }, 230); | ||
| 20 | + const that = this; | ||
| 21 | + window.onresize = function temp() { | ||
| 22 | + that.height = document.documentElement.clientHeight - 94.5 + "px;"; | ||
| 23 | + }; | ||
| 24 | + } | ||
| 25 | +}; | ||
| 26 | +</script> |
ruoyi-ui/src/views/monitor/job/index.vue renamed to ruoyi-ui/src/views/infra/job/index.vue
| 1 | -<template> | ||
| 2 | - <div class="app-container"> | ||
| 3 | - <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px"> | ||
| 4 | - <el-form-item label="任务名称" prop="name"> | ||
| 5 | - <el-input v-model="queryParams.name" placeholder="请输入任务名称" clearable size="small" @keyup.enter.native="handleQuery"/> | ||
| 6 | - </el-form-item> | ||
| 7 | - <el-form-item label="任务状态" prop="status"> | ||
| 8 | - <el-select v-model="queryParams.status" placeholder="请选择任务状态" clearable size="small"> | ||
| 9 | - <el-option v-for="dict in this.getDictDatas(DICT_TYPE.INF_JOB_STATUS)" | ||
| 10 | - :key="dict.value" :label="dict.label" :value="dict.value"/> | ||
| 11 | - </el-select> | ||
| 12 | - </el-form-item> | ||
| 13 | - <el-form-item label="处理器的名字" prop="handlerName"> | ||
| 14 | - <el-input v-model="queryParams.handlerName" placeholder="请输入处理器的名字" clearable size="small" @keyup.enter.native="handleQuery"/> | ||
| 15 | - </el-form-item> | ||
| 16 | - <el-form-item> | ||
| 17 | - <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> | ||
| 18 | - <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> | ||
| 19 | - </el-form-item> | ||
| 20 | - </el-form> | ||
| 21 | - | ||
| 22 | - <el-row :gutter="10" class="mb8"> | ||
| 23 | - <el-col :span="1.5"> | ||
| 24 | - <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd" | ||
| 25 | - v-hasPermi="['monitor:job:add']">新增</el-button> | ||
| 26 | - </el-col> | ||
| 27 | - <el-col :span="1.5"> | ||
| 28 | - <el-button type="warning" icon="el-icon-download" size="mini" @click="handleExport" | ||
| 29 | - v-hasPermi="['monitor:job:export']">导出</el-button> | ||
| 30 | - </el-col> | ||
| 31 | - <el-col :span="1.5"> | ||
| 32 | - <el-button type="info" icon="el-icon-s-operation" size="mini" @click="handleJobLog" | ||
| 33 | - v-hasPermi="['monitor:job:query']">日志</el-button> | ||
| 34 | - </el-col> | ||
| 35 | - <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> | ||
| 36 | - </el-row> | ||
| 37 | - | ||
| 38 | - <el-table v-loading="loading" :data="jobList"> | ||
| 39 | - <el-table-column label="任务编号" align="center" prop="id" /> | ||
| 40 | - <el-table-column label="任务名称" align="center" prop="name" /> | ||
| 41 | - <el-table-column label="任务状态" align="center" prop="status"> | ||
| 42 | - <template slot-scope="scope"> | ||
| 43 | - <span>{{ getDictDataLabel(DICT_TYPE.INF_JOB_STATUS, scope.row.status) }}</span> | ||
| 44 | - </template> | ||
| 45 | - </el-table-column>> | ||
| 46 | - <el-table-column label="处理器的名字" align="center" prop="handlerName" /> | ||
| 47 | - <el-table-column label="处理器的参数" align="center" prop="handlerParam" /> | ||
| 48 | - <el-table-column label="CRON 表达式" align="center" prop="cronExpression" /> | ||
| 49 | - <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | ||
| 50 | - <template slot-scope="scope"> | ||
| 51 | - <el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)" | ||
| 52 | - v-hasPermi="['monitor:job:query']">详细</el-button> | ||
| 53 | - <el-button size="mini" type="text" icon="el-icon-view" @click="handleUpdate(scope.row)" | ||
| 54 | - v-hasPermi="['monitor:job:query']">修改</el-button> | ||
| 55 | - <el-button | ||
| 56 | - size="mini" | ||
| 57 | - type="text" | ||
| 58 | - icon="el-icon-caret-right" | ||
| 59 | - @click="handleRun(scope.row)" | ||
| 60 | - v-hasPermi="['monitor:job:changeStatus']" | ||
| 61 | - >执行一次</el-button> | ||
| 62 | - </template> | ||
| 63 | - </el-table-column> | ||
| 64 | - </el-table> | ||
| 65 | - <!-- 分页组件 --> | ||
| 66 | - <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" | ||
| 67 | - @pagination="getList"/> | ||
| 68 | - | ||
| 69 | - <!-- 添加或修改定时任务对话框 --> | ||
| 70 | - <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> | ||
| 71 | - <el-form ref="form" :model="form" :rules="rules" label-width="120px"> | ||
| 72 | - <el-form-item label="任务名称" prop="name"> | ||
| 73 | - <el-input v-model="form.name" placeholder="请输入任务名称" /> | ||
| 74 | - </el-form-item> | ||
| 75 | - <el-form-item label="处理器的名字" prop="handlerName"> | ||
| 76 | - <el-input v-model="form.handlerName" placeholder="请输入处理器的名字" v-bind:readonly="form.id !== undefined" /> | ||
| 77 | - </el-form-item> | ||
| 78 | - <el-form-item label="处理器的参数" prop="handlerParam"> | ||
| 79 | - <el-input v-model="form.handlerParam" placeholder="请输入处理器的参数" /> | ||
| 80 | - </el-form-item> | ||
| 81 | - <el-form-item label="CRON 表达式" prop="cronExpression"> | ||
| 82 | - <el-input v-model="form.cronExpression" placeholder="请输入CRON 表达式" /> | ||
| 83 | - </el-form-item> | ||
| 84 | - <el-form-item label="监控超时时间" prop="monitorTimeout"> | ||
| 85 | - <el-input v-model="form.monitorTimeout" placeholder="请输入监控超时时间,单位:毫秒" /> | ||
| 86 | - </el-form-item> | ||
| 87 | - </el-form> | ||
| 88 | - <div slot="footer" class="dialog-footer"> | ||
| 89 | - <el-button type="primary" @click="submitForm">确 定</el-button> | ||
| 90 | - <el-button @click="cancel">取 消</el-button> | ||
| 91 | - </div> | ||
| 92 | - </el-dialog> | ||
| 93 | - | ||
| 94 | - <!-- 任务日志详细 --> | ||
| 95 | - <el-dialog title="任务详细" :visible.sync="openView" width="700px" append-to-body> | ||
| 96 | - <el-form ref="form" :model="form" label-width="200px" size="mini"> | ||
| 97 | - <el-row> | ||
| 98 | - <el-col :span="24"> | ||
| 99 | - <el-form-item label="任务编号:">{{ form.id }}</el-form-item> | ||
| 100 | - <el-form-item label="任务名称:">{{ form.name }}</el-form-item> | ||
| 101 | - <el-form-item label="任务名称:">{{ getDictDataLabel(DICT_TYPE.INF_JOB_STATUS, form.status) }}</el-form-item> | ||
| 102 | - <el-form-item label="处理器的名字:">{{ form.handlerName }}</el-form-item> | ||
| 103 | - <el-form-item label="处理器的参数:">{{ form.handlerParam }}</el-form-item> | ||
| 104 | - <el-form-item label="cron表达式:">{{ form.cronExpression }}</el-form-item> | ||
| 105 | - <el-form-item label="最后一次执行的开始时间:">{{ parseTime(form.executeBeginTime) }}</el-form-item> | ||
| 106 | - <el-form-item label="最后一次执行的开始时间:">{{ parseTime(form.executeEndTime) }}</el-form-item> | ||
| 107 | - <el-form-item label="上一次触发时间:">{{ parseTime(form.firePrevTime) }}</el-form-item> | ||
| 108 | - <el-form-item label="下一次触发时间:">{{ parseTime(form.fireNextTime) }}</el-form-item> | ||
| 109 | - <el-form-item label="监控超时时间:">{{ form.monitorTimeout > 0 ? form.monitorTimeout + " 毫秒" : "未开启" }}</el-form-item> | ||
| 110 | - </el-col> | ||
| 111 | - </el-row> | ||
| 112 | - </el-form> | ||
| 113 | - <div slot="footer" class="dialog-footer"> | ||
| 114 | - <el-button @click="openView = false">关 闭</el-button> | ||
| 115 | - </div> | ||
| 116 | - </el-dialog> | ||
| 117 | - | ||
| 118 | - </div> | ||
| 119 | -</template> | ||
| 120 | - | ||
| 121 | -<script> | ||
| 122 | -import { listJob, getJob, delJob, addJob, updateJob, exportJob, runJob, changeJobStatus } from "@/api/monitor/job"; | ||
| 123 | - | ||
| 124 | -export default { | ||
| 125 | - name: "Job", | ||
| 126 | - data() { | ||
| 127 | - return { | ||
| 128 | - // 遮罩层 | ||
| 129 | - loading: true, | ||
| 130 | - // 显示搜索条件 | ||
| 131 | - showSearch: true, | ||
| 132 | - // 总条数 | ||
| 133 | - total: 0, | ||
| 134 | - // 定时任务表格数据 | ||
| 135 | - jobList: [], | ||
| 136 | - // 弹出层标题 | ||
| 137 | - title: "", | ||
| 138 | - // 是否显示弹出层 | ||
| 139 | - open: false, | ||
| 140 | - // 是否显示详细弹出层 | ||
| 141 | - openView: false, | ||
| 142 | - // 状态字典 | ||
| 143 | - statusOptions: [], | ||
| 144 | - // 查询参数 | ||
| 145 | - queryParams: { | ||
| 146 | - pageNo: 1, | ||
| 147 | - pageSize: 10, | ||
| 148 | - name: undefined, | ||
| 149 | - status: undefined, | ||
| 150 | - handlerName: undefined | ||
| 151 | - }, | ||
| 152 | - // 表单参数 | ||
| 153 | - form: {}, | ||
| 154 | - // 表单校验 | ||
| 155 | - rules: { | ||
| 156 | - name: [{ required: true, message: "任务名称不能为空", trigger: "blur" }], | ||
| 157 | - handlerName: [{ required: true, message: "处理器的名字不能为空", trigger: "blur" }], | ||
| 158 | - cronExpression: [{ required: true, message: "CRON 表达式不能为空", trigger: "blur" }], | ||
| 159 | - } | ||
| 160 | - }; | ||
| 161 | - }, | ||
| 162 | - created() { | ||
| 163 | - this.getList(); | ||
| 164 | - }, | ||
| 165 | - methods: { | ||
| 166 | - /** 查询定时任务列表 */ | ||
| 167 | - getList() { | ||
| 168 | - this.loading = true; | ||
| 169 | - listJob(this.queryParams).then(response => { | ||
| 170 | - this.jobList = response.data.list; | ||
| 171 | - this.total = response.data.total; | ||
| 172 | - this.loading = false; | ||
| 173 | - }); | ||
| 174 | - }, | ||
| 175 | - /** 取消按钮 */ | ||
| 176 | - cancel() { | ||
| 177 | - this.open = false; | ||
| 178 | - this.reset(); | ||
| 179 | - }, | ||
| 180 | - /** 表单重置 */ | ||
| 181 | - reset() { | ||
| 182 | - this.form = { | ||
| 183 | - id: undefined, | ||
| 184 | - name: undefined, | ||
| 185 | - handlerName: undefined, | ||
| 186 | - handlerParam: undefined, | ||
| 187 | - cronExpression: undefined, | ||
| 188 | - monitorTimeout: undefined, | ||
| 189 | - }; | ||
| 190 | - this.resetForm("form"); | ||
| 191 | - }, | ||
| 192 | - /** 搜索按钮操作 */ | ||
| 193 | - handleQuery() { | ||
| 194 | - this.queryParams.pageNo = 1; | ||
| 195 | - this.getList(); | ||
| 196 | - }, | ||
| 197 | - /** 重置按钮操作 */ | ||
| 198 | - resetQuery() { | ||
| 199 | - this.resetForm("queryForm"); | ||
| 200 | - this.handleQuery(); | ||
| 201 | - }, | ||
| 202 | - // 任务状态修改 | ||
| 203 | - handleStatusChange(row) { | ||
| 204 | - let text = row.status === "0" ? "启用" : "停用"; | ||
| 205 | - this.$confirm('确认要"' + text + '""' + row.name + '"任务吗?', "警告", { | ||
| 206 | - confirmButtonText: "确定", | ||
| 207 | - cancelButtonText: "取消", | ||
| 208 | - type: "warning" | ||
| 209 | - }).then(function() { | ||
| 210 | - return changeJobStatus(row.id, row.status); | ||
| 211 | - }).then(() => { | ||
| 212 | - this.msgSuccess(text + "成功"); | ||
| 213 | - }).catch(function() { | ||
| 214 | - row.status = row.status === "0" ? "1" : "0"; | ||
| 215 | - }); | ||
| 216 | - }, | ||
| 217 | - /* 立即执行一次 */ | ||
| 218 | - handleRun(row) { | ||
| 219 | - this.$confirm('确认要立即执行一次"' + row.name + '"任务吗?', "警告", { | ||
| 220 | - confirmButtonText: "确定", | ||
| 221 | - cancelButtonText: "取消", | ||
| 222 | - type: "warning" | ||
| 223 | - }).then(function() { | ||
| 224 | - return runJob(row.id, row.jobGroup); | ||
| 225 | - }).then(() => { | ||
| 226 | - this.msgSuccess("执行成功"); | ||
| 227 | - }) | ||
| 228 | - }, | ||
| 229 | - /** 任务详细信息 */ | ||
| 230 | - handleView(row) { | ||
| 231 | - getJob(row.id).then(response => { | ||
| 232 | - this.form = response.data; | ||
| 233 | - this.openView = true; | ||
| 234 | - }); | ||
| 235 | - }, | ||
| 236 | - /** 任务日志列表查询 */ | ||
| 237 | - handleJobLog() { | ||
| 238 | - this.$router.push("/job/log"); | ||
| 239 | - }, | ||
| 240 | - /** 新增按钮操作 */ | ||
| 241 | - handleAdd() { | ||
| 242 | - this.reset(); | ||
| 243 | - this.open = true; | ||
| 244 | - this.title = "添加任务"; | ||
| 245 | - }, | ||
| 246 | - /** 修改按钮操作 */ | ||
| 247 | - handleUpdate(row) { | ||
| 248 | - this.reset(); | ||
| 249 | - const id = row.id; | ||
| 250 | - getJob(id).then(response => { | ||
| 251 | - this.form = response.data; | ||
| 252 | - this.open = true; | ||
| 253 | - this.title = "修改任务"; | ||
| 254 | - }); | ||
| 255 | - }, | ||
| 256 | - /** 提交按钮 */ | ||
| 257 | - submitForm: function() { | ||
| 258 | - this.$refs["form"].validate(valid => { | ||
| 259 | - if (valid) { | ||
| 260 | - if (this.form.id !== undefined) { | ||
| 261 | - updateJob(this.form).then(response => { | ||
| 262 | - this.msgSuccess("修改成功"); | ||
| 263 | - this.open = false; | ||
| 264 | - this.getList(); | ||
| 265 | - }); | ||
| 266 | - } else { | ||
| 267 | - addJob(this.form).then(response => { | ||
| 268 | - this.msgSuccess("新增成功"); | ||
| 269 | - this.open = false; | ||
| 270 | - this.getList(); | ||
| 271 | - }); | ||
| 272 | - } | ||
| 273 | - } | ||
| 274 | - }); | ||
| 275 | - }, | ||
| 276 | - /** 删除按钮操作 */ | ||
| 277 | - handleDelete(row) { | ||
| 278 | - const ids = row.id || this.ids; | ||
| 279 | - this.$confirm('是否确认删除定时任务编号为"' + ids + '"的数据项?', "警告", { | ||
| 280 | - confirmButtonText: "确定", | ||
| 281 | - cancelButtonText: "取消", | ||
| 282 | - type: "warning" | ||
| 283 | - }).then(function() { | ||
| 284 | - return delJob(ids); | ||
| 285 | - }).then(() => { | ||
| 286 | - this.getList(); | ||
| 287 | - this.msgSuccess("删除成功"); | ||
| 288 | - }) | ||
| 289 | - }, | ||
| 290 | - /** 导出按钮操作 */ | ||
| 291 | - handleExport() { | ||
| 292 | - const queryParams = this.queryParams; | ||
| 293 | - this.$confirm("是否确认导出所有定时任务数据项?", "警告", { | ||
| 294 | - confirmButtonText: "确定", | ||
| 295 | - cancelButtonText: "取消", | ||
| 296 | - type: "warning" | ||
| 297 | - }).then(function() { | ||
| 298 | - return exportJob(queryParams); | ||
| 299 | - }).then(response => { | ||
| 300 | - this.download(response.msg); | ||
| 301 | - }) | ||
| 302 | - } | ||
| 303 | - } | ||
| 304 | -}; | ||
| 305 | -</script> | 1 | +<template> |
| 2 | + <div class="app-container"> | ||
| 3 | + <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px"> | ||
| 4 | + <el-form-item label="任务名称" prop="name"> | ||
| 5 | + <el-input v-model="queryParams.name" placeholder="请输入任务名称" clearable size="small" @keyup.enter.native="handleQuery"/> | ||
| 6 | + </el-form-item> | ||
| 7 | + <el-form-item label="任务状态" prop="status"> | ||
| 8 | + <el-select v-model="queryParams.status" placeholder="请选择任务状态" clearable size="small"> | ||
| 9 | + <el-option v-for="dict in this.getDictDatas(DICT_TYPE.INF_JOB_STATUS)" | ||
| 10 | + :key="dict.value" :label="dict.label" :value="dict.value"/> | ||
| 11 | + </el-select> | ||
| 12 | + </el-form-item> | ||
| 13 | + <el-form-item label="处理器的名字" prop="handlerName"> | ||
| 14 | + <el-input v-model="queryParams.handlerName" placeholder="请输入处理器的名字" clearable size="small" @keyup.enter.native="handleQuery"/> | ||
| 15 | + </el-form-item> | ||
| 16 | + <el-form-item> | ||
| 17 | + <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> | ||
| 18 | + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> | ||
| 19 | + </el-form-item> | ||
| 20 | + </el-form> | ||
| 21 | + | ||
| 22 | + <el-row :gutter="10" class="mb8"> | ||
| 23 | + <el-col :span="1.5"> | ||
| 24 | + <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd" | ||
| 25 | + v-hasPermi="['infra:job:create']">新增</el-button> | ||
| 26 | + </el-col> | ||
| 27 | + <el-col :span="1.5"> | ||
| 28 | + <el-button type="warning" icon="el-icon-download" size="mini" @click="handleExport" | ||
| 29 | + v-hasPermi="['infra:job:export']">导出</el-button> | ||
| 30 | + </el-col> | ||
| 31 | + <el-col :span="1.5"> | ||
| 32 | + <el-button type="info" icon="el-icon-s-operation" size="mini" @click="handleJobLog" | ||
| 33 | + v-hasPermi="['monitor:job:query']">日志</el-button> | ||
| 34 | + </el-col> | ||
| 35 | + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> | ||
| 36 | + </el-row> | ||
| 37 | + | ||
| 38 | + <el-table v-loading="loading" :data="jobList"> | ||
| 39 | + <el-table-column label="任务编号" align="center" prop="id" /> | ||
| 40 | + <el-table-column label="任务名称" align="center" prop="name" /> | ||
| 41 | + <el-table-column label="任务状态" align="center" prop="status"> | ||
| 42 | + <template slot-scope="scope"> | ||
| 43 | + <span>{{ getDictDataLabel(DICT_TYPE.INF_JOB_STATUS, scope.row.status) }}</span> | ||
| 44 | + </template> | ||
| 45 | + </el-table-column>> | ||
| 46 | + <el-table-column label="处理器的名字" align="center" prop="handlerName" /> | ||
| 47 | + <el-table-column label="处理器的参数" align="center" prop="handlerParam" /> | ||
| 48 | + <el-table-column label="CRON 表达式" align="center" prop="cronExpression" /> | ||
| 49 | + <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | ||
| 50 | + <template slot-scope="scope"> | ||
| 51 | + <el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)" | ||
| 52 | + v-hasPermi="['infra:job:query']">详细</el-button> | ||
| 53 | + <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" | ||
| 54 | + v-hasPermi="['infra:job:update']">修改</el-button> | ||
| 55 | + <el-button size="mini" type="text" icon="el-icon-check" @click="handleChangeStatus(scope.row, true)" | ||
| 56 | + v-hasPermi="['infra:job:update']">开启</el-button> | ||
| 57 | + <el-button size="mini" type="text" icon="el-icon-close" @click="handleChangeStatus(scope.row, false)" | ||
| 58 | + v-hasPermi="['infra:job:update']">暂停</el-button> | ||
| 59 | + <el-button size="mini" type="text" icon="el-icon-caret-right" @click="handleRun(scope.row)" | ||
| 60 | + v-hasPermi="['infra:job:trigger']">执行一次</el-button> | ||
| 61 | + <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" | ||
| 62 | + v-hasPermi="['infra:job:delete']">删除</el-button> | ||
| 63 | + </template> | ||
| 64 | + </el-table-column> | ||
| 65 | + </el-table> | ||
| 66 | + <!-- 分页组件 --> | ||
| 67 | + <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" | ||
| 68 | + @pagination="getList"/> | ||
| 69 | + | ||
| 70 | + <!-- 添加或修改定时任务对话框 --> | ||
| 71 | + <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> | ||
| 72 | + <el-form ref="form" :model="form" :rules="rules" label-width="120px"> | ||
| 73 | + <el-form-item label="任务名称" prop="name"> | ||
| 74 | + <el-input v-model="form.name" placeholder="请输入任务名称" /> | ||
| 75 | + </el-form-item> | ||
| 76 | + <el-form-item label="处理器的名字" prop="handlerName"> | ||
| 77 | + <el-input v-model="form.handlerName" placeholder="请输入处理器的名字" v-bind:readonly="form.id !== undefined" /> | ||
| 78 | + </el-form-item> | ||
| 79 | + <el-form-item label="处理器的参数" prop="handlerParam"> | ||
| 80 | + <el-input v-model="form.handlerParam" placeholder="请输入处理器的参数" /> | ||
| 81 | + </el-form-item> | ||
| 82 | + <el-form-item label="CRON 表达式" prop="cronExpression"> | ||
| 83 | + <el-input v-model="form.cronExpression" placeholder="请输入CRON 表达式" /> | ||
| 84 | + </el-form-item> | ||
| 85 | + <el-form-item label="监控超时时间" prop="monitorTimeout"> | ||
| 86 | + <el-input v-model="form.monitorTimeout" placeholder="请输入监控超时时间,单位:毫秒" /> | ||
| 87 | + </el-form-item> | ||
| 88 | + </el-form> | ||
| 89 | + <div slot="footer" class="dialog-footer"> | ||
| 90 | + <el-button type="primary" @click="submitForm">确 定</el-button> | ||
| 91 | + <el-button @click="cancel">取 消</el-button> | ||
| 92 | + </div> | ||
| 93 | + </el-dialog> | ||
| 94 | + | ||
| 95 | + <!-- 任务日志详细 --> | ||
| 96 | + <el-dialog title="任务详细" :visible.sync="openView" width="700px" append-to-body> | ||
| 97 | + <el-form ref="form" :model="form" label-width="200px" size="mini"> | ||
| 98 | + <el-row> | ||
| 99 | + <el-col :span="24"> | ||
| 100 | + <el-form-item label="任务编号:">{{ form.id }}</el-form-item> | ||
| 101 | + <el-form-item label="任务名称:">{{ form.name }}</el-form-item> | ||
| 102 | + <el-form-item label="任务名称:">{{ getDictDataLabel(DICT_TYPE.INF_JOB_STATUS, form.status) }}</el-form-item> | ||
| 103 | + <el-form-item label="处理器的名字:">{{ form.handlerName }}</el-form-item> | ||
| 104 | + <el-form-item label="处理器的参数:">{{ form.handlerParam }}</el-form-item> | ||
| 105 | + <el-form-item label="cron表达式:">{{ form.cronExpression }}</el-form-item> | ||
| 106 | + <el-form-item label="最后一次执行的开始时间:">{{ parseTime(form.executeBeginTime) }}</el-form-item> | ||
| 107 | + <el-form-item label="最后一次执行的开始时间:">{{ parseTime(form.executeEndTime) }}</el-form-item> | ||
| 108 | + <el-form-item label="上一次触发时间:">{{ parseTime(form.firePrevTime) }}</el-form-item> | ||
| 109 | + <el-form-item label="下一次触发时间:">{{ parseTime(form.fireNextTime) }}</el-form-item> | ||
| 110 | + <el-form-item label="监控超时时间:">{{ form.monitorTimeout > 0 ? form.monitorTimeout + " 毫秒" : "未开启" }}</el-form-item> | ||
| 111 | + </el-col> | ||
| 112 | + </el-row> | ||
| 113 | + </el-form> | ||
| 114 | + <div slot="footer" class="dialog-footer"> | ||
| 115 | + <el-button @click="openView = false">关 闭</el-button> | ||
| 116 | + </div> | ||
| 117 | + </el-dialog> | ||
| 118 | + | ||
| 119 | + </div> | ||
| 120 | +</template> | ||
| 121 | + | ||
| 122 | +<script> | ||
| 123 | +import { listJob, getJob, delJob, addJob, updateJob, exportJob, runJob, updateJobStatus } from "@/api/infra/job"; | ||
| 124 | +import { InfJobStatusEnum } from "@/utils/constants"; | ||
| 125 | + | ||
| 126 | +export default { | ||
| 127 | + name: "Job", | ||
| 128 | + data() { | ||
| 129 | + return { | ||
| 130 | + // 遮罩层 | ||
| 131 | + loading: true, | ||
| 132 | + // 显示搜索条件 | ||
| 133 | + showSearch: true, | ||
| 134 | + // 总条数 | ||
| 135 | + total: 0, | ||
| 136 | + // 定时任务表格数据 | ||
| 137 | + jobList: [], | ||
| 138 | + // 弹出层标题 | ||
| 139 | + title: "", | ||
| 140 | + // 是否显示弹出层 | ||
| 141 | + open: false, | ||
| 142 | + // 是否显示详细弹出层 | ||
| 143 | + openView: false, | ||
| 144 | + // 状态字典 | ||
| 145 | + statusOptions: [], | ||
| 146 | + // 查询参数 | ||
| 147 | + queryParams: { | ||
| 148 | + pageNo: 1, | ||
| 149 | + pageSize: 10, | ||
| 150 | + name: undefined, | ||
| 151 | + status: undefined, | ||
| 152 | + handlerName: undefined | ||
| 153 | + }, | ||
| 154 | + // 表单参数 | ||
| 155 | + form: {}, | ||
| 156 | + // 表单校验 | ||
| 157 | + rules: { | ||
| 158 | + name: [{ required: true, message: "任务名称不能为空", trigger: "blur" }], | ||
| 159 | + handlerName: [{ required: true, message: "处理器的名字不能为空", trigger: "blur" }], | ||
| 160 | + cronExpression: [{ required: true, message: "CRON 表达式不能为空", trigger: "blur" }], | ||
| 161 | + } | ||
| 162 | + }; | ||
| 163 | + }, | ||
| 164 | + created() { | ||
| 165 | + this.getList(); | ||
| 166 | + }, | ||
| 167 | + methods: { | ||
| 168 | + /** 查询定时任务列表 */ | ||
| 169 | + getList() { | ||
| 170 | + this.loading = true; | ||
| 171 | + listJob(this.queryParams).then(response => { | ||
| 172 | + this.jobList = response.data.list; | ||
| 173 | + this.total = response.data.total; | ||
| 174 | + this.loading = false; | ||
| 175 | + }); | ||
| 176 | + }, | ||
| 177 | + /** 取消按钮 */ | ||
| 178 | + cancel() { | ||
| 179 | + this.open = false; | ||
| 180 | + this.reset(); | ||
| 181 | + }, | ||
| 182 | + /** 表单重置 */ | ||
| 183 | + reset() { | ||
| 184 | + this.form = { | ||
| 185 | + id: undefined, | ||
| 186 | + name: undefined, | ||
| 187 | + handlerName: undefined, | ||
| 188 | + handlerParam: undefined, | ||
| 189 | + cronExpression: undefined, | ||
| 190 | + monitorTimeout: undefined, | ||
| 191 | + }; | ||
| 192 | + this.resetForm("form"); | ||
| 193 | + }, | ||
| 194 | + /** 搜索按钮操作 */ | ||
| 195 | + handleQuery() { | ||
| 196 | + this.queryParams.pageNo = 1; | ||
| 197 | + this.getList(); | ||
| 198 | + }, | ||
| 199 | + /** 重置按钮操作 */ | ||
| 200 | + resetQuery() { | ||
| 201 | + this.resetForm("queryForm"); | ||
| 202 | + this.handleQuery(); | ||
| 203 | + }, | ||
| 204 | + /** 立即执行一次 **/ | ||
| 205 | + handleRun(row) { | ||
| 206 | + this.$confirm('确认要立即执行一次"' + row.name + '"任务吗?', "警告", { | ||
| 207 | + confirmButtonText: "确定", | ||
| 208 | + cancelButtonText: "取消", | ||
| 209 | + type: "warning" | ||
| 210 | + }).then(function() { | ||
| 211 | + return runJob(row.id); | ||
| 212 | + }).then(() => { | ||
| 213 | + this.msgSuccess("执行成功"); | ||
| 214 | + }) | ||
| 215 | + }, | ||
| 216 | + /** 任务详细信息 */ | ||
| 217 | + handleView(row) { | ||
| 218 | + getJob(row.id).then(response => { | ||
| 219 | + this.form = response.data; | ||
| 220 | + this.openView = true; | ||
| 221 | + }); | ||
| 222 | + }, | ||
| 223 | + /** 任务日志列表查询 */ | ||
| 224 | + handleJobLog() { | ||
| 225 | + this.$router.push("/job/log"); | ||
| 226 | + }, | ||
| 227 | + /** 新增按钮操作 */ | ||
| 228 | + handleAdd() { | ||
| 229 | + this.reset(); | ||
| 230 | + this.open = true; | ||
| 231 | + this.title = "添加任务"; | ||
| 232 | + }, | ||
| 233 | + /** 修改按钮操作 */ | ||
| 234 | + handleUpdate(row) { | ||
| 235 | + this.reset(); | ||
| 236 | + const id = row.id; | ||
| 237 | + getJob(id).then(response => { | ||
| 238 | + this.form = response.data; | ||
| 239 | + this.open = true; | ||
| 240 | + this.title = "修改任务"; | ||
| 241 | + }); | ||
| 242 | + }, | ||
| 243 | + /** 提交按钮 */ | ||
| 244 | + submitForm: function() { | ||
| 245 | + this.$refs["form"].validate(valid => { | ||
| 246 | + if (valid) { | ||
| 247 | + if (this.form.id !== undefined) { | ||
| 248 | + updateJob(this.form).then(response => { | ||
| 249 | + this.msgSuccess("修改成功"); | ||
| 250 | + this.open = false; | ||
| 251 | + this.getList(); | ||
| 252 | + }); | ||
| 253 | + } else { | ||
| 254 | + addJob(this.form).then(response => { | ||
| 255 | + this.msgSuccess("新增成功"); | ||
| 256 | + this.open = false; | ||
| 257 | + this.getList(); | ||
| 258 | + }); | ||
| 259 | + } | ||
| 260 | + } | ||
| 261 | + }); | ||
| 262 | + }, | ||
| 263 | + /** 删除按钮操作 */ | ||
| 264 | + handleDelete(row) { | ||
| 265 | + const ids = row.id; | ||
| 266 | + this.$confirm('是否确认删除定时任务编号为"' + ids + '"的数据项?', "警告", { | ||
| 267 | + confirmButtonText: "确定", | ||
| 268 | + cancelButtonText: "取消", | ||
| 269 | + type: "warning" | ||
| 270 | + }).then(function() { | ||
| 271 | + return delJob(ids); | ||
| 272 | + }).then(() => { | ||
| 273 | + this.getList(); | ||
| 274 | + this.msgSuccess("删除成功"); | ||
| 275 | + }) | ||
| 276 | + }, | ||
| 277 | + /** 更新状态操作 */ | ||
| 278 | + handleChangeStatus(row, open) { | ||
| 279 | + const id = row.id; | ||
| 280 | + let status = open ? InfJobStatusEnum.NORMAL : InfJobStatusEnum.STOP; | ||
| 281 | + let statusStr = open ? '开启' : '关闭'; | ||
| 282 | + this.$confirm('是否确认' + statusStr + '定时任务编号为"' + id + '"的数据项?', "警告", { | ||
| 283 | + confirmButtonText: "确定", | ||
| 284 | + cancelButtonText: "取消", | ||
| 285 | + type: "warning" | ||
| 286 | + }).then(function() { | ||
| 287 | + return updateJobStatus(id, status); | ||
| 288 | + }).then(() => { | ||
| 289 | + this.getList(); | ||
| 290 | + this.msgSuccess(statusStr + "成功"); | ||
| 291 | + }) | ||
| 292 | + }, | ||
| 293 | + /** 导出按钮操作 */ | ||
| 294 | + handleExport() { | ||
| 295 | + const queryParams = this.queryParams; | ||
| 296 | + this.$confirm("是否确认导出所有定时任务数据项?", "警告", { | ||
| 297 | + confirmButtonText: "确定", | ||
| 298 | + cancelButtonText: "取消", | ||
| 299 | + type: "warning" | ||
| 300 | + }).then(function() { | ||
| 301 | + return exportJob(queryParams); | ||
| 302 | + }).then(response => { | ||
| 303 | + this.downloadExcel(response, '定时任务.xls'); | ||
| 304 | + }) | ||
| 305 | + } | ||
| 306 | + } | ||
| 307 | +}; | ||
| 308 | +</script> |
ruoyi-ui/src/views/monitor/job/log.vue renamed to ruoyi-ui/src/views/infra/job/log.vue
ruoyi-ui/src/views/monitor/server/index.vue renamed to ruoyi-ui/src/views/infra/server/index.vue
| 1 | -<template> | ||
| 2 | - <div class="app-container"> | ||
| 3 | - <el-row> | ||
| 4 | - <el-col :span="12" class="card-box"> | ||
| 5 | - <el-card> | ||
| 6 | - <div slot="header"><span>CPU</span></div> | ||
| 7 | - <div class="el-table el-table--enable-row-hover el-table--medium"> | ||
| 8 | - <table cellspacing="0" style="width: 100%;"> | ||
| 9 | - <thead> | ||
| 10 | - <tr> | ||
| 11 | - <th class="is-leaf"><div class="cell">属性</div></th> | ||
| 12 | - <th class="is-leaf"><div class="cell">值</div></th> | ||
| 13 | - </tr> | ||
| 14 | - </thead> | ||
| 15 | - <tbody> | ||
| 16 | - <tr> | ||
| 17 | - <td><div class="cell">核心数</div></td> | ||
| 18 | - <td><div class="cell" v-if="server.cpu">{{ server.cpu.cpuNum }}</div></td> | ||
| 19 | - </tr> | ||
| 20 | - <tr> | ||
| 21 | - <td><div class="cell">用户使用率</div></td> | ||
| 22 | - <td><div class="cell" v-if="server.cpu">{{ server.cpu.used }}%</div></td> | ||
| 23 | - </tr> | ||
| 24 | - <tr> | ||
| 25 | - <td><div class="cell">系统使用率</div></td> | ||
| 26 | - <td><div class="cell" v-if="server.cpu">{{ server.cpu.sys }}%</div></td> | ||
| 27 | - </tr> | ||
| 28 | - <tr> | ||
| 29 | - <td><div class="cell">当前空闲率</div></td> | ||
| 30 | - <td><div class="cell" v-if="server.cpu">{{ server.cpu.free }}%</div></td> | ||
| 31 | - </tr> | ||
| 32 | - </tbody> | ||
| 33 | - </table> | ||
| 34 | - </div> | ||
| 35 | - </el-card> | ||
| 36 | - </el-col> | ||
| 37 | - | ||
| 38 | - <el-col :span="12" class="card-box"> | ||
| 39 | - <el-card> | ||
| 40 | - <div slot="header"><span>内存</span></div> | ||
| 41 | - <div class="el-table el-table--enable-row-hover el-table--medium"> | ||
| 42 | - <table cellspacing="0" style="width: 100%;"> | ||
| 43 | - <thead> | ||
| 44 | - <tr> | ||
| 45 | - <th class="is-leaf"><div class="cell">属性</div></th> | ||
| 46 | - <th class="is-leaf"><div class="cell">内存</div></th> | ||
| 47 | - <th class="is-leaf"><div class="cell">JVM</div></th> | ||
| 48 | - </tr> | ||
| 49 | - </thead> | ||
| 50 | - <tbody> | ||
| 51 | - <tr> | ||
| 52 | - <td><div class="cell">总内存</div></td> | ||
| 53 | - <td><div class="cell" v-if="server.mem">{{ server.mem.total }}G</div></td> | ||
| 54 | - <td><div class="cell" v-if="server.jvm">{{ server.jvm.total }}M</div></td> | ||
| 55 | - </tr> | ||
| 56 | - <tr> | ||
| 57 | - <td><div class="cell">已用内存</div></td> | ||
| 58 | - <td><div class="cell" v-if="server.mem">{{ server.mem.used}}G</div></td> | ||
| 59 | - <td><div class="cell" v-if="server.jvm">{{ server.jvm.used}}M</div></td> | ||
| 60 | - </tr> | ||
| 61 | - <tr> | ||
| 62 | - <td><div class="cell">剩余内存</div></td> | ||
| 63 | - <td><div class="cell" v-if="server.mem">{{ server.mem.free }}G</div></td> | ||
| 64 | - <td><div class="cell" v-if="server.jvm">{{ server.jvm.free }}M</div></td> | ||
| 65 | - </tr> | ||
| 66 | - <tr> | ||
| 67 | - <td><div class="cell">使用率</div></td> | ||
| 68 | - <td><div class="cell" v-if="server.mem" :class="{'text-danger': server.mem.usage > 80}">{{ server.mem.usage }}%</div></td> | ||
| 69 | - <td><div class="cell" v-if="server.jvm" :class="{'text-danger': server.jvm.usage > 80}">{{ server.jvm.usage }}%</div></td> | ||
| 70 | - </tr> | ||
| 71 | - </tbody> | ||
| 72 | - </table> | ||
| 73 | - </div> | ||
| 74 | - </el-card> | ||
| 75 | - </el-col> | ||
| 76 | - | ||
| 77 | - <el-col :span="24" class="card-box"> | ||
| 78 | - <el-card> | ||
| 79 | - <div slot="header"> | ||
| 80 | - <span>服务器信息</span> | ||
| 81 | - </div> | ||
| 82 | - <div class="el-table el-table--enable-row-hover el-table--medium"> | ||
| 83 | - <table cellspacing="0" style="width: 100%;"> | ||
| 84 | - <tbody> | ||
| 85 | - <tr> | ||
| 86 | - <td><div class="cell">服务器名称</div></td> | ||
| 87 | - <td><div class="cell" v-if="server.sys">{{ server.sys.computerName }}</div></td> | ||
| 88 | - <td><div class="cell">操作系统</div></td> | ||
| 89 | - <td><div class="cell" v-if="server.sys">{{ server.sys.osName }}</div></td> | ||
| 90 | - </tr> | ||
| 91 | - <tr> | ||
| 92 | - <td><div class="cell">服务器IP</div></td> | ||
| 93 | - <td><div class="cell" v-if="server.sys">{{ server.sys.computerIp }}</div></td> | ||
| 94 | - <td><div class="cell">系统架构</div></td> | ||
| 95 | - <td><div class="cell" v-if="server.sys">{{ server.sys.osArch }}</div></td> | ||
| 96 | - </tr> | ||
| 97 | - </tbody> | ||
| 98 | - </table> | ||
| 99 | - </div> | ||
| 100 | - </el-card> | ||
| 101 | - </el-col> | ||
| 102 | - | ||
| 103 | - <el-col :span="24" class="card-box"> | ||
| 104 | - <el-card> | ||
| 105 | - <div slot="header"> | ||
| 106 | - <span>Java虚拟机信息</span> | ||
| 107 | - </div> | ||
| 108 | - <div class="el-table el-table--enable-row-hover el-table--medium"> | ||
| 109 | - <table cellspacing="0" style="width: 100%;"> | ||
| 110 | - <tbody> | ||
| 111 | - <tr> | ||
| 112 | - <td><div class="cell">Java名称</div></td> | ||
| 113 | - <td><div class="cell" v-if="server.jvm">{{ server.jvm.name }}</div></td> | ||
| 114 | - <td><div class="cell">Java版本</div></td> | ||
| 115 | - <td><div class="cell" v-if="server.jvm">{{ server.jvm.version }}</div></td> | ||
| 116 | - </tr> | ||
| 117 | - <tr> | ||
| 118 | - <td><div class="cell">启动时间</div></td> | ||
| 119 | - <td><div class="cell" v-if="server.jvm">{{ server.jvm.startTime }}</div></td> | ||
| 120 | - <td><div class="cell">运行时长</div></td> | ||
| 121 | - <td><div class="cell" v-if="server.jvm">{{ server.jvm.runTime }}</div></td> | ||
| 122 | - </tr> | ||
| 123 | - <tr> | ||
| 124 | - <td colspan="1"><div class="cell">安装路径</div></td> | ||
| 125 | - <td colspan="3"><div class="cell" v-if="server.jvm">{{ server.jvm.home }}</div></td> | ||
| 126 | - </tr> | ||
| 127 | - <tr> | ||
| 128 | - <td colspan="1"><div class="cell">项目路径</div></td> | ||
| 129 | - <td colspan="3"><div class="cell" v-if="server.sys">{{ server.sys.userDir }}</div></td> | ||
| 130 | - </tr> | ||
| 131 | - </tbody> | ||
| 132 | - </table> | ||
| 133 | - </div> | ||
| 134 | - </el-card> | ||
| 135 | - </el-col> | ||
| 136 | - | ||
| 137 | - <el-col :span="24" class="card-box"> | ||
| 138 | - <el-card> | ||
| 139 | - <div slot="header"> | ||
| 140 | - <span>磁盘状态</span> | ||
| 141 | - </div> | ||
| 142 | - <div class="el-table el-table--enable-row-hover el-table--medium"> | ||
| 143 | - <table cellspacing="0" style="width: 100%;"> | ||
| 144 | - <thead> | ||
| 145 | - <tr> | ||
| 146 | - <th class="is-leaf"><div class="cell">盘符路径</div></th> | ||
| 147 | - <th class="is-leaf"><div class="cell">文件系统</div></th> | ||
| 148 | - <th class="is-leaf"><div class="cell">盘符类型</div></th> | ||
| 149 | - <th class="is-leaf"><div class="cell">总大小</div></th> | ||
| 150 | - <th class="is-leaf"><div class="cell">可用大小</div></th> | ||
| 151 | - <th class="is-leaf"><div class="cell">已用大小</div></th> | ||
| 152 | - <th class="is-leaf"><div class="cell">已用百分比</div></th> | ||
| 153 | - </tr> | ||
| 154 | - </thead> | ||
| 155 | - <tbody v-if="server.sysFiles"> | ||
| 156 | - <tr v-for="sysFile in server.sysFiles"> | ||
| 157 | - <td><div class="cell">{{ sysFile.dirName }}</div></td> | ||
| 158 | - <td><div class="cell">{{ sysFile.sysTypeName }}</div></td> | ||
| 159 | - <td><div class="cell">{{ sysFile.typeName }}</div></td> | ||
| 160 | - <td><div class="cell">{{ sysFile.total }}</div></td> | ||
| 161 | - <td><div class="cell">{{ sysFile.free }}</div></td> | ||
| 162 | - <td><div class="cell">{{ sysFile.used }}</div></td> | ||
| 163 | - <td><div class="cell" :class="{'text-danger': sysFile.usage > 80}">{{ sysFile.usage }}%</div></td> | ||
| 164 | - </tr> | ||
| 165 | - </tbody> | ||
| 166 | - </table> | ||
| 167 | - </div> | ||
| 168 | - </el-card> | ||
| 169 | - </el-col> | ||
| 170 | - </el-row> | ||
| 171 | - </div> | ||
| 172 | -</template> | ||
| 173 | - | ||
| 174 | -<script> | ||
| 175 | -import { getServer } from "@/api/monitor/server"; | ||
| 176 | - | ||
| 177 | -export default { | ||
| 178 | - name: "Server", | ||
| 179 | - data() { | ||
| 180 | - return { | ||
| 181 | - // 加载层信息 | ||
| 182 | - loading: [], | ||
| 183 | - // 服务器信息 | ||
| 184 | - server: [] | ||
| 185 | - }; | ||
| 186 | - }, | ||
| 187 | - created() { | ||
| 188 | - this.getList(); | ||
| 189 | - this.openLoading(); | ||
| 190 | - }, | ||
| 191 | - methods: { | ||
| 192 | - /** 查询服务器信息 */ | ||
| 193 | - getList() { | ||
| 194 | - getServer().then(response => { | ||
| 195 | - this.server = response.data; | ||
| 196 | - this.loading.close(); | ||
| 197 | - }); | ||
| 198 | - }, | ||
| 199 | - // 打开加载层 | ||
| 200 | - openLoading() { | ||
| 201 | - this.loading = this.$loading({ | ||
| 202 | - lock: true, | ||
| 203 | - text: "拼命读取中", | ||
| 204 | - spinner: "el-icon-loading", | ||
| 205 | - background: "rgba(0, 0, 0, 0.7)" | ||
| 206 | - }); | ||
| 207 | - } | ||
| 208 | - } | ||
| 209 | -}; | 1 | +<template> |
| 2 | + <div class="app-container"> | ||
| 3 | + <el-row> | ||
| 4 | + <el-col :span="12" class="card-box"> | ||
| 5 | + <el-card> | ||
| 6 | + <div slot="header"><span>CPU</span></div> | ||
| 7 | + <div class="el-table el-table--enable-row-hover el-table--medium"> | ||
| 8 | + <table cellspacing="0" style="width: 100%;"> | ||
| 9 | + <thead> | ||
| 10 | + <tr> | ||
| 11 | + <th class="is-leaf"><div class="cell">属性</div></th> | ||
| 12 | + <th class="is-leaf"><div class="cell">值</div></th> | ||
| 13 | + </tr> | ||
| 14 | + </thead> | ||
| 15 | + <tbody> | ||
| 16 | + <tr> | ||
| 17 | + <td><div class="cell">核心数</div></td> | ||
| 18 | + <td><div class="cell" v-if="server.cpu">{{ server.cpu.cpuNum }}</div></td> | ||
| 19 | + </tr> | ||
| 20 | + <tr> | ||
| 21 | + <td><div class="cell">用户使用率</div></td> | ||
| 22 | + <td><div class="cell" v-if="server.cpu">{{ server.cpu.used }}%</div></td> | ||
| 23 | + </tr> | ||
| 24 | + <tr> | ||
| 25 | + <td><div class="cell">系统使用率</div></td> | ||
| 26 | + <td><div class="cell" v-if="server.cpu">{{ server.cpu.sys }}%</div></td> | ||
| 27 | + </tr> | ||
| 28 | + <tr> | ||
| 29 | + <td><div class="cell">当前空闲率</div></td> | ||
| 30 | + <td><div class="cell" v-if="server.cpu">{{ server.cpu.free }}%</div></td> | ||
| 31 | + </tr> | ||
| 32 | + </tbody> | ||
| 33 | + </table> | ||
| 34 | + </div> | ||
| 35 | + </el-card> | ||
| 36 | + </el-col> | ||
| 37 | + | ||
| 38 | + <el-col :span="12" class="card-box"> | ||
| 39 | + <el-card> | ||
| 40 | + <div slot="header"><span>内存</span></div> | ||
| 41 | + <div class="el-table el-table--enable-row-hover el-table--medium"> | ||
| 42 | + <table cellspacing="0" style="width: 100%;"> | ||
| 43 | + <thead> | ||
| 44 | + <tr> | ||
| 45 | + <th class="is-leaf"><div class="cell">属性</div></th> | ||
| 46 | + <th class="is-leaf"><div class="cell">内存</div></th> | ||
| 47 | + <th class="is-leaf"><div class="cell">JVM</div></th> | ||
| 48 | + </tr> | ||
| 49 | + </thead> | ||
| 50 | + <tbody> | ||
| 51 | + <tr> | ||
| 52 | + <td><div class="cell">总内存</div></td> | ||
| 53 | + <td><div class="cell" v-if="server.mem">{{ server.mem.total }}G</div></td> | ||
| 54 | + <td><div class="cell" v-if="server.jvm">{{ server.jvm.total }}M</div></td> | ||
| 55 | + </tr> | ||
| 56 | + <tr> | ||
| 57 | + <td><div class="cell">已用内存</div></td> | ||
| 58 | + <td><div class="cell" v-if="server.mem">{{ server.mem.used}}G</div></td> | ||
| 59 | + <td><div class="cell" v-if="server.jvm">{{ server.jvm.used}}M</div></td> | ||
| 60 | + </tr> | ||
| 61 | + <tr> | ||
| 62 | + <td><div class="cell">剩余内存</div></td> | ||
| 63 | + <td><div class="cell" v-if="server.mem">{{ server.mem.free }}G</div></td> | ||
| 64 | + <td><div class="cell" v-if="server.jvm">{{ server.jvm.free }}M</div></td> | ||
| 65 | + </tr> | ||
| 66 | + <tr> | ||
| 67 | + <td><div class="cell">使用率</div></td> | ||
| 68 | + <td><div class="cell" v-if="server.mem" :class="{'text-danger': server.mem.usage > 80}">{{ server.mem.usage }}%</div></td> | ||
| 69 | + <td><div class="cell" v-if="server.jvm" :class="{'text-danger': server.jvm.usage > 80}">{{ server.jvm.usage }}%</div></td> | ||
| 70 | + </tr> | ||
| 71 | + </tbody> | ||
| 72 | + </table> | ||
| 73 | + </div> | ||
| 74 | + </el-card> | ||
| 75 | + </el-col> | ||
| 76 | + | ||
| 77 | + <el-col :span="24" class="card-box"> | ||
| 78 | + <el-card> | ||
| 79 | + <div slot="header"> | ||
| 80 | + <span>服务器信息</span> | ||
| 81 | + </div> | ||
| 82 | + <div class="el-table el-table--enable-row-hover el-table--medium"> | ||
| 83 | + <table cellspacing="0" style="width: 100%;"> | ||
| 84 | + <tbody> | ||
| 85 | + <tr> | ||
| 86 | + <td><div class="cell">服务器名称</div></td> | ||
| 87 | + <td><div class="cell" v-if="server.sys">{{ server.sys.computerName }}</div></td> | ||
| 88 | + <td><div class="cell">操作系统</div></td> | ||
| 89 | + <td><div class="cell" v-if="server.sys">{{ server.sys.osName }}</div></td> | ||
| 90 | + </tr> | ||
| 91 | + <tr> | ||
| 92 | + <td><div class="cell">服务器IP</div></td> | ||
| 93 | + <td><div class="cell" v-if="server.sys">{{ server.sys.computerIp }}</div></td> | ||
| 94 | + <td><div class="cell">系统架构</div></td> | ||
| 95 | + <td><div class="cell" v-if="server.sys">{{ server.sys.osArch }}</div></td> | ||
| 96 | + </tr> | ||
| 97 | + </tbody> | ||
| 98 | + </table> | ||
| 99 | + </div> | ||
| 100 | + </el-card> | ||
| 101 | + </el-col> | ||
| 102 | + | ||
| 103 | + <el-col :span="24" class="card-box"> | ||
| 104 | + <el-card> | ||
| 105 | + <div slot="header"> | ||
| 106 | + <span>Java虚拟机信息</span> | ||
| 107 | + </div> | ||
| 108 | + <div class="el-table el-table--enable-row-hover el-table--medium"> | ||
| 109 | + <table cellspacing="0" style="width: 100%;"> | ||
| 110 | + <tbody> | ||
| 111 | + <tr> | ||
| 112 | + <td><div class="cell">Java名称</div></td> | ||
| 113 | + <td><div class="cell" v-if="server.jvm">{{ server.jvm.name }}</div></td> | ||
| 114 | + <td><div class="cell">Java版本</div></td> | ||
| 115 | + <td><div class="cell" v-if="server.jvm">{{ server.jvm.version }}</div></td> | ||
| 116 | + </tr> | ||
| 117 | + <tr> | ||
| 118 | + <td><div class="cell">启动时间</div></td> | ||
| 119 | + <td><div class="cell" v-if="server.jvm">{{ server.jvm.startTime }}</div></td> | ||
| 120 | + <td><div class="cell">运行时长</div></td> | ||
| 121 | + <td><div class="cell" v-if="server.jvm">{{ server.jvm.runTime }}</div></td> | ||
| 122 | + </tr> | ||
| 123 | + <tr> | ||
| 124 | + <td colspan="1"><div class="cell">安装路径</div></td> | ||
| 125 | + <td colspan="3"><div class="cell" v-if="server.jvm">{{ server.jvm.home }}</div></td> | ||
| 126 | + </tr> | ||
| 127 | + <tr> | ||
| 128 | + <td colspan="1"><div class="cell">项目路径</div></td> | ||
| 129 | + <td colspan="3"><div class="cell" v-if="server.sys">{{ server.sys.userDir }}</div></td> | ||
| 130 | + </tr> | ||
| 131 | + </tbody> | ||
| 132 | + </table> | ||
| 133 | + </div> | ||
| 134 | + </el-card> | ||
| 135 | + </el-col> | ||
| 136 | + | ||
| 137 | + <el-col :span="24" class="card-box"> | ||
| 138 | + <el-card> | ||
| 139 | + <div slot="header"> | ||
| 140 | + <span>磁盘状态</span> | ||
| 141 | + </div> | ||
| 142 | + <div class="el-table el-table--enable-row-hover el-table--medium"> | ||
| 143 | + <table cellspacing="0" style="width: 100%;"> | ||
| 144 | + <thead> | ||
| 145 | + <tr> | ||
| 146 | + <th class="is-leaf"><div class="cell">盘符路径</div></th> | ||
| 147 | + <th class="is-leaf"><div class="cell">文件系统</div></th> | ||
| 148 | + <th class="is-leaf"><div class="cell">盘符类型</div></th> | ||
| 149 | + <th class="is-leaf"><div class="cell">总大小</div></th> | ||
| 150 | + <th class="is-leaf"><div class="cell">可用大小</div></th> | ||
| 151 | + <th class="is-leaf"><div class="cell">已用大小</div></th> | ||
| 152 | + <th class="is-leaf"><div class="cell">已用百分比</div></th> | ||
| 153 | + </tr> | ||
| 154 | + </thead> | ||
| 155 | + <tbody v-if="server.sysFiles"> | ||
| 156 | + <tr v-for="sysFile in server.sysFiles"> | ||
| 157 | + <td><div class="cell">{{ sysFile.dirName }}</div></td> | ||
| 158 | + <td><div class="cell">{{ sysFile.sysTypeName }}</div></td> | ||
| 159 | + <td><div class="cell">{{ sysFile.typeName }}</div></td> | ||
| 160 | + <td><div class="cell">{{ sysFile.total }}</div></td> | ||
| 161 | + <td><div class="cell">{{ sysFile.free }}</div></td> | ||
| 162 | + <td><div class="cell">{{ sysFile.used }}</div></td> | ||
| 163 | + <td><div class="cell" :class="{'text-danger': sysFile.usage > 80}">{{ sysFile.usage }}%</div></td> | ||
| 164 | + </tr> | ||
| 165 | + </tbody> | ||
| 166 | + </table> | ||
| 167 | + </div> | ||
| 168 | + </el-card> | ||
| 169 | + </el-col> | ||
| 170 | + </el-row> | ||
| 171 | + </div> | ||
| 172 | +</template> | ||
| 173 | + | ||
| 174 | +<script> | ||
| 175 | +import { getServer } from "@/api/monitor/server"; | ||
| 176 | + | ||
| 177 | +export default { | ||
| 178 | + name: "Server", | ||
| 179 | + data() { | ||
| 180 | + return { | ||
| 181 | + // 加载层信息 | ||
| 182 | + loading: [], | ||
| 183 | + // 服务器信息 | ||
| 184 | + server: [] | ||
| 185 | + }; | ||
| 186 | + }, | ||
| 187 | + created() { | ||
| 188 | + this.getList(); | ||
| 189 | + this.openLoading(); | ||
| 190 | + }, | ||
| 191 | + methods: { | ||
| 192 | + /** 查询服务器信息 */ | ||
| 193 | + getList() { | ||
| 194 | + getServer().then(response => { | ||
| 195 | + this.server = response.data; | ||
| 196 | + this.loading.close(); | ||
| 197 | + }); | ||
| 198 | + }, | ||
| 199 | + // 打开加载层 | ||
| 200 | + openLoading() { | ||
| 201 | + this.loading = this.$loading({ | ||
| 202 | + lock: true, | ||
| 203 | + text: "拼命读取中", | ||
| 204 | + spinner: "el-icon-loading", | ||
| 205 | + background: "rgba(0, 0, 0, 0.7)" | ||
| 206 | + }); | ||
| 207 | + } | ||
| 208 | + } | ||
| 209 | +}; | ||
| 210 | </script> | 210 | </script> |
| 211 | \ No newline at end of file | 211 | \ No newline at end of file |
sql/ruoyi-vue-pro.sql
| @@ -11,7 +11,7 @@ | @@ -11,7 +11,7 @@ | ||
| 11 | Target Server Version : 50718 | 11 | Target Server Version : 50718 |
| 12 | File Encoding : 65001 | 12 | File Encoding : 65001 |
| 13 | 13 | ||
| 14 | - Date: 13/02/2021 13:39:00 | 14 | + Date: 14/02/2021 22:48:01 |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | SET NAMES utf8mb4; | 17 | SET NAMES utf8mb4; |
| @@ -49,6 +49,38 @@ INSERT INTO `inf_config` VALUES (4, '1', 2, 'xxx', 'demo.test', '10', b'0', '5', | @@ -49,6 +49,38 @@ INSERT INTO `inf_config` VALUES (4, '1', 2, 'xxx', 'demo.test', '10', b'0', '5', | ||
| 49 | COMMIT; | 49 | COMMIT; |
| 50 | 50 | ||
| 51 | -- ---------------------------- | 51 | -- ---------------------------- |
| 52 | +-- Table structure for inf_job | ||
| 53 | +-- ---------------------------- | ||
| 54 | +DROP TABLE IF EXISTS `inf_job`; | ||
| 55 | +CREATE TABLE `inf_job` ( | ||
| 56 | + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '隞餃蝻', | ||
| 57 | + `name` varchar(32) NOT NULL COMMENT '隞餃妍', | ||
| 58 | + `status` tinyint(4) NOT NULL COMMENT '隞餃', | ||
| 59 | + `handler_name` varchar(64) NOT NULL COMMENT '憭', | ||
| 60 | + `handler_param` varchar(255) DEFAULT NULL COMMENT '憭', | ||
| 61 | + `cron_expression` varchar(32) NOT NULL COMMENT 'CRON 銵刻噢撘', | ||
| 62 | + `execute_begin_time` datetime DEFAULT NULL COMMENT '甈⊥銵憪', | ||
| 63 | + `execute_end_time` datetime DEFAULT NULL COMMENT '甈⊥銵', | ||
| 64 | + `fire_prev_time` datetime DEFAULT NULL COMMENT '銝甈∟圻', | ||
| 65 | + `fire_next_time` datetime DEFAULT NULL COMMENT '銝甈∟圻', | ||
| 66 | + `monitor_timeout` int(11) DEFAULT NULL COMMENT '頞', | ||
| 67 | + `create_by` varchar(64) DEFAULT '' COMMENT '遣', | ||
| 68 | + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '遣', | ||
| 69 | + `update_by` varchar(64) DEFAULT '' COMMENT '', | ||
| 70 | + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '', | ||
| 71 | + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '', | ||
| 72 | + PRIMARY KEY (`id`) USING BTREE | ||
| 73 | +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COMMENT='摰隞餃銵'; | ||
| 74 | + | ||
| 75 | +-- ---------------------------- | ||
| 76 | +-- Records of inf_job | ||
| 77 | +-- ---------------------------- | ||
| 78 | +BEGIN; | ||
| 79 | +INSERT INTO `inf_job` VALUES (2, ' Session 頞 Job', 3, 'sysUserSessionTimeoutJob', 'aoteman', '0/5 * * * * ? *', NULL, NULL, NULL, NULL, 10, '', '2021-02-07 10:15:09', '', '2021-02-07 12:57:44', b'1'); | ||
| 80 | +INSERT INTO `inf_job` VALUES (3, ' Session 頞 Job', 1, 'sysUserSessionTimeoutJob', NULL, '0/5 * * * * ? *', NULL, NULL, NULL, NULL, 0, '', '2021-02-07 13:07:32', '', '2021-02-07 13:07:32', b'0'); | ||
| 81 | +COMMIT; | ||
| 82 | + | ||
| 83 | +-- ---------------------------- | ||
| 52 | -- Table structure for sys_dept | 84 | -- Table structure for sys_dept |
| 53 | -- ---------------------------- | 85 | -- ---------------------------- |
| 54 | DROP TABLE IF EXISTS `sys_dept`; | 86 | DROP TABLE IF EXISTS `sys_dept`; |
| @@ -103,7 +135,7 @@ CREATE TABLE `sys_dict_data` ( | @@ -103,7 +135,7 @@ CREATE TABLE `sys_dict_data` ( | ||
| 103 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '', | 135 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '', |
| 104 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '', | 136 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '', |
| 105 | PRIMARY KEY (`id`) USING BTREE | 137 | PRIMARY KEY (`id`) USING BTREE |
| 106 | -) ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=utf8mb4 COMMENT='摮銵'; | 138 | +) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=utf8mb4 COMMENT='摮銵'; |
| 107 | 139 | ||
| 108 | -- ---------------------------- | 140 | -- ---------------------------- |
| 109 | -- Records of sys_dict_data | 141 | -- Records of sys_dict_data |
| @@ -111,10 +143,10 @@ CREATE TABLE `sys_dict_data` ( | @@ -111,10 +143,10 @@ CREATE TABLE `sys_dict_data` ( | ||
| 111 | BEGIN; | 143 | BEGIN; |
| 112 | INSERT INTO `sys_dict_data` VALUES (1, 1, '', '1', 'sys_user_sex', 0, '批', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 05:48:53', b'0'); | 144 | INSERT INTO `sys_dict_data` VALUES (1, 1, '', '1', 'sys_user_sex', 0, '批', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 05:48:53', b'0'); |
| 113 | INSERT INTO `sys_dict_data` VALUES (2, 2, '憟', '2', 'sys_user_sex', 0, '批憟', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 05:48:55', b'0'); | 145 | INSERT INTO `sys_dict_data` VALUES (2, 2, '憟', '2', 'sys_user_sex', 0, '批憟', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 05:48:55', b'0'); |
| 114 | -INSERT INTO `sys_dict_data` VALUES (8, 1, '甇虜', '0', 'sys_job_status', 0, '甇虜', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0'); | ||
| 115 | -INSERT INTO `sys_dict_data` VALUES (9, 2, '', '1', 'sys_job_status', 0, '', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0'); | ||
| 116 | -INSERT INTO `sys_dict_data` VALUES (10, 1, '暺恕', 'DEFAULT', 'sys_job_group', 0, '暺恕', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0'); | ||
| 117 | -INSERT INTO `sys_dict_data` VALUES (11, 2, '蝟餌', 'SYSTEM', 'sys_job_group', 0, '蝟餌', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0'); | 146 | +INSERT INTO `sys_dict_data` VALUES (8, 1, '甇虜', '0', 'sys_job_status', 0, '甇虜', 'admin', '2021-01-05 17:03:48', '', '2021-02-07 07:43:57', b'1'); |
| 147 | +INSERT INTO `sys_dict_data` VALUES (9, 2, '', '1', 'sys_job_status', 0, '', 'admin', '2021-01-05 17:03:48', '', '2021-02-07 07:43:59', b'1'); | ||
| 148 | +INSERT INTO `sys_dict_data` VALUES (10, 1, '暺恕', 'DEFAULT', 'sys_job_group', 0, '暺恕', 'admin', '2021-01-05 17:03:48', '', '2021-02-07 07:43:44', b'1'); | ||
| 149 | +INSERT INTO `sys_dict_data` VALUES (11, 2, '蝟餌', 'SYSTEM', 'sys_job_group', 0, '蝟餌', 'admin', '2021-01-05 17:03:48', '', '2021-02-07 07:43:45', b'1'); | ||
| 118 | INSERT INTO `sys_dict_data` VALUES (12, 1, '蝟餌蔭', '1', 'sys_config_type', 0, '蝐餃 - 蝟餌蔭', 'admin', '2021-01-05 17:03:48', '', '2021-01-18 07:41:59', b'0'); | 150 | INSERT INTO `sys_dict_data` VALUES (12, 1, '蝟餌蔭', '1', 'sys_config_type', 0, '蝐餃 - 蝟餌蔭', 'admin', '2021-01-05 17:03:48', '', '2021-01-18 07:41:59', b'0'); |
| 119 | INSERT INTO `sys_dict_data` VALUES (13, 2, '摰', '2', 'sys_config_type', 0, '蝐餃 - 摰', 'admin', '2021-01-05 17:03:48', '', '2021-01-18 07:41:51', b'0'); | 151 | INSERT INTO `sys_dict_data` VALUES (13, 2, '摰', '2', 'sys_config_type', 0, '蝐餃 - 摰', 'admin', '2021-01-05 17:03:48', '', '2021-01-18 07:41:51', b'0'); |
| 120 | INSERT INTO `sys_dict_data` VALUES (14, 1, '', '1', 'sys_notice_type', 0, '', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0'); | 152 | INSERT INTO `sys_dict_data` VALUES (14, 1, '', '1', 'sys_notice_type', 0, '', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0'); |
| @@ -152,6 +184,10 @@ INSERT INTO `sys_dict_data` VALUES (49, 3, '摰', '3', 'inf_redis_timeo | @@ -152,6 +184,10 @@ INSERT INTO `sys_dict_data` VALUES (49, 3, '摰', '3', 'inf_redis_timeo | ||
| 152 | INSERT INTO `sys_dict_data` VALUES (50, 1, '”嚗嚗', '1', 'tool_codegen_template_type', 0, NULL, '', '2021-02-05 07:09:06', '', '2021-02-05 07:21:52', b'0'); | 184 | INSERT INTO `sys_dict_data` VALUES (50, 1, '”嚗嚗', '1', 'tool_codegen_template_type', 0, NULL, '', '2021-02-05 07:09:06', '', '2021-02-05 07:21:52', b'0'); |
| 153 | INSERT INTO `sys_dict_data` VALUES (51, 2, '”嚗嚗', '2', 'tool_codegen_template_type', 0, NULL, '', '2021-02-05 07:14:46', '', '2021-02-05 07:21:49', b'0'); | 185 | INSERT INTO `sys_dict_data` VALUES (51, 2, '”嚗嚗', '2', 'tool_codegen_template_type', 0, NULL, '', '2021-02-05 07:14:46', '', '2021-02-05 07:21:49', b'0'); |
| 154 | INSERT INTO `sys_dict_data` VALUES (52, 3, '銝餃”嚗嚗', '3', 'tool_codegen_template_type', 0, NULL, '', '2021-02-05 07:21:45', '', '2021-02-06 18:54:26', b'1'); | 186 | INSERT INTO `sys_dict_data` VALUES (52, 3, '銝餃”嚗嚗', '3', 'tool_codegen_template_type', 0, NULL, '', '2021-02-05 07:21:45', '', '2021-02-06 18:54:26', b'1'); |
| 187 | +INSERT INTO `sys_dict_data` VALUES (53, 0, '葉', '0', 'inf_job_status', 0, NULL, '', '2021-02-07 07:46:49', '', '2021-02-07 07:46:49', b'0'); | ||
| 188 | +INSERT INTO `sys_dict_data` VALUES (54, 1, '撘', '1', 'inf_job_status', 0, NULL, '', '2021-02-07 07:46:57', '', '2021-02-07 11:54:09', b'0'); | ||
| 189 | +INSERT INTO `sys_dict_data` VALUES (55, 2, '撘虜', '2', 'inf_job_status', 0, NULL, '', '2021-02-07 07:47:10', '', '2021-02-07 11:54:12', b'0'); | ||
| 190 | +INSERT INTO `sys_dict_data` VALUES (56, 3, '', '3', 'inf_job_status', 0, NULL, '', '2021-02-07 07:47:16', '', '2021-02-07 11:54:14', b'0'); | ||
| 155 | COMMIT; | 191 | COMMIT; |
| 156 | 192 | ||
| 157 | -- ---------------------------- | 193 | -- ---------------------------- |
| @@ -171,7 +207,7 @@ CREATE TABLE `sys_dict_type` ( | @@ -171,7 +207,7 @@ CREATE TABLE `sys_dict_type` ( | ||
| 171 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '', | 207 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '', |
| 172 | PRIMARY KEY (`id`) USING BTREE, | 208 | PRIMARY KEY (`id`) USING BTREE, |
| 173 | UNIQUE KEY `dict_type` (`dict_type`) | 209 | UNIQUE KEY `dict_type` (`dict_type`) |
| 174 | -) ENGINE=InnoDB AUTO_INCREMENT=107 DEFAULT CHARSET=utf8mb4 COMMENT='摮蝐餃”'; | 210 | +) ENGINE=InnoDB AUTO_INCREMENT=108 DEFAULT CHARSET=utf8mb4 COMMENT='摮蝐餃”'; |
| 175 | 211 | ||
| 176 | -- ---------------------------- | 212 | -- ---------------------------- |
| 177 | -- Records of sys_dict_type | 213 | -- Records of sys_dict_type |
| @@ -179,8 +215,8 @@ CREATE TABLE `sys_dict_type` ( | @@ -179,8 +215,8 @@ CREATE TABLE `sys_dict_type` ( | ||
| 179 | BEGIN; | 215 | BEGIN; |
| 180 | INSERT INTO `sys_dict_type` VALUES (1, '批', 'sys_user_sex', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 17:03:48', b'0'); | 216 | INSERT INTO `sys_dict_type` VALUES (1, '批', 'sys_user_sex', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 17:03:48', b'0'); |
| 181 | INSERT INTO `sys_dict_type` VALUES (3, '蝟餌', 'sys_normal_disable', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2021-01-07 19:47:48', b'1'); | 217 | INSERT INTO `sys_dict_type` VALUES (3, '蝟餌', 'sys_normal_disable', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2021-01-07 19:47:48', b'1'); |
| 182 | -INSERT INTO `sys_dict_type` VALUES (4, '隞餃', 'sys_job_status', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 17:03:48', b'0'); | ||
| 183 | -INSERT INTO `sys_dict_type` VALUES (5, '隞餃', 'sys_job_group', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 17:03:48', b'0'); | 218 | +INSERT INTO `sys_dict_type` VALUES (4, '隞餃蜀', 'sys_job_status', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2021-02-07 07:44:06', b'1'); |
| 219 | +INSERT INTO `sys_dict_type` VALUES (5, '隞餃', 'sys_job_group', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2021-02-07 07:43:52', b'1'); | ||
| 184 | INSERT INTO `sys_dict_type` VALUES (6, '蝐餃', 'sys_config_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2021-01-18 07:41:04', b'0'); | 220 | INSERT INTO `sys_dict_type` VALUES (6, '蝐餃', 'sys_config_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2021-01-18 07:41:04', b'0'); |
| 185 | INSERT INTO `sys_dict_type` VALUES (7, '蝐餃', 'sys_notice_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 17:03:48', b'0'); | 221 | INSERT INTO `sys_dict_type` VALUES (7, '蝐餃', 'sys_notice_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 17:03:48', b'0'); |
| 186 | INSERT INTO `sys_dict_type` VALUES (8, '', 'sys_notice_status', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 17:03:48', b'0'); | 222 | INSERT INTO `sys_dict_type` VALUES (8, '', 'sys_notice_status', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 17:03:48', b'0'); |
| @@ -190,6 +226,7 @@ INSERT INTO `sys_dict_type` VALUES (11, 'Boolean 蝐餃', 'sys_boolean_str | @@ -190,6 +226,7 @@ INSERT INTO `sys_dict_type` VALUES (11, 'Boolean 蝐餃', 'sys_boolean_str | ||
| 190 | INSERT INTO `sys_dict_type` VALUES (104, '', 'sys_login_result', 0, '', '', '2021-01-18 06:17:11', '', '2021-01-18 06:17:11', b'0'); | 226 | INSERT INTO `sys_dict_type` VALUES (104, '', 'sys_login_result', 0, '', '', '2021-01-18 06:17:11', '', '2021-01-18 06:17:11', b'0'); |
| 191 | INSERT INTO `sys_dict_type` VALUES (105, 'Redis 頞蝐餃', 'inf_redis_timeout_type', 0, 'RedisKeyDefine.TimeoutTypeEnum', '', '2021-01-26 00:52:50', '', '2021-01-26 00:52:50', b'0'); | 227 | INSERT INTO `sys_dict_type` VALUES (105, 'Redis 頞蝐餃', 'inf_redis_timeout_type', 0, 'RedisKeyDefine.TimeoutTypeEnum', '', '2021-01-26 00:52:50', '', '2021-01-26 00:52:50', b'0'); |
| 192 | INSERT INTO `sys_dict_type` VALUES (106, '隞芋蝐餃', 'tool_codegen_template_type', 0, NULL, '', '2021-02-05 07:08:06', '', '2021-02-05 07:08:06', b'0'); | 228 | INSERT INTO `sys_dict_type` VALUES (106, '隞芋蝐餃', 'tool_codegen_template_type', 0, NULL, '', '2021-02-05 07:08:06', '', '2021-02-05 07:08:06', b'0'); |
| 229 | +INSERT INTO `sys_dict_type` VALUES (107, '摰隞餃', 'inf_job_status', 0, NULL, '', '2021-02-07 07:44:16', '', '2021-02-07 07:44:16', b'0'); | ||
| 193 | COMMIT; | 230 | COMMIT; |
| 194 | 231 | ||
| 195 | -- ---------------------------- | 232 | -- ---------------------------- |
| @@ -284,7 +321,7 @@ CREATE TABLE `sys_login_log` ( | @@ -284,7 +321,7 @@ CREATE TABLE `sys_login_log` ( | ||
| 284 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '', | 321 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '', |
| 285 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '', | 322 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '', |
| 286 | PRIMARY KEY (`id`) USING BTREE | 323 | PRIMARY KEY (`id`) USING BTREE |
| 287 | -) ENGINE=InnoDB AUTO_INCREMENT=73 DEFAULT CHARSET=utf8mb4 COMMENT='蝟餌挪霈啣'; | 324 | +) ENGINE=InnoDB AUTO_INCREMENT=80 DEFAULT CHARSET=utf8mb4 COMMENT='蝟餌挪霈啣'; |
| 288 | 325 | ||
| 289 | -- ---------------------------- | 326 | -- ---------------------------- |
| 290 | -- Records of sys_login_log | 327 | -- Records of sys_login_log |
| @@ -362,6 +399,13 @@ INSERT INTO `sys_login_log` VALUES (69, 100, 'a02dac13-0f1c-4f39-9497-759cace4fc | @@ -362,6 +399,13 @@ INSERT INTO `sys_login_log` VALUES (69, 100, 'a02dac13-0f1c-4f39-9497-759cace4fc | ||
| 362 | INSERT INTO `sys_login_log` VALUES (70, 100, 'd79982bf-79df-4547-ab7e-74bb9fe0c8ef', 'admin', 31, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 19:46:41', '', '2021-02-06 19:46:41', b'0'); | 399 | INSERT INTO `sys_login_log` VALUES (70, 100, 'd79982bf-79df-4547-ab7e-74bb9fe0c8ef', 'admin', 31, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 19:46:41', '', '2021-02-06 19:46:41', b'0'); |
| 363 | INSERT INTO `sys_login_log` VALUES (71, 100, '5cc80a7e-f4ec-4e02-9d0c-1d26062e2be6', 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 19:46:45', '', '2021-02-06 19:46:45', b'0'); | 400 | INSERT INTO `sys_login_log` VALUES (71, 100, '5cc80a7e-f4ec-4e02-9d0c-1d26062e2be6', 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 19:46:45', '', '2021-02-06 19:46:45', b'0'); |
| 364 | INSERT INTO `sys_login_log` VALUES (72, 100, '6ea05744-e7b2-4e6a-a1f6-d53032d4cc1d', 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 21:22:31', '', '2021-02-06 21:22:31', b'0'); | 401 | INSERT INTO `sys_login_log` VALUES (72, 100, '6ea05744-e7b2-4e6a-a1f6-d53032d4cc1d', 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 21:22:31', '', '2021-02-06 21:22:31', b'0'); |
| 402 | +INSERT INTO `sys_login_log` VALUES (73, 100, 'b89bdc69-e570-433d-ae62-c7cb634c012b', 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-07 06:38:34', '', '2021-02-07 06:38:34', b'0'); | ||
| 403 | +INSERT INTO `sys_login_log` VALUES (74, 100, 'ff74d6cd-f92b-4480-9262-7b4abecd21ee', 'admin', 31, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-07 07:36:10', '', '2021-02-07 07:36:10', b'0'); | ||
| 404 | +INSERT INTO `sys_login_log` VALUES (75, 100, '835d9a63-64fd-4391-bb33-583fd0e7155f', 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-07 07:36:14', '', '2021-02-07 07:36:14', b'0'); | ||
| 405 | +INSERT INTO `sys_login_log` VALUES (76, 100, '54079c2c-d1a6-4171-862e-c9a0604c8564', 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-07 08:36:48', '', '2021-02-07 08:36:48', b'0'); | ||
| 406 | +INSERT INTO `sys_login_log` VALUES (77, 100, '56588696-b307-4f14-bed9-9084775bdd60', 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-07 12:16:36', '', '2021-02-07 12:16:36', b'0'); | ||
| 407 | +INSERT INTO `sys_login_log` VALUES (78, 100, '053362eb-c878-4320-87ac-39cd2c78c5ab', 'admin', 30, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-07 13:05:42', '', '2021-02-07 13:05:42', b'0'); | ||
| 408 | +INSERT INTO `sys_login_log` VALUES (79, 100, 'c5d9d283-d103-44ca-bc0b-44f9e1708bd7', 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-07 13:05:42', '', '2021-02-07 13:05:42', b'0'); | ||
| 365 | COMMIT; | 409 | COMMIT; |
| 366 | 410 | ||
| 367 | -- ---------------------------- | 411 | -- ---------------------------- |
| @@ -385,7 +429,7 @@ CREATE TABLE `sys_menu` ( | @@ -385,7 +429,7 @@ CREATE TABLE `sys_menu` ( | ||
| 385 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '', | 429 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '', |
| 386 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '', | 430 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '', |
| 387 | PRIMARY KEY (`id`) USING BTREE | 431 | PRIMARY KEY (`id`) USING BTREE |
| 388 | -) ENGINE=InnoDB AUTO_INCREMENT=1075 DEFAULT CHARSET=utf8mb4 COMMENT='”'; | 432 | +) ENGINE=InnoDB AUTO_INCREMENT=1076 DEFAULT CHARSET=utf8mb4 COMMENT='”'; |
| 389 | 433 | ||
| 390 | -- ---------------------------- | 434 | -- ---------------------------- |
| 391 | -- Records of sys_menu | 435 | -- Records of sys_menu |
| @@ -405,12 +449,12 @@ INSERT INTO `sys_menu` VALUES (106, '蔭蝞∠', 'infra:config:list', 2, 7, 2 | @@ -405,12 +449,12 @@ INSERT INTO `sys_menu` VALUES (106, '蔭蝞∠', 'infra:config:list', 2, 7, 2 | ||
| 405 | INSERT INTO `sys_menu` VALUES (107, '', 'system:notice:list', 2, 8, 1, 'notice', 'message', 'system/notice/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0'); | 449 | INSERT INTO `sys_menu` VALUES (107, '', 'system:notice:list', 2, 8, 1, 'notice', 'message', 'system/notice/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0'); |
| 406 | INSERT INTO `sys_menu` VALUES (108, '敹恣', '', 1, 9, 1, 'log', 'log', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:34:28', b'0'); | 450 | INSERT INTO `sys_menu` VALUES (108, '敹恣', '', 1, 9, 1, 'log', 'log', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:34:28', b'0'); |
| 407 | INSERT INTO `sys_menu` VALUES (109, '蝥輻', 'system:user-session:list', 2, 10, 1, 'user-session', 'online', 'system/session/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-26 08:21:20', b'0'); | 451 | INSERT INTO `sys_menu` VALUES (109, '蝥輻', 'system:user-session:list', 2, 10, 1, 'user-session', 'online', 'system/session/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-26 08:21:20', b'0'); |
| 408 | -INSERT INTO `sys_menu` VALUES (110, '摰隞餃', 'monitor:job:list', 2, 2, 2, 'job', 'job', 'monitor/job/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0'); | 452 | +INSERT INTO `sys_menu` VALUES (110, '摰隞餃', 'infra:job:query', 2, 2, 2, 'job', 'job', 'infra/job/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-02-07 13:01:36', b'0'); |
| 409 | INSERT INTO `sys_menu` VALUES (111, '', 'monitor:druid:list', 2, 3, 2, 'druid', 'druid', 'monitor/druid/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0'); | 453 | INSERT INTO `sys_menu` VALUES (111, '', 'monitor:druid:list', 2, 3, 2, 'druid', 'druid', 'monitor/druid/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0'); |
| 410 | INSERT INTO `sys_menu` VALUES (112, '', 'monitor:server:list', 2, 4, 2, 'http://127.0.0.1:8080/admin', 'server', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-21 04:58:59', b'0'); | 454 | INSERT INTO `sys_menu` VALUES (112, '', 'monitor:server:list', 2, 4, 2, 'http://127.0.0.1:8080/admin', 'server', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-21 04:58:59', b'0'); |
| 411 | INSERT INTO `sys_menu` VALUES (113, 'Redis ', '', 2, 5, 2, 'redis', 'redis', 'infra/redis/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-26 00:56:30', b'0'); | 455 | INSERT INTO `sys_menu` VALUES (113, 'Redis ', '', 2, 5, 2, 'redis', 'redis', 'infra/redis/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-26 00:56:30', b'0'); |
| 412 | INSERT INTO `sys_menu` VALUES (114, '銵典遣', 'tool:build:list', 2, 1, 3, 'build', 'build', 'tool/build/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0'); | 456 | INSERT INTO `sys_menu` VALUES (114, '銵典遣', 'tool:build:list', 2, 1, 3, 'build', 'build', 'tool/build/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0'); |
| 413 | -INSERT INTO `sys_menu` VALUES (115, '隞', 'tool:codegen:query', 2, 2, 3, 'gen', 'code', 'tool/codegen/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-02-06 21:23:03', b'0'); | 457 | +INSERT INTO `sys_menu` VALUES (115, '隞', 'tool:codegen:query', 2, 2, 3, 'codegen', 'code', 'tool/codegen/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-02-07 06:48:08', b'0'); |
| 414 | INSERT INTO `sys_menu` VALUES (116, '蝟餌', 'tool:swagger:list', 2, 3, 3, 'swagger', 'swagger', 'tool/swagger/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0'); | 458 | INSERT INTO `sys_menu` VALUES (116, '蝟餌', 'tool:swagger:list', 2, 3, 3, 'swagger', 'swagger', 'tool/swagger/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0'); |
| 415 | INSERT INTO `sys_menu` VALUES (500, '敹', 'system:operate-log:list', 2, 1, 108, 'operate-log', 'form', 'system/operatelog/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-16 18:25:45', b'0'); | 459 | INSERT INTO `sys_menu` VALUES (500, '敹', 'system:operate-log:list', 2, 1, 108, 'operate-log', 'form', 'system/operatelog/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-16 18:25:45', b'0'); |
| 416 | INSERT INTO `sys_menu` VALUES (501, '敶敹', 'system:login-log:list', 2, 2, 108, 'login-log', 'logininfor', 'system/loginlog/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-18 05:29:58', b'0'); | 460 | INSERT INTO `sys_menu` VALUES (501, '敶敹', 'system:login-log:list', 2, 2, 108, 'login-log', 'logininfor', 'system/loginlog/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-18 05:29:58', b'0'); |
| @@ -460,12 +504,12 @@ INSERT INTO `sys_menu` VALUES (1045, '敹紡', 'system:login-log:export', | @@ -460,12 +504,12 @@ INSERT INTO `sys_menu` VALUES (1045, '敹紡', 'system:login-log:export', | ||
| 460 | INSERT INTO `sys_menu` VALUES (1046, '蝥踵霂', 'system:user-session:list', 3, 1, 109, '', '', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-26 08:22:37', b'0'); | 504 | INSERT INTO `sys_menu` VALUES (1046, '蝥踵霂', 'system:user-session:list', 3, 1, 109, '', '', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-26 08:22:37', b'0'); |
| 461 | INSERT INTO `sys_menu` VALUES (1047, '撩', 'monitor:online:batchLogout', 3, 2, 109, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-26 08:21:46', b'1'); | 505 | INSERT INTO `sys_menu` VALUES (1047, '撩', 'monitor:online:batchLogout', 3, 2, 109, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-26 08:21:46', b'1'); |
| 462 | INSERT INTO `sys_menu` VALUES (1048, '撘粹', 'system:user-session:delete', 3, 3, 109, '', '', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-26 08:22:54', b'0'); | 506 | INSERT INTO `sys_menu` VALUES (1048, '撘粹', 'system:user-session:delete', 3, 3, 109, '', '', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-26 08:22:54', b'0'); |
| 463 | -INSERT INTO `sys_menu` VALUES (1049, '隞餃霂', 'monitor:job:query', 3, 1, 110, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0'); | ||
| 464 | -INSERT INTO `sys_menu` VALUES (1050, '隞餃憓', 'monitor:job:add', 3, 2, 110, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0'); | ||
| 465 | -INSERT INTO `sys_menu` VALUES (1051, '隞餃靽格', 'monitor:job:edit', 3, 3, 110, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0'); | ||
| 466 | -INSERT INTO `sys_menu` VALUES (1052, '隞餃', 'monitor:job:remove', 3, 4, 110, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0'); | ||
| 467 | -INSERT INTO `sys_menu` VALUES (1053, '耨', 'monitor:job:changeStatus', 3, 5, 110, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0'); | ||
| 468 | -INSERT INTO `sys_menu` VALUES (1054, '隞餃撖澆', 'monitor:job:export', 3, 7, 110, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0'); | 507 | +INSERT INTO `sys_menu` VALUES (1049, '隞餃霂', 'monitor:job:query', 3, 1, 110, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-02-07 13:01:42', b'1'); |
| 508 | +INSERT INTO `sys_menu` VALUES (1050, '隞餃憓', 'infra:job:create', 3, 2, 110, '', '', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-02-07 13:01:58', b'0'); | ||
| 509 | +INSERT INTO `sys_menu` VALUES (1051, '隞餃靽格', 'infra:job:update', 3, 3, 110, '', '', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-02-07 13:02:10', b'0'); | ||
| 510 | +INSERT INTO `sys_menu` VALUES (1052, '隞餃', 'infra:job:delete', 3, 4, 110, '', '', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-02-07 13:02:22', b'0'); | ||
| 511 | +INSERT INTO `sys_menu` VALUES (1053, '耨', 'infra:job:update', 3, 5, 110, '', '', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-02-07 13:02:38', b'0'); | ||
| 512 | +INSERT INTO `sys_menu` VALUES (1054, '隞餃撖澆', 'infra:job:export', 3, 7, 110, '', '', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-02-07 13:02:51', b'0'); | ||
| 469 | INSERT INTO `sys_menu` VALUES (1055, '霂', 'tool:gen:query', 3, 1, 115, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-02-06 21:23:25', b'1'); | 513 | INSERT INTO `sys_menu` VALUES (1055, '霂', 'tool:gen:query', 3, 1, 115, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-02-06 21:23:25', b'1'); |
| 470 | INSERT INTO `sys_menu` VALUES (1056, '耨', 'tool:codegen:update', 3, 2, 115, '', '', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-02-06 21:23:41', b'0'); | 514 | INSERT INTO `sys_menu` VALUES (1056, '耨', 'tool:codegen:update', 3, 2, 115, '', '', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-02-06 21:23:41', b'0'); |
| 471 | INSERT INTO `sys_menu` VALUES (1057, '', 'tool:codegen:delete', 3, 3, 115, '', '', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-02-06 21:24:02', b'0'); | 515 | INSERT INTO `sys_menu` VALUES (1057, '', 'tool:codegen:delete', 3, 3, 115, '', '', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-02-06 21:24:02', b'0'); |
| @@ -482,6 +526,7 @@ INSERT INTO `sys_menu` VALUES (1071, '瘚內靘”遣', 'tool:test-demo:cr | @@ -482,6 +526,7 @@ INSERT INTO `sys_menu` VALUES (1071, '瘚內靘”遣', 'tool:test-demo:cr | ||
| 482 | INSERT INTO `sys_menu` VALUES (1072, '瘚內靘”', 'tool:test-demo:update', 3, 2, 1070, '', '', '', 0, '', '2021-02-06 12:42:49', '', '2021-02-06 12:53:51', b'0'); | 526 | INSERT INTO `sys_menu` VALUES (1072, '瘚內靘”', 'tool:test-demo:update', 3, 2, 1070, '', '', '', 0, '', '2021-02-06 12:42:49', '', '2021-02-06 12:53:51', b'0'); |
| 483 | INSERT INTO `sys_menu` VALUES (1073, '瘚內靘”', 'tool:test-demo:delete', 3, 3, 1070, '', '', '', 0, '', '2021-02-06 12:42:49', '', '2021-02-06 12:53:58', b'0'); | 527 | INSERT INTO `sys_menu` VALUES (1073, '瘚內靘”', 'tool:test-demo:delete', 3, 3, 1070, '', '', '', 0, '', '2021-02-06 12:42:49', '', '2021-02-06 12:53:58', b'0'); |
| 484 | INSERT INTO `sys_menu` VALUES (1074, '瘚內靘”撖澆', 'tool:test-demo:export', 3, 4, 1070, '', '', '', 0, '', '2021-02-06 12:42:49', '', '2021-02-06 12:54:01', b'0'); | 528 | INSERT INTO `sys_menu` VALUES (1074, '瘚內靘”撖澆', 'tool:test-demo:export', 3, 4, 1070, '', '', '', 0, '', '2021-02-06 12:42:49', '', '2021-02-06 12:54:01', b'0'); |
| 529 | +INSERT INTO `sys_menu` VALUES (1075, '隞餃閫血', 'infra:job:trigger', 3, 8, 110, '', '', '', 0, '', '2021-02-07 13:03:10', '', '2021-02-07 13:03:10', b'0'); | ||
| 485 | COMMIT; | 530 | COMMIT; |
| 486 | 531 | ||
| 487 | -- ---------------------------- | 532 | -- ---------------------------- |
| @@ -541,7 +586,7 @@ CREATE TABLE `sys_operate_log` ( | @@ -541,7 +586,7 @@ CREATE TABLE `sys_operate_log` ( | ||
| 541 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '', | 586 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '', |
| 542 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '', | 587 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '', |
| 543 | PRIMARY KEY (`id`) USING BTREE | 588 | PRIMARY KEY (`id`) USING BTREE |
| 544 | -) ENGINE=InnoDB AUTO_INCREMENT=191 DEFAULT CHARSET=utf8mb4 COMMENT='敹扇敶'; | 589 | +) ENGINE=InnoDB AUTO_INCREMENT=261 DEFAULT CHARSET=utf8mb4 COMMENT='敹扇敶'; |
| 545 | 590 | ||
| 546 | -- ---------------------------- | 591 | -- ---------------------------- |
| 547 | -- Records of sys_operate_log | 592 | -- Records of sys_operate_log |
| @@ -572,6 +617,76 @@ INSERT INTO `sys_operate_log` VALUES (187, 'f4bb2f5b-b095-409f-ac2d-a5ec3f36e43b | @@ -572,6 +617,76 @@ INSERT INTO `sys_operate_log` VALUES (187, 'f4bb2f5b-b095-409f-ac2d-a5ec3f36e43b | ||
| 572 | INSERT INTO `sys_operate_log` VALUES (188, '06d43f42-2f93-4862-9e73-92c3d0c5d8f2', 1, ' API', '靽格', 2, '', '', 'POST', '/api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.permission.SysMenuController.updateMenu(SysMenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"憸誨",\"permission\":\"tool:codegen:preview\",\"type\":3,\"sort\":\"4\",\"parentId\":115,\"path\":\"#\",\"icon\":\"#\",\"component\":\"\",\"status\":0,\"id\":1059}}', '2021-02-13 13:34:41', 8, 0, '', 'true', '', '2021-02-06 21:24:10', '', '2021-02-06 21:24:10', b'0'); | 617 | INSERT INTO `sys_operate_log` VALUES (188, '06d43f42-2f93-4862-9e73-92c3d0c5d8f2', 1, ' API', '靽格', 2, '', '', 'POST', '/api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.permission.SysMenuController.updateMenu(SysMenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"憸誨",\"permission\":\"tool:codegen:preview\",\"type\":3,\"sort\":\"4\",\"parentId\":115,\"path\":\"#\",\"icon\":\"#\",\"component\":\"\",\"status\":0,\"id\":1059}}', '2021-02-13 13:34:41', 8, 0, '', 'true', '', '2021-02-06 21:24:10', '', '2021-02-06 21:24:10', b'0'); |
| 573 | INSERT INTO `sys_operate_log` VALUES (189, 'a8ed61bc-55b9-429e-a43c-ce892e8d6f7e', 1, ' API', '靽格', 2, '', '', 'POST', '/api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.permission.SysMenuController.updateMenu(SysMenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"誨",\"permission\":\"tool:codegen:download\",\"type\":3,\"sort\":\"5\",\"parentId\":115,\"path\":\"\",\"icon\":\"#\",\"component\":\"\",\"status\":0,\"id\":1060}}', '2021-02-13 13:34:52', 9, 0, '', 'true', '', '2021-02-06 21:24:20', '', '2021-02-06 21:24:20', b'0'); | 618 | INSERT INTO `sys_operate_log` VALUES (189, 'a8ed61bc-55b9-429e-a43c-ce892e8d6f7e', 1, ' API', '靽格', 2, '', '', 'POST', '/api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.permission.SysMenuController.updateMenu(SysMenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"誨",\"permission\":\"tool:codegen:download\",\"type\":3,\"sort\":\"5\",\"parentId\":115,\"path\":\"\",\"icon\":\"#\",\"component\":\"\",\"status\":0,\"id\":1060}}', '2021-02-13 13:34:52', 9, 0, '', 'true', '', '2021-02-06 21:24:20', '', '2021-02-06 21:24:20', b'0'); |
| 574 | INSERT INTO `sys_operate_log` VALUES (190, '599ae718-60c4-4d94-a46f-2bfb73d577e8', 1, '隞 API', '鈭摨”蝏郊摨”挾摰', 3, '', '', 'PUT', '/api/tool/codegen/sync-from-db', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.tool.controller.codegen.ToolCodegenController.syncCodegenFromDB(Long)', '{\"tableId\":20}', '2021-02-13 13:36:32', 83, 500, 'ServiceException: 郊憭梯揖嚗', 'null', '', '2021-02-06 21:26:01', '', '2021-02-06 21:26:01', b'0'); | 619 | INSERT INTO `sys_operate_log` VALUES (190, '599ae718-60c4-4d94-a46f-2bfb73d577e8', 1, '隞 API', '鈭摨”蝏郊摨”挾摰', 3, '', '', 'PUT', '/api/tool/codegen/sync-from-db', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.tool.controller.codegen.ToolCodegenController.syncCodegenFromDB(Long)', '{\"tableId\":20}', '2021-02-13 13:36:32', 83, 500, 'ServiceException: 郊憭梯揖嚗', 'null', '', '2021-02-06 21:26:01', '', '2021-02-06 21:26:01', b'0'); |
| 620 | +INSERT INTO `sys_operate_log` VALUES (191, '1313b2b7-f626-4b21-a173-cdd7d35f3515', 1, '隞 API', '摨”挾摰', 4, '', '', 'DELETE', '/api/tool/codegen/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.tool.controller.codegen.ToolCodegenController.deleteCodegen(Long)', '{\"tableId\":23}', '2021-02-14 10:35:09', 19, 0, '', 'true', '', '2021-02-07 06:38:51', '', '2021-02-07 06:38:51', b'0'); | ||
| 621 | +INSERT INTO `sys_operate_log` VALUES (192, 'a79f3ebf-c10f-4ed1-98bb-7bfad82e7189', 1, '隞 API', '摨”挾摰', 3, '', '', 'PUT', '/api/tool/codegen/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.tool.controller.codegen.ToolCodegenController.updateCodegen(ToolCodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"importType\":1,\"tableName\":\"inf_job\",\"tableComment\":\"摰隞餃銵沔",\"remark\":null,\"moduleName\":\"infra\",\"businessName\":\"job\",\"className\":\"InfJob\",\"classComment\":\"摰隞餃\",\"author\":\"\",\"templateType\":1,\"parentMenuId\":null,\"id\":24},\"columns\":[{\"tableId\":24,\"columnName\":\"id\",\"columnType\":\"bigint(20)\",\"columnComment\":\"隞餃蝻\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"1024\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":269},{\"tableId\":24,\"columnName\":\"name\",\"columnType\":\"varchar(32)\",\"columnComment\":\"隞餃妍\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"name\",\"dictType\":\"\",\"example\":\"瘚遙\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":270},{\"tableId\":24,\"columnName\":\"status\",\"columnType\":\"tinyint(4)\",\"columnComment\":\"隞餃",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"Integer\",\"javaField\":\"status\",\"dictType\":\"\",\"example\":\"1\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":271},{\"tableId\":24,\"columnName\":\"handler_name\",\"columnType\":\"varchar(64)\",\"columnComment\":\"憭",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"handlerName\",\"dictType\":\"\",\"example\":\"sysUserSessionTimeoutJob\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":272},{\"tableId\":24,\"columnName\":\"handler_param\",\"columnType\":\"varchar(255)\",\"columnComment\":\"憭\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"handlerParam\",\"dictType\":\"\",\"example\":\"yudao\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":273},{\"tableId\":24,\"columnName\":\"cron_expression\",\"columnType\":\"varchar(32)\",\"columnComment\":\"CRON 銵刻噢撘",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"cronExpression\",\"dictType\":\"\",\"example\":\"0/10 * * * * ? *\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":274},{\"tableId\":24,\"columnName\":\"execute_begin_time\",\"columnType\":\"datetime\",\"columnComment\":\"甈⊥銵憪\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"Date\",\"javaField\":\"executeBeginTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":275},{\"tableId\":24,\"columnName\":\"execute_end_time\",\"columnType\":\"datetime\",\"columnComment\":\"甈⊥銵\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"Date\",\"javaField\":\"executeEndTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":276},{\"tableId\":24,\"columnName\":\"fire_prev_time\",\"columnType\":\"datetime\",\"columnComment\":\"銝甈∟圻\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Date\",\"javaField\":\"firePrevTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":277},{\"tableId\":24,\"columnName\":\"fire_next_time\",\"columnType\":\"datetime\",\"columnComment\":\"銝甈∟圻\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"Date\",\"javaField\":\"fireNextTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":278},{\"tableId\":24,\"columnName\":\"monitor_timeout\",\"columnType\":\"int(11)\",\"columnComment\":\"頞\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"Integer\",\"javaField\":\"monitorTimeout\",\"dictType\":\"\",\"example\":\"1000\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":279},{\"tableId\":24,\"columnName\":\"create_by\",\"columnType\":\"varchar(64)\",\"columnComment\":\"遣",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"String\",\"javaField\":\"createBy\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":280},{\"tableId\":24,\"columnName\":\"create_time\",\"columnType\":\"datetime\",\"columnComment\":\"遣\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"Date\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":281},{\"tableId\":24,\"columnName\":\"update_by\",\"columnType\":\"varchar(64)\",\"columnComment\":\"",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"String\",\"javaField\":\"updateBy\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":282},{\"tableId\":24,\"columnName\":\"update_time\",\"columnType\":\"datetime\",\"columnComment\":\"\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"Date\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":283},{\"tableId\":24,\"columnName\":\"deleted\",\"columnType\":\"bit(1)\",\"columnComment\":\"\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":284}]}}', '2021-02-14 10:40:36', 68, 0, '', 'true', '', '2021-02-07 06:44:19', '', '2021-02-07 06:44:19', b'0'); | ||
| 622 | +INSERT INTO `sys_operate_log` VALUES (193, '9de3283d-69d3-4165-9893-cc0acc6914fe', 1, '摮蝐餃 API', '靽格摮蝐餃', 2, '', '', 'POST', '/api/system/dict-type/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.dict.SysDictTypeController.updateDictType(SysDictTypeUpdateReqVO)', '{\"reqVO\":{\"name\":\"隞餃蜀\",\"status\":0,\"remark\":null,\"id\":4}}', '2021-02-14 10:41:55', 11, 0, '', 'true', '', '2021-02-07 06:45:37', '', '2021-02-07 06:45:37', b'0'); | ||
| 623 | +INSERT INTO `sys_operate_log` VALUES (194, '7cb8ce2e-8216-42bb-b961-b70c966b6cdf', 1, '隞 API', '摨”挾摰', 3, '', '', 'PUT', '/api/tool/codegen/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.tool.controller.codegen.ToolCodegenController.updateCodegen(ToolCodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"importType\":1,\"tableName\":\"inf_job\",\"tableComment\":\"摰隞餃銵沔",\"remark\":null,\"moduleName\":\"infra\",\"businessName\":\"job\",\"className\":\"InfJob\",\"classComment\":\"摰隞餃\",\"author\":\"\",\"templateType\":1,\"parentMenuId\":null,\"id\":24},\"columns\":[{\"tableId\":24,\"columnName\":\"id\",\"columnType\":\"bigint(20)\",\"columnComment\":\"隞餃蝻\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"1024\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":269},{\"tableId\":24,\"columnName\":\"name\",\"columnType\":\"varchar(32)\",\"columnComment\":\"隞餃妍\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"name\",\"dictType\":\"\",\"example\":\"瘚遙\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":270},{\"tableId\":24,\"columnName\":\"status\",\"columnType\":\"tinyint(4)\",\"columnComment\":\"隞餃",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"Integer\",\"javaField\":\"status\",\"dictType\":\"sys_job_status\",\"example\":\"1\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":271},{\"tableId\":24,\"columnName\":\"handler_name\",\"columnType\":\"varchar(64)\",\"columnComment\":\"憭",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"handlerName\",\"dictType\":\"\",\"example\":\"sysUserSessionTimeoutJob\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":272},{\"tableId\":24,\"columnName\":\"handler_param\",\"columnType\":\"varchar(255)\",\"columnComment\":\"憭\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"handlerParam\",\"dictType\":\"\",\"example\":\"yudao\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":273},{\"tableId\":24,\"columnName\":\"cron_expression\",\"columnType\":\"varchar(32)\",\"columnComment\":\"CRON 銵刻噢撘",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"cronExpression\",\"dictType\":\"\",\"example\":\"0/10 * * * * ? *\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":274},{\"tableId\":24,\"columnName\":\"execute_begin_time\",\"columnType\":\"datetime\",\"columnComment\":\"甈⊥銵憪\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"Date\",\"javaField\":\"executeBeginTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":275},{\"tableId\":24,\"columnName\":\"execute_end_time\",\"columnType\":\"datetime\",\"columnComment\":\"甈⊥銵\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"Date\",\"javaField\":\"executeEndTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":276},{\"tableId\":24,\"columnName\":\"fire_prev_time\",\"columnType\":\"datetime\",\"columnComment\":\"銝甈∟圻\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Date\",\"javaField\":\"firePrevTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":277},{\"tableId\":24,\"columnName\":\"fire_next_time\",\"columnType\":\"datetime\",\"columnComment\":\"銝甈∟圻\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"Date\",\"javaField\":\"fireNextTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":278},{\"tableId\":24,\"columnName\":\"monitor_timeout\",\"columnType\":\"int(11)\",\"columnComment\":\"頞\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"Integer\",\"javaField\":\"monitorTimeout\",\"dictType\":\"\",\"example\":\"1000\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":279},{\"tableId\":24,\"columnName\":\"create_by\",\"columnType\":\"varchar(64)\",\"columnComment\":\"遣",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"String\",\"javaField\":\"createBy\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":280},{\"tableId\":24,\"columnName\":\"create_time\",\"columnType\":\"datetime\",\"columnComment\":\"遣\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"Date\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":281},{\"tableId\":24,\"columnName\":\"update_by\",\"columnType\":\"varchar(64)\",\"columnComment\":\"",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"String\",\"javaField\":\"updateBy\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":282},{\"tableId\":24,\"columnName\":\"update_time\",\"columnType\":\"datetime\",\"columnComment\":\"\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"Date\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":283},{\"tableId\":24,\"columnName\":\"deleted\",\"columnType\":\"bit(1)\",\"columnComment\":\"\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":284}]}}', '2021-02-14 10:42:22', 39, 0, '', 'true', '', '2021-02-07 06:46:04', '', '2021-02-07 06:46:04', b'0'); | ||
| 624 | +INSERT INTO `sys_operate_log` VALUES (195, 'dfc5015a-1677-43b9-9d76-4dee8a96f5ea', 1, '隞 API', '摨”挾摰', 3, '', '', 'PUT', '/api/tool/codegen/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.tool.controller.codegen.ToolCodegenController.updateCodegen(ToolCodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"importType\":1,\"tableName\":\"inf_job\",\"tableComment\":\"摰隞餃銵沔",\"remark\":null,\"moduleName\":\"infra\",\"businessName\":\"job\",\"className\":\"InfJob\",\"classComment\":\"摰隞餃\",\"author\":\"",\"templateType\":1,\"parentMenuId\":null,\"id\":24},\"columns\":[{\"tableId\":24,\"columnName\":\"id\",\"columnType\":\"bigint(20)\",\"columnComment\":\"隞餃蝻\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"1024\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":269},{\"tableId\":24,\"columnName\":\"name\",\"columnType\":\"varchar(32)\",\"columnComment\":\"隞餃妍\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"name\",\"dictType\":\"\",\"example\":\"瘚遙\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":270},{\"tableId\":24,\"columnName\":\"status\",\"columnType\":\"tinyint(4)\",\"columnComment\":\"隞餃",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"Integer\",\"javaField\":\"status\",\"dictType\":\"sys_job_status\",\"example\":\"1\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":271},{\"tableId\":24,\"columnName\":\"handler_name\",\"columnType\":\"varchar(64)\",\"columnComment\":\"憭",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"handlerName\",\"dictType\":\"\",\"example\":\"sysUserSessionTimeoutJob\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":272},{\"tableId\":24,\"columnName\":\"handler_param\",\"columnType\":\"varchar(255)\",\"columnComment\":\"憭\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"handlerParam\",\"dictType\":\"\",\"example\":\"yudao\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":273},{\"tableId\":24,\"columnName\":\"cron_expression\",\"columnType\":\"varchar(32)\",\"columnComment\":\"CRON 銵刻噢撘",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"cronExpression\",\"dictType\":\"\",\"example\":\"0/10 * * * * ? *\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":274},{\"tableId\":24,\"columnName\":\"execute_begin_time\",\"columnType\":\"datetime\",\"columnComment\":\"甈⊥銵憪\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"Date\",\"javaField\":\"executeBeginTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":275},{\"tableId\":24,\"columnName\":\"execute_end_time\",\"columnType\":\"datetime\",\"columnComment\":\"甈⊥銵\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"Date\",\"javaField\":\"executeEndTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":276},{\"tableId\":24,\"columnName\":\"fire_prev_time\",\"columnType\":\"datetime\",\"columnComment\":\"銝甈∟圻\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Date\",\"javaField\":\"firePrevTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":277},{\"tableId\":24,\"columnName\":\"fire_next_time\",\"columnType\":\"datetime\",\"columnComment\":\"銝甈∟圻\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"Date\",\"javaField\":\"fireNextTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":278},{\"tableId\":24,\"columnName\":\"monitor_timeout\",\"columnType\":\"int(11)\",\"columnComment\":\"頞\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"Integer\",\"javaField\":\"monitorTimeout\",\"dictType\":\"\",\"example\":\"1000\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":279},{\"tableId\":24,\"columnName\":\"create_by\",\"columnType\":\"varchar(64)\",\"columnComment\":\"遣",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"String\",\"javaField\":\"createBy\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":280},{\"tableId\":24,\"columnName\":\"create_time\",\"columnType\":\"datetime\",\"columnComment\":\"遣\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"Date\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":281},{\"tableId\":24,\"columnName\":\"update_by\",\"columnType\":\"varchar(64)\",\"columnComment\":\"",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"String\",\"javaField\":\"updateBy\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":282},{\"tableId\":24,\"columnName\":\"update_time\",\"columnType\":\"datetime\",\"columnComment\":\"\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"Date\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":283},{\"tableId\":24,\"columnName\":\"deleted\",\"columnType\":\"bit(1)\",\"columnComment\":\"\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":284}]}}', '2021-02-14 10:43:13', 31, 0, '', 'true', '', '2021-02-07 06:46:56', '', '2021-02-07 06:46:56', b'0'); | ||
| 625 | +INSERT INTO `sys_operate_log` VALUES (196, 'cef40362-081e-4e34-a070-b07fbe57a184', 1, ' API', '靽格', 2, '', '', 'POST', '/api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.permission.SysMenuController.updateMenu(SysMenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"隞",\"permission\":\"tool:codegen:query\",\"type\":2,\"sort\":\"2\",\"parentId\":3,\"path\":\"codegen\",\"icon\":\"code\",\"component\":\"tool/codegen/index\",\"status\":0,\"id\":115}}', '2021-02-14 10:44:25', 15, 0, '', 'true', '', '2021-02-07 06:48:08', '', '2021-02-07 06:48:08', b'0'); | ||
| 626 | +INSERT INTO `sys_operate_log` VALUES (197, '0eb2e9a1-7506-414a-836a-f658c9b69aac', 1, '摮蝐餃 API', '靽格摮蝐餃', 2, '', '', 'POST', '/api/system/dict-type/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.dict.SysDictTypeController.updateDictType(SysDictTypeUpdateReqVO)', '{\"reqVO\":{\"name\":\"隞餃蜀\",\"status\":0,\"remark\":null,\"id\":4}}', '2021-02-14 11:38:57', 8, 0, '', 'true', '', '2021-02-07 07:42:43', '', '2021-02-07 07:42:43', b'0'); | ||
| 627 | +INSERT INTO `sys_operate_log` VALUES (198, '9a82ba2d-dc41-4b05-9449-365d77ced8ba', 1, '摮蝐餃 API', '靽格摮蝐餃', 2, '', '', 'POST', '/api/system/dict-type/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.dict.SysDictTypeController.updateDictType(SysDictTypeUpdateReqVO)', '{\"reqVO\":{\"name\":\"隞餃蜀\",\"status\":0,\"remark\":null,\"id\":4}}', '2021-02-14 11:39:12', 7, 0, '', 'true', '', '2021-02-07 07:42:58', '', '2021-02-07 07:42:58', b'0'); | ||
| 628 | +INSERT INTO `sys_operate_log` VALUES (199, 'b739e8ca-59d1-4b90-b987-ff32e8c4e4a5', 1, '摮蝐餃 API', '摮蝐餃', 2, '', '', 'POST', '/api/system/dict-type/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.dict.SysDictTypeController.deleteDictType(Long)', '{\"id\":5}', '2021-02-14 11:39:45', 4, 500, 'ServiceException: 嚗砲摮蝐餃', 'null', '', '2021-02-07 07:43:32', '', '2021-02-07 07:43:32', b'0'); | ||
| 629 | +INSERT INTO `sys_operate_log` VALUES (200, 'b01f2912-3473-4a32-957e-7fc318b2f0ab', 1, '摮 API', '摮', 2, '', '', 'POST', '/api/system/dict-data/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.dict.SysDictDataController.deleteDictData(Long)', '{\"id\":10}', '2021-02-14 11:39:57', 6, 0, '', 'true', '', '2021-02-07 07:43:44', '', '2021-02-07 07:43:44', b'0'); | ||
| 630 | +INSERT INTO `sys_operate_log` VALUES (201, '20be4aa0-f26c-4218-8df8-54289f4cfa32', 1, '摮 API', '摮', 2, '', '', 'POST', '/api/system/dict-data/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.dict.SysDictDataController.deleteDictData(Long)', '{\"id\":11}', '2021-02-14 11:39:59', 5, 0, '', 'true', '', '2021-02-07 07:43:45', '', '2021-02-07 07:43:45', b'0'); | ||
| 631 | +INSERT INTO `sys_operate_log` VALUES (202, '4caa969a-7115-435d-ae4f-b2ba7ff3723b', 1, '摮蝐餃 API', '摮蝐餃', 2, '', '', 'POST', '/api/system/dict-type/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.dict.SysDictTypeController.deleteDictType(Long)', '{\"id\":5}', '2021-02-14 11:40:06', 5, 0, '', 'true', '', '2021-02-07 07:43:52', '', '2021-02-07 07:43:52', b'0'); | ||
| 632 | +INSERT INTO `sys_operate_log` VALUES (203, 'e667b0ab-c5bd-4f3f-a3a2-c82aaca2df7f', 1, '摮 API', '摮', 2, '', '', 'POST', '/api/system/dict-data/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.dict.SysDictDataController.deleteDictData(Long)', '{\"id\":8}', '2021-02-14 11:40:11', 4, 0, '', 'true', '', '2021-02-07 07:43:57', '', '2021-02-07 07:43:57', b'0'); | ||
| 633 | +INSERT INTO `sys_operate_log` VALUES (204, '8438c7d0-b8f8-4bb5-bfa4-a975d90c5b49', 1, '摮 API', '摮', 2, '', '', 'POST', '/api/system/dict-data/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.dict.SysDictDataController.deleteDictData(Long)', '{\"id\":9}', '2021-02-14 11:40:13', 5, 0, '', 'true', '', '2021-02-07 07:43:59', '', '2021-02-07 07:43:59', b'0'); | ||
| 634 | +INSERT INTO `sys_operate_log` VALUES (205, 'ab727852-a3e7-428a-b6c2-9280c7837b12', 1, '摮蝐餃 API', '摮蝐餃', 2, '', '', 'POST', '/api/system/dict-type/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.dict.SysDictTypeController.deleteDictType(Long)', '{\"id\":4}', '2021-02-14 11:40:19', 6, 0, '', 'true', '', '2021-02-07 07:44:06', '', '2021-02-07 07:44:06', b'0'); | ||
| 635 | +INSERT INTO `sys_operate_log` VALUES (206, '23b40364-f41b-4302-a77a-89f6c7a133d4', 1, '摮蝐餃 API', '憓蝐餃', 2, '', '', 'POST', '/api/system/dict-type/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.dict.SysDictTypeController.createDictType(SysDictTypeCreateReqVO)', '{\"reqVO\":{\"name\":\"摰隞餃",\"status\":0,\"remark\":null,\"type\":\"inf_job_status\"}}', '2021-02-14 11:40:29', 9, 0, '', '107', '', '2021-02-07 07:44:16', '', '2021-02-07 07:44:16', b'0'); | ||
| 636 | +INSERT INTO `sys_operate_log` VALUES (207, '367441d5-9fd9-40fd-8552-492852645534', 1, '摮 API', '憓', 2, '', '', 'POST', '/api/system/dict-data/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.dict.SysDictDataController.createDictData(SysDictDataCreateReqVO)', '{\"reqVO\":{\"sort\":\"0\",\"label\":\"葉\",\"value\":\"0\",\"dictType\":\"inf_job_status\",\"status\":0,\"remark\":null}}', '2021-02-14 11:43:02', 8, 0, '', '53', '', '2021-02-07 07:46:49', '', '2021-02-07 07:46:49', b'0'); | ||
| 637 | +INSERT INTO `sys_operate_log` VALUES (208, '642c9566-4eb6-49aa-95a3-e7927f5671b7', 1, '摮 API', '憓', 2, '', '', 'POST', '/api/system/dict-data/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.dict.SysDictDataController.createDictData(SysDictDataCreateReqVO)', '{\"reqVO\":{\"sort\":\"1\",\"label\":\"撘餈",\"value\":\"1\",\"dictType\":\"inf_job_status\",\"status\":0,\"remark\":null}}', '2021-02-14 11:43:11', 6, 0, '', '54', '', '2021-02-07 07:46:57', '', '2021-02-07 07:46:57', b'0'); | ||
| 638 | +INSERT INTO `sys_operate_log` VALUES (209, '112176f4-04c9-4d51-ab56-98c5c245b601', 1, '摮 API', '憓', 2, '', '', 'POST', '/api/system/dict-data/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.dict.SysDictDataController.createDictData(SysDictDataCreateReqVO)', '{\"reqVO\":{\"sort\":\"2\",\"label\":\"撘虜餈",\"value\":\"2\",\"dictType\":\"inf_job_status\",\"status\":0,\"remark\":null}}', '2021-02-14 11:43:23', 6, 0, '', '55', '', '2021-02-07 07:47:10', '', '2021-02-07 07:47:10', b'0'); | ||
| 639 | +INSERT INTO `sys_operate_log` VALUES (210, '5aa5513e-e482-4587-aecc-2a78590ce455', 1, '摮 API', '憓', 2, '', '', 'POST', '/api/system/dict-data/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.dict.SysDictDataController.createDictData(SysDictDataCreateReqVO)', '{\"reqVO\":{\"sort\":\"3\",\"label\":\"",\"value\":\"3\",\"dictType\":\"inf_job_status\",\"status\":0,\"remark\":null}}', '2021-02-14 11:43:30', 6, 0, '', '56', '', '2021-02-07 07:47:16', '', '2021-02-07 07:47:16', b'0'); | ||
| 640 | +INSERT INTO `sys_operate_log` VALUES (211, '0248494d-524e-4f33-a5d0-457861c9015b', 1, '隞 API', '摨”挾摰', 3, '', '', 'PUT', '/api/tool/codegen/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.tool.controller.codegen.ToolCodegenController.updateCodegen(ToolCodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"importType\":1,\"tableName\":\"inf_job\",\"tableComment\":\"摰隞餃銵沔",\"remark\":null,\"moduleName\":\"infra\",\"businessName\":\"job\",\"className\":\"InfJob\",\"classComment\":\"摰隞餃\",\"author\":\"",\"templateType\":1,\"parentMenuId\":null,\"id\":24},\"columns\":[{\"tableId\":24,\"columnName\":\"id\",\"columnType\":\"bigint(20)\",\"columnComment\":\"隞餃蝻\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"1024\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":269},{\"tableId\":24,\"columnName\":\"name\",\"columnType\":\"varchar(32)\",\"columnComment\":\"隞餃妍\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"name\",\"dictType\":\"\",\"example\":\"瘚遙\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":270},{\"tableId\":24,\"columnName\":\"status\",\"columnType\":\"tinyint(4)\",\"columnComment\":\"隞餃",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"Integer\",\"javaField\":\"status\",\"dictType\":\"inf_job_status\",\"example\":\"1\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":271},{\"tableId\":24,\"columnName\":\"handler_name\",\"columnType\":\"varchar(64)\",\"columnComment\":\"憭",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"handlerName\",\"dictType\":\"\",\"example\":\"sysUserSessionTimeoutJob\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":272},{\"tableId\":24,\"columnName\":\"handler_param\",\"columnType\":\"varchar(255)\",\"columnComment\":\"憭\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"handlerParam\",\"dictType\":\"\",\"example\":\"yudao\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":273},{\"tableId\":24,\"columnName\":\"cron_expression\",\"columnType\":\"varchar(32)\",\"columnComment\":\"CRON 銵刻噢撘",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"cronExpression\",\"dictType\":\"\",\"example\":\"0/10 * * * * ? *\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":274},{\"tableId\":24,\"columnName\":\"execute_begin_time\",\"columnType\":\"datetime\",\"columnComment\":\"甈⊥銵憪\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"Date\",\"javaField\":\"executeBeginTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":275},{\"tableId\":24,\"columnName\":\"execute_end_time\",\"columnType\":\"datetime\",\"columnComment\":\"甈⊥銵\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"Date\",\"javaField\":\"executeEndTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":276},{\"tableId\":24,\"columnName\":\"fire_prev_time\",\"columnType\":\"datetime\",\"columnComment\":\"銝甈∟圻\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Date\",\"javaField\":\"firePrevTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":277},{\"tableId\":24,\"columnName\":\"fire_next_time\",\"columnType\":\"datetime\",\"columnComment\":\"銝甈∟圻\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"Date\",\"javaField\":\"fireNextTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":278},{\"tableId\":24,\"columnName\":\"monitor_timeout\",\"columnType\":\"int(11)\",\"columnComment\":\"頞\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"Integer\",\"javaField\":\"monitorTimeout\",\"dictType\":\"\",\"example\":\"1000\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":279},{\"tableId\":24,\"columnName\":\"create_by\",\"columnType\":\"varchar(64)\",\"columnComment\":\"遣",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"String\",\"javaField\":\"createBy\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":280},{\"tableId\":24,\"columnName\":\"create_time\",\"columnType\":\"datetime\",\"columnComment\":\"遣\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"Date\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":281},{\"tableId\":24,\"columnName\":\"update_by\",\"columnType\":\"varchar(64)\",\"columnComment\":\"",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"String\",\"javaField\":\"updateBy\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":282},{\"tableId\":24,\"columnName\":\"update_time\",\"columnType\":\"datetime\",\"columnComment\":\"\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"Date\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":283},{\"tableId\":24,\"columnName\":\"deleted\",\"columnType\":\"bit(1)\",\"columnComment\":\"\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":284}]}}', '2021-02-14 11:49:40', 88, 0, '', 'true', '', '2021-02-07 07:53:27', '', '2021-02-07 07:53:27', b'0'); | ||
| 641 | +INSERT INTO `sys_operate_log` VALUES (212, '1c1182c9-48a5-4b47-aa7b-2431560c5b20', 1, '隞 API', '摨”挾摰', 3, '', '', 'PUT', '/api/tool/codegen/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.tool.controller.codegen.ToolCodegenController.updateCodegen(ToolCodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"importType\":1,\"tableName\":\"inf_job\",\"tableComment\":\"摰隞餃銵沔",\"remark\":null,\"moduleName\":\"infra\",\"businessName\":\"job\",\"className\":\"InfJob\",\"classComment\":\"摰隞餃\",\"author\":\"",\"templateType\":1,\"parentMenuId\":null,\"id\":24},\"columns\":[{\"tableId\":24,\"columnName\":\"id\",\"columnType\":\"bigint(20)\",\"columnComment\":\"隞餃蝻\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"1024\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":269},{\"tableId\":24,\"columnName\":\"name\",\"columnType\":\"varchar(32)\",\"columnComment\":\"隞餃妍\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"name\",\"dictType\":\"\",\"example\":\"瘚遙\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":270},{\"tableId\":24,\"columnName\":\"status\",\"columnType\":\"tinyint(4)\",\"columnComment\":\"隞餃",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"Integer\",\"javaField\":\"status\",\"dictType\":\"inf_job_status\",\"example\":\"1\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":271},{\"tableId\":24,\"columnName\":\"handler_name\",\"columnType\":\"varchar(64)\",\"columnComment\":\"憭",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"handlerName\",\"dictType\":\"\",\"example\":\"sysUserSessionTimeoutJob\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":272},{\"tableId\":24,\"columnName\":\"handler_param\",\"columnType\":\"varchar(255)\",\"columnComment\":\"憭\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"handlerParam\",\"dictType\":\"\",\"example\":\"yudao\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":273},{\"tableId\":24,\"columnName\":\"cron_expression\",\"columnType\":\"varchar(32)\",\"columnComment\":\"CRON 銵刻噢撘",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"cronExpression\",\"dictType\":\"\",\"example\":\"0/10 * * * * ? *\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":274},{\"tableId\":24,\"columnName\":\"execute_begin_time\",\"columnType\":\"datetime\",\"columnComment\":\"甈⊥銵憪\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"Date\",\"javaField\":\"executeBeginTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":275},{\"tableId\":24,\"columnName\":\"execute_end_time\",\"columnType\":\"datetime\",\"columnComment\":\"甈⊥銵\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"Date\",\"javaField\":\"executeEndTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":276},{\"tableId\":24,\"columnName\":\"fire_prev_time\",\"columnType\":\"datetime\",\"columnComment\":\"銝甈∟圻\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Date\",\"javaField\":\"firePrevTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":277},{\"tableId\":24,\"columnName\":\"fire_next_time\",\"columnType\":\"datetime\",\"columnComment\":\"銝甈∟圻\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"Date\",\"javaField\":\"fireNextTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":278},{\"tableId\":24,\"columnName\":\"monitor_timeout\",\"columnType\":\"int(11)\",\"columnComment\":\"頞\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"Integer\",\"javaField\":\"monitorTimeout\",\"dictType\":\"\",\"example\":\"1000\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":279},{\"tableId\":24,\"columnName\":\"create_by\",\"columnType\":\"varchar(64)\",\"columnComment\":\"遣",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"String\",\"javaField\":\"createBy\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":280},{\"tableId\":24,\"columnName\":\"create_time\",\"columnType\":\"datetime\",\"columnComment\":\"遣\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"Date\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":281},{\"tableId\":24,\"columnName\":\"update_by\",\"columnType\":\"varchar(64)\",\"columnComment\":\"",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"String\",\"javaField\":\"updateBy\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":282},{\"tableId\":24,\"columnName\":\"update_time\",\"columnType\":\"datetime\",\"columnComment\":\"\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"Date\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":283},{\"tableId\":24,\"columnName\":\"deleted\",\"columnType\":\"bit(1)\",\"columnComment\":\"\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":284}]}}', '2021-02-14 11:50:38', 41, 0, '', 'true', '', '2021-02-07 07:54:25', '', '2021-02-07 07:54:25', b'0'); | ||
| 642 | +INSERT INTO `sys_operate_log` VALUES (213, '08c46d7f-0207-4a82-86f9-1e4fc0bda574', 1, '隞 API', '摨”挾摰', 3, '', '', 'PUT', '/api/tool/codegen/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.tool.controller.codegen.ToolCodegenController.updateCodegen(ToolCodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"importType\":1,\"tableName\":\"inf_job\",\"tableComment\":\"摰隞餃銵沔",\"remark\":null,\"moduleName\":\"infra\",\"businessName\":\"job\",\"className\":\"InfJob\",\"classComment\":\"摰隞餃\",\"author\":\"",\"templateType\":1,\"parentMenuId\":null,\"id\":24},\"columns\":[{\"tableId\":24,\"columnName\":\"id\",\"columnType\":\"bigint(20)\",\"columnComment\":\"隞餃蝻\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"1024\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":269},{\"tableId\":24,\"columnName\":\"name\",\"columnType\":\"varchar(32)\",\"columnComment\":\"隞餃妍\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"name\",\"dictType\":\"\",\"example\":\"瘚遙\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":270},{\"tableId\":24,\"columnName\":\"status\",\"columnType\":\"tinyint(4)\",\"columnComment\":\"隞餃",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"Integer\",\"javaField\":\"status\",\"dictType\":\"inf_job_status\",\"example\":\"1\",\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":271},{\"tableId\":24,\"columnName\":\"handler_name\",\"columnType\":\"varchar(64)\",\"columnComment\":\"憭",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"handlerName\",\"dictType\":\"\",\"example\":\"sysUserSessionTimeoutJob\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":272},{\"tableId\":24,\"columnName\":\"handler_param\",\"columnType\":\"varchar(255)\",\"columnComment\":\"憭\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"handlerParam\",\"dictType\":\"\",\"example\":\"yudao\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":273},{\"tableId\":24,\"columnName\":\"cron_expression\",\"columnType\":\"varchar(32)\",\"columnComment\":\"CRON 銵刻噢撘",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"cronExpression\",\"dictType\":\"\",\"example\":\"0/10 * * * * ? *\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":274},{\"tableId\":24,\"columnName\":\"execute_begin_time\",\"columnType\":\"datetime\",\"columnComment\":\"甈⊥銵憪\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"Date\",\"javaField\":\"executeBeginTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":275},{\"tableId\":24,\"columnName\":\"execute_end_time\",\"columnType\":\"datetime\",\"columnComment\":\"甈⊥銵\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"Date\",\"javaField\":\"executeEndTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":276},{\"tableId\":24,\"columnName\":\"fire_prev_time\",\"columnType\":\"datetime\",\"columnComment\":\"銝甈∟圻\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Date\",\"javaField\":\"firePrevTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":277},{\"tableId\":24,\"columnName\":\"fire_next_time\",\"columnType\":\"datetime\",\"columnComment\":\"銝甈∟圻\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"Date\",\"javaField\":\"fireNextTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":278},{\"tableId\":24,\"columnName\":\"monitor_timeout\",\"columnType\":\"int(11)\",\"columnComment\":\"頞\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"Integer\",\"javaField\":\"monitorTimeout\",\"dictType\":\"\",\"example\":\"1000\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":279},{\"tableId\":24,\"columnName\":\"create_by\",\"columnType\":\"varchar(64)\",\"columnComment\":\"遣",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"String\",\"javaField\":\"createBy\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":280},{\"tableId\":24,\"columnName\":\"create_time\",\"columnType\":\"datetime\",\"columnComment\":\"遣\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"Date\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":281},{\"tableId\":24,\"columnName\":\"update_by\",\"columnType\":\"varchar(64)\",\"columnComment\":\"",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"String\",\"javaField\":\"updateBy\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":282},{\"tableId\":24,\"columnName\":\"update_time\",\"columnType\":\"datetime\",\"columnComment\":\"\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"Date\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":283},{\"tableId\":24,\"columnName\":\"deleted\",\"columnType\":\"bit(1)\",\"columnComment\":\"\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":284}]}}', '2021-02-14 11:51:29', 40, 0, '', 'true', '', '2021-02-07 07:55:17', '', '2021-02-07 07:55:17', b'0'); | ||
| 643 | +INSERT INTO `sys_operate_log` VALUES (214, 'c526a275-1f28-4516-8329-99f1f09549b9', 1, '摰隞餃', '遣摰隞餃', 2, '', '', 'POST', '/api/infra/job/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.createJob(InfJobCreateReqVO)', '{\"createReqVO\":{\"name\":\" Session 頞 Job\",\"status\":0,\"handlerName\":\"sysUserSessionTimeoutJob\",\"handlerParam\":null,\"cronExpression\":\"0/10 * * * * ? *\",\"executeBeginTime\":null,\"executeEndTime\":null,\"firePrevTime\":null,\"fireNextTime\":null,\"monitorTimeout\":null}}', '2021-02-14 12:03:54', 7, 0, '', '1', '', '2021-02-07 08:07:42', '', '2021-02-07 08:07:42', b'0'); | ||
| 644 | +INSERT INTO `sys_operate_log` VALUES (215, '85b18aa0-68bb-43fe-a797-43bc41264b0c', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJob(InfJobUpdateReqVO)', '{\"updateReqVO\":{\"name\":\" Session 頞 Job\",\"handlerParam\":null,\"cronExpression\":\"0/10 * * * * ? *\",\"monitorTimeout\":null,\"id\":1}}', '2021-02-14 18:56:51', 8, 500, 'NoSuchMethodError: cn.iocoder.dashboard.modules.infra.controller.job.vo.job.InfJobUpdateReqVO.getStatus()Ljava/lang/Integer;', 'null', '', '2021-02-07 09:23:29', '', '2021-02-07 09:23:29', b'0'); | ||
| 645 | +INSERT INTO `sys_operate_log` VALUES (216, '9839b96d-ec32-4c24-86cb-24d406accced', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJob(InfJobUpdateReqVO)', '{\"updateReqVO\":{\"name\":\" Session 頞 Job\",\"handlerParam\":null,\"cronExpression\":\"0/10 * * * * ? *\",\"monitorTimeout\":null,\"id\":1}}', '2021-02-14 18:57:27', 3, 500, 'NoSuchMethodError: cn.iocoder.dashboard.modules.infra.controller.job.vo.job.InfJobUpdateReqVO.getStatus()Ljava/lang/Integer;', 'null', '', '2021-02-07 09:24:05', '', '2021-02-07 09:24:05', b'0'); | ||
| 646 | +INSERT INTO `sys_operate_log` VALUES (217, '75ffd8e1-dbc1-4bb0-a527-ba45d7728596', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJob(InfJobUpdateReqVO)', '{\"updateReqVO\":{\"name\":\" Session 頞 Job\",\"handlerParam\":null,\"cronExpression\":\"0/10 * * * * ? *\",\"monitorTimeout\":null,\"id\":1}}', '2021-02-14 18:57:27', 3, 500, 'NoSuchMethodError: cn.iocoder.dashboard.modules.infra.controller.job.vo.job.InfJobUpdateReqVO.getStatus()Ljava/lang/Integer;', 'null', '', '2021-02-07 09:24:06', '', '2021-02-07 09:24:06', b'0'); | ||
| 647 | +INSERT INTO `sys_operate_log` VALUES (218, 'c23ace85-054e-45ca-b90e-bb6e52034839', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJob(InfJobUpdateReqVO)', '{\"updateReqVO\":{\"name\":\" Session 頞 Job\",\"handlerParam\":null,\"cronExpression\":\"0/10 * * * * ? *\",\"monitorTimeout\":null,\"id\":1}}', '2021-02-14 18:59:42', 24, 0, '', 'true', '', '2021-02-07 09:26:21', '', '2021-02-07 09:26:21', b'0'); | ||
| 648 | +INSERT INTO `sys_operate_log` VALUES (219, '54b57664-c4bc-4c6b-a958-ecd274079870', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJob(InfJobUpdateReqVO)', '{\"updateReqVO\":{\"name\":\" Session 頞 Job\",\"handlerParam\":null,\"cronExpression\":\"0/10 * * * * ? *\",\"monitorTimeout\":10,\"id\":1}}', '2021-02-14 18:59:48', 7, 0, '', 'true', '', '2021-02-07 09:26:27', '', '2021-02-07 09:26:27', b'0'); | ||
| 649 | +INSERT INTO `sys_operate_log` VALUES (220, 'd48573df-9eb4-420d-a3bd-940ea6bc10cd', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJob(InfJobUpdateReqVO)', '{\"updateReqVO\":{\"name\":\" Session 頞 Job\",\"handlerParam\":\"demo\",\"cronExpression\":\"0/10 * * * * ? *\",\"monitorTimeout\":null,\"id\":1}}', '2021-02-14 19:00:28', 6, 0, '', 'true', '', '2021-02-07 09:27:07', '', '2021-02-07 09:27:07', b'0'); | ||
| 650 | +INSERT INTO `sys_operate_log` VALUES (221, 'de38299e-88d9-447c-bfc8-432521aeb7f6', 1, '摰隞餃', '遣摰隞餃', 2, '', '', 'POST', '/api/infra/job/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.createJob(InfJobCreateReqVO)', '{\"createReqVO\":{\"name\":\" Session 頞 Job\",\"handlerParam\":null,\"cronExpression\":\"0/10 * * * * ? *\",\"monitorTimeout\":null,\"handlerName\":\"sysUserSessionTimeoutJob\"}}', '2021-02-14 19:48:25', 7260, 0, '', '2', '', '2021-02-07 10:15:14', '', '2021-02-07 10:15:14', b'0'); | ||
| 651 | +INSERT INTO `sys_operate_log` VALUES (222, 'a84ac759-7057-4c99-8dba-cf776fc96070', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJob(InfJobUpdateReqVO)', '{\"updateReqVO\":{\"name\":\" Session 頞 Job\",\"handlerParam\":null,\"cronExpression\":\"0/20 * * * * ? *\",\"monitorTimeout\":0,\"id\":2}}', '2021-02-14 19:49:26', 22, 0, '', 'true', '', '2021-02-07 10:16:08', '', '2021-02-07 10:16:08', b'0'); | ||
| 652 | +INSERT INTO `sys_operate_log` VALUES (223, '68e11f7b-78a4-4541-b3d7-639faf287277', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJob(InfJobUpdateReqVO)', '{\"updateReqVO\":{\"name\":\" Session 頞 Job\",\"handlerParam\":\"aoteman\",\"cronExpression\":\"0/20 * * * * ? *\",\"monitorTimeout\":0,\"id\":2}}', '2021-02-14 19:49:51', 21, 0, '', 'true', '', '2021-02-07 10:16:32', '', '2021-02-07 10:16:32', b'0'); | ||
| 653 | +INSERT INTO `sys_operate_log` VALUES (224, 'f007b9cd-068a-4bd8-83b8-d0036c624470', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update-status', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJobStatus(Long,Integer)', '{\"id\":2,\"status\":1}', '2021-02-14 22:01:43', 18, 500, 'ServiceException: 捂靽格銝箏', 'null', '', '2021-02-07 12:25:32', '', '2021-02-07 12:25:32', b'0'); | ||
| 654 | +INSERT INTO `sys_operate_log` VALUES (225, '7d3c36c5-5792-4582-b489-b90490c426d8', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update-status', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJobStatus(Long,Integer)', '{\"id\":2,\"status\":1}', '2021-02-14 22:02:13', 13, 500, 'ServiceException: 摰隞餃撌脩砲靽格', 'null', '', '2021-02-07 12:26:02', '', '2021-02-07 12:26:02', b'0'); | ||
| 655 | +INSERT INTO `sys_operate_log` VALUES (226, 'dbf7947c-130e-4efa-93f0-40e70abdd20f', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update-status', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJobStatus(Long,Integer)', '{\"id\":2,\"status\":1}', '2021-02-14 22:02:18', 4, 500, 'ServiceException: 摰隞餃撌脩砲靽格', 'null', '', '2021-02-07 12:26:07', '', '2021-02-07 12:26:07', b'0'); | ||
| 656 | +INSERT INTO `sys_operate_log` VALUES (227, '438dee18-c788-4609-90cf-56b5d783168f', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update-status', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJobStatus(Long,Integer)', '{\"id\":2,\"status\":1}', '2021-02-14 22:02:27', 5, 500, 'ServiceException: 摰隞餃撌脩砲靽格', 'null', '', '2021-02-07 12:26:16', '', '2021-02-07 12:26:16', b'0'); | ||
| 657 | +INSERT INTO `sys_operate_log` VALUES (228, '80acc266-8034-4cef-b064-ef788f85ef80', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update-status', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJobStatus(Long,Integer)', '{\"id\":2,\"status\":3}', '2021-02-14 22:04:07', 2, 500, 'ServiceException: 捂靽格銝箏', 'null', '', '2021-02-07 12:27:56', '', '2021-02-07 12:27:56', b'0'); | ||
| 658 | +INSERT INTO `sys_operate_log` VALUES (229, '6380a27d-3858-4219-8051-91b6c3e23c58', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update-status', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJobStatus(Long,Integer)', '{\"id\":2,\"status\":3}', '2021-02-14 22:05:00', 27, 0, '', 'true', '', '2021-02-07 12:28:49', '', '2021-02-07 12:28:49', b'0'); | ||
| 659 | +INSERT INTO `sys_operate_log` VALUES (230, 'e07dacf3-3c9d-4379-a707-7546b4eb1790', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJob(InfJobUpdateReqVO)', '{\"updateReqVO\":{\"name\":\" Session 頞 Job\",\"handlerParam\":\"aoteman\",\"cronExpression\":\"0/5 * * * * ? *\",\"monitorTimeout\":0,\"id\":2}}', '2021-02-14 22:05:39', 22, 0, '', 'true', '', '2021-02-07 12:29:28', '', '2021-02-07 12:29:28', b'0'); | ||
| 660 | +INSERT INTO `sys_operate_log` VALUES (231, '4d0ea27c-d7e0-4c4b-b279-ede302fb99ba', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update-status', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJobStatus(Long,Integer)', '{\"id\":2,\"status\":3}', '2021-02-14 22:05:52', 4, 500, 'ServiceException: 摰隞餃撌脩砲靽格', 'null', '', '2021-02-07 12:29:41', '', '2021-02-07 12:29:41', b'0'); | ||
| 661 | +INSERT INTO `sys_operate_log` VALUES (232, 'a3f88f40-77e3-433a-aafa-4373ce848fd3', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update-status', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJobStatus(Long,Integer)', '{\"id\":2,\"status\":1}', '2021-02-14 22:06:05', 18, 0, '', 'true', '', '2021-02-07 12:29:54', '', '2021-02-07 12:29:54', b'0'); | ||
| 662 | +INSERT INTO `sys_operate_log` VALUES (233, '0e93c02c-334e-442b-b21e-fabbf2c0a28a', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update-status', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJobStatus(Long,Integer)', '{\"id\":2,\"status\":3}', '2021-02-14 22:06:29', 13, 0, '', 'true', '', '2021-02-07 12:30:18', '', '2021-02-07 12:30:18', b'0'); | ||
| 663 | +INSERT INTO `sys_operate_log` VALUES (234, '5231d05d-a3ea-4285-ba27-7e00821c9c9d', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJob(InfJobUpdateReqVO)', '{\"updateReqVO\":{\"name\":\" Session 頞 Job\",\"handlerParam\":\"aoteman\",\"cronExpression\":\"0/5 * * * * ? *\",\"monitorTimeout\":10,\"id\":2}}', '2021-02-14 22:10:34', 26, 0, '', 'true', '', '2021-02-07 12:34:23', '', '2021-02-07 12:34:23', b'0'); | ||
| 664 | +INSERT INTO `sys_operate_log` VALUES (235, 'f510aa4d-45bc-4fea-98de-dac97a6e26df', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update-status', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJobStatus(Long,Integer)', '{\"id\":2,\"status\":1}', '2021-02-14 22:10:48', 15, 0, '', 'true', '', '2021-02-07 12:34:37', '', '2021-02-07 12:34:37', b'0'); | ||
| 665 | +INSERT INTO `sys_operate_log` VALUES (236, 'c21181c6-3690-48f3-9199-e2fa159a22fa', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update-status', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJobStatus(Long,Integer)', '{\"id\":2,\"status\":3}', '2021-02-14 22:10:50', 11, 0, '', 'true', '', '2021-02-07 12:34:40', '', '2021-02-07 12:34:40', b'0'); | ||
| 666 | +INSERT INTO `sys_operate_log` VALUES (237, '266c8bec-a655-4b57-901f-9ce6f0d69a37', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update-status', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJobStatus(Long,Integer)', '{\"id\":2,\"status\":3}', '2021-02-14 22:14:33', 34, 500, 'ServiceException: 摰隞餃撌脩砲靽格', 'null', '', '2021-02-07 12:38:23', '', '2021-02-07 12:38:23', b'0'); | ||
| 667 | +INSERT INTO `sys_operate_log` VALUES (238, '68201580-f4ef-47e1-b537-e997f8a01ea2', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJob(InfJobUpdateReqVO)', '{\"updateReqVO\":{\"name\":\" Session 頞 Job\",\"handlerParam\":\"aoteman\",\"cronExpression\":\"0/5 * * * * ? *\",\"monitorTimeout\":null,\"id\":2}}', '2021-02-14 22:14:50', 7, 500, 'ServiceException: 遙嚗隞乩耨', 'null', '', '2021-02-07 12:38:40', '', '2021-02-07 12:38:40', b'0'); | ||
| 668 | +INSERT INTO `sys_operate_log` VALUES (239, '789501a4-d049-4053-90dd-db425d87f921', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJob(InfJobUpdateReqVO)', '{\"updateReqVO\":{\"name\":\" Session 頞 Job\",\"handlerParam\":\"aoteman\",\"cronExpression\":\"0/5 * * * * ? *\",\"monitorTimeout\":null,\"id\":2}}', '2021-02-14 22:14:51', 6, 500, 'ServiceException: 遙嚗隞乩耨', 'null', '', '2021-02-07 12:38:41', '', '2021-02-07 12:38:41', b'0'); | ||
| 669 | +INSERT INTO `sys_operate_log` VALUES (240, '60bb3736-482a-45ed-ba63-fc1c94fdbceb', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJob(InfJobUpdateReqVO)', '{\"updateReqVO\":{\"name\":\" Session 頞 Job\",\"handlerParam\":\"aoteman\",\"cronExpression\":\"0/5 * * * * ? *\",\"monitorTimeout\":null,\"id\":2}}', '2021-02-14 22:14:52', 5, 500, 'ServiceException: 遙嚗隞乩耨', 'null', '', '2021-02-07 12:38:42', '', '2021-02-07 12:38:42', b'0'); | ||
| 670 | +INSERT INTO `sys_operate_log` VALUES (241, '2a2c18cd-5056-472a-900e-29f6c2248ac0', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJob(InfJobUpdateReqVO)', '{\"updateReqVO\":{\"name\":\" Session 頞 Job\",\"handlerParam\":\"aoteman\",\"cronExpression\":\"0/5 * * * * ? *\",\"monitorTimeout\":null,\"id\":2}}', '2021-02-14 22:14:52', 5, 500, 'ServiceException: 遙嚗隞乩耨', 'null', '', '2021-02-07 12:38:42', '', '2021-02-07 12:38:42', b'0'); | ||
| 671 | +INSERT INTO `sys_operate_log` VALUES (242, 'abd26aa1-4561-4b83-80b4-989158ff272f', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJob(InfJobUpdateReqVO)', '{\"updateReqVO\":{\"name\":\" Session 頞 Job\",\"handlerParam\":\"aoteman\",\"cronExpression\":\"0/5 * * * * ? *\",\"monitorTimeout\":null,\"id\":2}}', '2021-02-14 22:14:52', 4, 500, 'ServiceException: 遙嚗隞乩耨', 'null', '', '2021-02-07 12:38:42', '', '2021-02-07 12:38:42', b'0'); | ||
| 672 | +INSERT INTO `sys_operate_log` VALUES (243, 'a582d39d-1bca-42ab-b417-f646bc0d41ca', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJob(InfJobUpdateReqVO)', '{\"updateReqVO\":{\"name\":\" Session 頞 Job\",\"handlerParam\":\"aoteman\",\"cronExpression\":\"0/5 * * * * ? *\",\"monitorTimeout\":null,\"id\":2}}', '2021-02-14 22:14:52', 5, 500, 'ServiceException: 遙嚗隞乩耨', 'null', '', '2021-02-07 12:38:42', '', '2021-02-07 12:38:42', b'0'); | ||
| 673 | +INSERT INTO `sys_operate_log` VALUES (244, '4f926259-0b96-4c25-a6cf-b52b3e9f0561', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJob(InfJobUpdateReqVO)', '{\"updateReqVO\":{\"name\":\" Session 頞 Job\",\"handlerParam\":\"aoteman\",\"cronExpression\":\"0/5 * * * * ? *\",\"monitorTimeout\":null,\"id\":2}}', '2021-02-14 22:14:53', 5, 500, 'ServiceException: 遙嚗隞乩耨', 'null', '', '2021-02-07 12:38:43', '', '2021-02-07 12:38:43', b'0'); | ||
| 674 | +INSERT INTO `sys_operate_log` VALUES (245, 'ece28b24-55fb-4357-ac77-568a69b8bdc5', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJob(InfJobUpdateReqVO)', '{\"updateReqVO\":{\"name\":\" Session 頞 Job\",\"handlerParam\":\"aoteman\",\"cronExpression\":\"0/5 * * * * ? *\",\"monitorTimeout\":null,\"id\":2}}', '2021-02-14 22:14:53', 4, 500, 'ServiceException: 遙嚗隞乩耨', 'null', '', '2021-02-07 12:38:43', '', '2021-02-07 12:38:43', b'0'); | ||
| 675 | +INSERT INTO `sys_operate_log` VALUES (246, '5989998d-33fe-468d-a53f-5cdc4db8dba5', 1, '摰隞餃', '摰隞餃', 3, '', '', 'PUT', '/api/infra/job/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.updateJob(InfJobUpdateReqVO)', '{\"updateReqVO\":{\"name\":\" Session 頞 Job\",\"handlerParam\":\"aoteman\",\"cronExpression\":\"0/5 * * * * ? *\",\"monitorTimeout\":null,\"id\":2}}', '2021-02-14 22:14:54', 5, 500, 'ServiceException: 遙嚗隞乩耨', 'null', '', '2021-02-07 12:38:43', '', '2021-02-07 12:38:43', b'0'); | ||
| 676 | +INSERT INTO `sys_operate_log` VALUES (247, '4d837253-aeab-41d6-9918-5423564bb6e4', 1, '摰隞餃', '閫血隞餃', 3, '', '', 'PUT', '/api/infra/job/trigger', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.triggerJob(Long)', '{\"id\":2}', '2021-02-14 22:25:10', 42, 0, '', 'true', '', '2021-02-07 12:49:01', '', '2021-02-07 12:49:01', b'0'); | ||
| 677 | +INSERT INTO `sys_operate_log` VALUES (248, 'ed5c70fb-7af2-49fe-9e46-3f4d8a83560a', 1, '摰隞餃', '摰隞餃', 4, '', '', 'DELETE', '/api/infra/job/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.deleteJob(Long)', '{\"id\":2}', '2021-02-14 22:33:53', 46, 0, '', 'true', '', '2021-02-07 12:57:44', '', '2021-02-07 12:57:44', b'0'); | ||
| 678 | +INSERT INTO `sys_operate_log` VALUES (249, '9e125d0f-5300-4311-89b9-808b80f7e48d', 1, ' API', '靽格', 2, '', '', 'POST', '/api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.permission.SysMenuController.updateMenu(SysMenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"摰隞餃\",\"permission\":\"infra:job:query\",\"type\":2,\"sort\":\"2\",\"parentId\":2,\"path\":\"job\",\"icon\":\"job\",\"component\":\"infra/job/index\",\"status\":0,\"id\":110}}', '2021-02-14 22:37:44', 16, 0, '', 'true', '', '2021-02-07 13:01:36', '', '2021-02-07 13:01:36', b'0'); | ||
| 679 | +INSERT INTO `sys_operate_log` VALUES (250, '8c86d97d-45ff-42a2-bb53-57295377f39b', 1, ' API', '', 2, '', '', 'POST', '/api/system/menu/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.permission.SysMenuController.deleteMenu(Long)', '{\"id\":1049}', '2021-02-14 22:37:50', 13, 0, '', 'true', '', '2021-02-07 13:01:42', '', '2021-02-07 13:01:42', b'0'); | ||
| 680 | +INSERT INTO `sys_operate_log` VALUES (251, 'e4b474a9-923e-4322-87c2-947702ad92f0', 1, ' API', '靽格', 2, '', '', 'POST', '/api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.permission.SysMenuController.updateMenu(SysMenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"隞餃憓",\"permission\":\"infra:job:create\",\"type\":3,\"sort\":\"2\",\"parentId\":110,\"path\":\"#\",\"icon\":\"#\",\"component\":\"\",\"status\":0,\"id\":1050}}', '2021-02-14 22:38:06', 10, 0, '', 'true', '', '2021-02-07 13:01:58', '', '2021-02-07 13:01:58', b'0'); | ||
| 681 | +INSERT INTO `sys_operate_log` VALUES (252, '1d0e5e0c-fdbd-4354-a690-075b1e284b76', 1, ' API', '靽格', 2, '', '', 'POST', '/api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.permission.SysMenuController.updateMenu(SysMenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"隞餃靽格\",\"permission\":\"infra:job:update\",\"type\":3,\"sort\":\"3\",\"parentId\":110,\"path\":\"#\",\"icon\":\"#\",\"component\":\"\",\"status\":0,\"id\":1051}}', '2021-02-14 22:38:19', 8, 0, '', 'true', '', '2021-02-07 13:02:10', '', '2021-02-07 13:02:10', b'0'); | ||
| 682 | +INSERT INTO `sys_operate_log` VALUES (253, '30cda294-e2be-42d8-825f-0538d47e5853', 1, ' API', '靽格', 2, '', '', 'POST', '/api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.permission.SysMenuController.updateMenu(SysMenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"隞餃\",\"permission\":\"infra:job:delete\",\"type\":3,\"sort\":\"4\",\"parentId\":110,\"path\":\"#\",\"icon\":\"#\",\"component\":\"\",\"status\":0,\"id\":1052}}', '2021-02-14 22:38:30', 9, 0, '', 'true', '', '2021-02-07 13:02:22', '', '2021-02-07 13:02:22', b'0'); | ||
| 683 | +INSERT INTO `sys_operate_log` VALUES (254, '82d44075-9c1b-4d1f-a611-f8123a8e0bc4', 1, ' API', '靽格', 2, '', '', 'POST', '/api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.permission.SysMenuController.updateMenu(SysMenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"耨\",\"permission\":\"infra:job:update\",\"type\":3,\"sort\":\"5\",\"parentId\":110,\"path\":\"#\",\"icon\":\"#\",\"component\":\"\",\"status\":0,\"id\":1053}}', '2021-02-14 22:38:46', 7, 0, '', 'true', '', '2021-02-07 13:02:38', '', '2021-02-07 13:02:38', b'0'); | ||
| 684 | +INSERT INTO `sys_operate_log` VALUES (255, 'a56037c8-4e13-46ac-8c50-a9b298fdfcb2', 1, ' API', '靽格', 2, '', '', 'POST', '/api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.permission.SysMenuController.updateMenu(SysMenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"隞餃撖澆\",\"permission\":\"infra:job:export\",\"type\":3,\"sort\":\"7\",\"parentId\":110,\"path\":\"#\",\"icon\":\"#\",\"component\":\"\",\"status\":0,\"id\":1054}}', '2021-02-14 22:39:00', 8, 0, '', 'true', '', '2021-02-07 13:02:51', '', '2021-02-07 13:02:51', b'0'); | ||
| 685 | +INSERT INTO `sys_operate_log` VALUES (256, '6456526a-ac2f-4fdf-b873-0484b81af0aa', 1, ' API', '遣', 2, '', '', 'POST', '/api/system/menu/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.system.controller.permission.SysMenuController.createMenu(SysMenuCreateReqVO)', '{\"reqVO\":{\"name\":\"隞餃閫血",\"permission\":\"infra:job:trigger\",\"type\":3,\"sort\":\"8\",\"parentId\":110,\"path\":null,\"icon\":null,\"component\":null,\"status\":0}}', '2021-02-14 22:39:19', 12, 0, '', '1075', '', '2021-02-07 13:03:10', '', '2021-02-07 13:03:10', b'0'); | ||
| 686 | +INSERT INTO `sys_operate_log` VALUES (257, 'a3b43efc-c3a3-4228-8f48-f978c2c7ff6c', 1, '摰隞餃', '遣摰隞餃', 2, '', '', 'POST', '/api/infra/job/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'CommonResult cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.createJob(InfJobCreateReqVO)', '{\"createReqVO\":{\"name\":\" Session 頞 Job\",\"handlerParam\":null,\"cronExpression\":\"0/5 * * * * ? *\",\"monitorTimeout\":null,\"handlerName\":\"sysUserSessionTimeoutJob\"}}', '2021-02-14 22:43:40', 39, 0, '', '3', '', '2021-02-07 13:07:32', '', '2021-02-07 13:07:32', b'0'); | ||
| 687 | +INSERT INTO `sys_operate_log` VALUES (258, '2be3590d-9ab4-4cc1-a8af-4b2a7c557958', 1, '摰隞餃', '撖澆摰隞餃 Excel', 5, '', '', 'GET', '/api/infra/job/export-excel', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'void cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.exportJobExcel(InfJobExportReqVO,HttpServletResponse)', '{\"exportReqVO\":{\"name\":null,\"status\":null,\"handlerName\":null},\"response\":\"[ignore]\"}', '2021-02-14 22:46:07', 1008, 0, '', 'null', '', '2021-02-07 13:10:00', '', '2021-02-07 13:10:00', b'0'); | ||
| 688 | +INSERT INTO `sys_operate_log` VALUES (259, '5dc1134b-41e0-4080-9e4e-9d955674d8d5', 1, '摰隞餃', '撖澆摰隞餃 Excel', 5, '', '', 'GET', '/api/infra/job/export-excel', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'void cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.exportJobExcel(InfJobExportReqVO,HttpServletResponse)', '{\"exportReqVO\":{\"name\":null,\"status\":null,\"handlerName\":null},\"response\":\"[ignore]\"}', '2021-02-14 22:46:13', 37, 0, '', 'null', '', '2021-02-07 13:10:06', '', '2021-02-07 13:10:06', b'0'); | ||
| 689 | +INSERT INTO `sys_operate_log` VALUES (260, '2df8e5e2-613e-4aab-b95f-ffd692c2e563', 1, '摰隞餃', '撖澆摰隞餃 Excel', 5, '', '', 'GET', '/api/infra/job/export-excel', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', 'void cn.iocoder.dashboard.modules.infra.controller.job.InfJobController.exportJobExcel(InfJobExportReqVO,HttpServletResponse)', '{\"exportReqVO\":{\"name\":null,\"status\":null,\"handlerName\":null},\"response\":\"[ignore]\"}', '2021-02-14 22:47:28', 27, 0, '', 'null', '', '2021-02-07 13:11:20', '', '2021-02-07 13:11:20', b'0'); | ||
| 575 | COMMIT; | 690 | COMMIT; |
| 576 | 691 | ||
| 577 | -- ---------------------------- | 692 | -- ---------------------------- |
| @@ -899,10 +1014,13 @@ CREATE TABLE `sys_user_session` ( | @@ -899,10 +1014,13 @@ CREATE TABLE `sys_user_session` ( | ||
| 899 | -- Records of sys_user_session | 1014 | -- Records of sys_user_session |
| 900 | -- ---------------------------- | 1015 | -- ---------------------------- |
| 901 | BEGIN; | 1016 | BEGIN; |
| 1017 | +INSERT INTO `sys_user_session` VALUES ('019f009268e24cc1957c46763eef1fd4', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-07 08:36:48', '', '2021-02-14 20:04:33', b'0'); | ||
| 902 | INSERT INTO `sys_user_session` VALUES ('04d51ff81ad54d05ab2f29e66b2a02f2', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 17:46:10', '', '2021-02-11 00:58:19', b'0'); | 1018 | INSERT INTO `sys_user_session` VALUES ('04d51ff81ad54d05ab2f29e66b2a02f2', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 17:46:10', '', '2021-02-11 00:58:19', b'0'); |
| 1019 | +INSERT INTO `sys_user_session` VALUES ('0df60899301d4080bd4164f24bccf18b', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-07 13:05:42', '', '2021-02-07 13:05:42', b'0'); | ||
| 903 | INSERT INTO `sys_user_session` VALUES ('1127b5eb9b0c4f9fa382d4d98a8a4a38', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 06:49:00', '', '2021-02-10 11:10:31', b'0'); | 1020 | INSERT INTO `sys_user_session` VALUES ('1127b5eb9b0c4f9fa382d4d98a8a4a38', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 06:49:00', '', '2021-02-10 11:10:31', b'0'); |
| 904 | INSERT INTO `sys_user_session` VALUES ('20109910c52e4b02bbc0531212bff8cb', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 02:39:48', '', '2021-02-06 02:39:48', b'0'); | 1021 | INSERT INTO `sys_user_session` VALUES ('20109910c52e4b02bbc0531212bff8cb', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 02:39:48', '', '2021-02-06 02:39:48', b'0'); |
| 905 | INSERT INTO `sys_user_session` VALUES ('2024509755b3444690c2a1dddaebd812', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 06:22:30', '', '2021-02-05 06:22:30', b'0'); | 1022 | INSERT INTO `sys_user_session` VALUES ('2024509755b3444690c2a1dddaebd812', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 06:22:30', '', '2021-02-05 06:22:30', b'0'); |
| 1023 | +INSERT INTO `sys_user_session` VALUES ('27d6db8abb3b4ed88d446ad489b9db23', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-07 06:38:34', '', '2021-02-14 10:57:34', b'0'); | ||
| 906 | INSERT INTO `sys_user_session` VALUES ('31e5ff8584794ca58460ecf68a177c3f', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 11:48:57', '', '2021-02-12 20:56:44', b'0'); | 1024 | INSERT INTO `sys_user_session` VALUES ('31e5ff8584794ca58460ecf68a177c3f', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 11:48:57', '', '2021-02-12 20:56:44', b'0'); |
| 907 | INSERT INTO `sys_user_session` VALUES ('39cdef31685d4e93931a053d88ff0279', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 08:09:33', '', '2021-02-05 08:09:33', b'0'); | 1025 | INSERT INTO `sys_user_session` VALUES ('39cdef31685d4e93931a053d88ff0279', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 08:09:33', '', '2021-02-05 08:09:33', b'0'); |
| 908 | INSERT INTO `sys_user_session` VALUES ('5636ae58b9644ea1b4ed934b025b76ea', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 04:24:59', '', '2021-02-09 18:40:06', b'0'); | 1026 | INSERT INTO `sys_user_session` VALUES ('5636ae58b9644ea1b4ed934b025b76ea', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 04:24:59', '', '2021-02-09 18:40:06', b'0'); |
| @@ -911,10 +1029,12 @@ INSERT INTO `sys_user_session` VALUES ('5a9b736ccaa8452394c57ac82bd0815e', 1, '1 | @@ -911,10 +1029,12 @@ INSERT INTO `sys_user_session` VALUES ('5a9b736ccaa8452394c57ac82bd0815e', 1, '1 | ||
| 911 | INSERT INTO `sys_user_session` VALUES ('604ac07123a445ee8a81e58db1d6d695', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 16:33:53', '', '2021-02-05 16:33:53', b'0'); | 1029 | INSERT INTO `sys_user_session` VALUES ('604ac07123a445ee8a81e58db1d6d695', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 16:33:53', '', '2021-02-05 16:33:53', b'0'); |
| 912 | INSERT INTO `sys_user_session` VALUES ('64fd3d0a54754b8fa13b62d2f261b1e2', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 01:36:09', '', '2021-02-09 16:05:22', b'0'); | 1030 | INSERT INTO `sys_user_session` VALUES ('64fd3d0a54754b8fa13b62d2f261b1e2', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 01:36:09', '', '2021-02-09 16:05:22', b'0'); |
| 913 | INSERT INTO `sys_user_session` VALUES ('661be9d3983e4e2eb8b346c1329015f5', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 19:46:45', '', '2021-02-13 12:02:29', b'0'); | 1031 | INSERT INTO `sys_user_session` VALUES ('661be9d3983e4e2eb8b346c1329015f5', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 19:46:45', '', '2021-02-13 12:02:29', b'0'); |
| 1032 | +INSERT INTO `sys_user_session` VALUES ('6acbf1f210ff4c6594acb3505f0c3738', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-07 12:16:36', '', '2021-02-14 22:37:22', b'0'); | ||
| 914 | INSERT INTO `sys_user_session` VALUES ('73c66b705ed94e18bc53df61abc2d102', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 15:00:55', '', '2021-02-06 15:00:55', b'0'); | 1033 | INSERT INTO `sys_user_session` VALUES ('73c66b705ed94e18bc53df61abc2d102', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 15:00:55', '', '2021-02-06 15:00:55', b'0'); |
| 915 | INSERT INTO `sys_user_session` VALUES ('73cc914671034f3190f09f520d1b39e9', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-01-26 08:29:27', '', '2021-01-26 08:29:50', b'1'); | 1034 | INSERT INTO `sys_user_session` VALUES ('73cc914671034f3190f09f520d1b39e9', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-01-26 08:29:27', '', '2021-01-26 08:29:50', b'1'); |
| 916 | INSERT INTO `sys_user_session` VALUES ('8331dbbca7be4348a3d2d02bf559b65e', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 13:29:04', '', '2021-02-10 19:06:26', b'0'); | 1035 | INSERT INTO `sys_user_session` VALUES ('8331dbbca7be4348a3d2d02bf559b65e', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 13:29:04', '', '2021-02-10 19:06:26', b'0'); |
| 917 | INSERT INTO `sys_user_session` VALUES ('9cc71dc2d7a24b978db1bfe0e4bae349', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-01-26 08:30:01', '', '2021-01-26 08:30:01', b'0'); | 1036 | INSERT INTO `sys_user_session` VALUES ('9cc71dc2d7a24b978db1bfe0e4bae349', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-01-26 08:30:01', '', '2021-01-26 08:30:01', b'0'); |
| 1037 | +INSERT INTO `sys_user_session` VALUES ('a1d01dbed7ff4b6392c3f27c18ce8778', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-07 07:36:14', '', '2021-02-14 12:13:56', b'0'); | ||
| 918 | INSERT INTO `sys_user_session` VALUES ('a93edff183c447719ecb627d40ca22a6', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 20:28:51', '', '2021-02-05 20:28:51', b'0'); | 1038 | INSERT INTO `sys_user_session` VALUES ('a93edff183c447719ecb627d40ca22a6', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 20:28:51', '', '2021-02-05 20:28:51', b'0'); |
| 919 | INSERT INTO `sys_user_session` VALUES ('aa22b7a5754b440e957ec47b832c9fd6', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 21:22:31', '', '2021-02-06 21:22:31', b'0'); | 1039 | INSERT INTO `sys_user_session` VALUES ('aa22b7a5754b440e957ec47b832c9fd6', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 21:22:31', '', '2021-02-06 21:22:31', b'0'); |
| 920 | INSERT INTO `sys_user_session` VALUES ('e3ad1ef8b9aa4b329855b29c7b372e8f', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 06:21:44', '', '2021-02-05 06:21:44', b'0'); | 1040 | INSERT INTO `sys_user_session` VALUES ('e3ad1ef8b9aa4b329855b29c7b372e8f', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 06:21:44', '', '2021-02-05 06:21:44', b'0'); |
| @@ -951,7 +1071,7 @@ CREATE TABLE `tool_codegen_column` ( | @@ -951,7 +1071,7 @@ CREATE TABLE `tool_codegen_column` ( | ||
| 951 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '', | 1071 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '', |
| 952 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '', | 1072 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '', |
| 953 | PRIMARY KEY (`id`) USING BTREE | 1073 | PRIMARY KEY (`id`) USING BTREE |
| 954 | -) ENGINE=InnoDB AUTO_INCREMENT=269 DEFAULT CHARSET=utf8mb4 COMMENT='隞”摮挾摰'; | 1074 | +) ENGINE=InnoDB AUTO_INCREMENT=285 DEFAULT CHARSET=utf8mb4 COMMENT='隞”摮挾摰'; |
| 955 | 1075 | ||
| 956 | -- ---------------------------- | 1076 | -- ---------------------------- |
| 957 | -- Records of tool_codegen_column | 1077 | -- Records of tool_codegen_column |
| @@ -981,7 +1101,7 @@ INSERT INTO `tool_codegen_column` VALUES (252, 21, 'create_time', 'datetime', ' | @@ -981,7 +1101,7 @@ INSERT INTO `tool_codegen_column` VALUES (252, 21, 'create_time', 'datetime', ' | ||
| 981 | INSERT INTO `tool_codegen_column` VALUES (253, 21, 'update_by', 'varchar(64)', '', b'1', b'0', '0', 11, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-06 19:51:35', '', '2021-02-06 19:51:35', b'0'); | 1101 | INSERT INTO `tool_codegen_column` VALUES (253, 21, 'update_by', 'varchar(64)', '', b'1', b'0', '0', 11, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-06 19:51:35', '', '2021-02-06 19:51:35', b'0'); |
| 982 | INSERT INTO `tool_codegen_column` VALUES (254, 21, 'update_time', 'datetime', '', b'0', b'0', '0', 12, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-02-06 19:51:35', '', '2021-02-06 19:51:35', b'0'); | 1102 | INSERT INTO `tool_codegen_column` VALUES (254, 21, 'update_time', 'datetime', '', b'0', b'0', '0', 12, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-02-06 19:51:35', '', '2021-02-06 19:51:35', b'0'); |
| 983 | INSERT INTO `tool_codegen_column` VALUES (255, 21, 'deleted', 'bit(1)', '', b'0', b'0', '0', 13, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '', '2021-02-06 19:51:35', '', '2021-02-06 19:51:35', b'0'); | 1103 | INSERT INTO `tool_codegen_column` VALUES (255, 21, 'deleted', 'bit(1)', '', b'0', b'0', '0', 13, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '', '2021-02-06 19:51:35', '', '2021-02-06 19:51:35', b'0'); |
| 984 | -INSERT INTO `tool_codegen_column` VALUES (256, 23, 'job_id', 'bigint(20)', '隞餃ID', b'0', b'1', '1', 1, 'Long', 'jobId', '', NULL, b'0', b'1', b'0', '=', b'1', 'input', '', '2021-02-06 20:29:26', '', '2021-02-06 20:29:26', b'0'); | 1104 | +INSERT INTO `tool_codegen_column` VALUES (256, 23, 'job_id', 'bigint(20)', '隞餃ID', b'0', b'1', '1', 1, 'Long', 'jobId', '', NULL, b'0', b'1', b'0', '=', b'1', 'input', '', '2021-02-06 20:29:26', '', '2021-02-07 06:38:51', b'1'); |
| 985 | INSERT INTO `tool_codegen_column` VALUES (257, 23, 'job_name', 'varchar(64)', '隞餃妍', b'0', b'0', '0', 2, 'String', 'jobName', '', NULL, b'1', b'1', b'1', 'LIKE', b'1', 'input', '', '2021-02-06 20:29:26', '', '2021-02-06 20:47:14', b'1'); | 1105 | INSERT INTO `tool_codegen_column` VALUES (257, 23, 'job_name', 'varchar(64)', '隞餃妍', b'0', b'0', '0', 2, 'String', 'jobName', '', NULL, b'1', b'1', b'1', 'LIKE', b'1', 'input', '', '2021-02-06 20:29:26', '', '2021-02-06 20:47:14', b'1'); |
| 986 | INSERT INTO `tool_codegen_column` VALUES (258, 23, 'job_group', 'varchar(64)', '隞餃蝏', b'0', b'0', '0', 3, 'String', 'jobGroup', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '', '2021-02-06 20:29:26', '', '2021-02-06 20:47:14', b'1'); | 1106 | INSERT INTO `tool_codegen_column` VALUES (258, 23, 'job_group', 'varchar(64)', '隞餃蝏', b'0', b'0', '0', 3, 'String', 'jobGroup', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '', '2021-02-06 20:29:26', '', '2021-02-06 20:47:14', b'1'); |
| 987 | INSERT INTO `tool_codegen_column` VALUES (259, 23, 'invoke_target', 'varchar(500)', '靚泵銝', b'0', b'0', '0', 4, 'String', 'invokeTarget', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '', '2021-02-06 20:29:26', '', '2021-02-06 20:47:14', b'1'); | 1107 | INSERT INTO `tool_codegen_column` VALUES (259, 23, 'invoke_target', 'varchar(500)', '靚泵銝', b'0', b'0', '0', 4, 'String', 'invokeTarget', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '', '2021-02-06 20:29:26', '', '2021-02-06 20:47:14', b'1'); |
| @@ -994,6 +1114,22 @@ INSERT INTO `tool_codegen_column` VALUES (265, 23, 'create_time', 'datetime', ' | @@ -994,6 +1114,22 @@ INSERT INTO `tool_codegen_column` VALUES (265, 23, 'create_time', 'datetime', ' | ||
| 994 | INSERT INTO `tool_codegen_column` VALUES (266, 23, 'update_by', 'varchar(64)', '', b'1', b'0', '0', 11, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-06 20:29:26', '', '2021-02-06 20:46:49', b'1'); | 1114 | INSERT INTO `tool_codegen_column` VALUES (266, 23, 'update_by', 'varchar(64)', '', b'1', b'0', '0', 11, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-06 20:29:26', '', '2021-02-06 20:46:49', b'1'); |
| 995 | INSERT INTO `tool_codegen_column` VALUES (267, 23, 'update_time', 'datetime', '', b'1', b'0', '0', 12, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-02-06 20:29:26', '', '2021-02-06 20:47:14', b'1'); | 1115 | INSERT INTO `tool_codegen_column` VALUES (267, 23, 'update_time', 'datetime', '', b'1', b'0', '0', 12, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-02-06 20:29:26', '', '2021-02-06 20:47:14', b'1'); |
| 996 | INSERT INTO `tool_codegen_column` VALUES (268, 23, 'remark', 'varchar(500)', '憭釣靽⊥', b'1', b'0', '0', 13, 'String', 'remark', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '', '2021-02-06 20:29:26', '', '2021-02-06 20:47:14', b'1'); | 1116 | INSERT INTO `tool_codegen_column` VALUES (268, 23, 'remark', 'varchar(500)', '憭釣靽⊥', b'1', b'0', '0', 13, 'String', 'remark', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '', '2021-02-06 20:29:26', '', '2021-02-06 20:47:14', b'1'); |
| 1117 | +INSERT INTO `tool_codegen_column` VALUES (269, 24, 'id', 'bigint(20)', '隞餃蝻', b'0', b'1', '1', 1, 'Long', 'id', '', '1024', b'0', b'1', b'0', '=', b'1', 'input', '', '2021-02-07 06:39:34', '', '2021-02-07 06:44:19', b'0'); | ||
| 1118 | +INSERT INTO `tool_codegen_column` VALUES (270, 24, 'name', 'varchar(32)', '隞餃妍', b'0', b'0', '0', 2, 'String', 'name', '', '瘚遙', b'1', b'1', b'1', 'LIKE', b'1', 'input', '', '2021-02-07 06:39:34', '', '2021-02-07 06:44:19', b'0'); | ||
| 1119 | +INSERT INTO `tool_codegen_column` VALUES (271, 24, 'status', 'tinyint(4)', '隞餃', b'0', b'0', '0', 3, 'Integer', 'status', 'inf_job_status', '1', b'0', b'0', b'1', '=', b'1', 'radio', '', '2021-02-07 06:39:34', '', '2021-02-07 07:55:17', b'0'); | ||
| 1120 | +INSERT INTO `tool_codegen_column` VALUES (272, 24, 'handler_name', 'varchar(64)', '憭', b'0', b'0', '0', 4, 'String', 'handlerName', '', 'sysUserSessionTimeoutJob', b'1', b'1', b'1', 'LIKE', b'1', 'input', '', '2021-02-07 06:39:34', '', '2021-02-07 06:44:19', b'0'); | ||
| 1121 | +INSERT INTO `tool_codegen_column` VALUES (273, 24, 'handler_param', 'varchar(255)', '憭', b'1', b'0', '0', 5, 'String', 'handlerParam', '', 'yudao', b'1', b'1', b'0', '=', b'1', 'input', '', '2021-02-07 06:39:34', '', '2021-02-07 06:44:19', b'0'); | ||
| 1122 | +INSERT INTO `tool_codegen_column` VALUES (274, 24, 'cron_expression', 'varchar(32)', 'CRON 銵刻噢撘', b'0', b'0', '0', 6, 'String', 'cronExpression', '', '0/10 * * * * ? *', b'1', b'1', b'0', '=', b'1', 'input', '', '2021-02-07 06:39:34', '', '2021-02-07 06:44:19', b'0'); | ||
| 1123 | +INSERT INTO `tool_codegen_column` VALUES (275, 24, 'execute_begin_time', 'datetime', '甈⊥銵憪', b'1', b'0', '0', 7, 'Date', 'executeBeginTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'1', 'datetime', '', '2021-02-07 06:39:34', '', '2021-02-07 07:53:27', b'0'); | ||
| 1124 | +INSERT INTO `tool_codegen_column` VALUES (276, 24, 'execute_end_time', 'datetime', '甈⊥銵', b'1', b'0', '0', 8, 'Date', 'executeEndTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'1', 'datetime', '', '2021-02-07 06:39:34', '', '2021-02-07 07:53:27', b'0'); | ||
| 1125 | +INSERT INTO `tool_codegen_column` VALUES (277, 24, 'fire_prev_time', 'datetime', '銝甈∟圻', b'1', b'0', '0', 9, 'Date', 'firePrevTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'1', 'datetime', '', '2021-02-07 06:39:34', '', '2021-02-07 07:53:27', b'0'); | ||
| 1126 | +INSERT INTO `tool_codegen_column` VALUES (278, 24, 'fire_next_time', 'datetime', '銝甈∟圻', b'1', b'0', '0', 10, 'Date', 'fireNextTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'1', 'datetime', '', '2021-02-07 06:39:34', '', '2021-02-07 07:53:27', b'0'); | ||
| 1127 | +INSERT INTO `tool_codegen_column` VALUES (279, 24, 'monitor_timeout', 'int(11)', '頞', b'1', b'0', '0', 11, 'Integer', 'monitorTimeout', '', '1000', b'1', b'1', b'0', '=', b'1', 'input', '', '2021-02-07 06:39:34', '', '2021-02-07 06:44:19', b'0'); | ||
| 1128 | +INSERT INTO `tool_codegen_column` VALUES (280, 24, 'create_by', 'varchar(64)', '遣', b'1', b'0', '0', 12, 'String', 'createBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-07 06:39:34', '', '2021-02-07 06:39:34', b'0'); | ||
| 1129 | +INSERT INTO `tool_codegen_column` VALUES (281, 24, 'create_time', 'datetime', '遣', b'0', b'0', '0', 13, 'Date', 'createTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'1', 'datetime', '', '2021-02-07 06:39:34', '', '2021-02-07 06:44:19', b'0'); | ||
| 1130 | +INSERT INTO `tool_codegen_column` VALUES (282, 24, 'update_by', 'varchar(64)', '', b'1', b'0', '0', 14, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-07 06:39:34', '', '2021-02-07 06:39:34', b'0'); | ||
| 1131 | +INSERT INTO `tool_codegen_column` VALUES (283, 24, 'update_time', 'datetime', '', b'0', b'0', '0', 15, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-02-07 06:39:34', '', '2021-02-07 06:39:34', b'0'); | ||
| 1132 | +INSERT INTO `tool_codegen_column` VALUES (284, 24, 'deleted', 'bit(1)', '', b'0', b'0', '0', 16, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '', '2021-02-07 06:39:34', '', '2021-02-07 06:39:34', b'0'); | ||
| 997 | COMMIT; | 1133 | COMMIT; |
| 998 | 1134 | ||
| 999 | -- ---------------------------- | 1135 | -- ---------------------------- |
| @@ -1019,7 +1155,7 @@ CREATE TABLE `tool_codegen_table` ( | @@ -1019,7 +1155,7 @@ CREATE TABLE `tool_codegen_table` ( | ||
| 1019 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '', | 1155 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '', |
| 1020 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '', | 1156 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '', |
| 1021 | PRIMARY KEY (`id`) USING BTREE | 1157 | PRIMARY KEY (`id`) USING BTREE |
| 1022 | -) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8mb4 COMMENT='隞”摰'; | 1158 | +) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8mb4 COMMENT='隞”摰'; |
| 1023 | 1159 | ||
| 1024 | -- ---------------------------- | 1160 | -- ---------------------------- |
| 1025 | -- Records of tool_codegen_table | 1161 | -- Records of tool_codegen_table |
| @@ -1028,7 +1164,8 @@ BEGIN; | @@ -1028,7 +1164,8 @@ BEGIN; | ||
| 1028 | INSERT INTO `tool_codegen_table` VALUES (20, 1, 'tool_test_demo', '瘚內靘”', NULL, 'tool', 'test', 'ToolTestDemo', '瘚內靘', '', 1, 3, '', '2021-02-06 01:33:25', '', '2021-02-06 12:34:17', b'0'); | 1164 | INSERT INTO `tool_codegen_table` VALUES (20, 1, 'tool_test_demo', '瘚內靘”', NULL, 'tool', 'test', 'ToolTestDemo', '瘚內靘', '', 1, 3, '', '2021-02-06 01:33:25', '', '2021-02-06 12:34:17', b'0'); |
| 1029 | INSERT INTO `tool_codegen_table` VALUES (21, 1, 'inf_config', '蔭銵', NULL, 'infra', 'config', 'InfConfig', '蔭', '', 1, NULL, '', '2021-02-06 19:51:35', '', '2021-02-06 19:51:35', b'0'); | 1165 | INSERT INTO `tool_codegen_table` VALUES (21, 1, 'inf_config', '蔭銵', NULL, 'infra', 'config', 'InfConfig', '蔭', '', 1, NULL, '', '2021-02-06 19:51:35', '', '2021-02-06 19:51:35', b'0'); |
| 1030 | INSERT INTO `tool_codegen_table` VALUES (22, 2, 'sys_file', '辣銵沔n', NULL, 'system', 'file', 'SysFile', '辣', '', 1, NULL, '', '2021-02-06 20:28:34', '', '2021-02-06 20:28:34', b'0'); | 1166 | INSERT INTO `tool_codegen_table` VALUES (22, 2, 'sys_file', '辣銵沔n', NULL, 'system', 'file', 'SysFile', '辣', '', 1, NULL, '', '2021-02-06 20:28:34', '', '2021-02-06 20:28:34', b'0'); |
| 1031 | -INSERT INTO `tool_codegen_table` VALUES (23, 2, 'sys_job', '摰隞餃靚漲銵', NULL, 'system', 'job', 'SysJob', '摰隞餃靚漲', '', 1, NULL, '', '2021-02-06 20:29:26', '', '2021-02-06 20:29:26', b'0'); | 1167 | +INSERT INTO `tool_codegen_table` VALUES (23, 2, 'sys_job', '摰隞餃靚漲銵', NULL, 'system', 'job', 'SysJob', '摰隞餃靚漲', '', 1, NULL, '', '2021-02-06 20:29:26', '', '2021-02-07 06:38:51', b'1'); |
| 1168 | +INSERT INTO `tool_codegen_table` VALUES (24, 1, 'inf_job', '摰隞餃銵', NULL, 'infra', 'job', 'InfJob', '摰隞餃', '', 1, NULL, '', '2021-02-07 06:39:34', '', '2021-02-07 06:46:56', b'0'); | ||
| 1032 | COMMIT; | 1169 | COMMIT; |
| 1033 | 1170 | ||
| 1034 | -- ---------------------------- | 1171 | -- ---------------------------- |
src/main/java/cn/iocoder/dashboard/framework/mybatis/core/mapper/BaseMapperX.java
| @@ -28,4 +28,8 @@ public interface BaseMapperX<T> extends BaseMapper<T> { | @@ -28,4 +28,8 @@ public interface BaseMapperX<T> extends BaseMapper<T> { | ||
| 28 | return selectList(new QueryWrapper<>()); | 28 | return selectList(new QueryWrapper<>()); |
| 29 | } | 29 | } |
| 30 | 30 | ||
| 31 | + default T selectOne(String field, Object value) { | ||
| 32 | + return selectOne(new QueryWrapper<T>().eq(field, value)); | ||
| 33 | + } | ||
| 34 | + | ||
| 31 | } | 35 | } |
src/main/java/cn/iocoder/dashboard/framework/quartz/core/scheduler/SchedulerManager.java
| @@ -7,6 +7,12 @@ import org.quartz.*; | @@ -7,6 +7,12 @@ import org.quartz.*; | ||
| 7 | /** | 7 | /** |
| 8 | * {@link org.quartz.Scheduler} 的管理器,负责创建任务 | 8 | * {@link org.quartz.Scheduler} 的管理器,负责创建任务 |
| 9 | * | 9 | * |
| 10 | + * 考虑到实现的简洁性,我们使用 jobHandlerName 作为唯一标识,即: | ||
| 11 | + * 1. Job 的 {@link JobDetail#getKey()} | ||
| 12 | + * 2. Trigger 的 {@link Trigger#getKey()} | ||
| 13 | + * | ||
| 14 | + * 另外,jobHandlerName 对应到 Spring Bean 的名字,直接调用 | ||
| 15 | + * | ||
| 10 | * @author 芋道源码 | 16 | * @author 芋道源码 |
| 11 | */ | 17 | */ |
| 12 | public class SchedulerManager { | 18 | public class SchedulerManager { |
| @@ -17,6 +23,15 @@ public class SchedulerManager { | @@ -17,6 +23,15 @@ public class SchedulerManager { | ||
| 17 | this.scheduler = scheduler; | 23 | this.scheduler = scheduler; |
| 18 | } | 24 | } |
| 19 | 25 | ||
| 26 | + /** | ||
| 27 | + * 添加 Job 到 Quartz 中 | ||
| 28 | + * | ||
| 29 | + * @param jobId 任务编号 | ||
| 30 | + * @param jobHandlerName 任务处理器的名字 | ||
| 31 | + * @param jobHandlerParam 任务处理器的参数 | ||
| 32 | + * @param cronExpression CRON 表达式 | ||
| 33 | + * @throws SchedulerException 添加异常 | ||
| 34 | + */ | ||
| 20 | public void addJob(Long jobId, String jobHandlerName, String jobHandlerParam, String cronExpression) | 35 | public void addJob(Long jobId, String jobHandlerName, String jobHandlerParam, String cronExpression) |
| 21 | throws SchedulerException { | 36 | throws SchedulerException { |
| 22 | // 创建 JobDetail 对象 | 37 | // 创建 JobDetail 对象 |
| @@ -30,6 +45,14 @@ public class SchedulerManager { | @@ -30,6 +45,14 @@ public class SchedulerManager { | ||
| 30 | scheduler.scheduleJob(jobDetail, trigger); | 45 | scheduler.scheduleJob(jobDetail, trigger); |
| 31 | } | 46 | } |
| 32 | 47 | ||
| 48 | + /** | ||
| 49 | + * 更新 Job 到 Quartz | ||
| 50 | + * | ||
| 51 | + * @param jobHandlerName 任务处理器的名字 | ||
| 52 | + * @param jobHandlerParam 任务处理器的参数 | ||
| 53 | + * @param cronExpression CRON 表达式 | ||
| 54 | + * @throws SchedulerException 更新异常 | ||
| 55 | + */ | ||
| 33 | public void updateJob(String jobHandlerName, String jobHandlerParam, String cronExpression) | 56 | public void updateJob(String jobHandlerName, String jobHandlerParam, String cronExpression) |
| 34 | throws SchedulerException { | 57 | throws SchedulerException { |
| 35 | // 创建新 Trigger 对象 | 58 | // 创建新 Trigger 对象 |
| @@ -38,19 +61,45 @@ public class SchedulerManager { | @@ -38,19 +61,45 @@ public class SchedulerManager { | ||
| 38 | scheduler.rescheduleJob(new TriggerKey(jobHandlerName), newTrigger); | 61 | scheduler.rescheduleJob(new TriggerKey(jobHandlerName), newTrigger); |
| 39 | } | 62 | } |
| 40 | 63 | ||
| 64 | + /** | ||
| 65 | + * 删除 Quartz 中的 Job | ||
| 66 | + * | ||
| 67 | + * @param jobHandlerName 任务处理器的名字 | ||
| 68 | + * @throws SchedulerException 删除异常 | ||
| 69 | + */ | ||
| 41 | public void deleteJob(String jobHandlerName) throws SchedulerException { | 70 | public void deleteJob(String jobHandlerName) throws SchedulerException { |
| 42 | scheduler.deleteJob(new JobKey(jobHandlerName)); | 71 | scheduler.deleteJob(new JobKey(jobHandlerName)); |
| 43 | } | 72 | } |
| 44 | 73 | ||
| 74 | + /** | ||
| 75 | + * 暂停 Quartz 中的 Job | ||
| 76 | + * | ||
| 77 | + * @param jobHandlerName 任务处理器的名字 | ||
| 78 | + * @throws SchedulerException 暂停异常 | ||
| 79 | + */ | ||
| 45 | public void pauseJob(String jobHandlerName) throws SchedulerException { | 80 | public void pauseJob(String jobHandlerName) throws SchedulerException { |
| 46 | scheduler.pauseJob(new JobKey(jobHandlerName)); | 81 | scheduler.pauseJob(new JobKey(jobHandlerName)); |
| 47 | } | 82 | } |
| 48 | 83 | ||
| 84 | + /** | ||
| 85 | + * 启动 Quartz 中的 Job | ||
| 86 | + * | ||
| 87 | + * @param jobHandlerName 任务处理器的名字 | ||
| 88 | + * @throws SchedulerException 启动异常 | ||
| 89 | + */ | ||
| 49 | public void resumeJob(String jobHandlerName) throws SchedulerException { | 90 | public void resumeJob(String jobHandlerName) throws SchedulerException { |
| 50 | scheduler.resumeJob(new JobKey(jobHandlerName)); | 91 | scheduler.resumeJob(new JobKey(jobHandlerName)); |
| 51 | scheduler.resumeTrigger(new TriggerKey(jobHandlerName)); | 92 | scheduler.resumeTrigger(new TriggerKey(jobHandlerName)); |
| 52 | } | 93 | } |
| 53 | 94 | ||
| 95 | + /** | ||
| 96 | + * 立即触发一次 Quartz 中的 Job | ||
| 97 | + * | ||
| 98 | + * @param jobId 任务编号 | ||
| 99 | + * @param jobHandlerName 任务处理器的名字 | ||
| 100 | + * @param jobHandlerParam 任务处理器的参数 | ||
| 101 | + * @throws SchedulerException 触发异常 | ||
| 102 | + */ | ||
| 54 | public void triggerJob(Long jobId, String jobHandlerName, String jobHandlerParam) | 103 | public void triggerJob(Long jobId, String jobHandlerName, String jobHandlerParam) |
| 55 | throws SchedulerException { | 104 | throws SchedulerException { |
| 56 | JobDataMap data = new JobDataMap(); | 105 | JobDataMap data = new JobDataMap(); |
src/main/java/cn/iocoder/dashboard/framework/quartz/core/util/CronUtils.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.framework.quartz.core.util; | ||
| 2 | + | ||
| 3 | +import org.quartz.CronExpression; | ||
| 4 | + | ||
| 5 | +/** | ||
| 6 | + * Quartz Cron 表达式的工具类 | ||
| 7 | + * | ||
| 8 | + * @author 芋道源码 | ||
| 9 | + */ | ||
| 10 | +public class CronUtils { | ||
| 11 | + | ||
| 12 | + /** | ||
| 13 | + * 校验 CRON 表达式是否有效 | ||
| 14 | + * | ||
| 15 | + * @param cronExpression CRON 表达式 | ||
| 16 | + * @return 是否有效 | ||
| 17 | + */ | ||
| 18 | + public static boolean isValid(String cronExpression) { | ||
| 19 | + return CronExpression.isValidExpression(cronExpression); | ||
| 20 | + } | ||
| 21 | + | ||
| 22 | +} |
src/main/java/cn/iocoder/dashboard/modules/infra/controller/job/InfJobController.java
| @@ -10,7 +10,9 @@ import cn.iocoder.dashboard.modules.infra.dal.dataobject.job.InfJobDO; | @@ -10,7 +10,9 @@ import cn.iocoder.dashboard.modules.infra.dal.dataobject.job.InfJobDO; | ||
| 10 | import cn.iocoder.dashboard.modules.infra.service.job.InfJobService; | 10 | import cn.iocoder.dashboard.modules.infra.service.job.InfJobService; |
| 11 | import io.swagger.annotations.Api; | 11 | import io.swagger.annotations.Api; |
| 12 | import io.swagger.annotations.ApiImplicitParam; | 12 | import io.swagger.annotations.ApiImplicitParam; |
| 13 | +import io.swagger.annotations.ApiImplicitParams; | ||
| 13 | import io.swagger.annotations.ApiOperation; | 14 | import io.swagger.annotations.ApiOperation; |
| 15 | +import org.quartz.SchedulerException; | ||
| 14 | import org.springframework.security.access.prepost.PreAuthorize; | 16 | import org.springframework.security.access.prepost.PreAuthorize; |
| 15 | import org.springframework.validation.annotation.Validated; | 17 | import org.springframework.validation.annotation.Validated; |
| 16 | import org.springframework.web.bind.annotation.*; | 18 | import org.springframework.web.bind.annotation.*; |
| @@ -37,30 +39,55 @@ public class InfJobController { | @@ -37,30 +39,55 @@ public class InfJobController { | ||
| 37 | @PostMapping("/create") | 39 | @PostMapping("/create") |
| 38 | @ApiOperation("创建定时任务") | 40 | @ApiOperation("创建定时任务") |
| 39 | @PreAuthorize("@ss.hasPermission('infra:job:create')") | 41 | @PreAuthorize("@ss.hasPermission('infra:job:create')") |
| 40 | - public CommonResult<Long> createJob(@Valid @RequestBody InfJobCreateReqVO createReqVO) { | 42 | + public CommonResult<Long> createJob(@Valid @RequestBody InfJobCreateReqVO createReqVO) |
| 43 | + throws SchedulerException { | ||
| 41 | return success(jobService.createJob(createReqVO)); | 44 | return success(jobService.createJob(createReqVO)); |
| 42 | } | 45 | } |
| 43 | 46 | ||
| 44 | @PutMapping("/update") | 47 | @PutMapping("/update") |
| 45 | @ApiOperation("更新定时任务") | 48 | @ApiOperation("更新定时任务") |
| 46 | @PreAuthorize("@ss.hasPermission('infra:job:update')") | 49 | @PreAuthorize("@ss.hasPermission('infra:job:update')") |
| 47 | - public CommonResult<Boolean> updateJob(@Valid @RequestBody InfJobUpdateReqVO updateReqVO) { | 50 | + public CommonResult<Boolean> updateJob(@Valid @RequestBody InfJobUpdateReqVO updateReqVO) |
| 51 | + throws SchedulerException { | ||
| 48 | jobService.updateJob(updateReqVO); | 52 | jobService.updateJob(updateReqVO); |
| 49 | return success(true); | 53 | return success(true); |
| 50 | } | 54 | } |
| 51 | 55 | ||
| 56 | + @PutMapping("/update-status") | ||
| 57 | + @ApiOperation("更新定时任务的状态") | ||
| 58 | + @ApiImplicitParams({ | ||
| 59 | + @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class), | ||
| 60 | + @ApiImplicitParam(name = "status", value = "状态", required = true, example = "1", dataTypeClass = Integer.class), | ||
| 61 | + }) | ||
| 62 | + @PreAuthorize("@ss.hasPermission('infra:job:update')") | ||
| 63 | + public CommonResult<Boolean> updateJobStatus(@RequestParam(value = "id") Long id, @RequestParam("status") Integer status) | ||
| 64 | + throws SchedulerException { | ||
| 65 | + jobService.updateJobStatus(id, status); | ||
| 66 | + return success(true); | ||
| 67 | + } | ||
| 68 | + | ||
| 52 | @DeleteMapping("/delete") | 69 | @DeleteMapping("/delete") |
| 53 | @ApiOperation("删除定时任务") | 70 | @ApiOperation("删除定时任务") |
| 54 | - @ApiImplicitParam(name = "id", value = "编号", required = true) | 71 | + @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) |
| 55 | @PreAuthorize("@ss.hasPermission('infra:job:delete')") | 72 | @PreAuthorize("@ss.hasPermission('infra:job:delete')") |
| 56 | - public CommonResult<Boolean> deleteJob(@RequestParam("id") Long id) { | 73 | + public CommonResult<Boolean> deleteJob(@RequestParam("id") Long id) |
| 74 | + throws SchedulerException { | ||
| 57 | jobService.deleteJob(id); | 75 | jobService.deleteJob(id); |
| 58 | return success(true); | 76 | return success(true); |
| 59 | } | 77 | } |
| 60 | 78 | ||
| 79 | + @PutMapping("/trigger") | ||
| 80 | + @ApiOperation("触发定时任务") | ||
| 81 | + @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) | ||
| 82 | + @PreAuthorize("@ss.hasPermission('infra:job:trigger')") | ||
| 83 | + public CommonResult<Boolean> triggerJob(@RequestParam("id") Long id) throws SchedulerException { | ||
| 84 | + jobService.triggerJob(id); | ||
| 85 | + return success(true); | ||
| 86 | + } | ||
| 87 | + | ||
| 61 | @GetMapping("/get") | 88 | @GetMapping("/get") |
| 62 | @ApiOperation("获得定时任务") | 89 | @ApiOperation("获得定时任务") |
| 63 | - @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class) | 90 | + @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) |
| 64 | @PreAuthorize("@ss.hasPermission('infra:job:query')") | 91 | @PreAuthorize("@ss.hasPermission('infra:job:query')") |
| 65 | public CommonResult<InfJobRespVO> getJob(@RequestParam("id") Long id) { | 92 | public CommonResult<InfJobRespVO> getJob(@RequestParam("id") Long id) { |
| 66 | InfJobDO job = jobService.getJob(id); | 93 | InfJobDO job = jobService.getJob(id); |
src/main/java/cn/iocoder/dashboard/modules/infra/dal/dataobject/job/InfJobDO.java
| @@ -2,13 +2,9 @@ package cn.iocoder.dashboard.modules.infra.dal.dataobject.job; | @@ -2,13 +2,9 @@ package cn.iocoder.dashboard.modules.infra.dal.dataobject.job; | ||
| 2 | 2 | ||
| 3 | import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; | 3 | import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; |
| 4 | import cn.iocoder.dashboard.modules.infra.enums.job.InfJobStatusEnum; | 4 | import cn.iocoder.dashboard.modules.infra.enums.job.InfJobStatusEnum; |
| 5 | -import com.baomidou.mybatisplus.annotation.FieldStrategy; | ||
| 6 | -import com.baomidou.mybatisplus.annotation.TableField; | ||
| 7 | import com.baomidou.mybatisplus.annotation.TableId; | 5 | import com.baomidou.mybatisplus.annotation.TableId; |
| 8 | import com.baomidou.mybatisplus.annotation.TableName; | 6 | import com.baomidou.mybatisplus.annotation.TableName; |
| 9 | -import lombok.Data; | ||
| 10 | -import lombok.EqualsAndHashCode; | ||
| 11 | -import lombok.ToString; | 7 | +import lombok.*; |
| 12 | 8 | ||
| 13 | import java.util.Date; | 9 | import java.util.Date; |
| 14 | 10 | ||
| @@ -21,6 +17,9 @@ import java.util.Date; | @@ -21,6 +17,9 @@ import java.util.Date; | ||
| 21 | @Data | 17 | @Data |
| 22 | @EqualsAndHashCode(callSuper = true) | 18 | @EqualsAndHashCode(callSuper = true) |
| 23 | @ToString(callSuper = true) | 19 | @ToString(callSuper = true) |
| 20 | +@Builder | ||
| 21 | +@NoArgsConstructor | ||
| 22 | +@AllArgsConstructor | ||
| 24 | public class InfJobDO extends BaseDO { | 23 | public class InfJobDO extends BaseDO { |
| 25 | 24 | ||
| 26 | /** | 25 | /** |
| @@ -45,7 +44,6 @@ public class InfJobDO extends BaseDO { | @@ -45,7 +44,6 @@ public class InfJobDO extends BaseDO { | ||
| 45 | /** | 44 | /** |
| 46 | * 处理器的参数 | 45 | * 处理器的参数 |
| 47 | */ | 46 | */ |
| 48 | - @TableField(updateStrategy = FieldStrategy.IGNORED) | ||
| 49 | private String handlerParam; | 47 | private String handlerParam; |
| 50 | 48 | ||
| 51 | // ========== 时间相关字段 ========== | 49 | // ========== 时间相关字段 ========== |
src/main/java/cn/iocoder/dashboard/modules/infra/dal/mysql/job/InfJobMapper.java
| @@ -18,6 +18,10 @@ import java.util.List; | @@ -18,6 +18,10 @@ import java.util.List; | ||
| 18 | @Mapper | 18 | @Mapper |
| 19 | public interface InfJobMapper extends BaseMapperX<InfJobDO> { | 19 | public interface InfJobMapper extends BaseMapperX<InfJobDO> { |
| 20 | 20 | ||
| 21 | + default InfJobDO selectByHandlerName(String handlerName) { | ||
| 22 | + return selectOne("handler_name", handlerName); | ||
| 23 | + } | ||
| 24 | + | ||
| 21 | default PageResult<InfJobDO> selectPage(InfJobPageReqVO reqVO) { | 25 | default PageResult<InfJobDO> selectPage(InfJobPageReqVO reqVO) { |
| 22 | return selectPage(reqVO, new QueryWrapperX<InfJobDO>() | 26 | return selectPage(reqVO, new QueryWrapperX<InfJobDO>() |
| 23 | .likeIfPresent("name", reqVO.getName()) | 27 | .likeIfPresent("name", reqVO.getName()) |
src/main/java/cn/iocoder/dashboard/modules/infra/enums/InfErrorCodeConstants.java
| @@ -17,5 +17,10 @@ public interface InfErrorCodeConstants { | @@ -17,5 +17,10 @@ public interface InfErrorCodeConstants { | ||
| 17 | 17 | ||
| 18 | // ========== 定时任务 1001001000 ========== | 18 | // ========== 定时任务 1001001000 ========== |
| 19 | ErrorCode JOB_NOT_EXISTS = new ErrorCode(1001001000, "定时任务不存在"); | 19 | ErrorCode JOB_NOT_EXISTS = new ErrorCode(1001001000, "定时任务不存在"); |
| 20 | + ErrorCode JOB_HANDLER_EXISTS = new ErrorCode(1001001001, "定时任务的处理器已经存在"); | ||
| 21 | + ErrorCode JOB_CHANGE_STATUS_INVALID = new ErrorCode(1001001002, "只允许修改为开启或者关闭状态"); | ||
| 22 | + ErrorCode JOB_CHANGE_STATUS_EQUALS = new ErrorCode(1001001003, "定时任务已经处于该状态,无需修改"); | ||
| 23 | + ErrorCode JOB_UPDATE_ONLY_NORMAL_STATUS = new ErrorCode(1001001004, "只有开启状态的任务,才可以修改"); | ||
| 24 | + ErrorCode JOB_CRON_EXPRESSION_VALID = new ErrorCode(1001001005, "CRON 表达式不正确"); | ||
| 20 | 25 | ||
| 21 | } | 26 | } |
src/main/java/cn/iocoder/dashboard/modules/infra/service/job/InfJobService.java
| @@ -6,6 +6,7 @@ import cn.iocoder.dashboard.modules.infra.controller.job.vo.job.InfJobExportReqV | @@ -6,6 +6,7 @@ import cn.iocoder.dashboard.modules.infra.controller.job.vo.job.InfJobExportReqV | ||
| 6 | import cn.iocoder.dashboard.modules.infra.controller.job.vo.job.InfJobPageReqVO; | 6 | import cn.iocoder.dashboard.modules.infra.controller.job.vo.job.InfJobPageReqVO; |
| 7 | import cn.iocoder.dashboard.modules.infra.controller.job.vo.job.InfJobUpdateReqVO; | 7 | import cn.iocoder.dashboard.modules.infra.controller.job.vo.job.InfJobUpdateReqVO; |
| 8 | import cn.iocoder.dashboard.modules.infra.dal.dataobject.job.InfJobDO; | 8 | import cn.iocoder.dashboard.modules.infra.dal.dataobject.job.InfJobDO; |
| 9 | +import org.quartz.SchedulerException; | ||
| 9 | 10 | ||
| 10 | import javax.validation.Valid; | 11 | import javax.validation.Valid; |
| 11 | import java.util.Collection; | 12 | import java.util.Collection; |
| @@ -24,21 +25,36 @@ public interface InfJobService { | @@ -24,21 +25,36 @@ public interface InfJobService { | ||
| 24 | * @param createReqVO 创建信息 | 25 | * @param createReqVO 创建信息 |
| 25 | * @return 编号 | 26 | * @return 编号 |
| 26 | */ | 27 | */ |
| 27 | - Long createJob(@Valid InfJobCreateReqVO createReqVO); | 28 | + Long createJob(@Valid InfJobCreateReqVO createReqVO) throws SchedulerException; |
| 28 | 29 | ||
| 29 | /** | 30 | /** |
| 30 | * 更新定时任务 | 31 | * 更新定时任务 |
| 31 | * | 32 | * |
| 32 | * @param updateReqVO 更新信息 | 33 | * @param updateReqVO 更新信息 |
| 33 | */ | 34 | */ |
| 34 | - void updateJob(@Valid InfJobUpdateReqVO updateReqVO); | 35 | + void updateJob(@Valid InfJobUpdateReqVO updateReqVO) throws SchedulerException; |
| 36 | + | ||
| 37 | + /** | ||
| 38 | + * 更新定时任务的状态 | ||
| 39 | + * | ||
| 40 | + * @param id 任务编号 | ||
| 41 | + * @param status 状态 | ||
| 42 | + */ | ||
| 43 | + void updateJobStatus(Long id, Integer status) throws SchedulerException; | ||
| 44 | + | ||
| 45 | + /** | ||
| 46 | + * 触发定时任务 | ||
| 47 | + * | ||
| 48 | + * @param id 任务编号 | ||
| 49 | + */ | ||
| 50 | + void triggerJob(Long id) throws SchedulerException; | ||
| 35 | 51 | ||
| 36 | /** | 52 | /** |
| 37 | * 删除定时任务 | 53 | * 删除定时任务 |
| 38 | * | 54 | * |
| 39 | * @param id 编号 | 55 | * @param id 编号 |
| 40 | */ | 56 | */ |
| 41 | - void deleteJob(Long id); | 57 | + void deleteJob(Long id) throws SchedulerException; |
| 42 | 58 | ||
| 43 | /** | 59 | /** |
| 44 | * 获得定时任务 | 60 | * 获得定时任务 |
src/main/java/cn/iocoder/dashboard/modules/infra/service/job/impl/InfJobServiceImpl.java
| 1 | package cn.iocoder.dashboard.modules.infra.service.job.impl; | 1 | package cn.iocoder.dashboard.modules.infra.service.job.impl; |
| 2 | 2 | ||
| 3 | -import cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil; | ||
| 4 | import cn.iocoder.dashboard.common.pojo.PageResult; | 3 | import cn.iocoder.dashboard.common.pojo.PageResult; |
| 4 | +import cn.iocoder.dashboard.framework.quartz.core.scheduler.SchedulerManager; | ||
| 5 | +import cn.iocoder.dashboard.framework.quartz.core.util.CronUtils; | ||
| 5 | import cn.iocoder.dashboard.modules.infra.controller.job.vo.job.InfJobCreateReqVO; | 6 | import cn.iocoder.dashboard.modules.infra.controller.job.vo.job.InfJobCreateReqVO; |
| 6 | import cn.iocoder.dashboard.modules.infra.controller.job.vo.job.InfJobExportReqVO; | 7 | import cn.iocoder.dashboard.modules.infra.controller.job.vo.job.InfJobExportReqVO; |
| 7 | import cn.iocoder.dashboard.modules.infra.controller.job.vo.job.InfJobPageReqVO; | 8 | import cn.iocoder.dashboard.modules.infra.controller.job.vo.job.InfJobPageReqVO; |
| @@ -9,15 +10,20 @@ import cn.iocoder.dashboard.modules.infra.controller.job.vo.job.InfJobUpdateReqV | @@ -9,15 +10,20 @@ import cn.iocoder.dashboard.modules.infra.controller.job.vo.job.InfJobUpdateReqV | ||
| 9 | import cn.iocoder.dashboard.modules.infra.convert.job.InfJobConvert; | 10 | import cn.iocoder.dashboard.modules.infra.convert.job.InfJobConvert; |
| 10 | import cn.iocoder.dashboard.modules.infra.dal.dataobject.job.InfJobDO; | 11 | import cn.iocoder.dashboard.modules.infra.dal.dataobject.job.InfJobDO; |
| 11 | import cn.iocoder.dashboard.modules.infra.dal.mysql.job.InfJobMapper; | 12 | import cn.iocoder.dashboard.modules.infra.dal.mysql.job.InfJobMapper; |
| 13 | +import cn.iocoder.dashboard.modules.infra.enums.job.InfJobStatusEnum; | ||
| 12 | import cn.iocoder.dashboard.modules.infra.service.job.InfJobService; | 14 | import cn.iocoder.dashboard.modules.infra.service.job.InfJobService; |
| 15 | +import org.quartz.SchedulerException; | ||
| 13 | import org.springframework.stereotype.Service; | 16 | import org.springframework.stereotype.Service; |
| 17 | +import org.springframework.transaction.annotation.Transactional; | ||
| 14 | import org.springframework.validation.annotation.Validated; | 18 | import org.springframework.validation.annotation.Validated; |
| 15 | 19 | ||
| 16 | import javax.annotation.Resource; | 20 | import javax.annotation.Resource; |
| 17 | import java.util.Collection; | 21 | import java.util.Collection; |
| 18 | import java.util.List; | 22 | import java.util.List; |
| 19 | 23 | ||
| 20 | -import static cn.iocoder.dashboard.modules.infra.enums.InfErrorCodeConstants.JOB_NOT_EXISTS; | 24 | +import static cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil.exception; |
| 25 | +import static cn.iocoder.dashboard.modules.infra.enums.InfErrorCodeConstants.*; | ||
| 26 | +import static cn.iocoder.dashboard.util.collection.CollectionUtils.containsAny; | ||
| 21 | 27 | ||
| 22 | /** | 28 | /** |
| 23 | * 定时任务 Service 实现类 | 29 | * 定时任务 Service 实现类 |
| @@ -31,41 +37,109 @@ public class InfJobServiceImpl implements InfJobService { | @@ -31,41 +37,109 @@ public class InfJobServiceImpl implements InfJobService { | ||
| 31 | @Resource | 37 | @Resource |
| 32 | private InfJobMapper jobMapper; | 38 | private InfJobMapper jobMapper; |
| 33 | 39 | ||
| 40 | + @Resource | ||
| 41 | + private SchedulerManager schedulerManager; | ||
| 42 | + | ||
| 34 | @Override | 43 | @Override |
| 35 | - public Long createJob(InfJobCreateReqVO createReqVO) { | 44 | + @Transactional |
| 45 | + public Long createJob(InfJobCreateReqVO createReqVO) throws SchedulerException { | ||
| 46 | + validateCronExpression(createReqVO.getCronExpression()); | ||
| 47 | + // 校验唯一性 | ||
| 48 | + if (jobMapper.selectByHandlerName(createReqVO.getHandlerName()) != null) { | ||
| 49 | + throw exception(JOB_HANDLER_EXISTS); | ||
| 50 | + } | ||
| 36 | // 插入 | 51 | // 插入 |
| 37 | InfJobDO job = InfJobConvert.INSTANCE.convert(createReqVO); | 52 | InfJobDO job = InfJobConvert.INSTANCE.convert(createReqVO); |
| 38 | - if (job.getMonitorTimeout() == null) { | ||
| 39 | - job.setMonitorTimeout(0); | ||
| 40 | - } | 53 | + job.setStatus(InfJobStatusEnum.INIT.getStatus()); |
| 54 | + fillJobMonitorTimeoutEmpty(job); | ||
| 41 | jobMapper.insert(job); | 55 | jobMapper.insert(job); |
| 56 | + | ||
| 57 | + // 添加 Job 到 Quartz 中 | ||
| 58 | + schedulerManager.addJob(job.getId(), job.getHandlerName(), job.getHandlerParam(), job.getCronExpression()); | ||
| 59 | + // 更新 | ||
| 60 | + InfJobDO updateObj = InfJobDO.builder().id(job.getId()).status(InfJobStatusEnum.NORMAL.getStatus()).build(); | ||
| 61 | + jobMapper.updateById(updateObj); | ||
| 62 | + | ||
| 42 | // 返回 | 63 | // 返回 |
| 43 | return job.getId(); | 64 | return job.getId(); |
| 44 | } | 65 | } |
| 45 | 66 | ||
| 46 | @Override | 67 | @Override |
| 47 | - public void updateJob(InfJobUpdateReqVO updateReqVO) { | 68 | + @Transactional |
| 69 | + public void updateJob(InfJobUpdateReqVO updateReqVO) throws SchedulerException { | ||
| 70 | + validateCronExpression(updateReqVO.getCronExpression()); | ||
| 48 | // 校验存在 | 71 | // 校验存在 |
| 49 | - this.validateJobExists(updateReqVO.getId()); | 72 | + InfJobDO job = this.validateJobExists(updateReqVO.getId()); |
| 73 | + // 只有开启状态,才可以修改.原因是,如果出暂停状态,修改 Quartz Job 时,会导致任务又开始执行 | ||
| 74 | + if (!job.getStatus().equals(InfJobStatusEnum.NORMAL.getStatus())) { | ||
| 75 | + throw exception(JOB_UPDATE_ONLY_NORMAL_STATUS); | ||
| 76 | + } | ||
| 50 | // 更新 | 77 | // 更新 |
| 51 | InfJobDO updateObj = InfJobConvert.INSTANCE.convert(updateReqVO); | 78 | InfJobDO updateObj = InfJobConvert.INSTANCE.convert(updateReqVO); |
| 52 | - if (updateObj.getMonitorTimeout() == null) { | ||
| 53 | - updateObj.setMonitorTimeout(0); | 79 | + fillJobMonitorTimeoutEmpty(updateObj); |
| 80 | + jobMapper.updateById(updateObj); | ||
| 81 | + | ||
| 82 | + // 更新 Job 到 Quartz 中 | ||
| 83 | + schedulerManager.updateJob(job.getHandlerName(), updateReqVO.getHandlerParam(), updateReqVO.getCronExpression()); | ||
| 84 | + } | ||
| 85 | + | ||
| 86 | + @Override | ||
| 87 | + @Transactional | ||
| 88 | + public void updateJobStatus(Long id, Integer status) throws SchedulerException { | ||
| 89 | + // 校验 status | ||
| 90 | + if (!containsAny(status, InfJobStatusEnum.NORMAL.getStatus(), InfJobStatusEnum.STOP.getStatus())) { | ||
| 91 | + throw exception(JOB_CHANGE_STATUS_INVALID); | ||
| 92 | + } | ||
| 93 | + // 校验存在 | ||
| 94 | + InfJobDO job = this.validateJobExists(id); | ||
| 95 | + // 校验是否已经为当前状态 | ||
| 96 | + if (job.getStatus().equals(status)) { | ||
| 97 | + throw exception(JOB_CHANGE_STATUS_EQUALS); | ||
| 54 | } | 98 | } |
| 99 | + // 更新 Job 状态 | ||
| 100 | + InfJobDO updateObj = InfJobDO.builder().id(id).status(status).build(); | ||
| 55 | jobMapper.updateById(updateObj); | 101 | jobMapper.updateById(updateObj); |
| 102 | + | ||
| 103 | + // 更新状态 Job 到 Quartz 中 | ||
| 104 | + if (InfJobStatusEnum.NORMAL.getStatus().equals(status)) { // 开启 | ||
| 105 | + schedulerManager.resumeJob(job.getHandlerName()); | ||
| 106 | + } else { // 暂停 | ||
| 107 | + schedulerManager.pauseJob(job.getHandlerName()); | ||
| 108 | + } | ||
| 56 | } | 109 | } |
| 57 | 110 | ||
| 58 | @Override | 111 | @Override |
| 59 | - public void deleteJob(Long id) { | 112 | + public void triggerJob(Long id) throws SchedulerException { |
| 60 | // 校验存在 | 113 | // 校验存在 |
| 61 | - this.validateJobExists(id); | 114 | + InfJobDO job = this.validateJobExists(id); |
| 115 | + | ||
| 116 | + // 触发 Quartz 中的 Job | ||
| 117 | + schedulerManager.triggerJob(job.getId(), job.getHandlerName(), job.getHandlerParam()); | ||
| 118 | + } | ||
| 119 | + | ||
| 120 | + @Override | ||
| 121 | + @Transactional | ||
| 122 | + public void deleteJob(Long id) throws SchedulerException { | ||
| 123 | + // 校验存在 | ||
| 124 | + InfJobDO job = this.validateJobExists(id); | ||
| 62 | // 更新 | 125 | // 更新 |
| 63 | jobMapper.deleteById(id); | 126 | jobMapper.deleteById(id); |
| 127 | + | ||
| 128 | + // 删除 Job 到 Quartz 中 | ||
| 129 | + schedulerManager.deleteJob(job.getHandlerName()); | ||
| 64 | } | 130 | } |
| 65 | 131 | ||
| 66 | - private void validateJobExists(Long id) { | ||
| 67 | - if (jobMapper.selectById(id) == null) { | ||
| 68 | - throw ServiceExceptionUtil.exception(JOB_NOT_EXISTS); | 132 | + private InfJobDO validateJobExists(Long id) { |
| 133 | + InfJobDO job = jobMapper.selectById(id); | ||
| 134 | + if (job == null) { | ||
| 135 | + throw exception(JOB_NOT_EXISTS); | ||
| 136 | + } | ||
| 137 | + return job; | ||
| 138 | + } | ||
| 139 | + | ||
| 140 | + private void validateCronExpression(String cronExpression) { | ||
| 141 | + if (CronUtils.isValid(cronExpression)) { | ||
| 142 | + throw exception(JOB_CRON_EXPRESSION_VALID); | ||
| 69 | } | 143 | } |
| 70 | } | 144 | } |
| 71 | 145 | ||
| @@ -89,4 +163,10 @@ public class InfJobServiceImpl implements InfJobService { | @@ -89,4 +163,10 @@ public class InfJobServiceImpl implements InfJobService { | ||
| 89 | return jobMapper.selectList(exportReqVO); | 163 | return jobMapper.selectList(exportReqVO); |
| 90 | } | 164 | } |
| 91 | 165 | ||
| 166 | + private static void fillJobMonitorTimeoutEmpty(InfJobDO job) { | ||
| 167 | + if (job.getMonitorTimeout() == null) { | ||
| 168 | + job.setMonitorTimeout(0); | ||
| 169 | + } | ||
| 170 | + } | ||
| 171 | + | ||
| 92 | } | 172 | } |
src/main/java/cn/iocoder/dashboard/util/collection/CollectionUtils.java
| @@ -15,6 +15,10 @@ import java.util.stream.Collectors; | @@ -15,6 +15,10 @@ import java.util.stream.Collectors; | ||
| 15 | */ | 15 | */ |
| 16 | public class CollectionUtils { | 16 | public class CollectionUtils { |
| 17 | 17 | ||
| 18 | + public static boolean containsAny(Object source, Object... targets) { | ||
| 19 | + return Arrays.asList(targets).contains(source); | ||
| 20 | + } | ||
| 21 | + | ||
| 18 | public static boolean isAnyEmpty(Collection<?>... collections) { | 22 | public static boolean isAnyEmpty(Collection<?>... collections) { |
| 19 | return Arrays.stream(collections).anyMatch(CollectionUtil::isEmpty); | 23 | return Arrays.stream(collections).anyMatch(CollectionUtil::isEmpty); |
| 20 | } | 24 | } |
src/main/resources/codegen/java/controller/controller.vm
| @@ -63,7 +63,7 @@ public class ${table.className}Controller { | @@ -63,7 +63,7 @@ public class ${table.className}Controller { | ||
| 63 | 63 | ||
| 64 | @GetMapping("/get") | 64 | @GetMapping("/get") |
| 65 | @ApiOperation("获得${table.classComment}") | 65 | @ApiOperation("获得${table.classComment}") |
| 66 | - @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = ${primaryColumn.javaType}.class) | 66 | + @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = ${primaryColumn.javaType}.class) |
| 67 | @PreAuthorize("@ss.hasPermission('${permissionPrefix}:query')") | 67 | @PreAuthorize("@ss.hasPermission('${permissionPrefix}:query')") |
| 68 | public CommonResult<${table.className}RespVO> get${simpleClassName}(@RequestParam("id") ${primaryColumn.javaType} id) { | 68 | public CommonResult<${table.className}RespVO> get${simpleClassName}(@RequestParam("id") ${primaryColumn.javaType} id) { |
| 69 | ${table.className}DO ${classNameVar} = ${classNameVar}Service.get${simpleClassName}(id); | 69 | ${table.className}DO ${classNameVar} = ${classNameVar}Service.get${simpleClassName}(id); |
| @@ -72,7 +72,7 @@ public class ${table.className}Controller { | @@ -72,7 +72,7 @@ public class ${table.className}Controller { | ||
| 72 | 72 | ||
| 73 | @GetMapping("/list") | 73 | @GetMapping("/list") |
| 74 | @ApiOperation("获得${table.classComment}列表") | 74 | @ApiOperation("获得${table.classComment}列表") |
| 75 | - @ApiImplicitParam(name = "ids", value = "编号列表", required = true, dataTypeClass = List.class) | 75 | + @ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class) |
| 76 | @PreAuthorize("@ss.hasPermission('${permissionPrefix}:query')") | 76 | @PreAuthorize("@ss.hasPermission('${permissionPrefix}:query')") |
| 77 | public CommonResult<List<${table.className}RespVO>> get${simpleClassName}List(@RequestParam("ids") Collection<${primaryColumn.javaType}> ids) { | 77 | public CommonResult<List<${table.className}RespVO>> get${simpleClassName}List(@RequestParam("ids") Collection<${primaryColumn.javaType}> ids) { |
| 78 | List<${table.className}DO> list = ${classNameVar}Service.get${simpleClassName}List(ids); | 78 | List<${table.className}DO> list = ${classNameVar}Service.get${simpleClassName}List(ids); |