From 128700da0fe387ddb251e76cd0925972cfdd546a Mon Sep 17 00:00:00 2001 From: 86156 <823267011@qq.com> Date: Wed, 29 Oct 2025 14:13:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8F=8C=E5=90=91=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WmsMaterialCoilController.java | 20 +++++++++ .../com/klp/domain/vo/WmsMaterialCoilVo.java | 22 +++++++++ .../com/klp/mapper/WmsMaterialCoilMapper.java | 17 +++++++ .../klp/service/IWmsMaterialCoilService.java | 17 ++++++- .../impl/WmsMaterialCoilServiceImpl.java | 45 ++++++++++++++++++- .../mapper/klp/WmsMaterialCoilMapper.xml | 45 +++++++++++++++++++ 6 files changed, 163 insertions(+), 3 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java b/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java index c5a4c489..3c92e319 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java @@ -122,5 +122,25 @@ public class WmsMaterialCoilController extends BaseController { Map traceResult = iWmsMaterialCoilService.queryTrace(enterCoilNo, currentCoilNo); return R.ok(traceResult); } + + /** + * 查询各个库区中不同类型的钢卷分布情况 + * 按库区分组,统计每种物品类型的钢卷数量和重量 + */ + @GetMapping("/distributionByWarehouse") + public R> getDistributionByWarehouse() { + List distribution = iWmsMaterialCoilService.getDistributionByWarehouse(); + return R.ok(distribution); + } + + /** + * 查询不同类型的钢卷在不同库区的分布情况 + * 按物品类型分组,统计每个库区的钢卷数量和重量 + */ + @GetMapping("/distributionByItemType") + public R> getDistributionByItemType() { + List distribution = iWmsMaterialCoilService.getDistributionByItemType(); + return R.ok(distribution); + } } 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 fd0ff220..4d04251c 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 @@ -158,6 +158,28 @@ public class WmsMaterialCoilVo { */ 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 0d9de9bd..e63885c2 100644 --- a/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java +++ b/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java @@ -3,6 +3,8 @@ package com.klp.mapper; import com.klp.domain.WmsMaterialCoil; import com.klp.domain.vo.WmsMaterialCoilVo; import com.klp.common.core.mapper.BaseMapperPlus; +import java.util.List; +import java.util.Map; /** * 钢卷物料表Mapper接口 @@ -12,5 +14,20 @@ import com.klp.common.core.mapper.BaseMapperPlus; */ public interface WmsMaterialCoilMapper extends BaseMapperPlus { + /** + * 查询各个库区中不同类型的钢卷分布情况 + * 按库区分组,统计每种物品类型的钢卷数量和重量 + * + * @return 分布情况列表 + */ + List> getDistributionByWarehouse(); + + /** + * 查询不同类型的钢卷在不同库区的分布情况 + * 按物品类型分组,统计每个库区的钢卷数量和重量 + * + * @return 分布情况列表 + */ + List> getDistributionByItemType(); } diff --git a/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java b/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java index 37dbe738..a64a2751 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java @@ -1,6 +1,5 @@ package com.klp.service; -import com.klp.domain.WmsMaterialCoil; import com.klp.domain.vo.WmsMaterialCoilVo; import com.klp.domain.bo.WmsMaterialCoilBo; import com.klp.common.core.page.TableDataInfo; @@ -65,5 +64,21 @@ public interface IWmsMaterialCoilService { * @return 溯源结果(包含二维码信息和数据库记录) */ Map queryTrace(String enterCoilNo, String currentCoilNo); + + /** + * 查询各个库区中不同类型的钢卷分布情况 + * 按库区分组,统计每种物品类型的钢卷数量和重量 + * + * @return 分布情况列表,包含库区信息、物品类型、数量、重量等 + */ + List getDistributionByWarehouse(); + + /** + * 查询不同类型的钢卷在不同库区的分布情况 + * 按物品类型分组,统计每个库区的钢卷数量和重量 + * + * @return 分布情况列表,包含物品类型、库区信息、数量、重量等 + */ + List getDistributionByItemType(); } 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 9e684dd4..84f56af0 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 @@ -18,9 +18,7 @@ import com.klp.domain.vo.WmsMaterialCoilVo; import com.klp.domain.vo.WmsGenerateRecordVo; import com.klp.domain.vo.WmsWarehouseVo; import com.klp.domain.vo.WmsRawMaterialVo; -import com.klp.domain.vo.WmsProductBomVo; import com.klp.domain.vo.WmsBomItemVo; -import com.klp.domain.bo.WmsProductBomBo; import com.klp.domain.bo.WmsBomItemBo; import com.klp.domain.WmsMaterialCoil; import com.klp.domain.WmsStock; @@ -45,6 +43,7 @@ import java.util.HashMap; import java.util.stream.Collectors; import java.util.HashSet; import java.util.Set; +import java.math.BigDecimal; /** * 钢卷物料表Service业务层处理 @@ -1008,5 +1007,47 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { } } } + + /** + * 查询各个库区中不同类型的钢卷分布情况 + * 按库区分组,统计每种物品类型的钢卷数量和重量 + * + * @return 分布情况列表,包含库区信息、物品类型、数量、重量等 + */ + @Override + public List getDistributionByWarehouse() { + List> mapList = baseMapper.getDistributionByWarehouse(); + return convertMapListToVoList(mapList); + } + + /** + * 查询不同类型的钢卷在不同库区的分布情况 + * 按物品类型分组,统计每个库区的钢卷数量和重量 + * + * @return 分布情况列表,包含物品类型、库区信息、数量、重量等 + */ + @Override + public List getDistributionByItemType() { + List> mapList = baseMapper.getDistributionByItemType(); + return convertMapListToVoList(mapList); + } + + /** + * 将Map列表转换为WmsMaterialCoilVo列表 + */ + private List convertMapListToVoList(List> mapList) { + List voList = new ArrayList<>(); + for (Map map : mapList) { + WmsMaterialCoilVo vo = new WmsMaterialCoilVo(); + vo.setWarehouseId(map.get("warehouse_id") != null ? Long.valueOf(map.get("warehouse_id").toString()) : null); + vo.setWarehouseName(map.get("warehouse_name") != null ? map.get("warehouse_name").toString() : null); + vo.setItemType(map.get("item_type") != null ? map.get("item_type").toString() : null); + vo.setCoilCount(map.get("coil_count") != null ? Long.valueOf(map.get("coil_count").toString()) : 0L); + vo.setTotalGrossWeight(map.get("total_gross_weight") != null ? new BigDecimal(map.get("total_gross_weight").toString()) : BigDecimal.ZERO); + vo.setTotalNetWeight(map.get("total_net_weight") != null ? new BigDecimal(map.get("total_net_weight").toString()) : BigDecimal.ZERO); + voList.add(vo); + } + return voList; + } } diff --git a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml index 6e270622..fb371612 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml @@ -29,6 +29,51 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + + + + + + + + + +