From 97cf3094ce37ee629ca6b948a9317a7ed1796c18 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期六, 07 九月 2024 17:56:29 +0800
Subject: [PATCH] 修改

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java |   34 ++++++++++++++++++++++------------
 1 files changed, 22 insertions(+), 12 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 54de246..e357f60 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
@@ -50,14 +50,18 @@
         // 查询菜品分类
         List<TGoodsType> list1 = goodsTypeService.list();
         // 销售单号
-        dto.setOrderNum(OrderNumConstants.SALE + CodeGenerateUtils.generateOrderSn());
+        dto.setOrderNum(OrderNumConstants.SALE + CodeGenerateUtils.generateVolumeSn());
         List<TOrderSaleGoods> orderSaleGoods = dto.getOrderSaleGoods();
         BigDecimal sum = orderSaleGoods.stream().map(TOrderSaleGoods::getGoodsSalePrice).reduce(BigDecimal::add).get();
         dto.setOrderMoney(sum);
-        dto.setPayMoney(sum);
+        BigDecimal sum1 = orderSaleGoods.stream().map(TOrderSaleGoods::getThisSalePrice).reduce(BigDecimal::add).get();
+        dto.setPayMoney(sum1);
         this.save(dto);
         // 添加商品
-        orderSaleGoods.forEach(orderSaleGoods1 -> orderSaleGoods1.setOrderId(dto.getId()));
+        orderSaleGoods.forEach(orderSaleGoods1 -> {
+            orderSaleGoods1.setOrderId(dto.getId());
+            orderSaleGoods1.setId(null);
+        });
         orderSaleGoodsService.saveBatch(orderSaleGoods);
     }
 
@@ -94,12 +98,17 @@
         PageInfo<TOrderSaleVO> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize());
         List<TOrderSaleVO> list = this.baseMapper.pageList(query,pageInfo);
         List<Long> ids = list.stream().map(TOrderSaleVO::getId).collect(Collectors.toList());
-        List<TOrderSaleGoods> list1 = orderSaleGoodsService.list(Wrappers.lambdaQuery(TOrderSaleGoods.class)
-                .in(TOrderSaleGoods::getOrderId, ids));
-        list.forEach(e->{
-            e.setGoodsAmount(list1.stream().filter(m->m.getOrderId().equals(e.getId())).map(TOrderSaleGoods::getGoodsSalePrice).reduce(BigDecimal::add).get());
-            e.setOrderSaleGoods(list1.stream().filter(m->m.getOrderId().equals(e.getId())).collect(Collectors.toList()));
-        });
+        if(!CollectionUtils.isEmpty(ids)){
+            List<TOrderSaleGoods> list1 = orderSaleGoodsService.list(Wrappers.lambdaQuery(TOrderSaleGoods.class)
+                    .in(TOrderSaleGoods::getOrderId, ids));
+            list.forEach(e->{
+                List<TOrderSaleGoods> collect = list1.stream().filter(m -> m.getOrderId().equals(e.getId())).collect(Collectors.toList());
+                if(!CollectionUtils.isEmpty(collect)){
+                    e.setGoodsAmount(collect.stream().map(TOrderSaleGoods::getGoodsSalePrice).reduce(BigDecimal::add).get());
+                    e.setOrderSaleGoods(collect);
+                }
+            });
+        }
         pageInfo.setRecords(list);
         return pageInfo;
     }
@@ -130,16 +139,17 @@
     public List<SalesRankingVO> salesRanking(TDataStatisticsQuery query) {
         List<TOrderSale> list = this.list(Wrappers.lambdaQuery(TOrderSale.class)
                 .eq(TOrderSale::getShopId, query.getShopId())
-                .between(TOrderSale::getCreateTime, query.getStartTime(), query.getEndTime()));
+                .between(TOrderSale::getOrderTime, query.getStartTime(), query.getEndTime()));
         List<Long> ids = list.stream().map(TOrderSale::getId).collect(Collectors.toList());
         List<SalesRankingVO> salesRankingVOS = new ArrayList<>();
         if(!CollectionUtils.isEmpty(ids)){
             List<TOrderSaleGoods> list1 = orderSaleGoodsService.list(Wrappers.lambdaQuery(TOrderSaleGoods.class)
                     .in(TOrderSaleGoods::getOrderId, ids));
-            Map<String, List<TOrderSaleGoods>> listMap = list1.stream().collect(Collectors.groupingBy(TOrderSaleGoods::getTypeName));
+            Map<Long, List<TOrderSaleGoods>> listMap = list1.stream().collect(Collectors.groupingBy(TOrderSaleGoods::getTypeId));
+            List<TGoodsType> list2 = goodsTypeService.list();
             listMap.forEach((k,v)->{
                 SalesRankingVO salesRankingVO = new SalesRankingVO();
-                salesRankingVO.setTypeName(k);
+                salesRankingVO.setTypeName(list2.stream().filter(e->e.getId().equals(k)).findFirst().get().getTypeName());
                 salesRankingVO.setSalesVolume(v.stream().map(item->item.getGoodsSalePrice().multiply(new BigDecimal(item.getGoodsCount()))).reduce(BigDecimal.ZERO, BigDecimal::add));
                 salesRankingVOS.add(salesRankingVO);
             });

--
Gitblit v1.7.1