From b2f2b3c00b5e9728247ab60f4be6465c24d0d269 Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Thu, 29 Oct 2026 16:00:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A3=80=E9=AA=8C=E5=90=88=E6=A0=BC=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E7=89=A9=E6=96=99=E4=B8=8D=E5=8C=B9=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/QualifiedStorageServiceImpl.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/com/gaotao/modules/inspection/service/impl/QualifiedStorageServiceImpl.java b/src/main/java/com/gaotao/modules/inspection/service/impl/QualifiedStorageServiceImpl.java index 78fa8f66..39247878 100644 --- a/src/main/java/com/gaotao/modules/inspection/service/impl/QualifiedStorageServiceImpl.java +++ b/src/main/java/com/gaotao/modules/inspection/service/impl/QualifiedStorageServiceImpl.java @@ -265,6 +265,21 @@ public class QualifiedStorageServiceImpl implements QualifiedStorageService { return R.error("部分HandlingUnit不存在或站点不匹配"); } + // 扫描时已按接收行物料拦过一次,但已扫列表可能残留上一行的 HU。 + // 确认入库会把全部数量记到当前接收行物料并调用 IFS,提交前必须再逐个核对,不匹配则整单拒绝。 + if (StringUtils.isBlank(partNo)) { + return R.error("接收记录物料编码不能为空"); + } + List mismatchedHuList = handlingUnits.stream() + .filter(hu -> !partNo.equals(hu.getPartNo())) + .map(hu -> hu.getUnitId() + "(" + hu.getPartNo() + ")") + .collect(Collectors.toList()); + if (!mismatchedHuList.isEmpty()) { + log.warn("检验合格入库物料不匹配,site={},receiptSequence={},期望物料={},不匹配HU={}", + site, receiptSequence, partNo, mismatchedHuList); + return R.error("HandlingUnit物料编码不匹配,期望: " + partNo + ",不匹配: " + String.join(",", mismatchedHuList)); + } + // 计算HandlingUnit总数量 BigDecimal totalScannedQty = handlingUnits.stream() .map(hu -> hu.getQty() != null ? hu.getQty() : BigDecimal.ZERO)