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("产品名称不能为空");