修改供应商管理、COA任务接口

This commit is contained in:
yf001217 2026-04-20 11:48:11 +08:00
parent bfb96778f6
commit da04ac9e72
5 changed files with 53 additions and 17 deletions

View File

@ -40,14 +40,14 @@ public class QmsCoaReviewController extends BaseController {
}
/**
* 删除COA审核记录逻辑删除仅状态为0时可删
* 删除COA审核记录批量逻辑删除仅状态为0时可删
*
* @param id 记录ID
* @param ids 记录ID列表
*/
@Transactional
@PostMapping("delete")
public ApiResult<Void> delete(@NotNull(message = "ID不能为空") Long id) {
coaReviewService.delete(id);
public ApiResult<Void> delete(@RequestBody List<Long> ids) {
coaReviewService.delete(ids);
return ApiResult.success();
}

View File

@ -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;
}

View File

@ -23,9 +23,9 @@ public interface IQmsCoaReviewService extends IService<QmsCoaReview> {
void add(QmsCoaReviewAddQO qo);
/**
* 删除COA审核记录逻辑删除仅状态为0时可删
* 删除COA审核记录批量逻辑删除仅状态为0时可删
*/
void delete(Long id);
void delete(List<Long> ids);
/**
* 修改COA审核记录

View File

@ -132,19 +132,28 @@ public class QmsCoaReviewServiceImpl extends ServiceImpl<QmsCoaReviewMapper, Qms
@Transactional
@Override
public void delete(Long id) {
QmsCoaReview review = getById(id);
if (Objects.isNull(review) || Boolean.TRUE.equals(review.getDeleted())) {
public void delete(List<Long> ids) {
if (ids == null || ids.isEmpty()) {
throw new NflgException(STATE.BusinessError, "删除ID列表不能为空");
}
// 校验所有记录状态是否为0并校验供应商权限
List<QmsCoaReview> reviews = lambdaQuery()
.in(QmsCoaReview::getId, ids)
.list();
for (QmsCoaReview r : reviews) {
if (Objects.isNull(r) || Boolean.TRUE.equals(r.getDeleted())) {
throw new NflgException(STATE.BusinessError, "记录不存在");
}
// 校验供应商权限
validateSupplierPermission(review.getSupplierId());
if (!Objects.equals(review.getStatus(), 0)) {
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<QmsCoaReviewMapper, Qms
final Set<Long> finalSupplierIds = filteredSupplierIds;
final Set<Long> 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);

View File

@ -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