From 8eeaa57003ac24e053a648d695de1b8da2a22763 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期一, 24 八月 2026 10:05:37 +0800
Subject: [PATCH] 投标移除"供应商必须已准入"校验。供应商已停用,无法参与投标。
---
yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/service/supplier/SrmSupplierServiceImpl.java | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 52 insertions(+), 2 deletions(-)
diff --git a/yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/service/supplier/SrmSupplierServiceImpl.java b/yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/service/supplier/SrmSupplierServiceImpl.java
index dd02774..6c4c50f 100644
--- a/yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/service/supplier/SrmSupplierServiceImpl.java
+++ b/yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/service/supplier/SrmSupplierServiceImpl.java
@@ -1,18 +1,29 @@
package cn.iocoder.yudao.module.srm.service.supplier;
+import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.srm.controller.admin.supplier.vo.SrmSupplierPageReqVO;
import cn.iocoder.yudao.module.srm.controller.admin.supplier.vo.SrmSupplierSaveReqVO;
-import cn.iocoder.yudao.module.srm.dal.dataobject.SrmSupplierDO;
+import cn.iocoder.yudao.module.srm.dal.dataobject.*;
+import cn.iocoder.yudao.module.srm.dal.mysql.SrmBidAwardMapper;
+import cn.iocoder.yudao.module.srm.dal.mysql.SrmBidEvaluationMapper;
+import cn.iocoder.yudao.module.srm.dal.mysql.SrmSupplierApplyMapper;
import cn.iocoder.yudao.module.srm.dal.mysql.SrmSupplierCategoryMapper;
import cn.iocoder.yudao.module.srm.dal.mysql.SrmSupplierContactMapper;
+import cn.iocoder.yudao.module.srm.dal.mysql.SrmSupplierCertificateMapper;
import cn.iocoder.yudao.module.srm.dal.mysql.SrmSupplierMapper;
+import cn.iocoder.yudao.module.srm.dal.mysql.SrmTenderBidMapper;
import cn.iocoder.yudao.module.srm.enums.ErrorCodeConstants;
import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
import cn.hutool.core.collection.CollUtil;
import java.util.Collection;
@@ -31,6 +42,21 @@
@Resource
private SrmSupplierCategoryMapper supplierCategoryMapper;
+
+ @Resource
+ private SrmSupplierApplyMapper supplierApplyMapper;
+
+ @Resource
+ private SrmSupplierCertificateMapper supplierCertificateMapper;
+
+ @Resource
+ private SrmTenderBidMapper tenderBidMapper;
+
+ @Resource
+ private SrmBidEvaluationMapper bidEvaluationMapper;
+
+ @Resource
+ private SrmBidAwardMapper bidAwardMapper;
@Override
public Long createSupplier(SrmSupplierSaveReqVO createReqVO) {
@@ -54,10 +80,13 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public void deleteSupplier(Long id) {
// 鏍¢獙瀛樺湪鎬�
validateSupplierExists(id);
- // 鍒犻櫎鍏宠仈鏁版嵁
+ // 鍏宠仈鏁版嵁瀛樺湪鏃讹紝涓嶅厑璁稿垹闄�
+ validateNoReference(id);
+ // 鍙洿鎺ユ竻鐞嗙殑鍏宠仈鏁版嵁
supplierContactMapper.deleteBySupplierId(id);
supplierCategoryMapper.deleteBySupplierId(id);
// 閫昏緫鍒犻櫎
@@ -80,6 +109,16 @@
}
@Override
+ public List<SrmSupplierDO> getSupplierAllList() {
+ return supplierMapper.selectList(new LambdaQueryWrapperX<SrmSupplierDO>()
+ // 杩囨护鍋滅敤渚涘簲鍟嗭紝淇濈暀鏈缃姸鎬佷笌鍚敤鐘舵�佺殑妗f渚涘簲鍟嗭紙浠呯敤浜庢嫑鎶曟爣鍦烘櫙锛�
+ .and(w -> w.isNull(SrmSupplierDO::getStatus)
+ .or()
+ .ne(SrmSupplierDO::getStatus, CommonStatusEnum.DISABLE.getStatus()))
+ .orderByAsc(SrmSupplierDO::getId));
+ }
+
+ @Override
public List<SrmSupplierDO> getSupplierList(Collection<Long> ids) {
if (CollUtil.isEmpty(ids)) {
return Collections.emptyList();
@@ -102,4 +141,15 @@
}
}
+ private void validateNoReference(Long id) {
+ boolean hasReference = supplierApplyMapper.existsApprovedBySupplierId(id)
+ || supplierCertificateMapper.selectCount(SrmSupplierCertificateDO::getSupplierId, id) > 0
+ || tenderBidMapper.selectCount(SrmTenderBidDO::getSupplierId, id) > 0
+ || bidEvaluationMapper.selectCount(SrmBidEvaluationDO::getSupplierId, id) > 0
+ || bidAwardMapper.selectCount(SrmBidAwardDO::getSupplierId, id) > 0;
+ if (hasReference) {
+ throw ServiceExceptionUtil.exception(ErrorCodeConstants.SUPPLIER_EXISTS_REFERENCE);
+ }
+ }
+
}
--
Gitblit v1.9.3