add 增量保存人员信息
This commit is contained in:
+50
-1
@@ -16,6 +16,7 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -23,11 +24,11 @@ import java.util.Map;
|
||||
*@date 2023-09-26 15:12
|
||||
*/
|
||||
@Service
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class ProcessNodeLinkService extends ServiceImpl<ProcessNodeLinkMapper, ProcessNodeLink> {
|
||||
@Resource
|
||||
private ProcessNodeService processNodeService;
|
||||
|
||||
@Transactional
|
||||
public void saveNodeUserLink(String processDefinitionId, String processInstanceId, Map<String, Object> map) {
|
||||
LambdaQueryWrapper<ProcessNode> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(ProcessNode::getProcessDefinitionId,processDefinitionId);
|
||||
@@ -68,6 +69,54 @@ public class ProcessNodeLinkService extends ServiceImpl<ProcessNodeLinkMapper, P
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 增量保存人员信息
|
||||
* @param processDefinitionId
|
||||
* @param processInstanceId
|
||||
* @param map
|
||||
*/
|
||||
public void incrementSaveNodeUserLink(String processDefinitionId, String processInstanceId, Map<String, Object> map) {
|
||||
LambdaQueryWrapper<ProcessNode> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(ProcessNode::getProcessDefinitionId,processDefinitionId);
|
||||
List<ProcessNode> processNodeList = processNodeService.list(wrapper);
|
||||
List<ProcessNodeLink> processNodeLinks = new ArrayList<>();
|
||||
for (ProcessNode processNode : processNodeList) {
|
||||
String processNodeId = processNode.getId();
|
||||
String variableType = processNode.getVariableType();
|
||||
String variableName = processNode.getVariableName();
|
||||
List<String> userIdList = new ArrayList<>();
|
||||
if (map.containsKey(variableName)) {
|
||||
String s = (String) map.get(variableName);
|
||||
if (StrUtil.isNotBlank(s)) {
|
||||
if (VariableTypeEnum.LIST.getName().equals(variableType)) {
|
||||
userIdList.addAll(Arrays.asList(s.split(",")));
|
||||
}else {
|
||||
userIdList.add(s);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!userIdList.isEmpty()) {
|
||||
//如果当前节点绑定人了,先查询之前绑定的,增量保存
|
||||
LambdaQueryWrapper<ProcessNodeLink> wrapper1 = new LambdaQueryWrapper<>();
|
||||
wrapper1.eq(ProcessNodeLink::getProcessNodeId,processNodeId);
|
||||
wrapper1.eq(ProcessNodeLink::getProcessInstanceId,processInstanceId);
|
||||
List<ProcessNodeLink> list = this.list(wrapper1);
|
||||
List<String> distinctUserIdList = list.stream().map(ProcessNodeLink::getUserId).distinct().collect(Collectors.toList());
|
||||
userIdList.removeAll(distinctUserIdList);
|
||||
for (String userId : userIdList) {
|
||||
ProcessNodeLink processNodeLink = new ProcessNodeLink();
|
||||
processNodeLink.setProcessDefinitionId(processDefinitionId);
|
||||
processNodeLink.setProcessNodeId(processNodeId);
|
||||
processNodeLink.setProcessInstanceId(processInstanceId);
|
||||
processNodeLink.setUserId(userId);
|
||||
processNodeLinks.add(processNodeLink);
|
||||
}
|
||||
}
|
||||
}
|
||||
this.saveBatch(processNodeLinks);
|
||||
|
||||
}
|
||||
|
||||
public List<ProcessNodeLink> selectByProcessInstanceId(String processInstanceId) {
|
||||
LambdaQueryWrapper<ProcessNodeLink> myQuery = Wrappers.lambdaQuery(ProcessNodeLink.class);
|
||||
myQuery.eq(ProcessNodeLink::getProcessInstanceId, processInstanceId);
|
||||
|
||||
Reference in New Issue
Block a user