From 7b75548da0f6b700496931b38af8f7caf7eac4b7 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Tue, 3 Feb 2026 11:26:10 +0800 Subject: [PATCH] =?UTF-8?q?feat(crm):=20=E6=B7=BB=E5=8A=A0=E5=90=88?= =?UTF-8?q?=E5=90=8C=E5=8F=B7=E5=AD=97=E6=AE=B5=E5=B9=B6=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=8F=91=E8=B4=A7=E5=8D=95=E8=81=94=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在CrmOrder实体类中新增contractCode字段用于存储合同号 - 在CrmOrderBo业务对象中添加contractCode字段支持 - 在CrmOrderMapper中增加按合同号查询的方法 - 更新CrmOrderMapper.xml映射文件以支持合同号字段映射 - 实现CrmOrderServiceImpl中合同号条件查询功能 - 在CrmOrderVo视图对象中添加合同号字段并支持Excel导出 - 为WmsDeliveryWaybill添加关联订单ID字段建立与CRM订单关联 - 在WMS模块中实现发货单与CRM订单的关联查询功能 - 重构WmsDeliveryWaybillServiceImpl中的查询方法以支持多表关联查询 - 完善WMS发货单查询界面以支持按关联订单筛选功能 --- .../java/com/klp/crm/domain/CrmOrder.java | 6 ++ .../com/klp/crm/domain/bo/CrmOrderBo.java | 5 ++ .../com/klp/crm/domain/vo/CrmOrderVo.java | 6 ++ .../com/klp/crm/mapper/CrmOrderMapper.java | 2 + .../crm/service/impl/CrmOrderServiceImpl.java | 2 + .../main/resources/mapper/CrmOrderMapper.xml | 33 ++++++++ .../com/klp/domain/WmsDeliveryWaybill.java | 6 ++ .../klp/domain/bo/WmsDeliveryWaybillBo.java | 5 ++ .../klp/domain/vo/WmsDeliveryWaybillVo.java | 15 ++++ .../klp/mapper/WmsDeliveryWaybillMapper.java | 8 ++ .../impl/WmsDeliveryWaybillServiceImpl.java | 31 ++++++- .../mapper/klp/WmsDeliveryWaybillMapper.xml | 83 +++++++++++++++++++ 12 files changed, 198 insertions(+), 4 deletions(-) diff --git a/klp-crm/src/main/java/com/klp/crm/domain/CrmOrder.java b/klp-crm/src/main/java/com/klp/crm/domain/CrmOrder.java index e138d56d..230acebf 100644 --- a/klp-crm/src/main/java/com/klp/crm/domain/CrmOrder.java +++ b/klp-crm/src/main/java/com/klp/crm/domain/CrmOrder.java @@ -79,6 +79,12 @@ public class CrmOrder extends BaseEntity { * 备注 */ private String remark; + + /** + * 合同号 + */ + private String contractCode; + /** * 删除标识 0正常 2删除 */ 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 42e58d91..4a92bf88 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 @@ -90,5 +90,10 @@ public class CrmOrderBo extends BaseEntity { */ private String remark; + /** + * 合同号 + */ + private String contractCode; + } diff --git a/klp-crm/src/main/java/com/klp/crm/domain/vo/CrmOrderVo.java b/klp-crm/src/main/java/com/klp/crm/domain/vo/CrmOrderVo.java index e56ea33e..86e22111 100644 --- a/klp-crm/src/main/java/com/klp/crm/domain/vo/CrmOrderVo.java +++ b/klp-crm/src/main/java/com/klp/crm/domain/vo/CrmOrderVo.java @@ -108,6 +108,12 @@ public class CrmOrderVo extends BaseEntity { @ExcelProperty(value = "备注") private String remark; + /** + * 合同号 + */ + @ExcelProperty(value = "合同号") + private String contractCode; + // @ExcelProperty(value = "客户编号") private String customerCode; diff --git a/klp-crm/src/main/java/com/klp/crm/mapper/CrmOrderMapper.java b/klp-crm/src/main/java/com/klp/crm/mapper/CrmOrderMapper.java index e6a60d44..55c54d89 100644 --- a/klp-crm/src/main/java/com/klp/crm/mapper/CrmOrderMapper.java +++ b/klp-crm/src/main/java/com/klp/crm/mapper/CrmOrderMapper.java @@ -16,4 +16,6 @@ import org.apache.ibatis.annotations.Param; public interface CrmOrderMapper extends BaseMapperPlus { Page selectVoPagePlus(Page build,@Param("ew") QueryWrapper lqw); + + CrmOrderVo selectVoById(@Param("orderId") String orderId); } 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 bb394e28..c092ce81 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 @@ -94,6 +94,7 @@ public class CrmOrderServiceImpl implements ICrmOrderService { qw.eq(bo.getOrderStatus() != null, "co.order_status", bo.getOrderStatus()); qw.eq(bo.getFinanceStatus() != null, "co.finance_status", bo.getFinanceStatus()); qw.eq(bo.getUnpaidAmount() != null, "co.unpaid_amount", bo.getUnpaidAmount()); + qw.like(StringUtils.isNotBlank(bo.getContractCode()), "co.contract_code", bo.getContractCode()); //逻辑删除 qw.eq("co.del_flag", 0); //根据orderType排序预订单是0 正是订单是1 0排在前面 1排在后面 升序 @@ -126,6 +127,7 @@ public class CrmOrderServiceImpl implements ICrmOrderService { lqw.eq(bo.getOrderStatus() != null, CrmOrder::getOrderStatus, bo.getOrderStatus()); lqw.eq(bo.getFinanceStatus() != null, CrmOrder::getFinanceStatus, bo.getFinanceStatus()); lqw.eq(bo.getUnpaidAmount() != null, CrmOrder::getUnpaidAmount, bo.getUnpaidAmount()); + lqw.like(StringUtils.isNotBlank(bo.getContractCode()), CrmOrder::getContractCode, bo.getContractCode()); return lqw; } diff --git a/klp-crm/src/main/resources/mapper/CrmOrderMapper.xml b/klp-crm/src/main/resources/mapper/CrmOrderMapper.xml index d8421338..3d89ce6d 100644 --- a/klp-crm/src/main/resources/mapper/CrmOrderMapper.xml +++ b/klp-crm/src/main/resources/mapper/CrmOrderMapper.xml @@ -19,6 +19,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -41,6 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" co.finance_status AS financeStatus, co.unpaid_amount AS unpaidAmount, co.remark, + co.contract_code AS contractCode, co.create_by AS createBy, co.create_time AS createTime, co.update_by AS updateBy, @@ -56,4 +58,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + diff --git a/klp-wms/src/main/java/com/klp/domain/WmsDeliveryWaybill.java b/klp-wms/src/main/java/com/klp/domain/WmsDeliveryWaybill.java index 8268c5a0..848f9256 100644 --- a/klp-wms/src/main/java/com/klp/domain/WmsDeliveryWaybill.java +++ b/klp-wms/src/main/java/com/klp/domain/WmsDeliveryWaybill.java @@ -38,6 +38,12 @@ public class WmsDeliveryWaybill extends BaseEntity { * 关联发货计划ID */ private Long planId; + + /** + * 关联订单ID(关联crm_order.order_id) + */ + private Long orderId; + /** * 车牌(支持新能源车牌) */ diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsDeliveryWaybillBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsDeliveryWaybillBo.java index 1b9c9d0e..22011187 100644 --- a/klp-wms/src/main/java/com/klp/domain/bo/WmsDeliveryWaybillBo.java +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsDeliveryWaybillBo.java @@ -41,6 +41,11 @@ public class WmsDeliveryWaybillBo extends BaseEntity { */ private Long planId; + /** + * 关联订单ID(关联crm_order.order_id) + */ + private Long orderId; + /** * 车牌(支持新能源车牌) */ diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryWaybillVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryWaybillVo.java index 3a3e5e04..6ad0b5f9 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryWaybillVo.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryWaybillVo.java @@ -47,6 +47,21 @@ public class WmsDeliveryWaybillVo extends BaseEntity { @ExcelProperty(value = "关联发货计划ID") private Long planId; + /** + * 关联订单ID(关联crm_order.order_id) + */ + private Long orderId; + + /** + * 订单编号 + */ + private String orderCode; + + /** + * 合同号 + */ + private String contractCode; + /** * 车牌(支持新能源车牌) */ diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsDeliveryWaybillMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsDeliveryWaybillMapper.java index 00f32daa..946d4e25 100644 --- a/klp-wms/src/main/java/com/klp/mapper/WmsDeliveryWaybillMapper.java +++ b/klp-wms/src/main/java/com/klp/mapper/WmsDeliveryWaybillMapper.java @@ -1,8 +1,13 @@ package com.klp.mapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.klp.domain.WmsDeliveryWaybill; import com.klp.domain.vo.WmsDeliveryWaybillVo; import com.klp.common.core.mapper.BaseMapperPlus; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 发货单主Mapper接口 @@ -12,4 +17,7 @@ import com.klp.common.core.mapper.BaseMapperPlus; */ public interface WmsDeliveryWaybillMapper extends BaseMapperPlus { + Page selectVoPagePlus(Page build,@Param("ew") QueryWrapper lqw); + + List selectVoListPlus(@Param("ew") QueryWrapper lqw); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryWaybillServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryWaybillServiceImpl.java index f133c884..26dbcb59 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryWaybillServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryWaybillServiceImpl.java @@ -1,6 +1,7 @@ package com.klp.service.impl; import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; @@ -49,8 +50,8 @@ public class WmsDeliveryWaybillServiceImpl implements IWmsDeliveryWaybillService */ @Override public TableDataInfo queryPageList(WmsDeliveryWaybillBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + QueryWrapper lqw = buildQueryWrapperPlus(bo); + Page result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw); return TableDataInfo.build(result); } @@ -59,8 +60,29 @@ public class WmsDeliveryWaybillServiceImpl implements IWmsDeliveryWaybillService */ @Override public List queryList(WmsDeliveryWaybillBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + com.baomidou.mybatisplus.core.conditions.query.QueryWrapper lqw = buildQueryWrapperPlus(bo); + return baseMapper.selectVoListPlus(lqw); + } + + private com.baomidou.mybatisplus.core.conditions.query.QueryWrapper buildQueryWrapperPlus(WmsDeliveryWaybillBo bo) { + Map params = bo.getParams(); + com.baomidou.mybatisplus.core.conditions.query.QueryWrapper qw = Wrappers.query(); + qw.eq(StringUtils.isNotBlank(bo.getWaybillNo()), "wd.waybill_no", bo.getWaybillNo()); + qw.like(StringUtils.isNotBlank(bo.getWaybillName()), "wd.waybill_name", bo.getWaybillName()); + qw.eq(bo.getPlanId() != null, "wd.plan_id", bo.getPlanId()); + qw.eq(bo.getOrderId() != null, "wd.order_id", bo.getOrderId()); + qw.eq(StringUtils.isNotBlank(bo.getLicensePlate()), "wd.license_plate", bo.getLicensePlate()); + qw.eq(StringUtils.isNotBlank(bo.getConsigneeUnit()), "wd.consignee_unit", bo.getConsigneeUnit()); + qw.eq(StringUtils.isNotBlank(bo.getSenderUnit()), "wd.sender_unit", bo.getSenderUnit()); + qw.eq(bo.getDeliveryTime() != null, "wd.delivery_time", bo.getDeliveryTime()); + qw.eq(StringUtils.isNotBlank(bo.getWeighbridge()), "wd.weighbridge", bo.getWeighbridge()); + qw.eq(StringUtils.isNotBlank(bo.getSalesPerson()), "wd.sales_person", bo.getSalesPerson()); + qw.eq(StringUtils.isNotBlank(bo.getPrincipal()), "wd.principal", bo.getPrincipal()); + qw.eq(StringUtils.isNotBlank(bo.getPrincipalPhone()), "wd.principal_phone", bo.getPrincipalPhone()); + qw.eq(bo.getStatus() != null, "wd.status", bo.getStatus()); + // 逻辑删除 + qw.eq("wd.del_flag", 0); + return qw; } private LambdaQueryWrapper buildQueryWrapper(WmsDeliveryWaybillBo bo) { @@ -78,6 +100,7 @@ public class WmsDeliveryWaybillServiceImpl implements IWmsDeliveryWaybillService lqw.eq(StringUtils.isNotBlank(bo.getPrincipal()), WmsDeliveryWaybill::getPrincipal, bo.getPrincipal()); lqw.eq(StringUtils.isNotBlank(bo.getPrincipalPhone()), WmsDeliveryWaybill::getPrincipalPhone, bo.getPrincipalPhone()); lqw.eq(bo.getStatus() != null, WmsDeliveryWaybill::getStatus, bo.getStatus()); + lqw.eq(bo.getOrderId() != null, WmsDeliveryWaybill::getOrderId, bo.getOrderId()); return lqw; } diff --git a/klp-wms/src/main/resources/mapper/klp/WmsDeliveryWaybillMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsDeliveryWaybillMapper.xml index a7e97e52..6147a756 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsDeliveryWaybillMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsDeliveryWaybillMapper.xml @@ -9,6 +9,7 @@ + @@ -26,5 +27,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +