From 2aade463aa134005c7614a657548c5efd97cb4a5 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Mon, 3 Nov 2025 15:13:07 +0800 Subject: [PATCH] =?UTF-8?q?feat(oa):=20=E5=85=B3=E8=81=94=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E4=BF=A1=E6=81=AF=E5=B9=B6=E6=89=A9=E5=B1=95=E9=97=AE?= =?UTF-8?q?=E9=A2=98VO=E5=AE=9E=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 OaExpressQuestionServiceImpl 中根据 createBy 字段关联查询用户昵称 -为 OaExpressQuestionVo 添加 nickName 字段用于展示创建人昵称 - 修改 OaExpressQuestionVo 继承 BaseEntity 以支持基础字段 - 引入 ISysUserService 和 SysUser 实现用户信息查询逻辑 - 使用 Stream 对 createBy 去重后批量查询用户减少数据库访问次数 --- .../oa/domain/vo/OaExpressQuestionVo.java | 5 +++- .../impl/OaExpressQuestionServiceImpl.java | 23 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaExpressQuestionVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaExpressQuestionVo.java index 0f1054d..f784d44 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaExpressQuestionVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaExpressQuestionVo.java @@ -6,6 +6,7 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.convert.ExcelDictConvert; +import com.ruoyi.common.core.domain.BaseEntity; import lombok.Data; import java.util.Date; @@ -19,7 +20,7 @@ import java.util.Date; */ @Data @ExcelIgnoreUnannotated -public class OaExpressQuestionVo { +public class OaExpressQuestionVo extends BaseEntity { private static final long serialVersionUID = 1L; @@ -70,5 +71,7 @@ public class OaExpressQuestionVo { */ private String expressCode; + private String nickName; + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaExpressQuestionServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaExpressQuestionServiceImpl.java index 982fd2d..2b59b83 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaExpressQuestionServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaExpressQuestionServiceImpl.java @@ -2,6 +2,7 @@ package com.ruoyi.oa.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.core.page.TableDataInfo; @@ -9,6 +10,7 @@ import com.ruoyi.common.core.domain.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.system.service.ISysUserService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.ruoyi.oa.domain.bo.OaExpressQuestionBo; @@ -20,6 +22,7 @@ import com.ruoyi.oa.service.IOaExpressQuestionService; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.stream.Collectors; /** * 快递问题Service业务层处理 @@ -32,6 +35,7 @@ import java.util.Collection; public class OaExpressQuestionServiceImpl implements IOaExpressQuestionService { private final OaExpressQuestionMapper baseMapper; + private final ISysUserService userService; /** * 查询快递问题 @@ -48,6 +52,25 @@ public class OaExpressQuestionServiceImpl implements IOaExpressQuestionService { public TableDataInfo queryPageList(OaExpressQuestionBo bo, PageQuery pageQuery) { QueryWrapper lqw = buildQueryWrapperPlus(bo); Page result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw); + //需要根据这个createBy字段去关联用户表获取用户名称,可以在这里处理,也可以在mapper.xml中处理 + List createByList = result.getRecords().stream() + .map(OaExpressQuestionVo::getCreateBy) + .distinct() // 去重,减少查询次数 + .collect(Collectors.toList()); + if (!createByList.isEmpty()) { + // 循环调用 selectUserByUserName 方法 + for (String userName : createByList) { + SysUser user = userService.selectUserByUserName(userName); + if (user != null) { + // 为所有匹配的记录设置昵称 + for (OaExpressQuestionVo item : result.getRecords()) { + if (userName.equals(item.getCreateBy())) { + item.setNickName(user.getNickName()); + } + } + } + } + } return TableDataInfo.build(result); }