From bdcb64f0293f27e2dfb3de12a60f6e8412cb962b Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 26 五月 2022 01:45:22 +0800
Subject: [PATCH] 退费修改为 从证书地址中获取
---
service-common/src/main/java/com/java110/common/smo/impl/OaWorkflowUserInnerServiceSMOImpl.java | 368 +++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 287 insertions(+), 81 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 491b9dc..0f15842 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
@@ -2,33 +2,36 @@
import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Transactional;
import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.PageDto;
import com.java110.dto.auditMessage.AuditMessageDto;
+import com.java110.dto.oaWorkflowData.OaWorkflowDataDto;
import com.java110.dto.user.UserDto;
import com.java110.dto.workflow.WorkflowDto;
import com.java110.entity.audit.AuditUser;
import com.java110.intf.common.IOaWorkflowUserInnerServiceSMO;
import com.java110.intf.common.IWorkflowInnerServiceSMO;
+import com.java110.intf.oa.IOaWorkflowDataInnerServiceSMO;
import com.java110.intf.user.IUserInnerServiceSMO;
+import com.java110.po.oaWorkflowData.OaWorkflowDataPo;
import com.java110.utils.util.Assert;
+import com.java110.utils.util.DateUtil;
import com.java110.utils.util.StringUtil;
import org.activiti.bpmn.model.*;
import org.activiti.engine.*;
-import org.activiti.engine.history.HistoricActivityInstance;
import org.activiti.engine.history.HistoricProcessInstance;
import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.history.HistoricTaskInstanceQuery;
import org.activiti.engine.impl.identity.Authentication;
-import org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity;
import org.activiti.engine.query.Query;
-import org.activiti.engine.runtime.Execution;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Comment;
import org.activiti.engine.task.Task;
import org.activiti.engine.task.TaskQuery;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import com.java110.core.log.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@@ -64,6 +67,9 @@
@Autowired
private RepositoryService repositoryService;
+ @Autowired
+ private IOaWorkflowDataInnerServiceSMO oaWorkflowDataInnerServiceSMOImpl;
+
/**
* 鍚姩娴佺▼
@@ -76,6 +82,12 @@
//variables.put("reqJson", reqJson);
variables.put("startUserId", reqJson.getString("createUserId"));
variables.put("nextUserId", reqJson.getString("createUserId"));
+ UserDto userDto = new UserDto();
+ userDto.setUserId(reqJson.getString("createUserId"));
+ List<UserDto> users = userInnerServiceSMOImpl.getUsers(userDto);
+
+ Assert.listOnlyOne(users, "鐢ㄦ埛涓嶅瓨鍦�");
+
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(getWorkflowDto(reqJson.getString("flowId")), reqJson.getString("id"), variables);
//灏嗗緱鍒扮殑瀹炰緥娴佺▼id鍊艰祴缁欎箣鍓嶈缃殑鍙橀噺
String processInstanceId = processInstance.getId();
@@ -83,6 +95,20 @@
reqJson.put("processInstanceId", processInstanceId);
//绗竴涓妭鐐硅嚜鍔ㄦ彁浜�
//autoFinishFirstTask(reqJson);
+ //鍒峰叆鎵╁睍琛�
+ OaWorkflowDataPo oaWorkflowDataPo = null;
+ oaWorkflowDataPo = new OaWorkflowDataPo();
+ oaWorkflowDataPo.setBusinessKey(reqJson.getString("id"));
+ oaWorkflowDataPo.setFlowId(reqJson.getString("flowId"));
+ oaWorkflowDataPo.setContext(reqJson.getString("auditMessage"));
+ oaWorkflowDataPo.setDataId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_dataId));
+ oaWorkflowDataPo.setEvent(OaWorkflowDataDto.EVENT_COMMIT);
+ oaWorkflowDataPo.setPreDataId("-1");
+ oaWorkflowDataPo.setStaffId(reqJson.getString("createUserId"));
+ oaWorkflowDataPo.setStaffName(users.get(0).getName());
+ oaWorkflowDataPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+ oaWorkflowDataPo.setStoreId(reqJson.getString("storeId"));
+ oaWorkflowDataInnerServiceSMOImpl.saveOaWorkflowData(oaWorkflowDataPo);
return reqJson;
}
@@ -231,20 +257,29 @@
}
+ @Java110Transactional
public boolean completeTask(@RequestBody JSONObject reqJson) {
TaskService taskService = processEngine.getTaskService();
Task task = taskService.createTaskQuery().taskId(reqJson.getString("taskId")).singleResult();
if (task == null) {
throw new IllegalArgumentException("浠诲姟宸插鐞�");
}
+
+ //鍒ゆ柇鏄惁涓虹粨鏉熸祦绋�
+ if ("1500".equals(reqJson.getString("auditCode"))) {
+ doTaskFinish(reqJson);
+ } else {
+ //鎵╁睍 宸ヤ綔娴佸姛鑳�
+ doTaskAuditAgree(reqJson);
+ }
+
String processInstanceId = task.getProcessInstanceId();
Authentication.setAuthenticatedUserId(reqJson.getString("nextUserId"));
taskService.addComment(reqJson.getString("taskId"), processInstanceId, reqJson.getString("auditMessage"));
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("nextUserId", reqJson.getString("nextUserId"));
- //variables.put("startUserId", reqJson.getString("startUserId"));
+ variables.put("auditCode", reqJson.getString("auditCode"));
taskService.complete(reqJson.getString("taskId"), variables);
-
ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
if (pi == null) {
return true;
@@ -252,88 +287,229 @@
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);
+ }
+
+ /**
+ * 澶勭悊 瀹℃牳鐘舵��
+ *
+ * @param reqJson
+ */
+ private void doTaskAuditAgree(JSONObject reqJson) {
+ UserDto userDto = new UserDto();
+ userDto.setUserId(reqJson.getString("nextUserId"));
+ List<UserDto> users = userInnerServiceSMOImpl.getUsers(userDto);
+
+ Assert.listOnlyOne(users, "鐢ㄦ埛涓嶅瓨鍦�");
+
+ String preDataId = "-1";
+ //鏌ヨ褰撳墠鑺傜偣
+ 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);
+
+ OaWorkflowDataPo oaWorkflowDataPo = null;
+ if (oaWorkflowDataDtos == null || oaWorkflowDataDtos.size() < 1) {
+ oaWorkflowDataPo = new OaWorkflowDataPo();
+ oaWorkflowDataPo.setBusinessKey(reqJson.getString("id"));
+ oaWorkflowDataPo.setFlowId(reqJson.getString("flowId"));
+ oaWorkflowDataPo.setContext("");
+ oaWorkflowDataPo.setDataId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_dataId));
+ oaWorkflowDataPo.setEvent(OaWorkflowDataDto.EVENT_COMMIT);
+ oaWorkflowDataPo.setPreDataId(preDataId);
+ oaWorkflowDataPo.setStaffId(reqJson.getString("nextUserId"));
+ oaWorkflowDataPo.setStaffName(users.get(0).getName());
+ oaWorkflowDataPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+ oaWorkflowDataPo.setStoreId(reqJson.getString("storeId"));
+ oaWorkflowDataInnerServiceSMOImpl.saveOaWorkflowData(oaWorkflowDataPo);
+ return;
+ }
+ //淇敼 褰撳墠 涓哄畬鎴�
+ 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);
+
+ //濡傛灉涓�-1 涓嶆彃鍏ヤ换鍔�
+ if ("-1".equals(reqJson.getString("nextUserId"))) {
+ return;
+ }
+
+ oaWorkflowDataPo = new OaWorkflowDataPo();
+ oaWorkflowDataPo.setBusinessKey(reqJson.getString("id"));
+ oaWorkflowDataPo.setFlowId(reqJson.getString("flowId"));
+ oaWorkflowDataPo.setContext("");
+ oaWorkflowDataPo.setDataId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_dataId));
+ oaWorkflowDataPo.setEvent(OaWorkflowDataDto.EVENT_COMMIT);
+ oaWorkflowDataPo.setPreDataId(oaWorkflowDataDtos.get(0).getDataId());
+ oaWorkflowDataPo.setStaffId(reqJson.getString("nextUserId"));
+ oaWorkflowDataPo.setStaffName(users.get(0).getName());
+ oaWorkflowDataPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+ oaWorkflowDataPo.setStoreId(reqJson.getString("storeId"));
+ oaWorkflowDataInnerServiceSMOImpl.saveOaWorkflowData(oaWorkflowDataPo);
+ }
+
+ /**
+ * 杞姙
+ *
+ * @param reqJson
+ * @return
+ */
+ @Java110Transactional
public boolean changeTaskToOtherUser(@RequestBody 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);
+
+ Assert.listOnlyOne(oaWorkflowDataDtos, "鏁版嵁閿欒鏈寘鍚笂绾ф暟鎹�");
+
+ UserDto userDto = new UserDto();
+ userDto.setUserId(reqJson.getString("nextUserId"));
+ List<UserDto> users = userInnerServiceSMOImpl.getUsers(userDto);
+
+ Assert.listOnlyOne(users, "鐢ㄦ埛涓嶅瓨鍦�");
+
TaskService taskService = processEngine.getTaskService();
Task task = taskService.createTaskQuery().taskId(reqJson.getString("taskId")).singleResult();
String processInstanceId = task.getProcessInstanceId();
taskService.addComment(reqJson.getString("taskId"), processInstanceId, reqJson.getString("auditMessage"));
taskService.setAssignee(reqJson.getString("taskId"), reqJson.getString("nextUserId"));
//taskService.setOwner(reqJson.getString("taskId"), reqJson.getString("nextUserId"));
+
+ OaWorkflowDataPo oaWorkflowDataPo = null;
+ //淇敼 褰撳墠 涓哄畬鎴�
+ 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);
+
+ oaWorkflowDataPo = new OaWorkflowDataPo();
+ oaWorkflowDataPo.setBusinessKey(reqJson.getString("id"));
+ oaWorkflowDataPo.setFlowId(reqJson.getString("flowId"));
+ oaWorkflowDataPo.setContext("");
+ oaWorkflowDataPo.setDataId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_dataId));
+ oaWorkflowDataPo.setEvent(OaWorkflowDataDto.EVENT_TRANSFER);
+ oaWorkflowDataPo.setPreDataId(oaWorkflowDataDtos.get(0).getDataId());
+ oaWorkflowDataPo.setStaffId(reqJson.getString("nextUserId"));
+ oaWorkflowDataPo.setStaffName(users.get(0).getName());
+ oaWorkflowDataPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+ oaWorkflowDataPo.setStoreId(reqJson.getString("storeId"));
+ oaWorkflowDataInnerServiceSMOImpl.saveOaWorkflowData(oaWorkflowDataPo);
return true;
}
-
+ @Java110Transactional
public boolean goBackTask(@RequestBody JSONObject reqJson) {
TaskService taskService = processEngine.getTaskService();
Task task = taskService.createTaskQuery().taskId(reqJson.getString("taskId")).singleResult();
if (task == null) {
- throw new IllegalArgumentException("娴佺▼鏈惎鍔ㄦ垨宸叉墽琛屽畬鎴愶紝鏃犳硶閫�鍥�");
+ throw new IllegalArgumentException("浠诲姟宸插鐞�");
}
- List<HistoricTaskInstance> htiList = historyService.createHistoricTaskInstanceQuery()
- .processInstanceBusinessKey(reqJson.getString("id"))
- .orderByTaskCreateTime()
- .asc()
- .list();
- String myTaskId = null;
- HistoricTaskInstance myTask = null;
- for (HistoricTaskInstance hti : htiList) {
- if (reqJson.getString("curUserId").equals(hti.getAssignee())) {
- myTaskId = hti.getId();
- myTask = hti;
- break;
- }
+// //閫�鍥炵粰鎻愪氦鑰�
+// 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)) { //鎻愪氦鐘舵��
+ String processInstanceId = task.getProcessInstanceId();
+ Authentication.setAuthenticatedUserId(reqJson.getString("nextUserId"));
+ taskService.addComment(reqJson.getString("taskId"), processInstanceId, reqJson.getString("auditMessage"));
+ Map<String, Object> variables = new HashMap<String, Object>();
+ variables.put("nextUserId", reqJson.getString("nextUserId"));
+ variables.put("auditCode", reqJson.getString("auditCode"));
+ taskService.complete(reqJson.getString("taskId"), variables);
+ } else { //杞崟
+ taskService.setAssignee(reqJson.getString("taskId"), reqJson.getString("nextUserId"));
}
- if (null == myTaskId) {
- throw new IllegalArgumentException("璇ヤ换鍔¢潪褰撳墠鐢ㄦ埛鎻愪氦锛屾棤娉曢��鍥�");
- }
-
- String processDefinitionId = myTask.getProcessDefinitionId();
- ProcessDefinitionEntity processDefinitionEntity = (ProcessDefinitionEntity) repositoryService.createProcessDefinitionQuery().processDefinitionId(processDefinitionId).singleResult();
- BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId);
-
- //鍙橀噺
-// Map<String, VariableInstance> variables = runtimeService.getVariableInstances(currentTask.getExecutionId());
- String myActivityId = null;
- List<HistoricActivityInstance> haiList = historyService.createHistoricActivityInstanceQuery()
- .executionId(myTask.getExecutionId()).finished().list();
- for (HistoricActivityInstance hai : haiList) {
- if (myTaskId.equals(hai.getTaskId())) {
- myActivityId = hai.getActivityId();
- break;
- }
- }
- FlowNode myFlowNode = (FlowNode) bpmnModel.getMainProcess().getFlowElement(myActivityId);
-
-
- Execution execution = runtimeService.createExecutionQuery().executionId(task.getExecutionId()).singleResult();
- String activityId = execution.getActivityId();
- logger.warn("------->> activityId:" + activityId);
- FlowNode flowNode = (FlowNode) bpmnModel.getMainProcess().getFlowElement(activityId);
-
- //璁板綍鍘熸椿鍔ㄦ柟鍚�
- List<SequenceFlow> oriSequenceFlows = new ArrayList<SequenceFlow>();
- oriSequenceFlows.addAll(flowNode.getOutgoingFlows());
-
- //娓呯悊娲诲姩鏂瑰悜
- flowNode.getOutgoingFlows().clear();
- //寤虹珛鏂版柟鍚�
- List<SequenceFlow> newSequenceFlowList = new ArrayList<SequenceFlow>();
- SequenceFlow newSequenceFlow = new SequenceFlow();
- newSequenceFlow.setId("newSequenceFlowId");
- newSequenceFlow.setSourceFlowElement(flowNode);
- newSequenceFlow.setTargetFlowElement(myFlowNode);
- newSequenceFlowList.add(newSequenceFlow);
- flowNode.setOutgoingFlows(newSequenceFlowList);
-
- Authentication.setAuthenticatedUserId(reqJson.getString("curUserId"));
- taskService.addComment(task.getId(), task.getProcessInstanceId(), "閫�鍥烇紝" + reqJson.getString("auditMessage"));
-
- Map<String, Object> currentVariables = new HashMap<String, Object>();
- currentVariables.put("applier", reqJson.getString("curUserId"));
- //瀹屾垚浠诲姟
- taskService.complete(task.getId(), currentVariables);
- //鎭㈠鍘熸柟鍚�
- flowNode.setOutgoingFlows(oriSequenceFlows);
return true;
+ }
+
+ /**
+ * 瀹℃牳涓嶅悓鎰� 閫�鍥�
+ *
+ * @param reqJson
+ */
+ private String doTaskAuditUnAgree(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);
+
+ Assert.listOnlyOne(oaWorkflowDataDtos, "娌℃湁涓婄骇澶勭悊浜�");
+
+ if ("-1".equals(oaWorkflowDataDtos.get(0).getPreDataId())) {
+ throw new IllegalArgumentException("娌℃湁涓婄骇澶勭悊浜�");
+ }
+
+ oaWorkflowDataDto = new OaWorkflowDataDto();
+ oaWorkflowDataDto.setStoreId(reqJson.getString("storeId"));
+ oaWorkflowDataDto.setDataId(oaWorkflowDataDtos.get(0).getPreDataId());
+ oaWorkflowDataDto.setPage(1);
+ oaWorkflowDataDto.setRow(1);
+ List<OaWorkflowDataDto> preOaWorkflowDataDtos = oaWorkflowDataInnerServiceSMOImpl.queryOaWorkflowDatas(oaWorkflowDataDto);
+
+ //灏嗙幇鍦ㄨ妭鐐瑰鐞嗕负瀹屾垚
+ 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);
+
+ reqJson.put("nextUserId", preOaWorkflowDataDtos.get(0).getStaffId());
+ if ("1400".equals(reqJson.getString("auditCode"))) {
+ reqJson.put("nextUserId", reqJson.getString("startUserId"));
+ }
+ oaWorkflowDataPo = new OaWorkflowDataPo();
+ oaWorkflowDataPo.setBusinessKey(preOaWorkflowDataDtos.get(0).getBusinessKey());
+ oaWorkflowDataPo.setFlowId(preOaWorkflowDataDtos.get(0).getFlowId());
+ oaWorkflowDataPo.setContext("");
+ oaWorkflowDataPo.setDataId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_dataId));
+ oaWorkflowDataPo.setEvent(preOaWorkflowDataDtos.get(0).getEvent());
+ oaWorkflowDataPo.setPreDataId(oaWorkflowDataDtos.get(0).getPreDataId());
+ oaWorkflowDataPo.setStaffId(reqJson.getString("nextUserId"));
+ oaWorkflowDataPo.setStaffName(preOaWorkflowDataDtos.get(0).getStaffName());
+ oaWorkflowDataPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+ oaWorkflowDataPo.setStoreId(preOaWorkflowDataDtos.get(0).getStoreId());
+ oaWorkflowDataInnerServiceSMOImpl.saveOaWorkflowData(oaWorkflowDataPo);
+
+ return oaWorkflowDataDtos.get(0).getEvent();
}
public List<AuditMessageDto> getAuditMessage(@RequestBody JSONObject reqJson) {
@@ -415,28 +591,58 @@
//鑾峰彇褰撳墠鑺傜偣杈撳嚭杩炵嚎
List<SequenceFlow> outgoingFlows = flowNode.getOutgoingFlows();
JSONObject taskObj = null;
+ taskObj = new JSONObject();
+ taskObj.put("assignee", "-1"); // 榛樿 涓嶉渶瑕佹寚瀹氫笅涓�涓鐞嗕汉 琛ㄧず缁撴潫
+ boolean isReturn = false;
//閬嶅巻杈撳嚭杩炵嚎
for (SequenceFlow outgoingFlow : outgoingFlows) {
- taskObj = new JSONObject();
//鑾峰彇杈撳嚭鑺傜偣鍏冪礌
FlowElement targetFlowElement = outgoingFlow.getTargetFlowElement();
+ isReturn = false;
//鎺掗櫎闈炵敤鎴蜂换鍔℃帴鐐�
if (targetFlowElement instanceof UserTask) {
//鍒ゆ柇杈撳嚭鑺傜偣鐨別l琛ㄨ揪寮�
Map vars = new HashMap();
- vars.put("auditCode","1200");
+ vars.put("auditCode", "1200");
if (isCondition(outgoingFlow.getConditionExpression(), vars)) {
//true 鑾峰彇杈撳嚭鑺傜偣鍚嶇О
- taskObj.put("back",outgoingFlow.getTargetFlowElement().getName());
+ taskObj.put("back", outgoingFlow.getTargetFlowElement().getName());
+ isReturn = true;
}
- vars.put("auditCode","1400");
+ vars.put("auditCode", "1400");
if (isCondition(outgoingFlow.getConditionExpression(), vars)) {
//true 鑾峰彇杈撳嚭鑺傜偣鍚嶇О
- taskObj.put("backIndex",outgoingFlow.getTargetFlowElement().getName());
+ taskObj.put("backIndex", outgoingFlow.getTargetFlowElement().getName());
+ isReturn = true;
}
- tasks.add(taskObj);
+ //缁撴潫
+ 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) {
+ //true 鑾峰彇杈撳嚭鑺傜偣鍚嶇О
+ taskObj.put("exit", "1");
}
}
+ tasks.add(taskObj);
return tasks;
}
@@ -456,8 +662,8 @@
String[] exprArr = expression.split("[{}$&]");
for (String expr : exprArr) {
//鏄惁鍖呭惈閿甿essage
- if (expr.contains("message")) {
- if (!vars.containsKey("message")) {
+ if (expr.contains("auditCode")) {
+ if (!vars.containsKey("auditCode")) {
continue;
}
if (expr.contains("==")) {
@@ -469,7 +675,7 @@
if (valExpr.endsWith("'")) {
valExpr = valExpr.substring(0, valExpr.length() - 1);
}
- if (primes.length == 2 && valExpr.equals(vars.get("message"))) {
+ if (primes.length == 2 && valExpr.equals(vars.get("auditCode"))) {
return true;
}
}
--
Gitblit v1.8.0