activiti初体验(七) 委派,转办,会签,挂起,激活

其中委派与转办的流程图与正常的没有啥区别,这里直接上代码。

任务委派


任务委派只是任务人将当前的任务交给接收人进行审批,完成任务后又重新回到任务人身上。委派人查询任务与完成任务与正常的有区别。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/**
* 指定代办人
*/
@Test
public void delegateTask() {
String taskId = "2511";
String loginName = "0003";
activitiService.delegateTask(taskId, loginName);
}

/**
* 正在运行的任务表中被委派人办理任务后任务会回到委派人 ,历史任务表中也一样,只是多了一个人进行审批
*/
@Test
public void resolveTask() {
String taskId = "2511";
Map<String,Object> map = new HashMap<>();
activitiService.resolveTask(taskId ,map);
}

@Test
public void getTaskByOwner() {
String processDefinitionKey = "delegateTask";
String owner = "0003";
activitiService.getTaskByOwner(processDefinitionKey, owner);
}


/**
* 根据任务拥有者查询任务
*
* @param processDefinitionKey
* @param owner
* @return
*/
boolean getTaskByOwner(String processDefinitionKey, String owner);

/**
* 委派人完成任务
*
* @param taskId
* @param map
* @return
*/
boolean resolveTask(String taskId, Map<String, Object> map);

@Override
public boolean delegateTask(String taskId, String loginName) {
taskService.delegateTask(taskId, loginName);
return true;
}

@Override
public boolean getTaskByOwner(String processDefinitionKey, String owner) {
TaskQuery taskQuery = taskService.createTaskQuery();
// 任务列表
List<Task> list = taskQuery.processDefinitionKey(processDefinitionKey).taskOwner(owner).list();// 指定办理人
for (Task task : list) {
LOGGER.info("任务处理人【{}】", task.getAssignee());
LOGGER.info("流程名称【{}】", task.getName());
LOGGER.info("任务id【{}】", task.getId());
LOGGER.info("流程定义id【{}】", task.getProcessDefinitionId());
LOGGER.info("执行对象id【{}】", task.getExecutionId());
LOGGER.info("任务拥有者【{}】", task.getOwner());
}
return true;
}

@Override
public boolean resolveTask(String taskId, Map<String, Object> map) {
taskService.resolveTask(taskId, map);
return true;
}

任务转办


任务转办是把任务交给别人进行处理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/**
* 任务转办,将任务交给其他人处理
*/
@Test
public void turnTask() {
String taskId = "7511";
String assignee = "0003";
activitiService.trunTask(taskId,assignee);
}

@Override
public boolean trunTask(String taskId, String assignee) {
taskService.setAssignee(taskId, assignee);
return true;
}

任务会签


会签:当任务有多人审批,但只要部分人审批就可以通过,类似于投票,十个人中五个人投票通过即可通过,那么久需要使用会签

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@Test
public void startActiviti() {
String processDefinitionKey = "counterSign";
String orgCode = "070067801";
String[] assigneeList = {"0001","0002","0003"};
// 设置变量
HashMap<String, Object> map = new HashMap<>();
map.put("createLoginName", "0003");
map.put("orgCode", orgCode);
//必须是List
map.put("assigneeList", Arrays.asList(assigneeList));
//map.put("signCount", 0);
activitiService.startActivitiAndFinsh(processDefinitionKey, map);

}
@Test
public void getValaier() {
String taskId = "35044";
Map<String, Object> variable = activitiService.getVariableByTaskId(taskId , false);
System.out.println("nrOfInstances 实例总数:"+variable.get("nrOfInstances"));
System.out.println("nrOfActiveInstances 当前还没有完成的实例个数:"+variable.get("nrOfActiveInstances"));
System.out.println("nrOfCompletedInstances 当前完成的实例个数数::"+variable.get("nrOfCompletedInstances"));
}

挂起激活


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/**
* 挂起流程实例
*
* @param processInstanceId
* @return
*/
boolean suspendProcessInstanceById(String processInstanceId);

/**
* 删除流程实例
*
* @param processInstanceId
* @param reason
* @return
*/
boolean deleteProcessInstance(String processInstanceId, String reason);

/**
* 激活流程实例(激活挂起的流程实例)
*
* @param processInstanceId
* @return
*/
boolean activateProcessInstanceById(String processInstanceId);

/**
* 挂起流程定义
*
* @param processDefineKey
* @param cascade
* @return
*/
boolean suspendProcessDefineKey(String processDefineKey, boolean cascade);

/**
* 激活流程定义
*
* @param processDefineKey
* @param cascade
* @return
*/
boolean activateProcessDefinitionByKey(String processDefineKey, boolean cascade);

@Override
public boolean suspendProcessInstanceById(String processInstanceId) {
runtimeService.suspendProcessInstanceById(processInstanceId);
return true;
}

@Override
public boolean activateProcessInstanceById(String processInstanceId) {
runtimeService.activateProcessInstanceById(processInstanceId);
return true;
}

@Override
public boolean suspendProcessDefineKey(String processDefineKey, boolean cascade) {
repositoryService.suspendProcessDefinitionByKey(processDefineKey,cascade,new Date());
return true;
}

@Override
public boolean activateProcessDefinitionByKey(String processDefineKey,boolean cascade){
repositoryService.activateProcessDefinitionByKey(processDefineKey,cascade,new Date());
return true;

}

github地址:https://github.com/wsylp/gms.git

本文标题:activiti初体验(七) 委派,转办,会签,挂起,激活

文章作者:wsylp

发布时间:2018年06月01日 - 14:06

最后更新:2020年01月02日 - 10:01

原始链接:http://wsylp.top/2018/06/01/activiti初体验-七-委派-转办-会签-挂起-激活/

许可协议: 本文为 wsylp 版权所有 转载请保留原文链接及作者。

-------------本文结束感谢阅读-------------