diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java index 360682bd1..fe4bfedb0 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java @@ -1646,8 +1646,27 @@ public class StockInOrderApplicationService { * @param stockInOrderDO */ private void shipperParam(StockInOrderDO stockInOrderDO){ + // 新增/编辑时前端可能只传 shipperId(下拉选中值),shipperName 为空。 + // 这里优先按 shipperId 回填货主编码/名称;其次再按 shipperName(名称或数字ID字符串)回填。 + + // 1) 优先按 shipperId 查询 + if (ObjectUtil.isNotNull(stockInOrderDO.getShipperId())) { + AjaxResult ajaxResult = userServiceFeign.getInfo(stockInOrderDO.getShipperId()); + if(!"200".equals(String.valueOf(ajaxResult.get("code")))){ + throw new ServiceException("获取货主信息失败"); + } + UserPo userPo = JSON.parseObject(com.alibaba.fastjson2.JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class); + stockInOrderDO.setShipperId(userPo.getUserId()); + stockInOrderDO.setShipperCode(userPo.getUserMemberCode()); + stockInOrderDO.setShipperName(userPo.getUserName()); + return; + } + + // 2) shipperId 为空时,按 shipperName 兜底 String shipperName = stockInOrderDO.getShipperName(); - if (StringUtils.isEmpty(shipperName)) return; + if (StringUtils.isEmpty(shipperName)) { + return; + } if (!shipperName.matches("\\d+")) { // 按名称查询 AjaxResult ajaxResult = userServiceFeign.getInfoByName(shipperName); @@ -1659,7 +1678,7 @@ public class StockInOrderApplicationService { stockInOrderDO.setShipperCode(userPo.getUserMemberCode()); stockInOrderDO.setShipperName(userPo.getUserName()); } else { - // 按ID查询 + // shipperName 是数字:按ID查询 AjaxResult ajaxResult = userServiceFeign.getInfo(Long.valueOf(shipperName)); if(!"200".equals(String.valueOf(ajaxResult.get("code")))){ throw new ServiceException("获取货主信息失败");