From 508f3e225df87e0da974424981e7782fc5ce875c Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 19 五月 2025 14:21:39 +0800
Subject: [PATCH] 修改

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockServiceImpl.java |  121 ++++++++++++++++++++++++++++-----------
 1 files changed, 86 insertions(+), 35 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockServiceImpl.java
index c365360..c51cb1b 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockServiceImpl.java
@@ -6,13 +6,11 @@
 import com.ruoyi.common.constant.OrderNumConstants;
 import com.ruoyi.common.utils.CodeGenerateUtils;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.domain.*;
 import com.ruoyi.system.dto.TOrderSaleDTO;
 import com.ruoyi.system.dto.TOrderStockDTO;
-import com.ruoyi.system.mapper.TDataGeneratorMapper;
-import com.ruoyi.system.mapper.TOrderSaleGoodsMapper;
-import com.ruoyi.system.mapper.TOrderSaleMapper;
-import com.ruoyi.system.mapper.TOrderStockMapper;
+import com.ruoyi.system.mapper.*;
 import com.ruoyi.system.query.TDataGeneratorQuery;
 import com.ruoyi.system.query.TDataGeneratorStockQuery;
 import com.ruoyi.system.query.TOrderStockQuery;
@@ -50,6 +48,8 @@
     private TStockDataSetService stockDataSetService;
     @Autowired
     private TDataGeneratorMapper dataGeneratorMapper;
+    @Autowired
+    private TGoodsService goodsService;
     @Override
     public void add(TOrderStockDTO dto) {
         // 进货单号
@@ -61,11 +61,20 @@
             dto.setIsCover(0);
         }
         this.save(dto);
-        // 添加商品
+        List<TGoods> goods = goodsService.list(Wrappers.lambdaQuery(TGoods.class).eq(TGoods::getShopId,dto.getShopId()));
+        List<TGoods> goodsUpdateList = new ArrayList<>();
+                // 添加商品
         orderStockGoods.forEach(orderSaleGoods1 -> {
             orderSaleGoods1.setId(null);
             orderSaleGoods1.setOrderId(dto.getId());
+            for (TGoods good : goods) {
+                if(good.getGoodsNum().equals(orderSaleGoods1.getGoodsNum())){
+                    good.setInventory(orderSaleGoods1.getStockCount()+good.getInventory());
+                    goodsUpdateList.add(good);
+                }
+            }
         });
+        goodsService.updateBatchById(goodsUpdateList);
         tOrderStockGoodsService.saveBatch(orderStockGoods);
     }
 
@@ -88,35 +97,36 @@
 
     @Override
     public PageInfo<TOrderStockVO> pageList(TOrderStockQuery query) {
-
-        // 判断时间
-        if(Objects.nonNull(query.getTimeType())){
-            LocalDateTime startTime = null;
-            LocalDateTime endTime = null;
-            switch (query.getTimeType()){
-                case 1:
-                    // 今日
-                    startTime = DateUtils.getDayStart(LocalDateTime.now());
-                    endTime = DateUtils.getDayEnd(LocalDateTime.now());
-                    break;
-                case 2:
-                    // 昨日
-                    startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(1));
-                    endTime = DateUtils.getDayEnd(LocalDateTime.now().minusDays(1));
-                    break;
-                case 3:
-                    // 近7天
-                    startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(7));
-                    endTime = DateUtils.getDayEnd(LocalDateTime.now());
-                    break;
-                case 4:
-                    // 近30天
-                    startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(30));
-                    endTime = DateUtils.getDayEnd(LocalDateTime.now());
-                    break;
+        if(StringUtils.isEmpty(query.getStartTime()) && StringUtils.isEmpty(query.getEndTime())){
+            // 判断时间
+            if(Objects.nonNull(query.getTimeType())){
+                LocalDateTime startTime = null;
+                LocalDateTime endTime = null;
+                switch (query.getTimeType()){
+                    case 1:
+                        // 今日
+                        startTime = DateUtils.getDayStart(LocalDateTime.now());
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now());
+                        break;
+                    case 2:
+                        // 昨日
+                        startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(1));
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now().minusDays(1));
+                        break;
+                    case 3:
+                        // 近7天
+                        startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(7));
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now());
+                        break;
+                    case 4:
+                        // 近30天
+                        startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(30));
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now());
+                        break;
+                }
+                query.setStartTime(DateUtils.localDateTimeToDate(startTime));
+                query.setEndTime(DateUtils.localDateTimeToDate(endTime));
             }
-            query.setStartTime(DateUtils.localDateTimeToDate(startTime));
-            query.setEndTime(DateUtils.localDateTimeToDate(endTime));
         }
         PageInfo<TOrderStockVO> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize());
         List<TOrderStockVO> list = this.baseMapper.pageList(query,pageInfo);
@@ -129,8 +139,13 @@
                 List<TOrderStockGoods> collect = orderStockGoods.stream().filter(orderSaleGoods -> orderSaleGoods.getOrderId().equals(orderStockVO.getId())).collect(Collectors.toList());
                 if(!CollectionUtils.isEmpty(collect)){
                     orderStockVO.setOrderStockGoods(collect);
-                    orderStockVO.setOrderStockCount(collect.size());
-                    orderStockVO.setTotalPrice(collect.stream().map(TOrderStockGoods::getCostPrice).reduce(BigDecimal::add).get());
+                    int sum = collect.stream().mapToInt(TOrderStockGoods::getStockCount).sum();
+                    orderStockVO.setOrderStockCount(sum);
+                    BigDecimal money = BigDecimal.ZERO;
+                    for (TOrderStockGoods tOrderStockGoods : collect) {
+                        money = money.add(tOrderStockGoods.getThisCostPrice().multiply(new BigDecimal(tOrderStockGoods.getStockCount())));
+                    }
+                    orderStockVO.setTotalPrice(money);
                 }
             });
         }
@@ -140,6 +155,37 @@
 
     @Override
     public Map<String, Object> getDataGeneratorStockDetail(TDataGeneratorStockQuery query) {
+        if(StringUtils.isEmpty(query.getStartTime()) && StringUtils.isEmpty(query.getEndTime())){
+            // 判断时间
+            if(Objects.nonNull(query.getTimeType())){
+                LocalDateTime startTime = null;
+                LocalDateTime endTime = null;
+                switch (query.getTimeType()){
+                    case 1:
+                        // 今日
+                        startTime = DateUtils.getDayStart(LocalDateTime.now());
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now());
+                        break;
+                    case 2:
+                        // 昨日
+                        startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(1));
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now().minusDays(1));
+                        break;
+                    case 3:
+                        // 近7天
+                        startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(7));
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now());
+                        break;
+                    case 4:
+                        // 近30天
+                        startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(30));
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now());
+                        break;
+                }
+                query.setStartTime(DateUtils.localDateTimeToDate(startTime));
+                query.setEndTime(DateUtils.localDateTimeToDate(endTime));
+            }
+        }
         return this.baseMapper.getDataGeneratorStockDetail(query);
     }
 
@@ -235,4 +281,9 @@
         });
         tOrderStockGoodsService.saveBatch(orderStockGoods);
     }
+
+    @Override
+    public void deleteByShopId(Long shopId) {
+        this.baseMapper.deleteByShopId(shopId);
+    }
 }

--
Gitblit v1.7.1