From fdd069307248a61f29fcf06cda335bcce09de5c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Wed, 10 Jun 2026 17:49:58 +0800 Subject: [PATCH] =?UTF-8?q?W=E5=87=BA=E5=8F=A3=E4=BB=93=E5=8D=95=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E5=85=B3=E5=8A=A1=E5=BC=80=E5=8F=91;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PickingOrderApplicationService.java | 38 ++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java index 8020c2eb1..50fdce512 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java @@ -752,8 +752,9 @@ public class PickingOrderApplicationService { PickingMaterialDetailDO pickingMaterialDetailDO = new PickingMaterialDetailDO(); pickingMaterialDetailDO.setPickingOrderNumber(pickingOrder.getPickingOrderNumber()); List materialDetailList = pickingMaterialDetailService.queryList(pickingMaterialDetailDO); - - if (materialDetailList == null || materialDetailList.isEmpty()) { + List outMaterialDetailList = outMaterialDetailService.list(new QueryWrapper().lambda() + .eq(OutMaterialDetail::getOutOrderNumber, pickingOrder.getOrderNumber())); + if (outMaterialDetailList == null || outMaterialDetailList.isEmpty()) { failCount++; failMsg.append("id:").append(id).append("无物料明细;"); continue; @@ -804,7 +805,7 @@ public class PickingOrderApplicationService { // 3. 构建主单 Map order = new HashMap<>(); // etpsPreentNo: 入库单号 - 取拣货明细中的入库单号(第一个) - String inOrderNumber = materialDetailList.get(0).getInOrderNumber(); + String inOrderNumber = outMaterialDetailList.get(0).getInOrderNumber(); order.put("etpsPreentNo", inOrderNumber != null ? inOrderNumber : ""); order.put("inputTime", new Date()); order.put("mtpckEndprdTypecd", "E"); // 成品(出口) @@ -812,10 +813,20 @@ public class PickingOrderApplicationService { // 4. 构建明细列表 List> qnBillList = new ArrayList<>(); int gNo = 1; - for (PickingMaterialDetailPO detail : materialDetailList) { + for (OutMaterialDetail detail : outMaterialDetailList) { Map item = new HashMap<>(); - item.put("etpsPreentNo", detail.getInOrderNumber() != null ? detail.getInOrderNumber() : ""); - item.put("gNo", gNo++); + item.put("etpsPreentNo", detail.getOutOrderNumber() != null ? detail.getOutOrderNumber() : ""); + String lotNo = detail.getLotNo(); + if (lotNo != null) { + String[] split = lotNo.split("-"); + if (split.length == 2) { + item.put("gNo", split[1]); + } else { + item.put("gNo", ""); // 出仓订单行号 + } + } else { + item.put("gNo", ""); // 出仓订单行号 + } item.put("gdsMtno", detail.getMaterialCode() != null ? detail.getMaterialCode() : ""); // 获取物料详情获取单价和币制 @@ -827,7 +838,7 @@ public class PickingOrderApplicationService { // 计算申报总价 BigDecimal unitPrice = materialInfo.getUnitPrice(); - BigDecimal pickingQty = detail.getPickingQuantity() != null ? detail.getPickingQuantity() : detail.getQuantity(); + BigDecimal pickingQty = detail.getCheckQuantity() != null ? detail.getCheckQuantity() : detail.getQuantity(); if (unitPrice != null && pickingQty != null && unitPrice.compareTo(BigDecimal.ZERO) != 0) { BigDecimal totalAmt = unitPrice.multiply(pickingQty).setScale(2, BigDecimal.ROUND_HALF_UP); item.put("dclTotalAmt", totalAmt); @@ -835,9 +846,18 @@ public class PickingOrderApplicationService { } } - item.put("dclQty", detail.getPickingQuantity() != null ? detail.getPickingQuantity() : detail.getQuantity()); // 申报数量 + item.put("dclQty", detail.getCheckQuantity() != null ? detail.getCheckQuantity() : detail.getQuantity()); // 申报数量 item.put("orderNo", pickingOrder.getPickingOrderNumber()); // 出仓订单号 - item.put("orderRow", gNo - 1); // 出仓订单行号 + if (lotNo != null) { + String[] split = lotNo.split("-"); + if (split.length == 2) { + item.put("orderRow", split[1]);// 出仓订单行号 + } else { + item.put("orderRow", ""); // 出仓订单行号 + } + } else { + item.put("orderRow", ""); // 出仓订单行号 + } item.put("bondInvtNo", bondInvtNo); // 原进口核注清单号 item.put("invtRow", invtRow); // 原进口核注清单行号 item.put("whNo", detail.getWarehouseCode() != null ? detail.getWarehouseCode() : ""); // 仓库