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

@@ -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;
}