把Activiti打入你的脑袋,再次通过驳回、取消流程快速打入
目录
Activiti(一)入门了解
Activiti(二)整合
Activiti(三)部署、发布流程
Activiti(四)查询代办/已办、审核
Activiti零零碎碎的坑
一、审核人驳回流程
| 思路 |
---|
| 根据流程实例ID和当前用户ID查询流程任务是否存在 | | 1.根据当前人员设置驳回节点状态 | 存在 | 2.驳回节点状态退回审核任务到发起人 | – | – | 不存在 | 返回不成功状态码 |
public Task rejectTest(String userId,String processInstanceId) {
Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).taskInvolvedUser(userId).singleResult();
if(null != task){
Map<String, Object> args = new HashMap<>();
String assignee = task.getName();
args.put("applyState", Constants.EPIDEMIC_APPLY_STATE_BH);
args.put("applyExamine", assignee);
taskService.complete(task.getId(), args);
}
return task;
}
二、重新发起流程
| 思路 |
---|
| 根据流程实例ID和当前用户ID查询流程任务是否存在 | | 1.根据当前人员设置重新申请节点状态 | 存在 | 2.获取驳回人员信息 | | 3.通过节点状态、驳回人员信息重新申请回到审核人员继续审核 | – | – | | 1.返回审核节点状态 | 不存在 | 2.用原有业务逻辑进行重新申请 |
public String backProcessTest(String userId,String processInstanceId){
Map<String, Object> args = new HashMap<>();
String applyExamine = runtimeService.getVariable(processInstanceId, "applyExamine")+"";
args.put("applyState", "6");
args.put("applyExamine", applyExamine);
Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).taskAssignee(userId).singleResult();
if(null != task) {
taskService.complete(task.getId(), args);
return applyExamine;
}
return "";
}
三、取消流程
| 思路 |
---|
| 根据流程实例ID获取流程实例是否还在执行 | | 1.获取审核节点状态(是否审核中还是审核通过) | 存在 | 2.根据审核节点状态判断中途取消、审核通过取消 | | 3.结束流程实例 | – | – | | 1.返回审核节点状态 | 不存在 | 2.业务代码处理流程业务表 |
public Integer withdrawTest(String userId,String processInstanceId){
Execution execution = runtimeService.createExecutionQuery().parentId(processInstanceId).singleResult();
int applyState = Integer.parseInt(runtimeService.getVariable(processInstanceId, "applyState")+"");
applyState = applyState < 3 ? Constants.EPIDEMIC_APPLY_STATE_ZTCX : Constants.EPIDEMIC_APPLY_STATE_CX;
if(!Objects.isNull(execution)){
runtimeService.deleteProcessInstance(execution.getProcessInstanceId(), "学生"+userId+"取消申请");
}
return applyState;
}
三、实例代码
查询代办任务: 取消流程:
取消人员查询任务时没有流程信息了
工作流程画图、部署、启动流程、查询代办/已办/已通过、审核、驳回、重新发起、取消申请讲解工作流的重要性
彩蛋:
1.整合Bpmnjs画图工具。 2.任务到达节点标红并显示图片。 即将期待
|