From 0a8bf00a642e0c65be7e3d5b33b2ce8849e0a411 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Mon, 11 May 2026 10:05:50 +0800 Subject: [PATCH] =?UTF-8?q?feat(crm):=20=E6=B7=BB=E5=8A=A0=E9=94=80?= =?UTF-8?q?=E5=94=AE=E5=BC=82=E8=AE=AE=E7=AE=A1=E7=90=86=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E9=92=A2=E5=8D=B7=E4=BF=A1=E6=81=AF=E5=85=B3=E8=81=94=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 CrmSalesObjection 实体中新增 coilIds 字段用于存储钢卷ID集合 - 在查询接口中集成钢卷信息服务,实现销售异议与钢卷信息的关联查询 - 修改数据库映射文件,添加 coilIds 字段的映射关系 - 扩展查询条件构建逻辑,支持按钢卷ID进行筛选 - 新增 coilList 字段用于返回关联的钢卷信息列表 - 更新 application-prod.yml 中间件配置,修改 sql-server-api 主机地址为 140.143.206.120 --- .../src/main/resources/application-prod.yml | 2 +- .../com/klp/crm/domain/CrmSalesObjection.java | 5 +++ .../crm/domain/bo/CrmSalesObjectionBo.java | 5 +++ .../crm/domain/vo/CrmSalesObjectionVo.java | 11 +++++ .../impl/CrmSalesObjectionServiceImpl.java | 40 ++++++++++++++++++- .../mapper/CrmSalesObjectionMapper.xml | 1 + 6 files changed, 61 insertions(+), 3 deletions(-) diff --git a/klp-admin/src/main/resources/application-prod.yml b/klp-admin/src/main/resources/application-prod.yml index 99661cb6..b7da7e24 100644 --- a/klp-admin/src/main/resources/application-prod.yml +++ b/klp-admin/src/main/resources/application-prod.yml @@ -9,7 +9,7 @@ klp: --- # sql-server-api 中间件配置(生产环境) sql-server-api: - host: 192.168.0.219 + host: 140.143.206.120 port: 15000 base-url: http://${sql-server-api.host}:${sql-server-api.port} diff --git a/klp-crm/src/main/java/com/klp/crm/domain/CrmSalesObjection.java b/klp-crm/src/main/java/com/klp/crm/domain/CrmSalesObjection.java index fd3d2241..77bac31c 100644 --- a/klp-crm/src/main/java/com/klp/crm/domain/CrmSalesObjection.java +++ b/klp-crm/src/main/java/com/klp/crm/domain/CrmSalesObjection.java @@ -81,6 +81,11 @@ public class CrmSalesObjection extends BaseEntity { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date returnDate; + /** + * 钢卷ID集合(多个用逗号分隔) + */ + private String coilIds; + /** * 投诉情况 */ diff --git a/klp-crm/src/main/java/com/klp/crm/domain/bo/CrmSalesObjectionBo.java b/klp-crm/src/main/java/com/klp/crm/domain/bo/CrmSalesObjectionBo.java index 4a6714e6..532fde4d 100644 --- a/klp-crm/src/main/java/com/klp/crm/domain/bo/CrmSalesObjectionBo.java +++ b/klp-crm/src/main/java/com/klp/crm/domain/bo/CrmSalesObjectionBo.java @@ -100,4 +100,9 @@ public class CrmSalesObjectionBo extends BaseEntity { */ private String customerDemand; + /** + * 钢卷ID集合(多个用逗号分隔) + */ + private String coilIds; + } diff --git a/klp-crm/src/main/java/com/klp/crm/domain/vo/CrmSalesObjectionVo.java b/klp-crm/src/main/java/com/klp/crm/domain/vo/CrmSalesObjectionVo.java index 96a08cca..698fa41f 100644 --- a/klp-crm/src/main/java/com/klp/crm/domain/vo/CrmSalesObjectionVo.java +++ b/klp-crm/src/main/java/com/klp/crm/domain/vo/CrmSalesObjectionVo.java @@ -1,6 +1,7 @@ package com.klp.crm.domain.vo; import java.util.Date; +import java.util.List; import com.fasterxml.jackson.annotation.JsonFormat; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; @@ -122,4 +123,14 @@ public class CrmSalesObjectionVo { @ExcelProperty(value = "客户诉求") private String customerDemand; + /** + * 钢卷ID集合(多个用逗号分隔) + */ + private String coilIds; + + /** + * 钢卷信息列表 + */ + private List coilList; + } diff --git a/klp-crm/src/main/java/com/klp/crm/service/impl/CrmSalesObjectionServiceImpl.java b/klp-crm/src/main/java/com/klp/crm/service/impl/CrmSalesObjectionServiceImpl.java index 4cc7de78..7de1a542 100644 --- a/klp-crm/src/main/java/com/klp/crm/service/impl/CrmSalesObjectionServiceImpl.java +++ b/klp-crm/src/main/java/com/klp/crm/service/impl/CrmSalesObjectionServiceImpl.java @@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.klp.common.utils.StringUtils; +import com.klp.domain.bo.WmsMaterialCoilBo; +import com.klp.domain.vo.WmsMaterialCoilVo; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.klp.crm.domain.bo.CrmSalesObjectionBo; @@ -14,10 +16,12 @@ import com.klp.crm.domain.vo.CrmSalesObjectionVo; import com.klp.crm.domain.CrmSalesObjection; import com.klp.crm.mapper.CrmSalesObjectionMapper; import com.klp.crm.service.ICrmSalesObjectionService; +import com.klp.service.IWmsMaterialCoilService; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.ArrayList; /** * 销售异议管理Service业务层处理 @@ -30,13 +34,21 @@ import java.util.Collection; public class CrmSalesObjectionServiceImpl implements ICrmSalesObjectionService { private final CrmSalesObjectionMapper baseMapper; + private final IWmsMaterialCoilService wmsMaterialCoilService; /** * 查询销售异议管理 */ @Override public CrmSalesObjectionVo queryById(String objectionId){ - return baseMapper.selectVoById(objectionId); + CrmSalesObjectionVo vo = baseMapper.selectVoById(objectionId); + if (vo != null && StringUtils.isNotBlank(vo.getCoilIds())) { + com.klp.domain.bo.WmsMaterialCoilBo coilBo = new com.klp.domain.bo.WmsMaterialCoilBo(); + coilBo.setCoilIds(vo.getCoilIds()); + List coilList = wmsMaterialCoilService.queryList(coilBo); + vo.setCoilList(coilList); + } + return vo; } /** @@ -46,6 +58,17 @@ public class CrmSalesObjectionServiceImpl implements ICrmSalesObjectionService { public TableDataInfo queryPageList(CrmSalesObjectionBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + + // 查询钢卷信息并填充到VO中 + for (CrmSalesObjectionVo vo : result.getRecords()) { + if (StringUtils.isNotBlank(vo.getCoilIds())) { + WmsMaterialCoilBo coilBo = new WmsMaterialCoilBo(); + coilBo.setCoilIds(vo.getCoilIds()); + List coilList = wmsMaterialCoilService.queryList(coilBo); + vo.setCoilList(coilList); + } + } + return TableDataInfo.build(result); } @@ -55,7 +78,19 @@ public class CrmSalesObjectionServiceImpl implements ICrmSalesObjectionService { @Override public List queryList(CrmSalesObjectionBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + List resultList = baseMapper.selectVoList(lqw); + + // 查询钢卷信息并填充到VO中 + for (CrmSalesObjectionVo vo : resultList) { + if (StringUtils.isNotBlank(vo.getCoilIds())) { + com.klp.domain.bo.WmsMaterialCoilBo coilBo = new com.klp.domain.bo.WmsMaterialCoilBo(); + coilBo.setCoilIds(vo.getCoilIds()); + List coilList = wmsMaterialCoilService.queryList(coilBo); + vo.setCoilList(coilList); + } + } + + return resultList; } private LambdaQueryWrapper buildQueryWrapper(CrmSalesObjectionBo bo) { @@ -75,6 +110,7 @@ public class CrmSalesObjectionServiceImpl implements ICrmSalesObjectionService { lqw.eq(bo.getReturnDate() != null, CrmSalesObjection::getReturnDate, bo.getReturnDate()); lqw.like(StringUtils.isNotBlank(bo.getComplaintContent()), CrmSalesObjection::getComplaintContent, bo.getComplaintContent()); lqw.like(StringUtils.isNotBlank(bo.getCustomerDemand()), CrmSalesObjection::getCustomerDemand, bo.getCustomerDemand()); + lqw.like(StringUtils.isNotBlank(bo.getCoilIds()), CrmSalesObjection::getCoilIds, bo.getCoilIds()); return lqw; } diff --git a/klp-crm/src/main/resources/mapper/CrmSalesObjectionMapper.xml b/klp-crm/src/main/resources/mapper/CrmSalesObjectionMapper.xml index a330c626..213e5c81 100644 --- a/klp-crm/src/main/resources/mapper/CrmSalesObjectionMapper.xml +++ b/klp-crm/src/main/resources/mapper/CrmSalesObjectionMapper.xml @@ -19,6 +19,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +