update 优化 StreamUtils 抽取 findFirst findAny 方法

This commit is contained in:
疯狂的狮子Li
2024-07-06 14:03:33 +08:00
parent dba4293fe2
commit 42dc474949
6 changed files with 37 additions and 7 deletions

View File

@@ -37,7 +37,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
/**
* 角色 业务层处理
@@ -106,7 +105,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
List<SysRoleVo> userRoles = baseMapper.selectRolesByUserId(userId);
List<SysRoleVo> roles = selectRoleAll();
// 使用HashSet提高查找效率
Set<Long> userRoleIds = userRoles.stream().map(SysRoleVo::getRoleId).collect(Collectors.toSet());
Set<Long> userRoleIds = StreamUtils.toSet(userRoles, SysRoleVo::getRoleId);
for (SysRoleVo role : roles) {
if (userRoleIds.contains(role.getRoleId())) {
role.setFlag(true);

View File

@@ -2,6 +2,7 @@ package org.dromara.workflow.flowable.cmd;
import cn.hutool.core.util.ObjectUtil;
import lombok.AllArgsConstructor;
import org.dromara.common.core.utils.StreamUtils;
import org.flowable.common.engine.impl.interceptor.Command;
import org.flowable.common.engine.impl.interceptor.CommandContext;
import org.flowable.engine.impl.persistence.entity.ExecutionEntity;
@@ -59,7 +60,7 @@ public class DeleteSequenceMultiInstanceCmd implements Command<Void> {
}
List<Long> userIdList = new ArrayList<>();
userIds.forEach(e -> {
Long userId = assignees.stream().filter(id -> ObjectUtil.equals(id, e)).findFirst().orElse(null);
Long userId = StreamUtils.findFirst(assignees, id -> ObjectUtil.equals(id, e));
if (userId == null) {
userIdList.add(e);
}

View File

@@ -272,10 +272,10 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
}
ProcessInstance processInstance = QueryUtils.instanceQuery(processInstanceId).singleResult();
if (processInstance != null) {
taskList = taskList.stream().filter(e -> !e.get("activityType").equals(FlowConstant.END_EVENT)).collect(Collectors.toList());
taskList = StreamUtils.filter(taskList, e -> !e.get("activityType").equals(FlowConstant.END_EVENT));
}
//查询出运行中节点
List<Map<String, Object>> runtimeNodeList = taskList.stream().filter(e -> !(Boolean) e.get("completed")).collect(Collectors.toList());
List<Map<String, Object>> runtimeNodeList = StreamUtils.filter(taskList, e -> !(Boolean) e.get("completed"));
if (CollUtil.isNotEmpty(runtimeNodeList)) {
Iterator<Map<String, Object>> iterator = taskList.iterator();
while (iterator.hasNext()) {

View File

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.workflow.domain.WfTaskBackNode;
@@ -56,7 +57,7 @@ public class WfTaskBackNodeServiceImpl implements IWfTaskBackNodeService {
wfTaskBackNode.setOrderNo(0);
wfTaskBackNodeMapper.insert(wfTaskBackNode);
} else {
WfTaskBackNode taskNode = list.stream().filter(e -> e.getNodeId().equals(wfTaskBackNode.getNodeId()) && e.getOrderNo() == 0).findFirst().orElse(null);
WfTaskBackNode taskNode = StreamUtils.findFirst(list, e -> e.getNodeId().equals(wfTaskBackNode.getNodeId()) && e.getOrderNo() == 0);
if (ObjectUtil.isEmpty(taskNode)) {
wfTaskBackNode.setOrderNo(list.get(0).getOrderNo() + 1);
WfTaskBackNode node = getListByInstanceIdAndNodeId(wfTaskBackNode.getInstanceId(), wfTaskBackNode.getNodeId());