feat(wms): 添加发货人功能并优化用户昵称查询

- 在 WmsMaterialCoil 实体中新增 exportBy 字段用于记录发货人
- 在 WmsMaterialCoilBo 中同步添加 exportBy 字段
- 修改 SysUserServiceImpl 中的用户昵称查询逻辑,对不存在的用户名返回用户名本身
- 在 WmsMaterialCoilServiceImpl 中扩展用户昵称填充功能,支持发货人昵称显示
- 在钢卷发货流程中记录当前操作用户的用户名作为发货人
- 在 WmsMaterialCoilVo 中添加 exportBy 和 exportByName 字段用于前端展示
This commit is contained in:
2026-01-14 11:05:25 +08:00
parent 64750291d9
commit e643b1b068
5 changed files with 34 additions and 4 deletions

View File

@@ -147,11 +147,25 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
if (CollUtil.isEmpty(userNames)) {
return new HashMap<>();
}
// 先查询数据库中存在的用户
List<SysUser> users = baseMapper.selectList(new LambdaQueryWrapper<SysUser>()
.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));
// 创建一个映射,包含存在的用户昵称
Map<String, String> nickMap = users.stream()
.collect(Collectors.toMap(SysUser::getUserName, SysUser::getNickName, (a, b) -> a));
// 对于不存在的用户名,将其用户名作为昵称添加到映射中
for (String userName : userNames) {
if (!nickMap.containsKey(userName)) {
nickMap.put(userName, userName);
}
}
return nickMap;
}
/**

View File

@@ -135,5 +135,8 @@ public class WmsMaterialCoil extends BaseEntity {
//新增长度字段
private BigDecimal length;
//发货人
private String exportBy;
}

View File

@@ -208,5 +208,7 @@ public class WmsMaterialCoilBo extends BaseEntity {
// 仅查询废品(质量状态为 D+、D、D-
private Boolean onlyScrap;
private String exportBy;
}

View File

@@ -317,5 +317,10 @@ public class WmsMaterialCoilVo extends BaseEntity {
//新增长度字段
private BigDecimal length;
//发货人
private String exportBy;
//发货人昵称
private String exportByName;
}

View File

@@ -305,7 +305,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
}
Set<String> userNames = records.stream()
.flatMap(v -> java.util.stream.Stream.of(v.getCreateBy(), v.getUpdateBy()))
.flatMap(v -> java.util.stream.Stream.of(v.getCreateBy(), v.getUpdateBy(), v.getExportBy()))
.filter(StringUtils::isNotBlank)
.collect(Collectors.toSet());
@@ -314,7 +314,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
nickMap = userService.selectNickNameMapByUserNames(new ArrayList<>(userNames));
}
// 单次遍历:填充创建/更新人昵称,并构建物料/产品对象
// 单次遍历:填充创建/更新/发货人昵称,并构建物料/产品对象
for (WmsMaterialCoilVo vo : records) {
if (!nickMap.isEmpty()) {
if (StringUtils.isNotBlank(vo.getCreateBy())) {
@@ -323,6 +323,9 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
if (StringUtils.isNotBlank(vo.getUpdateBy())) {
vo.setUpdateByName(nickMap.getOrDefault(vo.getUpdateBy(), vo.getUpdateBy()));
}
if (StringUtils.isNotBlank(vo.getExportBy())) {
vo.setExportByName(nickMap.getOrDefault(vo.getExportBy(), vo.getExportBy()));
}
}
// 从联查结果中构建产品和原材料对象(避免单独查询)
buildItemObjectFromJoin(vo);
@@ -2099,6 +2102,8 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
// 1. 更新钢卷为已发货并记录发货时间同时清空实际库区占用改用Wrapper实现
int rows = 0;
//获取当前调用接口的这个人的username
String username = LoginHelper.getUsername();
if (wmsMaterialCoilVo != null) {
UpdateWrapper<WmsMaterialCoil> updateWrapper = new UpdateWrapper<>();
// 设置更新条件钢卷ID
@@ -2106,7 +2111,8 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
// 设置要更新的字段
updateWrapper.set("export_time", new Date()) // 发货时间
.set("status", 1) // 已发货状态
.set("actual_warehouse_id", null); // 清空实际库区ID关键
.set("actual_warehouse_id", null) // 清空实际库区ID关键
.set("export_by", username); // 发货人
// 执行更新操作
rows = baseMapper.update(null, updateWrapper);