flowable 任務多實例


項目地址:https://gitee.com/lwj/flowable.git 分支flowable-base
*業務場景:
收集每個員工的績效考核信息;
收集一次組織活動的信息;
一個合同需要三個經理審批,可以是順序的也可以是並行的;
一個合同計划審批有30個人審批,只需要其中70%的人審批通過即可。等等 *

1、任務多實例四個內置變量
屬性 解釋
nrOfInstances 一共有多少個實例
nrOfCompletedInstances 已經完成的實例個數
nrOfActiveInstances 未完成的實例個數
2、配置多實例

2.1、配置參數
在這里插入圖片描述
2.2、配置候選人
在這里插入圖片描述
2.3、配置結束條件
在這里插入圖片描述

3、啟動設置userList
public ReturnVo add(Leave leave, String sessionId) { ReturnVo returnVo = new ReturnVo(ReturnCode.FAIL, "添加失敗"); try { String leaveId = UUIDGenerator.generate(); leave.setId(leaveId); StartProcessInstanceVo startProcessInstanceVo = new StartProcessInstanceVo(); startProcessInstanceVo.setBusinessKey(leaveId); User user = SecurityUtils.getCurrentUserObject(); startProcessInstanceVo.setCreator(user.getId()); startProcessInstanceVo.setCurrentUserCode(user.getId()); startProcessInstanceVo.setFormName("請假流程"); startProcessInstanceVo.setSystemSn("flow"); startProcessInstanceVo.setProcessDefinitionKey("leave"); Map<String, Object> variables = new HashMap<>(); variables.put("days", leave.getDays()); startProcessInstanceVo.setVariables(variables); //設置三個人作為多實例的人員 List<String> userList = new ArrayList<>(); userList.add("00000005"); userList.add("00000006"); variables.put("userList", userList); ReturnVo<ProcessInstance> returnStart = flowableProcessInstanceService.startProcessInstanceByKey(startProcessInstanceVo); if (returnStart.getCode().equals(ReturnCode.SUCCESS)){ String processInstanceId = returnStart.getData().getProcessInstanceId(); leave.setProcessInstanceId(processInstanceId); this.LeaveService.insertLeave(leave); returnVo = new ReturnVo(ReturnCode.SUCCESS, "添加成功"); }else { returnVo = new ReturnVo(returnStart.getCode(), returnStart.getMsg()); } } catch (Exception e) { logger.error("LeaveController-add:", e); e.printStackTrace(); } return returnVo; }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM