From 3344a271f4bffd0d4788e8ccc53db2b01a7eeb8b Mon Sep 17 00:00:00 2001 From: lzq Date: Wed, 27 Aug 2025 17:43:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=B1=8F=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../statistics/service/StatisticsService.java | 20 ++-- .../resources/mapper/StatisticsMapper.xml | 110 ++++++++---------- 2 files changed, 59 insertions(+), 71 deletions(-) diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/statistics/service/StatisticsService.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/statistics/service/StatisticsService.java index 2c5c511..6edde63 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/statistics/service/StatisticsService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/statistics/service/StatisticsService.java @@ -23,7 +23,8 @@ import java.util.stream.Collectors; public class StatisticsService { private final StatisticsMapper statisticsMapper; - private final String[] weeks = {"周日", "周一", "周二", "周三", "周四", "周五", "周六"}; + private final String[] weeks = {"周一", "周二", "周三", "周四", "周五", "周六", "周日"}; + private final String[] weeks_ = {"周日", "周一", "周二", "周三", "周四", "周五", "周六"}; private final String[] months = {"1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"}; public Map obtainData() throws Exception { @@ -167,19 +168,22 @@ public class StatisticsService { Map> week_temp_1 = GroupUtil.k_a(week_orderAmountSummary.stream().filter(it -> it.getCd() == 1), it -> { Date outTime = it.getOutTime(); Week week = DateUtil.dayOfWeekEnum(outTime); - return weeks[week.getValue() - 1]; + return weeks_[week.getValue() - 1]; }); + Map> week_temp_2 = GroupUtil.k_a(week_orderAmountSummary.stream().filter(it -> it.getCd() == 2), it -> { Date outTime = it.getOutTime(); Week week = DateUtil.dayOfWeekEnum(outTime); - return weeks[week.getValue() - 1]; + return weeks_[week.getValue() - 1]; }); + List weekAmountIn = new ArrayList<>(weeks.length); for (String week : weeks) { List orderAmountSummary = week_temp_1.getOrDefault(week, Collections.emptyList()); Double amount = orderAmountSummary.stream().map(OrderAmountSummary::getAmount).reduce(Integer::sum).orElse(0) / 100.0; weekAmountIn.add(amount); } + List weekAmountOut = new ArrayList<>(weeks.length); for (String week : weeks) { List orderAmountSummary = week_temp_2.getOrDefault(week, Collections.emptyList()); @@ -191,7 +195,7 @@ public class StatisticsService { log.error("订单动态数据获取失败", ex); return Tuple2.create(Collections.emptyList(), Collections.emptyList()); }); - CompletableFuture, List,List>> monthAmount = CompletableFuture.supplyAsync(() -> { + CompletableFuture, List, List>> monthAmount = CompletableFuture.supplyAsync(() -> { long month_start = DateUtil.beginOfMonth(date).getTime() / 1000; long month_end = DateUtil.endOfMonth(date).getTime() / 1000; List month_orderAmountSummary = statisticsMapper.getOrderAmountSummary(month_start, month_end); @@ -225,12 +229,12 @@ public class StatisticsService { Double amount = orderAmountSummary.stream().map(OrderAmountSummary::getAmount).reduce(Integer::sum).orElse(0) / 100.0; monthAmountOut.add(amount); } - return Tuple3.create(monthAmountIn, monthAmountOut,days); + return Tuple3.create(monthAmountIn, monthAmountOut, days); }).exceptionally(ex -> { log.error("订单动态数据获取失败", ex); - return Tuple3.create(Collections.emptyList(), Collections.emptyList(),Collections.emptyList()); + return Tuple3.create(Collections.emptyList(), Collections.emptyList(), Collections.emptyList()); }); - CompletableFuture, List>> yearAmount = CompletableFuture.supplyAsync(() ->{ + CompletableFuture, List>> yearAmount = CompletableFuture.supplyAsync(() -> { long year_start = DateUtil.beginOfYear(date).getTime() / 1000; long year_end = DateUtil.endOfYear(date).getTime() / 1000; List year_orderAmountSummary = statisticsMapper.getOrderAmountSummary(year_start, year_end); @@ -271,7 +275,7 @@ public class StatisticsService { }); Tuple2, List> weekAmount_ = weekAmount.get(); - Tuple3, List,List> monthAmount_ = monthAmount.get(); + Tuple3, List, List> monthAmount_ = monthAmount.get(); Tuple2, List> yearAmount_ = yearAmount.get(); return MapUtil.builder() .put("carTrends", carTrends.get()) diff --git a/njzscloud-svr/src/main/resources/mapper/StatisticsMapper.xml b/njzscloud-svr/src/main/resources/mapper/StatisticsMapper.xml index 439f43f..8874723 100644 --- a/njzscloud-svr/src/main/resources/mapper/StatisticsMapper.xml +++ b/njzscloud-svr/src/main/resources/mapper/StatisticsMapper.xml @@ -6,25 +6,27 @@ @@ -43,7 +45,7 @@ FROM (SELECT garbage_name, weight FROM (SELECT b.name garbage_name, SUM(a.weight) weight FROM ba_order a - INNER JOIN ba_goods b ON b.id = a.goods_id AND b.depot_type = 1 + INNER JOIN ba_goods b ON b.id = a.goods_id AND b.depot_type = 1 AND b.id NOT IN (287, 286, 279, 278, 293, 273, 271, 270, 262, 2) INNER JOIN ba_goods_category c ON c.id = b.category_id WHERE b.name NOT LIKE '%青石%' AND b.name NOT LIKE '%拆除垃圾(派车清运零星客户专用)%' @@ -57,7 +59,7 @@ FROM (SELECT garbage_name, weight FROM (SELECT b.name garbage_name, SUM(a.weight) weight FROM ba_order a - INNER JOIN ba_goods b ON b.id = a.goods_id AND b.depot_type = 2 + INNER JOIN ba_goods b ON b.id = a.goods_id AND b.depot_type = 2 AND b.id NOT IN (287, 286, 279, 278, 293, 273, 271, 270, 262, 2) INNER JOIN ba_goods_category c ON c.id = b.category_id WHERE b.name NOT LIKE '%青石%' AND b.name NOT LIKE '%矿石%' @@ -66,36 +68,13 @@ ORDER BY weight DESC LIMIT 3) t2 - +