From f7a441906fdeda95c3fed4627d00b18fbb8193b1 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Thu, 27 Nov 2025 11:05:01 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E9=87=8D=E6=9E=84=E5=8F=91?= =?UTF-8?q?=E8=B4=A7=E6=8A=A5=E8=A1=A8=E7=BB=9F=E8=AE=A1=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改发货报表返回结构,支持汇总和按类型统计 - 新增WmsDeliveryReportResultVo用于封装报表结果 - 新增WmsDeliveryReportSummaryVo用于汇总统计 - 新增WmsDeliveryReportByTypeVo用于按类型统计 - 调整Mapper层SQL查询逻辑,分离汇总与明细查询 - 更新Controller层接口返回类型 - 优化Service层实现,组装新的报表数据结构 --- .../controller/WmsDeliveryPlanController.java | 5 +- .../domain/vo/WmsDeliveryReportByTypeVo.java | 45 ++++++++++++++++ .../domain/vo/WmsDeliveryReportResultVo.java | 20 ++++++++ .../domain/vo/WmsDeliveryReportSummaryVo.java | 51 +++++++++++++++++++ .../com/klp/mapper/WmsDeliveryPlanMapper.java | 7 ++- .../klp/service/IWmsDeliveryPlanService.java | 10 +++- .../impl/WmsDeliveryPlanServiceImpl.java | 20 ++++++-- .../mapper/klp/WmsDeliveryPlanMapper.xml | 35 ++++++++++++- 8 files changed, 181 insertions(+), 12 deletions(-) create mode 100644 klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryReportByTypeVo.java create mode 100644 klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryReportResultVo.java create mode 100644 klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryReportSummaryVo.java diff --git a/klp-wms/src/main/java/com/klp/controller/WmsDeliveryPlanController.java b/klp-wms/src/main/java/com/klp/controller/WmsDeliveryPlanController.java index 8b600b8d..c98caf82 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsDeliveryPlanController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsDeliveryPlanController.java @@ -6,6 +6,7 @@ import java.util.Arrays; import com.fasterxml.jackson.annotation.JsonFormat; import com.klp.domain.vo.WmsDeliveryPlanStatisticsVo; +import com.klp.domain.vo.WmsDeliveryReportResultVo; import com.klp.domain.vo.WmsDeliveryReportVo; import lombok.RequiredArgsConstructor; import javax.servlet.http.HttpServletResponse; @@ -122,10 +123,10 @@ public class WmsDeliveryPlanController extends BaseController { * @param endTime 结束时间 */ @GetMapping("/report") - public R> getDeliveryReport( + public R getDeliveryReport( @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime, @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime) { - List report = iWmsDeliveryPlanService.getDeliveryReport(startTime, endTime); + WmsDeliveryReportResultVo report = iWmsDeliveryPlanService.getDeliveryReport(startTime, endTime); return R.ok(report); } } diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryReportByTypeVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryReportByTypeVo.java new file mode 100644 index 00000000..9fb322a0 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryReportByTypeVo.java @@ -0,0 +1,45 @@ +package com.klp.domain.vo; + +import lombok.Data; +import java.math.BigDecimal; + +/** + * 发货报表按钢卷类型统计VO + */ +@Data +public class WmsDeliveryReportByTypeVo { + /** + * 钢卷类型(品名) + */ + private String productName; + + /** + * 发货单数量 + */ + private Integer waybillCount = 0; + + /** + * 钢卷数量 + */ + private Integer coilCount = 0; + + /** + * 总重量(吨) + */ + private BigDecimal totalWeight = BigDecimal.ZERO; + + /** + * 日均发货单数量 + */ + private BigDecimal dailyWaybillCount = BigDecimal.ZERO; + + /** + * 日均钢卷数量 + */ + private BigDecimal dailyCoilCount = BigDecimal.ZERO; + + /** + * 日均重量(吨) + */ + private BigDecimal dailyWeight = BigDecimal.ZERO; +} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryReportResultVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryReportResultVo.java new file mode 100644 index 00000000..b296aab1 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryReportResultVo.java @@ -0,0 +1,20 @@ +package com.klp.domain.vo; + +import lombok.Data; +import java.util.List; + +/** + * 发货报表结果VO + */ +@Data +public class WmsDeliveryReportResultVo { + /** + * 汇总统计 + */ + private WmsDeliveryReportSummaryVo summary; + + /** + * 按钢卷类型统计明细 + */ + private List details; +} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryReportSummaryVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryReportSummaryVo.java new file mode 100644 index 00000000..dd75f06f --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryReportSummaryVo.java @@ -0,0 +1,51 @@ +package com.klp.domain.vo; + +import lombok.Data; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 发货报表汇总统计VO + */ +@Data +public class WmsDeliveryReportSummaryVo { + /** + * 发货单数量 + */ + private Integer waybillCount = 0; + + /** + * 钢卷数量 + */ + private Integer coilCount = 0; + + /** + * 总重量(吨) + */ + private BigDecimal totalWeight = BigDecimal.ZERO; + + /** + * 日均发货单数量 + */ + private BigDecimal dailyWaybillCount = BigDecimal.ZERO; + + /** + * 日均钢卷数量 + */ + private BigDecimal dailyCoilCount = BigDecimal.ZERO; + + /** + * 日均重量(吨) + */ + private BigDecimal dailyWeight = BigDecimal.ZERO; + + /** + * 统计开始时间 + */ + private Date startTime; + + /** + * 统计结束时间 + */ + private Date endTime; +} diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsDeliveryPlanMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsDeliveryPlanMapper.java index 6d670afd..125178a6 100644 --- a/klp-wms/src/main/java/com/klp/mapper/WmsDeliveryPlanMapper.java +++ b/klp-wms/src/main/java/com/klp/mapper/WmsDeliveryPlanMapper.java @@ -4,7 +4,8 @@ import com.klp.domain.WmsDeliveryPlan; import com.klp.domain.vo.WmsDeliveryPlanStatisticsVo; import com.klp.domain.vo.WmsDeliveryPlanVo; import com.klp.common.core.mapper.BaseMapperPlus; -import com.klp.domain.vo.WmsDeliveryReportVo; +import com.klp.domain.vo.WmsDeliveryReportByTypeVo; +import com.klp.domain.vo.WmsDeliveryReportSummaryVo; import org.apache.ibatis.annotations.Param; import java.util.Date; @@ -20,5 +21,7 @@ public interface WmsDeliveryPlanMapper extends BaseMapperPlus selectDeliveryPlanStatistics(Long planId); - List selectDeliveryReport(@Param("startTime")Date startTime, @Param("endTime")Date endTime); + List selectDeliveryReportByType(@Param("startTime")Date startTime, @Param("endTime")Date endTime); + + WmsDeliveryReportSummaryVo selectDeliveryReportSummary(@Param("startTime") Date startTime, @Param("endTime") Date endTime); } diff --git a/klp-wms/src/main/java/com/klp/service/IWmsDeliveryPlanService.java b/klp-wms/src/main/java/com/klp/service/IWmsDeliveryPlanService.java index 26ef80a2..951aa642 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsDeliveryPlanService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsDeliveryPlanService.java @@ -6,7 +6,7 @@ import com.klp.domain.vo.WmsDeliveryPlanVo; import com.klp.domain.bo.WmsDeliveryPlanBo; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; -import com.klp.domain.vo.WmsDeliveryReportVo; +import com.klp.domain.vo.WmsDeliveryReportResultVo; import java.util.Collection; import java.util.Date; @@ -50,7 +50,13 @@ public interface IWmsDeliveryPlanService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + /** + * 获取发货计划统计信息 + */ List getDeliveryPlanStatistics(Long planId); - List getDeliveryReport(Date startTime, Date endTime); + /** + * 获取发货报表统计信息(包含汇总和按类型统计) + */ + WmsDeliveryReportResultVo getDeliveryReport(Date startTime, Date endTime); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanServiceImpl.java index c2227461..9ee55c3e 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanServiceImpl.java @@ -8,7 +8,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.klp.common.utils.StringUtils; import com.klp.domain.vo.WmsDeliveryPlanStatisticsVo; -import com.klp.domain.vo.WmsDeliveryReportVo; +import com.klp.domain.vo.WmsDeliveryReportByTypeVo; +import com.klp.domain.vo.WmsDeliveryReportResultVo; +import com.klp.domain.vo.WmsDeliveryReportSummaryVo; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.klp.domain.bo.WmsDeliveryPlanBo; @@ -124,9 +126,19 @@ public class WmsDeliveryPlanServiceImpl implements IWmsDeliveryPlanService { * * @param startTime 开始时间 * @param endTime 结束时间 - * @return 报表统计信息列表 + * @return 报表统计信息(包含汇总和按类型统计) */ - public List getDeliveryReport(Date startTime, Date endTime) { - return baseMapper.selectDeliveryReport(startTime, endTime); + public WmsDeliveryReportResultVo getDeliveryReport(Date startTime, Date endTime) { + WmsDeliveryReportResultVo result = new WmsDeliveryReportResultVo(); + + // 获取汇总数据 + WmsDeliveryReportSummaryVo summary = baseMapper.selectDeliveryReportSummary(startTime, endTime); + result.setSummary(summary); + + // 获取按钢卷类型分类的数据 + List details = baseMapper.selectDeliveryReportByType(startTime, endTime); + result.setDetails(details); + + return result; } } diff --git a/klp-wms/src/main/resources/mapper/klp/WmsDeliveryPlanMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsDeliveryPlanMapper.xml index 28300e9d..bd7eadef 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsDeliveryPlanMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsDeliveryPlanMapper.xml @@ -56,7 +56,7 @@ ORDER BY dp.create_time DESC - SELECT dwd.product_name as productName, COUNT(DISTINCT dw.waybill_id) as waybillCount, @@ -89,7 +89,38 @@ GROUP BY dwd.product_name ORDER BY totalWeight DESC - +