日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

flowable 实现多实例-会签-动态配置人员 参考demo

發布時間:2024/9/27 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 flowable 实现多实例-会签-动态配置人员 参考demo 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

會簽 即多人執行當前任務 設置判斷數 通過 例如:設置了是半數通過即可通過當前節點 如果當前是4人那就是2人即通過 如果是6人那就是三人即通過 如果是5人 即三人通過 看各位的判斷值是如何書寫 這個值是根據各位需求改變的
以下是xml

<?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.flowable.org/processdef"><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="S-U1" sourceRef="Start" targetRef="UserTask1"></sequenceFlow><sequenceFlow id="U1-U2" sourceRef="UserTask1" targetRef="UserTask2"></sequenceFlow><sequenceFlow id="U2-E" sourceRef="UserTask2" targetRef="End"></sequenceFlow></process><bpmndi:BPMNDiagram id="BPMNDiagram_living"><bpmndi:BPMNPlane bpmnElement="living" id="BPMNPlane_living"><bpmndi:BPMNShape bpmnElement="Start" id="BPMNShape_Start"><omgdc:Bounds height="30.0" width="30.0" x="100.0" y="163.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="UserTask1" id="BPMNShape_UserTask1"><omgdc:Bounds height="80.0" width="100.0" x="315.0" y="138.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="UserTask2" id="BPMNShape_UserTask2"><omgdc:Bounds height="80.0" width="100.0" x="570.0" y="138.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="End" id="BPMNShape_End"><omgdc:Bounds height="28.0" width="28.0" x="810.0" y="164.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNEdge bpmnElement="S-U1" id="BPMNEdge_S-U1"><omgdi:waypoint x="129.94999970750393" y="178.0"></omgdi:waypoint><omgdi:waypoint x="314.99999999991076" y="178.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="U2-E" id="BPMNEdge_U2-E"><omgdi:waypoint x="669.9499999999294" y="178.0"></omgdi:waypoint><omgdi:waypoint x="810.0" y="178.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="U1-U2" id="BPMNEdge_U1-U2"><omgdi:waypoint x="414.9499999999562" y="178.0"></omgdi:waypoint><omgdi:waypoint x="570.0" y="178.0"></omgdi:waypoint></bpmndi:BPMNEdge></bpmndi:BPMNPlane></bpmndi:BPMNDiagram> </definitions>

${nrOfCompletedInstances/nrOfInstances >= 0.50}

>=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 engineProcessEngine processEngine = cfg.buildProcessEngine();// 獲取Flowable服務 Get Flowable repositoryServiceRepositoryService repositoryService = processEngine.getRepositoryService();// 獲取Flowable服務 Get Flowable runtimeServiceRuntimeService runtimeService = processEngine.getRuntimeService();// 獲取taskService對象 Get the first taskTaskService 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人 會簽節點即可通過

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的flowable 实现多实例-会签-动态配置人员 参考demo的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。