From 08bbb75ca8a3de5d8af4252becee642d51cc90f3 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期五, 17 十月 2025 16:51:22 +0800
Subject: [PATCH] 调试

---
 Services/WomdaaManager.cs |   64 +++++++++++++++++++++++++++----
 1 files changed, 55 insertions(+), 9 deletions(-)

diff --git a/Services/WomdaaManager.cs b/Services/WomdaaManager.cs
index 3714c38..1c3d6c6 100644
--- a/Services/WomdaaManager.cs
+++ b/Services/WomdaaManager.cs
@@ -25,6 +25,13 @@
             list = list.Where(p => p.Daa018 != null && query.OrderStatus.Contains(p.Daa018)).ToList();
         }
 
+        // 鎸夊伐鍗旾D鍒嗙粍锛屽彧淇濈暀姣忕粍涓渶鏃╂姤宸ョ殑涓�鏉�
+        list = list
+            .GroupBy(p => p.ID)
+            .Select(g => g.OrderBy(x => x.BgDate).First())
+            .OrderBy(x => x.BgDate)
+            .ToList();
+
         return list;
     }
 
@@ -112,10 +119,15 @@
         var vOrderBycl = new VOrderBycl();
         if (numericalList.Count > 0)
         {
+            // 鎸夐噰闆嗘椂闂村崌搴忔帓搴�
+            var sortedList = numericalList
+                .OrderBy(x => DateTime.TryParse(x.CjTiem, out var dt) ? dt : DateTime.MinValue)
+                .ToList();
+
             // 寮�宸ユ暟閲囷細鏈�鏃╀竴鏉�
-            vOrderBycl.StartCjNum = numericalList.First().CjNum ?? 0;
+            vOrderBycl.StartCjNum = sortedList.First().CjNum ?? 0;
             // 褰撳墠鏁伴噰锛氭渶鏂颁竴鏉�
-            vOrderBycl.CurrentCjNum = numericalList.Last().CjNum ?? 0;
+            vOrderBycl.CurrentCjNum = sortedList.Last().CjNum ?? 0;
         }
         else
         {
@@ -125,8 +137,8 @@
 
         // 鏌ヨ鎶ュ伐璁板綍锛岃幏鍙栨渶鍚庝竴鏉℃姤宸ヨ褰�
         var lastReport = Db.Queryable<MesReporting>()
-            .Where(r => r.BillNo != null && r.BillNo.Contains(query.orderNo))
-            .OrderBy(r => r.Id, OrderByType.Desc)
+            .Where(r => r.BillNo == query.orderNo)
+            .OrderBy(r => r.BgDate, OrderByType.Desc)
             .First();
 
         if (lastReport == null || !lastReport.BgDate.HasValue)
@@ -151,11 +163,11 @@
             }
             else
             {
-                // 2. 鎵炬姤宸ユ椂闂翠箣鍚庣殑绗竴鏉�
+                // 2. 鎵炬姤宸ユ椂闂翠箣鍚庣殑绗竴鏉★紙閲囬泦鏃堕棿闄嶅簭锛屽彇鏈�鏂颁竴鏉★級
                 var afterReportNum = numericalList
                     .Select(x => new { Item = x, ParsedTime = DateTime.TryParse(x.CjTiem, out var dt) ? dt : (DateTime?)null })
                     .Where(x => x.ParsedTime.HasValue && x.ParsedTime.Value > lastReport.BgDate.Value)
-                    .OrderBy(x => x.ParsedTime)
+                    .OrderByDescending(x => x.ParsedTime)
                     .Select(x => x.Item)
                     .FirstOrDefault();
 
@@ -172,7 +184,7 @@
             .Where(c =>
                 decimals.Contains(c.ID) &&
                 (c.EditDate == date || c.EditDate == null))
-            .OrderBy(c => c.EditDate, OrderByType.Desc)
+            .OrderBy(c => c.BgDate, OrderByType.Desc)
             .Take(1)
             .ToList();
 
@@ -253,10 +265,15 @@
 
         if (numericalList.Count > 0)
         {
+            // 鍏堟寜閲囬泦鏃堕棿鍗囧簭鎺掑簭
+            var sortedList = numericalList
+                .OrderBy(x => DateTime.TryParse(x.CjTiem, out var dt) ? dt : DateTime.MinValue)
+                .ToList();
+
             // 寮�宸ユ暟閲囷細鏈�鏃╀竴鏉�
-            VOrdrerBycl.StartCjNum = numericalList.First().CjNum ?? 0;
+            VOrdrerBycl.StartCjNum = sortedList.First().CjNum ?? 0;
             // 褰撳墠鏁伴噰锛氭渶鏂颁竴鏉�
-            VOrdrerBycl.CurrentCjNum = numericalList.Last().CjNum ?? 0;
+            VOrdrerBycl.CurrentCjNum = sortedList.Last().CjNum ?? 0;
         }
         else
         {
@@ -264,6 +281,35 @@
             VOrdrerBycl.CurrentCjNum = 0;
         }
 
+        Console.WriteLine($"orderNo: [{query.orderNo}]");
+
+        // 鏌ヨ鏈�鍚庝竴鏉℃姤宸ヨ褰�
+        var lastReport = Db.Queryable<MesReporting>()
+            .Where(r => r.BillNo == query.orderNo)
+            .OrderBy(r => r.BgDate, OrderByType.Desc)
+            .First();
+
+        if (lastReport == null || !lastReport.BgDate.HasValue)
+        {
+            // 娌℃湁鎶ュ伐璁板綍锛屽垵濮嬮噰闆嗘暟涓哄紑宸ラ噰鏁�
+            VOrdrerBycl.InitCjNum = VOrdrerBycl.StartCjNum;
+        }
+        else
+        {
+            // 鏈夋姤宸ヨ褰曪紝鍒濆閲囬泦鏁颁负涓婁竴娆℃姤宸ユ椂闂村悗鏈�杩戜竴鏉¢娇杞暟閲囪〃鐨勯噰闆嗘暟閲�
+            var afterReportNum = numericalList
+                .Select(x => new { Item = x, ParsedTime = DateTime.TryParse(x.CjTiem, out var dt) ? dt : (DateTime?)null })
+                .Where(x => x.ParsedTime.HasValue && x.ParsedTime.Value > lastReport.BgDate.Value)
+                .OrderByDescending(x => x.ParsedTime)
+                .Select(x => x.Item)
+                .FirstOrDefault();
+
+            VOrdrerBycl.InitCjNum = afterReportNum?.CjNum ?? VOrdrerBycl.StartCjNum;
+        }
+
+        // 鎶ュ伐鏃堕噰闆嗘暟灏辨槸涓荤晫闈㈢殑褰撳墠閲囨暟
+        // VOrdrerBycl.CurrentCjNum 宸茶祴鍊硷紝鏃犻渶棰濆澶勭悊
+
         return VOrdrerBycl;
     }
 

--
Gitblit v1.9.3