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 + + +