From 3d998953d34afa6c72ca5d292f49c1349461aeda Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 20 十二月 2024 17:46:45 +0800
Subject: [PATCH] 导出

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java
index e995d1d..6c95673 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java
@@ -11,6 +11,8 @@
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.domain.*;
 import com.ruoyi.system.dto.*;
+import com.ruoyi.system.export.SumGeneratorClient;
+import com.ruoyi.system.export.SumGeneratorDetailClient;
 import com.ruoyi.system.mapper.TOrderMealGoodsMapper;
 import com.ruoyi.system.mapper.TOrderMealMapper;
 import com.ruoyi.system.query.*;
@@ -503,4 +505,31 @@
         return this.baseMapper.getDataGeneratorMealDetailOrderMoney(query);
     }
 
+    @Override
+    public SumGeneratorClient sumExport(ProfitDetailsQuery query) {
+        List<SumGeneratorDetailClient> sumGeneratorDetailClient = this.baseMapper.sumExport(query);
+
+        for (SumGeneratorDetailClient generatorDetailClient : sumGeneratorDetailClient) {
+            generatorDetailClient.setSingleAmount(generatorDetailClient.getActualAmount().divide(new BigDecimal(generatorDetailClient.getOrderCount()),2,BigDecimal.ROUND_DOWN));
+            generatorDetailClient.setPerAmount(generatorDetailClient.getActualAmount().divide(new BigDecimal(generatorDetailClient.getPerCount()),2,BigDecimal.ROUND_DOWN));
+        }
+
+        SumGeneratorClient sumGeneratorClient = new SumGeneratorClient();
+        if(!CollectionUtils.isEmpty(sumGeneratorDetailClient)){
+            sumGeneratorClient.setActualAmountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getActualAmount).reduce(BigDecimal::add).get());
+            sumGeneratorClient.setOrderCountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getOrderCount).reduce(Integer::sum).get());
+            sumGeneratorClient.setSingleAmountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getSingleAmount).reduce(BigDecimal::add).get());
+            sumGeneratorClient.setPerCountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getPerCount).reduce(Integer::sum).get());
+            sumGeneratorClient.setPerAmountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getPerAmount).reduce(BigDecimal::add).get());
+
+            sumGeneratorClient.setAllMoney(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getActualAmount).reduce(BigDecimal::add).get());
+            sumGeneratorClient.setSingleAvgAmount(sumGeneratorClient.getAllMoney().divide(new BigDecimal(sumGeneratorClient.getPerCountSum()),2,BigDecimal.ROUND_DOWN));
+            sumGeneratorClient.setPerCapitaAmount(sumGeneratorClient.getAllMoney().divide(new BigDecimal(sumGeneratorClient.getOrderCountSum()),2,BigDecimal.ROUND_DOWN));
+        }
+        sumGeneratorClient.setOrderStatistics(sumGeneratorDetailClient);
+
+
+        return sumGeneratorClient;
+    }
+
 }

--
Gitblit v1.7.1