diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsCoaReviewController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsCoaReviewController.java index 80e5ca46..084ed6d3 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsCoaReviewController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsCoaReviewController.java @@ -40,14 +40,14 @@ public class QmsCoaReviewController extends BaseController { } /** - * 删除COA审核记录(逻辑删除,仅状态为0时可删) + * 删除COA审核记录(批量逻辑删除,仅状态为0时可删) * - * @param id 记录ID + * @param ids 记录ID列表 */ @Transactional @PostMapping("delete") - public ApiResult delete(@NotNull(message = "ID不能为空") Long id) { - coaReviewService.delete(id); + public ApiResult delete(@RequestBody List ids) { + coaReviewService.delete(ids); return ApiResult.success(); } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsSupplierSqeMapVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsSupplierSqeMapVO.java index 15e3876d..bb1e32bd 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsSupplierSqeMapVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsSupplierSqeMapVO.java @@ -2,6 +2,8 @@ package com.nflg.wms.common.pojo.vo; import lombok.Data; +import java.time.LocalDateTime; + /** * 供应商-用户 关联 VO(按供应商聚合,每行一个供应商) */ @@ -32,4 +34,24 @@ public class QmsSupplierSqeMapVO { * 统一启用状态:所有关联记录均启用时为true,否则为false */ private Boolean enable; + + /** + * 创建时间(取该供应商下最晚的创建时间) + */ + private LocalDateTime createTime; + + /** + * 创建人 + */ + private String createBy; + + /** + * 修改时间(取该供应商下最晚的修改时间) + */ + private LocalDateTime updateTime; + + /** + * 修改人(取最晚修改时间对应的操作人) + */ + private String updateBy; } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsCoaReviewService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsCoaReviewService.java index 41b5a0fc..f7d1875e 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsCoaReviewService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsCoaReviewService.java @@ -23,9 +23,9 @@ public interface IQmsCoaReviewService extends IService { void add(QmsCoaReviewAddQO qo); /** - * 删除COA审核记录(逻辑删除,仅状态为0时可删) + * 删除COA审核记录(批量逻辑删除,仅状态为0时可删) */ - void delete(Long id); + void delete(List ids); /** * 修改COA审核记录 diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsCoaReviewServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsCoaReviewServiceImpl.java index 688bef2c..29477a56 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsCoaReviewServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsCoaReviewServiceImpl.java @@ -132,19 +132,28 @@ public class QmsCoaReviewServiceImpl extends ServiceImpl ids) { + if (ids == null || ids.isEmpty()) { + throw new NflgException(STATE.BusinessError, "删除ID列表不能为空"); } - // 校验供应商权限 - validateSupplierPermission(review.getSupplierId()); + // 校验所有记录状态是否为0,并校验供应商权限 + List reviews = lambdaQuery() + .in(QmsCoaReview::getId, ids) + .list(); - if (!Objects.equals(review.getStatus(), 0)) { - throw new NflgException(STATE.BusinessError, "当前状态不允许删除,只有待提交(状态0)的记录才能删除"); + for (QmsCoaReview r : reviews) { + if (Objects.isNull(r) || Boolean.TRUE.equals(r.getDeleted())) { + throw new NflgException(STATE.BusinessError, "记录不存在"); + } + // 校验供应商权限 + validateSupplierPermission(r.getSupplierId()); + if (!Objects.equals(r.getStatus(), 0)) { + throw new NflgException(STATE.BusinessError, "当前状态不允许删除,只有待提交(状态0)的记录才能删除"); + } } + lambdaUpdate() - .eq(QmsCoaReview::getId, id) + .in(QmsCoaReview::getId, ids) .set(QmsCoaReview::getDeleted, true) .set(QmsCoaReview::getUpdateBy, UserUtil.getUserName()) .set(QmsCoaReview::getUpdateTime, LocalDateTime.now()) @@ -451,9 +460,10 @@ public class QmsCoaReviewServiceImpl extends ServiceImpl finalSupplierIds = filteredSupplierIds; final Set finalMaterialIds = filteredMaterialIds; - // 构建查询:只能查看属于当前SQE任务的审核记录 + // 构建查询:只能查看属于当前SQE任务的审核记录,且状态不为0(排除待提交) var query = lambdaQuery() .in(QmsCoaReview::getTaskId, taskIds) + .ne(QmsCoaReview::getStatus, 0) .ne(QmsCoaReview::getDeleted, true) .eq(StrUtil.isNotBlank(qo.getPurchaseNo()), QmsCoaReview::getPurchaseNo, qo.getPurchaseNo()) .orderByDesc(QmsCoaReview::getCreateTime); diff --git a/nflg-wms-repository/src/main/resources/mapper/QmsSupplierSqeMapMapper.xml b/nflg-wms-repository/src/main/resources/mapper/QmsSupplierSqeMapMapper.xml index fef46460..8b49cd2d 100644 --- a/nflg-wms-repository/src/main/resources/mapper/QmsSupplierSqeMapMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/QmsSupplierSqeMapMapper.xml @@ -9,7 +9,11 @@ us.supplier_code, us.supplier_name, STRING_AGG(DISTINCT u.user_name, ',' ORDER BY u.user_name) AS user_name, - BOOL_AND(qssm.enable) AS enable + BOOL_AND(qssm.enable) AS enable, + MAX(qssm.create_time) AS create_time, + MAX(qssm.create_by) AS create_by, + MAX(qssm.update_time) AS update_time, + MAX(qssm.update_by) AS update_by FROM qms_supplier_sqe_map qssm LEFT JOIN user_supplier us ON us.id = qssm.supplier_id LEFT JOIN "user" u ON u.id = qssm.user_id