feat(crm): 添加销售异议管理中的钢卷信息关联功能

- 在 CrmSalesObjection 实体中新增 coilIds 字段用于存储钢卷ID集合
- 在查询接口中集成钢卷信息服务,实现销售异议与钢卷信息的关联查询
- 修改数据库映射文件,添加 coilIds 字段的映射关系
- 扩展查询条件构建逻辑,支持按钢卷ID进行筛选
- 新增 coilList 字段用于返回关联的钢卷信息列表
- 更新 application-prod.yml 中间件配置,修改 sql-server-api 主机地址为 140.143.206.120
This commit is contained in:
2026-05-11 10:05:50 +08:00
parent 856d52d6fc
commit 0a8bf00a64
6 changed files with 61 additions and 3 deletions

View File

@@ -81,6 +81,11 @@ public class CrmSalesObjection extends BaseEntity {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date returnDate;
/**
* 钢卷ID集合多个用逗号分隔
*/
private String coilIds;
/**
* 投诉情况
*/

View File

@@ -100,4 +100,9 @@ public class CrmSalesObjectionBo extends BaseEntity {
*/
private String customerDemand;
/**
* 钢卷ID集合多个用逗号分隔
*/
private String coilIds;
}

View File

@@ -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<com.klp.domain.vo.WmsMaterialCoilVo> coilList;
}

View File

@@ -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<com.klp.domain.vo.WmsMaterialCoilVo> coilList = wmsMaterialCoilService.queryList(coilBo);
vo.setCoilList(coilList);
}
return vo;
}
/**
@@ -46,6 +58,17 @@ public class CrmSalesObjectionServiceImpl implements ICrmSalesObjectionService {
public TableDataInfo<CrmSalesObjectionVo> queryPageList(CrmSalesObjectionBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<CrmSalesObjection> lqw = buildQueryWrapper(bo);
Page<CrmSalesObjectionVo> 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<WmsMaterialCoilVo> coilList = wmsMaterialCoilService.queryList(coilBo);
vo.setCoilList(coilList);
}
}
return TableDataInfo.build(result);
}
@@ -55,7 +78,19 @@ public class CrmSalesObjectionServiceImpl implements ICrmSalesObjectionService {
@Override
public List<CrmSalesObjectionVo> queryList(CrmSalesObjectionBo bo) {
LambdaQueryWrapper<CrmSalesObjection> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
List<CrmSalesObjectionVo> 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<com.klp.domain.vo.WmsMaterialCoilVo> coilList = wmsMaterialCoilService.queryList(coilBo);
vo.setCoilList(coilList);
}
}
return resultList;
}
private LambdaQueryWrapper<CrmSalesObjection> 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;
}

View File

@@ -19,6 +19,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="remark" column="remark"/>
<result property="productCategory" column="product_category"/>
<result property="returnDate" column="return_date"/>
<result property="coilIds" column="coilIds"/>
<result property="complaintContent" column="complaint_content"/>
<result property="customerDemand" column="customer_demand"/>
<result property="createBy" column="create_by"/>