package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.TDept; import com.ruoyi.system.mapper.OaApprovalFlowNodeMapper; import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.mapper.TDeptMapper; import com.ruoyi.system.model.OaApprovalFlowNode; import com.ruoyi.system.query.ApprovalNodeListQuery; import com.ruoyi.system.service.OaApprovalFlowNodeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** *

* 审批流程实例 服务实现类 *

* * @author WuGuanFengYue * @since 2025-09-15 */ @Service public class OaApprovalFlowNodeServiceImpl extends ServiceImpl implements OaApprovalFlowNodeService { @Autowired private SysUserMapper sysUserMapper; @Autowired private TDeptMapper deptMapper; @Override public List pageList(ApprovalNodeListQuery query) { List sysUsers = sysUserMapper.selectList(); Map userMaps = sysUsers.stream().collect(Collectors.toMap(SysUser::getUserId, SysUser::getNickName)); Map deptMaps = deptMapper.selectList(null).stream().collect(Collectors.toMap(TDept::getId, TDept::getDeptName)); List oaApprovalFlowNodes = this.baseMapper.selectList(new LambdaQueryWrapper() .eq(OaApprovalFlowNode::getApprovalId, query.getId())); for (OaApprovalFlowNode approvalVO : oaApprovalFlowNodes) { StringBuilder approvalName = new StringBuilder(); if (approvalVO.getApprovalType() != 0){ if (approvalVO.getApprovalType() == 2){ for (String approvalId : approvalVO.getApprovalIds().split(",")) { String orDefault = userMaps.getOrDefault(Long.valueOf(approvalId), ""); if (StringUtils.hasLength(orDefault)){ approvalName.append(orDefault).append(","); } } }else{ for (String approvalId : approvalVO.getApprovalIds().split(",")) { String orDefault = deptMaps.getOrDefault(Integer.valueOf(approvalId), ""); if (StringUtils.hasLength(orDefault)){ approvalName.append(orDefault).append(","); } } } if (StringUtils.hasLength(approvalName)){ approvalVO.setApprovalName(approvalName.substring(0,approvalName.length()-1)); }else{ approvalVO.setApprovalName(""); } }else{ approvalVO.setApprovalName("上级部门"); } } return oaApprovalFlowNodes; } }