From bb0b80bd7ca7c1f979ab0125ae01f3faa1d14f4b Mon Sep 17 00:00:00 2001
From: hsy <1029150275@qq.com>
Date: 星期一, 17 八月 2026 09:37:57 +0800
Subject: [PATCH] Merge branch 'refs/heads/dev_business' into fix/hsy/20260811

---
 yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/service/supplier/SrmSupplierServiceImpl.java |   46 ++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 44 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 9e7b9be..c9d5858 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
@@ -3,17 +3,24 @@
 import cn.hutool.core.collection.CollUtil;
 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;
 
@@ -34,6 +41,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) {
@@ -57,10 +79,13 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void deleteSupplier(Long id) {
         // 鏍¢獙瀛樺湪鎬�
         validateSupplierExists(id);
-        // 鍒犻櫎鍏宠仈鏁版嵁
+        // 鍏宠仈鏁版嵁瀛樺湪鏃讹紝涓嶅厑璁稿垹闄�
+        validateNoReference(id);
+        // 鍙洿鎺ユ竻鐞嗙殑鍏宠仈鏁版嵁
         supplierContactMapper.deleteBySupplierId(id);
         supplierCategoryMapper.deleteBySupplierId(id);
         // 閫昏緫鍒犻櫎
@@ -83,6 +108,12 @@
     }
 
     @Override
+    public List<SrmSupplierDO> getSupplierAllList() {
+        return supplierMapper.selectList(new LambdaQueryWrapperX<SrmSupplierDO>()
+                .orderByAsc(SrmSupplierDO::getId));
+    }
+
+    @Override
     public List<SrmSupplierDO> getSupplierList(Collection<Long> ids) {
         if (CollUtil.isEmpty(ids)) {
             return Collections.emptyList();
@@ -105,4 +136,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