From 3fffef8da8b40bea43ec6d0f58b6b614875def68 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期一, 22 六月 2026 17:10:18 +0800
Subject: [PATCH] feat: 指标统计增加销售数量
---
src/main/java/com/ruoyi/sales/service/impl/MetricStatisticsServiceImpl.java | 13 ++++++++++++-
src/main/java/com/ruoyi/sales/dto/SalesTrendDto.java | 1 +
src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java | 1 +
src/main/java/com/ruoyi/RuoYiApplication.java | 4 ++--
4 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/ruoyi/RuoYiApplication.java b/src/main/java/com/ruoyi/RuoYiApplication.java
index 97efe32..074bcd7 100644
--- a/src/main/java/com/ruoyi/RuoYiApplication.java
+++ b/src/main/java/com/ruoyi/RuoYiApplication.java
@@ -7,11 +7,11 @@
/**
* 鍚姩绋嬪簭
- *
+ *
* @author ruoyi
*/
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
-@EnableScheduling
+//@EnableScheduling
public class RuoYiApplication
{
public static void main(String[] args)
diff --git a/src/main/java/com/ruoyi/sales/dto/SalesTrendDto.java b/src/main/java/com/ruoyi/sales/dto/SalesTrendDto.java
index 36a8290..cb4c4d9 100644
--- a/src/main/java/com/ruoyi/sales/dto/SalesTrendDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/SalesTrendDto.java
@@ -14,6 +14,7 @@
private String month; // 鏈堜唤锛堝2024-12锛�
private Integer orderCount; // 璁㈠崟鏁�
private BigDecimal salesAmount; // 閿�鍞
+ private BigDecimal productQuantity; // 浜у搧閿�鍞暟閲�
private BigDecimal shipRate;
}
diff --git a/src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java b/src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java
index 5518290..0270328 100644
--- a/src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java
+++ b/src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java
@@ -66,6 +66,7 @@
"DATE_FORMAT(sl.entry_date, '%Y-%m') AS month, " +
"COUNT(DISTINCT sl.id) AS order_count, " + // 鎬昏鍗曟暟
"SUM(slp.tax_inclusive_total_price) AS sales_amount, " + // 閿�鍞
+ "SUM(IFNULL(slp.quantity, 0)) AS product_quantity, " + // 浜у搧閿�鍞暟閲�
// 鍙戣揣鐜� = 鍙戣揣璁㈠崟鏁� * 100 / 鎬昏鍗曟暟锛堜繚鐣�2浣嶅皬鏁帮紝閬垮厤闄�0鎶ラ敊锛�
"ROUND(IF(COUNT(DISTINCT sl.id) = 0, 0, " +
"SUM(CASE WHEN slp.approve_status = 2 THEN 1 ELSE 0 END) / COUNT(DISTINCT sl.id) * 100), 2) AS ship_rate " +
diff --git a/src/main/java/com/ruoyi/sales/service/impl/MetricStatisticsServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/MetricStatisticsServiceImpl.java
index 942e089..2ceec4e 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/MetricStatisticsServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/MetricStatisticsServiceImpl.java
@@ -51,9 +51,16 @@
map.put("total", new BigDecimal(totalOrders));
map.put("shipRate", "0.00%");
- // 鍙戣揣鐜�
+ // 浜у搧閿�鍞暟閲�
List<SalesLedgerProduct> products = salesLedgerProductMapper.selectList(new LambdaQueryWrapper<SalesLedgerProduct>()
.eq(SalesLedgerProduct::getType, 1));
+ BigDecimal productQuantityTotal = CollectionUtils.isEmpty(products) ? BigDecimal.ZERO :
+ products.stream()
+ .map(SalesLedgerProduct::getQuantity)
+ .filter(Objects::nonNull)
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
+ map.put("productQuantityTotal", productQuantityTotal);
+
if (CollectionUtils.isEmpty(products)) {
return AjaxResult.success(map);
}
@@ -116,6 +123,7 @@
List<String> dateList = new ArrayList<>();
List<BigDecimal> orderCountList = new ArrayList<>();
List<BigDecimal> salesAmountList = new ArrayList<>();
+ List<BigDecimal> productQuantityList = new ArrayList<>();
List<BigDecimal> shippingRateList = new ArrayList<>();
Calendar tempCalendar = Calendar.getInstance();
@@ -136,10 +144,12 @@
if (dto != null) {
orderCountList.add(new BigDecimal(dto.getOrderCount()));
salesAmountList.add(dto.getSalesAmount() != null ? dto.getSalesAmount() : BigDecimal.ZERO);
+ productQuantityList.add(dto.getProductQuantity() != null ? dto.getProductQuantity() : BigDecimal.ZERO);
shippingRateList.add(new BigDecimal(String.valueOf(dto.getShipRate())));
} else {
orderCountList.add(BigDecimal.ZERO);
salesAmountList.add(BigDecimal.ZERO);
+ productQuantityList.add(BigDecimal.ZERO);
shippingRateList.add(BigDecimal.ZERO);
}
@@ -150,6 +160,7 @@
map.put("dateList", dateList);
map.put("orderCountList", orderCountList);
map.put("salesAmountList", salesAmountList);
+ map.put("productQuantityList", productQuantityList);
map.put("shippingRateList", shippingRateList);
return AjaxResult.success(map);
}
--
Gitblit v1.9.3