diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockInOrder/service/ReserveStockInOrderApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockInOrder/service/ReserveStockInOrderApplicationService.java index 571dfa51c..f0a8d2302 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockInOrder/service/ReserveStockInOrderApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockInOrder/service/ReserveStockInOrderApplicationService.java @@ -153,6 +153,10 @@ public class ReserveStockInOrderApplicationService { public List detailsList(ReserveStockInOrderDO stockInOrderDO) { + // 与 queryList(:96-99) 对齐:委托方按货主直查 + if (stockInOrderDO.getShipperId() != null && stockInOrderDO.getShipperId() != 0L) { + return stockInOrderDomainService.detailsList(stockInOrderDO); + } LoginUser loginUser = SecurityUtils.getLoginUser(); if (loginUser != null && loginUser.getUserPo() != null){ Long userOrganizationId = loginUser.getUserPo().getOrganizationId(); @@ -195,6 +199,11 @@ public class ReserveStockInOrderApplicationService { public List inAndOutList(ReserveStockInOrderDO stockInOrderDO) { LoginUser loginUser = SecurityUtils.getLoginUser(); + // 委托方(货主)登录:强制只看本人货主数据;运营人员不注入(XML :667-669 支持 shipperId) + if (stockInOrderDO.getShipperId() == null + && loginUser != null && loginUser.getUserShipperPo() != null) { + stockInOrderDO.setShipperId(loginUser.getUserPo().getUserId()); + } return stockInOrderDomainService.inAndOutList(stockInOrderDO); } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockInOrder/service/ReserveStockInOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockInOrder/service/ReserveStockInOrderDomainService.java index 09f51e85f..8cbd6cb8e 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockInOrder/service/ReserveStockInOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockInOrder/service/ReserveStockInOrderDomainService.java @@ -142,6 +142,9 @@ public class ReserveStockInOrderDomainService { // //设置物料信息 // setMaterialDetailInfo(stockInOrderDO); // //统计总物料种数 + if (CollectionUtils.isEmpty(stockInOrderDO.getMaterialDetailList())) { + throw new ServiceException("请添加货物明细"); + } stockInOrderDO.setMaterialQuantity(stockInOrderDO.getMaterialDetailList().size()); // //统计总计划数 BigDecimal quantity = stockInOrderDO.getMaterialDetailList().stream().map(ReserveInMaterialDetailDO::getQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); @@ -155,9 +158,46 @@ public class ReserveStockInOrderDomainService { BigDecimal volumeLimit = stockInOrderDO.getMaterialDetailList().stream().map(ReserveInMaterialDetailDO::getVolumeLimit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); stockInOrderDO.setVolumeLimit(volumeLimit); LoginUser loginUser = SecurityUtils.getLoginUser(); - stockInOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); -// stockInOrderDO.setOrganizationId(loginUser.getUserPo().getOrganizationId()); -// stockInOrderDO.setOrganizationName(loginUser.getUserPo().getOrganizationName()); + // 仓库档案回填:组织(仓码2841/谷丰2842按仓库归属)/一级组织(2827)/仓库编码名称 + if (stockInOrderDO.getWarehouseId() != null) { + AjaxResult wr = systemServiceFeign.getWarehouseInfoByWarehouseId(stockInOrderDO.getWarehouseId()); + if ("200".equals(String.valueOf(wr.get("code")))) { + WarehouseFeignPO wh = JSON.parseObject(JSONObject.toJSONString(wr.get("data")), WarehouseFeignPO.class); + if (stockInOrderDO.getOrganizationId() == null && wh.getOrganizationId() != null) { + stockInOrderDO.setOrganizationId(wh.getOrganizationId()); + stockInOrderDO.setOrganizationName(wh.getOrganizationName()); + } + if (wh.getTopOrganizationId() != null) { + stockInOrderDO.setTopOrganizationId(wh.getTopOrganizationId()); + } + if (StringUtils.isBlank(stockInOrderDO.getWarehouseCode())) { + stockInOrderDO.setWarehouseCode(wh.getWarehouseCode()); + stockInOrderDO.setWarehouseName(wh.getWarehouseName()); + } + } + } + // 兜底:仓库没带组织时用登录人一级组织 + 2841(与存量导入 :2226-2228 口径一致) + if (stockInOrderDO.getTopOrganizationId() == null) { + stockInOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); + } + if (stockInOrderDO.getOrganizationId() == null) { + stockInOrderDO.setOrganizationId(2841L); + stockInOrderDO.setOrganizationName("仓码"); + } + // 委托方(货主)身份回填:App未传且登录人有货主档案时=登录人(模式同 importInData :1992-1997) + if (stockInOrderDO.getShipperId() == null && loginUser.getUserShipperPo() != null) { + stockInOrderDO.setShipperId(loginUser.getUserPo().getUserId()); + stockInOrderDO.setShipperName(loginUser.getUserPo().getUserName()); + stockInOrderDO.setCustomerId(loginUser.getUserPo().getUserId()); + stockInOrderDO.setCustomerName(loginUser.getUserPo().getUserName()); + } + // 状态默认值(App端订单状态不可编辑) + if (StringUtils.isBlank(stockInOrderDO.getOrderStatus())) { + stockInOrderDO.setOrderStatus("新增"); + } + if (stockInOrderDO.getStatus() == null) { + stockInOrderDO.setStatus(1); + } stockInOrderService.insert(stockInOrderDO); return materialDetailService.batchInsert(stockInOrderDO.getInOrderNumber(), stockInOrderDO.getMaterialDetailList()); }