From fab724b87645a2d2c07ca27904bad7b40762b2d4 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期日, 21 六月 2020 11:19:44 +0800
Subject: [PATCH] 调试流程
---
service-common/src/main/java/com/java110/common/smo/impl/WorkflowInnerServiceSMOImpl.java | 190 ++++++++++++++++++++++++-----------------------
1 files changed, 97 insertions(+), 93 deletions(-)
diff --git a/service-common/src/main/java/com/java110/common/smo/impl/WorkflowInnerServiceSMOImpl.java b/service-common/src/main/java/com/java110/common/smo/impl/WorkflowInnerServiceSMOImpl.java
index 49e73dc..60627be 100644
--- a/service-common/src/main/java/com/java110/common/smo/impl/WorkflowInnerServiceSMOImpl.java
+++ b/service-common/src/main/java/com/java110/common/smo/impl/WorkflowInnerServiceSMOImpl.java
@@ -149,115 +149,115 @@
//
// RepositoryService repositoryService = processEngine.getRepositoryService();
// repositoryService.deleteDeployment("1");
+ try {
+ // 1. 寤虹珛妯″瀷
+ BpmnModel model = new BpmnModel();
+ Process process = new Process();
+ model.addProcess(process);
+ process.setId(WorkflowDto.DEFAULT_PROCESS + workflowDto.getFlowId());
+ process.setName(workflowDto.getFlowName());
+ process.setDocumentation(workflowDto.getDescrible());
+ //娣诲姞娴佺▼
+ //寮�濮嬭妭鐐�
+ process.addFlowElement(createStartEvent());
+ List<WorkflowStepDto> workflowStepDtos = workflowDto.getWorkflowSteps();
+ for (int i = 0; i < workflowStepDtos.size(); i++) {
+ WorkflowStepDto step = workflowStepDtos.get(i);
+ //鍒ゆ柇鏄惁浼氱
+ if (WorkflowStepDto.TYPE_COUNTERSIGN.equals(step.getType())) {
+ //浼氱
+ //鍔犲叆骞惰缃戝叧-鍒嗘敮
+ process.addFlowElement(createParallelGateway("parallelGateway-fork" + i, "parallelGateway-fork" + i));
+ //鑾峰彇瑙掕壊涓嬫墍鏈夌敤鎴�
+ List<WorkflowStepStaffDto> userList = step.getWorkflowStepStaffs();
+ for (int u = 0; u < userList.size(); u++) {
+ //骞惰缃戝叧鍒嗘敮鐨勫鏍歌妭鐐�
+ process.addFlowElement(createUserTask("userTask" + i + u, "userTask" + i + u, userList.get(u).getStaffId()));
+ }
+ //骞惰缃戝叧-姹囪仛
+ process.addFlowElement(createParallelGateway("parallelGateway-join" + i, "parallelGateway-join" + i));
- // 1. 寤虹珛妯″瀷
- BpmnModel model = new BpmnModel();
- Process process = new Process();
- model.addProcess(process);
- process.setId(WorkflowDto.DEFAULT_PROCESS + workflowDto.getFlowId());
- process.setName(workflowDto.getFlowName());
- process.setDocumentation(workflowDto.getDescrible());
- //娣诲姞娴佺▼
- //寮�濮嬭妭鐐�
- process.addFlowElement(createStartEvent());
- List<WorkflowStepDto> workflowStepDtos = workflowDto.getWorkflowSteps();
- for (int i = 0; i < workflowStepDtos.size(); i++) {
- WorkflowStepDto step = workflowStepDtos.get(i);
- //鍒ゆ柇鏄惁浼氱
- if (WorkflowStepDto.TYPE_COUNTERSIGN.equals(step.getType())) {
- //浼氱
- //鍔犲叆骞惰缃戝叧-鍒嗘敮
- process.addFlowElement(createParallelGateway("parallelGateway-fork" + i, "parallelGateway-fork" + i));
- //鑾峰彇瑙掕壊涓嬫墍鏈夌敤鎴�
- List<WorkflowStepStaffDto> userList = step.getWorkflowStepStaffs();
- for (int u = 0; u < userList.size(); u++) {
- //骞惰缃戝叧鍒嗘敮鐨勫鏍歌妭鐐�
- process.addFlowElement(createUserTask("userTask" + i + u, "userTask" + i + u, userList.get(u).getStaffId()));
- }
- //骞惰缃戝叧-姹囪仛
- process.addFlowElement(createParallelGateway("parallelGateway-join" + i, "parallelGateway-join" + i));
+ process.addFlowElement(createUserTask("repulse" + i, "repulse" + i, "${startUserId}"));
- process.addFlowElement(createUserTask("repulse" + i, "repulse" + i, "${startUserId}"));
-
- } else {
- //鏅�氭祦杞�
- //瀹℃牳鑺傜偣
- process.addFlowElement(createGroupTask("task" + i, "task" + i, step.getWorkflowStepStaffs().get(0).getStaffId()));
- //鍥為��鑺傜偣
- process.addFlowElement(createUserTask("repulse" + i, "repulse" + i, "${startUserId}"));
- }
- }
- //缁撴潫鑺傜偣
- process.addFlowElement(createEndEvent());
-
- //杩炵嚎
- for (int y = 0; y < workflowStepDtos.size(); y++) {
- WorkflowStepDto step = workflowStepDtos.get(y);
- //鏄惁浼氱
- if (WorkflowStepDto.TYPE_COUNTERSIGN.equals(step.getType())) {
- //浼氱
- //鍒ゆ柇鏄惁绗竴涓妭鐐�
- if (y == 0) {
- //寮�濮嬭妭鐐瑰拰骞惰缃戝叧-鍒嗘敮杩炵嚎
- process.addFlowElement(createSequenceFlow("startEvent", "parallelGateway-fork" + y, "startEvent-parallelGateway-fork" + y, ""));
} else {
- //瀹℃牳鑺傜偣鎴栬�呭苟琛岀綉鍏�-姹囪仛鍒板苟琛岀綉鍏�-鍒嗘敮
- //鍒ゆ柇涓婁竴涓妭鐐规槸鍚︽槸浼氱
- if (WorkflowStepDto.TYPE_COUNTERSIGN.equals(workflowStepDtos.get(y - 1).getType())) {
- process.addFlowElement(createSequenceFlow("parallelGateway-join" + (y - 1), "parallelGateway-fork" + y, "parallelGateway-join-parallelGateway-fork-鍒嗘敮" + y, ""));
+ //鏅�氭祦杞�
+ //瀹℃牳鑺傜偣
+ process.addFlowElement(createGroupTask("task" + i, "task" + i, step.getWorkflowStepStaffs().get(0).getStaffId()));
+ //鍥為��鑺傜偣
+ process.addFlowElement(createUserTask("repulse" + i, "repulse" + i, "${startUserId}"));
+ }
+ }
+ //缁撴潫鑺傜偣
+ process.addFlowElement(createEndEvent());
+
+ //杩炵嚎
+ for (int y = 0; y < workflowStepDtos.size(); y++) {
+ WorkflowStepDto step = workflowStepDtos.get(y);
+ //鏄惁浼氱
+ if (WorkflowStepDto.TYPE_COUNTERSIGN.equals(step.getType())) {
+ //浼氱
+ //鍒ゆ柇鏄惁绗竴涓妭鐐�
+ if (y == 0) {
+ //寮�濮嬭妭鐐瑰拰骞惰缃戝叧-鍒嗘敮杩炵嚎
+ process.addFlowElement(createSequenceFlow("startEvent", "parallelGateway-fork" + y, "startEvent-parallelGateway-fork" + y, ""));
} else {
- process.addFlowElement(createSequenceFlow("task" + (y - 1), "repulse" + y, "task-repulse" + y, ""));
+ //瀹℃牳鑺傜偣鎴栬�呭苟琛岀綉鍏�-姹囪仛鍒板苟琛岀綉鍏�-鍒嗘敮
+ //鍒ゆ柇涓婁竴涓妭鐐规槸鍚︽槸浼氱
+ if (WorkflowStepDto.TYPE_COUNTERSIGN.equals(workflowStepDtos.get(y - 1).getType())) {
+ process.addFlowElement(createSequenceFlow("parallelGateway-join" + (y - 1), "parallelGateway-fork" + y, "parallelGateway-join-parallelGateway-fork-鍒嗘敮" + y, ""));
+ } else {
+ process.addFlowElement(createSequenceFlow("task" + (y - 1), "repulse" + y, "task-repulse" + y, ""));
+ }
}
- }
- //骞惰缃戝叧-鍒嗘敮鍜屼細绛剧敤鎴疯繛绾匡紝浼氱鐢ㄦ埛鍜屽苟琛岀綉鍏�-姹囪仛杩炵嚎
- List<WorkflowStepStaffDto> userList = step.getWorkflowStepStaffs();
- for (int u = 0; u < userList.size(); u++) {
- process.addFlowElement(createSequenceFlow("parallelGateway-fork" + y, "userTask" + y + u, "parallelGateway-fork-userTask" + y + u, ""));
- process.addFlowElement(createSequenceFlow("userTask" + y + u, "parallelGateway-join" + y, "userTask-parallelGateway-join", ""));
- if (u == (userList.size() - 1)) {
- process.addFlowElement(createSequenceFlow("parallelGateway-join" + y, "repulse" + y, "parallelGateway-join-repulse", "${flag=='false'}"));
- process.addFlowElement(createSequenceFlow("repulse" + y, "task" + getNormal(workflowStepDtos, y), "repulse-task" + y, ""));
+ //骞惰缃戝叧-鍒嗘敮鍜屼細绛剧敤鎴疯繛绾匡紝浼氱鐢ㄦ埛鍜屽苟琛岀綉鍏�-姹囪仛杩炵嚎
+ List<WorkflowStepStaffDto> userList = step.getWorkflowStepStaffs();
+ for (int u = 0; u < userList.size(); u++) {
+ process.addFlowElement(createSequenceFlow("parallelGateway-fork" + y, "userTask" + y + u, "parallelGateway-fork-userTask" + y + u, ""));
+ process.addFlowElement(createSequenceFlow("userTask" + y + u, "parallelGateway-join" + y, "userTask-parallelGateway-join", ""));
+ if (u == (userList.size() - 1)) {
+ process.addFlowElement(createSequenceFlow("parallelGateway-join" + y, "repulse" + y, "parallelGateway-join-repulse", "${flag=='false'}"));
+ process.addFlowElement(createSequenceFlow("repulse" + y, "task" + getNormal(workflowStepDtos, y), "repulse-task" + y, ""));
+ }
}
- }
- //鏈�鍚庝竴涓妭鐐� 骞惰缃戝叧-姹囪仛鍒扮粨鏉熻妭鐐�
+ //鏈�鍚庝竴涓妭鐐� 骞惰缃戝叧-姹囪仛鍒扮粨鏉熻妭鐐�
// if (y == (userList.size() - 1)) {
// process.addFlowElement(createSequenceFlow("parallelGateway-join" + y, "endEvent", "parallelGateway-join-endEvent", ""));
// }
- } else {
- //鏅�氭祦杞�
- //绗竴涓妭鐐�
- if (y == 0) {
- //寮�濮嬭妭鐐瑰拰瀹℃牳鑺傜偣1
- process.addFlowElement(createSequenceFlow("startEvent", "task" + y, "startEvent-task" + y, ""));
} else {
- //鍒ゆ柇涓婁竴涓妭鐐规槸鍚︿細绛�
- if (WorkflowStepDto.TYPE_COUNTERSIGN.equals(workflowStepDtos.get(y - 1).getType())) {
- //浼氱
- //骞惰缃戝叧-姹囪仛鍒板鏍歌妭鐐�
- process.addFlowElement(createSequenceFlow("parallelGateway-join" + (y - 1), "task" + y, "parallelGateway-join-task" + y, ""));
+ //鏅�氭祦杞�
+ //绗竴涓妭鐐�
+ if (y == 0) {
+ //寮�濮嬭妭鐐瑰拰瀹℃牳鑺傜偣1
+ process.addFlowElement(createSequenceFlow("startEvent", "task" + y, "startEvent-task" + y, ""));
} else {
- //鏅��
- process.addFlowElement(createSequenceFlow("task" + (y - 1), "task" + y, "task" + (y - 1) + "task" + y, "${flag=='true'}"));
+ //鍒ゆ柇涓婁竴涓妭鐐规槸鍚︿細绛�
+ if (WorkflowStepDto.TYPE_COUNTERSIGN.equals(workflowStepDtos.get(y - 1).getType())) {
+ //浼氱
+ //骞惰缃戝叧-姹囪仛鍒板鏍歌妭鐐�
+ process.addFlowElement(createSequenceFlow("parallelGateway-join" + (y - 1), "task" + y, "parallelGateway-join-task" + y, ""));
+ } else {
+ //鏅��
+ process.addFlowElement(createSequenceFlow("task" + (y - 1), "task" + y, "task" + (y - 1) + "task" + y, "${flag=='true'}"));
+ }
}
+ //鏄惁鏈�鍚庝竴涓妭鐐�
+ if (y == (workflowStepDtos.size() - 1)) {
+ //瀹℃牳鑺傜偣鍒扮粨鏉熻妭鐐�
+ process.addFlowElement(createSequenceFlow("task" + y, "endEvent", "task" + y + "endEvent", "${flag=='true'}"));
+ }
+ //瀹℃牳鑺傜偣鍒板洖閫�鑺傜偣
+ process.addFlowElement(createSequenceFlow("task" + y, "repulse" + y, "task-repulse" + y, "${flag=='false'}"));
+ process.addFlowElement(createSequenceFlow("repulse" + y, "task" + y, "repulse-task" + y, ""));
}
- //鏄惁鏈�鍚庝竴涓妭鐐�
- if (y == (workflowStepDtos.size() - 1)) {
- //瀹℃牳鑺傜偣鍒扮粨鏉熻妭鐐�
- process.addFlowElement(createSequenceFlow("task" + y, "endEvent", "task" + y + "endEvent", "${flag=='true'}"));
- }
- //瀹℃牳鑺傜偣鍒板洖閫�鑺傜偣
- process.addFlowElement(createSequenceFlow("task" + y, "repulse" + y, "task-repulse" + y, "${flag=='false'}"));
- process.addFlowElement(createSequenceFlow("repulse" + y, "task" + y, "repulse-task" + y, ""));
}
- }
- // 2. 鐢熸垚鐨勫浘褰俊鎭�
- new BpmnAutoLayout(model).execute();
+ // 2. 鐢熸垚鐨勫浘褰俊鎭�
+ new BpmnAutoLayout(model).execute();
- // 3. 閮ㄧ讲娴佺▼
- Deployment deployment = processEngine.getRepositoryService().createDeployment().addBpmnModel(process.getId() + ".bpmn", model).name(process.getId() + "_deployment").deploy();
- workflowDto.setProcessDefinitionKey(deployment.getId());
- // // 4. 鍚姩涓�涓祦绋嬪疄渚�
+ // 3. 閮ㄧ讲娴佺▼
+ Deployment deployment = processEngine.getRepositoryService().createDeployment().addBpmnModel(process.getId() + ".bpmn", model).name(process.getId() + "_deployment").deploy();
+ workflowDto.setProcessDefinitionKey(deployment.getId());
+ // // 4. 鍚姩涓�涓祦绋嬪疄渚�
// ProcessInstance processInstance = processEngine.getRuntimeService().startProcessInstanceByKey(process.getId());
//
// // 5. 鑾峰彇娴佺▼浠诲姟
@@ -273,7 +273,11 @@
// }catch (Exception e){
// e.printStackTrace();
// }
+ } catch (Exception e) {
+ logger.error("閮ㄧ讲宸ヤ綔娴佸け璐�", e);
+ }
+ logger.debug("宸ヤ綔娴侀儴缃插畬鎴�");
return workflowDto;
}
--
Gitblit v1.8.0