From 6c62fc75071068b911daab12e461ad3333bf1de4 Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Thu, 6 Nov 2025 10:58:57 +0800 Subject: [PATCH] =?UTF-8?q?refactor(crm):=20=E8=B0=83=E6=95=B4=E6=8A=A5?= =?UTF-8?q?=E4=BB=B7=E4=BF=A1=E6=81=AF=E4=B8=AD=E7=9A=84=E4=BE=9B=E8=B4=A7?= =?UTF-8?q?=E6=96=B9=E5=85=B3=E8=81=94=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改查询逻辑,从CrmSupplierInfo获取供应商信息替代原联系人方式 - 将供货方联系人ID字段注释更新为供货方ID - 移除供货方联系人真实名称字段,新增供应商名称字段 - 优化CrmSupplierInfoServiceImpl分页查询方法调用自定义SQL --- .../dromara/oa/crm/domain/CrmQuoteInfo.java | 10 +++++--- .../oa/crm/domain/bo/CrmQuoteInfoBo.java | 2 +- .../oa/crm/domain/vo/CrmQuoteInfoVo.java | 12 ++++++---- .../service/impl/CrmQuoteInfoServiceImpl.java | 23 +++++++++++-------- .../impl/CrmSupplierInfoServiceImpl.java | 6 ++--- 5 files changed, 32 insertions(+), 21 deletions(-) diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/CrmQuoteInfo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/CrmQuoteInfo.java index b8d5e983..05ddfff4 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/CrmQuoteInfo.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/CrmQuoteInfo.java @@ -156,7 +156,7 @@ public class CrmQuoteInfo extends TenantEntity { private String customerContactEmail; /** - * 供货方联系人ID + * 供货方ID */ private Long supplierContactId; @@ -221,9 +221,13 @@ public class CrmQuoteInfo extends TenantEntity { /** * 供货方联系人真实名称(从 CrmCustomerContact 关联得到,不落库) */ +/* @TableField(exist = false) + private String supplierContactRealName;*/ + /** + * 供应商名称 + */ @TableField(exist = false) - private String supplierContactRealName; - + private String supplierName; /** * 报价单子表-物料明细 diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/bo/CrmQuoteInfoBo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/bo/CrmQuoteInfoBo.java index 2990d802..70e0f13c 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/bo/CrmQuoteInfoBo.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/bo/CrmQuoteInfoBo.java @@ -155,7 +155,7 @@ public class CrmQuoteInfoBo extends BaseEntity { private String customerContactEmail; /** - * 供货方联系人ID + * 供货方ID */ private Long supplierContactId; diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/vo/CrmQuoteInfoVo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/vo/CrmQuoteInfoVo.java index fefe3fd9..5d7d0aeb 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/vo/CrmQuoteInfoVo.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/vo/CrmQuoteInfoVo.java @@ -195,9 +195,9 @@ public class CrmQuoteInfoVo implements Serializable { private String customerContactEmail; /** - * 供货方联系人ID + * 供货方ID */ - @ExcelProperty(value = "供货方联系人ID") + @ExcelProperty(value = "供货方ID") private Long supplierContactId; /** @@ -261,8 +261,12 @@ public class CrmQuoteInfoVo implements Serializable { private String customerContactRealName; /** 派生:供货方联系人真实名称(CrmCustomerContact) */ - @ExcelProperty(value = "供货方联系人(实时)") - private String supplierContactRealName; +/* @ExcelProperty(value = "供货方联系人(实时)") + private String supplierContactRealName;*/ + /** + * 供应商名称 + */ + private String supplierName; /** diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmQuoteInfoServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmQuoteInfoServiceImpl.java index 8ad536e4..b7b79b11 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmQuoteInfoServiceImpl.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmQuoteInfoServiceImpl.java @@ -9,12 +9,10 @@ import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.oa.crm.domain.CrmCustomerContact; -import org.dromara.oa.crm.domain.CrmCustomerInfo; -import org.dromara.oa.crm.domain.CrmQuoteInfo; -import org.dromara.oa.crm.domain.CrmQuoteMaterial; +import org.dromara.oa.crm.domain.*; import org.dromara.oa.crm.domain.bo.CrmQuoteInfoBo; import org.dromara.oa.crm.domain.bo.CrmQuoteMaterialBo; +import org.dromara.oa.crm.domain.bo.CrmSupplierInfoBo; import org.dromara.oa.crm.domain.vo.CrmCustomerContactVo; import org.dromara.oa.crm.domain.vo.CrmQuoteInfoVo; import org.dromara.oa.crm.domain.vo.CrmQuoteMaterialVo; @@ -103,10 +101,14 @@ public class CrmQuoteInfoServiceImpl implements ICrmQuoteInfoService { .selectAs("CustomerContact", CrmCustomerContact::getContactName, CrmQuoteInfo::getCustomerContactRealName) .leftJoin(CrmCustomerContact.class, "CustomerContact", CrmCustomerContact::getContactId, CrmQuoteInfo::getCustomerContactId) +/* // 供货方联系人(CrmCustomerContact,别名:SupplierContact) .selectAs("SupplierContact", CrmCustomerContact::getContactName, CrmQuoteInfo::getSupplierContactRealName) .leftJoin(CrmCustomerContact.class, "SupplierContact", CrmCustomerContact::getContactId, CrmQuoteInfo::getSupplierContactId) - +*/ + //供应商 + .select(CrmSupplierInfo::getSupplierName) + .leftJoin(CrmSupplierInfo.class, CrmSupplierInfo::getSupplierId, CrmQuoteInfo::getSupplierContactId) .eq(StringUtils.isNotBlank(bo.getQuoteCode()), CrmQuoteInfo::getQuoteCode, bo.getQuoteCode()) .like(StringUtils.isNotBlank(bo.getQuoteName()), CrmQuoteInfo::getQuoteName, bo.getQuoteName()) @@ -284,11 +286,14 @@ public class CrmQuoteInfoServiceImpl implements ICrmQuoteInfoService { MPJLambdaWrapper lqw = JoinWrappers.lambda(CrmQuoteInfo.class) .selectAll(CrmQuoteInfo.class) // 别名连接与派生字段选择 - .leftJoin(CrmCustomerContact.class, "CustomerContact", CrmCustomerContact::getContactId, CrmQuoteInfo::getCustomerContactId) - .leftJoin(CrmCustomerContact.class, "SupplierContact", CrmCustomerContact::getContactId, CrmQuoteInfo::getSupplierContactId) - .leftJoin(CrmCustomerInfo.class, "Customer", CrmCustomerInfo::getCustomerId, CrmCustomerContact::getCustomerId) .selectAs("CustomerContact", CrmCustomerContact::getContactName, CrmQuoteInfo::getCustomerContactRealName) - .selectAs("SupplierContact", CrmCustomerContact::getContactName, CrmQuoteInfo::getSupplierContactRealName) + .leftJoin(CrmCustomerContact.class, "CustomerContact", CrmCustomerContact::getContactId, CrmQuoteInfo::getCustomerContactId) +// .leftJoin(CrmCustomerContact.class, "SupplierContact", CrmCustomerContact::getContactId, CrmQuoteInfo::getSupplierContactId) + .leftJoin(CrmCustomerInfo.class, "Customer", CrmCustomerInfo::getCustomerId, CrmCustomerContact::getCustomerId) + //供应商信息 + .select(CrmSupplierInfo::getSupplierName) + .leftJoin(CrmSupplierInfo.class, CrmSupplierInfo::getSupplierId, CrmQuoteInfo::getSupplierContactId) +// .selectAs("SupplierContact", CrmCustomerContact::getContactName, CrmQuoteInfo::getSupplierContactRealName) .eq(CrmQuoteInfo::getQuoteName, base.getQuoteName()) // 使用客户方联系人别名的 customer_id 过滤同一客户 .eq(customerId != null, CrmCustomerContact::getCustomerId, customerId) diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmSupplierInfoServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmSupplierInfoServiceImpl.java index 484b634e..ae902e85 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmSupplierInfoServiceImpl.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmSupplierInfoServiceImpl.java @@ -40,6 +40,7 @@ import java.util.stream.Collectors; public class CrmSupplierInfoServiceImpl implements ICrmSupplierInfoService { private final CrmSupplierInfoMapper baseMapper; + @DubboReference(mock = "true") private RemoteFileService remoteFileService; @@ -66,7 +67,7 @@ public class CrmSupplierInfoServiceImpl implements ICrmSupplierInfoService { @Override public TableDataInfo queryPageList(CrmSupplierInfoBo bo, PageQuery pageQuery) { MPJLambdaWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + Page result = baseMapper.selectCustomCrmSupplierInfoVoList(pageQuery.build(), lqw); fillAttachmentInfo(result.getRecords()); return TableDataInfo.build(result); } @@ -89,9 +90,6 @@ public class CrmSupplierInfoServiceImpl implements ICrmSupplierInfoService { Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(CrmSupplierInfo.class) .selectAll(CrmSupplierInfo.class) -// // 左连接 sys_user 表获取归属人员名称 -// .selectAs(SysUser::getNickName, CrmSupplierInfo::getOwnerName) -// .leftJoin(SysUser.class, SysUser::getUserId, CrmSupplierInfo::getOwnerId) .eq(CrmSupplierInfo::getDelFlag, "0") .like(StringUtils.isNotBlank(bo.getSupplierName()), CrmSupplierInfo::getSupplierName, bo.getSupplierName()) .like(StringUtils.isNotBlank(bo.getMnemonicName()), CrmSupplierInfo::getMnemonicName, bo.getMnemonicName())