@Test public void test() { ProcessEngine engine = ProcessEngines.getDefaultProcessEngine(); RepositoryService repositoryService = engine.getRepositoryService(); RuntimeService runtimeService = engine.getRuntimeService(); TaskService taskService = engine.getTaskService(); repositoryService.createDeployment().addClasspathResource("bpmn/first.bpmn").deploy(); runtimeService.startProcessInstanceByKey("process1"); Task task = taskService.createTaskQuery().singleResult(); System.out.println("第一个任务完成前,当前任务名称:" + task.getName()); taskService.complete(task.getId()); task = taskService.createTaskQuery().singleResult(); System.out.println("第二个任务完成前,当前任务名称:" + task.getName()); taskService.complete(task.getId()); task = taskService.createTaskQuery().singleResult(); System.out.println("流程结束后,查找任务:" + task); }
/** * 提交流程 * * @return */ @RequestMapping(value = "/submit.do") public String submit( HttpServletRequest request, HttpServletResponse response, @RequestParam(value = "taskId", required = false) String taskId, @RequestParam(value = "day", required = false) String day, @RequestParam(value = "type", required = false) String type, @RequestParam(value = "reason", required = false) String reason, @RequestParam(value = "result", required = false) String result, @RequestParam(value = "toSign", required = false) String toSign, @RequestParam(value = "backActivityId", required = false) String backActivityId) throws Exception { List<Task> taskList = taskService.createTaskQuery().taskId(taskId).list(); Task task = taskList.get(0); String taskName = task.getName(); // result = new String(result.getBytes("ISO-8859-1"), "UTF-8"); if (result.equals("同意")) { Map map = new HashMap(); if (StringUtils.isNotBlank(day)) { map.put("day", day); map.put("reason", reason); map.put("type", 0); taskService.complete(taskId, map); } else { taskService.complete(taskId); } } else if (result.equals("驳回")) { ProcessInstance processInstance = processExtensionService.findProcessInstanceByTaskId(taskId); Map<String, Object> map = runtimeService.getVariables(processInstance.getId()); processExtensionService.backProcess(taskId, backActivityId, map); } else if (result.equals("转签")) { if (processExtensionService.isPermissionInActivity(taskId, toSign)) { taskService.setAssignee(taskId, toSign); } } return "redirect:/simple/index.do"; }
/** * @param taskId * @param variables */ @Override public void complete(String taskId, Map<String, Object> variables) { taskService.complete(taskId, variables); }