From b13d3d2c634df625dcaa74371f1d36a8376851b4 Mon Sep 17 00:00:00 2001
From: heshaofeng <heshaofeng@hnkhzn.com>
Date: 星期二, 06 一月 2026 14:54:16 +0800
Subject: [PATCH] 优化撤销组盘功能

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/BigGreenService/BigGreenService.cs |   53 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 42 insertions(+), 11 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/BigGreenService/BigGreenService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/BigGreenService/BigGreenService.cs"
index cc3a34a..04db870 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/BigGreenService/BigGreenService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/BigGreenService/BigGreenService.cs"
@@ -69,6 +69,8 @@
             // 4. 鑾峰彇杩�7鏃ユ瘡鏃ュ嚭鍏ュ簱鏄庣粏锛堟牳蹇冧慨鏀癸細璋冪敤涓婇潰鐨勬柟娉曪級
             var dailyInOutBoundList = Get7DaysDailyInOutBound();
 
+            //鑾峰彇浣滀笟缁熻
+            var completeTask = SimpleStatistics();
             //浠诲姟
             List<Dt_Task> tasks = _taskRepository.QueryData();
 
@@ -82,7 +84,8 @@
                 InboundCount = inboundCount,
                 OutboundCount = outboundCount,
                 InStockPallet = inStockPallet,
-                FreeStockPallet = freeStockPallet
+                FreeStockPallet = freeStockPallet,
+                CompleteTask = completeTask
             };
             return WebResponseContent.Instance.OK(data: bigGreenData);
         }
@@ -107,14 +110,15 @@
                 .Queryable<Dt_OutboundOrderDetail>()
                 .Where(x => x.CreateDate >= startDate
                          && x.CreateDate < endDate.AddDays(1))
-                .GroupBy(x => x.CreateDate) // 鎸夋棩鏈熸牸寮忓寲鍒嗙粍
+
                 .Select(x => new
                 {
-                    Date = x.CreateDate.ToString( "MM-dd"),
-                    DailyOutbound = SqlFunc.AggregateSum((decimal?)x.OverOutQuantity) ?? 0
+                    Date = x.CreateDate.ToString("MM-dd"),
+                    x.OverOutQuantity
                 })
                 .ToList()
-                .ToDictionary(k => k.Date, v => v.DailyOutbound); // 杞负瀛楀吀鏂逛究鍖归厤
+                .GroupBy(x => x.Date)
+                .ToDictionary(k => k.Key , g => g.Sum(x => (decimal?)x.OverOutQuantity) ?? 0); // 杞负瀛楀吀鏂逛究鍖归厤
 
             // 3. 鏌ヨ姣忔棩鍏ュ簱鏄庣粏锛堟寜鏃ユ湡鍒嗙粍锛�
             var dailyInboundList = _inboundOrderDetailRepository.Db
@@ -122,14 +126,14 @@
                 .Where(x => x.CreateDate != null // 杩囨护绌烘棩鏈�
                          && x.CreateDate >= startDate
                          && x.CreateDate < endDate.AddDays(1))
-                .GroupBy(x => x.CreateDate).Distinct() // 鎸夋棩鏈熸牸寮忓寲鍒嗙粍
                 .Select(x => new
                 {
                     Date = x.CreateDate.ToString("MM-dd"),
-                    DailyInbound = SqlFunc.AggregateSum((decimal?)x.OverInQuantity) ?? 0
+                    x.OverInQuantity
                 })
                 .ToList()
-                .ToDictionary(k => k.Date, v => v.DailyInbound); // 杞负瀛楀吀鏂逛究鍖归厤
+                .GroupBy(x=>x.Date)
+                .ToDictionary(k => k.Key, g => g.Sum(x => (decimal?)x.OverInQuantity) ?? 0); // 杞负瀛楀吀鏂逛究鍖归厤
 
             // 4. 鍚堝苟姣忔棩鏁版嵁锛堢‘淇�7澶╂棩鏈熷畬鏁达紝鏃犳暟鎹ˉ0锛�
             var dailyInOutBoundList = all7Days.Select(date => new DailyInOutBoundDto
@@ -143,7 +147,26 @@
             return dailyInOutBoundList;
         }
 
-       
+        public List<SimpleStatisticsDTO> SimpleStatistics()
+        {
+            DateTime sevenDaysAgo = DateTime.Now.AddDays(-7);
+
+            var stats = _taskHtyRepository
+                .QueryData(x => x.TaskStatus == (int)TaskStatusEnum.Finish && x.CreateDate >= sevenDaysAgo)
+                .GroupBy(t =>
+                    (int)t.TaskType >= 100 && (int)t.TaskType <= 299 ? "鍑哄簱" :
+                    (int)t.TaskType >= 500 && (int)t.TaskType <= 699 ? "鍏ュ簱" : "鍏朵粬"
+                )
+                .Where(g => g.Key == "鍑哄簱" || g.Key == "鍏ュ簱") 
+                .Select(g => new SimpleStatisticsDTO
+                {
+                    TaskType = g.Key,
+                    Count = g.Count()
+                })
+                .ToList();
+
+            return stats;
+        }
 
         /// <summary>
         /// 澶у睆/姹囨�绘暟鎹繑鍥濪TO锛堝ぇ缁挎暟鎹眹鎬伙級
@@ -196,7 +219,7 @@
             /// <summary>
             /// 杩�7鏃ュ噣鍏ュ簱閲忥紙鍏ュ簱-鍑哄簱锛�
             /// </summary>
-            public decimal totalStockChangeRate { get; set; }
+            public decimal TotalStockChangeRate { get; set; }
 
             /// <summary>
             /// 浠诲姟鍒楄〃
@@ -206,6 +229,8 @@
             public int InStockPallet { get; set; }
 
             public int FreeStockPallet { get; set; }
+
+            public List<SimpleStatisticsDTO> CompleteTask { get; set; }
         }
 
         /// <summary>
@@ -230,6 +255,12 @@
 
         }
 
-        
+        public class SimpleStatisticsDTO
+        {
+            public string TaskType { get; set; }
+            public int Count { get; set; }
+        }
+
+
     }
 }

--
Gitblit v1.9.3