From e32739cb09d1d2d7b9a06112571b0e8a435a74c9 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Tue, 7 Apr 2026 11:42:30 +0800 Subject: [PATCH] =?UTF-8?q?feat(crm):=20=E6=B7=BB=E5=8A=A0=E5=85=B3?= =?UTF-8?q?=E9=94=AE=E5=AD=97=E6=90=9C=E7=B4=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 CrmContractBo 中添加 keyword 字段支持合同多字段搜索 - 在 CrmCustomerBo 中添加 keyword 字段支持客户多字段搜索 - 在 CrmOrderBo 中添加 keyword 字段支持订单多字段搜索 - 实现合同服务的关键字搜索逻辑,支持合同名称、编号、供应商、客户等多个字段 - 实现客户服务的关键字搜索逻辑,支持客户代码、公司名称、联系人等多个字段 - 实现订单服务的关键字搜索逻辑,支持订单代码、客户ID、业务员等多个字段 - 添加搜索条件的空值校验避免无效查询 --- .../com/klp/crm/domain/bo/CrmContractBo.java | 5 +++++ .../com/klp/crm/domain/bo/CrmCustomerBo.java | 5 +++++ .../com/klp/crm/domain/bo/CrmOrderBo.java | 5 +++++ .../service/impl/CrmContractServiceImpl.java | 20 +++++++++++++++++++ .../service/impl/CrmCustomerServiceImpl.java | 12 +++++++++++ .../crm/service/impl/CrmOrderServiceImpl.java | 9 +++++++++ 6 files changed, 56 insertions(+) diff --git a/klp-crm/src/main/java/com/klp/crm/domain/bo/CrmContractBo.java b/klp-crm/src/main/java/com/klp/crm/domain/bo/CrmContractBo.java index 69864d86..a236e0bd 100644 --- a/klp-crm/src/main/java/com/klp/crm/domain/bo/CrmContractBo.java +++ b/klp-crm/src/main/java/com/klp/crm/domain/bo/CrmContractBo.java @@ -152,5 +152,10 @@ public class CrmContractBo extends BaseEntity { */ private String remark; + /** + * 关键字搜索 + */ + private String keyword; + } diff --git a/klp-crm/src/main/java/com/klp/crm/domain/bo/CrmCustomerBo.java b/klp-crm/src/main/java/com/klp/crm/domain/bo/CrmCustomerBo.java index c6b9e179..0d726188 100644 --- a/klp-crm/src/main/java/com/klp/crm/domain/bo/CrmCustomerBo.java +++ b/klp-crm/src/main/java/com/klp/crm/domain/bo/CrmCustomerBo.java @@ -72,5 +72,10 @@ public class CrmCustomerBo extends BaseEntity { */ private String remark; + /** + * 关键字搜索 + */ + private String keyword; + } diff --git a/klp-crm/src/main/java/com/klp/crm/domain/bo/CrmOrderBo.java b/klp-crm/src/main/java/com/klp/crm/domain/bo/CrmOrderBo.java index 4fe75d45..98311cc9 100644 --- a/klp-crm/src/main/java/com/klp/crm/domain/bo/CrmOrderBo.java +++ b/klp-crm/src/main/java/com/klp/crm/domain/bo/CrmOrderBo.java @@ -105,5 +105,10 @@ public class CrmOrderBo extends BaseEntity { */ private String annexFiles; + /** + * 关键字搜索 + */ + private String keyword; + } diff --git a/klp-crm/src/main/java/com/klp/crm/service/impl/CrmContractServiceImpl.java b/klp-crm/src/main/java/com/klp/crm/service/impl/CrmContractServiceImpl.java index 3f2115ef..bb794276 100644 --- a/klp-crm/src/main/java/com/klp/crm/service/impl/CrmContractServiceImpl.java +++ b/klp-crm/src/main/java/com/klp/crm/service/impl/CrmContractServiceImpl.java @@ -61,6 +61,26 @@ public class CrmContractServiceImpl implements ICrmContractService { private LambdaQueryWrapper buildQueryWrapper(CrmContractBo bo) { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + if (StringUtils.isNotBlank(bo.getKeyword())) { + lqw.and(w -> w.like(CrmContract::getContractName, bo.getKeyword()) + .or().like(CrmContract::getContractNo, bo.getKeyword()) + .or().like(CrmContract::getSupplier, bo.getKeyword()) + .or().like(CrmContract::getCustomer, bo.getKeyword()) + .or().like(CrmContract::getSignLocation, bo.getKeyword()) + .or().like(CrmContract::getProductContent, bo.getKeyword()) + .or().like(CrmContract::getContractContent, bo.getKeyword()) + .or().like(CrmContract::getSupplierAddress, bo.getKeyword()) + .or().like(CrmContract::getSupplierPhone, bo.getKeyword()) + .or().like(CrmContract::getSupplierBank, bo.getKeyword()) + .or().like(CrmContract::getSupplierAccount, bo.getKeyword()) + .or().like(CrmContract::getSupplierTaxNo, bo.getKeyword()) + .or().like(CrmContract::getCustomerAddress, bo.getKeyword()) + .or().like(CrmContract::getCustomerPhone, bo.getKeyword()) + .or().like(CrmContract::getCustomerBank, bo.getKeyword()) + .or().like(CrmContract::getCustomerAccount, bo.getKeyword()) + .or().like(CrmContract::getCustomerTaxNo, bo.getKeyword()) + .or().like(CrmContract::getRemark, bo.getKeyword())); + } lqw.like(StringUtils.isNotBlank(bo.getContractName()), CrmContract::getContractName, bo.getContractName()); lqw.eq(StringUtils.isNotBlank(bo.getContractNo()), CrmContract::getContractNo, bo.getContractNo()); lqw.eq(StringUtils.isNotBlank(bo.getSupplier()), CrmContract::getSupplier, bo.getSupplier()); diff --git a/klp-crm/src/main/java/com/klp/crm/service/impl/CrmCustomerServiceImpl.java b/klp-crm/src/main/java/com/klp/crm/service/impl/CrmCustomerServiceImpl.java index 28bbb98f..8218fa94 100644 --- a/klp-crm/src/main/java/com/klp/crm/service/impl/CrmCustomerServiceImpl.java +++ b/klp-crm/src/main/java/com/klp/crm/service/impl/CrmCustomerServiceImpl.java @@ -61,6 +61,18 @@ public class CrmCustomerServiceImpl implements ICrmCustomerService { private LambdaQueryWrapper buildQueryWrapper(CrmCustomerBo bo) { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + if (StringUtils.isNotBlank(bo.getKeyword())) { + lqw.and(w -> w.like(CrmCustomer::getCustomerCode, bo.getKeyword()) + .or().like(CrmCustomer::getCompanyName, bo.getKeyword()) + .or().like(CrmCustomer::getContactPerson, bo.getKeyword()) + .or().like(CrmCustomer::getContactWay, bo.getKeyword()) + .or().like(CrmCustomer::getIndustry, bo.getKeyword()) + .or().like(CrmCustomer::getCustomerLevel, bo.getKeyword()) + .or().like(CrmCustomer::getAddress, bo.getKeyword()) + .or().like(CrmCustomer::getBankInfo, bo.getKeyword()) + .or().like(CrmCustomer::getTaxNumber, bo.getKeyword()) + .or().like(CrmCustomer::getRemark, bo.getKeyword())); + } lqw.eq(StringUtils.isNotBlank(bo.getCustomerCode()), CrmCustomer::getCustomerCode, bo.getCustomerCode()); lqw.like(StringUtils.isNotBlank(bo.getCompanyName()), CrmCustomer::getCompanyName, bo.getCompanyName()); lqw.like(StringUtils.isNotBlank(bo.getContactPerson()), CrmCustomer::getContactPerson, bo.getContactPerson()); diff --git a/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderServiceImpl.java b/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderServiceImpl.java index 85bd8186..f3544b77 100644 --- a/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderServiceImpl.java +++ b/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderServiceImpl.java @@ -82,6 +82,15 @@ public class CrmOrderServiceImpl implements ICrmOrderService { private QueryWrapper buildQueryWrapperPlus(CrmOrderBo bo) { Map params = bo.getParams(); QueryWrapper qw = Wrappers.query(); + if (StringUtils.isNotBlank(bo.getKeyword())) { + qw.and(w -> w.like("co.order_code", bo.getKeyword()) + .or().like("co.customer_id", bo.getKeyword()) + .or().like("co.salesman", bo.getKeyword()) + .or().like("co.audit_user", bo.getKeyword()) + .or().like("co.contract_code", bo.getKeyword()) + .or().like("co.annex_files", bo.getKeyword()) + .or().like("co.remark", bo.getKeyword())); + } qw.eq(StringUtils.isNotBlank(bo.getOrderCode()), "co.order_code", bo.getOrderCode()); qw.eq(bo.getOrderType() != null, "co.order_type", bo.getOrderType()); qw.eq(StringUtils.isNotBlank(bo.getCustomerId()), "co.customer_id", bo.getCustomerId());