diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiDeliveryItemControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiDeliveryItemControllerService.java index a0d2838f..1d494358 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiDeliveryItemControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiDeliveryItemControllerService.java @@ -45,16 +45,21 @@ public class QmsPdiDeliveryItemControllerService { */ @Transactional public void add(QmsPdiDeliveryItemAddQO request) { - // 如果传入了sort,校验同一检测规则ID下sort是否已存在 - if (request.getSort() != null) { - long count = deliveryItemService.lambdaQuery() + // 查询同一检测规则ID下的最大sort值 + Integer maxSort = deliveryItemService.lambdaQuery() + .eq(QmsPdiDetectionRulesDeliveryItem::getDetectionRulesId, request.getDetectionRulesId()) + .orderByDesc(QmsPdiDetectionRulesDeliveryItem::getSort) + .last("LIMIT 1") + .oneOpt() + .map(QmsPdiDetectionRulesDeliveryItem::getSort) + .orElse(0); + + // 将已有数据的sort全部+1 + if (maxSort > 0) { + deliveryItemService.lambdaUpdate() .eq(QmsPdiDetectionRulesDeliveryItem::getDetectionRulesId, request.getDetectionRulesId()) - .eq(QmsPdiDetectionRulesDeliveryItem::getSort, request.getSort()) - .count(); - if (count > 0) { - throw new NflgException(STATE.BusinessError, - "该检测规则下排序值" + request.getSort() + "已存在,不允许新增"); - } + .setSql("sort = sort + 1") + .update(); } String operator = UserUtil.getUserName(); @@ -62,7 +67,7 @@ public class QmsPdiDeliveryItemControllerService { QmsPdiDetectionRulesDeliveryItem entity = new QmsPdiDetectionRulesDeliveryItem() .setDetectionRulesId(request.getDetectionRulesId()) .setChecklist(request.getChecklist()) - .setSort(request.getSort()) + .setSort(1) // 新数据sort=1 .setCreateBy(operator) .setCreateTime(now); deliveryItemService.save(entity); diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiStatusItemControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiStatusItemControllerService.java index 904a0989..32e7473b 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiStatusItemControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiStatusItemControllerService.java @@ -53,17 +53,23 @@ public class QmsPdiStatusItemControllerService { throw new NflgException(STATE.BusinessError, "静态/动态检测项的部件描述不能为空"); } - // 如果传入了sort,校验同一检测规则ID+同一状态下sort是否已存在 - if (request.getSort() != null) { - long count = statusItemService.lambdaQuery() + // 查询同一检测规则ID+同一状态下的最大sort值 + Integer maxSort = statusItemService.lambdaQuery() + .eq(QmsPdiDetectionRulesStatusItem::getDetectionRulesId, request.getDetectionRulesId()) + .eq(QmsPdiDetectionRulesStatusItem::getStatus, request.getStatus()) + .orderByDesc(QmsPdiDetectionRulesStatusItem::getSort) + .last("LIMIT 1") + .oneOpt() + .map(QmsPdiDetectionRulesStatusItem::getSort) + .orElse(0); + + // 将已有数据的sort全部+1 + if (maxSort > 0) { + statusItemService.lambdaUpdate() .eq(QmsPdiDetectionRulesStatusItem::getDetectionRulesId, request.getDetectionRulesId()) .eq(QmsPdiDetectionRulesStatusItem::getStatus, request.getStatus()) - .eq(QmsPdiDetectionRulesStatusItem::getSort, request.getSort()) - .count(); - if (count > 0) { - throw new NflgException(STATE.BusinessError, - "该检测规则下状态" + request.getStatus() + "的排序值" + request.getSort() + "已存在,不允许新增"); - } + .setSql("sort = sort + 1") + .update(); } String operator = UserUtil.getUserName(); @@ -74,7 +80,7 @@ public class QmsPdiStatusItemControllerService { .setInspectionContent(request.getInspectionContent()) .setInspectionImage(request.getInspectionImage()) .setStatus(request.getStatus()) - .setSort(request.getSort()) + .setSort(1) // 新数据sort=1 .setSetBy(operator) .setSetTime(now); statusItemService.save(entity); diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPdiDeliveryItemAddQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPdiDeliveryItemAddQO.java index 0373e402..a7541cc3 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPdiDeliveryItemAddQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPdiDeliveryItemAddQO.java @@ -21,9 +21,4 @@ public class QmsPdiDeliveryItemAddQO { */ @NotBlank(message = "检查项不能为空") private String checklist; - - /** - * 排序 - */ - private Integer sort; } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPdiStatusItemAddQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPdiStatusItemAddQO.java index afb1a222..0b92db33 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPdiStatusItemAddQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPdiStatusItemAddQO.java @@ -38,9 +38,4 @@ public class QmsPdiStatusItemAddQO { */ @NotNull(message = "状态不能为空") private Integer status; - - /** - * 排序 - */ - private Integer sort; }