From 849b8da2dc55e4b46d5cc939679ab4412e1b272a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Tue, 3 Mar 2026 16:06:40 +0800 Subject: [PATCH] =?UTF-8?q?WMS=E5=87=BA=E5=BA=93=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E3=80=81=E6=8B=A3=E8=B4=A7=E7=AE=A1=E7=90=86=E3=80=81=E5=87=BA?= =?UTF-8?q?=E5=BA=93=E4=BA=A4=E6=8E=A5=E3=80=81=E5=87=BA=E5=BA=93=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E3=80=81=E6=8B=A3=E8=B4=A7=E4=BD=9C=E4=B8=9A=E5=8D=95?= =?UTF-8?q?=E7=9A=84=E5=88=9B=E5=BB=BA=E4=BA=BA=E5=A7=93=E5=90=8D=EF=BC=8C?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E4=BA=BA=E5=A7=93=E5=90=8D=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=AD=98=E8=B4=A6=E5=8F=B7=E7=9A=84=E5=A7=93=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HandoverTaskOrderDomainService.java | 11 ++++- .../persistence/OutMaterialDetailImpl.java | 9 +++- .../persistence/OutOrderAbnormalImpl.java | 18 +++++++- .../persistence/PickingOrderImpl.java | 14 ++++-- .../service/PickingOrderDomainService.java | 45 +++++++++++++++++-- .../listener/ExcelParseService.java | 14 +++++- .../service/StockOutOrderDomainService.java | 31 ++++++++++--- .../persistence/StockOutTaskOrderImpl.java | 15 +++++-- .../stockOutOrder/StockOutOrderAssembler.java | 20 +++++++-- .../StockOutTaskOrderAssembler.java | 15 +++++-- 10 files changed, 162 insertions(+), 30 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java index 4e49253ba..4b5d188d3 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java @@ -307,6 +307,13 @@ public class HandoverTaskOrderDomainService { private void genDeliveTask(List handoverTaskOrders, HandoverTaskOrderDO handoverTaskOrderDO) { LoginUser loginUser = SecurityUtils.getLoginUser(); + // 获取用户姓名(优先从UserPo获取,如果为空则使用realname,最后使用username作为兜底) + final String userRealName = (loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null + && !loginUser.getUserPo().getUserName().trim().isEmpty()) + ? loginUser.getUserPo().getUserName() + : (loginUser.getRealname() != null && !loginUser.getRealname().trim().isEmpty()) + ? loginUser.getRealname() + : loginUser.getUsername(); List deliveTaskDOList = new ArrayList<>(); for (HandoverTaskOrder handoverTaskOrder : handoverTaskOrders) { DeliveTaskDO deliveTaskDO = new DeliveTaskDO(); @@ -321,12 +328,12 @@ public class HandoverTaskOrderDomainService { deliveTaskDO.setTaskType(7); deliveTaskDO.setTaskDistribution(1); deliveTaskDO.setTaskDistributionId(loginUser.getUserid()); - deliveTaskDO.setTaskDistributionName(loginUser.getUsername()); + deliveTaskDO.setTaskDistributionName(userRealName); deliveTaskDO.setTaskDistributionTime(new Date()); deliveTaskDO.setOperatorsBy(handoverTaskOrderDO.getOperatorsBy()); deliveTaskDO.setOperatorsName(handoverTaskOrderDO.getOperatorsName()); deliveTaskDO.setCreateBy(loginUser.getUserid()); - deliveTaskDO.setCreateByName(loginUser.getUsername()); + deliveTaskDO.setCreateByName(userRealName); deliveTaskDO.setCreateTime(new Date()); deliveTaskDOList.add(deliveTaskDO); } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/persistence/OutMaterialDetailImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/persistence/OutMaterialDetailImpl.java index 99275a18f..b1c2aad82 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/persistence/OutMaterialDetailImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/persistence/OutMaterialDetailImpl.java @@ -153,6 +153,13 @@ public class OutMaterialDetailImpl extends ServiceImpl outMaterialDetailList = new ArrayList<>(); for (OutMaterialDetailDO outMaterialDetailDO : outMaterialDetailDOList){ OutMaterialDetail outMaterialDetail = new OutMaterialDetail(); @@ -163,7 +170,7 @@ public class OutMaterialDetailImpl extends ServiceImpl genPickingOrderMaterialDetailList(OutOrderAbnormalBaseDO OutOrderAbnormalBaseDO, List pickingMaterialDetailList){ LoginUser loginUser = SecurityUtils.getLoginUser(); + // 获取用户姓名(优先从UserPo获取,如果为空则使用realname,最后使用username作为兜底) + final String userRealName = (loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null + && !loginUser.getUserPo().getUserName().trim().isEmpty()) + ? loginUser.getUserPo().getUserName() + : (loginUser.getRealname() != null && !loginUser.getRealname().trim().isEmpty()) + ? loginUser.getRealname() + : loginUser.getUsername(); List outOrderAbnormalList = new ArrayList<>(); //BigDecimal actualQuantity = BigDecimal.ZERO; for (PickingMaterialDetail pickingMaterialDetail : pickingMaterialDetailList){ @@ -163,7 +170,7 @@ public class OutOrderAbnormalImpl extends ServiceImpl genCheckOrderMaterialDetailList(OutOrderAbnormalBaseDO OutOrderAbnormalBaseDO, List outMaterialDetailList){ LoginUser loginUser = SecurityUtils.getLoginUser(); + // 获取用户姓名(优先从UserPo获取,如果为空则使用realname,最后使用username作为兜底) + final String userRealName = (loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null + && !loginUser.getUserPo().getUserName().trim().isEmpty()) + ? loginUser.getUserPo().getUserName() + : (loginUser.getRealname() != null && !loginUser.getRealname().trim().isEmpty()) + ? loginUser.getRealname() + : loginUser.getUsername(); List outOrderAbnormalList = new ArrayList<>(); for (OutMaterialDetail outMaterialDetail : outMaterialDetailList){ //复核 @@ -203,7 +217,7 @@ public class OutOrderAbnormalImpl extends ServiceImpl pickingOrderDOList) { LoginUser loginUser = SecurityUtils.getLoginUser(); Long userId = loginUser.getUserid(); - String userName = loginUser.getUsername(); + // 获取用户姓名(优先从UserPo获取,如果为空则使用realname,最后使用username作为兜底) + final String userRealName = (loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null + && !loginUser.getUserPo().getUserName().trim().isEmpty()) + ? loginUser.getUserPo().getUserName() + : (loginUser.getRealname() != null && !loginUser.getRealname().trim().isEmpty()) + ? loginUser.getRealname() + : loginUser.getUsername(); Date date = new Date(); List pickingOrderList = new ArrayList<>(); for (PickingOrderDO pickingOrderDO : pickingOrderDOList){ @@ -69,10 +75,12 @@ public class PickingOrderImpl extends ServiceImpl pickingOrderDOList) { + // 统一设置拣货单的创建人/修改人为当前登录用户(使用用户姓名,而不是账号) + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (loginUser != null && loginUser.getUserPo() != null) { + final Long userId = loginUser.getUserid(); + // 获取用户姓名(优先从UserPo获取,如果为空则使用realname,最后使用username作为兜底) + final String userRealName = (loginUser.getUserPo().getUserName() != null + && !loginUser.getUserPo().getUserName().trim().isEmpty()) + ? loginUser.getUserPo().getUserName() + : (loginUser.getRealname() != null && !loginUser.getRealname().trim().isEmpty()) + ? loginUser.getRealname() + : loginUser.getUsername(); + final Date now = new Date(); + for (PickingOrderDO pickingOrderDO : pickingOrderDOList) { + // 覆盖来源出库单中可能携带的旧的账号型创建人/修改人信息 + pickingOrderDO.setCreateBy(userId); + pickingOrderDO.setCreateByName(userRealName); + if (pickingOrderDO.getCreateTime() == null) { + pickingOrderDO.setCreateTime(now); + } + pickingOrderDO.setUpdateBy(userId); + pickingOrderDO.setUpdateByName(userRealName); + pickingOrderDO.setUpdateTime(now); + } + } + pickingOrderService.batchInsert(pickingOrderDOList); List pickingMaterialDetailList = new ArrayList<>(); for (PickingOrderDO pickingOrderDO : pickingOrderDOList){ @@ -160,6 +185,13 @@ public class PickingOrderDomainService { */ private PickingMaterialDetail genPickingMaterialDetail(PickingMaterialDetailDO pickingMaterialDetailDO){ LoginUser loginUser = SecurityUtils.getLoginUser(); + // 获取用户姓名(优先从UserPo获取,如果为空则使用realname,最后使用username作为兜底) + final String userRealName = (loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null + && !loginUser.getUserPo().getUserName().trim().isEmpty()) + ? loginUser.getUserPo().getUserName() + : (loginUser.getRealname() != null && !loginUser.getRealname().trim().isEmpty()) + ? loginUser.getRealname() + : loginUser.getUsername(); PickingMaterialDetail pickingMaterialDetail = new PickingMaterialDetail(); BeanUtils.copyProperties(pickingMaterialDetailDO, pickingMaterialDetail, "createBy","createByName","createTime", "updateBy","updateByName","updateTime"); @@ -168,7 +200,7 @@ public class PickingOrderDomainService { pickingMaterialDetail.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); pickingMaterialDetail.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId)); pickingMaterialDetail.setCreateBy(loginUser.getUserid()); - pickingMaterialDetail.setCreateByName(loginUser.getUsername()); + pickingMaterialDetail.setCreateByName(userRealName); pickingMaterialDetail.setCreateTime(new Date()); return pickingMaterialDetail; } @@ -739,6 +771,13 @@ public class PickingOrderDomainService { @Transactional(rollbackFor = Exception.class) public void genDeliveTask(PickingOrderDO pickingOrderDO, List stockOutTaskOrderDOList){ LoginUser loginUser = SecurityUtils.getLoginUser(); + // 获取用户姓名(优先从UserPo获取,如果为空则使用realname,最后使用username作为兜底) + final String userRealName = (loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null + && !loginUser.getUserPo().getUserName().trim().isEmpty()) + ? loginUser.getUserPo().getUserName() + : (loginUser.getRealname() != null && !loginUser.getRealname().trim().isEmpty()) + ? loginUser.getRealname() + : loginUser.getUsername(); List deliveTaskDOList = new ArrayList<>(); for (StockOutTaskOrderDO stockOutTaskOrderDO : stockOutTaskOrderDOList){ DeliveTaskDO deliveTaskDO = new DeliveTaskDO(); @@ -753,12 +792,12 @@ public class PickingOrderDomainService { deliveTaskDO.setTaskType(3); deliveTaskDO.setTaskDistribution(1); deliveTaskDO.setTaskDistributionId(loginUser.getUserid()); - deliveTaskDO.setTaskDistributionName(loginUser.getUsername()); + deliveTaskDO.setTaskDistributionName(userRealName); deliveTaskDO.setTaskDistributionTime(new Date()); deliveTaskDO.setOperatorsBy(pickingOrderDO.getOperatorsBy()); deliveTaskDO.setOperatorsName(pickingOrderDO.getOperatorsName()); deliveTaskDO.setCreateBy(loginUser.getUserid()); - deliveTaskDO.setCreateByName(loginUser.getUsername()); + deliveTaskDO.setCreateByName(userRealName); deliveTaskDO.setCreateTime(new Date()); deliveTaskDOList.add(deliveTaskDO); } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/listener/ExcelParseService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/listener/ExcelParseService.java index eda236076..7ab56d211 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/listener/ExcelParseService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/listener/ExcelParseService.java @@ -124,11 +124,21 @@ public class ExcelParseService { } //设置创建时间和创建人信息 if (loginUser != null) { + // 获取用户姓名(优先从UserPo获取,如果为空则使用realname,最后使用username作为兜底) + String userRealName = null; + if (loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null + && !loginUser.getUserPo().getUserName().trim().isEmpty()) { + userRealName = loginUser.getUserPo().getUserName(); + } else if (loginUser.getRealname() != null && !loginUser.getRealname().trim().isEmpty()) { + userRealName = loginUser.getRealname(); + } else { + userRealName = loginUser.getUsername(); + } stockOutOrder.setCreateBy(loginUser.getUserid()); - stockOutOrder.setCreateByName(loginUser.getUsername()); + stockOutOrder.setCreateByName(userRealName); stockOutOrder.setCreateTime(new Date()); stockOutOrder.setUpdateBy(loginUser.getUserid()); - stockOutOrder.setUpdateByName(loginUser.getUsername()); + stockOutOrder.setUpdateByName(userRealName); stockOutOrder.setUpdateTime(new Date()); stockOutOrder.setDelFlag(1); } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java index df229ea4e..d079288fc 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java @@ -519,6 +519,10 @@ public class StockOutOrderDomainService { @Transactional(rollbackFor = Exception.class) public Boolean auditState(StockOutOrderDO stockOutOrderDO) { LoginUser loginUser = SecurityUtils.getLoginUser(); + // 获取用户姓名(优先从UserPo获取,如果为空则使用realname,最后使用username作为兜底) + String userRealName = loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null + ? loginUser.getUserPo().getUserName() + : (loginUser.getRealname() != null ? loginUser.getRealname() : loginUser.getUsername()); //统计是否已经审核 int count = stockOutOrderService.count(new QueryWrapper().lambda() .eq(StockOutOrder::getAuditStatus, 3) @@ -532,10 +536,10 @@ public class StockOutOrderDomainService { .set(StockOutOrder::getAuditStatus, stockOutOrderDO.getAuditStatus()) .set(StockOutOrder::getAuditRemark, stockOutOrderDO.getAuditRemark()) .set(StockOutOrder::getAuditBy, loginUser.getUserid()) - .set(StockOutOrder::getAuditByName, loginUser.getUsername()) + .set(StockOutOrder::getAuditByName, userRealName) .set(StockOutOrder::getAuditTime, new Date()) .set(StockOutOrder::getUpdateBy, loginUser.getUserid()) - .set(StockOutOrder::getUpdateByName, loginUser.getUsername()) + .set(StockOutOrder::getUpdateByName, userRealName) .set(StockOutOrder::getUpdateTime, new Date()) .in(StockOutOrder::getOutOrderId, stockOutOrderDO.getOutOrderIds())); } @@ -1296,8 +1300,12 @@ public class StockOutOrderDomainService { stockInOrderDO.setOrderTypeName("调拨入库"); stockInOrderDO.setDirectWarehouse(2); stockInOrderDO.setMaterialQuantity(mobilizeManageDetailPOList.size()); + // 获取用户姓名(优先从UserPo获取,如果为空则使用realname,最后使用username作为兜底) + String userRealName = loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null + ? loginUser.getUserPo().getUserName() + : (loginUser.getRealname() != null ? loginUser.getRealname() : loginUser.getUsername()); stockInOrderDO.setCreateBy(loginUser.getUserid()); - stockInOrderDO.setCreateByName(loginUser.getUsername()); + stockInOrderDO.setCreateByName(userRealName); stockInOrderDO.setCreateTime(new Date()); //统计总计划数 BigDecimal quantity = stockInOrderDO.getMaterialDetailList().stream().map(InMaterialDetailDO::getQuantity).reduce(BigDecimal.ZERO, BigDecimal::add); @@ -1333,6 +1341,10 @@ public class StockOutOrderDomainService { return; } LoginUser loginUser = SecurityUtils.getLoginUser(); + // 获取用户姓名(优先从UserPo获取,如果为空则使用realname,最后使用username作为兜底) + String userRealName = loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null + ? loginUser.getUserPo().getUserName() + : (loginUser.getRealname() != null ? loginUser.getRealname() : loginUser.getUsername()); HandoverTaskOrderDO handoverTaskOrderDO = new HandoverTaskOrderDO(); handoverTaskOrderDO.setOrganizationId(stockOutOrderPO.getOrganizationId()); handoverTaskOrderDO.setOrganizationName(stockOutOrderPO.getOrganizationName()); @@ -1350,7 +1362,7 @@ public class StockOutOrderDomainService { handoverTaskOrderDO.setExpectTime(stockOutOrderPO.getExpectTime()); handoverTaskOrderDO.setOrderNumber(stockOutOrderPO.getOutOrderNumber()); handoverTaskOrderDO.setCreateBy(loginUser.getUserid()); - handoverTaskOrderDO.setCreateByName(loginUser.getUsername()); + handoverTaskOrderDO.setCreateByName(userRealName); handoverTaskOrderDO.setCreateTime(new Date()); handoverTaskOrderService.insert(handoverTaskOrderDO);; } @@ -1401,6 +1413,13 @@ public class StockOutOrderDomainService { @Transactional(rollbackFor = Exception.class) public void genDeliveTask(List stockOutOrderPOList, StockOutOrderDO stockOutOrderDO){ LoginUser loginUser = SecurityUtils.getLoginUser(); + // 获取用户姓名(优先从UserPo获取,如果为空则使用realname,最后使用username作为兜底) + final String userRealName = (loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null + && !loginUser.getUserPo().getUserName().trim().isEmpty()) + ? loginUser.getUserPo().getUserName() + : (loginUser.getRealname() != null && !loginUser.getRealname().trim().isEmpty()) + ? loginUser.getRealname() + : loginUser.getUsername(); List deliveTaskDOList = new ArrayList<>(); for (StockOutOrderPO stockOutOrderPO : stockOutOrderPOList){ DeliveTaskDO deliveTaskDO = new DeliveTaskDO(); @@ -1415,12 +1434,12 @@ public class StockOutOrderDomainService { deliveTaskDO.setTaskType(4); deliveTaskDO.setTaskDistribution(1); deliveTaskDO.setTaskDistributionId(loginUser.getUserid()); - deliveTaskDO.setTaskDistributionName(loginUser.getUsername()); + deliveTaskDO.setTaskDistributionName(userRealName); deliveTaskDO.setTaskDistributionTime(new Date()); deliveTaskDO.setOperatorsBy(stockOutOrderDO.getCheckOperatorsBy()); deliveTaskDO.setOperatorsName(stockOutOrderDO.getCheckOperatorsName()); deliveTaskDO.setCreateBy(loginUser.getUserid()); - deliveTaskDO.setCreateByName(loginUser.getUsername()); + deliveTaskDO.setCreateByName(userRealName); deliveTaskDO.setCreateTime(new Date()); deliveTaskDOList.add(deliveTaskDO); } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/repository/persistence/StockOutTaskOrderImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/repository/persistence/StockOutTaskOrderImpl.java index 05eaf850f..10927c26a 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/repository/persistence/StockOutTaskOrderImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/repository/persistence/StockOutTaskOrderImpl.java @@ -107,6 +107,13 @@ public class StockOutTaskOrderImpl extends ServiceImpl stockOutTaskOrderList = new ArrayList<>(); List taskPickingMaterialDetailList = new ArrayList<>(); + // 获取用户姓名(优先从UserPo获取,如果为空则使用realname,最后使用username作为兜底) + final String userRealName = (loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null + && !loginUser.getUserPo().getUserName().trim().isEmpty()) + ? loginUser.getUserPo().getUserName() + : (loginUser.getRealname() != null && !loginUser.getRealname().trim().isEmpty()) + ? loginUser.getRealname() + : loginUser.getUsername(); stockOutTaskOrderDOList.forEach(stockOutTaskOrderDO -> { StockOutTaskOrder stockOutTaskOrder = new StockOutTaskOrder(); BeanUtils.copyProperties(stockOutTaskOrderDO, stockOutTaskOrder, "materialDetailId", "status", "createBy","createByName","createTime", @@ -115,10 +122,10 @@ public class StockOutTaskOrderImpl extends ServiceImpl