diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskCycleService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskCycleService.java new file mode 100644 index 0000000..82daa2b --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskCycleService.java @@ -0,0 +1,79 @@ +package cn.estsh.i3plus.core.api.iservice.busi; + +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.platform.bean.SysRefTaskCyclePlan; +import cn.estsh.i3plus.pojo.platform.bean.SysTaskCycle; +import io.swagger.annotations.ApiOperation; + +import java.util.List; + +/** + * @Description : 任务周期业务接口 + * @Reference : + * @Author : wei.peng + * @Date : 2018-10-22 16:58:43.771 + * @Modify : + **/ +public interface ISysTaskCycleService { + + /** + * 修改任务周期信息 + * @param sysTaskCycle + */ + @ApiOperation(value = "修改任务周期",notes = "修改任务周期") + void updateSysTaskCycle(SysTaskCycle sysTaskCycle); + + /** + * 根据id删除任务周期 + * @param id + */ + @ApiOperation(value = "删除任务周期",notes = "根据id删除任务周期") + void deleteSysTaskCycleById(Long id); + + /** + * 新增任务周期 + * @param sysTaskCycle + * @return + */ + @ApiOperation(value = "新增任务周期",notes = "新增任务周期") + SysTaskCycle insertSysTaskCycle(SysTaskCycle sysTaskCycle); + + /** + * 查询所有任务周期信息 + * @return + */ + @ApiOperation(value = "查询所有任务周期信息",notes = "查询所有任务周期信息") + List listSysTaskCycle(); + + /** + * 根据ID 查询任务周期 + * @param id + * @return + */ + @ApiOperation(value = "根据ID 查询任务周期",notes = "根据ID 查询任务周期") + SysTaskCycle getSysTaskCycleById(Long id); + + /** + * 任务周期查询,分页,排序 + * @param sysTaskCycle + * @param pager + * @return + */ + @ApiOperation(value = "任务周期查询,分页,排序",notes = "任务周期查询,分页,排序") + ListPager querySysTaskCycleByPager(SysTaskCycle sysTaskCycle, Pager pager); + + /** + * 任务周期批量删除 + * @param ids + */ + @ApiOperation(value = "根据id批量删除任务周期",notes = "根据id批量删除任务周期") + void deleteSysTaskCycleByIds(Long[] ids); + + /** + * 查询任务周期所关联的任务计划信息 + * @return + */ + @ApiOperation(value = "根据任务周期id查询相关任务计划信息",notes = "根据任务周期id查询相关任务计划信息") + List findRefTaskCyclePlanByCycleId(Long cycleId); +} diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskPlanService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskPlanService.java new file mode 100644 index 0000000..1fe4a4d --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskPlanService.java @@ -0,0 +1,110 @@ +package cn.estsh.i3plus.core.api.iservice.busi; + +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.platform.bean.SessionUser; +import cn.estsh.i3plus.pojo.platform.bean.SysTask; +import cn.estsh.i3plus.pojo.platform.bean.SysTaskPlan; +import cn.estsh.i3plus.pojo.platform.bean.SysTaskCycle; +import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime; +import io.swagger.annotations.ApiOperation; + +import java.util.List; + +/** + * @Description : 任务计划业务接口 + * @Reference : + * @Author : yunhao + * @Date : 2018-12-26 22:08 + * @Modify : + **/ +public interface ISysTaskPlanService { + + /** + * 新增任务计划 + * @param sysTaskPlan 任务计划 + * @param sysTaskCycle 任务周期 + * @param sysTask 任务 + * @return + */ + @ApiOperation(value = "新增任务计划",notes = "新增任务计划") + SysTaskPlan insertSysTaskPlan(SysTaskPlan sysTaskPlan, SysTaskCycle sysTaskCycle, SysTask sysTask); + + /** + * 修改任务计划 + * @param sysTaskPlan 任务计划 + * @param sysTaskCycle 任务周期 + */ + @ApiOperation(value = "修改任务计划",notes = "修改任务计划") + void updateSysTaskPlan(SysTaskPlan sysTaskPlan, SysTaskCycle sysTaskCycle); + + /** + * 修改任务状态 + * @param id 任务ID + * @param status 任务状态 + * @param user 当前会话用户 + */ + @ApiOperation(value = "修改任务计划状态",notes = "修改任务计划状态") + void updateSysTaskPlanStatus(Long id, int status, SessionUser user); + + /** + * 根据根据id删除数据 + * @param id + */ + @ApiOperation(value = "根据根据id删除数据") + void deleteSysTaskPlanById(Long id); + + /** + * 查询所有任务计划 + * @return + */ + @ApiOperation(value = "查询所有任务计划") + List listSysTaskPlan(); + + /** + * 根据id查询任务计划数据 + * @param id + * @return + */ + @ApiOperation(value = "根据id查询任务计划数据",notes = "根据id查询任务计划数据") + SysTaskPlan getSysTaskPlanById(Long id); + + /** + * 任务计划复杂查询,分页,排序 + * @param sysTaskPlan + * @param pager + * @return + */ + @ApiOperation(value = "任务计划复杂查询,分页,排序",notes = "任务计划复杂查询,分页,排序") + ListPager querySysTaskPlanByPager(SysTaskPlan sysTaskPlan, Pager pager); + + /** + * 立即执行任务计划 + * @param sysTaskPlan + */ + @ApiOperation(value = "立即执行任务计划",notes = "立即执行任务计划") + void executeSysTaskPlan(SysTaskPlan sysTaskPlan); + + /** + * 根据任务计划名称与组名称查询 + * @param name + * @param groupName + * @return + */ + @ApiOperation(value = "查询任务计划",notes = "根据任务计划名称与组名称查询") + SysTaskPlan getSysTaskPlanByNameAndGroup(String name, String groupName); + + /** + * 添加任务计划执行日志 + * @param sysLogTaskTime + */ + @ApiOperation(value = "添加任务计划执行日志",notes = "添加任务计划执行日志") + void logInsertSysLogTaskTime(SysLogTaskTime sysLogTaskTime); + + /** + * 修改任务计划信息,不会更新quartz数据库 + * @param sysTaskPlan + */ + @ApiOperation(value = "修改任务计划信息",notes = "修改任务计划信息,不会更新quartz数据库") + void updateSysTaskPlan(SysTaskPlan sysTaskPlan); +} diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskService.java new file mode 100644 index 0000000..0bd1681 --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskService.java @@ -0,0 +1,73 @@ +package cn.estsh.i3plus.core.api.iservice.busi; + +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.platform.bean.SysTask; +import io.swagger.annotations.ApiOperation; +import org.springframework.data.domain.Page; + +import java.util.List; + +/** + * @Description : 任务管理业务接口 + * @Reference : + * @Author : yunhao + * @CreateDate : 2018-12-26 21:17 + * @Modify: + **/ +public interface ISysTaskService { + + /** + * 添加任务 + * @param sysTask + * @return + */ + @ApiOperation(value = "添加任务",notes = "添加任务") + SysTask insertSysTask(SysTask sysTask); + + /** + * 修改任务 + * @param sysTask + * @return + */ + @ApiOperation(value = "修改任务信息",notes = "修改任务信息") + void updateSysTask(SysTask sysTask); + + /** + * 查询所有任务 + * @return + */ + @ApiOperation(value = "查询所有任务",notes = "查询所有任务") + List listSysTask(); + + /** + * 根据id查询任务信息 + * @param id + * @return + */ + @ApiOperation(value = "根据id查询任务信息",notes = "根据id查询任务信息") + SysTask getSysTaskById(Long id); + + /** + * 根据id删除任务 + * @param id + */ + @ApiOperation(value = "删除任务",notes = "根据id删除任务") + void deleteSysTaskById(Long id); + + /** + * 根据id批量删除任务 + * @param ids + */ + @ApiOperation(value = "删除任务",notes = "根据id批量删除任务") + void deleteSysTaskByIds(Long[] ids); + + /** + * 任务管理复杂查询,分页,排序 + * @param sysTask + * @param pager + * @return + */ + @ApiOperation(value = "任务管理复杂查询,分页,排序",notes = "任务管理复杂查询,分页,排序") + ListPager querySysTaskByPager(SysTask sysTask, Pager pager); +} diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeExpressionService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeExpressionService.java deleted file mode 100644 index 4a6628d..0000000 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeExpressionService.java +++ /dev/null @@ -1,79 +0,0 @@ -package cn.estsh.i3plus.core.api.iservice.busi; - -import cn.estsh.i3plus.pojo.base.bean.ListPager; -import cn.estsh.i3plus.pojo.base.common.Pager; -import cn.estsh.i3plus.pojo.platform.bean.SysRefExpressionTrigger; -import cn.estsh.i3plus.pojo.platform.bean.SysTaskTimeExpression; -import io.swagger.annotations.ApiOperation; - -import java.util.List; - -/** - * @Description : 定时任务表达式业务接口 - * @Reference : - * @Author : wei.peng - * @Date : 2018-10-22 16:58:43.771 - * @Modify : - **/ -public interface ISysTaskTimeExpressionService { - - /** - * 修改数据 - * @param taskTimeExpression - */ - @ApiOperation(value = "修改数据") - void updateSysTaskTimeExpression(SysTaskTimeExpression taskTimeExpression); - - /** - * 根据id删除数据 - * @param id - */ - @ApiOperation(value = "根据id删除数据") - void deleteSysTaskTimeExpressionById(Long id); - - /** - * 新增数据 - * @param taskTimeExpression - * @return - */ - @ApiOperation(value = "新增数据") - SysTaskTimeExpression insertSysTaskTimeExpression(SysTaskTimeExpression taskTimeExpression); - - /** - * 查询所有数据 - * @return - */ - @ApiOperation(value = "查询所有数据") - List listSysTaskTimeExpression(); - - /** - * 根据ID 查询任务表达式 - * @param id - * @return - */ - @ApiOperation(value = "根据ID 查询任务表达式") - SysTaskTimeExpression getSysTaskTimeExpressionById(Long id); - - /** - * 任务表达式查询,分页,排序 - * @param taskTimeExpression - * @param pager - * @return - */ - @ApiOperation(value = "任务表达式查询,分页,排序") - ListPager querySysTaskTimeExpressionByPager(SysTaskTimeExpression taskTimeExpression, Pager pager); - - /** - * 任务表达式批量删除 - * @param ids - */ - @ApiOperation(value = "任务表达式批量删除") - void deleteSysTaskTimeExpressionByIds(Long[] ids); - - /** - * 查询表达式所关联的定时任务信息 - * @return - */ - @ApiOperation(value = "根据表达式id查询表达式关联任务信息",notes = "根据表达式id查询表达式关联任务信息") - List findRefExpressionTriggerList(Long id); -} diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeRecordingService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeRecordingService.java index 773cc4e..c48fae4 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeRecordingService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeRecordingService.java @@ -18,14 +18,14 @@ public interface ISysTaskTimeRecordingService { * 修改数据 * @param taskTimeRecording */ - @ApiOperation(value = "更新任务表达式信息") + @ApiOperation(value = "更新任务周期信息") void updateSysTaskTimeRecording(SysLogTaskTime taskTimeRecording); /** * 根据Key 删除数据 * @param id */ - @ApiOperation(value = "删除任务表达式信息",notes = "根据 ID 删除任务表达式信息") + @ApiOperation(value = "删除任务周期信息",notes = "根据 ID 删除任务周期信息") void deleteSysTaskTimeRecordingById(Long id); /** @@ -33,14 +33,14 @@ public interface ISysTaskTimeRecordingService { * @param taskTimeRecording * @return */ - @ApiOperation(value = "新增任务表达式信息") + @ApiOperation(value = "新增任务周期信息") SysLogTaskTime insertSysTaskTimeRecording(SysLogTaskTime taskTimeRecording); /** * 查询所有数据 * @return */ - @ApiOperation(value = "查询任务表达式信息",notes = "查询所有任务表达式信息") + @ApiOperation(value = "查询任务周期信息",notes = "查询所有任务周期信息") List findSysTaskTimeRecordingAll(); /** @@ -48,6 +48,6 @@ public interface ISysTaskTimeRecordingService { * @param id * @return */ - @ApiOperation(value = "查询任务表达式信息",notes = "查询 ID 任务表达式信息") + @ApiOperation(value = "查询任务周期信息",notes = "查询 ID 任务周期信息") SysLogTaskTime getSysTaskTimeRecordingById(Long id); } diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeService.java deleted file mode 100644 index ad8ee60..0000000 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeService.java +++ /dev/null @@ -1,130 +0,0 @@ -package cn.estsh.i3plus.core.api.iservice.busi; - -import cn.estsh.i3plus.pojo.base.bean.ListPager; -import cn.estsh.i3plus.pojo.base.common.Pager; -import cn.estsh.i3plus.pojo.platform.bean.SessionUser; -import cn.estsh.i3plus.pojo.platform.bean.SysTaskTime; -import cn.estsh.i3plus.pojo.platform.bean.SysTaskTimeExpression; -import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime; -import io.swagger.annotations.ApiOperation; - -import java.util.List; - -/** - * @Description : 定时任务业务接口 - * @Reference : - * @Author : wei.peng - * @Date : 2018-10-22 16:58:43.968 - * @Modify : - **/ -public interface ISysTaskTimeService { - - /** - * 新增定时任务 - * @param taskTime - * @return - */ - @ApiOperation(value = "新增定时任务") - SysTaskTime insertSysTaskTime(SysTaskTime taskTime, SysTaskTimeExpression taskTimeExpression); - - /** - * 修改定时任务 - * @param taskTime - */ - @ApiOperation(value = "修改定时任务") - void updateSysTaskTime(SysTaskTime taskTime, SysTaskTimeExpression taskTimeExpression); - - /** - * 修改任务状态 - * @param id 任务ID - * @param status 任务状态 - * @param user 当前会话用户 - */ - @ApiOperation(value = "修改任务状态") - void updateSysTaskTimeStatus(Long id, int status, SessionUser user); - - /** - * 根据根据id删除数据 - * @param id - */ - @ApiOperation(value = "根据根据id删除数据") - void deleteSysTaskTimeById(Long id); - - /** - * 查询所有数据 - * @return - */ - @ApiOperation(value = "查询所有数据") - List listSysTaskTime(); - - /** - * 根据id 数据 - * @param id - * @return - */ - @ApiOperation(value = "根据id 数据") - SysTaskTime getSysTaskTimeById(Long id); - - /** - * 定时任务复制查询,分页,排序 - * @param taskTime - * @param pager - * @return - */ - @ApiOperation(value = "定时任务复制查询,分页,排序") - ListPager querySysTaskTimeByPager(SysTaskTime taskTime, Pager pager); - - /** - * 根据id批量删除定时任务 - * @param ids - */ - @ApiOperation(value = "根据id批量删除定时任务") - void deleteSysTaskTimeByIds(Long[] ids); - - /** - * 批量修改定时任务状态 - * @param ids - * - */ - @ApiOperation(value = "批量修改定时任务状态") - void updateSysTaskTimeStatusByIds(Long[] ids, Integer status); - - /** - * 修改最后时间 - * @param lastDate - * @param name - * @param groupName - */ - @ApiOperation(value = "修改最后时间") - void doSysTaskTimeLastDateByNameAndGroupName(String lastDate,String name,String groupName); - - /** - * 立即执行 - * @param id - */ - @ApiOperation(value = "立即执行") - void executeSysTaskTimeById(Long id); - - /** - * 根据定时任务名称与组名称查询 - * @param name - * @param groupName - * @return - */ - @ApiOperation(value = "查询定时任务",notes = "根据定时任务名称与组名称查询") - SysTaskTime getSysTaskTimeByNameAndGroup(String name,String groupName); - - /** - * 添加定时任务执行日志 - * @param sysLogTaskTime - */ - @ApiOperation(value = "添加定时任务执行日志",notes = "添加定时任务执行日志") - void logInsertSysLogTaskTime(SysLogTaskTime sysLogTaskTime); - - /** - * 修改定时任务信息,不会更新quartz数据库 - * @param sysTaskTime - */ - @ApiOperation(value = "修改定时任务信息",notes = "修改定时任务信息,不会更新quartz数据库") - void updateSysTaskTime(SysTaskTime sysTaskTime); -} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoRedisMqController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoRedisMqController.java index 66c918e..2001c43 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoRedisMqController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoRedisMqController.java @@ -2,8 +2,11 @@ package cn.estsh.i3plus.core.apiservice.controller; import cn.estsh.i3plus.core.apiservice.mq.I3CoreQueueConfig; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; +import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SessionUser; import cn.estsh.impp.framework.base.controller.CoreBaseController; +import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.i3plus.pojo.mes.MachineFactory; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; @@ -233,4 +236,40 @@ public class DemoRedisMqController extends CoreBaseController{ return new ResultBean(true,"操作成功 : " + locale.getLanguage() + " " + locale.getCountry()); } + + @Resource(name="redisSession") + private ImppRedis redisSession; + + @GetMapping(value="/set-redis") + @ApiOperation(value="setredis") + public ResultBean setRedis(String key,String value) { + //redisSession.putObject(key,value); + //redisCore.putObject(key,value); + + + ResultBean rs = new ResultBean(true,"yes"); + rs.setPager(new Pager(100)); + redisSession.putObject("rs",rs); + redisCore.putObject("rs",rs); + + return new ResultBean(true,"操作成功 : " + key + " : " + value); + } + + @GetMapping(value="/get-redis") + @ApiOperation(value="getredis") + public ResultBean getRedis(String key) { + Object d1 = redisSession.getObject(key); + System.out.println("redisSession-d1==" + d1); + Object d2 = redisCore.getObject(key); + + if(d1 != null) { + SessionUser sessionUser = AuthUtil.getSessionUser(); + System.out.println(sessionUser.toString()); + } + + System.out.println("redisCore-d2==" + d2); + System.out.println(d1 == null?"null":d1.toString()); + System.out.println(d2 == null?"null":d2.toString()); + return new ResultBean(true,"操作成功 : " + d1 + " : " + d2); + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskController.java new file mode 100644 index 0000000..0b11c11 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskController.java @@ -0,0 +1,150 @@ +package cn.estsh.i3plus.core.apiservice.controller.busi; + +import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskService; +import cn.estsh.i3plus.platform.common.tool.StringTool; +import cn.estsh.i3plus.platform.common.util.PlatformConstWords; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SysTask; +import cn.estsh.impp.framework.base.controller.CoreBaseController; +import cn.estsh.impp.framework.boot.exception.ImppBusiException; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; +import cn.estsh.impp.framework.boot.util.ResultBean; +import cn.estsh.impp.framework.boot.util.ValidatorBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @Description : 任务管理服务 + * @Reference : + * @Author : yunhao + * @CreateDate : 2018-12-27 15:13 + * @Modify: + **/ +@RestController +@Api(description = "任务管理服务") +@RequestMapping(PlatformConstWords.BASE_URL + "/task") +public class SysTaskController extends CoreBaseController { + + public static final Logger LOGGER = LoggerFactory.getLogger(SysTaskController.class); + + @Autowired + private ISysTaskService sysTaskService; + + @PostMapping(value = "/insert") + @ApiOperation(value = "添加任务", notes = "添加任务") + public ResultBean insertSysTask(SysTask sysTask) { + try { + // 数据校验 + ValidatorBean.beginValid(sysTask) + .notNull("name", sysTask.getName()) + .notNull("taskPackage", sysTask.getTaskPackage()) + .notNull("taskClass", sysTask.getTaskClass()); + + sysTaskService.insertSysTask(sysTask); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(sysTask); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改任务", notes = "修改任务") + public ResultBean updateSysTask(SysTask sysTask) { + try { + // 数据校验 + ValidatorBean.beginValid(sysTask) + .notNull("name", sysTask.getName()) + .notNull("taskPackage", sysTask.getTaskPackage()) + .notNull("taskClass", sysTask.getTaskClass()); + + sysTaskService.updateSysTask(sysTask); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @DeleteMapping(value = "/delete/{id}") + @ApiOperation(value = "删除任务", notes = "删除任务") + public ResultBean deleteSysTaskById(@PathVariable("id") String idStr) { + try { + // 数据校验 + ValidatorBean.checkNotNull(idStr, "id不能为空"); + if (sysTaskService.getSysTaskById(Long.parseLong(idStr)) == null) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) + .setErrorDetail("任务不存在") + .setErrorSolution("请重新选择") + .build(); + } + + sysTaskService.deleteSysTaskById(Long.parseLong(idStr)); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "查询所有任务", notes = "查询所有任务") + public ResultBean listSysTask() { + try { + List sysTaskList = sysTaskService.listSysTask(); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(sysTaskList); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @GetMapping(value = "/query") + @ApiOperation(value = "任务复杂查询", notes = "任务复杂查询,分页,排序") + public ResultBean querySysTaskByPager(SysTask sysTask, Pager pager) { + try { + ListPager sysTaskList = sysTaskService.querySysTaskByPager(sysTask, pager); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setListPager(sysTaskList); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @DeleteMapping(value = "/batch-delete") + @ApiOperation(value = "根据id批量删除任务", notes = "根据id批量删除任务") + public ResultBean deleteSysTaskByIds(String[] idsStr) { + try { + if (idsStr == null || idsStr.length == 0) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("请选择需要删除的资源。") + .build(); + } + sysTaskService.deleteSysTaskByIds(StringTool.getArrayLong(idsStr)); + return ResultBean.success("删除成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskTimeExpressionController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskCycleController.java similarity index 50% rename from modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskTimeExpressionController.java rename to modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskCycleController.java index 40013cd..b29702d 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskTimeExpressionController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskCycleController.java @@ -1,16 +1,16 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; -import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskTimeExpressionService; -import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskTimeService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskCycleService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskPlanService; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; -import cn.estsh.i3plus.pojo.platform.bean.SysRefExpressionTrigger; -import cn.estsh.i3plus.pojo.platform.bean.SysTaskTime; -import cn.estsh.i3plus.pojo.platform.bean.SysTaskTimeExpression; +import cn.estsh.i3plus.pojo.platform.bean.SysRefTaskCyclePlan; +import cn.estsh.i3plus.pojo.platform.bean.SysTaskCycle; +import cn.estsh.i3plus.pojo.platform.bean.SysTaskPlan; import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; @@ -27,36 +27,36 @@ import org.springframework.web.bind.annotation.*; import java.util.List; /** - * @Description : 系统时间表达式 服务 + * @Description : 任务周期管理服务 * @Reference : - * @Author : wei.peng - * @Date : 2018-10-22 16:58:43.838 + * @Author : yunhao + * @Date : 2018-12-27 15:54 * @Modify : **/ @RestController -@Api(description = "系统时间表达式") -@RequestMapping(PlatformConstWords.BASE_URL +"/task-time-expression") -public class SysTaskTimeExpressionController extends CoreBaseController{ +@Api(description = "任务周期") +@RequestMapping(PlatformConstWords.BASE_URL +"/task-cycle") +public class SysTaskCycleController extends CoreBaseController{ - public static final Logger LOGGER = LoggerFactory.getLogger(SysTaskTimeExpressionController.class); + public static final Logger LOGGER = LoggerFactory.getLogger(SysTaskCycleController.class); @Autowired - private ISysTaskTimeExpressionService taskTimeExpressionService; + private ISysTaskCycleService sysTaskCycleService; @Autowired - private ISysTaskTimeService sysTaskTimeService; + private ISysTaskPlanService sysTaskPlanService; @PostMapping(value = "/insert") - @ApiOperation(value = "新增系统时间表达式", notes = "系统时间表达式") - public ResultBean insertSysTaskTimeExpression(SysTaskTimeExpression timeExpression) { + @ApiOperation(value = "新增任务周期", notes = "任务周期") + public ResultBean insertSysTaskCycle(SysTaskCycle sysTaskCycle) { try { // 数据校验 - ValidatorBean.beginValid(timeExpression) - .notNull("name", timeExpression.getName()) - .notNull("expressionContent", timeExpression.getExpressionContent()) - .notNull("expressionStartDatetime",timeExpression.getExpressionStartDatetime()); + ValidatorBean.beginValid(sysTaskCycle) + .notNull("name", sysTaskCycle.getName()) + .notNull("taskCycleExps", sysTaskCycle.getTaskCycleExps()) + .notNull("taskCycleStartDatetime",sysTaskCycle.getTaskCycleStartDatetime()); - taskTimeExpressionService.insertSysTaskTimeExpression(timeExpression); + sysTaskCycleService.insertSysTaskCycle(sysTaskCycle); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); @@ -66,28 +66,28 @@ public class SysTaskTimeExpressionController extends CoreBaseController{ } @PutMapping(value = "/update") - @ApiOperation(value = "修改系统时间表达式", notes = "系统时间表达式") - public ResultBean updateSysTaskTimeExpression(SysTaskTimeExpression timeExpression) { + @ApiOperation(value = "修改任务周期", notes = "修改任务周期") + public ResultBean updateSysTaskCycle(SysTaskCycle sysTaskCycle) { try { // 数据校验 - ValidatorBean.beginValid(timeExpression) - .notNull("id", timeExpression.getId()) - .notNull("name", timeExpression.getName()) - .notNull("timeExpression", timeExpression.getExpressionContent()); - - taskTimeExpressionService.updateSysTaskTimeExpression(timeExpression); - - // 查询关联定时任务信息,并进行修改 - List refTrigger = taskTimeExpressionService.findRefExpressionTriggerList(timeExpression.getId()); - SysTaskTime sysTaskTime; - for (SysRefExpressionTrigger item: refTrigger) { - sysTaskTime = sysTaskTimeService.getSysTaskTimeByNameAndGroup(item.getTriggerName(),item.getTriggerGroupName()); - sysTaskTime.setTimeExpressionNameRdd(timeExpression.getName()); - sysTaskTime.setTimeExpressionContentRdd(timeExpression.getExpressionContent()); - sysTaskTime.setTaskStartDateTimeRdd(timeExpression.getExpressionStartDatetime()); - sysTaskTime.setTaskEndDateTimeRdd(timeExpression.getExpressionEndDatetime()); - - sysTaskTimeService.updateSysTaskTime(sysTaskTime,timeExpression); + ValidatorBean.beginValid(sysTaskCycle) + .notNull("id", sysTaskCycle.getId()) + .notNull("name", sysTaskCycle.getName()) + .notNull("taskCycleExps", sysTaskCycle.getTaskCycleExps()); + + sysTaskCycleService.updateSysTaskCycle(sysTaskCycle); + + // 查询关联任务计划信息,并进行修改 + List taskCyclePlans = sysTaskCycleService.findRefTaskCyclePlanByCycleId(sysTaskCycle.getId()); + SysTaskPlan sysTaskPlan; + for (SysRefTaskCyclePlan item: taskCyclePlans) { + sysTaskPlan = sysTaskPlanService.getSysTaskPlanByNameAndGroup(item.getTaskPlanName(),item.getTaskPlanGroupName()); + sysTaskPlan.setTaskCycleNameRdd(sysTaskCycle.getName()); + sysTaskPlan.setTaskCycleExpsRdd(sysTaskCycle.getTaskCycleExps()); + sysTaskPlan.setTaskCycleStartDateTimeRdd(sysTaskCycle.getTaskCycleStartDatetime()); + sysTaskPlan.setTaskCycleEndDateTimeRdd(sysTaskCycle.getTaskCycleEndDatetime()); + + sysTaskPlanService.updateSysTaskPlan(sysTaskPlan,sysTaskCycle); } return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); @@ -99,21 +99,21 @@ public class SysTaskTimeExpressionController extends CoreBaseController{ } @DeleteMapping(value = "/delete/{id}") - @ApiOperation(value = "删除系统时间表达式", notes = "删除系统时间表达式") - public ResultBean deleteSysTaskTimeExpression(@PathVariable("id") String idStr) { + @ApiOperation(value = "删除任务周期", notes = "删除任务周期") + public ResultBean deleteSysTaskCycle(@PathVariable("id") String idStr) { try { // 数据校验 ValidatorBean.checkNotNull(idStr, "时间表达式id 不能为空"); - if(taskTimeExpressionService.getSysTaskTimeExpressionById(Long.parseLong(idStr)) == null){ + if(sysTaskCycleService.getSysTaskCycleById(Long.parseLong(idStr)) == null){ throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) - .setErrorDetail("时间表达式不存在") + .setErrorDetail("任务周期不存在") .setErrorSolution("请重新选择") .build(); } - taskTimeExpressionService.deleteSysTaskTimeExpressionById(Long.parseLong(idStr)); + sysTaskCycleService.deleteSysTaskCycleById(Long.parseLong(idStr)); return ResultBean.success().setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); @@ -123,10 +123,10 @@ public class SysTaskTimeExpressionController extends CoreBaseController{ } @GetMapping(value = "/list") - @ApiOperation(value = "查询时间表达式所有", notes = "查询所有系统时间表达式") - public ResultBean findSysTaskTimeExpressionAll() { + @ApiOperation(value = "查询所有任务周期信息", notes = "查询所有任务周期信息") + public ResultBean findSysTaskCycle() { try { - List list = taskTimeExpressionService.listSysTaskTimeExpression(); + List list = sysTaskCycleService.listSysTaskCycle(); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(list); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); @@ -136,15 +136,19 @@ public class SysTaskTimeExpressionController extends CoreBaseController{ } @GetMapping(value = "/get/{id}") - @ApiOperation(value = "查询系统时间表达式", notes = "查询根据ID查询系统时间表达式") - public ResultBean getSysTaskTimeExpressionById(@PathVariable("id") String id) { + @ApiOperation(value = "查询任务周期", notes = "查询根据ID查询任务周期") + public ResultBean getSysTaskCycleById(@PathVariable("id") String id) { try { // 数据校验 ValidatorBean.checkNotNull(id, "定时任务id 不能为空"); - SysTaskTimeExpression taskTimeExpression = taskTimeExpressionService.getSysTaskTimeExpressionById(Long.parseLong(id)); - - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(taskTimeExpression); + SysTaskCycle sysTaskCycle = sysTaskCycleService.getSysTaskCycleById(Long.parseLong(id)); + if (sysTaskCycle != null) { + return ResultBean.success("查询成功") + .setResultObject(sysTaskCycle).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }else { + return ResultBean.fail("数据不存在").setCode(ResourceEnumUtil.MESSAGE.EMPTY.getCode()); + } }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); }catch(Exception e){ @@ -152,12 +156,12 @@ public class SysTaskTimeExpressionController extends CoreBaseController{ } } - @GetMapping("query") - @ApiOperation(value = "时间表达式查询,分页,排序",notes = "时间表达式查询,分页,排序") - public ResultBean querySysTaskTimeExpressionByPager(SysTaskTimeExpression taskTimeExpression, Pager pager){ + @GetMapping("/query") + @ApiOperation(value = "任务周期查询,分页,排序",notes = "任务周期查询,分页,排序") + public ResultBean querySysTaskCycleByPager(SysTaskCycle taskTimeExpression, Pager pager){ try { - ListPager taskTimeExpressionListPager = taskTimeExpressionService.querySysTaskTimeExpressionByPager(taskTimeExpression,pager); - return ResultBean.success("查询成功").setListPager(taskTimeExpressionListPager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + ListPager listPager = sysTaskCycleService.querySysTaskCycleByPager(taskTimeExpression,pager); + return ResultBean.success("查询成功").setListPager(listPager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); }catch(Exception e){ @@ -166,7 +170,7 @@ public class SysTaskTimeExpressionController extends CoreBaseController{ } @DeleteMapping("/batch-delete") - @ApiOperation(value = "根据id批量删除时间表达式",notes = "根据id批量删除时间表达式") + @ApiOperation(value = "根据id批量删除任务周期",notes = "根据id批量删除任务周期") public ResultBean deleteSysTaskTimeExpressionByIds(String[] idsStr){ try{ if(idsStr.length == 0){ @@ -177,7 +181,7 @@ public class SysTaskTimeExpressionController extends CoreBaseController{ .build(); } - taskTimeExpressionService.deleteSysTaskTimeExpressionByIds(StringTool.getArrayLong(idsStr)); + sysTaskCycleService.deleteSysTaskCycleByIds(StringTool.getArrayLong(idsStr)); return ResultBean.success("删除成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskPlanController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskPlanController.java new file mode 100644 index 0000000..9fb32e2 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskPlanController.java @@ -0,0 +1,223 @@ +package cn.estsh.i3plus.core.apiservice.controller.busi; + +import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskCycleService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskPlanService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskService; +import cn.estsh.i3plus.platform.common.util.PlatformConstWords; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SysTask; +import cn.estsh.i3plus.pojo.platform.bean.SysTaskCycle; +import cn.estsh.i3plus.pojo.platform.bean.SysTaskPlan; +import cn.estsh.impp.framework.base.controller.CoreBaseController; +import cn.estsh.impp.framework.boot.auth.AuthUtil; +import cn.estsh.impp.framework.boot.exception.ImppBusiException; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.util.ResultBean; +import cn.estsh.impp.framework.boot.util.ValidatorBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @Description : 任务计划管理服务 + * @Reference : + * @Author : yunhao + * @Date : 2018-12-27 10:45 + * @Modify : + **/ +@RestController +@Api(description = "任务计划管理服务") +@RequestMapping(PlatformConstWords.BASE_URL +"/task-plan") +public class SysTaskPlanController extends CoreBaseController{ + + public static final Logger LOGGER = LoggerFactory.getLogger(SysTaskPlanController.class); + + @Autowired + private ISysTaskPlanService sysTaskPlanService; + + @Autowired + private ISysTaskCycleService sysTaskCycleService; + + @Autowired + private ISysTaskService sysTaskService; + + @PostMapping(value = "/insert") + @ApiOperation(value = "新增任务计划", notes = "任务计划") + public ResultBean insertSysTaskTime(SysTaskPlan sysTaskPlan, Boolean isExecute) { + try { + // 数据校验 + ValidatorBean.beginValid(sysTaskPlan) + .notNull("name", sysTaskPlan.getName()) + .notNull("groupName",sysTaskPlan.getGroupName()) + .notNull("taskCycleId",sysTaskPlan.getTaskCycleId()) + .notNull("taskId",sysTaskPlan.getTaskId()) + .notNull("taskMethodType", sysTaskPlan.getTaskMethodType()); + + SysTaskCycle sysTaskCycle = sysTaskCycleService.getSysTaskCycleById(sysTaskPlan.getTaskCycleId()); + ValidatorBean.checkNotNull(sysTaskCycle,"任务周期不存在"); + + SysTask sysTask = sysTaskService.getSysTaskById(sysTaskPlan.getTaskId()); + ValidatorBean.checkNotNull(sysTask,"任务不存在"); + + // 设置冗余信息 + sysTaskPlan.setTaskPlanExecNum(0); + sysTaskPlan.setTaskNameRdd(sysTask.getName()); + sysTaskPlan.setTaskCycleNameRdd(sysTaskCycle.getName()); + sysTaskPlan.setTaskCycleExpsRdd(sysTaskCycle.getTaskCycleExps()); + sysTaskPlan.setTaskCycleStartDateTimeRdd(sysTaskCycle.getTaskCycleStartDatetime()); + sysTaskPlan.setTaskCycleEndDateTimeRdd(sysTaskCycle.getTaskCycleEndDatetime()); + sysTaskPlan.setTaskPlanStatus(CommonEnumUtil.DATA_STATUS.ENABLE.getValue()); + + sysTaskPlan = sysTaskPlanService.insertSysTaskPlan(sysTaskPlan,sysTaskCycle,sysTask); + // 立即执行 + if(isExecute != null && isExecute){ + sysTaskPlanService.executeSysTaskPlan(sysTaskPlan); + } + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(sysTaskPlan); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改任务计划", notes = "任务计划") + public ResultBean updateSysTaskTime(SysTaskPlan sysTaskPlan, Boolean isExecute) { + try { + // 数据校验 + ValidatorBean.beginValid(sysTaskPlan) + .notNull("name", sysTaskPlan.getName()) + .notNull("groupName",sysTaskPlan.getGroupName()) + .notNull("taskCycleId",sysTaskPlan.getTaskCycleId()) + .notNull("taskId",sysTaskPlan.getTaskId()) + .notNull("taskMethodType", sysTaskPlan.getTaskMethodType()); + + SysTaskCycle sysTaskCycle = sysTaskCycleService.getSysTaskCycleById(sysTaskPlan.getTaskCycleId()); + ValidatorBean.checkNotNull(sysTaskCycle,"任务周期不存在"); + + SysTask sysTask = sysTaskService.getSysTaskById(sysTaskPlan.getTaskId()); + ValidatorBean.checkNotNull(sysTask,"任务不存在"); + + sysTaskPlan.setTaskNameRdd(sysTask.getName()); + sysTaskPlan.setTaskCycleNameRdd(sysTaskCycle.getName()); + sysTaskPlan.setTaskCycleExpsRdd(sysTaskCycle.getTaskCycleExps()); + sysTaskPlan.setTaskCycleStartDateTimeRdd(sysTaskCycle.getTaskCycleStartDatetime()); + sysTaskPlan.setTaskCycleEndDateTimeRdd(sysTaskCycle.getTaskCycleEndDatetime()); + + sysTaskPlanService.updateSysTaskPlan(sysTaskPlan,sysTaskCycle); + if(isExecute != null && isExecute){ + sysTaskPlanService.executeSysTaskPlan(sysTaskPlan); + } + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(sysTaskPlan); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @DeleteMapping(value = "/delete/{id}") + @ApiOperation(value = "删除任务计划", notes = "删除任务计划") + public ResultBean deleteSysTaskTime(@PathVariable("id") String id) { + try { + // 数据校验 + ValidatorBean.checkNotNull(id, "任务计划id 不能为空"); + + sysTaskPlanService.deleteSysTaskPlanById(Long.parseLong(id)); + return ResultBean.success().setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "查询SysTaskTime", notes = "查询所有任务计划") + public ResultBean findSysTaskTimeAll() { + try { + List list = sysTaskPlanService.listSysTaskPlan(); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(list); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @GetMapping(value = "/get/{id}") + @ApiOperation(value = "查询任务计划", notes = "查询根据ID查询任务计划") + public ResultBean getBySysTaskTimeId(@PathVariable("id") String id) { + try { + // 数据校验 + ValidatorBean.checkNotNull(id, "任务计划id 不能为空"); + + SysTaskPlan taskTime = sysTaskPlanService.getSysTaskPlanById(Long.parseLong(id)); + if (taskTime != null) { + return ResultBean.success("查询成功").setResultObject(taskTime).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }else { + return ResultBean.fail("任务计划不存在").setCode(ResourceEnumUtil.MESSAGE.EMPTY.getCode()); + } + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @PutMapping(value = "/status/{id}/{status}") + @ApiOperation(value = "修改任务计划状态", notes = "根据ID修改任务计划状态") + public ResultBean updateQuartzStatus(@PathVariable("id") String idStr,@PathVariable("status") Integer status) { + try { + // 数据校验 + ValidatorBean.checkNotNull(idStr, "id 不能为空"); + ValidatorBean.checkNotZero(status, "状态不能为空"); + + sysTaskPlanService.updateSysTaskPlanStatus(Long.parseLong(idStr),status,AuthUtil.getSessionUser()); + return new ResultBean(true); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @GetMapping("/query") + @ApiOperation(value = "任务计划复杂查询,分页,排序",notes = "任务计划复杂查询,分页,排序") + public ResultBean querySysTaskTimeByPager(SysTaskPlan taskTime, Pager pager){ + try { + ListPager taskTimeListPager = sysTaskPlanService.querySysTaskPlanByPager(taskTime,pager); + return ResultBean.success("查询成功").setListPager(taskTimeListPager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @GetMapping(value = "/execute/{id}") + @ApiOperation(value = "立即执行", notes = "立即执行") + public ResultBean executeBySysTaskTimeId(@PathVariable("id") String id) { + try { + // 数据校验 + ValidatorBean.checkNotNull(id, "任务计划id 不能为空"); + SysTaskPlan sysTaskPlan = sysTaskPlanService.getSysTaskPlanById(Long.parseLong(id)); + + sysTaskPlanService.executeSysTaskPlan(sysTaskPlan); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } +} \ No newline at end of file diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskTimeController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskTimeController.java deleted file mode 100644 index 947ffc7..0000000 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskTimeController.java +++ /dev/null @@ -1,260 +0,0 @@ -package cn.estsh.i3plus.core.apiservice.controller.busi; - -import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskTimeExpressionService; -import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskTimeService; -import cn.estsh.i3plus.platform.common.tool.StringTool; -import cn.estsh.i3plus.platform.common.util.PlatformConstWords; -import cn.estsh.i3plus.pojo.base.bean.ListPager; -import cn.estsh.i3plus.pojo.base.common.Pager; -import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; -import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; -import cn.estsh.i3plus.pojo.platform.bean.SysTaskTime; -import cn.estsh.i3plus.pojo.platform.bean.SysTaskTimeExpression; -import cn.estsh.impp.framework.base.controller.CoreBaseController; -import cn.estsh.impp.framework.boot.auth.AuthUtil; -import cn.estsh.impp.framework.boot.exception.ImppBusiException; -import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; -import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; -import cn.estsh.impp.framework.boot.util.ResultBean; -import cn.estsh.impp.framework.boot.util.ValidatorBean; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * @Description : 定时任务服务 - * @Reference : - * @Author : wei.peng - * @Date : 2018-10-22 16:58:43.982 - * @Modify : - **/ -@RestController -@Api(description = "定时任务服务") -@RequestMapping(PlatformConstWords.BASE_URL +"/task-time") -public class SysTaskTimeController extends CoreBaseController{ - - public static final Logger LOGGER = LoggerFactory.getLogger(SysTaskTimeController.class); - - @Autowired - private ISysTaskTimeService taskTimeService; - - @Autowired - private ISysTaskTimeExpressionService taskTimeExpressionService; - - @PostMapping(value = "/insert") - @ApiOperation(value = "新增定时任务", notes = "定时任务") - public ResultBean insertSysTaskTime(SysTaskTime taskTime,Boolean isExecute) { - try { - // 数据校验 - ValidatorBean.beginValid(taskTime) - .notNull("name", taskTime.getName()) - .notNull("groupName",taskTime.getGroupName()) - .notNull("timeExpressionId",taskTime.getTimeExpressionId()) - .notNull("taskMethodType", taskTime.getTaskMethodType()) - .notNull("taskPackage",taskTime.getTaskPackage()) - .notNull("taskClass",taskTime.getTaskClass()); - - SysTaskTimeExpression taskTimeExpression = taskTimeExpressionService - .getSysTaskTimeExpressionById(taskTime.getTimeExpressionId()); - ValidatorBean.checkNotNull(taskTimeExpression,"定时执行策略不存在"); - - taskTime.setTimeExpressionNameRdd(taskTimeExpression.getName()); - taskTime.setTimeExpressionContentRdd(taskTimeExpression.getExpressionContent()); - taskTime.setTaskStartDateTimeRdd(taskTimeExpression.getExpressionStartDatetime()); - taskTime.setTaskEndDateTimeRdd(taskTimeExpression.getExpressionEndDatetime()); - taskTime.setTaskStatus(CommonEnumUtil.DATA_STATUS.ENABLE.getValue()); - - taskTime = taskTimeService.insertSysTaskTime(taskTime,taskTimeExpression); - // 立即执行 - if(isExecute != null && isExecute){ - taskTimeService.executeSysTaskTimeById(taskTime.getId()); - } - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(taskTime); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @PutMapping(value = "/update") - @ApiOperation(value = "修改定时任务", notes = "定时任务") - public ResultBean updateSysTaskTime(SysTaskTime taskTime,Boolean isExecute) { - try { - // 数据校验 - ValidatorBean.beginValid(taskTime) - .notNull("id", taskTime.getId()) - .notNull("name", taskTime.getName()) - .notNull("groupName",taskTime.getGroupName()) - .notNull("timeExpressionId",taskTime.getTimeExpressionId()) - .notNull("taskMethodType", taskTime.getTaskMethodType()) - .notNull("taskPackage",taskTime.getTaskPackage()) - .notNull("taskClass",taskTime.getTaskClass()); - - SysTaskTimeExpression taskTimeExpression = taskTimeExpressionService - .getSysTaskTimeExpressionById(taskTime.getTimeExpressionId()); - ValidatorBean.checkNotNull(taskTimeExpression,"定时执行策略不存在"); - - taskTime.setTimeExpressionNameRdd(taskTimeExpression.getName()); - taskTime.setTimeExpressionContentRdd(taskTimeExpression.getExpressionContent()); - taskTime.setTaskStartDateTimeRdd(taskTimeExpression.getExpressionStartDatetime()); - taskTime.setTaskEndDateTimeRdd(taskTimeExpression.getExpressionEndDatetime()); - taskTime.setTaskStatus(CommonEnumUtil.DATA_STATUS.ENABLE.getValue()); - - taskTimeService.updateSysTaskTime(taskTime,taskTimeExpression); - if(isExecute != null && isExecute){ - taskTimeService.executeSysTaskTimeById(taskTime.getId()); - } - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(taskTime); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @DeleteMapping(value = "/delete/{id}") - @ApiOperation(value = "删除定时任务", notes = "删除定时任务") - public ResultBean deleteSysTaskTime(@PathVariable("id") String id) { - try { - // 数据校验 - ValidatorBean.checkNotNull(id, "定时任务id 不能为空"); - - taskTimeService.deleteSysTaskTimeById(Long.parseLong(id)); - return ResultBean.success().setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @GetMapping(value = "/list") - @ApiOperation(value = "查询SysTaskTime", notes = "查询所有定时任务") - public ResultBean findSysTaskTimeAll() { - try { - List list = taskTimeService.listSysTaskTime(); - return ResultBean.success("操作成功") - .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) - .setResultList(list); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @GetMapping(value = "/get/{id}") - @ApiOperation(value = "查询定时任务", notes = "查询根据ID查询定时任务") - public ResultBean getBySysTaskTimeId(@PathVariable("id") String id) { - try { - // 数据校验 - ValidatorBean.checkNotNull(id, "定时任务id 不能为空"); - - SysTaskTime taskTime = taskTimeService.getSysTaskTimeById(Long.parseLong(id)); - - return ResultBean.success("操作成功") - .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) - .setResultObject(taskTime); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @PutMapping(value = "/status/{id}/{status}") - @ApiOperation(value = "修改定时任务状态", notes = "根据ID修改定时任务状态") - public ResultBean updateQuartzStatus(@PathVariable("id") String idStr,@PathVariable("status") Integer status) { - try { - // 数据校验 - ValidatorBean.checkNotNull(idStr, "id 不能为空"); - ValidatorBean.checkNotZero(status, "状态不能为空"); - - taskTimeService.updateSysTaskTimeStatus(Long.parseLong(idStr),status,AuthUtil.getSessionUser()); - return new ResultBean(true); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @GetMapping("/query") - @ApiOperation(value = "定时任务复杂查询,分页,排序",notes = "定时任务复杂查询,分页,排序") - public ResultBean querySysTaskTimeByPager(SysTaskTime taskTime, Pager pager){ - try { - ListPager taskTimeListPager = taskTimeService.querySysTaskTimeByPager(taskTime,pager); - return ResultBean.success("查询成功").setListPager(taskTimeListPager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @DeleteMapping("/batch-delete") - @ApiOperation(value = "根据id批量删除定时任务",notes = "根据id批量删除定时任务") - public ResultBean deleteSysTaskTimeByIds(String[] ids){ - try{ - if(ids.length == 0){ - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("请选择需要删除的资源。") - .build(); - } - - taskTimeService.deleteSysTaskTimeByIds(StringTool.getArrayLong(ids)); - return ResultBean.success("删除成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @PutMapping(value = "/batch-status") - @ApiOperation(value = "批量修改系统任务状态",notes = "批量修改系统任务状态") - public ResultBean updateSysTaskTimeStatusByIds(String[] ids,Integer status){ - try { - // 数据校验 - if(ids.length == 0){ - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("请选择需要删除的资源。") - .build(); - } - ValidatorBean.checkNotZero(status,"状态不能为空"); - - taskTimeService.updateSysTaskTimeStatusByIds(StringTool.getArrayLong(ids),status); - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @GetMapping(value = "/execute/{id}") - @ApiOperation(value = "立即执行", notes = "立即执行") - public ResultBean executeBySysTaskTimeId(@PathVariable("id") String id) { - try { - // 数据校验 - ValidatorBean.checkNotNull(id, "定时任务id 不能为空"); - - taskTimeService.executeSysTaskTimeById(Long.parseLong(id)); - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } -} \ No newline at end of file diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java index ecb1aa7..0643d4c 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java @@ -91,7 +91,7 @@ public class MessageMailQueueReceiver { mailUtil.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.valueOfDescription(msg.getMessageContentType())); mailUtil.setBody(msg.getMessageContent()); mailUtil.setTo(sysUser.getUserEmail()); - mailUtil.send(); +// mailUtil.send(); } msg.setMessageSenderNameRdd(StringUtils.join(receiverName, ",")); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java index fd9b90e..77ef932 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java @@ -1,8 +1,8 @@ package cn.estsh.i3plus.core.apiservice.mq; -import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskTimeService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskPlanService; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; -import cn.estsh.i3plus.pojo.platform.bean.SysTaskTime; +import cn.estsh.i3plus.pojo.platform.bean.SysTaskPlan; import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime; import com.rabbitmq.client.Channel; import org.slf4j.Logger; @@ -27,7 +27,7 @@ public class ScheduleQueueReceiver { private static final Logger LOGGER = LoggerFactory.getLogger(ScheduleQueueReceiver.class); @Autowired - private ISysTaskTimeService sysTaskTimeService; + private ISysTaskPlanService sysTaskPlanService; /** * 定时任务通道处理 @@ -35,21 +35,23 @@ public class ScheduleQueueReceiver { * @param channel * @param message */ -// @RabbitListener(queues = PlatformConstWords.IMPP_SCHEDULE_QUEUE) + @RabbitListener(queues = PlatformConstWords.IMPP_SCHEDULE_QUEUE) public void processSchedule(SysLogTaskTime logTaskTime, Channel channel, Message message) { try { LOGGER.info("【MQ-IMPP_SCHEDULE_QUEUE】数据接收成功:{}",logTaskTime); // 跟新最后执行时间 及 任务状态 - SysTaskTime task = sysTaskTimeService.getSysTaskTimeByNameAndGroup(logTaskTime.getName(),logTaskTime.getGroupName()); - task.setLastRunDateTime(logTaskTime.getCreateDatetime()); - task.setTaskStatus(logTaskTime.getTaskStatus()); - sysTaskTimeService.updateSysTaskTime(task); + SysTaskPlan taskPlan = sysTaskPlanService.getSysTaskPlanByNameAndGroup(logTaskTime.getName(),logTaskTime.getGroupName()); + taskPlan.setLastRunDateTime(logTaskTime.getCreateDatetime()); + taskPlan.setTaskPlanExecNum(taskPlan.getTaskPlanExecNum() + 1); + taskPlan.setTaskPlanStatus(logTaskTime.getTaskStatus()); + //更新任务状态以及最后执行时间 + sysTaskPlanService.updateSysTaskPlan(taskPlan); // 添加定时任务日志 - logTaskTime.setTimeTaskId(task.getId()); - logTaskTime.setTimeExpressionNameRdd(task.getTimeExpressionNameRdd()); - logTaskTime.setTimeExpressionContentRdd(task.getTimeExpressionContentRdd()); - sysTaskTimeService.logInsertSysLogTaskTime(logTaskTime); + logTaskTime.setTaskPlanId(taskPlan.getId()); + logTaskTime.setTaskCycleNameRdd(taskPlan.getTaskCycleNameRdd()); + logTaskTime.setTaskCycleExpsRdd(taskPlan.getTaskCycleExpsRdd()); + sysTaskPlanService.logInsertSysLogTaskTime(logTaskTime); //信息已处理 channel.basicAck(message.getMessageProperties().getDeliveryTag(),false); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.java index f424e1c..3cde5b5 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.java @@ -1,23 +1,18 @@ package cn.estsh.i3plus.core.apiservice.schedulejob; -import cn.estsh.i3plus.core.api.iservice.busi.ISysConfigService; import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService; -import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskTimeService; import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; import cn.estsh.i3plus.pojo.platform.bean.SysMessage; import cn.estsh.impp.framework.base.schedule.BaseImppScheduleJob; import cn.estsh.impp.framework.boot.init.ApplicationProperties; -import com.netflix.discovery.converters.Auto; import io.swagger.annotations.ApiOperation; import org.quartz.JobExecutionContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import java.text.SimpleDateFormat; - /** * @Description : 定时任务 * @Reference : diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskCycleService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskCycleService.java new file mode 100644 index 0000000..47152fb --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskCycleService.java @@ -0,0 +1,109 @@ +package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; + +import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskCycleService; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.common.PagerHelper; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SysRefTaskCyclePlan; +import cn.estsh.i3plus.pojo.platform.bean.SysTaskCycle; +import cn.estsh.i3plus.pojo.platform.repository.SysRefTaskCyclePlanRepository; +import cn.estsh.i3plus.pojo.platform.repository.SysTaskCycleRepository; +import cn.estsh.i3plus.pojo.platform.repository.SysTaskPlanRepository; +import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Description : 定时任务周期 业务逻辑实现 + * @Reference : + * @Author : wei.peng + * @Date : 2018-10-24 20:40 + * @Modify : + **/ +@Service +public class SysTaskCycleService implements ISysTaskCycleService { + + public static final Logger LOGGER = LoggerFactory.getLogger(SysTaskCycleService.class); + + @Autowired + private SysTaskCycleRepository sysTaskCycleRDao; + + @Autowired + private SysTaskPlanRepository sysTaskPlanRDao; + + @Autowired + private SysRefTaskCyclePlanRepository sysRefTaskCyclePlanRDao; + + @Override + @ApiOperation(value = "修改任务周期",notes = "修改任务周期") + public void updateSysTaskCycle(SysTaskCycle sysTaskCycle) { + sysTaskCycleRDao.update(sysTaskCycle); + } + + @Override + @ApiOperation(value = "删除任务周期",notes = "根据id删除任务周期") + public void deleteSysTaskCycleById(Long id) { + int refExpressionTriggerList = sysRefTaskCyclePlanRDao.findByPropertyCount("taskCycleId",id); + if(refExpressionTriggerList != 0){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("存在关联任务计划,无法删除") + .setErrorSolution("请重新选择") + .build(); + } + + sysTaskCycleRDao.deleteById(id); + } + + @Override + @ApiOperation(value = "新增任务周期",notes = "新增任务周期") + public SysTaskCycle insertSysTaskCycle(SysTaskCycle sysTaskCycle) { + return sysTaskCycleRDao.insert(sysTaskCycle); + } + + @Override + @ApiOperation(value = "查询所有任务周期信息",notes = "查询所有任务周期信息") + public List listSysTaskCycle() { + return sysTaskCycleRDao.list(); + } + + @Override + @ApiOperation(value = "根据ID 查询任务周期",notes = "根据ID 查询任务周期") + public SysTaskCycle getSysTaskCycleById(Long id) { + return sysTaskCycleRDao.getById(id); + } + + @Override + @ApiOperation(value = "任务周期查询,分页,排序",notes = "任务周期查询,分页,排序") + public ListPager querySysTaskCycleByPager(SysTaskCycle sysTaskCycle, Pager pager) { + if(sysTaskCycle == null) { + pager = PagerHelper.getPager(pager, sysTaskCycleRDao.listCount()); + return new ListPager(sysTaskCycleRDao.listPager(pager),pager); + }else { + String hqlPack = CoreHqlPack.packHqlSysTaskCycle(sysTaskCycle); + pager = PagerHelper.getPager(pager, sysTaskCycleRDao.findByHqlWhereCount(hqlPack)); + return new ListPager(sysTaskCycleRDao.findByHqlWherePage(hqlPack + sysTaskCycle.orderBy(),pager),pager); + } + } + + @Override + @ApiOperation(value = "根据id批量删除任务周期",notes = "根据id批量删除任务周期") + public void deleteSysTaskCycleByIds(Long[] ids) { + sysTaskCycleRDao.deleteByIds(ids); + } + + @Override + @ApiOperation(value = "根据任务周期id查询相关任务计划信息",notes = "根据任务周期id查询相关任务计划信息") + public List findRefTaskCyclePlanByCycleId(Long cycleId) { + return sysRefTaskCyclePlanRDao.findByProperty("taskCycleId",cycleId); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskPlanService.java similarity index 52% rename from modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeService.java rename to modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskPlanService.java index 4cd0dd8..9f3a86d 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskPlanService.java @@ -1,25 +1,20 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; -import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskTimeService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskPlanService; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; -import cn.estsh.i3plus.pojo.base.tool.HqlPack; -import cn.estsh.i3plus.pojo.platform.bean.SessionUser; -import cn.estsh.i3plus.pojo.platform.bean.SysRefExpressionTrigger; -import cn.estsh.i3plus.pojo.platform.bean.SysTaskTime; -import cn.estsh.i3plus.pojo.platform.bean.SysTaskTimeExpression; +import cn.estsh.i3plus.pojo.platform.bean.*; import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime; import cn.estsh.i3plus.pojo.platform.platrepositorymongo.SysLogTaskTimeRepository; -import cn.estsh.i3plus.pojo.platform.repository.SysRefExpressionTriggerRepository; -import cn.estsh.i3plus.pojo.platform.repository.SysTaskTimeRepository; +import cn.estsh.i3plus.pojo.platform.repository.SysRefTaskCyclePlanRepository; +import cn.estsh.i3plus.pojo.platform.repository.SysTaskPlanRepository; import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.ApiOperation; -import org.apache.commons.lang3.StringUtils; import org.quartz.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,15 +34,15 @@ import java.util.List; * @Modify : **/ @Service -public class SysTaskTimeService implements ISysTaskTimeService{ +public class SysTaskPlanService implements ISysTaskPlanService { - public static final Logger LOGGER = LoggerFactory.getLogger(SysTaskTimeService.class); + public static final Logger LOGGER = LoggerFactory.getLogger(SysTaskPlanService.class); @Autowired - private SysTaskTimeRepository taskTimeRDao; + private SysTaskPlanRepository sysTaskPlanRDao; @Autowired - private SysRefExpressionTriggerRepository refExpressionTriggerRDao; + private SysRefTaskCyclePlanRepository sysRefTaskCyclePlanRDao; @Autowired private SysLogTaskTimeRepository sysLogTaskTimeRDao; @@ -56,23 +51,92 @@ public class SysTaskTimeService implements ISysTaskTimeService{ private Scheduler scheduler; @Override - @ApiOperation(value = "修改定时任务") - public void updateSysTaskTime(SysTaskTime taskTime, SysTaskTimeExpression taskTimeExpression) { + @ApiOperation(value = "新增任务计划",notes = "新增任务计划") + public SysTaskPlan insertSysTaskPlan(SysTaskPlan sysTaskPlan, SysTaskCycle sysTaskCycle,SysTask sysTask) { + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + // 唯一校验 + JobKey jobKey = JobKey.jobKey(sysTaskPlan.getName(),sysTaskPlan.getGroupName()); + TriggerKey triggerKey = TriggerKey.triggerKey(sysTaskPlan.getName(),sysTaskPlan.getGroupName()); + if (sysTaskPlanRDao.isExitByProperty(new String[]{"name","groupName"},new String[]{sysTaskPlan.getName(),sysTaskPlan.getGroupName()}) + || scheduler.checkExists(jobKey) || scheduler.checkExists(triggerKey)){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) + .setErrorDetail("定时任务已存在") + .setErrorSolution("请重新输入任务名称和组名称") + .build(); + } + + SysRefTaskCyclePlan refTaskCyclePlan = new SysRefTaskCyclePlan(); + refTaskCyclePlan.setTaskCycleId(sysTaskCycle.getId()); + refTaskCyclePlan.setTaskPlanName(sysTaskPlan.getName()); + refTaskCyclePlan.setTaskPlanGroupName(sysTaskPlan.getGroupName()); + + sysTaskPlan = sysTaskPlanRDao.insert(sysTaskPlan); + // 添加表达式与触发器关系表 + sysRefTaskCyclePlanRDao.insert(refTaskCyclePlan); + + // 添加定时任务与触发器到quartz表中 + CronScheduleBuilder schedBuilder = CronScheduleBuilder + .cronSchedule(sysTaskCycle.getTaskCycleExps()) + .withMisfireHandlingInstructionDoNothing(); + TriggerBuilder trigger = TriggerBuilder.newTrigger() + .withIdentity(triggerKey) + .withDescription(sysTaskCycle.getTaskCycleDescription()) + .withSchedule(schedBuilder) + .startAt(sdf.parse(sysTaskCycle.getTaskCycleStartDatetime())); + if(sysTaskCycle.getTaskCycleEndDatetime() != null && sysTaskCycle.getTaskCycleEndDatetime().length() != 0){ + trigger = trigger.endAt(sdf.parse(sysTaskCycle.getTaskCycleEndDatetime())); + } + + Class clazz = (Class) Class.forName(sysTask.getTaskPackage() + "." + sysTask.getTaskClass()); + JobDetail jobDetail = JobBuilder.newJob(clazz).withIdentity(jobKey).withDescription(sysTaskPlan.getTaskPlanDescription()).build(); + + scheduler.scheduleJob(jobDetail, trigger.build()); + } catch (SchedulerException e) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.TASK_EXCEPTION.getCode()) + .build(); + } catch (ParseException e) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_FORMAT.getCode()) + .setErrorDetail("表达式起止时间错误") + .setErrorSolution("请更改表达式起止时间") + .build(); + } catch (ClassNotFoundException e) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("定时任务包名及类名不正确") + .setErrorSolution("请重新输入定时任务包名及类名") + .build(); + } + return sysTaskPlan; + } + + @Override + @ApiOperation(value = "修改任务计划",notes = "修改任务计划") + public void updateSysTaskPlan(SysTaskPlan sysTaskPlan, SysTaskCycle sysTaskCycle) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - SysTaskTime oldSysTaskTime = taskTimeRDao.getById(taskTime.getId()); + SysTaskPlan oldSysTaskPlan = sysTaskPlanRDao.getById(sysTaskPlan.getId()); // 更新关系表 - refExpressionTriggerRDao.updateByProperties(new String[]{"triggerName","triggerGroupName"}, - new String[]{oldSysTaskTime.getName(),taskTime.getGroupName()}, - "expressionId",oldSysTaskTime.getTimeExpressionId() + sysRefTaskCyclePlanRDao.updateByProperties(new String[]{"taskPlanName","taskPlanGroupName"}, + new String[]{oldSysTaskPlan.getName(),oldSysTaskPlan.getGroupName()}, + "taskCycleId", oldSysTaskPlan.getTaskCycleId() ); - taskTimeRDao.update(taskTime); + sysTaskPlan.setTaskPlanExecNum(oldSysTaskPlan.getTaskPlanExecNum()); + sysTaskPlan.setLastRunDateTime(oldSysTaskPlan.getLastRunDateTime()); + sysTaskPlan.setTaskPlanStatus(oldSysTaskPlan.getTaskPlanStatus()); + sysTaskPlanRDao.update(sysTaskPlan); try { - TriggerKey triggerKey = TriggerKey.triggerKey(taskTime.getName(),taskTime.getGroupName()); - System.out.println(scheduler.getTrigger(triggerKey)); + TriggerKey triggerKey = TriggerKey.triggerKey(oldSysTaskPlan.getName(),oldSysTaskPlan.getGroupName()); if (!scheduler.checkExists(triggerKey)) { throw ImppExceptionBuilder.newInstance() @@ -85,20 +149,20 @@ public class SysTaskTimeService implements ISysTaskTimeService{ // 添加定时任务与触发器到quartz表中 CronScheduleBuilder schedBuilder = CronScheduleBuilder - .cronSchedule(taskTimeExpression.getExpressionContent()) + .cronSchedule(sysTaskCycle.getTaskCycleExps()) .withMisfireHandlingInstructionDoNothing(); TriggerBuilder trigger = TriggerBuilder.newTrigger() .withIdentity(triggerKey) - .withDescription(taskTimeExpression.getExpressionDescription()) + .withDescription(sysTaskCycle.getTaskCycleDescription()) .withSchedule(schedBuilder) - .startAt(sdf.parse(taskTimeExpression.getExpressionStartDatetime())); - if(taskTimeExpression.getExpressionEndDatetime() != null && !"".equals(taskTimeExpression.getExpressionEndDatetime())){ - trigger = trigger.endAt(sdf.parse(taskTimeExpression.getExpressionEndDatetime())); + .startAt(sdf.parse(sysTaskCycle.getTaskCycleStartDatetime())); + if(sysTaskCycle.getTaskCycleEndDatetime() != null && !"".equals(sysTaskCycle.getTaskCycleEndDatetime())){ + trigger = trigger.endAt(sdf.parse(sysTaskCycle.getTaskCycleEndDatetime())); } - JobKey jobKey = new JobKey(taskTime.getName(), taskTime.getGroupName()); + JobKey jobKey = new JobKey(sysTaskPlan.getName(), sysTaskPlan.getGroupName()); JobDetail jobDetail = scheduler.getJobDetail(jobKey); - jobDetail.getJobBuilder().withDescription(taskTime.getTaskDescription()); + jobDetail.getJobBuilder().withDescription(sysTaskPlan.getTaskPlanDescription()); HashSet triggerSet = new HashSet<>(); triggerSet.add(trigger.build()); @@ -112,17 +176,23 @@ public class SysTaskTimeService implements ISysTaskTimeService{ } @Override - @ApiOperation(value = "修改任务状态") - public void updateSysTaskTimeStatus(Long id, int status, SessionUser user) { + @ApiOperation(value = "修改任务计划状态",notes = "修改任务计划状态") + public void updateSysTaskPlanStatus(Long id, int status, SessionUser user) { LOGGER.info("定时任务 SYS_MENU id:{} status:{} user:{}", id,status,user); - SysTaskTime taskTime = taskTimeRDao.getById(id); - taskTime.setTaskStatus(status); - taskTime.setModifyUser(user.getUserName()); - taskTimeRDao.update(taskTime); + SysTaskPlan sysTaskPlan = sysTaskPlanRDao.getById(id); + sysTaskPlan.setTaskPlanStatus(status); + sysTaskPlan.setModifyUser(user.getUserName()); + sysTaskPlanRDao.update(sysTaskPlan); try { - TriggerKey triggerKey = TriggerKey.triggerKey(taskTime.getName(), taskTime.getGroupName()); + TriggerKey triggerKey = TriggerKey.triggerKey(sysTaskPlan.getName(), sysTaskPlan.getGroupName()); if (!scheduler.checkExists(triggerKey)) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) + .setErrorDetail("定时任务不存在") + .setErrorSolution("请重新选择") + .build(); } if (status == CommonEnumUtil.DATA_STATUS.ENABLE.getValue()){ @@ -138,16 +208,18 @@ public class SysTaskTimeService implements ISysTaskTimeService{ @Override @ApiOperation(value = "根据根据id删除数据") - public void deleteSysTaskTimeById(Long id) { + public void deleteSysTaskPlanById(Long id) { try { - SysTaskTime taskTime = taskTimeRDao.getById(id); - ValidatorBean.checkNotNull(taskTime,"定时任务不存在"); + SysTaskPlan sysTaskPlan = sysTaskPlanRDao.getById(id); + ValidatorBean.checkNotNull(sysTaskPlan,"定时任务不存在"); + + sysTaskPlanRDao.deleteById(id); - taskTimeRDao.deleteById(id); // 删除关系表数据 - refExpressionTriggerRDao.deleteByProperty("expressionId",taskTime.getTimeExpressionId()); + sysRefTaskCyclePlanRDao.deleteByProperties(new String[]{"taskPlanName","taskPlanGroupName"}, + new Object[]{sysTaskPlan.getName(),sysTaskPlan.getGroupName()}); - TriggerKey triggerKey = TriggerKey.triggerKey(taskTime.getName(),taskTime.getGroupName()); + TriggerKey triggerKey = TriggerKey.triggerKey(sysTaskPlan.getName(),sysTaskPlan.getGroupName()); if(scheduler.checkExists(triggerKey)){ scheduler.pauseTrigger(triggerKey); scheduler.unscheduleJob(triggerKey); @@ -168,130 +240,34 @@ public class SysTaskTimeService implements ISysTaskTimeService{ } @Override - @ApiOperation(value = "新增定时任务") - public SysTaskTime insertSysTaskTime(SysTaskTime taskTime, SysTaskTimeExpression taskTimeExpression) { - try { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - // 唯一校验 - JobKey jobKey = JobKey.jobKey(taskTime.getName(),taskTime.getGroupName()); - TriggerKey triggerKey = TriggerKey.triggerKey(taskTime.getName(),taskTime.getGroupName()); - if (taskTimeRDao.isExitByProperty(new String[]{"name","groupName"},new String[]{taskTime.getName(),taskTime.getGroupName()}) - || scheduler.checkExists(jobKey) || scheduler.checkExists(triggerKey)){ - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) - .setErrorDetail("定时任务已存在") - .setErrorSolution("请重新输入任务名称和组名称") - .build(); - } - - SysRefExpressionTrigger refExpressionTrigger = new SysRefExpressionTrigger(); - refExpressionTrigger.setExpressionId(taskTimeExpression.getId()); - refExpressionTrigger.setTriggerName(taskTime.getName()); - refExpressionTrigger.setTriggerGroupName(taskTime.getGroupName()); - - taskTime = taskTimeRDao.insert(taskTime); - // 添加表达式与触发器关系表 - refExpressionTriggerRDao.insert(refExpressionTrigger); - - // 添加定时任务与触发器到quartz表中 - CronScheduleBuilder schedBuilder = CronScheduleBuilder - .cronSchedule(taskTimeExpression.getExpressionContent()) - .withMisfireHandlingInstructionDoNothing(); - TriggerBuilder trigger = TriggerBuilder.newTrigger() - .withIdentity(triggerKey) - .withDescription(taskTimeExpression.getExpressionDescription()) - .withSchedule(schedBuilder) - .startAt(sdf.parse(taskTimeExpression.getExpressionStartDatetime())); - if(taskTimeExpression.getExpressionEndDatetime() != null && taskTimeExpression.getExpressionEndDatetime().length() != 0){ - trigger = trigger.endAt(sdf.parse(taskTimeExpression.getExpressionEndDatetime())); - } - - Class clazz = (Class) Class.forName(taskTime.getTaskPackage() + "." + taskTime.getTaskClass()); - JobDetail jobDetail = JobBuilder.newJob(clazz).withIdentity(jobKey).withDescription(taskTime.getTaskDescription()).build(); - - scheduler.scheduleJob(jobDetail, trigger.build()); - } catch (SchedulerException e) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) - .setErrorCode(ImppExceptionEnum.TASK_EXCEPTION.getCode()) - .build(); - } catch (ParseException e) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_FORMAT.getCode()) - .setErrorDetail("表达式起止时间错误") - .setErrorSolution("请更改表达式起止时间") - .build(); - } catch (ClassNotFoundException e) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("定时任务包名及类名不正确") - .setErrorSolution("请重新输入定时任务包名及类名") - .build(); - } - return taskTime; - } - - @Override - @ApiOperation(value = "查询所有数据") - public List listSysTaskTime() { - LOGGER.info("定时任务 TASK_TIME find All"); - return taskTimeRDao.findAll(); + @ApiOperation(value = "查询所有任务计划") + public List listSysTaskPlan() { + return sysTaskPlanRDao.list(); } @Override - @ApiOperation(value = "根据id 数据") - public SysTaskTime getSysTaskTimeById(Long id) { - LOGGER.info("定时任务 TASK_TIME find id:{}", id); - return taskTimeRDao.getOne(id); + @ApiOperation(value = "根据id查询任务计划数据",notes = "根据id查询任务计划数据") + public SysTaskPlan getSysTaskPlanById(Long id) { + return sysTaskPlanRDao.getById(id); } @Override - @ApiOperation(value = "定时任务复制查询,分页,排序") - public ListPager querySysTaskTimeByPager(SysTaskTime taskTime, Pager pager) { - LOGGER.info("定时任务 TASK_TIME SysTaskTime:{},Pager:{}",taskTime,pager); - if(taskTime == null) { - pager = PagerHelper.getPager(pager, taskTimeRDao.listCount()); - return new ListPager(taskTimeRDao.listPager(pager),pager); + @ApiOperation(value = "任务计划复杂查询,分页,排序",notes = "任务计划复杂查询,分页,排序") + public ListPager querySysTaskPlanByPager(SysTaskPlan sysTaskPlan, Pager pager) { + if(sysTaskPlan == null) { + pager = PagerHelper.getPager(pager, sysTaskPlanRDao.listCount()); + return new ListPager(sysTaskPlanRDao.listPager(pager),pager); }else { - String hqlPack = CoreHqlPack.packHqlSysTaskTime(taskTime); - pager = PagerHelper.getPager(pager, taskTimeRDao.findByHqlWhereCount(hqlPack)); - return new ListPager(taskTimeRDao.findByHqlWherePage(hqlPack + taskTime.orderBy(),pager),pager); + String hqlPack = CoreHqlPack.packHqlSysTaskPlan(sysTaskPlan); + pager = PagerHelper.getPager(pager, sysTaskPlanRDao.findByHqlWhereCount(hqlPack)); + return new ListPager(sysTaskPlanRDao.findByHqlWherePage(hqlPack + sysTaskPlan.orderBy(),pager),pager); } } @Override - @ApiOperation(value = "根据id批量删除定时任务") - public void deleteSysTaskTimeByIds(Long[] ids) { - LOGGER.info("定时任务 TASK_TIME ids:{}", ids.toString()); - taskTimeRDao.deleteByIds(ids); - } - - @Override - @ApiOperation(value = "批量修改定时任务状态") - public void updateSysTaskTimeStatusByIds(Long[] ids, Integer status) { - LOGGER.info("定时任务 TASK_TIME ids:{},status:{}",ids,status); - StringBuffer where = new StringBuffer(); - HqlPack.getInPack(StringUtils.join( ids,","), "id", where); - - taskTimeRDao.updateByHqlWhere(where.toString(), "taskStatus", status); - } - - @Override - @ApiOperation(value = "修改最后时间") - public void doSysTaskTimeLastDateByNameAndGroupName(String lastDate, String name, String groupName) { - taskTimeRDao.updateByProperties( - new String[]{"name","groupName"},new String[]{name,groupName}, - "lastRunDateTime",lastDate); - } - - @Override - @ApiOperation(value = "立即执行") - public void executeSysTaskTimeById(Long id) { - SysTaskTime taskTime = taskTimeRDao.getById(id); - JobKey jobKey = JobKey.jobKey(taskTime.getName(),taskTime.getGroupName()); + @ApiOperation(value = "立即执行任务计划",notes = "立即执行任务计划") + public void executeSysTaskPlan(SysTaskPlan sysTaskPlan) { + JobKey jobKey = JobKey.jobKey(sysTaskPlan.getName(),sysTaskPlan.getGroupName()); try { if (scheduler.checkExists(jobKey)) { scheduler.triggerJob(jobKey); @@ -299,8 +275,8 @@ public class SysTaskTimeService implements ISysTaskTimeService{ throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) - .setErrorDetail("定时任务不存在") - .setErrorSolution("请重新输入任务名称和组名称") + .setErrorDetail("任务计划不存在") + .setErrorSolution("请重新选择任务计划") .build(); } } catch (SchedulerException e) { @@ -312,11 +288,10 @@ public class SysTaskTimeService implements ISysTaskTimeService{ } @Override - @ApiOperation(value = "查询定时任务",notes = "根据定时任务名称与组名称查询") - public SysTaskTime getSysTaskTimeByNameAndGroup(String name, String groupName) { - List taskList = taskTimeRDao.findByProperty(new String[]{"name","groupName"},new Object[]{name,groupName}); - if (taskList != null && taskList.size() != 0){ - return taskList.get(0); + public SysTaskPlan getSysTaskPlanByNameAndGroup(String name, String groupName) { + List sysTaskPlanList = sysTaskPlanRDao.findByProperty(new String[]{"name","groupName"},new Object[]{name,groupName}); + if (sysTaskPlanList != null && sysTaskPlanList.size() != 0){ + return sysTaskPlanList.get(0); } return null; } @@ -329,7 +304,7 @@ public class SysTaskTimeService implements ISysTaskTimeService{ @Override @ApiOperation(value = "修改定时任务信息",notes = "修改定时任务信息,不会更新quartz数据库") - public void updateSysTaskTime(SysTaskTime sysTaskTime) { - taskTimeRDao.update(sysTaskTime); + public void updateSysTaskPlan(SysTaskPlan sysTaskPlan) { + sysTaskPlanRDao.update(sysTaskPlan); } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskService.java new file mode 100644 index 0000000..508c23f --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskService.java @@ -0,0 +1,100 @@ +package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; + +import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskService; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.common.PagerHelper; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SysTask; +import cn.estsh.i3plus.pojo.platform.repository.SysTaskPlanRepository; +import cn.estsh.i3plus.pojo.platform.repository.SysTaskRepository; +import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Description : 任务管理业务接口实现 + * @Reference : + * @Author : yunhao + * @CreateDate : 2018-12-26 21:42 + * @Modify: + **/ +@Service +public class SysTaskService implements ISysTaskService { + + public static final Logger LOGGER = LoggerFactory.getLogger(SysTaskService.class); + + @Autowired + private SysTaskRepository sysTaskRDao; + + @Autowired + private SysTaskPlanRepository sysTaskPlanRDao; + + @Override + @ApiOperation(value = "添加任务",notes = "添加任务") + public SysTask insertSysTask(SysTask sysTask) { + return sysTaskRDao.insert(sysTask); + } + + @Override + @ApiOperation(value = "修改任务信息",notes = "修改任务信息") + public void updateSysTask(SysTask sysTask) { + sysTaskRDao.update(sysTask); + // 修改冗余信息 + sysTaskPlanRDao.updateByProperties("taskId",sysTask.getId(), + "taskNameRdd",sysTask.getName()); + } + + @Override + @ApiOperation(value = "查询所有任务",notes = "查询所有任务") + public List listSysTask() { + return sysTaskRDao.list(); + } + + @Override + @ApiOperation(value = "根据id查询任务信息",notes = "根据id查询任务信息") + public SysTask getSysTaskById(Long id) { + return sysTaskRDao.getById(id); + } + + @Override + @ApiOperation(value = "删除任务",notes = "根据id删除任务") + public void deleteSysTaskById(Long id) { + if(sysTaskPlanRDao.isExitByProperty("taskId",id)){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("存在关联任务计划,无法删除") + .setErrorSolution("请重新选择") + .build(); + } + + sysTaskRDao.deleteById(id); + } + + @Override + @ApiOperation(value = "删除任务",notes = "根据id批量删除任务") + public void deleteSysTaskByIds(Long[] ids) { + sysTaskRDao.deleteByIds(ids); + } + + @Override + @ApiOperation(value = "任务管理复杂查询,分页,排序",notes = "任务管理复杂查询,分页,排序") + public ListPager querySysTaskByPager(SysTask sysTask, Pager pager) { + if(sysTask == null) { + pager = PagerHelper.getPager(pager, sysTaskRDao.listCount()); + return new ListPager(sysTaskRDao.listPager(pager),pager); + }else { + String hqlPack = CoreHqlPack.packHqlSysTask(sysTask); + pager = PagerHelper.getPager(pager, sysTaskRDao.findByHqlWhereCount(hqlPack)); + return new ListPager(sysTaskRDao.findByHqlWherePage(hqlPack + sysTask.orderBy(),pager),pager); + } + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeExpressionService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeExpressionService.java deleted file mode 100644 index d7d7676..0000000 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeExpressionService.java +++ /dev/null @@ -1,126 +0,0 @@ -package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; - -import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskTimeExpressionService; -import cn.estsh.i3plus.pojo.base.bean.ListPager; -import cn.estsh.i3plus.pojo.base.common.Pager; -import cn.estsh.i3plus.pojo.base.common.PagerHelper; -import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; -import cn.estsh.i3plus.pojo.platform.bean.SysRefExpressionTrigger; -import cn.estsh.i3plus.pojo.platform.bean.SysTaskTimeExpression; -import cn.estsh.i3plus.pojo.platform.repository.SysRefExpressionTriggerRepository; -import cn.estsh.i3plus.pojo.platform.repository.SysTaskTimeExpressionRepository; -import cn.estsh.i3plus.pojo.platform.repository.SysTaskTimeRepository; -import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; -import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; -import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; -import io.swagger.annotations.ApiOperation; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * @Description : 定时任务时间表达式 业务逻辑实现 - * @Reference : - * @Author : wei.peng - * @Date : 2018-10-24 20:40 - * @Modify : - **/ -@Service -public class SysTaskTimeExpressionService implements ISysTaskTimeExpressionService { - - public static final Logger LOGGER = LoggerFactory.getLogger(SysTaskTimeExpressionService.class); - - @Autowired - private SysTaskTimeExpressionRepository taskTimeExpressionRDao; - - @Autowired - private SysTaskTimeRepository taskTimeRDao; - - @Autowired - private SysRefExpressionTriggerRepository sysRefExpressionTriggerRDao; - - @Override - @ApiOperation(value = "修改数据") - public void updateSysTaskTimeExpression(SysTaskTimeExpression taskTimeExpression) { - LOGGER.info("定时任务时间表达式 TASK_TIME_EXPRESSION :{}", taskTimeExpression); - taskTimeExpressionRDao.update(taskTimeExpression); - } - - @Override - @ApiOperation(value = "根据id删除数据") - public void deleteSysTaskTimeExpressionById(Long id) { - LOGGER.info("定时任务时间表达式 TASK_TIME_EXPRESSION :{}", id); - List refExpressionTriggerList = sysRefExpressionTriggerRDao.findByProperty("expressionId",id); - if(refExpressionTriggerList == null || refExpressionTriggerList.size() == 0){ - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("存在关联定时任务,无法删除") - .setErrorSolution("请重新选择") - .build(); - } - - taskTimeExpressionRDao.deleteById(id); - } - - @Override - @ApiOperation(value = "新增数据") - public SysTaskTimeExpression insertSysTaskTimeExpression(SysTaskTimeExpression taskTimeExpression) { - LOGGER.info("定时任务时间表达式 TASK_TIME_EXPRESSION :{}", taskTimeExpression); - return taskTimeExpressionRDao.insert(taskTimeExpression); - } - - @Override - @ApiOperation(value = "查询所有数据") - public List listSysTaskTimeExpression() { - LOGGER.info("定时任务时间表达式 TASK_TIME_EXPRESSION list"); - return taskTimeExpressionRDao.list(); - } - - @Override - @ApiOperation(value = "根据ID 查询任务表达式") - public SysTaskTimeExpression getSysTaskTimeExpressionById(Long id) { - LOGGER.info("定时任务时间表达式 TASK_TIME_EXPRESSION :{}" ,id); - return taskTimeExpressionRDao.getById(id); - } - - @Override - @ApiOperation(value = "任务表达式查询,分页,排序") - public ListPager querySysTaskTimeExpressionByPager(SysTaskTimeExpression taskTimeExpression, Pager pager) { - LOGGER.info("文件表达式 TASK_TIME_EXPRESSION taskTimeExpression:{},Pager:{}",taskTimeExpression,pager); - if(taskTimeExpression == null) { - pager = PagerHelper.getPager(pager, taskTimeExpressionRDao.listCount()); - return new ListPager(taskTimeExpressionRDao.listPager(pager),pager); - }else { - String hqlPack = CoreHqlPack.packHqlSysTaskTimeExpression(taskTimeExpression); - pager = PagerHelper.getPager(pager, taskTimeExpressionRDao.findByHqlWhereCount(hqlPack)); - return new ListPager(taskTimeExpressionRDao.findByHqlWherePage(hqlPack + taskTimeExpression.orderBy(),pager),pager); - } - } - - @Override - @ApiOperation(value = "任务表达式批量删除") - public void deleteSysTaskTimeExpressionByIds(Long[] ids) { - LOGGER.info("文件表达式 SYS_MENU ids:{}", ids); - long count = taskTimeRDao.findByHqlWhereCount(CoreHqlPack.packHqlIds("timeExpressionId",ids)); - if(count >= 1){ - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("存在关联定时任务无法删除!") - .setErrorSolution("请重新操作") - .build(); - }else { - taskTimeExpressionRDao.deleteByIds(ids); - } - } - - @Override - @ApiOperation(value = "根据表达式id查询表达式关联任务信息",notes = "根据表达式id查询表达式关联任务信息") - public List findRefExpressionTriggerList(Long id) { - return sysRefExpressionTriggerRDao.findByProperty("expressionId",id); - } -} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeRecordingService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeRecordingService.java index c5812f5..72ab6df 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeRecordingService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeRecordingService.java @@ -27,35 +27,35 @@ public class SysTaskTimeRecordingService implements ISysTaskTimeRecordingService private SysTaskTimeRecordingRepository taskTimeRecordingRDao; @Override - @ApiOperation(value = "更新任务表达式信息") + @ApiOperation(value = "更新任务周期信息") public void updateSysTaskTimeRecording(SysLogTaskTime taskTimeRecording) { LOGGER.info("定时任务执行记录 TASK_TIMED_RECORDING :{}", taskTimeRecording); taskTimeRecordingRDao.update(taskTimeRecording); } @Override - @ApiOperation(value = "删除任务表达式信息",notes = "根据 ID 删除任务表达式信息") + @ApiOperation(value = "删除任务周期信息",notes = "根据 ID 删除任务周期信息") public void deleteSysTaskTimeRecordingById(Long id) { LOGGER.info("定时任务执行记录 TASK_TIMED_RECORDING Key:{}", id); taskTimeRecordingRDao.deleteById(id); } @Override - @ApiOperation(value = "新增任务表达式信息") + @ApiOperation(value = "新增任务周期信息") public SysLogTaskTime insertSysTaskTimeRecording(SysLogTaskTime taskTimeRecording) { LOGGER.info("定时任务执行记录 TASK_TIMED_RECORDING :{}", taskTimeRecording); return taskTimeRecordingRDao.insert(taskTimeRecording); } @Override - @ApiOperation(value = "查询任务表达式信息",notes = "查询所有任务表达式信息") + @ApiOperation(value = "查询任务周期信息",notes = "查询所有任务周期信息") public List findSysTaskTimeRecordingAll() { LOGGER.info("定时任务执行记录 TASK_TIMED_RECORDING find All"); return taskTimeRecordingRDao.findAll(); } @Override - @ApiOperation(value = "查询任务表达式信息",notes = "查询 ID 任务表达式信息") + @ApiOperation(value = "查询任务周期信息",notes = "查询 ID 任务周期信息") public SysLogTaskTime getSysTaskTimeRecordingById(Long id) { LOGGER.info("定时任务执行记录 TASK_TIMED_RECORDING find id:{}", id); return taskTimeRecordingRDao.getOne(id);