diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java index 4873666c..08bc23ac 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java @@ -44,6 +44,7 @@ import org.activiti.engine.ManagementService; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.task.Task; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.stereotype.Service; @@ -103,13 +104,19 @@ public class ProcessAllService extends ServiceImpl String order = req.getParameter("order"); IPage todoList = processAllMapper.getTodoList(page, queryWrapper, column, order); Set nodeIdSet = todoList.getRecords().stream().map(ProcessAll::getNodeId).collect(Collectors.toSet()); - List processNodeList = processNodeService.list(new LambdaQueryWrapper().in(ProcessNode::getId, nodeIdSet)); - todoList.getRecords().forEach(processAll -> { - processNodeList.stream() - .filter(processNode -> processNode.getId().equals(processAll.getNodeId())) - .findFirst() - .ifPresent(processNode -> processAll.setCountersignFlag(processNode.getCountersignFlag())); - }); + Set processDefinitionIdSet = todoList.getRecords().stream().map(ProcessAll::getProcessDefinitionId).collect(Collectors.toSet()); + if (CollectionUtils.isNotEmpty(nodeIdSet) && CollectionUtils.isNotEmpty(processDefinitionIdSet)){ + List processNodeList = processNodeService.list(new LambdaQueryWrapper() + .in(ProcessNode::getXmlNodeId, nodeIdSet) + .in(ProcessNode::getProcessDefinitionId, processDefinitionIdSet)); + todoList.getRecords().forEach(processAll -> { + processNodeList.stream().peek(v -> { + if (v.getXmlNodeId().equals(processAll.getNodeId())){ + processAll.setCountersignFlag(v.getCountersignFlag()); + } + }).collect(Collectors.toList()); + }); + } return todoList; }