fix(qms-sampling-plan): 添加方案名称唯一性校验及细化异常处理

- 在新增抽样方案时校验方案名称是否已存在,防止重复
- 在编辑抽样方案时校验名称唯一性,排除当前方案自身
- 补充编辑和删除操作中方案存在性及发布状态校验
- 优化多个查询接口的空行及格式,提升代码可读性
- 细化字码矩阵及方案检验相关异常抛出信息,增强错误提示准确性
- 删除操作增加关联子表数据的级联清理,防止数据残留
This commit is contained in:
曹鹏飞 2026-05-09 09:36:52 +08:00
parent c636e24ae3
commit a5d04d067d
1 changed files with 31 additions and 20 deletions

View File

@ -63,6 +63,11 @@ public class QmsSamplingPlanControllerService {
*/
@Transactional(rollbackFor = Exception.class)
public void add(@Valid QmsSamplingPlanAddQO request) {
VUtil.trueThrowBusinessError(samplingPlanService.lambdaQuery()
.eq(QmsSamplingPlan::getPlanName, request.getPlanName())
.exists()
).throwMessage("方案名称已存在");
String operator = UserUtil.getUserName();
Long operatorId = UserUtil.getUserId();
LocalDateTime now = LocalDateTime.now();
@ -188,6 +193,12 @@ public class QmsSamplingPlanControllerService {
public void edit(@Valid QmsSamplingPlanEditQO request) {
Long planId = request.getId();
VUtil.trueThrowBusinessError(samplingPlanService.lambdaQuery()
.eq(QmsSamplingPlan::getPlanName, request.getPlanName())
.ne(QmsSamplingPlan::getId, planId)
.exists()
).throwMessage("方案名称已存在");
// 0. 验证抽样方案是否存在
QmsSamplingPlan existPlan = samplingPlanService.getById(planId);
VUtil.trueThrowBusinessError(ObjectUtil.isNull(existPlan)).throwMessage("抽样方案不存在");