From 314c77a2018f3337d0a78f7a24a2e3be10bf60a2 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期五, 17 十月 2025 08:49:22 +0800
Subject: [PATCH] BUG修改

---
 Services/WomdaaManager.cs |   37 ++++++++++++++++++++++++++++++-------
 1 files changed, 30 insertions(+), 7 deletions(-)

diff --git a/Services/WomdaaManager.cs b/Services/WomdaaManager.cs
index a492600..783968e 100644
--- a/Services/WomdaaManager.cs
+++ b/Services/WomdaaManager.cs
@@ -171,15 +171,38 @@
         var sqlQuerySingle = Db.Ado.SqlQuerySingle<string>(sql);
         VOrdrerBycl.finalResult = sqlQuerySingle;
 
-        // 鏂板锛氭煡璇㈡渶鏃╀笌鏈�鏂版暟閲囪褰曪紙鎸夐噰闆嗘椂闂存帓搴忥級
-        var baseQuery = Db.Queryable<MesNumericalBycl>()
-            .Where(n => n.OrderId == Convert.ToDecimal(query.OrderId) && n.MachineNo == VOrdrerBycl.MachineNo);
+        // 淇鍚庯紙纭繚绫诲瀷涓�鑷达紝閬垮厤鍙傛暟缁戝畾閿欒锛屽苟闃叉ID涓簄ull鏃跺紓甯革級
+        var numericalQuery = Db.Queryable<MesNumericalBycl>()
+            .Where(n => n.MachineNo == VOrdrerBycl.MachineNo
+                        && n.OrderId == (VOrdrerBycl.ID == null ? 0 : VOrdrerBycl.ID)
+                        && n.CjNum != null);
 
-        var startCjNum = baseQuery.OrderBy(n => n.CjTiem).Select(n => n.CjNum).First();
-        var currentCjNum = baseQuery.OrderBy(n => n.CjTiem, OrderByType.Desc).Select(n => n.CjNum).First();
+        // 寮�宸ラ噰闆嗗��=绗竴鏉¤褰�(鎸塈D鏈�灏�)
+        var startCjNum = numericalQuery
+            .OrderBy(n => n.Id)
+            .Select(n => n.CjNum)
+            .First();
 
-        VOrdrerBycl.StartCjNum = startCjNum;
-        VOrdrerBycl.CurrentCjNum = currentCjNum;
+        // 鏈�澶ч噰闆嗘暟锛堢疮璁″綋鍓嶅�硷級
+        var maxCjNum = numericalQuery.Max(n => n.CjNum);
+
+        // 杈惧埌鏈�澶у�肩殑绗竴娆℃椂闂达紙濡傞渶灞曠ず鍙悗缁柊澧炲瓧娈碉級
+        var firstReachMaxTime = numericalQuery
+            .Where(n => n.CjNum == maxCjNum)
+            .OrderBy(n => n.Id)
+            .Select(n => n.CjTiem)
+            .First();
+
+        // 杈惧埌鏈�澶у�肩殑鏈�鍚庝竴娆℃椂闂达紙鑻ラ渶瑕佸垽鏂槸鍚︿粛鍦ㄥ闀匡紝鍙姣� first 涓� last锛�
+        var lastReachMaxTime = numericalQuery
+            .Where(n => n.CjNum == maxCjNum)
+            .OrderBy(n => n.Id, OrderByType.Desc)
+            .Select(n => n.CjTiem)
+            .First();
+
+        // 璧嬪�硷紙CurrentCjNum 閲囩敤绱鏈�澶у�硷紝閬垮厤 plateau 閲嶅璁板綍瀵艰嚧璇В锛�
+        VOrdrerBycl.StartCjNum = startCjNum ?? 0;
+        VOrdrerBycl.CurrentCjNum = maxCjNum ?? 0;
 
         return VOrdrerBycl;
     }

--
Gitblit v1.9.3