From 54d2041523e5f2eb8d9f519f785e36502c1a9231 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 5 Dec 2025 09:20:30 +0800 Subject: [PATCH] =?UTF-8?q?refactor(wms):=20=E4=BC=98=E5=8C=96=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=98=B5=E7=A7=B0=E8=8E=B7=E5=8F=96=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除XML映射文件中的冗余用户关联查询 - 在服务层统一处理创建人和更新人昵称填充 - 新增getUserNickname方法通过用户名获取用户昵称 - 优化异常处理,确保获取失败时返回原始用户名 - 减少数据库查询次数,提升接口性能 --- .../impl/WmsCoilPendingActionServiceImpl.java | 31 +++++++++++++++++++ .../impl/WmsMaterialCoilServiceImpl.java | 29 ++++++++++++++++- .../mapper/klp/WmsCoilPendingActionMapper.xml | 6 +--- .../mapper/klp/WmsMaterialCoilMapper.xml | 8 +---- 4 files changed, 61 insertions(+), 13 deletions(-) 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 16103f2e..54ee2404 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 @@ -3,12 +3,14 @@ package com.klp.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.klp.common.core.domain.PageQuery; +import com.klp.common.core.domain.entity.SysUser; import com.klp.common.core.page.TableDataInfo; import com.klp.common.utils.StringUtils; 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.helper.LoginHelper; +import com.klp.system.service.ISysUserService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.klp.domain.bo.WmsCoilPendingActionBo; @@ -33,6 +35,8 @@ public class WmsCoilPendingActionServiceImpl implements IWmsCoilPendingActionSer private final WmsCoilPendingActionMapper baseMapper; + private final ISysUserService userService; + /** * 查询钢卷待操作 */ @@ -48,6 +52,14 @@ 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())); + } + }); return TableDataInfo.build(result); } @@ -67,6 +79,25 @@ 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/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index 82afa82b..27ebc74b 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,6 +286,15 @@ 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())); + } + }); + // 从联查结果中构建产品和原材料对象(避免单独查询) for (WmsMaterialCoilVo vo : result.getRecords()) { buildItemObjectFromJoin(vo); @@ -341,7 +350,25 @@ 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; + } /** * 查询钢卷物料表列表 diff --git a/klp-wms/src/main/resources/mapper/klp/WmsCoilPendingActionMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsCoilPendingActionMapper.xml index ccf66df6..13c72e82 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsCoilPendingActionMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsCoilPendingActionMapper.xml @@ -50,13 +50,9 @@ wmc.enter_coil_no as enterCoilNo, wmc.supplier_coil_no as supplierCoilNo, wmc.item_id as itemId, - wmc.item_type as itemType, - su_create.nick_name as createByName, - su_operator.nick_name as operatorByName + wmc.item_type as itemType from wms_coil_pending_action wcpa inner join wms_material_coil wmc ON wcpa.coil_id = wmc.coil_id AND wmc.del_flag = 0 - left join sys_user su_create ON wcpa.create_by = su_create.user_name AND su_create.del_flag = '0' - left join sys_user su_operator ON wcpa.operator_name = su_operator.user_name AND su_operator.del_flag = '0' ${ew.customSqlSegment} diff --git a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml index 0389d30a..09214962 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml @@ -123,10 +123,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ELSE NULL END as itemCode, -- 异常数量统计 - COALESCE(ca.abnormal_count, 0) AS abnormalCount, - -- 创建人和更新人昵称 - su_create.nick_name AS createByName, - su_update.nick_name AS updateByName + COALESCE(ca.abnormal_count, 0) AS abnormalCount FROM wms_material_coil mc LEFT JOIN wms_warehouse w ON mc.warehouse_id = w.warehouse_id LEFT JOIN wms_actual_warehouse aw ON mc.actual_warehouse_id = aw.actual_warehouse_id @@ -138,9 +135,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE del_flag = 0 GROUP BY coil_id ) ca ON mc.coil_id = ca.coil_id - -- 关联用户表获取创建人和更新人昵称 - LEFT JOIN sys_user su_create ON mc.create_by = su_create.user_name AND su_create.del_flag = '0' - LEFT JOIN sys_user su_update ON mc.update_by = su_update.user_name AND su_update.del_flag = '0' ${ew.customSqlSegment}