From c922856a0814917b8e429d4f0ab461620ee54287 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=96=87=E6=98=8A?= <15984991+wwh2328692301@user.noreply.gitee.com> Date: Sat, 4 Jul 2026 11:49:04 +0800 Subject: [PATCH] feat(qc): add auto warehouse update logic for regraded coils MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根据改判后的钢卷质量等级自动将C/D级钢卷移动到技术部逻辑库区 --- .../impl/QcQualityReviewServiceImpl.java | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcQualityReviewServiceImpl.java b/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcQualityReviewServiceImpl.java index bdb9fa99e..1325fc981 100644 --- a/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcQualityReviewServiceImpl.java +++ b/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcQualityReviewServiceImpl.java @@ -45,6 +45,9 @@ import java.util.stream.Collectors; @Service public class QcQualityReviewServiceImpl implements IQcQualityReviewService { + /** 技术部逻辑库ID(C/D级改判后移入此库区) */ + private static final Long TECH_WAREHOUSE_ID = 2019583656787259393L; + private final QcQualityReviewMapper baseMapper; private final QcQualityReviewCoilMapper coilMapper; private final QcQualityReviewLogMapper logMapper; @@ -319,7 +322,15 @@ public class QcQualityReviewServiceImpl implements IQcQualityReviewService { coil.getCoilId(), coil.getRegradeQuality(), reason); } - // 2. 更新明细执行状态 + // 2. 根据改判后质量等级自动更新钢卷所在逻辑库区 + Long targetWarehouseId = determineTargetWarehouse(coil.getRegradeQuality()); + if (targetWarehouseId != null && coil.getCoilId() != null) { + wmsMaterialCoilMapper.update(null, Wrappers.lambdaUpdate() + .eq(WmsMaterialCoil::getCoilId, coil.getCoilId()) + .set(WmsMaterialCoil::getWarehouseId, targetWarehouseId)); + } + + // 3. 更新明细执行状态 coilMapper.update(null, Wrappers.lambdaUpdate() .eq(QcQualityReviewCoil::getDetailId, coil.getDetailId()) .set(QcQualityReviewCoil::getExecuteStatus, 1L) @@ -400,6 +411,23 @@ public class QcQualityReviewServiceImpl implements IQcQualityReviewService { return "QR-" + dateStr + "-" + String.format("%04d", count + 1); } + /** + * 根据改判后质量等级确定目标逻辑库区 + * O/A/B → 不移动,C+/C/C- → 技术部逻辑库,D+/D/D- → 技术部逻辑库 + */ + private Long determineTargetWarehouse(String regradeQuality) { + if (regradeQuality == null) return null; + // O/A/B 级不移动 + if ("O".equals(regradeQuality) || "A".equals(regradeQuality) || "B".equals(regradeQuality)) { + return null; + } + // C/D 级 → 技术部逻辑库 + if (regradeQuality.startsWith("C") || regradeQuality.startsWith("D")) { + return TECH_WAREHOUSE_ID; + } + return null; + } + private void validEntityBeforeSave(QcQualityReview entity) { if (StringUtils.isBlank(entity.getProductName())) { throw new RuntimeException("产品名称不能为空");