From ca8c0962e36d4ef8489e2d8a220d9953b9cf851a Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期四, 20 七月 2023 14:44:16 +0800
Subject: [PATCH] Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs

---
 Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java |   47 ++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 40 insertions(+), 7 deletions(-)

diff --git a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java
index a84b86b..4e70d5f 100644
--- a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java
+++ b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java
@@ -25,13 +25,19 @@
 import com.vci.ubcs.flow.engine.entity.FlowProcess;
 import com.vci.ubcs.flow.engine.utils.FlowCache;
 import lombok.AllArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 import org.flowable.engine.HistoryService;
+import org.flowable.engine.RuntimeService;
 import org.flowable.engine.TaskService;
 import org.flowable.engine.history.HistoricProcessInstance;
 import org.flowable.engine.history.HistoricProcessInstanceQuery;
+import org.flowable.engine.runtime.Execution;
+import org.flowable.engine.runtime.ProcessInstance;
+import org.flowable.task.api.Task;
 import org.flowable.task.api.TaskQuery;
 import org.flowable.task.api.history.HistoricTaskInstance;
 import org.flowable.task.api.history.HistoricTaskInstanceQuery;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.support.Kv;
 import org.springblade.core.tool.utils.Func;
@@ -54,6 +60,7 @@
 
 	private final TaskService taskService;
 	private final HistoryService historyService;
+	private final RuntimeService runtimeService;
 
 	@Override
 	public IPage<BladeFlow> selectClaimPage(IPage<BladeFlow> page, BladeFlow bladeFlow) {
@@ -117,7 +124,7 @@
 
 		HistoricProcessInstanceQuery historyQuery = historyService.createHistoricProcessInstanceQuery().startedBy(taskUser).orderByProcessInstanceStartTime().desc();
 
-		if (bladeFlow.getCategory() != null) {
+		if (StringUtils.isNotEmpty(bladeFlow.getCategory())) {
 			historyQuery.processDefinitionCategory(bladeFlow.getCategory());
 		}
 		if (bladeFlow.getProcessDefinitionName() != null) {
@@ -142,7 +149,7 @@
 			String[] businessKey = Func.toStrArray(StringPool.COLON, historicProcessInstance.getBusinessKey());
 			if (businessKey.length > 1) {
 				flow.setBusinessTable(businessKey[0]);
-				flow.setBusinessId(businessKey[1]);
+				flow.setBusinessId(businessKey.length>1?businessKey[1]:"1");
 			}
 			flow.setHistoryActivityName(historicProcessInstance.getName());
 			flow.setProcessInstanceId(historicProcessInstance.getId());
@@ -190,7 +197,7 @@
 		HistoricTaskInstanceQuery doneQuery = historyService.createHistoricTaskInstanceQuery().taskAssignee(taskUser).finished()
 			.includeProcessVariables().orderByHistoricTaskInstanceEndTime().desc();
 
-		if (bladeFlow.getCategory() != null) {
+		if (StringUtils.isNotEmpty(bladeFlow.getCategory())) {
 			doneQuery.processCategoryIn(Func.toStrList(bladeFlow.getCategory()));
 		}
 		if (bladeFlow.getProcessDefinitionName() != null) {
@@ -230,7 +237,7 @@
 			if (Func.isNotEmpty(historicProcessInstance)) {
 				String[] businessKey = Func.toStrArray(StringPool.COLON, historicProcessInstance.getBusinessKey());
 				flow.setBusinessTable(businessKey[0]);
-				flow.setBusinessId(businessKey[1]);
+				flow.setBusinessId(businessKey.length>1?businessKey[1]:"1");
 				if (historicProcessInstance.getEndActivityId() != null) {
 					flow.setProcessIsFinished(FlowEngineConstant.STATUS_FINISHED);
 				} else {
@@ -263,9 +270,22 @@
 			variables = Kv.create();
 		}
 		variables.put(ProcessConstant.PASS_KEY, flow.isPass());
-		variables.put("yn","y");
+
 		// 瀹屾垚浠诲姟
 		taskService.complete(taskId, variables);
+
+//		//璁剧疆涓嬩竴姝ュ鏍镐汉
+//		Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).active().singleResult();//涓嬩竴姝ヨ妭鐐�
+//		String taskKey = task.getTaskDefinitionKey();//灏辨槸娴佺▼閰嶇疆鐨勮妭鐐筰d
+//		Object to = getVar(processInstanceId,taskKey);
+//		if(to==null){
+//			throw new ServiceException(taskKey+"娌℃湁璁剧疆瀹℃牳浜�");
+//		}
+//		String assignee = to.toString();
+//
+//		if(StringUtils.isNotEmpty(assignee)) {
+//			task.setAssignee(assignee);
+//		}
 		return true;
 	}
 
@@ -278,7 +298,8 @@
 	 * @param status    鐘舵��
 	 */
 	private void buildFlowTaskList(BladeFlow bladeFlow, List<BladeFlow> flowList, TaskQuery taskQuery, String status) {
-		if (bladeFlow.getCategory() != null) {
+//		if (bladeFlow.getCategory() != null) {
+		if (StringUtils.isNotEmpty(bladeFlow.getCategory())) {
 			taskQuery.processCategoryIn(Func.toStrList(bladeFlow.getCategory()));
 		}
 		if (bladeFlow.getProcessDefinitionName() != null) {
@@ -305,7 +326,7 @@
 			if (Func.isNotEmpty(historicProcessInstance)) {
 				String[] businessKey = Func.toStrArray(StringPool.COLON, historicProcessInstance.getBusinessKey());
 				flow.setBusinessTable(businessKey[0]);
-				flow.setBusinessId(businessKey[1]);
+				flow.setBusinessId(businessKey.length>1?businessKey[1]:"1");
 			}
 
 			FlowProcess processDefinition = FlowCache.getProcessDefinition(task.getProcessDefinitionId());
@@ -331,4 +352,16 @@
 		return historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
 	}
 
+	public Object getVar(String processInstanceId,String key){
+		Object t = null;
+		List<Execution> list = runtimeService.createExecutionQuery().processInstanceId(processInstanceId).list();
+		for (Execution execution : list) {
+			Object va = runtimeService.getVariable(execution.getId(),key);
+			if(va!=null){
+				t=va;
+			}
+		}
+		return t;
+	}
+
 }

--
Gitblit v1.9.3