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 f229ab2a6..75db99551 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 @@ -52,6 +52,7 @@ import org.springframework.stereotype.Service; import com.mhd.common.core.utils.StringUtils; import org.springframework.util.CollectionUtils; +import javax.annotation.Resource; import java.lang.reflect.Field; import java.math.BigDecimal; import java.math.RoundingMode; @@ -90,12 +91,12 @@ public class StockReceiptOrderApplicationService { private IMaterialBarCodeService materialBarCodeService; @Autowired private IMaterialGoodsRuleService materialGoodsRuleService; - @Autowired + @Resource private SystemServiceFeign systemServiceFeign; @Autowired private MaterialMoreDetailDomainService materialMoreDetailDomainService; - @Autowired + @Resource private UserServiceFeign userServiceFeign; @Autowired private IdGenerator idGenerator; @@ -300,8 +301,9 @@ public class StockReceiptOrderApplicationService { stockReceiptOrderPO.setTotalVolume(totalVolume); stockReceiptOrderPO.setTotalArea(totalArea); // 扁平化明细:将子项收货数据合并到主项(按汇总已收推导状态,见方法内注释) - flattenMaterialDetailList(receiptMaterialDetailPOList, - stockReceiptOrderPO.getStatus() != null && stockReceiptOrderPO.getStatus() == 3); +// flattenMaterialDetailList(receiptMaterialDetailPOList, +// stockReceiptOrderPO.getStatus() != null && stockReceiptOrderPO.getStatus() == 3); + flattenMaterialDetailList(receiptMaterialDetailPOList); // PC 端子项计划数量不展示:递归清空所有子项的 quantity clearChildQuantityRecursively(receiptMaterialDetailPOList); // 计算待收货数量 = 计划数量 - 已收货数量 @@ -1241,6 +1243,7 @@ public class StockReceiptOrderApplicationService { * PDA:点击卡片后查询当前计划行下全部分批收货子行(level=2,库表真实数据,不含 getInfoByApp 的 parent_copy)。 */ public List listLevel2ChildrenByParentForApp(Long receiptOrderId, Long parentMaterialDetailId) { + List receiptMaterialDetailPOS = stockReceiptOrderDomainService.listLevel2ChildrenByParentForApp(receiptOrderId, parentMaterialDetailId); return stockReceiptOrderDomainService.listLevel2ChildrenByParentForApp(receiptOrderId, parentMaterialDetailId); } @@ -1276,9 +1279,9 @@ public class StockReceiptOrderApplicationService { /** * PDA:指定计划行(卡片)下分批收货子行列表(level=2),域服务已挂序列号。 */ - public List listLevel2ChildrenByParentForApp(Long receiptOrderId, Long parentMaterialDetailId) { - return stockReceiptOrderDomainService.listLevel2ChildrenByParentForApp(receiptOrderId, parentMaterialDetailId); - } +// public List listLevel2ChildrenByParentForApp(Long receiptOrderId, Long parentMaterialDetailId) { +// return stockReceiptOrderDomainService.listLevel2ChildrenByParentForApp(receiptOrderId, parentMaterialDetailId); +// } /** * PDA 详情:将 total* 覆盖为待收(与 pending* 同值),便于前端仍绑 total* 时展示「计划 − 主项+子项全部已收」。 @@ -1494,9 +1497,9 @@ public class StockReceiptOrderApplicationService { stockReceiptOrderDO.setPdaSkipInjectBatchChildLine(skipInjectAfterAssign); stockReceiptOrderDO.setFromPda(true); // assign 后若仍有真实子行,不再 inject(避免与已有子项结构冲突) - boolean skipInjectAfterAssign = firstItemHadChildrenBefore - && !CollectionUtils.isEmpty(stockReceiptOrderDO.getMaterialDetailList()) - && !CollectionUtils.isEmpty(stockReceiptOrderDO.getMaterialDetailList().get(0).getChildren()); +// boolean skipInjectAfterAssign = firstItemHadChildrenBefore +// && !CollectionUtils.isEmpty(stockReceiptOrderDO.getMaterialDetailList()) +// && !CollectionUtils.isEmpty(stockReceiptOrderDO.getMaterialDetailList().get(0).getChildren()); Map dbByIdForInject = dbListAll.stream() .filter(x -> x.getMaterialDetailId() != null) .collect(Collectors.toMap(ReceiptMaterialDetailPO::getMaterialDetailId, Function.identity(), (a, b) -> a)); @@ -1585,27 +1588,27 @@ public class StockReceiptOrderApplicationService { } /** 分批收货:计划数量在 level=1 父行;子行 parent_unique_id 指向父 receipt.unique_id 或 in_unique_id */ - private static ReceiptMaterialDetailPO resolveReceiptPlanParentRow(ReceiptMaterialDetailPO db, - List dbList) { - if (db == null || CollectionUtils.isEmpty(dbList)) { - return db; - } - if (db.getLevel() == null || db.getLevel() == 1) { - return db; - } - if (db.getLevel() == 2 && db.getParentUniqueId() != null) { - Long puid = db.getParentUniqueId(); - for (ReceiptMaterialDetailPO x : dbList) { - if (x == null) { - continue; - } - if (puid.equals(x.getUniqueId()) || puid.equals(x.getInUniqueId())) { - return x; - } - } - } - return db; - } +// private static ReceiptMaterialDetailPO resolveReceiptPlanParentRow(ReceiptMaterialDetailPO db, +// List dbList) { +// if (db == null || CollectionUtils.isEmpty(dbList)) { +// return db; +// } +// if (db.getLevel() == null || db.getLevel() == 1) { +// return db; +// } +// if (db.getLevel() == 2 && db.getParentUniqueId() != null) { +// Long puid = db.getParentUniqueId(); +// for (ReceiptMaterialDetailPO x : dbList) { +// if (x == null) { +// continue; +// } +// if (puid.equals(x.getUniqueId()) || puid.equals(x.getInUniqueId())) { +// return x; +// } +// } +// } +// return db; +// } /** 父行自身 + 其下 level=2 子行(parent_unique_id 指向父)的已收数量之和 */ private static BigDecimal sumAlreadyReceiptUnderPlanParent(ReceiptMaterialDetailPO planParent, @@ -1635,27 +1638,27 @@ public class StockReceiptOrderApplicationService { /** * 首笔收货(计划父行及子行累计已收为 0、且尚无 level=2 子行)不拆批;第二笔起再 INSERT 子行。 */ - private static boolean shouldPdaSplitIntoChildRow(ReceiptMaterialDetailPO dbLine, - List allDbLines) { - if (dbLine == null || CollectionUtils.isEmpty(allDbLines)) { - return true; - } - ReceiptMaterialDetailPO plan = resolveReceiptPlanParentRow(dbLine, allDbLines); - if (plan == null) { - return true; - } - Long uid = plan.getUniqueId(); - Long inUid = plan.getInUniqueId(); - boolean hasL2 = allDbLines.stream().anyMatch(x -> x != null && x.getLevel() != null && x.getLevel() == 2 - && x.getParentUniqueId() != null - && ((uid != null && uid.equals(x.getParentUniqueId())) - || (inUid != null && inUid.equals(x.getParentUniqueId())))); - if (hasL2) { - return true; - } - BigDecimal sum = sumAlreadyReceiptUnderPlanParent(plan, allDbLines); - return sum.compareTo(BigDecimal.ZERO) > 0; - } +// private static boolean shouldPdaSplitIntoChildRow(ReceiptMaterialDetailPO dbLine, +// List allDbLines) { +// if (dbLine == null || CollectionUtils.isEmpty(allDbLines)) { +// return true; +// } +// ReceiptMaterialDetailPO plan = resolveReceiptPlanParentRow(dbLine, allDbLines); +// if (plan == null) { +// return true; +// } +// Long uid = plan.getUniqueId(); +// Long inUid = plan.getInUniqueId(); +// boolean hasL2 = allDbLines.stream().anyMatch(x -> x != null && x.getLevel() != null && x.getLevel() == 2 +// && x.getParentUniqueId() != null +// && ((uid != null && uid.equals(x.getParentUniqueId())) +// || (inUid != null && inUid.equals(x.getParentUniqueId())))); +// if (hasL2) { +// return true; +// } +// BigDecimal sum = sumAlreadyReceiptUnderPlanParent(plan, allDbLines); +// return sum.compareTo(BigDecimal.ZERO) > 0; +// } /** 雪花/长整型 id 相较,避免部分环境下引用类型不一致 */ private static boolean sameLongId(Long a, Long b) { @@ -1720,22 +1723,22 @@ public class StockReceiptOrderApplicationService { *

主行本行必须取传入的 {@code planParent} 上的累计字段,再在列表中只加子行;勿依赖在 {@code dbList} 中再次按 material_detail_id * 匹配主行,否则 JDBC 类型/映射不一致时会出现「只加子行、主行 100 丢失」。

*/ - private static BigDecimal sumAlreadyReceiptUnderPlanParent(ReceiptMaterialDetailPO planParent, - List dbList) { - if (planParent == null || CollectionUtils.isEmpty(dbList)) { - return BigDecimal.ZERO; - } - BigDecimal sum = planParent.getAlreadyReceiptQuantity() != null - ? planParent.getAlreadyReceiptQuantity() : BigDecimal.ZERO; - for (ReceiptMaterialDetailPO x : dbList) { - if (x == null || !isLevel2ChildRowUnderPlanParent(planParent, x)) { - continue; - } - BigDecimal ar = x.getAlreadyReceiptQuantity() != null ? x.getAlreadyReceiptQuantity() : BigDecimal.ZERO; - sum = sum.add(ar); - } - return sum; - } +// private static BigDecimal sumAlreadyReceiptUnderPlanParent(ReceiptMaterialDetailPO planParent, +// List dbList) { +// if (planParent == null || CollectionUtils.isEmpty(dbList)) { +// return BigDecimal.ZERO; +// } +// BigDecimal sum = planParent.getAlreadyReceiptQuantity() != null +// ? planParent.getAlreadyReceiptQuantity() : BigDecimal.ZERO; +// for (ReceiptMaterialDetailPO x : dbList) { +// if (x == null || !isLevel2ChildRowUnderPlanParent(planParent, x)) { +// continue; +// } +// BigDecimal ar = x.getAlreadyReceiptQuantity() != null ? x.getAlreadyReceiptQuantity() : BigDecimal.ZERO; +// sum = sum.add(ar); +// } +// return sum; +// } /** 与 {@link #sumAlreadyReceiptUnderPlanParent} 同范围,汇总任意「已收」指标(毛/净重、体积、面积等) */ private static BigDecimal sumAlreadyMetricUnderPlanParent(ReceiptMaterialDetailPO planParent, @@ -1779,12 +1782,12 @@ public class StockReceiptOrderApplicationService { return sum.compareTo(BigDecimal.ZERO) > 0; } - private static boolean isCorruptedStandaloneLineAsLevel2(ReceiptMaterialDetailPO dbLine) { - if (dbLine == null || dbLine.getLevel() == null || dbLine.getLevel() != 2) { - return false; - } - return dbLine.getParentUniqueId() == null || Objects.equals(dbLine.getParentUniqueId(), 0L); - } +// private static boolean isCorruptedStandaloneLineAsLevel2(ReceiptMaterialDetailPO dbLine) { +// if (dbLine == null || dbLine.getLevel() == null || dbLine.getLevel() != 2) { +// return false; +// } +// return dbLine.getParentUniqueId() == null || Objects.equals(dbLine.getParentUniqueId(), 0L); +// } /** 合成子行挂在计划父行的 uniqueId;误标为 level=2 且无父时,按同物料 level=1 行定位 */ private static Long resolveParentUniqueIdForPdaInjectChild(ReceiptMaterialDetailPO dbLine, @@ -1832,140 +1835,140 @@ public class StockReceiptOrderApplicationService { } } - private static void stripPdaUiParentCopyChildren(ReceiptMaterialDetailDO line, ReceiptMaterialDetailPO dbLine) { - if (line == null || CollectionUtils.isEmpty(line.getChildren())) { - return; - } - Long parentUid = line.getUniqueId() != null ? line.getUniqueId() : (dbLine != null ? dbLine.getUniqueId() : null); - List realOnly = new ArrayList<>(); - for (ReceiptMaterialDetailDO c : line.getChildren()) { - if (c == null) { - continue; - } - if (parentUid != null && parentUid.equals(c.getUniqueId())) { - continue; - } - realOnly.add(c); - } - line.setChildren(realOnly); - } +// private static void stripPdaUiParentCopyChildren(ReceiptMaterialDetailDO line, ReceiptMaterialDetailPO dbLine) { +// if (line == null || CollectionUtils.isEmpty(line.getChildren())) { +// return; +// } +// Long parentUid = line.getUniqueId() != null ? line.getUniqueId() : (dbLine != null ? dbLine.getUniqueId() : null); +// List realOnly = new ArrayList<>(); +// for (ReceiptMaterialDetailDO c : line.getChildren()) { +// if (c == null) { +// continue; +// } +// if (parentUid != null && parentUid.equals(c.getUniqueId())) { +// continue; +// } +// realOnly.add(c); +// } +// line.setChildren(realOnly); +// } /** getInfoByApp 挂在 children 里的已落库子行,再次收货时需去掉,否则 inject 误判已有子项 */ - private static void stripPdaExistingDisplayedChildrenForResplit(ReceiptMaterialDetailDO line, ReceiptMaterialDetailPO dbLine, - List allDbLines) { - if (line == null || CollectionUtils.isEmpty(line.getChildren()) || dbLine == null || CollectionUtils.isEmpty(allDbLines)) { - return; - } - Long puid = dbLine.getUniqueId(); - Long pInUid = dbLine.getInUniqueId(); - List keep = new ArrayList<>(); - for (ReceiptMaterialDetailDO c : line.getChildren()) { - if (c == null) { - continue; - } - Long mid = c.getMaterialDetailId(); - Long cuid = c.getUniqueId(); - boolean isExistingDbChild = false; - for (ReceiptMaterialDetailPO x : allDbLines) { - if (x == null || x.getLevel() == null || x.getLevel() != 2 || x.getParentUniqueId() == null) { - continue; - } - boolean parentOk = (puid != null && puid.equals(x.getParentUniqueId())) - || (pInUid != null && pInUid.equals(x.getParentUniqueId())); - if (!parentOk) { - continue; - } - if (mid != null && mid.equals(x.getMaterialDetailId())) { - isExistingDbChild = true; - break; - } - if (cuid != null && cuid.equals(x.getUniqueId())) { - isExistingDbChild = true; - break; - } - } - if (!isExistingDbChild) { - keep.add(c); - } - } - line.setChildren(keep); - } +// private static void stripPdaExistingDisplayedChildrenForResplit(ReceiptMaterialDetailDO line, ReceiptMaterialDetailPO dbLine, +// List allDbLines) { +// if (line == null || CollectionUtils.isEmpty(line.getChildren()) || dbLine == null || CollectionUtils.isEmpty(allDbLines)) { +// return; +// } +// Long puid = dbLine.getUniqueId(); +// Long pInUid = dbLine.getInUniqueId(); +// List keep = new ArrayList<>(); +// for (ReceiptMaterialDetailDO c : line.getChildren()) { +// if (c == null) { +// continue; +// } +// Long mid = c.getMaterialDetailId(); +// Long cuid = c.getUniqueId(); +// boolean isExistingDbChild = false; +// for (ReceiptMaterialDetailPO x : allDbLines) { +// if (x == null || x.getLevel() == null || x.getLevel() != 2 || x.getParentUniqueId() == null) { +// continue; +// } +// boolean parentOk = (puid != null && puid.equals(x.getParentUniqueId())) +// || (pInUid != null && pInUid.equals(x.getParentUniqueId())); +// if (!parentOk) { +// continue; +// } +// if (mid != null && mid.equals(x.getMaterialDetailId())) { +// isExistingDbChild = true; +// break; +// } +// if (cuid != null && cuid.equals(x.getUniqueId())) { +// isExistingDbChild = true; +// break; +// } +// } +// if (!isExistingDbChild) { +// keep.add(c); +// } +// } +// line.setChildren(keep); +// } - private static boolean hasPdaInjectMetricIncrement(ReceiptMaterialDetailDO line, ReceiptMaterialDetailPO dbLine) { - if (line == null || dbLine == null) { - return false; - } - BigDecimal dbNet = dbLine.getAlreadyReceiptNetWeight() != null ? dbLine.getAlreadyReceiptNetWeight() : BigDecimal.ZERO; - BigDecimal dbGross = dbLine.getAlreadyReceiptGrossWeight() != null ? dbLine.getAlreadyReceiptGrossWeight() : BigDecimal.ZERO; - BigDecimal dbVol = dbLine.getAlreadyReceiptVolume() != null ? dbLine.getAlreadyReceiptVolume() : BigDecimal.ZERO; - BigDecimal dbArea = dbLine.getAlreadyReceiptArea() != null ? dbLine.getAlreadyReceiptArea() : BigDecimal.ZERO; - return pickThisReceiptMetricIncrement(line.getReceiptNetWeight(), line.getTotalNetWeight(), dbNet).compareTo(BigDecimal.ZERO) > 0 - || pickThisReceiptMetricIncrement(line.getReceiptGrossWeight(), line.getTotalGrossWeight(), dbGross).compareTo(BigDecimal.ZERO) > 0 - || pickThisReceiptMetricIncrement(line.getReceiptVolume(), line.getTotalVolume(), dbVol).compareTo(BigDecimal.ZERO) > 0 - || pickThisReceiptMetricIncrement(line.getReceiptArea(), line.getTotalArea(), dbArea).compareTo(BigDecimal.ZERO) > 0; - } +// private static boolean hasPdaInjectMetricIncrement(ReceiptMaterialDetailDO line, ReceiptMaterialDetailPO dbLine) { +// if (line == null || dbLine == null) { +// return false; +// } +// BigDecimal dbNet = dbLine.getAlreadyReceiptNetWeight() != null ? dbLine.getAlreadyReceiptNetWeight() : BigDecimal.ZERO; +// BigDecimal dbGross = dbLine.getAlreadyReceiptGrossWeight() != null ? dbLine.getAlreadyReceiptGrossWeight() : BigDecimal.ZERO; +// BigDecimal dbVol = dbLine.getAlreadyReceiptVolume() != null ? dbLine.getAlreadyReceiptVolume() : BigDecimal.ZERO; +// BigDecimal dbArea = dbLine.getAlreadyReceiptArea() != null ? dbLine.getAlreadyReceiptArea() : BigDecimal.ZERO; +// return pickThisReceiptMetricIncrement(line.getReceiptNetWeight(), line.getTotalNetWeight(), dbNet).compareTo(BigDecimal.ZERO) > 0 +// || pickThisReceiptMetricIncrement(line.getReceiptGrossWeight(), line.getTotalGrossWeight(), dbGross).compareTo(BigDecimal.ZERO) > 0 +// || pickThisReceiptMetricIncrement(line.getReceiptVolume(), line.getTotalVolume(), dbVol).compareTo(BigDecimal.ZERO) > 0 +// || pickThisReceiptMetricIncrement(line.getReceiptArea(), line.getTotalArea(), dbArea).compareTo(BigDecimal.ZERO) > 0; +// } /** * PDA 单次仅传主行(无真实子结构需拆时):按业务可拆成一条 level=2 子行。 * 首笔仅落主行不拆;第二笔起或已有子行再拆。脏主行(误标 level=2)纠正不受「首笔不拆」限制。 */ - private void injectPdaFlatReceiptAsSyntheticChild(ReceiptMaterialDetailDO line, ReceiptMaterialDetailPO dbLine, - List allDbLines) { - if (line == null || dbLine == null) { - return; - } - stripPdaUiParentCopyChildren(line, dbLine); - stripPdaExistingDisplayedChildrenForResplit(line, dbLine, allDbLines); - if (dbLine.getLevel() != null && dbLine.getLevel() == 2 && !isCorruptedStandaloneLineAsLevel2(dbLine)) { - return; - } - if (!CollectionUtils.isEmpty(line.getChildren())) { - return; - } - if (!shouldPdaSplitIntoChildRow(dbLine, allDbLines) && !isCorruptedStandaloneLineAsLevel2(dbLine)) { - return; - } - BigDecimal rq = line.getReceiptQuantity(); - boolean hasQty = rq != null && rq.compareTo(BigDecimal.ZERO) > 0; - boolean hasMetricBatch = hasPdaInjectMetricIncrement(line, dbLine); - if (!hasQty && !hasMetricBatch) { - return; - } - ReceiptMaterialDetailDO child = new ReceiptMaterialDetailDO(); - BeanUtils.copyProperties(line, child, "children", "materialDetailId", "uniqueId", "level", "parentUniqueId"); - child.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId)); - child.setChildren(null); - child.setLevel(2); - child.setParentUniqueId(resolveParentUniqueIdForPdaInjectChild(dbLine, allDbLines)); - if (hasQty) { - child.setReceiptQuantity(rq); - } - child.setReceiptGrossWeight(line.getReceiptGrossWeight()); - child.setReceiptNetWeight(line.getReceiptNetWeight()); - child.setReceiptVolume(line.getReceiptVolume()); - child.setReceiptArea(line.getReceiptArea()); - child.setTotalGrossWeight(line.getTotalGrossWeight()); - child.setTotalNetWeight(line.getTotalNetWeight()); - child.setTotalVolume(line.getTotalVolume()); - child.setTotalArea(line.getTotalArea()); - child.setAlreadyReceiptQuantity(null); - child.setAlreadyReceiptGrossWeight(null); - child.setAlreadyReceiptNetWeight(null); - child.setAlreadyReceiptVolume(null); - child.setAlreadyReceiptArea(null); - line.setChildren(Collections.singletonList(child)); - line.setReceiptQuantity(BigDecimal.ZERO); - line.setReceiptGrossWeight(null); - line.setReceiptNetWeight(null); - line.setReceiptVolume(null); - line.setReceiptArea(null); - line.setTotalGrossWeight(null); - line.setTotalNetWeight(null); - line.setTotalVolume(null); - line.setTotalArea(null); - line.setLevel(1); - line.setParentUniqueId(null); - } +// private void injectPdaFlatReceiptAsSyntheticChild(ReceiptMaterialDetailDO line, ReceiptMaterialDetailPO dbLine, +// List allDbLines) { +// if (line == null || dbLine == null) { +// return; +// } +// stripPdaUiParentCopyChildren(line, dbLine); +// stripPdaExistingDisplayedChildrenForResplit(line, dbLine, allDbLines); +// if (dbLine.getLevel() != null && dbLine.getLevel() == 2 && !isCorruptedStandaloneLineAsLevel2(dbLine)) { +// return; +// } +// if (!CollectionUtils.isEmpty(line.getChildren())) { +// return; +// } +// if (!shouldPdaSplitIntoChildRow(dbLine, allDbLines) && !isCorruptedStandaloneLineAsLevel2(dbLine)) { +// return; +// } +// BigDecimal rq = line.getReceiptQuantity(); +// boolean hasQty = rq != null && rq.compareTo(BigDecimal.ZERO) > 0; +// boolean hasMetricBatch = hasPdaInjectMetricIncrement(line, dbLine); +// if (!hasQty && !hasMetricBatch) { +// return; +// } +// ReceiptMaterialDetailDO child = new ReceiptMaterialDetailDO(); +// BeanUtils.copyProperties(line, child, "children", "materialDetailId", "uniqueId", "level", "parentUniqueId"); +// child.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId)); +// child.setChildren(null); +// child.setLevel(2); +// child.setParentUniqueId(resolveParentUniqueIdForPdaInjectChild(dbLine, allDbLines)); +// if (hasQty) { +// child.setReceiptQuantity(rq); +// } +// child.setReceiptGrossWeight(line.getReceiptGrossWeight()); +// child.setReceiptNetWeight(line.getReceiptNetWeight()); +// child.setReceiptVolume(line.getReceiptVolume()); +// child.setReceiptArea(line.getReceiptArea()); +// child.setTotalGrossWeight(line.getTotalGrossWeight()); +// child.setTotalNetWeight(line.getTotalNetWeight()); +// child.setTotalVolume(line.getTotalVolume()); +// child.setTotalArea(line.getTotalArea()); +// child.setAlreadyReceiptQuantity(null); +// child.setAlreadyReceiptGrossWeight(null); +// child.setAlreadyReceiptNetWeight(null); +// child.setAlreadyReceiptVolume(null); +// child.setAlreadyReceiptArea(null); +// line.setChildren(Collections.singletonList(child)); +// line.setReceiptQuantity(BigDecimal.ZERO); +// line.setReceiptGrossWeight(null); +// line.setReceiptNetWeight(null); +// line.setReceiptVolume(null); +// line.setReceiptArea(null); +// line.setTotalGrossWeight(null); +// line.setTotalNetWeight(null); +// line.setTotalVolume(null); +// line.setTotalArea(null); +// line.setLevel(1); +// line.setParentUniqueId(null); +// } /** * 收货时:将 children 中第一条的值赋给主项,并删除第一条。 diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/receiptMaterialDetail/repository/persistence/ReceiptMaterialDetailImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/receiptMaterialDetail/repository/persistence/ReceiptMaterialDetailImpl.java index 223608252..523faa16b 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/receiptMaterialDetail/repository/persistence/ReceiptMaterialDetailImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/receiptMaterialDetail/repository/persistence/ReceiptMaterialDetailImpl.java @@ -424,7 +424,7 @@ public class ReceiptMaterialDetailImpl extends ServiceImpl - - a.in_order_id, a.organization_id, a.organization_name, a.top_organization_id, a.notice_number, a.in_order_number, a.status, - a.audit_status, a.audit_remark, a.audit_by, a.audit_by_name, a.audit_time, a.warehouse_id, a.warehouse_code, a.warehouse_name, a.shipper_id, a.shipper_code, - a.shipper_name, a.order_type_code, a.order_type_name, a.supplier_id, a.supplier_code, a.supplier_name, a.expect_time, a.supply_chain_number, - a.priority_level_code, a.priority_level_name, a.direct_warehouse, a.annex_url, a.material_quantity, a.quantity,a.billing_json,a.SETTLEMENT_CURRENCY, - a.SALESMAN_ID,a.SALESMAN_NAME, - -- 计划入库数量:入库明细表 in_material_detail 的 quantity 汇总 - - - (select ifnull(sum(imd.quantity), 0) - from in_material_detail imd - where imd.in_order_number = a.in_order_number - and imd.del_flag = 1 - and (imd.level is null or imd.level = 1)) - + + + + + + + + + + + + + + + a.in_order_id, a.organization_id, a.organization_name, a.top_organization_id, a.notice_number, a.in_order_number, a.status, a.audit_status, a.audit_remark, a.audit_by, a.audit_by_name, a.audit_time, a.warehouse_id, a.warehouse_code, a.warehouse_name, a.shipper_id, a.shipper_code, a.shipper_name, a.order_type_code, a.order_type_name, a.supplier_id, a.supplier_code, a.supplier_name, a.expect_time, a.supply_chain_number, a.priority_level_code, a.priority_level_name, a.direct_warehouse, a.annex_url, a.material_quantity, - as quantity, - as plan_in_quantity, + (select ifnull(sum(imd.quantity), 0) + from in_material_detail imd + where imd.in_order_number = a.in_order_number + and imd.del_flag = 1 + and (imd.level is null or imd.level = 1)) as quantity, + -- 收货数量:收货单表 stock_receipt_order 的 receipt_quantity 汇总 (select ifnull(sum(sro.receipt_quantity), 0) from stock_receipt_order sro