refactor(wms): 统一钢卷质量状态更新逻辑,集中管理改判记录
1. 新增统一的updateQualityStatus方法,封装钢卷质量状态更新和改判日志记录逻辑 2. 替换mes模块中直接更新钢卷状态和插入改判日志的代码,改用统一服务方法 3. 移除冗余的改判日志Mapper注入和手动插入代码
This commit is contained in:
@@ -1823,6 +1823,40 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
return qw;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateQualityStatus(Long coilId, String newQuality, String reason) {
|
||||
if (coilId == null || StringUtils.isBlank(newQuality)) {
|
||||
log.warn("updateQualityStatus 参数不足: coilId={}, newQuality={}", coilId, newQuality);
|
||||
return;
|
||||
}
|
||||
// 查询当前钢卷
|
||||
WmsMaterialCoil coil = baseMapper.selectById(coilId);
|
||||
if (coil == null) {
|
||||
throw new RuntimeException("钢卷不存在:" + coilId);
|
||||
}
|
||||
String oldQuality = coil.getQualityStatus();
|
||||
// 状态没变,不处理
|
||||
if (StringUtils.equals(oldQuality, newQuality)) {
|
||||
log.info("钢卷质量状态未变化,跳过: coilId={}, quality={}", coilId, oldQuality);
|
||||
return;
|
||||
}
|
||||
// 1. 更新钢卷质量状态
|
||||
baseMapper.update(null, Wrappers.<WmsMaterialCoil>lambdaUpdate()
|
||||
.eq(WmsMaterialCoil::getCoilId, coilId)
|
||||
.set(WmsMaterialCoil::getQualityStatus, newQuality));
|
||||
|
||||
// 2. 记录改判记录
|
||||
WmsCoilQualityRejudge rejudge = new WmsCoilQualityRejudge();
|
||||
rejudge.setCoilId(coilId);
|
||||
rejudge.setBeforeQuality(oldQuality);
|
||||
rejudge.setAfterQuality(newQuality);
|
||||
rejudge.setRejudgeReason(reason);
|
||||
wmsCoilQualityRejudgeMapper.insert(rejudge);
|
||||
|
||||
log.info("钢卷质量状态变更: coilId={}, {} -> {}, 原因: {}", coilId, oldQuality, newQuality, reason);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String queryQualityStatusByWarehouseIdAndCurrentCoilNo(Long warehouseId, String currentCoilNo) {
|
||||
if (warehouseId == null || StringUtils.isBlank(currentCoilNo)) {
|
||||
|
||||
Reference in New Issue
Block a user