Skip to content

Commit c40a6c6

Browse files
committed
重构工作流(8),支持task跳转了
1 parent 898b04a commit c40a6c6

File tree

9 files changed

+310
-178
lines changed

9 files changed

+310
-178
lines changed

hsweb-system/hsweb-system-workflow/hsweb-system-workflow-local/src/main/java/org/hswebframework/web/workflow/flowable/utils/JumpTaskCmd.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.hswebframework.web.workflow.flowable.utils;
22

3+
import org.activiti.engine.history.HistoricActivityInstance;
34
import org.activiti.engine.impl.context.Context;
45
import org.activiti.engine.impl.interceptor.Command;
56
import org.activiti.engine.impl.interceptor.CommandContext;
@@ -9,6 +10,8 @@
910
import org.activiti.engine.impl.pvm.process.ProcessDefinitionImpl;
1011
import org.activiti.engine.task.Comment;
1112

13+
import java.util.List;
14+
1215
/**
1316
* Created by Administrator on 2016/4/20 0020.
1417
*/
@@ -24,13 +27,15 @@ public JumpTaskCmd(String executionId, String activityId) {
2427

2528
@Override
2629
public Comment execute(CommandContext commandContext) {
27-
for (TaskEntity taskEntity : Context.getCommandContext().getTaskEntityManager().findTasksByExecutionId(executionId)) {
28-
Context.getCommandContext().getTaskEntityManager().deleteTask(taskEntity, "jump", false);
30+
31+
for (TaskEntity taskEntity : commandContext.getTaskEntityManager().findTasksByExecutionId(executionId)) {
32+
commandContext.getTaskEntityManager().deleteTask(taskEntity, "jump", false);
2933
}
3034
ExecutionEntity executionEntity = Context.getCommandContext().getExecutionEntityManager().findExecutionById(executionId);
3135
ProcessDefinitionImpl processDefinition = executionEntity.getProcessDefinition();
3236
ActivityImpl activity = processDefinition.findActivity(activityId);
3337
executionEntity.executeActivity(activity);
38+
3439
return null;
3540
}
3641
}

hsweb-system/hsweb-system-workflow/hsweb-system-workflow-local/src/main/java/org/hswebframework/web/workflow/service/BpmTaskService.java

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import org.activiti.engine.impl.pvm.process.ActivityImpl;
55
import org.activiti.engine.task.Task;
66
import org.hswebframework.web.workflow.service.request.CompleteTaskRequest;
7+
import org.hswebframework.web.workflow.service.request.JumpTaskRequest;
78
import org.hswebframework.web.workflow.service.request.RejectTaskRequest;
89

910
import java.util.Collection;
@@ -78,27 +79,14 @@ public interface BpmTaskService {
7879

7980
/**
8081
* 流程任意跳转
81-
*
82-
* @param procInstId 流程实例ID
83-
* @param activity 流程环节ID
8482
*/
85-
Task jumpTask(String procInstId, String activity);
83+
void jumpTask(JumpTaskRequest request);
8684

8785
/**
88-
* 驳回
89-
*
90-
* @param request
86+
* 驳回任务
9187
*/
9288
void reject(RejectTaskRequest request);
9389

94-
/**
95-
* 设置办理人
96-
*
97-
* @param taskId 当前环节ID
98-
* @param userId 用户ID
99-
*/
100-
void setAssignee(String taskId, String userId);
101-
10290
/**
10391
* 结束流程
10492
*

hsweb-system/hsweb-system-workflow/hsweb-system-workflow-local/src/main/java/org/hswebframework/web/workflow/service/imp/BpmProcessServiceImpl.java

Lines changed: 11 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -86,31 +86,18 @@ public ProcessInstance startProcessInstance(StartProcessRequest request) {
8686

8787
List<Task> tasks = bpmTaskService.selectTaskByProcessId(processInstance.getProcessDefinitionId());
8888

89-
//指定了下一环节
90-
if (!StringUtils.isNullOrEmpty(request.getNextActivityId())) {
91-
//跳转
92-
Task afterJump = bpmTaskService.jumpTask(processInstance.getProcessDefinitionId(), request.getNextActivityId());
93-
94-
//设置候选人
95-
candidateUserSetter.accept(afterJump);
96-
97-
tasks.stream()
98-
.map(Task::getId)
99-
.forEach(bpmTaskService::removeHiTask);
89+
//当前节点
90+
String activityId = processInstance.getActivityId();
91+
if (activityId == null) {
92+
//所有task设置候选人
93+
tasks.forEach(candidateUserSetter);
10094
} else {
101-
//当前节点
102-
String activityId = processInstance.getActivityId();
103-
if (activityId == null) {
104-
//所有task设置候选人
105-
tasks.forEach(candidateUserSetter);
106-
} else {
107-
candidateUserSetter.accept(taskService
108-
.createTaskQuery()
109-
.processInstanceId(processInstance.getProcessInstanceId())
110-
.taskDefinitionKey(activityId)
111-
.active()
112-
.singleResult());
113-
}
95+
candidateUserSetter.accept(taskService
96+
.createTaskQuery()
97+
.processInstanceId(processInstance.getProcessInstanceId())
98+
.taskDefinitionKey(activityId)
99+
.active()
100+
.singleResult());
114101
}
115102

116103
workFlowFormService.saveProcessForm(processInstance, SaveFormRequest

0 commit comments

Comments
 (0)