关于Activiti中taskService的addUserIdentityLink方法的数据库操作

taskService.addUserIdentityLink(task.getId(), "user102", IdentityLinkType.CANDIDATE);

这个方法各向act_ru_identitylink表和act_hi_identitylink表中插入taskId、userId、type为candidate的一条记录

taskService.addUserIdentityLink(task.getId(), "user102", IdentityLinkType.OWNER);

这个方法向act_ru_task表中修改id为taskId的记录的OWNER字段为userId

taskService.addUserIdentityLink(task.getId(), "user102", IdentityLinkType.ASSIGNEE);

这个方法向act_ru_task表中修改id为taskId的记录的ASSIGNEE字段为userId


taskService.getIdentityLinksForTask("task102");
这个方法调用会查出act_ru_identitylink表中TASK_ID字段为taskId的记录 以及 act_ru_task表中OWNER、ASSIGNEE两个字段中非空的字段生成对应的IdentityLink对象。

如果OWNER字段非空会生成一个IdentityLink对象,包含了OWNER和TASK的相关属性。如果ASSIGNEE字段非空,也会生成一个单独的IdentityLink对象包含ASSIGNEE和TASK相关属性。


想了一下其中的原因就是,owner是任务所有者只能是一个,assignee是任务确定的接收者,也只能是一个,candidate是可领取任务的人,那么就会有很多,所以candidate单独放在identitylink表中关联task,而前两个就直接在task表中标明即可,统计的时候这三种情况都要统计进去。

ActivitiTaskService类是用于管理任务的服务类,可以用于创建、查询、完成、委托、指派和删除任务等操作。 常用的TaskService方法和用法如下: 1. 创建任务:可以使用TaskService的newTask()方法创建一个新的任务,并设置任务的名称、描述、优先级等信息。例如: ``` Task task = taskService.newTask(); task.setName("任务1"); task.setDescription("这是任务1的描述"); task.setPriority(10); taskService.saveTask(task); ``` 2. 查询任务:可以使用TaskService的createTaskQuery()方法创建一个任务查询对象,然后使用该对象的各种查询条件查询任务。例如: ``` TaskQuery taskQuery = taskService.createTaskQuery(); List<Task> taskList = taskQuery.taskAssignee("张三").list(); for (Task task : taskList) { System.out.println("任务名称:" + task.getName()); } ``` 3. 完成任务:可以使用TaskService的complete()方法完成一个任务,并设置任务的处理结果。例如: ``` Map<String, Object> variables = new HashMap<>(); variables.put("result", "通过"); taskService.complete(taskId, variables); ``` 4. 委托任务:可以使用TaskService的delegateTask()方法将一个任务委托给另一个用户处理。例如: ``` taskService.delegateTask(taskId, "李四"); ``` 5. 指派任务:可以使用TaskService的setAssignee()方法将一个任务指派给另一个用户处理。例如: ``` taskService.setAssignee(taskId, "王五"); ``` 6. 删除任务:可以使用TaskService的deleteTask()方法删除一个任务。例如: ``` taskService.deleteTask(taskId); ``` 总之,TaskService类提供了丰富的任务管理方法,可以帮助开发者方便地实现流程的任务处理操作
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值