@ResponseBody
  @RequestMapping(value = "/getJobDefinitionsList")
  public List<JobDefinition> getJobDefinitionsList(
      HttpServletResponse response, @RequestParam Map<String, Object> parameter) throws Exception {
    List<JobDefinition> list = new ArrayList<JobDefinition>();
    JobDefinition jobDefinition = new JobDefinition();
    jobDefinition.setId("1");
    jobDefinition.setName("hello job");
    ;
    list.add(jobDefinition);

    JobDefinition jobDefinition1 = new JobDefinition();
    jobDefinition1.setId("2");
    jobDefinition1.setName("hello job1");
    ;
    list.add(jobDefinition1);

    JobDefinition jobDefinition2 = new JobDefinition();
    jobDefinition2.setId("3");
    jobDefinition2.setName("hello job2");
    ;
    list.add(jobDefinition2);

    return list;
  }
  @ResponseBody
  @RequestMapping(value = "/saveJobDefinition", method = RequestMethod.POST)
  public JobDefinition saveJobDefinition(
      @ModelAttribute("jobDefinitionForm") JobDefinition inParam, HttpServletResponse response)
      throws Exception {

    if (AssertHelper.empty(inParam.getId())) {
      inParam.setId(IdGenerator.getUUID());
      jobDefinitionService.save(inParam);
    } else {
      jobDefinitionService.update(inParam);
    }
    inParam.setId(inParam.getId());
    return inParam;
  }
  @ResponseBody
  @RequestMapping(value = "/stopJob", method = RequestMethod.POST)
  public void stopJob(@RequestParam Map<String, Object> map) throws Exception {
    String selectid = (String) map.get("selectid");
    AssertHelper.notEmpty_assert(selectid, "执行的任务id不能为空");
    JobDefinition jobDefinition =
        (JobDefinition) jobDefinitionService.get(JobDefinition.class, selectid);
    jobDefinition.setState(JobState.stopping);
    jobDefinition.setEndDate(new Date());
    jobDefinitionService.update(jobDefinition);
    try {
      JobHistory jobhistory = new JobHistory();
      jobhistory.setEndDate(jobDefinition.getEndDate());
      jobhistory.setId(IdGenerator.getUUID());
      jobhistory.setJobId(selectid);
      jobhistory.setSuccessful(true);
      jobDefinitionService.save(jobhistory);
    } catch (Exception e) {

      e.printStackTrace();
      JobHistory jobhistory = new JobHistory();
      jobhistory.setEndDate(jobDefinition.getEndDate());
      jobhistory.setStartDate(jobDefinition.getStartDate());
      jobhistory.setId(IdGenerator.getUUID());
      jobhistory.setJobId(selectid);
      jobhistory.setSuccessful(false);
      jobDefinitionService.save(jobhistory);
    }
  }
  /**
   * 立即执行
   *
   * @param map
   * @throws Exception
   */
  @ResponseBody
  @RequestMapping(value = "/exeJob", method = RequestMethod.POST)
  public void exeJob(@RequestParam Map<String, Object> map, HttpServletResponse response)
      throws Exception {
    String selectid = (String) map.get("selectid");
    AssertHelper.notEmpty_assert(selectid, "执行的任务id不能为空");
    JobDefinition jobDefinition =
        (JobDefinition) jobDefinitionService.get(JobDefinition.class, selectid);
    AssertHelper.notEmpty_assert(jobDefinition, "id为" + selectid + "的job定义没有找到");
    String beanId = jobDefinition.getBeanId();
    AssertHelper.notEmpty_assert(jobDefinition, "id为" + selectid + "的job没有定义beanId");
    Object job = SpringUtil.getBean(beanId);
    AssertHelper.notEmpty_assert(job, "beanId为" + beanId + "的bean没有找到");
    if (!((job instanceof Job) && (job instanceof JobTest))) {
      throw new BusinessException("beanId为" + beanId + "的bean必须实现的是org.quartz.Job和JobTest接口");
    }
    JobTest jobTest = (JobTest) job;
    JSONObject object = new JSONObject();
    object.put("success", "true");
    try {
      jobTest.execute();
      JobHistory jobhistory = new JobHistory();
      jobhistory.setEndDate(jobDefinition.getEndDate());
      jobhistory.setStartDate(jobDefinition.getStartDate());
      jobhistory.setId(IdGenerator.getUUID());
      jobhistory.setJobId(beanId);
      jobhistory.setSuccessful(true);
      jobDefinitionService.save(jobhistory);
      retJson(response, object);
    } catch (Exception e) {

      e.printStackTrace();
      JobHistory jobhistory = new JobHistory();
      jobhistory.setEndDate(jobDefinition.getEndDate());
      jobhistory.setStartDate(jobDefinition.getStartDate());
      jobhistory.setId(IdGenerator.getUUID());
      jobhistory.setJobId(beanId);
      jobhistory.setSuccessful(false);
      jobDefinitionService.save(jobhistory);
      object.put("errorMsg", e.getMessage());
      object.put("success", "false");
      retJson(response, object);
    }
  }