From 7f7c3d615d9b8446adf25944b52f5ef432934f7c Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 5 Dec 2025 13:50:29 +0800 Subject: [PATCH] =?UTF-8?q?feat(user):=20=E6=89=B9=E9=87=8F=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E7=94=A8=E6=88=B7=E6=98=B5=E7=A7=B0=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E7=9B=B8=E5=85=B3=E6=9C=8D=E5=8A=A1=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 ISysUserService 中新增 selectNickNameMapByUserNames 方法 - 实现批量查询用户昵称的功能,提高查询效率 - 移除原有的单个用户查询方法 selectUserByUserName - 优化 WmsCoilPendingActionServiceImpl 中的用户昵称设置逻辑 - 优化 WmsDeliveryPlanServiceImpl 中的用户昵称设置逻辑 - 优化 WmsMaterialCoilServiceImpl 中的用户昵称设置逻辑 - 删除重复的 getUserNickname 私有方法 - 在 WmsCoilPendingActionVo 中新增 operatorByName 字段 - 统一使用新的批量接口替代原有单条查询方式 - 添加必要的 import 和工具类引用 --- .../klp/system/service/ISysUserService.java | 8 +-- .../service/impl/SysUserServiceImpl.java | 14 +++++ .../klp/domain/vo/WmsCoilPendingActionVo.java | 3 + .../impl/WmsCoilPendingActionServiceImpl.java | 52 ++++++++---------- .../impl/WmsDeliveryPlanServiceImpl.java | 55 ++++++++----------- .../impl/WmsMaterialCoilServiceImpl.java | 47 +++++++--------- 6 files changed, 83 insertions(+), 96 deletions(-) diff --git a/klp-system/src/main/java/com/klp/system/service/ISysUserService.java b/klp-system/src/main/java/com/klp/system/service/ISysUserService.java index 7f7e7458..9eefe547 100644 --- a/klp-system/src/main/java/com/klp/system/service/ISysUserService.java +++ b/klp-system/src/main/java/com/klp/system/service/ISysUserService.java @@ -5,6 +5,7 @@ import com.klp.common.core.domain.entity.SysUser; import com.klp.common.core.page.TableDataInfo; import java.util.List; +import java.util.Map; /** * 用户 业务层 @@ -40,13 +41,8 @@ public interface ISysUserService { */ TableDataInfo selectUnallocatedList(SysUser user, PageQuery pageQuery); - /** - * 通过用户名查询用户 - * - * @param userName 用户名 - * @return 用户对象信息 - */ SysUser selectUserByUserName(String userName); + Map selectNickNameMapByUserNames(List userNames); /** * 通过手机号查询用户 diff --git a/klp-system/src/main/java/com/klp/system/service/impl/SysUserServiceImpl.java b/klp-system/src/main/java/com/klp/system/service/impl/SysUserServiceImpl.java index 4ad2f771..921fdb1d 100644 --- a/klp-system/src/main/java/com/klp/system/service/impl/SysUserServiceImpl.java +++ b/klp-system/src/main/java/com/klp/system/service/impl/SysUserServiceImpl.java @@ -36,6 +36,8 @@ import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.HashMap; +import java.util.stream.Collectors; /** * 用户 业务层处理 @@ -140,6 +142,18 @@ public class SysUserServiceImpl implements ISysUserService, UserService { return baseMapper.selectUserByUserName(userName); } + @Override + public Map selectNickNameMapByUserNames(List userNames) { + if (CollUtil.isEmpty(userNames)) { + return new HashMap<>(); + } + List users = baseMapper.selectList(new LambdaQueryWrapper() + .select(SysUser::getUserName, SysUser::getNickName) + .in(SysUser::getUserName, userNames) + .eq(SysUser::getDelFlag, UserConstants.USER_NORMAL)); + return users.stream().collect(Collectors.toMap(SysUser::getUserName, SysUser::getNickName, (a, b) -> a)); + } + /** * 通过手机号查询用户 * diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPendingActionVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPendingActionVo.java index 8eb493d3..5e7c8dfe 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPendingActionVo.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPendingActionVo.java @@ -160,5 +160,8 @@ public class WmsCoilPendingActionVo extends BaseEntity implements Serializable { * 更新人昵称 */ private String updateByName; + + private String operatorByName; + } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPendingActionServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPendingActionServiceImpl.java index 54ee2404..681a897a 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPendingActionServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPendingActionServiceImpl.java @@ -19,9 +19,8 @@ import com.klp.domain.WmsCoilPendingAction; import com.klp.mapper.WmsCoilPendingActionMapper; import com.klp.service.IWmsCoilPendingActionService; -import java.util.List; -import java.util.Collection; -import java.util.Date; +import java.util.*; +import java.util.stream.Collectors; /** * 钢卷待操作Service业务层处理 @@ -52,14 +51,26 @@ public class WmsCoilPendingActionServiceImpl implements IWmsCoilPendingActionSer public TableDataInfo queryPageList(WmsCoilPendingActionBo bo, PageQuery pageQuery) { QueryWrapper lqw = buildQueryWrapperPlus(bo); Page result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw); - result.getRecords().forEach(item -> { - if (item.getCreateBy() != null) { - item.setCreateByName(getUserNickname(item.getCreateBy())); - } - if (item.getUpdateBy() != null) { - item.setUpdateByName(getUserNickname(item.getUpdateBy())); - } - }); + List records = result.getRecords(); + Set userNames = records.stream() + .flatMap(v -> java.util.stream.Stream.of(v.getCreateBy(), v.getOperatorName())) + .filter(StringUtils::isNotBlank) + .collect(Collectors.toSet()); + if (!userNames.isEmpty()) { + Map nickMap = userService.selectNickNameMapByUserNames(records.stream() + .flatMap(v -> java.util.stream.Stream.of(v.getCreateBy(), v.getOperatorName())) + .filter(StringUtils::isNotBlank) + .distinct() + .collect(Collectors.toList())); + records.forEach(item -> { + if (StringUtils.isNotBlank(item.getCreateBy())) { + item.setCreateByName(nickMap.getOrDefault(item.getCreateBy(), item.getCreateBy())); + } + if (StringUtils.isNotBlank(item.getOperatorName())) { + item.setOperatorByName(nickMap.getOrDefault(item.getOperatorName(), item.getOperatorName())); + } + }); + } return TableDataInfo.build(result); } @@ -79,25 +90,6 @@ public class WmsCoilPendingActionServiceImpl implements IWmsCoilPendingActionSer return qw; } - /** - * 根据用户名获取用户昵称 - * @param username 用户名 - * @return 用户昵称 - */ - private String getUserNickname(String username) { - try { - // 通过用户名查找用户 - SysUser user = userService.selectUserByUserName(username); - if (user != null) { - return user.getNickName(); - } - } catch (Exception e) { - // 出现异常时返回原用户名 - return username; - } - // 找不到用户时返回原用户名 - return username; - } /** * 查询钢卷待操作列表 */ diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanServiceImpl.java index e8c27e5d..e8381f69 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanServiceImpl.java @@ -8,20 +8,17 @@ 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.klp.common.utils.StringUtils; -import com.klp.domain.vo.WmsDeliveryPlanStatisticsVo; -import com.klp.domain.vo.WmsDeliveryReportByTypeVo; -import com.klp.domain.vo.WmsDeliveryReportResultVo; -import com.klp.domain.vo.WmsDeliveryReportSummaryVo; +import com.klp.domain.vo.*; import com.klp.system.service.ISysUserService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.klp.domain.bo.WmsDeliveryPlanBo; -import com.klp.domain.vo.WmsDeliveryPlanVo; import com.klp.domain.WmsDeliveryPlan; import com.klp.mapper.WmsDeliveryPlanMapper; import com.klp.service.IWmsDeliveryPlanService; import java.util.*; +import java.util.stream.Collectors; /** * 发货计划Service业务层处理 @@ -52,35 +49,27 @@ public class WmsDeliveryPlanServiceImpl implements IWmsDeliveryPlanService { public TableDataInfo queryPageList(WmsDeliveryPlanBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - result.getRecords().forEach(item -> { - if (item.getCreateBy() != null) { - item.setCreateByName(getUserNickname(item.getCreateBy())); - } - if (item.getUpdateBy() != null) { - item.setUpdateByName(getUserNickname(item.getUpdateBy())); - } - }); - return TableDataInfo.build(result); - } - - /** - * 根据用户名获取用户昵称 - * @param username 用户名 - * @return 用户昵称 - */ - private String getUserNickname(String username) { - try { - // 通过用户名查找用户 - SysUser user = userService.selectUserByUserName(username); - if (user != null) { - return user.getNickName(); - } - } catch (Exception e) { - // 出现异常时返回原用户名 - return username; + List records = result.getRecords(); + Set userNames = records.stream() + .flatMap(v -> java.util.stream.Stream.of(v.getCreateBy(), v.getUpdateBy())) + .filter(StringUtils::isNotBlank) + .collect(Collectors.toSet()); + if (!userNames.isEmpty()) { + Map nickMap = userService.selectNickNameMapByUserNames(records.stream() + .flatMap(v -> java.util.stream.Stream.of(v.getCreateBy(), v.getUpdateBy())) + .filter(StringUtils::isNotBlank) + .distinct() + .collect(Collectors.toList())); + records.forEach(item -> { + if (StringUtils.isNotBlank(item.getCreateBy())) { + item.setCreateByName(nickMap.getOrDefault(item.getCreateBy(), item.getCreateBy())); + } + if (StringUtils.isNotBlank(item.getUpdateBy())) { + item.setUpdateByName(nickMap.getOrDefault(item.getUpdateBy(), item.getUpdateBy())); + } + }); } - // 找不到用户时返回原用户名 - return username; + return TableDataInfo.build(result); } /** diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index 27ebc74b..656f0666 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java @@ -286,14 +286,26 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { QueryWrapper qw = buildQueryWrapperPlus(bo); Page result = baseMapper.selectVoPagePlus(pageQuery.build(), qw); - result.getRecords().forEach(item -> { - if (item.getCreateBy() != null) { - item.setCreateByName(getUserNickname(item.getCreateBy())); - } - if (item.getUpdateBy() != null) { - item.setUpdateByName(getUserNickname(item.getUpdateBy())); - } - }); + List records = result.getRecords(); + Set userNames = records.stream() + .flatMap(v -> java.util.stream.Stream.of(v.getCreateBy(), v.getUpdateBy())) + .filter(StringUtils::isNotBlank) + .collect(Collectors.toSet()); + if (!userNames.isEmpty()) { + Map nickMap = userService.selectNickNameMapByUserNames(records.stream() + .flatMap(v -> java.util.stream.Stream.of(v.getCreateBy(), v.getUpdateBy())) + .filter(StringUtils::isNotBlank) + .distinct() + .collect(Collectors.toList())); + records.forEach(item -> { + if (StringUtils.isNotBlank(item.getCreateBy())) { + item.setCreateByName(nickMap.getOrDefault(item.getCreateBy(), item.getCreateBy())); + } + if (StringUtils.isNotBlank(item.getUpdateBy())) { + item.setUpdateByName(nickMap.getOrDefault(item.getUpdateBy(), item.getUpdateBy())); + } + }); + } // 从联查结果中构建产品和原材料对象(避免单独查询) for (WmsMaterialCoilVo vo : result.getRecords()) { @@ -350,25 +362,6 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { qw.orderByDesc("mc.create_time"); return qw; } - /** - * 根据用户名获取用户昵称 - * @param username 用户名 - * @return 用户昵称 - */ - private String getUserNickname(String username) { - try { - // 通过用户名查找用户 - SysUser user = userService.selectUserByUserName(username); - if (user != null) { - return user.getNickName(); - } - } catch (Exception e) { - // 出现异常时返回原用户名 - return username; - } - // 找不到用户时返回原用户名 - return username; - } /** * 查询钢卷物料表列表