diff --git a/cash-api/order-server/src/main/java/com/czg/handel/ExcelMergeHandler.java b/cash-api/order-server/src/main/java/com/czg/handel/ExcelMergeHandler.java index a865665ee..d618ab3bd 100644 --- a/cash-api/order-server/src/main/java/com/czg/handel/ExcelMergeHandler.java +++ b/cash-api/order-server/src/main/java/com/czg/handel/ExcelMergeHandler.java @@ -17,7 +17,7 @@ import java.util.List; */ public class ExcelMergeHandler implements CellWriteHandler { // 要合并的列索引数组 - private int[] mergeColumnIndex = {0, 1, 2, 9, 10}; + private int[] mergeColumnIndex = {0, 1, 2, 8, 9}; // 合并开始的行索引 private int mergeRowIndex = 1; diff --git a/cash-api/order-server/src/main/java/com/czg/handel/TableRefundCellHandel.java b/cash-api/order-server/src/main/java/com/czg/handel/TableRefundCellHandel.java index 04e17fb70..42ed65f37 100644 --- a/cash-api/order-server/src/main/java/com/czg/handel/TableRefundCellHandel.java +++ b/cash-api/order-server/src/main/java/com/czg/handel/TableRefundCellHandel.java @@ -18,7 +18,7 @@ import java.util.List; */ public class TableRefundCellHandel implements CellWriteHandler { // 要处理的列索引数组 - private int[] yellowColumnIndex = {11, 12}; + private int[] yellowColumnIndex = {10, 11}; public TableRefundCellHandel() { diff --git a/cash-common/cash-common-service/src/main/java/com/czg/order/vo/TableSummaryExportVo.java b/cash-common/cash-common-service/src/main/java/com/czg/order/vo/TableSummaryExportVo.java index 83e1eaf95..c39832158 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/order/vo/TableSummaryExportVo.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/order/vo/TableSummaryExportVo.java @@ -12,8 +12,7 @@ import java.io.Serializable; import java.math.BigDecimal; /** - * 台桌统计明细 - * + * 台桌统计明细 * * @author tankaikai * @since 2025-03-07 16:22 */ @@ -31,10 +30,12 @@ public class TableSummaryExportVo implements Serializable { @JSONField(serialize = false) private Long lineNum; /** - * 台桌+日期 + * 台桌Code_日期 */ @ExcelIgnore private String tableConcatDate; + @ExcelIgnore + private String tableCode; /** * 台桌 */ @@ -53,6 +54,8 @@ public class TableSummaryExportVo implements Serializable { @ExcelProperty("商品分类") @ColumnWidth(15) private String categoryName; + @ExcelIgnore + private Long productId; /** * 商品名称 */ @@ -80,26 +83,26 @@ public class TableSummaryExportVo implements Serializable { /** * 单价 */ - @ExcelProperty("单价") - @ColumnWidth(10) - private BigDecimal unitPrice; +// @ExcelProperty("单价") +// @ColumnWidth(10) +// private BigDecimal unitPrice; /** * 金额 */ - @ExcelProperty("金额") + @ExcelProperty("销售额") @ColumnWidth(10) private BigDecimal amount; /** * 销售额 */ - @ExcelProperty("销售额") - @ColumnWidth(10) + @ExcelProperty("总销售额") + @ColumnWidth(12) private BigDecimal salesAmount; /** * 总销售额 */ - @ExcelProperty("总销售额") - @ColumnWidth(15) + @ExcelProperty("当日总销售额") + @ColumnWidth(16) private BigDecimal totalSalesAmount; /** * 退单量 diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/TableSummaryServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/TableSummaryServiceImpl.java index 44fdcefd3..67a4330eb 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/TableSummaryServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/TableSummaryServiceImpl.java @@ -11,7 +11,6 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.time.LocalDate; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -51,7 +50,41 @@ public class TableSummaryServiceImpl implements TableSummaryService { if (CollUtil.isEmpty(list)) { return List.of(); } + record TableSummary(String tableKey, BigDecimal totalSales, Map productSales) {} + Map summaryMap = list.stream() + .collect(Collectors.groupingBy( + vo -> vo.getTableCode() + "_" + vo.getCreateDate(), + Collectors.collectingAndThen( + Collectors.toList(), + vos -> { + String tableKey = vos.getFirst().getTableCode() + "_" + vos.getFirst().getCreateDate(); + BigDecimal totalSales = vos.stream() + .map(TableSummaryExportVo::getAmount) + .reduce(BigDecimal.ZERO, BigDecimal::add); + + Map productSales = vos.stream() + .collect(Collectors.groupingBy( + TableSummaryExportVo::getProductId, + Collectors.reducing( + BigDecimal.ZERO, + TableSummaryExportVo::getAmount, + BigDecimal::add + ) + )); + + return new TableSummary(tableKey, totalSales, productSales); + } + ) + )); + + list.forEach(vo -> { + TableSummary summary = summaryMap.get(vo.getTableConcatDate()); + if (summary != null) { + vo.setTotalSalesAmount(summary.totalSales()); + vo.setSalesAmount(summary.productSales().getOrDefault(vo.getProductId(), BigDecimal.ZERO)); + } + }); // 追加个空行用于处理表格样式 TableSummaryExportVo nullVo = new TableSummaryExportVo(); list.add(nullVo); diff --git a/cash-service/order-service/src/main/resources/mapper/ShopTableOrderStatisticMapper.xml b/cash-service/order-service/src/main/resources/mapper/ShopTableOrderStatisticMapper.xml index 7629e447e..d0a45d20d 100644 --- a/cash-service/order-service/src/main/resources/mapper/ShopTableOrderStatisticMapper.xml +++ b/cash-service/order-service/src/main/resources/mapper/ShopTableOrderStatisticMapper.xml @@ -6,17 +6,19 @@