From ee0c512f9f31847816c094e60cf2c7ccc36d8d04 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期三, 22 十月 2025 15:53:14 +0800
Subject: [PATCH] 调试

---
 Services/MesOrderStaManager.cs |   53 ++++++++++++++++++++++++++++-------------------------
 1 files changed, 28 insertions(+), 25 deletions(-)

diff --git a/Services/MesOrderStaManager.cs b/Services/MesOrderStaManager.cs
index 2589b64..4040c7e 100644
--- a/Services/MesOrderStaManager.cs
+++ b/Services/MesOrderStaManager.cs
@@ -92,11 +92,13 @@
 
     /// <summary>
     ///     鏇存柊鏈哄櫒鏃堕棿骞跺鐞嗛妫�
-    ///     鍙樻洿璇存槑锛堟柊閫昏緫锛夛細
-    ///     1) 棣栨缁撴灉鈥滀笉鍚堟牸鈥濇椂涓嶇珛鍗抽噸寤猴紝涓嶆竻绌洪�佹鏃堕棿锛屽彧鎻愮ず闇�瑕佸啀娆¢�佹
-    ///     2) 褰撶敤鎴峰啀娆$偣鍑烩�滈�佹鍛煎彨鈥濅骇鐢熸柊鐨勯�佹鏃堕棿锛堜笌鏁版嵁搴撳師鍊间笉鍚岋級涓斾笂涓�寮犻妫�缁撴灉鈥滀笉鍚堟牸鈥濓紝鎵嶉噸寤洪妫�鍗�
-    ///     3) 涓嶅瓨鍦ㄩ妫�鍗曟椂浠嶇洿鎺ュ垱寤�
-    ///     4) 棣栨鍚堟牸涓旈�佹鏃堕棿 >= 璋冩満寮�濮嬫椂闂存椂锛氬啓鍏ヨ皟鏈哄畬鎴愭椂闂翠笌寮�宸ユ椂闂�
+    ///     閫昏緫璇存槑锛�
+    ///     1) 棣栨缁撴灉鈥滀笉鍚堟牸鈥濅笉绔嬪嵆閲嶅缓锛岀瓑寰呯敤鎴峰啀娆$偣鍑婚�佹鍛煎彨锛堥�佹鏃堕棿鍙樺寲锛夎Е鍙戦噸寤�
+    ///     2) 棣栨鏃犻妫�鍗曟垨鈥滀笉鍚堟牸鈥濅笖閫佹鏃堕棿鍙樺寲 => 璋冪敤瀛樺偍杩囩▼閲嶅缓棣栨鍗�
+    ///     3) 閲嶅缓鍚庝繚鐣欏綋鍓嶉�佹鏃堕棿锛屼笉娓呯┖
+    ///     4) 涓嶅悎鏍间絾閫佹鏃堕棿鏈彉鍖� => 鎻愮ず鐢ㄦ埛闇�瑕侀噸鏂伴�佹
+    ///     5) 鍚堟牸涓旈�佹鏃堕棿 >= 璋冩満寮�濮嬫椂闂� => 鍐欏叆寮�宸ヤ笌璋冩満瀹屾垚鏃堕棿
+    ///     鍙�夋墿灞曪細鏀寔 ForceRebuild 寮哄埗閲嶅缓锛堝鏋滃墠绔姞瀛楁锛�
     /// </summary>
     public bool ChangeMachineTime(MesOrderSta entity)
     {
@@ -107,14 +109,14 @@
         var womdaa = Db.Queryable<Womdaa>().Where(s => s.Id == entity.OrderId).First();
         if (womdaa == null) throw new Exception("宸ュ崟涓嶅瓨鍦�");
 
-        // 璇诲彇鐜版湁鐘舵�侊紙鐢ㄤ簬姣旇緝閫佹鏃堕棿鏄惁鍙樺寲锛�
+        // 褰撳墠鏁版嵁搴撶姸鎬侊紙鐢ㄤ簬瀵规瘮閫佹鏃堕棿鏄惁鍙樺寲锛�
         var dbSta = Db.Queryable<MesOrderSta>().Where(s => s.Id == entity.Id).First();
 
-        // 琛岀骇閿侊細閬垮厤骞跺彂閲嶅缓
+        // 琛岀骇閿侀槻骞跺彂
         Db.Ado.ExecuteCommand("SELECT ID FROM WOMDAA WHERE DAA001 = :BILL_NO FOR UPDATE",
             new SugarParameter("BILL_NO", womdaa.Daa001));
 
-        // 鏈�鏂伴妫�
+        // 鏈�鏂伴妫�鍗�
         var latestFirst = Db.Queryable<MesQaItemsDetect02>()
             .Where(s => s.Aufnr == womdaa.Daa001 && s.Ftype == FirstCheckType && (s.Fcancel == null || s.Fcancel != "Y"))
             .OrderBy(s => s.CreateDate, OrderByType.Desc)
@@ -122,26 +124,28 @@
 
         var latestResult = latestFirst?.FcheckResu?.Trim();
 
-        // 閫佹鏃堕棿鏄惁鍙戠敓鍙樺寲锛堝墠绔噸鏂扮偣鍑婚�佹锛�
+        // 閫佹鏃堕棿鏄惁鍙樺寲锛堣〃绀虹敤鎴烽噸鏂扮偣鍑讳簡閫佹鍛煎彨锛�
         var isShoutTimeChanged = !string.IsNullOrEmpty(entity.MaShoutTime)
                                  && entity.MaShoutTime != dbSta?.MaShoutTime;
 
-        // 鍒ゅ畾鏄惁闇�瑕侀噸寤猴細
-        // 1) 棣栨锛坙atestFirst == null锛�
-        // 2) 涓婁竴寮犳槸鈥滀笉鍚堟牸鈥� 涓� 鐢ㄦ埛鏈閫佹鏃堕棿宸插彂鐢熷彉鍖栵紙琛ㄧず浜屾閫佹锛�
+        // 鍙�夛細濡傛灉鍓嶇浠ュ悗鍔� ForceRebuild锛屽彲鍦� DTO 涓鍔� bool? ForceRebuild
+        // var forceRebuild = (entity as dynamic)?.ForceRebuild == true;
+
+        // 閲嶅缓鏉′欢锛氶娆� / 涓嶅悎鏍间笖閫佹鏃堕棿鍙樺寲
         var needRebuild = latestFirst == null ||
                           (string.Equals(latestResult, FirstCheckResultNG, StringComparison.OrdinalIgnoreCase) && isShoutTimeChanged);
+        // || forceRebuild;
 
         if (needRebuild)
         {
-            var previousState = latestResult == null ? "棣栨鍒涘缓" :
-                (latestResult == FirstCheckResultNG ? "涓嶅悎鏍煎悗閲嶅缓" : "閲嶅缓");
+            var previousState = latestResult == null ? "棣栨鍒涘缓"
+                : (latestResult == FirstCheckResultNG ? "涓嶅悎鏍煎悗閲嶅缓" : "閲嶅缓");
 
             Db.Ado.ExecuteCommand(
                 "BEGIN AUTOMATIC_IPQC_FIRST_CHECK(:BILL_NO); END;",
                 new SugarParameter("BILL_NO", womdaa.Daa001, System.Data.DbType.String));
 
-            // 閲嶅彇
+            // 閲嶅彇鏈�鏂伴妫�鍗�
             latestFirst = Db.Queryable<MesQaItemsDetect02>()
                 .Where(s => s.Aufnr == womdaa.Daa001 && s.Ftype == FirstCheckType && (s.Fcancel == null || s.Fcancel != "Y"))
                 .OrderBy(s => s.CreateDate, OrderByType.Desc)
@@ -156,19 +160,20 @@
                     .ExecuteCommand();
             }
 
-            // 閲嶅缓鍚庝笉娓呯┖鏈閫佹鏃堕棿锛堜繚鐣欑敤鎴锋柊杈撳叆锛�
-            entity.remark = previousState.Contains("涓嶅悎鏍�") ? "涓嶅悎鏍煎凡閲嶅缓锛岀瓑寰呮楠�" : entity.remark;
+            if (previousState.Contains("涓嶅悎鏍�"))
+                entity.remark = "涓嶅悎鏍煎凡閲嶅缓锛岀瓑寰呮楠�";
         }
         else
         {
-            // 涓嶉渶瑕侀噸寤轰絾涓婁竴寮犱笉鍚堟牸涓旈�佹鏃堕棿鏈彉鍖� => 鎻愮ず闇�瑕侀噸鏂伴�佹
-            if (latestFirst != null && string.Equals(latestResult, FirstCheckResultNG, StringComparison.OrdinalIgnoreCase) && !isShoutTimeChanged)
+            // 涓嶅悎鏍间絾閫佹鏃堕棿鏈彉鍖� => 鎻愮ず閲嶆柊閫佹
+            if (latestFirst != null
+                && string.Equals(latestResult, FirstCheckResultNG, StringComparison.OrdinalIgnoreCase)
+                && !isShoutTimeChanged)
             {
                 entity.remark = "涓婁竴棣栨涓嶅悎鏍硷紝璇烽噸鏂扮偣鍑婚�佹鍛煎彨浠ョ敓鎴愭柊鐨勯妫�鍗�";
             }
             else if (latestFirst != null)
             {
-                // 鍏跺畠鎯呭喌鏇存柊澶囨敞涓哄綋鍓嶇粨鏋�
                 var ts = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                 Db.Updateable<MesQaItemsDetect02>()
                     .SetColumns(s => s.Remeke == $"宸ユ帶鏈轰簬{ts}棣栨缁撴灉锛歿latestResult}")
@@ -177,7 +182,7 @@
             }
         }
 
-        // 鎶ュ伐閿氱偣閫昏緫淇濇寔
+        // 鎶ュ伐閿氱偣閫昏緫
         var mesReporting = Db.Queryable<MesReporting>()
             .Where(s => s.BillNo == womdaa.Daa001)
             .OrderByDescending(s => s.Id)
@@ -191,10 +196,8 @@
             var content = new StringContent(
                 JsonConvert.SerializeObject(new { machineNo = entity.MachineNo }),
                 Encoding.UTF8, "application/json");
-
             var response = httpClient.PostAsync("http://192.168.0.94:9095/Numerical/RefreshDevBycl", content)
                 .GetAwaiter().GetResult();
-
             if (response.IsSuccessStatusCode)
             {
                 var responseString = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
@@ -227,7 +230,7 @@
         };
         Db.Insertable<MesAnchors>(eAnchors).ExecuteCommand();
 
-        // 鍚堟牸涓旈�佹鏃堕棿鏈夋晥 => 鍐欒皟鏈哄畬鎴愭椂闂翠笌寮�宸ユ椂闂�
+        // 鍚堟牸涓旈�佹鏃堕棿 >= 璋冩満寮�濮嬫椂闂� => 鍐欒皟鏈哄畬鎴愪笌寮�宸ユ椂闂�
         if (!string.IsNullOrEmpty(entity.MaShoutTime)
             && DateTime.TryParse(entity.MaShoutTime, out var sjTime)
             && DateTime.TryParse(entity.MaStartTime, out var startTime)
@@ -245,7 +248,7 @@
             entity.MaEndTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
         }
 
-        // 鏇存柊
+        // 鏇存柊宸ュ崟鐘舵��
         return Db.Updateable<MesOrderSta>()
             .SetColumnsIF(entity.MaShoutTime != null, s => s.MaShoutTime == entity.MaShoutTime)
             .SetColumnsIF(entity.MaStartTime != null, s => s.MaStartTime == entity.MaStartTime)

--
Gitblit v1.9.3