feat(wms): 优化钢卷号重复检查逻辑
- 新增历史记录数据类型判断,避免对历史数据进行重复检查 - 修改操作时根据coilId查询数据类型,历史记录直接返回无重复 - 钢卷号重复检查增加数据类型过滤条件,仅对当前数据生效 - 完善方法注释说明历史记录处理逻辑
This commit is contained in:
@@ -2601,11 +2601,25 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
/**
|
||||
* 检查钢卷号是否重复
|
||||
* 根据入场钢卷号和当前钢卷号查询数据库,判断哪个钢卷号重复
|
||||
* 新增逻辑:修改历史记录时不检查重复
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> checkCoilNoDuplicate(Long coilId, String enterCoilNo, String currentCoilNo) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
|
||||
// 新增核心逻辑:先判断是否操作的是历史记录
|
||||
// 1. 如果coilId不为空(修改操作),先查询该钢卷的dataType
|
||||
if (coilId != null) {
|
||||
WmsMaterialCoil coil = baseMapper.selectById(coilId);
|
||||
// 2. 如果查询到钢卷且dataType!=1(说明是历史记录),直接返回无重复
|
||||
if (coil != null && coil.getDataType() != 1) {
|
||||
result.put("duplicateType", "none");
|
||||
result.put("enterCoilNoDuplicate", false);
|
||||
result.put("currentCoilNoDuplicate", false);
|
||||
return result; // 直接返回,不执行后续检查
|
||||
}
|
||||
}
|
||||
|
||||
boolean enterCoilNoDuplicate = false;
|
||||
boolean currentCoilNoDuplicate = false;
|
||||
|
||||
@@ -2614,7 +2628,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
LambdaQueryWrapper<WmsMaterialCoil> enterWrapper = Wrappers.lambdaQuery();
|
||||
enterWrapper.eq(WmsMaterialCoil::getEnterCoilNo, enterCoilNo)
|
||||
.eq(WmsMaterialCoil::getDelFlag, 0)
|
||||
.eq(WmsMaterialCoil::getDataType, 1);
|
||||
.eq(WmsMaterialCoil::getDataType, 1); // 过滤历史数据
|
||||
// 如果是修改操作,排除自身
|
||||
if (coilId != null) {
|
||||
enterWrapper.ne(WmsMaterialCoil::getCoilId, coilId);
|
||||
|
||||
Reference in New Issue
Block a user