From ca301a4c1843563084a471a4b27f51f625fa3eda Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Thu, 30 Oct 2025 14:59:46 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=96=B0=E5=A2=9E=E5=8A=A8?= =?UTF-8?q?=E6=80=81=E5=85=B3=E8=81=94=E6=9F=A5=E8=AF=A2=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E9=92=A2=E5=8D=B7=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 WmsMaterialCoilMapper 中新增 selectVoListWithDynamicJoin 方法 - 修改 selectVoPagePlus SQL 查询逻辑,移除冗余字段 - 实现根据物品类型联查原材料或产品信息 - 更新 WmsMaterialCoilServiceImpl 中 queryList 方法调用新接口 - 优化 WmsMaterialCoilVo 字段注释及 Excel 导出配置- 移除部分不必要的 @ExcelProperty 注解 - 新增 itemName 和 itemCode 字段用于显示物品名称和编号- 调整字段注释说明 dataType 数据类型含义- 修复仓库变更判断逻辑中的空指针风险 --- .../com/klp/domain/vo/WmsMaterialCoilVo.java | 14 ++-- .../com/klp/mapper/WmsMaterialCoilMapper.java | 2 + .../impl/WmsMaterialCoilServiceImpl.java | 9 +-- .../mapper/klp/WmsMaterialCoilMapper.xml | 66 ++++++++++++------- 4 files changed, 54 insertions(+), 37 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 804b2e2d..7a755e54 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 @@ -24,7 +24,6 @@ public class WmsMaterialCoilVo { /** * 主键ID */ - @ExcelProperty(value = "主键ID") private Long coilId; /** @@ -53,7 +52,7 @@ public class WmsMaterialCoilVo { private Integer dataType; /** - * 所在库区ID + 所在库区ID 联查当前库区和物品id 复卷好去掉 dataType数据类型是1当前 0就是历史 物品类型row_me 原材料 product产品 */ @ExcelProperty(value = "所在库区ID") private Long warehouseId; @@ -61,13 +60,11 @@ public class WmsMaterialCoilVo { /** * 下一库区ID */ - @ExcelProperty(value = "下一库区ID") private Long nextWarehouseId; /** * 关联二维码ID */ - @ExcelProperty(value = "关联二维码ID") private Long qrcodeRecordId; /** @@ -86,7 +83,6 @@ public class WmsMaterialCoilVo { /** * 父卷号 */ - @ExcelProperty(value = "父卷号") private String parentCoilNos; /** @@ -98,7 +94,6 @@ public class WmsMaterialCoilVo { /** * 物品ID */ - @ExcelProperty(value = "物品ID") private Long itemId; /** @@ -163,6 +158,7 @@ public class WmsMaterialCoilVo { /** * 库区名称(用于统计查询) */ + @ExcelProperty(value = "库区名称") private String warehouseName; /** @@ -180,8 +176,10 @@ public class WmsMaterialCoilVo { */ private BigDecimal totalNetWeight; - - + @ExcelProperty(value = "物品名称") + private String itemName; + @ExcelProperty(value = "物品编号") + private String itemCode; } 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 41389ca7..bdbb4d2e 100644 --- a/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java +++ b/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java @@ -39,5 +39,7 @@ public interface WmsMaterialCoilMapper extends BaseMapperPlus> getDistributionByItemType(@Param("itemType") String itemType, @Param("itemId") Long itemId); Page selectVoPagePlus(Page build,@Param("ew") QueryWrapper lqw); + + List selectVoListWithDynamicJoin(@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 ef33ffbc..193d7801 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 @@ -181,10 +181,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { @Override public List queryList(WmsMaterialCoilBo bo) { QueryWrapper lqw = buildQueryWrapperPlus(bo); - Page build = new PageQuery().build(); - build.setSize(Long.MAX_VALUE); - Page wmsMaterialCoilVoPage = baseMapper.selectVoPagePlus(build, lqw); - return wmsMaterialCoilVoPage.getRecords(); + return baseMapper.selectVoListWithDynamicJoin(lqw); } /** @@ -364,9 +361,9 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { } // 判断warehouseId是否发生变化 - boolean warehouseChanged = bo.getWarehouseId() != null && + boolean warehouseChanged = bo.getWarehouseId() != null && !bo.getWarehouseId().equals(oldCoil.getWarehouseId()); - + Long qrcodeRecordId; if (warehouseChanged) { // 如果库区发生变化,生成新的二维码 diff --git a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml index 0114e032..ca42b90c 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml @@ -63,7 +63,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" GROUP BY w.warehouse_id, w.warehouse_name, mc.item_type, mc.item_id ORDER BY w.warehouse_id, mc.item_type, mc.item_id - + - + SELECT mc.*, + w.warehouse_name AS warehouseName, + CASE + WHEN mc.item_type = 'row_material' THEN rm.raw_material_name + WHEN mc.item_type = 'product' THEN p.product_name + ELSE NULL + END as itemName, + CASE + WHEN mc.item_type = 'row_material' THEN rm.raw_material_code + WHEN mc.item_type = 'product' THEN p.product_code + ELSE NULL + END as itemCode FROM wms_material_coil mc - LEFT JOIN wms_warehouse w ON mc.warehouse_id = w.warehouse_id - ${ew.customSqlSegment} + LEFT JOIN wms_raw_material rm ON mc.item_type = 'row_material' AND mc.item_id = rm.raw_material_id + LEFT JOIN wms_product p ON mc.item_type = 'product' AND mc.item_id = p.product_id + LEFT JOIN wms_warehouse w ON mc.warehouse_id = w.warehouse_id + ${ew.customSqlSegment} + +