From 0050af76775f43b4c68dd3ad887f018e8b3e7de2 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Mon, 9 Mar 2026 10:46:22 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=B7=BB=E5=8A=A0=E9=92=A2?= =?UTF-8?q?=E5=8D=B7=E7=B1=BB=E5=88=AB=E7=BB=9F=E8=AE=A1=E2=80=94=E2=80=94?= =?UTF-8?q?=E6=B1=87=E6=80=BB=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 CategoryWidthRawVo 和 CategoryWidthStatisticsVo 数据传输对象 - 在 IWmsMaterialCoilService 中添加 getCategoryWidthStatistics 方法定义 - 实现 WmsMaterialCoilController 的 categoryWidthStatistics 接口 - 添加 WmsMaterialCoilMapper 的 selectCategoryWidthStatistics 查询方法 - 实现 WmsMaterialCoilServiceImpl 中的 getCategoryWidthStatistics 业务逻辑 - 在 XML 映射文件中添加类别宽度统计的 SQL 查询语句 --- .../controller/WmsMaterialCoilController.java | 11 ++++ .../vo/dashboard/CategoryWidthRawVo.java | 12 ++++ .../dashboard/CategoryWidthStatisticsVo.java | 16 ++++++ .../com/klp/mapper/WmsMaterialCoilMapper.java | 3 + .../klp/service/IWmsMaterialCoilService.java | 4 ++ .../impl/WmsMaterialCoilServiceImpl.java | 57 +++++++++++++++++++ .../mapper/klp/WmsMaterialCoilMapper.xml | 42 ++++++++++++++ 7 files changed, 145 insertions(+) create mode 100644 klp-wms/src/main/java/com/klp/domain/vo/dashboard/CategoryWidthRawVo.java create mode 100644 klp-wms/src/main/java/com/klp/domain/vo/dashboard/CategoryWidthStatisticsVo.java 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 6607302e..1d530186 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java @@ -25,6 +25,7 @@ import com.klp.common.utils.poi.ExcelUtil; import com.klp.domain.vo.WmsMaterialCoilVo; import com.klp.domain.bo.WmsMaterialCoilBo; import com.klp.domain.vo.dashboard.CoilTrimStatisticsVo; +import com.klp.domain.vo.dashboard.CategoryWidthStatisticsVo; import com.klp.service.IWmsMaterialCoilService; import com.klp.common.core.page.TableDataInfo; @@ -466,6 +467,16 @@ public class WmsMaterialCoilController extends BaseController { return R.ok(iWmsMaterialCoilService.getCoilTrimStatistics()); } + /** + * 类别宽度统计 + * 纵坐标:热轧卷板、冷硬卷、冷轧卷、镀锌钢卷(毛化)、镀锌管料、镀锌钢卷(未光整) + * 横坐标:净边1000、1200、1220、1250 + 其他宽度及毛边 + 合计 + */ + @GetMapping("/categoryWidthStatistics") + public R> categoryWidthStatistics() { + return R.ok(iWmsMaterialCoilService.getCategoryWidthStatistics()); + } + } diff --git a/klp-wms/src/main/java/com/klp/domain/vo/dashboard/CategoryWidthRawVo.java b/klp-wms/src/main/java/com/klp/domain/vo/dashboard/CategoryWidthRawVo.java new file mode 100644 index 00000000..5aad5c0b --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/vo/dashboard/CategoryWidthRawVo.java @@ -0,0 +1,12 @@ +package com.klp.domain.vo.dashboard; + +import lombok.Data; +import java.math.BigDecimal; + +@Data +public class CategoryWidthRawVo { + private String category; + private String width; + private String isTrimmed; + private BigDecimal totalWeight; +} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/dashboard/CategoryWidthStatisticsVo.java b/klp-wms/src/main/java/com/klp/domain/vo/dashboard/CategoryWidthStatisticsVo.java new file mode 100644 index 00000000..d12e52fc --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/vo/dashboard/CategoryWidthStatisticsVo.java @@ -0,0 +1,16 @@ +package com.klp.domain.vo.dashboard; + +import lombok.Data; +import java.math.BigDecimal; +import java.util.List; + +@Data +public class CategoryWidthStatisticsVo { + private String category; + private BigDecimal width1000; + private BigDecimal width1200; + private BigDecimal width1220; + private BigDecimal width1250; + private BigDecimal otherWidth; + private BigDecimal total; +} 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 18b356e6..2f838906 100644 --- a/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java +++ b/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java @@ -9,6 +9,7 @@ import com.klp.domain.vo.WmsMaterialCoilVo; import com.klp.common.core.mapper.BaseMapperPlus; import org.apache.ibatis.annotations.Param; import com.klp.domain.vo.dashboard.CoilTrimRawVo; +import com.klp.domain.vo.dashboard.CategoryWidthRawVo; import java.util.List; import java.util.Map; @@ -83,5 +84,7 @@ public interface WmsMaterialCoilMapper extends BaseMapperPlus selectDeliveryExportListByCoilIds(@Param("coilIds") java.util.Collection coilIds); List selectCoilTrimStatistics(); + + List selectCategoryWidthStatistics(); } 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 1381e453..671cfe33 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java @@ -7,6 +7,7 @@ import com.klp.domain.bo.WmsMaterialCoilBo; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; import com.klp.domain.vo.dashboard.CoilTrimStatisticsVo; +import com.klp.domain.vo.dashboard.CategoryWidthStatisticsVo; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; @@ -217,6 +218,9 @@ public interface IWmsMaterialCoilService { Map cancelSpecialSplit(@NotNull(message = "待操作记录ID不能为空") Long pendingActionId); List getCoilTrimStatistics(); + + List getCategoryWidthStatistics(); + WmsMaterialCoilVo returnCoil(@NotNull(message = "钢卷ID不能为空") Long coilId); /** 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 f2eff18c..97b05656 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 @@ -21,6 +21,8 @@ import com.klp.domain.vo.*; import com.klp.domain.vo.dashboard.CoilTrimStatisticsVo; import com.klp.domain.vo.dashboard.CoilTrimRawVo; import com.klp.domain.vo.dashboard.TrimWidthStatisticsVo; +import com.klp.domain.vo.dashboard.CategoryWidthStatisticsVo; +import com.klp.domain.vo.dashboard.CategoryWidthRawVo; import com.klp.domain.WmsCoilPendingAction; import com.klp.domain.bo.WmsCoilPendingActionBo; import com.klp.mapper.*; @@ -4395,5 +4397,60 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { return result; } + @Override + public List getCategoryWidthStatistics() { + List rawList = baseMapper.selectCategoryWidthStatistics(); + + Map> byCategory = rawList.stream() + .collect(Collectors.groupingBy(v -> v.getCategory() == null ? "其他" : v.getCategory())); + + List result = new ArrayList<>(); + + for (Map.Entry> categoryEntry : byCategory.entrySet()) { + CategoryWidthStatisticsVo vo = new CategoryWidthStatisticsVo(); + vo.setCategory(categoryEntry.getKey()); + + BigDecimal total = BigDecimal.ZERO; + BigDecimal width1000 = BigDecimal.ZERO; + BigDecimal width1200 = BigDecimal.ZERO; + BigDecimal width1220 = BigDecimal.ZERO; + BigDecimal width1250 = BigDecimal.ZERO; + BigDecimal otherWidth = BigDecimal.ZERO; + + for (CategoryWidthRawVo raw : categoryEntry.getValue()) { + BigDecimal weight = raw.getTotalWeight() == null ? BigDecimal.ZERO : raw.getTotalWeight(); + String width = raw.getWidth(); + String isTrimmed = raw.getIsTrimmed(); + + if ("净边".equals(isTrimmed)) { + if ("1000".equals(width)) { + width1000 = width1000.add(weight); + } else if ("1200".equals(width)) { + width1200 = width1200.add(weight); + } else if ("1220".equals(width)) { + width1220 = width1220.add(weight); + } else if ("1250".equals(width)) { + width1250 = width1250.add(weight); + } else { + otherWidth = otherWidth.add(weight); + } + } else { + otherWidth = otherWidth.add(weight); + } + total = total.add(weight); + } + + vo.setWidth1000(width1000); + vo.setWidth1200(width1200); + vo.setWidth1220(width1220); + vo.setWidth1250(width1250); + vo.setOtherWidth(otherWidth); + vo.setTotal(total); + result.add(vo); + } + + return result; + } + } diff --git a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml index 691276ed..5b7041a9 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml @@ -703,5 +703,47 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ORDER BY thickness, width, trimmingRequirement + + +