tjxt 2 ay önce
ebeveyn
işleme
bbe6f99697
32 değiştirilmiş dosya ile 950 ekleme ve 47 silme
  1. 5 0
      ruoyi-api/ruoyi-api-product/src/main/java/org/dromara/product/api/RemoteProductService.java
  2. 5 2
      ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/interceptor/PlatformDataScopeInterceptor.java
  3. 106 0
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/QualificationFileController.java
  4. 1 1
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/SupplierAddressController.java
  5. 1 1
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/SupplierBankController.java
  6. 1 1
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/SupplierContactController.java
  7. 1 1
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/SupplierContractController.java
  8. 1 1
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/SupplierInfoController.java
  9. 79 0
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/QualificationFile.java
  10. 4 4
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/SupplierBank.java
  11. 15 0
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/authorData.java
  12. 66 0
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/bo/QualificationFileBo.java
  13. 6 4
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/bo/SupplierAuthorizeBo.java
  14. 26 4
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/bo/SupplierBankBo.java
  15. 14 0
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/bo/SupplierInfoBo.java
  16. 83 0
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/vo/QualificationFileVo.java
  17. 49 13
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/vo/SupplierBankVo.java
  18. 15 0
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/mapper/QualificationFileMapper.java
  19. 70 0
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/IQualificationFileService.java
  20. 2 0
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/ISupplierAuthorizeService.java
  21. 3 0
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/ISupplierProcurementService.java
  22. 2 0
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/ISupplyAreaService.java
  23. 41 0
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/CommonSupplierAuthorizeService.java
  24. 139 0
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/QualificationFileServiceImpl.java
  25. 11 1
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/SupplierAuthorizeServiceImpl.java
  26. 1 1
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/SupplierBankServiceImpl.java
  27. 3 1
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/SupplierContactServiceImpl.java
  28. 115 12
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/SupplierInfoServiceImpl.java
  29. 29 0
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/SupplierProcurementServiceImpl.java
  30. 41 0
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/SupplyAreaServiceImpl.java
  31. 7 0
      ruoyi-modules/ruoyi-customer/src/main/resources/mapper/customer/QualificationFileMapper.xml
  32. 8 0
      ruoyi-modules/ruoyi-product/src/main/java/org/dromara/product/dubbo/RemoteProductServiceImpl.java

+ 5 - 0
ruoyi-api/ruoyi-api-product/src/main/java/org/dromara/product/api/RemoteProductService.java

@@ -55,6 +55,11 @@ public interface RemoteProductService {
      */
     List<RemoteProductBrand> getProductByBrandId(List<Long> ids);
 
+    /**
+     * 根据可供货品牌名称获得id
+     */
+    Long getProductBrandIdByName(String name);
+
     /**
      * 获取品目列表
      */

+ 5 - 2
ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/interceptor/PlatformDataScopeInterceptor.java

@@ -82,7 +82,10 @@ public class PlatformDataScopeInterceptor implements Interceptor {
         "industry_category",
         "contract_product",
         "supplier_contact",
-        "address_area"
+        "address_area",
+        "supplier_",
+        "supply_area"
+
 
 
         // 注意:前缀匹配需特殊处理(如 qrtz_),见 isIgnoreTable 方法
@@ -198,7 +201,7 @@ public class PlatformDataScopeInterceptor implements Interceptor {
         }
 
         // 前缀匹配
-        return tableName.startsWith("qrtz_") || tableName.startsWith("product_") || tableName.startsWith("com_");
+        return tableName.startsWith("qrtz_") || tableName.startsWith("product_") || tableName.startsWith("com_") || tableName.startsWith("supplier_");
     }
 
     /**

+ 106 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/QualificationFileController.java

@@ -0,0 +1,106 @@
+package org.dromara.customer.controller;
+
+import java.util.List;
+
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.excel.utils.ExcelUtil;
+import org.dromara.customer.domain.vo.QualificationFileVo;
+import org.dromara.customer.domain.bo.QualificationFileBo;
+import org.dromara.customer.service.IQualificationFileService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 供应商授权信息文件
+ * 前端访问路由地址为:/customer/qualificationFile
+ *
+ * @author LionLi
+ * @date 2026-01-26
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/qualificationFile")
+public class QualificationFileController extends BaseController {
+
+    private final IQualificationFileService qualificationFileService;
+
+    /**
+     * 查询供应商授权信息文件列表
+     */
+    //@SaCheckPermission("customer:qualificationFile:list")
+    @GetMapping("/list")
+    public TableDataInfo<QualificationFileVo> list(QualificationFileBo bo, PageQuery pageQuery) {
+        return qualificationFileService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 导出供应商授权信息文件列表
+     */
+    //@SaCheckPermission("customer:qualificationFile:export")
+    @Log(title = "供应商授权信息文件", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(QualificationFileBo bo, HttpServletResponse response) {
+        List<QualificationFileVo> list = qualificationFileService.queryList(bo);
+        ExcelUtil.exportExcel(list, "供应商授权信息文件", QualificationFileVo.class, response);
+    }
+
+    /**
+     * 获取供应商授权信息文件详细信息
+     *
+     * @param id 主键
+     */
+    //@SaCheckPermission("customer:qualificationFile:query")
+    @GetMapping("/{id}")
+    public R<QualificationFileVo> getInfo(@NotNull(message = "主键不能为空")
+                                     @PathVariable("id") Long id) {
+        return R.ok(qualificationFileService.queryById(id));
+    }
+
+    /**
+     * 新增供应商授权信息文件
+     */
+    //@SaCheckPermission("customer:qualificationFile:add")
+    @Log(title = "供应商授权信息文件", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody QualificationFileBo bo) {
+        return toAjax(qualificationFileService.insertByBo(bo));
+    }
+
+    /**
+     * 修改供应商授权信息文件
+     */
+    //@SaCheckPermission("customer:qualificationFile:edit")
+    @Log(title = "供应商授权信息文件", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody QualificationFileBo bo) {
+        return toAjax(qualificationFileService.updateByBo(bo));
+    }
+
+    /**
+     * 删除供应商授权信息文件
+     *
+     * @param ids 主键串
+     */
+    //@SaCheckPermission("customer:qualificationFile:remove")
+    @Log(title = "供应商授权信息文件", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable("ids") Long[] ids) {
+        return toAjax(qualificationFileService.deleteWithValidByIds(List.of(ids), true));
+    }
+}

+ 1 - 1
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/SupplierAddressController.java

@@ -48,7 +48,7 @@ public class SupplierAddressController extends BaseController {
     /**
      * 查询供应商地址列表
      */
-    @SaCheckPermission("supplierAddress:supplieraddress:list")
+    //@SaCheckPermission("supplierAddress:supplieraddress:list")
     @GetMapping("/list")
     public TableDataInfo<SupplierAddressVo> list(SupplierAddressBo bo, PageQuery pageQuery) {
         return supplierAddressService.queryPageList(bo, pageQuery);

+ 1 - 1
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/SupplierBankController.java

@@ -70,7 +70,7 @@ public class SupplierBankController extends BaseController {
         return R.ok(supplierBankService.queryById(id));
     }
 
-    @SaCheckPermission("customer:bank:query")
+    //@SaCheckPermission("customer:bank:query")
     @GetMapping("/getBankBySupplierId")
     public R<List<SupplierBankVo>> getBankBySupplierId(@RequestParam Long id) {
         SupplierBankBo supplierBankBo = new SupplierBankBo();

+ 1 - 1
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/SupplierContactController.java

@@ -50,7 +50,7 @@ public class SupplierContactController extends BaseController {
     /**
      * 根据id获取业务联系人
      */
-    @SaCheckPermission("supplier:contact:list")
+//    @SaCheckPermission("supplier:contact:list")
     @GetMapping("/getSupplierContactlistById")
     public TableDataInfo<SupplierContactVo> getlistById(SupplierContactBo bo, PageQuery pageQuery) {
         return supplierContactService.queryPageListById(bo, pageQuery);

+ 1 - 1
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/SupplierContractController.java

@@ -71,7 +71,7 @@ public class SupplierContractController extends BaseController {
     /**
      * 根据supplierid查询合同列表
      */
-    @SaCheckPermission("supplier:contract:list")
+    //@SaCheckPermission("supplier:contract:list")
     @GetMapping("/supplierContractsById")
     public TableDataInfo<SupplierContractVo> supplierContractsById(SupplierContractBo bo, PageQuery pageQuery) {
         TableDataInfo<SupplierContractVo> supplierContracts = supplierContractService.queryContractsPageList(bo, pageQuery);

+ 1 - 1
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/SupplierInfoController.java

@@ -117,7 +117,7 @@ public class SupplierInfoController extends BaseController {
      *
      * @param id 主键
      */
-    @SaCheckPermission("customer:info:query")
+    //@SaCheckPermission("customer:info:query")
     @GetMapping("/{id}")
     public R<SupplierInfoVo> getInfo(@NotNull(message = "主键不能为空")
                                      @PathVariable("id") Long id) throws JsonProcessingException {

+ 79 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/QualificationFile.java

@@ -0,0 +1,79 @@
+package org.dromara.customer.domain;
+
+import org.dromara.common.tenant.core.TenantEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.io.Serial;
+
+/**
+ * 供应商授权信息文件对象 qualification_file
+ *
+ * @author LionLi
+ * @date 2026-01-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("qualification_file")
+public class QualificationFile extends TenantEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(value = "id")
+    private Long id;
+
+    /**
+     * 资质编号
+     */
+    private String authorizeNo;
+
+    /**
+     * 资质类型名称
+     */
+    private String name;
+
+    /**
+     * 文件名称
+     */
+    private String fileName;
+
+    /**
+     * 文件类型
+     */
+    private String fileType;
+
+    /**
+     * 文件上传路径
+     */
+    private String fileUrl;
+
+    /**
+     * 资质到期日期
+     */
+    private Date endTime;
+
+    /**
+     * 状态(0正常 1停用)
+     */
+    private String status;
+
+    /**
+     * 删除标志(0代表存在 2代表删除)
+     */
+    @TableLogic
+    private String delFlag;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

+ 4 - 4
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/SupplierBank.java

@@ -48,9 +48,9 @@ public class SupplierBank extends TenantEntity {
     private String bankNum;
 
     /**
-     * 银行信息编号(可能为内部系统编号)
+     * 银行信息Id
      */
-    private String bankInfoNo;
+    private Long bankInfoNo;
 
     /**
      * 银行名称
@@ -78,9 +78,9 @@ public class SupplierBank extends TenantEntity {
     private String phone;
 
     /**
-     * 发票类型编码
+     * 发票类型Id
      */
-    private String invoiceTypeNo;
+    private Long invoiceTypeNo;
 
     /**
      * 发票类型名称

+ 15 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/authorData.java

@@ -0,0 +1,15 @@
+package org.dromara.customer.domain;
+
+import lombok.Data;
+
+/**
+ * author
+ * 时间:2026/1/26,17:18
+ */
+@Data
+public class authorData {
+
+    private Long id;
+
+    private String brandLicensor;
+}

+ 66 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/bo/QualificationFileBo.java

@@ -0,0 +1,66 @@
+package org.dromara.customer.domain.bo;
+
+import org.dromara.customer.domain.QualificationFile;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+/**
+ * 供应商授权信息文件业务对象 qualification_file
+ *
+ * @author LionLi
+ * @date 2026-01-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = QualificationFile.class, reverseConvertGenerate = false)
+public class QualificationFileBo extends BaseEntity {
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /**
+     * 资质编号
+     */
+    private String authorizeNo;
+
+    /**
+     * 资质类型名称
+     */
+    private String name;
+
+    /**
+     * 文件名称
+     */
+    private String fileName;
+
+    /**
+     * 文件类型
+     */
+    private String fileType;
+
+    /**
+     * 文件上传路径
+     */
+    private String fileUrl;
+
+    /**
+     * 资质到期日期
+     */
+    private Date endTime;
+
+    /**
+     * 状态(0正常 1停用)
+     */
+    private String status;
+
+
+}

+ 6 - 4
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/bo/SupplierAuthorizeBo.java

@@ -31,6 +31,11 @@ public class SupplierAuthorizeBo extends BaseEntity {
      */
     private String supplierNo;
 
+    /**
+     * 可供应品牌
+     */
+    private String supplyBrand;
+
     /**
      * 供应商ID
      */
@@ -51,10 +56,7 @@ public class SupplierAuthorizeBo extends BaseEntity {
      */
     private String supplyProCate;
 
-    /**
-     * 可供货品牌
-     */
-    private String supplyBrand;
+
 
     /**
      * 授权单编号

+ 26 - 4
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/bo/SupplierBankBo.java

@@ -1,5 +1,6 @@
 package org.dromara.customer.domain.bo;
 
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import org.dromara.customer.domain.SupplierBank;
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import org.dromara.common.core.validate.AddGroup;
@@ -43,9 +44,9 @@ public class SupplierBankBo extends BaseEntity {
     private String bankNum;
 
     /**
-     * 银行信息编号(可能为内部系统编号)
+     * 银行信息Id
      */
-    private String bankInfoNo;
+    private Long bankInfoNo;
 
     /**
      * 银行名称
@@ -73,14 +74,35 @@ public class SupplierBankBo extends BaseEntity {
     private String phone;
 
     /**
-     * 发票类型编码
+     * 发票类型Id
      */
-    private String invoiceTypeNo;
+    private Long invoiceTypeNo;
 
     /**
      * 发票类型名称
      */
     private String invoiceTypeName;
 
+    /**
+     * 推送状态(例如:0-未推送, 1-已推送, 16-推送失败)
+     */
+    private String pushStatus;
+
+    /**
+     * 状态(0正常 1停用)
+     */
+    private String status;
+
+    /**
+     * 删除标志(0代表存在 2代表删除)
+     */
+    @TableLogic
+    private String delFlag;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
 
 }

+ 14 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/bo/SupplierInfoBo.java

@@ -47,6 +47,15 @@ public class SupplierInfoBo extends BaseEntity {
     //@NotBlank(message = "人员规模不能为空", groups = { AddGroup.class, EditGroup.class })
     private Long membershipSize;
 
+    /**
+     * 产品经理Id
+     */
+    private Long productManager;
+
+    /**
+     * 采购人员Id
+     */
+    private Long buyer;
     /**
      * 供应商类型
      */
@@ -363,4 +372,9 @@ public class SupplierInfoBo extends BaseEntity {
     private Long cooperative;
 
 
+    private String province;
+
+    private String city;
+
+
 }

+ 83 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/vo/QualificationFileVo.java

@@ -0,0 +1,83 @@
+package org.dromara.customer.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.dromara.customer.domain.QualificationFile;
+import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
+import cn.idev.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+/**
+ * 供应商授权信息文件视图对象 qualification_file
+ *
+ * @author LionLi
+ * @date 2026-01-26
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = QualificationFile.class)
+public class QualificationFileVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @ExcelProperty(value = "id")
+    private Long id;
+
+    /**
+     * 资质编号
+     */
+    @ExcelProperty(value = "资质编号")
+    private String authorizeNo;
+
+    /**
+     * 资质类型名称
+     */
+    @ExcelProperty(value = "资质类型名称")
+    private String name;
+
+    /**
+     * 文件名称
+     */
+    @ExcelProperty(value = "文件名称")
+    private String fileName;
+
+    /**
+     * 文件类型
+     */
+    @ExcelProperty(value = "文件类型")
+    private String fileType;
+
+    /**
+     * 文件上传路径
+     */
+    @ExcelProperty(value = "文件上传路径")
+    private String fileUrl;
+
+    /**
+     * 资质到期日期
+     */
+    @ExcelProperty(value = "资质到期日期")
+    private Date endTime;
+
+    /**
+     * 状态(0正常 1停用)
+     */
+    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(readConverterExp = "0=正常,1=停用")
+    private String status;
+
+
+}

+ 49 - 13
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/vo/SupplierBankVo.java

@@ -1,5 +1,6 @@
 package org.dromara.customer.domain.vo;
 
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import org.dromara.customer.domain.SupplierBank;
 import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
 import cn.idev.excel.annotation.ExcelProperty;
@@ -28,53 +29,88 @@ public class SupplierBankVo implements Serializable {
     @Serial
     private static final long serialVersionUID = 1L;
 
-    /**
-     * 主键
-     */
     private Long id;
 
     /**
      * 账户序号
      */
-    @ExcelProperty(value = "账户序号")
     private Long num;
 
     /**
      * 供应商编号
      */
-    @ExcelProperty(value = "供应商编号")
     private String supplierNo;
 
     /**
      * 供应商ID
      */
-    @ExcelProperty(value = "供应商ID")
     private Long supplierId;
 
     /**
      * 银行行号
      */
-    @ExcelProperty(value = "银行行号")
     private String bankNum;
 
     /**
-     * 银行信息编号(可能为内部系统编号)
+     * 银行信息Id
      */
-    @ExcelProperty(value = "银行信息编号", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(readConverterExp = "可=能为内部系统编号")
-    private String bankInfoNo;
+    private Long bankInfoNo;
 
     /**
      * 银行名称
      */
-    @ExcelProperty(value = "银行名称")
     private String bankName;
 
     /**
      * 银行账号
      */
-    @ExcelProperty(value = "银行账号")
     private String bankNo;
 
+    /**
+     * 账户有效性标识(1-有效, 0-无效)
+     */
+    private String isture;
+
+    /**
+     * 账户户名
+     */
+    private String circlesName;
+
+    /**
+     * 账户预留电话
+     */
+    private String phone;
+
+    /**
+     * 发票类型Id
+     */
+    private Long invoiceTypeNo;
+
+    /**
+     * 发票类型名称
+     */
+    private String invoiceTypeName;
+
+    /**
+     * 推送状态(例如:0-未推送, 1-已推送, 16-推送失败)
+     */
+    private String pushStatus;
+
+    /**
+     * 状态(0正常 1停用)
+     */
+    private String status;
+
+    /**
+     * 删除标志(0代表存在 2代表删除)
+     */
+    @TableLogic
+    private String delFlag;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
 
 }

+ 15 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/mapper/QualificationFileMapper.java

@@ -0,0 +1,15 @@
+package org.dromara.customer.mapper;
+
+import org.dromara.customer.domain.QualificationFile;
+import org.dromara.customer.domain.vo.QualificationFileVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 供应商授权信息文件Mapper接口
+ *
+ * @author LionLi
+ * @date 2026-01-26
+ */
+public interface QualificationFileMapper extends BaseMapperPlus<QualificationFile, QualificationFileVo> {
+
+}

+ 70 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/IQualificationFileService.java

@@ -0,0 +1,70 @@
+package org.dromara.customer.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.dromara.customer.domain.QualificationFile;
+import org.dromara.customer.domain.vo.QualificationFileVo;
+import org.dromara.customer.domain.bo.QualificationFileBo;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 供应商授权信息文件Service接口
+ *
+ * @author LionLi
+ * @date 2026-01-26
+ */
+public interface IQualificationFileService extends IService<QualificationFile>{
+
+    /**
+     * 查询供应商授权信息文件
+     *
+     * @param id 主键
+     * @return 供应商授权信息文件
+     */
+    QualificationFileVo queryById(Long id);
+
+    /**
+     * 分页查询供应商授权信息文件列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 供应商授权信息文件分页列表
+     */
+    TableDataInfo<QualificationFileVo> queryPageList(QualificationFileBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询符合条件的供应商授权信息文件列表
+     *
+     * @param bo 查询条件
+     * @return 供应商授权信息文件列表
+     */
+    List<QualificationFileVo> queryList(QualificationFileBo bo);
+
+    /**
+     * 新增供应商授权信息文件
+     *
+     * @param bo 供应商授权信息文件
+     * @return 是否新增成功
+     */
+    Boolean insertByBo(QualificationFileBo bo);
+
+    /**
+     * 修改供应商授权信息文件
+     *
+     * @param bo 供应商授权信息文件
+     * @return 是否修改成功
+     */
+    Boolean updateByBo(QualificationFileBo bo);
+
+    /**
+     * 校验并批量删除供应商授权信息文件信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 2 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/ISupplierAuthorizeService.java

@@ -72,4 +72,6 @@ public interface ISupplierAuthorizeService extends IService<SupplierAuthorize>{
     List<SupplierAuthorizeVo> getAuthorizeDetailList(Long supplierId);
 
     TableDataInfo<SupplierAuthorizeVo> getSupplyCapacityList(SupplierAuthorizeBo bo, PageQuery pageQuery);
+
+
 }

+ 3 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/ISupplierProcurementService.java

@@ -71,4 +71,7 @@ public interface ISupplierProcurementService extends IService<SupplierProcuremen
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
 
     Map<String,Long> selectSupplierId(Long id);
+
+
+    List<Long> getSupplierIdsByProcurement(Long productManager, Long buyer);
 }

+ 2 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/ISupplyAreaService.java

@@ -70,4 +70,6 @@ public interface ISupplyAreaService extends IService<SupplyArea>{
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
 
     Map<Long, String> queryProvincesorCity(Long supplierId,Map<Long, List<String>> areaMap,int level);
+
+    List<Long> getSupplierIdsByArea(String province, String city);
 }

+ 41 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/CommonSupplierAuthorizeService.java

@@ -0,0 +1,41 @@
+package org.dromara.customer.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.customer.domain.SupplierAuthorize;
+import org.dromara.customer.mapper.SupplierAuthorizeMapper;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * author
+ * 时间:2026/1/23,14:04
+ */
+@Service
+@RequiredArgsConstructor
+@Slf4j
+public class CommonSupplierAuthorizeService {
+
+    private final SupplierAuthorizeMapper baseMapper;
+
+    public List<Long> getSupplierIdsByBrandName(String brandName) {
+        // 需要注入SupplierAuthorizeMapper或Service
+        // 这里假设你有SupplierAuthorizeMapper
+        LambdaQueryWrapper<SupplierAuthorize> authorizeQueryWrapper =
+            new LambdaQueryWrapper<>();
+        authorizeQueryWrapper.eq(SupplierAuthorize::getBrandName, brandName);
+
+        // 查询符合条件的授权记录
+        List<SupplierAuthorize> authorizeList =
+            baseMapper.selectList(authorizeQueryWrapper);
+
+        // 提取供应商ID并去重
+        return authorizeList.stream()
+            .map(org.dromara.customer.domain.SupplierAuthorize::getSupplierId)
+            .distinct()
+            .collect(Collectors.toList());
+    }
+}

+ 139 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/QualificationFileServiceImpl.java

@@ -0,0 +1,139 @@
+package org.dromara.customer.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.dromara.customer.domain.bo.QualificationFileBo;
+import org.dromara.customer.domain.vo.QualificationFileVo;
+import org.dromara.customer.domain.QualificationFile;
+import org.dromara.customer.mapper.QualificationFileMapper;
+import org.dromara.customer.service.IQualificationFileService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 供应商授权信息文件Service业务层处理
+ *
+ * @author LionLi
+ * @date 2026-01-26
+ */
+@Slf4j
+@RequiredArgsConstructor
+@Service
+public class QualificationFileServiceImpl  extends ServiceImpl<QualificationFileMapper, QualificationFile> implements IQualificationFileService {
+
+    private final QualificationFileMapper baseMapper;
+
+    /**
+     * 查询供应商授权信息文件
+     *
+     * @param id 主键
+     * @return 供应商授权信息文件
+     */
+    @Override
+    public QualificationFileVo queryById(Long id){
+        return baseMapper.selectVoById(id);
+    }
+
+    /**
+     * 分页查询供应商授权信息文件列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 供应商授权信息文件分页列表
+     */
+    @Override
+    public TableDataInfo<QualificationFileVo> queryPageList(QualificationFileBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<QualificationFile> lqw = buildQueryWrapper(bo);
+        Page<QualificationFileVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询符合条件的供应商授权信息文件列表
+     *
+     * @param bo 查询条件
+     * @return 供应商授权信息文件列表
+     */
+    @Override
+    public List<QualificationFileVo> queryList(QualificationFileBo bo) {
+        LambdaQueryWrapper<QualificationFile> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<QualificationFile> buildQueryWrapper(QualificationFileBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<QualificationFile> lqw = Wrappers.lambdaQuery();
+        lqw.orderByAsc(QualificationFile::getId);
+        lqw.eq(StringUtils.isNotBlank(bo.getAuthorizeNo()), QualificationFile::getAuthorizeNo, bo.getAuthorizeNo());
+        lqw.like(StringUtils.isNotBlank(bo.getName()), QualificationFile::getName, bo.getName());
+        lqw.like(StringUtils.isNotBlank(bo.getFileName()), QualificationFile::getFileName, bo.getFileName());
+        lqw.eq(StringUtils.isNotBlank(bo.getFileType()), QualificationFile::getFileType, bo.getFileType());
+        lqw.eq(StringUtils.isNotBlank(bo.getFileUrl()), QualificationFile::getFileUrl, bo.getFileUrl());
+        lqw.eq(bo.getEndTime() != null, QualificationFile::getEndTime, bo.getEndTime());
+        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), QualificationFile::getStatus, bo.getStatus());
+        return lqw;
+    }
+
+    /**
+     * 新增供应商授权信息文件
+     *
+     * @param bo 供应商授权信息文件
+     * @return 是否新增成功
+     */
+    @Override
+    public Boolean insertByBo(QualificationFileBo bo) {
+        QualificationFile add = MapstructUtils.convert(bo, QualificationFile.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改供应商授权信息文件
+     *
+     * @param bo 供应商授权信息文件
+     * @return 是否修改成功
+     */
+    @Override
+    public Boolean updateByBo(QualificationFileBo bo) {
+        QualificationFile update = MapstructUtils.convert(bo, QualificationFile.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(QualificationFile entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 校验并批量删除供应商授权信息文件信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteByIds(ids) > 0;
+    }
+}

+ 11 - 1
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/SupplierAuthorizeServiceImpl.java

@@ -22,6 +22,7 @@ import org.dromara.product.api.RemoteCategoryService;
 import org.dromara.product.api.RemoteProductService;
 import org.dromara.product.api.domain.RemoteProductBrand;
 import org.springframework.beans.BeanUtils;
+import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 import org.dromara.customer.domain.bo.SupplierAuthorizeBo;
 import org.dromara.customer.domain.vo.SupplierAuthorizeVo;
@@ -50,12 +51,16 @@ public class SupplierAuthorizeServiceImpl  extends ServiceImpl<SupplierAuthorize
 
     private final ISupplyAreaService supplyAreaService;
 
+    private final StringRedisTemplate stringRedisTemplate;
+
     @DubboReference
     private final RemoteCategoryService remoteCategoryService;
 
     @DubboReference
     private final RemoteProductService remoteProductService;
 
+    private static final String SUPPLY_CAPACITY_KEY = "supply_capacity:";
+
     /**
      * 查询供应能力查询
      *
@@ -93,6 +98,8 @@ public class SupplierAuthorizeServiceImpl  extends ServiceImpl<SupplierAuthorize
         return baseMapper.selectVoList(lqw);
     }
 
+
+
     @Override
     public TableDataInfo<SupplierAuthorizeVo> getSupplyCapacityList(SupplierAuthorizeBo bo, PageQuery pageQuery) {
         //查询供应商信息
@@ -311,8 +318,11 @@ public class SupplierAuthorizeServiceImpl  extends ServiceImpl<SupplierAuthorize
     @Override
     public Boolean insertByBo(SupplierAuthorizeBo bo) {
         SupplierAuthorize add = MapstructUtils.convert(bo, SupplierAuthorize.class);
-        validEntityBeforeSave(add);
+        stringRedisTemplate.opsForValue().set(RedisConstants.SUPPLY_CAPACITY_KEY+add.getId(),add);
         boolean flag = baseMapper.insert(add) > 0;
+        if (flag){
+            add.setId(add.getId());
+        }
         return flag;
     }
 

+ 1 - 1
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/SupplierBankServiceImpl.java

@@ -79,7 +79,7 @@ public class SupplierBankServiceImpl  extends ServiceImpl<SupplierBankMapper, Su
         lqw.eq(StringUtils.isNotBlank(bo.getSupplierNo()), SupplierBank::getSupplierNo, bo.getSupplierNo());
         lqw.eq(bo.getSupplierId() != null, SupplierBank::getSupplierId, bo.getSupplierId());
         lqw.eq(StringUtils.isNotBlank(bo.getBankNum()), SupplierBank::getBankNum, bo.getBankNum());
-        lqw.eq(StringUtils.isNotBlank(bo.getBankInfoNo()), SupplierBank::getBankInfoNo, bo.getBankInfoNo());
+        lqw.eq(bo.getBankInfoNo() != null, SupplierBank::getBankInfoNo, bo.getBankInfoNo());
         lqw.like(StringUtils.isNotBlank(bo.getBankName()), SupplierBank::getBankName, bo.getBankName());
         lqw.eq(StringUtils.isNotBlank(bo.getBankNo()), SupplierBank::getBankNo, bo.getBankNo());
         return lqw;

+ 3 - 1
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/SupplierContactServiceImpl.java

@@ -122,7 +122,8 @@ public class SupplierContactServiceImpl  extends ServiceImpl<SupplierContactMapp
     @Override
     public TableDataInfo<SupplierContactVo> queryPageListById(SupplierContactBo bo, PageQuery pageQuery) {
         LambdaQueryWrapper<SupplierContact> lqw = buildQueryWrapper(bo);
-        lqw.eq(SupplierContact::getSupplierId , bo.getSupplierId());
+        lqw.eq(bo.getSupplierId()!=null , SupplierContact::getSupplierId , bo.getSupplierId());
+        lqw.eq(bo.getUserId()!=null , SupplierContact::getUserId , bo.getUserId());
         Page<SupplierContactVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
         setSupplierNames(result.getRecords());
         return TableDataInfo.build(result);
@@ -185,6 +186,7 @@ public class SupplierContactServiceImpl  extends ServiceImpl<SupplierContactMapp
         long l = Long.parseLong(maxUserNo) + 1;
         add.setUserNo(String.valueOf(l));
         add.setUserId(userId);
+        add.setPassword(ObjectUtil.isNotEmpty(bo.getPassword()) ? bo.getPassword() : "123456");
         boolean flag = baseMapper.insert(add) > 0;
         return flag;
     }

+ 115 - 12
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/SupplierInfoServiceImpl.java

@@ -1,6 +1,7 @@
 package org.dromara.customer.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -25,10 +26,9 @@ import org.dromara.customer.domain.vo.EnterpriseScaleVo;
 import org.dromara.customer.domain.vo.SupplierBusinessInfoVo;
 import org.dromara.customer.domain.vo.SupplierInformationVo;
 import org.dromara.customer.enums.SupplierStatusEnum;
+import org.dromara.customer.mapper.SupplierAuthorizeMapper;
 import org.dromara.customer.mapper.SupplierBusinessInfoMapper;
-import org.dromara.customer.service.IEnterpriseScaleService;
-import org.dromara.customer.service.ISupplierProcurementService;
-import org.dromara.customer.service.ISupplyAreaService;
+import org.dromara.customer.service.*;
 import org.dromara.product.api.RemoteCategoryService;
 import org.dromara.product.api.RemoteProductService;
 import org.dromara.product.api.domain.RemoteProductBrand;
@@ -41,7 +41,6 @@ import org.dromara.customer.domain.bo.SupplierInfoBo;
 import org.dromara.customer.domain.vo.SupplierInfoVo;
 import org.dromara.customer.domain.SupplierInfo;
 import org.dromara.customer.mapper.SupplierInfoMapper;
-import org.dromara.customer.service.ISupplierInfoService;
 import org.springframework.util.CollectionUtils;
 
 import java.util.*;
@@ -68,6 +67,8 @@ public class SupplierInfoServiceImpl  extends ServiceImpl<SupplierInfoMapper, Su
 
     private final SupplierBusinessInfoMapper supplierBusinessInfoMapper;
 
+    private final CommonSupplierAuthorizeService commonSupplierAuthorizeMapper;
+
     @DubboReference
     private final RemoteComStaffService remoteComStaffService;
 
@@ -246,17 +247,50 @@ public class SupplierInfoServiceImpl  extends ServiceImpl<SupplierInfoMapper, Su
 
     @Override
     public TableDataInfo<SupplierInfoVo> getSupplierInformation(SupplierInfoBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<SupplierInfo> lqw = new LambdaQueryWrapper<>();
         // 1. 基础分页查询
         if (bo.getSupplyStatus() == null){
             //正式供应商
-            bo.setSupplyStatus(1L);
+            lqw.eq(SupplierInfo::getSupplyStatus, 1L);
+        }else {
+            lqw.eq(SupplierInfo::getSupplyStatus,bo.getSupplyStatus());
         }
+
+
+
         // 2. 添加品牌条件
-        if (bo.getOperatingBrand()!= null){
+        if (bo.getOperatingBrand()!= null && StringUtils.isNotBlank(bo.getOperatingBrand())){
+            if (StringUtils.isNotBlank(bo.getOperatingBrand())){
+                Long productBrandIdByName = remoteProductService.getProductBrandIdByName(bo.getOperatingBrand());
+                if (productBrandIdByName != null){
+                    lqw.like(SupplierInfo::getOperatingBrand, productBrandIdByName);
+                }
+            }
+        }
+        //3.可供货区域省和市 - 添加供应区域过滤
+        if (StringUtils.isNotBlank(bo.getProvince()) || StringUtils.isNotBlank(bo.getCity())) {
+            // 查询符合条件的供应商ID列表
+            List<Long> supplierIds = supplyAreaService.getSupplierIdsByArea(bo.getProvince(), bo.getCity());
+            if (supplierIds != null && !supplierIds.isEmpty()) {
+                lqw.in(SupplierInfo::getId, supplierIds);
 
+            } else {
+                lqw.in(SupplierInfo::getId, -1L);
 
+            }
         }
-        LambdaQueryWrapper<SupplierInfo> lqw = buildQueryWrapper(bo);
+
+        //产品经理和采购人员
+        if (bo.getProductManager() != null || bo.getBuyer() != null) {
+            // 查询符合条件的供应商ID列表
+            List<Long> supplierIds = supplierProcurementService.getSupplierIdsByProcurement(bo.getProductManager(), bo.getBuyer());
+            if (supplierIds != null && !supplierIds.isEmpty()) {
+                lqw.in(SupplierInfo::getId, supplierIds);
+            } else {
+                lqw.in(SupplierInfo::getId, -1L);
+            }
+        }
+
         Page<SupplierInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
         List<SupplierInfoVo> supplierVos = result.getRecords();
 
@@ -271,16 +305,53 @@ public class SupplierInfoServiceImpl  extends ServiceImpl<SupplierInfoMapper, Su
         // 3. 封装分页结果
         Page<SupplierInfoVo> newPage = copyPageResult(result, supplierVos);
         return TableDataInfo.build(newPage);
+
     }
 
     @Override
     public TableDataInfo<SupplierInfoVo> getSupplierApproveInformation(SupplierInfoBo bo, PageQuery pageQuery) {
         // 1. 构建审批状态条件
-        LambdaQueryWrapper<SupplierInfo> lqw = buildQueryWrapper(bo);
+        LambdaQueryWrapper<SupplierInfo> lqw = new LambdaQueryWrapper<>();
         if (bo.getSupplyStatus() == null) {
             List<Long> status = Arrays.asList(0L, 4L);
             lqw.in(SupplierInfo::getSupplyStatus, status);
+        }else {
+            lqw.eq(SupplierInfo::getSupplyStatus,bo.getSupplyStatus());
+        }
+
+        // 2.添加品牌条件
+        if (bo.getOperatingBrand()!= null && StringUtils.isNotBlank(bo.getOperatingBrand())){
+            if (StringUtils.isNotBlank(bo.getOperatingBrand())){
+                Long productBrandIdByName = remoteProductService.getProductBrandIdByName(bo.getOperatingBrand());
+                if (productBrandIdByName != null){
+                    lqw.like(SupplierInfo::getOperatingBrand, productBrandIdByName);
+                }
+            }
         }
+        //3.可供货区域省和市 - 添加供应区域过滤
+        if (StringUtils.isNotBlank(bo.getProvince()) || StringUtils.isNotBlank(bo.getCity())) {
+            // 查询符合条件的供应商ID列表
+            List<Long> supplierIds = supplyAreaService.getSupplierIdsByArea(bo.getProvince(), bo.getCity());
+            if (supplierIds != null && !supplierIds.isEmpty()) {
+                lqw.in(SupplierInfo::getId, supplierIds);
+
+            } else {
+                lqw.in(SupplierInfo::getId, -1L);
+
+            }
+        }
+
+        //产品经理和采购人员
+        if (bo.getProductManager() != null || bo.getBuyer() != null) {
+            // 查询符合条件的供应商ID列表
+            List<Long> supplierIds = supplierProcurementService.getSupplierIdsByProcurement(bo.getProductManager(), bo.getBuyer());
+            if (supplierIds != null && !supplierIds.isEmpty()) {
+                lqw.in(SupplierInfo::getId, supplierIds);
+            } else {
+                lqw.in(SupplierInfo::getId, -1L);
+            }
+        }
+
 
         // 2. 基础分页查询
         Page<SupplierInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
@@ -302,8 +373,40 @@ public class SupplierInfoServiceImpl  extends ServiceImpl<SupplierInfoMapper, Su
         // 1. 构建产能列表查询条件
         LambdaQueryWrapper<SupplierInfo> lqw = new LambdaQueryWrapper<>();
         lqw.eq(StringUtils.isNotBlank(bo.getSupplierNo()), SupplierInfo::getSupplierNo, bo.getSupplierNo());
-        lqw.eq(StringUtils.isNotBlank(bo.getSupplierName()), SupplierInfo::getSupplierName, bo.getSupplierName());
-        lqw.like(StringUtils.isNotBlank(bo.getSupplyBrand()), SupplierInfo::getOperatingBrand, bo.getSupplyBrand());
+        lqw.eq(StringUtils.isNotBlank(bo.getSupplierName()), SupplierInfo::getEnterpriseName, bo.getSupplierName());
+
+        //可供应品牌
+        if (StringUtils.isNotBlank(bo.getSupplyBrand())){
+            Long productBrandIdByName = remoteProductService.getProductBrandIdByName(bo.getSupplyBrand());
+            if (productBrandIdByName != null){
+                lqw.like(SupplierInfo::getOperatingBrand, productBrandIdByName);
+            }
+        }
+        //可供货区域省和市 - 添加供应区域过滤
+        if (StringUtils.isNotBlank(bo.getProvince()) || StringUtils.isNotBlank(bo.getCity())) {
+            // 查询符合条件的供应商ID列表
+            List<Long> supplierIds = supplyAreaService.getSupplierIdsByArea(bo.getProvince(), bo.getCity());
+            if (supplierIds != null &&!supplierIds.isEmpty()) {
+                lqw.in(SupplierInfo::getId, supplierIds);
+
+            }else {
+                lqw.in(SupplierInfo::getId, -1L);
+
+            }
+        }
+
+        // 新增:根据品牌名称过滤(从SupplierAuthorize表)
+        if (StringUtils.isNotBlank(bo.getBrandName())) {
+            // 通过SupplierAuthorizeService查询符合条件的供应商ID
+            List<Long> supplierIdsByBrand = commonSupplierAuthorizeMapper.getSupplierIdsByBrandName(bo.getBrandName());
+            if (supplierIdsByBrand!=null &&!supplierIdsByBrand.isEmpty()) {
+                lqw.in(SupplierInfo::getId, supplierIdsByBrand);
+            }else {
+                lqw.in(SupplierInfo::getId, -1L);
+
+            }
+        }
+
         lqw.orderByDesc(SupplierInfo::getSupplierNo);
 
         // 2. 基础分页查询
@@ -1336,8 +1439,8 @@ public class SupplierInfoServiceImpl  extends ServiceImpl<SupplierInfoMapper, Su
         lqw.like(StringUtils.isNotBlank(bo.getSupplierName()), SupplierInfo::getSupplierName, bo.getSupplierName());
         lqw.eq(StringUtils.isNotBlank(bo.getSupplierPhone()), SupplierInfo::getSupplierPhone, bo.getSupplierPhone());
         lqw.eq(StringUtils.isNotBlank(bo.getSupplierPassword()), SupplierInfo::getSupplierPassword, bo.getSupplierPassword());
-        lqw.eq(StringUtils.isNotBlank(bo.getOperatingCategory()), SupplierInfo::getOperatingCategory, bo.getOperatingCategory());
-        lqw.eq(StringUtils.isNotBlank(bo.getOperatingBrand()), SupplierInfo::getOperatingBrand, bo.getOperatingBrand());
+        lqw.like(StringUtils.isNotBlank(bo.getOperatingCategory()), SupplierInfo::getOperatingCategory, bo.getOperatingCategory());
+        lqw.like(StringUtils.isNotBlank(bo.getOperatingBrand()), SupplierInfo::getOperatingBrand, bo.getOperatingBrand());
         lqw.eq(StringUtils.isNotBlank(bo.getOtherCustomers()), SupplierInfo::getOtherCustomers, bo.getOtherCustomers());
         lqw.like(StringUtils.isNotBlank(bo.getShortName()), SupplierInfo::getShortName, bo.getShortName());
         lqw.eq(ObjectUtil.isNotEmpty(bo.getIndustrCategory()), SupplierInfo::getIndustrCategory, bo.getIndustrCategory());

+ 29 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/SupplierProcurementServiceImpl.java

@@ -19,6 +19,7 @@ import org.dromara.customer.mapper.SupplierProcurementMapper;
 import org.dromara.customer.service.ISupplierProcurementService;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 供应商采购结算配置Service业务层处理
@@ -151,4 +152,32 @@ public class SupplierProcurementServiceImpl  extends ServiceImpl<SupplierProcure
         ids.put("purchaser",supplierProcurement.getPurchaser());
         return ids;
     }
+
+    /**
+     * 根据产品经理或采购员查询符合条件的供应商ID列表
+     *
+     * @param productManager 产品经理ID
+     * @param buyer 采购员ID
+     * @return 供应商ID列表
+     */
+    public List<Long> getSupplierIdsByProcurement(Long productManager, Long buyer) {
+        LambdaQueryWrapper<SupplierProcurement> procurementWrapper = new LambdaQueryWrapper<>();
+
+        // 构建查询条件:产品经理ID或采购员ID匹配
+        if (productManager != null) {
+            procurementWrapper.or(wrapper -> wrapper.eq(SupplierProcurement::getProductManager, productManager));
+        }
+        if (buyer != null) {
+            procurementWrapper.or(wrapper -> wrapper.eq(SupplierProcurement::getPurchaser, buyer));
+        }
+
+        // 查询符合条件的采购信息
+        List<SupplierProcurement> procurementList = baseMapper.selectList(procurementWrapper);
+
+        // 提取供应商ID并去重
+        return procurementList.stream()
+            .map(SupplierProcurement::getSupplierId)
+            .distinct()
+            .collect(Collectors.toList());
+    }
 }

+ 41 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/SupplyAreaServiceImpl.java

@@ -91,6 +91,47 @@ public class SupplyAreaServiceImpl  extends ServiceImpl<SupplyAreaMapper, Supply
         return provinceList;
     }
 
+    /**
+     * 根据省市信息查询符合条件的供应商ID列表
+     *
+     * @param province 省份
+     * @param city 城市
+     * @return 供应商ID列表
+     */
+    public List<Long> getSupplierIdsByArea(String province, String city) {
+        LambdaQueryWrapper<SupplyArea> areaQueryWrapper = new LambdaQueryWrapper<>();
+
+        // 如果同时提供省和市,则需要同时匹配
+        if (StringUtils.isNotBlank(province) && StringUtils.isNotBlank(city)) {
+            areaQueryWrapper.and(wrapper -> wrapper
+                .and(provinceWrapper -> provinceWrapper
+                    .eq(SupplyArea::getLevel, "1") // 省级
+                    .eq(SupplyArea::getAreaName, province))
+                .or(cityWrapper -> cityWrapper
+                    .eq(SupplyArea::getLevel, "2") // 市级
+                    .eq(SupplyArea::getAreaName, city)));
+        }
+        // 只提供省份
+        else if (StringUtils.isNotBlank(province)) {
+            areaQueryWrapper.eq(SupplyArea::getLevel, "1") // 省级
+                .eq(SupplyArea::getAreaName, province);
+        }
+        // 只提供城市
+        else if (StringUtils.isNotBlank(city)) {
+            areaQueryWrapper.eq(SupplyArea::getLevel, "2") // 市级
+                .eq(SupplyArea::getAreaName, city);
+        }
+
+        // 查询符合条件的供应区域
+        List<SupplyArea> supplyAreas = baseMapper.selectList(areaQueryWrapper);
+
+        // 提取供应商ID并去重
+        return supplyAreas.stream()
+            .map(SupplyArea::getSupplierId)
+            .distinct()
+            .collect(Collectors.toList());
+    }
+
     /**
      * 分页查询供应区域列表
      *

+ 7 - 0
ruoyi-modules/ruoyi-customer/src/main/resources/mapper/customer/QualificationFileMapper.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.dromara.customer.mapper.QualificationFileMapper">
+
+</mapper>

+ 8 - 0
ruoyi-modules/ruoyi-product/src/main/java/org/dromara/product/dubbo/RemoteProductServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboService;
@@ -139,6 +140,13 @@ public class RemoteProductServiceImpl implements RemoteProductService {
         return remoteProductBrands;
     }
 
+    @Override
+    public Long getProductBrandIdByName(String name) {
+        LambdaQueryWrapper<ProductBrand> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ProductBrand::getBrandName, name)
+            .last("limit 1");
+        return productBrandService.getOne(queryWrapper).getId();
+    }
 
 
     @Override