From 37454e625df68d40897112b2e8c2e3cf4d7163e3 Mon Sep 17 00:00:00 2001
From: heshaofeng <heshaofeng@hnkhzn.com>
Date: 星期三, 25 三月 2026 11:43:10 +0800
Subject: [PATCH] 1

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/BigGreenService/BigGreenService.cs |   59 ++++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 42 insertions(+), 17 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 1980f67..dfb1776 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"
@@ -65,9 +65,8 @@
             var unInBound = _inboundRepository.Db.Queryable<Dt_InboundOrder>().Where(x => targetInStatus.Contains(x.OrderStatus) && x.CreateDate.ToString("MM-dd") == DateTime.Now.ToString("MM-dd")).Count();
 
             //璁$畻搴撲綅鍒╃敤鐜�
-            var freeLocation = _locationInfoRepository.Db.Queryable<Dt_LocationInfo>().Select(x=>x.Id).Count();
+            var totalLocation = _locationInfoRepository.Db.Queryable<Dt_LocationInfo>().Select(x=>x.Id).Count();
             var inStockLocation = _locationInfoRepository.Db.Queryable<Dt_LocationInfo>().Where(x => x.LocationStatus == (int)LocationStatusEnum.InStock).Count();
-            int totalLocation = freeLocation + inStockLocation;
             decimal locationUtilizationRate = totalLocation == 0
                 ? 0
                 : Math.Round((decimal)inStockLocation / totalLocation, 4) * 100;
@@ -165,22 +164,46 @@
 
         public List<SimpleStatisticsDTO> SimpleStatistics()
         {
-            var targetStatuses = new List<int>
-            {
-                (int)InOrderStatusEnum.鍏ュ簱涓�,
-                (int)InOrderStatusEnum.鏈紑濮�,
-                (int)OutOrderStatusEnum.鏈紑濮�,
-                (int)OutOrderStatusEnum.鍑哄簱涓�
-            };
-            var inboundList = _inboundRepository.QueryData(x => x.CreateDate.ToString("MM-dd") == DateTime.Now.ToString("MM-dd") && targetStatuses.Contains(x.OrderStatus)).ToList();
-            var outboundList = _outBoundOrderRepository.QueryData(x => x.CreateDate.ToString("MM-dd") == DateTime.Now.ToString("MM-dd") && targetStatuses.Contains(x.OrderStatus)).ToList();
+            var today = DateTime.Now.Date;
+            var threeDaysAgo = today.AddDays(-3);
 
-            var stats = new List<SimpleStatisticsDTO> { new SimpleStatisticsDTO
-            {
-                inboundOrders =inboundList,
-                outboundOrders = outboundList
-            } };
-            return stats;
+            var targetStatuses = new List<int> { (int)InOrderStatusEnum.鍏ュ簱涓�, (int)InOrderStatusEnum.鏈紑濮�,
+                                         (int)OutOrderStatusEnum.鏈紑濮�, (int)OutOrderStatusEnum.鍑哄簱涓� };
+            var failReturnStatuses = new List<int> {4,2};
+
+            var inboundToday = QueryInboundOrders(today, today, targetStatuses);
+            var outboundToday = QueryOutboundOrders(today, today, targetStatuses);
+            var inboundFail3Days = QueryInboundOrders(threeDaysAgo, today, failReturnStatuses, isReturnStatus: true);
+            var outboundFail3Days = QueryOutboundOrders(threeDaysAgo, today, failReturnStatuses, isReturnStatus: true);
+
+            
+            return new List<SimpleStatisticsDTO> { new()
+    {
+        inboundOrders = inboundToday,
+        outboundOrders = outboundToday,
+        inboundReturnFailOrders = inboundFail3Days,
+        outboundReturnFailOrders = outboundFail3Days
+    }};
+        }
+
+        
+        private List<Dt_InboundOrder> QueryInboundOrders(DateTime startDate, DateTime endDate,
+                                                      List<int> statusList, bool isReturnStatus = false)
+        {
+            return _inboundRepository.QueryData(x =>
+                x.CreateDate.Date >= startDate &&
+                x.CreateDate.Date <= endDate &&
+                (isReturnStatus ? statusList.Contains(x.ReturnToMESStatus) : statusList.Contains(x.OrderStatus))).ToList();
+        }
+
+        
+        private List<Dt_OutboundOrder> QueryOutboundOrders(DateTime startDate, DateTime endDate,
+                                                        List<int> statusList, bool isReturnStatus = false)
+        {
+            return _outBoundOrderRepository.QueryData(x =>
+                x.CreateDate.Date >= startDate &&
+                x.CreateDate.Date <= endDate &&
+                (isReturnStatus ? statusList.Contains(x.ReturnToMESStatus) : statusList.Contains(x.OrderStatus))).ToList();
         }
 
         /// <summary>
@@ -278,6 +301,8 @@
         {
             public List<Dt_InboundOrder> inboundOrders { get; set; }
             public List<Dt_OutboundOrder> outboundOrders { get; set; }
+            public List<Dt_InboundOrder> inboundReturnFailOrders { get; set; }
+            public List<Dt_OutboundOrder> outboundReturnFailOrders { get; set; }
         }
 
         

--
Gitblit v1.9.3