123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- package com.lote.wms.task.controller;
- import com.lote.wms.common.core.web.model.Result;
- import com.lote.wms.common.core.web.model.ResultCodeEnum;
- import com.lote.wms.task.entity.ScheduleJob;
- import com.lote.wms.task.job.instock.SendInOrderStatusJob;
- import com.lote.wms.task.service.IJobService;
- import com.lote.wms.task.support.SpringUtils;
- import org.apache.commons.lang.StringUtils;
- import org.quartz.CronScheduleBuilder;
- import org.quartz.SchedulerException;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.ResponseBody;
- import javax.annotation.Resource;
- import javax.servlet.http.HttpServletRequest;
- import java.lang.reflect.Method;
- import java.util.List;
- /**
- *
- * @ClassName: TaskController
- * @author yechao
- * @date 2017年7月6日 下午2:06:20
- * @Description: TODO
- */
- @Controller
- @RequestMapping("/job")
- public class JobController {
- private static final Logger logger = LoggerFactory.getLogger(JobController.class);
- @Autowired
- private SendInOrderStatusJob sendOutOrderStatusJob ;
- @RequestMapping("/sendInOrder")
- public void sendInOrder(){
- sendOutOrderStatusJob.run(null);
- }
- @Resource
- private IJobService jobService;
- @RequestMapping("/list")
- @ResponseBody
- public Result list() {
- List<ScheduleJob> list = jobService.getAllJob();
- return Result.success(list);
- }
- /**
- * 添加定时任务
- *
- * @param request
- * @param scheduleJob
- * @return
- */
- @RequestMapping("add")
- @ResponseBody
- public Result add(HttpServletRequest request, ScheduleJob scheduleJob) {
- Result result = new Result();
- result.setCode(ResultCodeEnum.FAILURE.getCode());
- try {
- @SuppressWarnings("unused")
- CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(scheduleJob.getCronExpression());
- } catch (Exception e) {
- result.setMsg("cron表达式有误,不能被解析!");
- return result;
- }
- Object obj = null;
- try {
- if (StringUtils.isNotBlank(scheduleJob.getSpringId())) {
- // obj = SpringContextUtil.getBean(scheduleJob.getSpringId());
- obj = SpringUtils.getBean(scheduleJob.getSpringId());
- } else {
- Class<?> clazz = Class.forName(scheduleJob.getBeanClass());
- obj = clazz.newInstance();
- }
- } catch (Exception e) {
- // do nothing.........
- e.printStackTrace();
- }
- if (obj == null) {
- result.setMsg("未找到目标类!请检查SpringId , BeanClass");
- return result;
- } else {
- Class<? extends Object> clazz = obj.getClass();
- Method method = null;
- try {
- method = clazz.getMethod(scheduleJob.getMethodName(), Object.class);
- } catch (Exception e) {
- // do nothing.....
- }
- if (method == null) {
- result.setMsg("未找到目标方法!");
- return result;
- }
- }
- try {
- jobService.addJob(scheduleJob);
- } catch (Exception e) {
- e.printStackTrace();
- result.setMsg("保存失败,检查 name group 组合是否有重复!");
- return result;
- }
- result.setCode(ResultCodeEnum.SUCCESS.getCode());
- return result;
- }
- @RequestMapping("changeJobStatus")
- @ResponseBody
- public Result changeJobStatus(HttpServletRequest request, Long jobId, String cmd) {
- Result result = new Result();
- result.setCode(ResultCodeEnum.FAILURE.getCode());
- try {
- jobService.changeStatus(jobId, cmd);
- } catch (SchedulerException e) {
- logger.error("任务状态改变失败:" + e.getMessage());
- e.printStackTrace();
- result.setMsg("任务状态改变失败!");
- return result;
- }
- result.setMsg("任务状态改变成功!");
- result.setCode(ResultCodeEnum.SUCCESS.getCode());
- return result;
- }
- @RequestMapping("updateCron")
- @ResponseBody
- public Result updateCron(HttpServletRequest request, Long jobId, String cron) {
- Result result = new Result();
- result.setCode(ResultCodeEnum.FAILURE.getCode());
- try {
- @SuppressWarnings("unused")
- CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(cron);
- } catch (Exception e) {
- result.setMsg("cron表达式有误,不能被解析!");
- return result;
- }
- try {
- jobService.updateCron(jobId, cron);
- } catch (SchedulerException e) {
- result.setMsg("cron更新失败!");
- return result;
- }
- result.setMsg("cron更新成功!");
- result.setCode(ResultCodeEnum.SUCCESS.getCode());
- return result;
- }
- @RequestMapping("del")
- @ResponseBody
- public Result del(HttpServletRequest request, Long jobId) {
- Result result = new Result();
- result.setCode(ResultCodeEnum.FAILURE.getCode());
- try {
- jobService.delJob(jobId);
- } catch (Exception e) {
- result.setMsg("删除失败");
- return result;
- }
- result.setMsg("删除成功");
- result.setCode(ResultCodeEnum.SUCCESS.getCode());
- return result;
- }
- }
|