From 2c5729e8463a8b7558f50fb09c5a678bc39c0995 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Thu, 4 Dec 2025 17:24:55 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=B7=BB=E5=8A=A0=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=98=B5=E7=A7=B0=E6=98=BE=E7=A4=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在WmsCoilPendingActionMapper.xml中关联sys_user表获取创建人和操作人昵称 - 在WmsMaterialCoilMapper.xml中关联sys_user表获取创建人和更新人昵称 - 在WmsCoilPendingActionVo.java和WmsMaterialCoilVo.java中添加createByName和updateByName字段 - 在WmsDeliveryPlanServiceImpl.java中实现根据用户名获取用户昵称的逻辑 - 在WmsMaterialCoilServiceImpl.java中实现批量获取操作人昵称的功能 - 在pom.xml中添加klp-system依赖以支持用户服务调用 --- klp-wms/pom.xml | 4 ++ .../klp/domain/vo/WmsCoilPendingActionVo.java | 10 ++++ .../com/klp/domain/vo/WmsDeliveryPlanVo.java | 11 ++++ .../com/klp/domain/vo/WmsMaterialCoilVo.java | 4 ++ .../impl/WmsDeliveryPlanServiceImpl.java | 32 +++++++++++ .../impl/WmsMaterialCoilServiceImpl.java | 53 +++++++++++++++++++ .../mapper/klp/WmsCoilPendingActionMapper.xml | 6 ++- .../mapper/klp/WmsMaterialCoilMapper.xml | 8 ++- 8 files changed, 126 insertions(+), 2 deletions(-) diff --git a/klp-wms/pom.xml b/klp-wms/pom.xml index ca58eb19..ed5ad600 100644 --- a/klp-wms/pom.xml +++ b/klp-wms/pom.xml @@ -62,5 +62,9 @@ 1.2.89 RELEASE + + com.klp + klp-system + 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 6e738d0d..8eb493d3 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 @@ -150,5 +150,15 @@ public class WmsCoilPendingActionVo extends BaseEntity implements Serializable { private String supplierCoilNo; private Long itemId; private String itemType; + + /** + * 创建人昵称 + */ + private String createByName; + + /** + * 更新人昵称 + */ + private String updateByName; } diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryPlanVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryPlanVo.java index 6b49ddd0..7faf26c2 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryPlanVo.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryPlanVo.java @@ -60,4 +60,15 @@ public class WmsDeliveryPlanVo extends BaseEntity { */ private List waybills; + + /** + * 创建人昵称 + */ + private String createByName; + + /** + * 更新人昵称 + */ + private String updateByName; + } diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java index 74f288aa..357ebe2e 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java @@ -306,5 +306,9 @@ public class WmsMaterialCoilVo extends BaseEntity { */ private Integer abnormalCount; + + private String createByName; + private String updateByName; + } 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 c8fcfc27..e8c27e5d 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 @@ -1,6 +1,7 @@ package com.klp.service.impl; import cn.hutool.core.bean.BeanUtil; +import com.klp.common.core.domain.entity.SysUser; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -11,6 +12,7 @@ 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.system.service.ISysUserService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.klp.domain.bo.WmsDeliveryPlanBo; @@ -33,6 +35,8 @@ public class WmsDeliveryPlanServiceImpl implements IWmsDeliveryPlanService { private final WmsDeliveryPlanMapper baseMapper; + private final ISysUserService userService; + /** * 查询发货计划 */ @@ -48,9 +52,37 @@ 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; + } + // 找不到用户时返回原用户名 + 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 c6877ecf..82afa82b 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 @@ -2,6 +2,7 @@ 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.entity.SysUser; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,8 +11,10 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.klp.common.helper.LoginHelper; import com.klp.common.utils.StringUtils; +import com.klp.common.utils.spring.SpringUtils; import com.klp.domain.bo.*; import com.klp.domain.vo.*; +import com.klp.system.service.ISysUserService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -52,6 +55,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { private final IWmsRawMaterialService rawMaterialService; private final IWmsBomItemService bomItemService; private final IWmsProductService productService; + private final ISysUserService userService; /** * 查询钢卷物料表 @@ -1283,6 +1287,9 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { Map> uniqueSteps = new HashMap<>(); // 用于去重 Set allCoilNos = new HashSet<>(); + // 收集所有操作人用户名 + Set operatorUsernames = new HashSet<>(); + for (WmsGenerateRecordVo qrRecord : allQrRecords) { @SuppressWarnings("unchecked") Map contentMap = (Map) objectMapper.readValue(qrRecord.getContent(), Map.class); @@ -1301,6 +1308,12 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { uniqueStep.put("qrcode_serial", qrRecord.getSerialNumber()); uniqueStep.put("qrcode_id", qrRecord.getRecordId()); uniqueSteps.put(stepKey, uniqueStep); + + // 收集操作人用户名 + Object operator = step.get("operator"); + if (operator != null) { + operatorUsernames.add(operator.toString()); + } } // 提取钢卷号 @@ -1317,6 +1330,9 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { } } + // 获取操作人昵称映射 + Map operatorNicknameMap = getOperatorNicknames(operatorUsernames); + // 转换为列表并按原始步骤号排序(保持时间顺序) List> allSteps = new ArrayList<>(uniqueSteps.values()); @@ -1334,6 +1350,14 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { allSteps.get(i).put("display_step", i + 1); // 保留原始步骤号用于调试 allSteps.get(i).put("original_step", allSteps.get(i).get("step")); + + // 替换操作人为昵称 + Object operator = allSteps.get(i).get("operator"); + if (operator != null) { + String username = operator.toString(); + String nickname = operatorNicknameMap.get(username); + allSteps.get(i).put("operator_nickname", nickname != null ? nickname : username); + } } // 3. 如果指定了当前钢卷号,过滤出相关的钢卷号 @@ -1409,6 +1433,35 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { } } + /** + * 根据用户名获取用户昵称映射 + * @param usernames 用户名集合 + * @return 用户名到昵称的映射 + */ + private Map getOperatorNicknames(Set usernames) { + Map nicknameMap = new HashMap<>(); + if (usernames.isEmpty()) { + return nicknameMap; + } + + for (String username : usernames) { + try { + // 通过用户名查找用户 + SysUser user = userService.selectUserByUserName(username); + if (user != null) { + nicknameMap.put(username, user.getNickName()); + } else { + nicknameMap.put(username, username); // 找不到则使用原用户名 + } + } catch (Exception e) { + // 出现异常时使用原用户名 + nicknameMap.put(username, username); + } + } + + return nicknameMap; + } + /** * 创建步骤唯一标识 */ diff --git a/klp-wms/src/main/resources/mapper/klp/WmsCoilPendingActionMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsCoilPendingActionMapper.xml index 13c72e82..ccf66df6 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsCoilPendingActionMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsCoilPendingActionMapper.xml @@ -50,9 +50,13 @@ wmc.enter_coil_no as enterCoilNo, wmc.supplier_coil_no as supplierCoilNo, wmc.item_id as itemId, - wmc.item_type as itemType + wmc.item_type as itemType, + su_create.nick_name as createByName, + su_operator.nick_name as operatorByName 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 09214962..0389d30a 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml @@ -123,7 +123,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ELSE NULL END as itemCode, -- 异常数量统计 - COALESCE(ca.abnormal_count, 0) AS abnormalCount + COALESCE(ca.abnormal_count, 0) AS abnormalCount, + -- 创建人和更新人昵称 + su_create.nick_name AS createByName, + su_update.nick_name AS updateByName 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 @@ -135,6 +138,9 @@ 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}