diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/mapper/BillManageMapper.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/mapper/BillManageMapper.java index 9b56d9f1e..dd9602190 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/mapper/BillManageMapper.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/mapper/BillManageMapper.java @@ -31,4 +31,6 @@ public interface BillManageMapper extends BaseMapper String getServiceItemsCodeNc(@Param("name") String name); + String getNcUrl(@Param("interfaceType") String interfaceType,@Param("organizationName") String organizationName,@Param("organizationId") Long organizationId); + } \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/persistence/BillManageImpl.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/persistence/BillManageImpl.java index a2b4bc3e7..bc6f6ff75 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/persistence/BillManageImpl.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/persistence/BillManageImpl.java @@ -192,13 +192,11 @@ public class BillManageImpl extends ServiceImpl im count++; List ysitemList=new ArrayList(); String url = ""; - SysDepartInterfaceInfoDTO query= new SysDepartInterfaceInfoDTO(); - query.setOrganizationId(reconciliation.getOrganizationId()); - query.setOrganizationName(reconciliation.getOrganizationName()); - query.setInterfaceType("nc"); - List urlList = thirdPartyServiceFeign.queryList(query); - if (urlList != null && urlList.size() > 0) { - url = urlList.get(0).getInterfaceTypeValue(); + Long organizationId = reconciliation.getOrganizationId(); + String organizationName = reconciliation.getOrganizationName(); + String ncUrl = billManageMapper.getNcUrl("nc", organizationName, organizationId); + if (ncUrl!=null&&ncUrl!="") { + url = ncUrl; } else { throw new ServiceException("未找到该组织的推送地址!"); } @@ -438,13 +436,11 @@ public class BillManageImpl extends ServiceImpl im ReconciliationDTO reconciliationDTO=new ReconciliationDTO(); reconciliationDTO.setInnerNumber(reconciliation.getBillNumber()); String url = ""; - SysDepartInterfaceInfoDTO query= new SysDepartInterfaceInfoDTO(); - query.setOrganizationId(reconciliation.getOrganizationId()); - query.setOrganizationName(reconciliation.getOrganizationName()); - query.setInterfaceType("nc"); - List urlList = thirdPartyServiceFeign.queryList(query); - if (urlList != null && urlList.size() > 0) { - url = urlList.get(0).getInterfaceTypeValue(); + Long organizationId = reconciliation.getOrganizationId(); + String organizationName = reconciliation.getOrganizationName(); + String ncUrl = billManageMapper.getNcUrl("nc", organizationName, organizationId); + if (ncUrl!=null&&ncUrl!="") { + url = ncUrl; } else { throw new ServiceException("未找到该组织的推送地址!"); } diff --git a/mhd_bms/src/main/resources/mapper/BillManageMapper.xml b/mhd_bms/src/main/resources/mapper/BillManageMapper.xml index 24eaa4cc2..87586c3f0 100644 --- a/mhd_bms/src/main/resources/mapper/BillManageMapper.xml +++ b/mhd_bms/src/main/resources/mapper/BillManageMapper.xml @@ -101,7 +101,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java index 068f9d9c1..daad3e047 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java @@ -413,8 +413,9 @@ public class StockReceiptOrderApplicationService { if (CollectionUtils.isEmpty(children)) { continue; } - // 主行 alreadyReceiptQuantity = 主行 receiptQuantity + 所有子项 receiptQuantity - BigDecimal alreadyReceiptQuantitySum = parent.getReceiptQuantity() != null ? parent.getReceiptQuantity() : BigDecimal.ZERO; + // 若存在 parent_copy(子项 uniqueId 与主项相同),主行数量仅取自子项,避免重复累加 + boolean hasParentCopy = children.stream().anyMatch(c -> parent.getUniqueId() != null && parent.getUniqueId().equals(c.getUniqueId())); + BigDecimal alreadyReceiptQuantitySum = (hasParentCopy ? BigDecimal.ZERO : (parent.getReceiptQuantity() != null ? parent.getReceiptQuantity() : BigDecimal.ZERO)); Integer maxReceiptStatus = parent.getReceiptStatus(); for (ReceiptMaterialDetailPO child : children) { if (child.getReceiptQuantity() != null) { diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java index 2685051f2..6354c87f5 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java @@ -194,6 +194,20 @@ public class StockShelfOrderApplicationService { ShelfMaterialDetailDO shelfMaterialDetailDO = new ShelfMaterialDetailDO(); shelfMaterialDetailDO.setShelfOrderNumber(stockShelfOrderPO.getShelfOrderNumber()); List shelfMaterialDetailPOList = shelfMaterialDetailDomainService.queryListChildren(shelfMaterialDetailDO); + // 主项无子项时:添加 parent_copy 到 children,供详情页展示(详情页从 children 读取数据) + for (ShelfMaterialDetailPO parent : shelfMaterialDetailPOList) { + if (CollectionUtils.isEmpty(parent.getChildren())) { + ShelfMaterialDetailPO parentCopy = new ShelfMaterialDetailPO(); + BeanUtils.copyProperties(parent, parentCopy, "children"); + parentCopy.setLevel(2); + parentCopy.setParentUniqueId(parent.getUniqueId()); + parentCopy.setQuantity(null); + parentCopy.setChildren(new ArrayList<>()); + List children = new ArrayList<>(); + children.add(parentCopy); + parent.setChildren(children); + } + } // 性能优化:批量获取批次属性,避免N+1查询问题 // 1. 收集所有唯一的materialBaseInfoId diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/repository/po/TaskMaterialPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/repository/po/TaskMaterialPO.java index 666e74897..a159142cd 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/repository/po/TaskMaterialPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/repository/po/TaskMaterialPO.java @@ -1,5 +1,6 @@ package com.mhd.wms.domain.stockOutTaskOrder.repository.po; +import com.fasterxml.jackson.annotation.JsonProperty; import com.mhd.common.core.annotation.Excel; import com.mhd.common.core.web.domain.BaseVOEntity; import com.mhd.wms.domain.taskPickingMaterialDetail.repository.po.TaskPickingMaterialDetailPO; @@ -68,4 +69,12 @@ public class TaskMaterialPO extends BaseVOEntity { @ApiModelProperty("拣货作业物料详情") private List taskPickingMaterialDetailList; + /** + * 与 taskPickingMaterialDetailList 同值,供详情页从 children 读取(与收货单、上架单结构一致) + */ + @JsonProperty("children") + public List getChildren() { + return taskPickingMaterialDetailList; + } + } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java index 4944fd694..c682234e2 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java @@ -228,10 +228,23 @@ public class StockReceiptOrderDomainService { receiptMaterialDetailPOChildren.setQuantity(null); }); } else { - // 主项无子项时(点击分批收货前):确保主项也有批次属性,否则 PDA 不显示 + // 主项无子项时:添加 parent_copy 到 children,供详情页展示(详情页从 children 读取数据) if (CollectionUtils.isEmpty(receiptMaterialDetailPO.getMaterialMoreDetailList())) { receiptMaterialDetailPO.setMaterialMoreDetailList(getMaterialMoreDetail(receiptMaterialDetailPO)); } + ReceiptMaterialDetailPO parentCopy = new ReceiptMaterialDetailPO(); + BeanUtils.copyProperties(receiptMaterialDetailPO, parentCopy, "children"); + parentCopy.setLevel(2); + parentCopy.setParentUniqueId(receiptMaterialDetailPO.getUniqueId()); + parentCopy.setQuantity(null); + parentCopy.setChildren(new ArrayList<>()); + if (CollectionUtils.isEmpty(parentCopy.getMaterialMoreDetailList())) { + parentCopy.setMaterialMoreDetailList(receiptMaterialDetailPO.getMaterialMoreDetailList()); + } + List serialList = inMaterialDetailSerialNumberMap.get(receiptMaterialDetailPO.getUniqueId()); + parentCopy.setMaterialDetailSerialNumberList(serialList != null ? serialList : new ArrayList<>()); + receiptMaterialDetailPOChildrenList = new ArrayList<>(); + receiptMaterialDetailPOChildrenList.add(parentCopy); } receiptMaterialDetailPO.setChildren(receiptMaterialDetailPOChildrenList != null ? receiptMaterialDetailPOChildrenList : new ArrayList<>()); }); diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/stockOutOrder/StockOutOrderAppApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/stockOutOrder/StockOutOrderAppApi.java index 2589461f2..89e0e2793 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/stockOutOrder/StockOutOrderAppApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/stockOutOrder/StockOutOrderAppApi.java @@ -38,7 +38,7 @@ public class StockOutOrderAppApi extends BaseController { /** * 分页查询出库单列表(PDA复核查询) - * 查询条件:warehouse_id(用户关联仓库)、check_operators_by(当前用户)、check_status<3 等 + * 查询条件:warehouse_id(用户关联仓库)、check_operators_by(当前用户)、check_status>2 等 */ @ApiOperation("查询出库单列表") @GetMapping("/list") @@ -50,7 +50,7 @@ public class StockOutOrderAppApi extends BaseController { stockOutOrderDO.setCheckOperatorsBy(userPo.getUserId()); stockOutOrderDO.setOrganizationId(userPo.getOrganizationId()); stockOutOrderDO.setTopOrganizationId(userPo.getTopOrganizationId()); - stockOutOrderDO.setLtCheckStatus(3); + stockOutOrderDO.setGtCheckStatus(2); stockOutOrderDO.setDelFlag(1); AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid()); if (associationWarehouseCacheDO != null) {