From b0b1bbdd9888827ece13d9f7f5c7c9de3fd3cdee Mon Sep 17 00:00:00 2001 From: liao Date: Fri, 10 Nov 2023 09:57:49 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=B5=81=E7=A8=8B=E5=8A=9E=E7=90=86-?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E4=BC=9A=E7=AD=BE=E8=8A=82=E7=82=B9=E5=8F=98?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fb/service/IProcessHandleService.java | 9 ++++++ .../impl/ProcessHandleServiceImpl.java | 28 +++++++++++++++---- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessHandleService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessHandleService.java index ef7d7c4f..cc0c4994 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessHandleService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessHandleService.java @@ -3,6 +3,8 @@ package com.jero.modules.activiti.process.fb.service; import com.jero.modules.activiti.process.fb.dto.ProcessDTO; import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; +import java.util.Map; + /** * @Author: liao * @Date: 2023/11/2 17:01 @@ -23,6 +25,13 @@ public interface IProcessHandleService { **/ void approveTask(ProcessInfoVO processInfoVO, boolean pass); + /** + * @Author: liao + * @Date: 2023/11/10 9:44 + * @Description: 设置流程变量 + **/ + void setProcessVariables(String processInstanceId, Map userInfoMap); + /** * @Author: liao * @Date: 2023/11/6 15:16 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java index df6b63ca..12a2624e 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java @@ -32,9 +32,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.Date; -import java.util.Map; -import java.util.Objects; +import java.util.*; /** * @Author: liao @@ -85,7 +83,7 @@ public class ProcessHandleServiceImpl implements IProcessHandleService { updateProcessAll(processInfoVO); // 保存选人信息 - runtimeService.setVariables(processInstanceId, userInfoMap); + setProcessVariables(processInstanceId, userInfoMap); processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userInfoMap); // 根据流程实例id和任务处理人查询任务 @@ -124,7 +122,7 @@ public class ProcessHandleServiceImpl implements IProcessHandleService { Map userInfoMap = processInfoVO.getUserInfoMap(); if (!Objects.isNull(userInfoMap) && !userInfoMap.isEmpty()) { // 保存选人信息 - runtimeService.setVariables(processInstanceId, userInfoMap); + setProcessVariables(processInstanceId, userInfoMap); processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userInfoMap); } if (pass) { // 通过 @@ -140,6 +138,26 @@ public class ProcessHandleServiceImpl implements IProcessHandleService { taskService.complete(taskId); } + /** + * @Author: liao + * @Date: 2023/11/10 9:54 + * @Description: 设置流程变量 + **/ + @Override + public void setProcessVariables(String processInstanceId, Map userInfoMap) { + Map variableMap = new HashMap<>(); + userInfoMap.forEach((k, v) -> { + String value = (String) v; + if (k.contains("List") && StringUtils.isNotBlank(value)) { // 会签节点 + List userList = Arrays.asList(value.split(",")); + variableMap.put(k, userList); + } else { // 普通节点 + variableMap.put(k, v); + } + }); + runtimeService.setVariables(processInstanceId, variableMap); + } + /** * @Author: liao * @Date: 2023/11/6 15:17