update 流程办理-设计会签节点变量

This commit is contained in:
liao
2023-11-10 09:57:49 +08:00
parent 3760080d15
commit b0b1bbdd98
2 changed files with 32 additions and 5 deletions
@@ -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<String, Object> userInfoMap);
/**
* @Author: liao
* @Date: 2023/11/6 15:16
@@ -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<String, Object> 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<String, Object> userInfoMap) {
Map<String, Object> variableMap = new HashMap<>();
userInfoMap.forEach((k, v) -> {
String value = (String) v;
if (k.contains("List") && StringUtils.isNotBlank(value)) { // 会签节点
List<String> 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