diff --git a/hsweb-system/hsweb-system-workflow/hsweb-system-workflow-flowable/src/main/java/org/hswebframework/web/workflow/flowable/service/imp/BpmTaskServiceImp.java b/hsweb-system/hsweb-system-workflow/hsweb-system-workflow-flowable/src/main/java/org/hswebframework/web/workflow/flowable/service/imp/BpmTaskServiceImp.java index 3555f1d2f..fbf94acf1 100644 --- a/hsweb-system/hsweb-system-workflow/hsweb-system-workflow-flowable/src/main/java/org/hswebframework/web/workflow/flowable/service/imp/BpmTaskServiceImp.java +++ b/hsweb-system/hsweb-system-workflow/hsweb-system-workflow-flowable/src/main/java/org/hswebframework/web/workflow/flowable/service/imp/BpmTaskServiceImp.java @@ -7,6 +7,7 @@ import org.activiti.engine.runtime.Execution; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.hswebframework.utils.StringUtils; +import org.hswebframework.web.NotFoundException; import org.hswebframework.web.workflow.flowable.entity.TaskInfo; import org.hswebframework.web.workflow.flowable.service.BpmTaskService; import org.hswebframework.web.workflow.flowable.service.BpmActivityService; @@ -37,12 +38,12 @@ public class BpmTaskServiceImp extends FlowableAbstract implements BpmTaskServic } @Override - public Task selectTaskByProcessId(String procInstId){ + public Task selectTaskByProcessId(String procInstId) { return taskService.createTaskQuery().processInstanceId(procInstId).singleResult(); } @Override - public Task selectTaskByTaskId(String taskId){ + public Task selectTaskByTaskId(String taskId) { return taskService.createTaskQuery().taskId(taskId).singleResult(); } @@ -80,18 +81,21 @@ public class BpmTaskServiceImp extends FlowableAbstract implements BpmTaskServic } @Override - public void claim(String taskId, String userId){ + public void claim(String taskId, String userId) { Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); - if (task == null) + if (task == null) { logger.warn("获取任务失败!"); + throw new NotFoundException("task not found"); + //return; // fix null point + } if (!StringUtils.isNullOrEmpty(task.getAssignee())) { logger.warn("该任务已被签收!"); - }else taskService.claim(taskId, userId); + } else taskService.claim(taskId, userId); } @Override - public List claimList(String userId){ + public List claimList(String userId) { List list = new ArrayList<>(); // 等待签收的任务 List todoList = taskService.createTaskQuery().taskCandidateUser(userId).includeProcessVariables().active().list(); @@ -99,7 +103,7 @@ public class BpmTaskServiceImp extends FlowableAbstract implements BpmTaskServic } @Override - public List todoList(String userId){ + public List todoList(String userId) { List list = new ArrayList<>(); // 已经签收的任务 List todoList = taskService.createTaskQuery().taskAssignee(userId).includeProcessVariables().active().list(); @@ -107,11 +111,13 @@ public class BpmTaskServiceImp extends FlowableAbstract implements BpmTaskServic } @Override - public void complete(String workFlowId, String userId, String activityId, String next_claim){ + public void complete(String workFlowId, String userId, String activityId, String next_claim) { String taskId = selectNowTaskId(workFlowId); Task task = taskService.createTaskQuery().taskId(taskId).includeProcessVariables().singleResult(); - if (task == null) + if (task == null) { logger.warn("任务不存在!"); + throw new NotFoundException("task not found"); + } String assignee = task.getAssignee(); if (null == assignee) logger.warn("请先签收任务!"); @@ -121,44 +127,44 @@ public class BpmTaskServiceImp extends FlowableAbstract implements BpmTaskServic //完成此任务 if (activityId == null) { taskService.complete(taskId); - }else{ - jumpTask(workFlowId,activityId,next_claim); + } else { + jumpTask(workFlowId, activityId, next_claim); } //根据流程ID查找执行计划,存在则进行下一步,没有则结束工单 List execution = runtimeService.createExecutionQuery().processInstanceId(workFlowId).list(); - if(execution.size()>0){ + if (execution.size() > 0) { String tasknow = selectNowTaskId(workFlowId); // 自定义下一执行人 - if(!StringUtils.isNullOrEmpty(next_claim)) + if (!StringUtils.isNullOrEmpty(next_claim)) claim(tasknow, next_claim); } } @Override - public void jumpTask(String procInstId, String activity, String next_claim){ + public void jumpTask(String procInstId, String activity, String next_claim) { Task task = selectTaskByProcessId(procInstId); - TaskServiceImpl taskServiceImpl=(TaskServiceImpl)taskService; + TaskServiceImpl taskServiceImpl = (TaskServiceImpl) taskService; taskServiceImpl.getCommandExecutor().execute(new JumpTaskCmd(task.getExecutionId(), activity)); task = selectTaskByProcessId(procInstId); - if(null != task && !StringUtils.isNullOrEmpty(next_claim)) + if (null != task && !StringUtils.isNullOrEmpty(next_claim)) claim(task.getId(), next_claim); } @Override - public void setAssignee(String taskId,String userId){ - taskService.setAssignee(taskId,userId); + public void setAssignee(String taskId, String userId) { + taskService.setAssignee(taskId, userId); } @Override - public void endProcess(String procInstId){ + public void endProcess(String procInstId) { ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(procInstId).singleResult(); - ActivityImpl activity = bpmActivityService.getEndActivityImpl(processInstance.getProcessDefinitionId()); + ActivityImpl activity = bpmActivityService.getEndEvent(processInstance.getProcessDefinitionId()); jumpTask(procInstId,activity.getId(),null); } @Override - public void removeHiTask(String taskId){ + public void removeHiTask(String taskId) { historyService.deleteHistoricTaskInstance(taskId); } @@ -170,7 +176,7 @@ public class BpmTaskServiceImp extends FlowableAbstract implements BpmTaskServic @Override public Map getUserTasksByProcDefKey(String procDefKey){ String definitionId = repositoryService.createProcessDefinitionQuery().processDefinitionKey(procDefKey).orderByProcessDefinitionVersion().desc().list().get(0).getId(); - List activitiList = bpmActivityService.getUserTasks(definitionId); + List activitiList = bpmActivityService.getUserTasksByProcDefId(definitionId); Map map = new HashMap<>(); for(ActivityImpl activity:activitiList){ map.put(activity.getId(),activity.getProperty("name")); @@ -181,7 +187,7 @@ public class BpmTaskServiceImp extends FlowableAbstract implements BpmTaskServic @Override public Map getUserTasksByProcInstId(String procInstId) { String definitionId = runtimeService.createProcessInstanceQuery().processInstanceId(procInstId).singleResult().getProcessDefinitionId(); - List activitiList = bpmActivityService.getUserTasks(definitionId); + List activitiList = bpmActivityService.getUserTasksByProcDefId(definitionId); Map map = new HashMap<>(); for(ActivityImpl activity:activitiList){ map.put(activity.getId(),activity.getProperty("name")); @@ -191,25 +197,25 @@ public class BpmTaskServiceImp extends FlowableAbstract implements BpmTaskServic @Override public void setVariables(String taskId, Map map) { - taskService.setVariables(taskId,map); + taskService.setVariables(taskId, map); } @Override public void removeVariables(String taskId, Collection var2) { - taskService.removeVariables(taskId,var2); + taskService.removeVariables(taskId, var2); } @Override public void setVariablesLocal(String taskId, Map map) { - taskService.setVariablesLocal(taskId,map); + taskService.setVariablesLocal(taskId, map); } @Override public Map getVariables(String procInstId) { List executions = runtimeService.createExecutionQuery().processInstanceId(procInstId).list(); String executionId = ""; - for(Execution execution : executions){ - if(StringUtils.isNullOrEmpty(execution.getParentId())){ + for (Execution execution : executions) { + if (StringUtils.isNullOrEmpty(execution.getParentId())) { executionId = execution.getId(); } }