feat(qc): add auto warehouse update logic for regraded coils
根据改判后的钢卷质量等级自动将C/D级钢卷移动到技术部逻辑库区
This commit is contained in:
@@ -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.<WmsMaterialCoil>lambdaUpdate()
|
||||
.eq(WmsMaterialCoil::getCoilId, coil.getCoilId())
|
||||
.set(WmsMaterialCoil::getWarehouseId, targetWarehouseId));
|
||||
}
|
||||
|
||||
// 3. 更新明细执行状态
|
||||
coilMapper.update(null, Wrappers.<QcQualityReviewCoil>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("产品名称不能为空");
|
||||
|
||||
Reference in New Issue
Block a user