From d24c080e18db940f0d786752c24c42561f5b95c4 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期五, 17 十月 2025 08:42:00 +0800
Subject: [PATCH] 逻辑优化
---
Services/WomdaaManager.cs | 40 ++++++++++++++++++++++++++++++----------
1 files changed, 30 insertions(+), 10 deletions(-)
diff --git a/Services/WomdaaManager.cs b/Services/WomdaaManager.cs
index 4445f5d..107eb79 100644
--- a/Services/WomdaaManager.cs
+++ b/Services/WomdaaManager.cs
@@ -171,18 +171,38 @@
var sqlQuerySingle = Db.Ado.SqlQuerySingle<string>(sql);
VOrdrerBycl.finalResult = sqlQuerySingle;
- // 鏂板锛氭寜ID鑰屼笉鏄椂闂村拰CjNum鏌ヨ鏁伴噰璁板綍
- var baseQuery = Db.Queryable<MesNumericalBycl>()
- .Where(n => n.OrderId == Convert.ToDecimal(query.OrderId)
- && n.MachineNo == VOrdrerBycl.MachineNo);
+ // 鏁伴噰璁板綍锛氬熀浜庝富閿甀D涓庢渶澶ч噰闆嗘暟閫昏緫锛岃В鍐冲悓涓�CJ_NUM鍦ㄤ笉鍚屾椂闂撮噸澶嶇殑闂
+ var numericalQuery = Db.Queryable<MesNumericalBycl>()
+ .Where(n => n.MachineNo == VOrdrerBycl.MachineNo
+ && n.OrderId == VOrdrerBycl.ID
+ && n.CjNum != null);
- // 鎸塈D鍗囧簭鍙栨渶鏃╄褰�
- var startRecordById = baseQuery.OrderBy(n => n.Id).First();
- // 鎸塈D闄嶅簭鍙栨渶鏂拌褰�
- var latestRecordById = baseQuery.OrderBy(n => n.Id, OrderByType.Desc).First();
+ // 寮�宸ラ噰闆嗗��=绗竴鏉¤褰�(鎸塈D鏈�灏�)
+ var startCjNum = numericalQuery
+ .OrderBy(n => n.Id)
+ .Select(n => n.CjNum)
+ .First();
- VOrdrerBycl.StartCjNum = startRecordById?.CjNum;
- VOrdrerBycl.CurrentCjNum = latestRecordById?.CjNum;
+ // 鏈�澶ч噰闆嗘暟锛堢疮璁″綋鍓嶅�硷級
+ 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 ?? VOrdrerBycl.StartCjNum;
return VOrdrerBycl;
}
--
Gitblit v1.9.3