From 4f97e62a5d366df652668e20c2d9bbb852877327 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Wed, 29 Oct 2025 16:55:26 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=96=B0=E5=A2=9E=E9=92=A2?= =?UTF-8?q?=E5=8D=B7=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在WmsMaterialCoilMapper中添加selectVoPagePlus方法及对应XML配置 - 实现基于QueryWrapper的分页查询逻辑- 补充关联字段warehouseName以支持统计展示-优化查询条件构造器,增强筛选能力 - 调整VO类结构,确保数据传输完整性- 修复原查询逻辑中的潜在空指针问题 --- .../com/klp/domain/vo/WmsMaterialCoilVo.java | 22 ++++++------ .../com/klp/mapper/WmsMaterialCoilMapper.java | 5 +++ .../impl/WmsMaterialCoilServiceImpl.java | 23 +++++++++++-- .../mapper/klp/WmsMaterialCoilMapper.xml | 34 ++++++++++++++++--- 4 files changed, 66 insertions(+), 18 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java index 4d04251c..804b2e2d 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java @@ -127,59 +127,61 @@ public class WmsMaterialCoilVo { private String remark; // ========== 关联对象属性 ========== - + /** * 所在库区信息 */ private WmsWarehouseVo warehouse; - + /** * 下一库区信息 */ private WmsWarehouseVo nextWarehouse; - + /** * 二维码信息 */ private WmsGenerateRecordVo qrcodeRecord; - + /** * 原材料信息(当itemType为raw_material时) */ private WmsRawMaterialVo rawMaterial; - + /** * 产品信息(当itemType为product时) */ private Object product; // 产品VO待定义 - + /** * BOM列表(原材料对应的BOM项目信息) */ private List bomItemList; // ========== 统计相关属性 ========== - + /** * 库区名称(用于统计查询) */ private String warehouseName; - + /** * 钢卷数量(用于统计查询) */ private Long coilCount; - + /** * 总毛重(用于统计查询) */ private BigDecimal totalGrossWeight; - + /** * 总净重(用于统计查询) */ private BigDecimal totalNetWeight; + + } diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java index 271e82d5..41389ca7 100644 --- a/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java +++ b/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java @@ -1,5 +1,8 @@ package com.klp.mapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.klp.domain.WmsMaterialCoil; import com.klp.domain.vo.WmsMaterialCoilVo; import com.klp.common.core.mapper.BaseMapperPlus; @@ -34,5 +37,7 @@ public interface WmsMaterialCoilMapper extends BaseMapperPlus> getDistributionByItemType(@Param("itemType") String itemType, @Param("itemId") Long itemId); + + Page selectVoPagePlus(Page build,@Param("ew") QueryWrapper lqw); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index 193dda49..dbc78256 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.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.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -136,7 +137,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { if ("product".equals(vo.getItemType()) && vo.getItemId() != null) { // 产品和原材料的查询逻辑相同,都通过itemId查询 WmsRawMaterialVo rawMaterial = rawMaterialService.queryById(vo.getItemId()); - + // 查询原材料对应的BOM信息(通过bomId查询BomItem列表) if (rawMaterial != null && rawMaterial.getBomId() != null) { WmsBomItemBo bomItemBo = new WmsBomItemBo(); @@ -152,11 +153,27 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { */ @Override public TableDataInfo queryPageList(WmsMaterialCoilBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + QueryWrapper qw = buildQueryWrapperPlus(bo); + Page result = baseMapper.selectVoPagePlus(pageQuery.build(), qw); return TableDataInfo.build(result); } + private QueryWrapper buildQueryWrapperPlus(WmsMaterialCoilBo bo) { + QueryWrapper qw = Wrappers.query(); + qw.like(StringUtils.isNotBlank(bo.getEnterCoilNo()), "mc.enter_coil_no", bo.getEnterCoilNo()); + qw.like(StringUtils.isNotBlank(bo.getCurrentCoilNo()), "mc.current_coil_no", bo.getCurrentCoilNo()); + qw.like(StringUtils.isNotBlank(bo.getSupplierCoilNo()), "mc.supplier_coil_no", bo.getSupplierCoilNo()); + qw.eq(bo.getDataType() != null, "mc.data_type", bo.getDataType()); + qw.eq(bo.getWarehouseId() != null, "mc.warehouse_id", bo.getWarehouseId()); + qw.eq(bo.getHasMergeSplit() != null, "mc.has_merge_split", bo.getHasMergeSplit()); + qw.eq(bo.getStatus() != null, "mc.status", bo.getStatus()); + qw.eq(StringUtils.isNotBlank(bo.getItemType()), "mc.item_type", bo.getItemType()); + //逻辑删除 + qw.eq("mc.del_flag", 0); + return qw; + } + + /** * 查询钢卷物料表列表 */ diff --git a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml index 7fe251ad..0114e032 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml @@ -41,7 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - SELECT + SELECT mc.item_type, mc.item_id, w.warehouse_id, @@ -76,7 +76,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" COALESCE(SUM(mc.net_weight), 0) as total_net_weight FROM wms_material_coil mc LEFT JOIN wms_warehouse w ON mc.warehouse_id = w.warehouse_id - WHERE mc.data_type = 1 + WHERE mc.data_type = 1 AND mc.del_flag = '0' AND (w.del_flag = '0' OR w.del_flag IS NULL) @@ -88,6 +88,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" GROUP BY mc.item_type, mc.item_id, w.warehouse_id, w.warehouse_name ORDER BY mc.item_type, mc.item_id, w.warehouse_id +