feat(BaseMaterialInfoServiceImpl):(MeterSphere10018)【物料信息】物料名称,唯一,不允许重复

- 增加了对物料名称的重复性校验
- 如果存在相同名称的物料且 ID 不匹配,则抛出"名称已存在"的异常
master
zch 2 weeks ago
parent 28f384986e
commit 10113b4a47

@ -211,7 +211,20 @@ public class BaseMaterialInfoServiceImpl implements IBaseMaterialInfoService {
}
}
//名称校验
if (StringUtils.isNotBlank(entity.getMaterialName())) {
BaseMaterialInfoBo query = new BaseMaterialInfoBo();
query.setMaterialName(entity.getMaterialName());
MPJLambdaWrapper<BaseMaterialInfo> lqw = JoinWrappers.lambda(BaseMaterialInfo.class)
.selectAll(BaseMaterialInfo.class)
//buildQueryWrapper中getMaterialName是like相似搜索
.eq(StringUtils.isNotBlank(query.getMaterialName()), BaseMaterialInfo::getMaterialName, query.getMaterialName());
BaseMaterialInfo baseMaterialInfo = baseMapper.selectOne(lqw);
if ( !ObjectUtils.isEmpty(baseMaterialInfo)
&& !baseMaterialInfo.getMaterialId().equals(entity.getMaterialId())) {
throw new ServiceException("名称已存在");
}
}
}

Loading…
Cancel
Save