From 9ca97fd558700e7054c5f54192a9db7a1e6b8230 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 11 九月 2024 16:31:47 +0800
Subject: [PATCH] 完善导出等接口

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java |   91 ++++++++++++++++++++++++++++++---------------
 1 files changed, 61 insertions(+), 30 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java
index 6285a20..62f8b4b 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java
@@ -10,10 +10,7 @@
 import com.ruoyi.system.dto.CheckoutDTO;
 import com.ruoyi.system.dto.TOrderSaleDTO;
 import com.ruoyi.system.mapper.TOrderSaleMapper;
-import com.ruoyi.system.query.TDataGeneratorSaleQuery;
-import com.ruoyi.system.query.TDataStatisticsQuery;
-import com.ruoyi.system.query.TOrderMealQuery;
-import com.ruoyi.system.query.TOrderSaleQuery;
+import com.ruoyi.system.query.*;
 import com.ruoyi.system.service.TGoodsService;
 import com.ruoyi.system.service.TGoodsTypeService;
 import com.ruoyi.system.service.TOrderSaleGoodsService;
@@ -58,8 +55,6 @@
         List<TOrderSaleGoods> orderSaleGoods = dto.getOrderSaleGoods();
         BigDecimal sum = orderSaleGoods.stream().map(TOrderSaleGoods::getGoodsSalePrice).reduce(BigDecimal::add).get();
         dto.setOrderMoney(sum);
-        BigDecimal sum1 = orderSaleGoods.stream().map(TOrderSaleGoods::getThisSalePrice).reduce(BigDecimal::add).get();
-        dto.setPayMoney(sum1);
         this.save(dto);
         // 添加商品
         orderSaleGoods.forEach(orderSaleGoods1 -> {
@@ -77,23 +72,23 @@
             switch (query.getTimeType()){
                 case 1:
                     // 今日
-                    startTime = LocalDateTime.MIN;
-                    endTime = LocalDateTime.MAX;
+                    startTime = DateUtils.getDayStart(LocalDateTime.now());
+                    endTime = DateUtils.getDayEnd(LocalDateTime.now());
                     break;
                 case 2:
                     // 昨日
-                    startTime = LocalDateTime.now().minusDays(1);
-                    endTime = LocalDateTime.now().minusDays(1);
+                    startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(1));
+                    endTime = DateUtils.getDayEnd(LocalDateTime.now().minusDays(1));
                     break;
                 case 3:
                     // 近7天
-                    startTime = LocalDateTime.now().minusDays(7);
-                    endTime = LocalDateTime.now();
+                    startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(7));
+                    endTime = DateUtils.getDayEnd(LocalDateTime.now());
                     break;
                 case 4:
                     // 近30天
-                    startTime = LocalDateTime.now().minusDays(30);
-                    endTime = LocalDateTime.now();
+                    startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(30));
+                    endTime = DateUtils.getDayEnd(LocalDateTime.now());
                     break;
             }
             query.setStartTime(DateUtils.localDateTimeToDate(startTime));
@@ -169,23 +164,23 @@
             switch (query.getTimeType()){
                 case 1:
                     // 今日
-                    startTime = LocalDateTime.MIN;
-                    endTime = LocalDateTime.MAX;
+                    startTime = DateUtils.getDayStart(LocalDateTime.now());
+                    endTime = DateUtils.getDayEnd(LocalDateTime.now());
                     break;
                 case 2:
                     // 昨日
-                    startTime = LocalDateTime.now().minusDays(1);
-                    endTime = LocalDateTime.now().minusDays(1);
+                    startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(1));
+                    endTime = DateUtils.getDayEnd(LocalDateTime.now().minusDays(1));
                     break;
                 case 3:
                     // 近7天
-                    startTime = LocalDateTime.now().minusDays(7);
-                    endTime = LocalDateTime.now();
+                    startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(7));
+                    endTime = DateUtils.getDayEnd(LocalDateTime.now());
                     break;
                 case 4:
                     // 近30天
-                    startTime = LocalDateTime.now().minusDays(30);
-                    endTime = LocalDateTime.now();
+                    startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(30));
+                    endTime = DateUtils.getDayEnd(LocalDateTime.now());
                     break;
             }
             query.setStartTime(DateUtils.localDateTimeToDate(startTime));
@@ -221,23 +216,23 @@
             switch (query.getTimeType()){
                 case 1:
                     // 今日
-                    startTime = LocalDateTime.MIN;
-                    endTime = LocalDateTime.MAX;
+                    startTime = DateUtils.getDayStart(LocalDateTime.now());
+                    endTime = DateUtils.getDayEnd(LocalDateTime.now());
                     break;
                 case 2:
                     // 昨日
-                    startTime = LocalDateTime.now().minusDays(1);
-                    endTime = LocalDateTime.now().minusDays(1);
+                    startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(1));
+                    endTime = DateUtils.getDayEnd(LocalDateTime.now().minusDays(1));
                     break;
                 case 3:
                     // 近7天
-                    startTime = LocalDateTime.now().minusDays(7);
-                    endTime = LocalDateTime.now();
+                    startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(7));
+                    endTime = DateUtils.getDayEnd(LocalDateTime.now());
                     break;
                 case 4:
                     // 近30天
-                    startTime = LocalDateTime.now().minusDays(30);
-                    endTime = LocalDateTime.now();
+                    startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(30));
+                    endTime = DateUtils.getDayEnd(LocalDateTime.now());
                     break;
             }
             query.setStartTime(DateUtils.localDateTimeToDate(startTime));
@@ -263,4 +258,40 @@
         orderSale.setStatus(2);
         this.updateById(orderSale);
     }
+
+    @Override
+    public void edit(TOrderSaleDTO dto) {
+        // 销售单号
+        List<TOrderSaleGoods> orderSaleGoods = dto.getOrderSaleGoods();
+        BigDecimal sum = orderSaleGoods.stream().map(TOrderSaleGoods::getGoodsSalePrice).reduce(BigDecimal::add).get();
+        dto.setOrderMoney(sum);
+        this.updateById(dto);
+        // 删除商品
+        orderSaleGoodsService.remove(Wrappers.lambdaQuery(TOrderSaleGoods.class)
+                .eq(TOrderSaleGoods::getOrderId,dto.getId()));
+        // 添加商品
+        orderSaleGoods.forEach(orderSaleGoods1 -> {
+            orderSaleGoods1.setOrderId(dto.getId());
+            orderSaleGoods1.setId(null);
+        });
+        orderSaleGoodsService.saveBatch(orderSaleGoods);
+    }
+
+    @Override
+    public List<TDataGeneratorVO> saleGeneratorListExport(TDataGeneratorQuery query) {
+        List<TDataGeneratorVO> list = this.baseMapper.saleGeneratorListExport(query);
+        List<Long> ids = list.stream().map(TDataGeneratorVO::getId).collect(Collectors.toList());
+        if(CollectionUtils.isEmpty(ids)){
+            return new ArrayList<>();
+        }
+        List<TOrderSale> orderSales = this.list(Wrappers.lambdaQuery(TOrderSale.class)
+                .in(TOrderSale::getGeneratorId, ids));
+        for (TDataGeneratorVO tDataGeneratorVO : list) {
+            if(!CollectionUtils.isEmpty(orderSales)){
+                BigDecimal money = orderSales.stream().map(TOrderSale::getPayMoney).reduce(BigDecimal::add).get();
+                tDataGeneratorVO.setTotalRevenue(money);
+            }
+        }
+        return list;
+    }
 }

--
Gitblit v1.7.1