feat(crm): 添加合同号字段并优化发货单联查

- 在CrmOrder实体类中新增contractCode字段用于存储合同号
- 在CrmOrderBo业务对象中添加contractCode字段支持
- 在CrmOrderMapper中增加按合同号查询的方法
- 更新CrmOrderMapper.xml映射文件以支持合同号字段映射
- 实现CrmOrderServiceImpl中合同号条件查询功能
- 在CrmOrderVo视图对象中添加合同号字段并支持Excel导出
- 为WmsDeliveryWaybill添加关联订单ID字段建立与CRM订单关联
- 在WMS模块中实现发货单与CRM订单的关联查询功能
- 重构WmsDeliveryWaybillServiceImpl中的查询方法以支持多表关联查询
- 完善WMS发货单查询界面以支持按关联订单筛选功能
This commit is contained in:
2026-02-03 11:26:10 +08:00
parent 733432adc8
commit 7b75548da0
12 changed files with 198 additions and 4 deletions

View File

@@ -38,6 +38,12 @@ public class WmsDeliveryWaybill extends BaseEntity {
* 关联发货计划ID
*/
private Long planId;
/**
* 关联订单ID关联crm_order.order_id
*/
private Long orderId;
/**
* 车牌(支持新能源车牌)
*/

View File

@@ -41,6 +41,11 @@ public class WmsDeliveryWaybillBo extends BaseEntity {
*/
private Long planId;
/**
* 关联订单ID关联crm_order.order_id
*/
private Long orderId;
/**
* 车牌(支持新能源车牌)
*/

View File

@@ -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;
/**
* 车牌(支持新能源车牌)
*/

View File

@@ -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<WmsDeliveryWaybillMapper, WmsDeliveryWaybill, WmsDeliveryWaybillVo> {
Page<WmsDeliveryWaybillVo> selectVoPagePlus(Page<Object> build,@Param("ew") QueryWrapper<WmsDeliveryWaybill> lqw);
List<WmsDeliveryWaybillVo> selectVoListPlus(@Param("ew") QueryWrapper<WmsDeliveryWaybill> lqw);
}

View File

@@ -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<WmsDeliveryWaybillVo> queryPageList(WmsDeliveryWaybillBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsDeliveryWaybill> lqw = buildQueryWrapper(bo);
Page<WmsDeliveryWaybillVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
QueryWrapper<WmsDeliveryWaybill> lqw = buildQueryWrapperPlus(bo);
Page<WmsDeliveryWaybillVo> result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@@ -59,8 +60,29 @@ public class WmsDeliveryWaybillServiceImpl implements IWmsDeliveryWaybillService
*/
@Override
public List<WmsDeliveryWaybillVo> queryList(WmsDeliveryWaybillBo bo) {
LambdaQueryWrapper<WmsDeliveryWaybill> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<WmsDeliveryWaybill> lqw = buildQueryWrapperPlus(bo);
return baseMapper.selectVoListPlus(lqw);
}
private com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<WmsDeliveryWaybill> buildQueryWrapperPlus(WmsDeliveryWaybillBo bo) {
Map<String, Object> params = bo.getParams();
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<WmsDeliveryWaybill> 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<WmsDeliveryWaybill> 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;
}