會簽 即多人執行當前任務 設置判斷數 通過 例如:設置了是半數通過即可通過當前節點 如果當前是4人那就是2人即通過 如果是6人那就是三人即通過 如果是5人 即三人通過 看各位的判斷值是如何書寫 這個值是根據各位需求改變的 以下是xml <process id="living" name="MoreLiving" isExecutable="true"> <documentation>測試flowable多實例</documentation> <startEvent id="Start"></startEvent> <userTask id="UserTask1" name="U1" flowable:assignee="${assignee}"> <multiInstanceLoopCharacteristics isSequential="false" flowable:collection="assigneeList" flowable:elementVariable="assignee"> <loopCardinality>4</loopCardinality> <completionCondition>${nrOfCompletedInstances/nrOfInstances >= 0.50}</completionCondition> </multiInstanceLoopCharacteristics> </userTask> <userTask id="UserTask2" name="U2"></userTask> <endEvent id="End"></endEvent> <sequenceFlow id="U2-E" sourceRef="UserTask2" targetRef="End"></sequenceFlow> <sequenceFlow id="S-U1" sourceRef="Start" targetRef="UserTask1"></sequenceFlow> <sequenceFlow id="U1-U2" sourceRef="UserTask1" targetRef="UserTask2"></sequenceFlow> </process> <completionCondition>${nrOfCompletedInstances/nrOfInstances >= 0.50}</completionCondition> >=0.50 即通過數是>=人員數的50% flowable:collection="assigneeList" ${assigneeList}即取的人員列表名稱 以下是java代碼 //主體流程的開始 //創建數據庫鏈接信息 ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration() .setJdbcUrl("jdbc:mysql://127.0.0.1:3306/自庫名?characterEncoding=UTF-8") .setJdbcUsername("賬號") .setJdbcPassword("密碼") .setJdbcDriver("com.mysql.jdbc.Driver") .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE); // 通過數據庫鏈接信息 創建Flowable流程引擎 Create Flowable process engine ProcessEngine processEngine = cfg.buildProcessEngine(); // 獲取Flowable服務 Get Flowable repositoryService RepositoryService repositoryService = processEngine.getRepositoryService(); // 獲取Flowable服務 Get Flowable runtimeService RuntimeService runtimeService = processEngine.getRuntimeService(); // 獲取taskService對象 Get the first task TaskService taskService = processEngine.getTaskService(); //獲取fromserver對象 操作from表單的東西 FormService formService = processEngine.getFormService(); Deployment deploy = repositoryService.createDeployment().addClasspathResource("/MoreLiving.bpmn20.xml").deploy(); System.out.println(deploy.getId()); HashMap<String, Object> map = new HashMap<>(); //定義的人員列表4人 String[] v = { "shareniu1", "shareniu2", "shareniu3", "shareniu4" }; map.put("per", "bbb"); map.put("money", "1111"); map.put("assigneeList", Arrays.asList(v)); ProcessInstance pi = runtimeService.startProcessInstanceByKey("living",map); List<Task> list = taskService.createTaskQuery().processInstanceId(pi.getId()).list(); System.out.println(list.size()); int i=0; for (Task task : list) { i=i+1; System.out.println("==========================所有節點name is = "+task.getName()); System.out.println("==========================所有節點id is = "+task.getId()); System.out.println("============ i ="+i); //變相判斷已經二人提交 之后人員不提交 if (i<3) { System.out.println("================== 提交 節點 id is="+task.getId()); taskService.complete(task.getId()); } } //判斷值為 50% 所以提交人達到2人 會簽節點即可通過 Task task = taskService.createTaskQuery().processInstanceId(pi.getId()).singleResult(); System.out.println("===================================================================================="); //驗證是否已通過 System.out.println("===================task id is="+task.getId()); System.out.println("===================task name is="+task.getName()); 我的判斷值為 50% 所以提交人達到2人 會簽節點即可通過