From 0417d31de9980cbc1735daffffb308d050ce35b4 Mon Sep 17 00:00:00 2001
From: wfy <260536420@qq.com>
Date: 星期六, 18 九月 2021 16:47:52 +0800
Subject: [PATCH] Merge branch 'master' into wangfy-dev
---
service-common/src/main/java/com/java110/common/smo/impl/OaWorkflowUserInnerServiceSMOImpl.java | 65 +++++++++++++++++++++++++++-----
1 files changed, 54 insertions(+), 11 deletions(-)
diff --git a/service-common/src/main/java/com/java110/common/smo/impl/OaWorkflowUserInnerServiceSMOImpl.java b/service-common/src/main/java/com/java110/common/smo/impl/OaWorkflowUserInnerServiceSMOImpl.java
index 1c5cd00..9dc9edc 100644
--- a/service-common/src/main/java/com/java110/common/smo/impl/OaWorkflowUserInnerServiceSMOImpl.java
+++ b/service-common/src/main/java/com/java110/common/smo/impl/OaWorkflowUserInnerServiceSMOImpl.java
@@ -263,8 +263,13 @@
throw new IllegalArgumentException("浠诲姟宸插鐞�");
}
- //鎵╁睍 宸ヤ綔娴佸姛鑳�
- doTaskAuditAgree(reqJson);
+ //鍒ゆ柇鏄惁涓虹粨鏉熸祦绋�
+ if ("1500".equals(reqJson.getString("auditCode"))) {
+ doTaskFinish(reqJson);
+ } else {
+ //鎵╁睍 宸ヤ綔娴佸姛鑳�
+ doTaskAuditAgree(reqJson);
+ }
String processInstanceId = task.getProcessInstanceId();
Authentication.setAuthenticatedUserId(reqJson.getString("nextUserId"));
@@ -278,6 +283,25 @@
return true;
}
return false;
+ }
+
+ private void doTaskFinish(JSONObject reqJson) {
+ OaWorkflowDataDto oaWorkflowDataDto = new OaWorkflowDataDto();
+ oaWorkflowDataDto.setStoreId(reqJson.getString("storeId"));
+ oaWorkflowDataDto.setBusinessKey(reqJson.getString("id"));
+ oaWorkflowDataDto.setPage(1);
+ oaWorkflowDataDto.setRow(1);
+ List<OaWorkflowDataDto> oaWorkflowDataDtos = oaWorkflowDataInnerServiceSMOImpl.queryOaWorkflowDatas(oaWorkflowDataDto);
+
+ if (oaWorkflowDataDtos == null || oaWorkflowDataDtos.size() < 1) {
+ return;
+ }
+ //淇敼 褰撳墠 涓哄畬鎴�
+ OaWorkflowDataPo oaWorkflowDataPo = new OaWorkflowDataPo();
+ oaWorkflowDataPo.setDataId(oaWorkflowDataDtos.get(0).getDataId());
+ oaWorkflowDataPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+ oaWorkflowDataPo.setContext(reqJson.getString("auditMessage"));
+ oaWorkflowDataInnerServiceSMOImpl.updateOaWorkflowData(oaWorkflowDataPo);
}
/**
@@ -403,6 +427,18 @@
if (task == null) {
throw new IllegalArgumentException("浠诲姟宸插鐞�");
}
+// //閫�鍥炵粰鎻愪氦鑰�
+// if ("1400".equals(reqJson.getString("auditCode"))) {
+// String processInstanceId = task.getProcessInstanceId();
+// Authentication.setAuthenticatedUserId(reqJson.getString("startUserId"));
+// taskService.addComment(reqJson.getString("taskId"), processInstanceId, reqJson.getString("auditMessage"));
+// Map<String, Object> variables = new HashMap<String, Object>();
+// variables.put("nextUserId", reqJson.getString("startUserId"));
+// variables.put("auditCode", reqJson.getString("auditCode"));
+// taskService.complete(reqJson.getString("taskId"), variables);
+//
+// return true;
+// }
String event = doTaskAuditUnAgree(reqJson);
if (OaWorkflowDataDto.EVENT_COMMIT.equals(event)) { //鎻愪氦鐘舵��
@@ -441,7 +477,7 @@
oaWorkflowDataDto = new OaWorkflowDataDto();
oaWorkflowDataDto.setStoreId(reqJson.getString("storeId"));
- oaWorkflowDataDto.setDataId(reqJson.getString(oaWorkflowDataDtos.get(0).getPreDataId()));
+ oaWorkflowDataDto.setDataId(oaWorkflowDataDtos.get(0).getPreDataId());
oaWorkflowDataDto.setPage(1);
oaWorkflowDataDto.setRow(1);
List<OaWorkflowDataDto> preOaWorkflowDataDtos = oaWorkflowDataInnerServiceSMOImpl.queryOaWorkflowDatas(oaWorkflowDataDto);
@@ -455,7 +491,7 @@
reqJson.put("nextUserId", preOaWorkflowDataDtos.get(0).getStaffId());
if ("1400".equals(reqJson.getString("auditCode"))) {
- reqJson.put("nextUserId", reqJson.getString("createUserId"));
+ reqJson.put("nextUserId", reqJson.getString("startUserId"));
}
oaWorkflowDataPo = new OaWorkflowDataPo();
oaWorkflowDataPo.setBusinessKey(preOaWorkflowDataDtos.get(0).getBusinessKey());
@@ -553,6 +589,7 @@
List<SequenceFlow> outgoingFlows = flowNode.getOutgoingFlows();
JSONObject taskObj = null;
taskObj = new JSONObject();
+ taskObj.put("assignee", "-1"); // 榛樿 涓嶉渶瑕佹寚瀹氫笅涓�涓鐞嗕汉 琛ㄧず缁撴潫
boolean isReturn = false;
//閬嶅巻杈撳嚭杩炵嚎
for (SequenceFlow outgoingFlow : outgoingFlows) {
@@ -575,25 +612,31 @@
taskObj.put("backIndex", outgoingFlow.getTargetFlowElement().getName());
isReturn = true;
}
+ //缁撴潫
+ vars.put("auditCode", "1500");
+ if (isCondition(outgoingFlow.getConditionExpression(), vars)) {
+ //true 鑾峰彇杈撳嚭鑺傜偣鍚嶇О
+ taskObj.put("exit", outgoingFlow.getTargetFlowElement().getName());
+ isReturn = true;
+ }
if (!isReturn) {
String assignee = ((UserTask) targetFlowElement).getAssignee();
if (!StringUtil.isEmpty(assignee) && assignee.indexOf("${") < 0) {
taskObj.put("assignee", assignee); // 涓嬩竴鑺傜偣澶勭悊浜�
}
-
if ("${startUserId}".equals(assignee)) {
taskObj.put("assignee", reqJson.getString("startUserId")); // 寮�濮嬩汉
}
+ if ("${nextUserId}".equals(assignee)) {
+ taskObj.put("assignee", "-2"); // 闇�瑕佸墠鍙版寚瀹�
+ }
+ taskObj.put("next", outgoingFlow.getTargetFlowElement().getName());
}
}
-
//濡傛灉涓嬩竴涓负 缁撴潫鑺傜偣
if (targetFlowElement instanceof EndEvent) {
- Map vars = new HashMap();
- vars.put("auditCode", "1100");
- if (isCondition(outgoingFlow.getConditionExpression(), vars)) {
- taskObj.put("assignee", "-1"); // 娌℃湁涓嬩竴澶勭悊浜轰簡
- }
+ //true 鑾峰彇杈撳嚭鑺傜偣鍚嶇О
+ taskObj.put("exit", "1");
}
}
tasks.add(taskObj);
--
Gitblit v1.8.0