From 731b5b8b9d5826c5e7343d0a7b5254731a522273 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期三, 22 十月 2025 15:37:15 +0800
Subject: [PATCH] 逻辑优化

---
 Services/MesOrderStaManager.cs |   91 ++++++++++++++++++++++-----------------------
 1 files changed, 44 insertions(+), 47 deletions(-)

diff --git a/Services/MesOrderStaManager.cs b/Services/MesOrderStaManager.cs
index 37601dd..b00dd35 100644
--- a/Services/MesOrderStaManager.cs
+++ b/Services/MesOrderStaManager.cs
@@ -108,66 +108,64 @@
         if (womdaa == null) throw new Exception("宸ュ崟涓嶅瓨鍦�");
 
         MesQaItemsDetect02 latestFirst = null;
-        var clearMaShout = false; // 鏍囪锛氭槸鍚﹂渶瑕佹竻绌洪�佹鏃堕棿
+        var clearMaShout = false;
 
-        if (entity.Flag == 1)
+        // 鍘熸潵闄愬埗 entity.Flag == 1锛岃繖閲屽彇娑堥檺鍒讹細浠讳綍淇濆瓨鍔ㄤ綔閮借瘎浼伴妫�缁撴灉
+        // 琛岀骇閿侀槻骞跺彂
+        Db.Ado.ExecuteCommand("SELECT ID FROM WOMDAA WHERE DAA001 = :BILL_NO FOR UPDATE",
+            new SugarParameter("BILL_NO", womdaa.Daa001));
+
+        // 褰撳墠鏈�鏂伴妫�
+        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)
+            .First();
+
+        // 缁撴灉褰掍竴锛堥槻姝㈠熬閮ㄧ┖鏍兼垨澶у皬鍐欙級锛氬彲鑳芥潵婧愪簬鎺ュ彛/鐢ㄦ埛褰曞叆
+        var latestResult = latestFirst?.FcheckResu?.Trim();
+
+        // 浠呭湪涓嶅瓨鍦ㄩ妫�鍗曟椂鍒涘缓
+        if (latestFirst == null)
         {
-            // 琛岀骇閿侀槻骞跺彂
-            Db.Ado.ExecuteCommand("SELECT ID FROM WOMDAA WHERE DAA001 = :BILL_NO FOR UPDATE",
-                new SugarParameter("BILL_NO", womdaa.Daa001));
+            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)
                 .First();
 
-            // 浠呭湪涓嶅瓨鍦ㄩ妫�鍗曟椂鍒涘缓锛堝師鈥� 涓嶅悎閫� 鈥濆凡缁熶竴鏀逛负鈥� 涓嶅悎鏍� 鈥濓紝涓斾笉鍚堟牸涓嶅啀瑙﹀彂閲嶅缓锛�
-            var needCreate = latestFirst == null;
-
-            if (needCreate)
+            if (latestFirst != null)
             {
-                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)
-                    .First();
-
-                if (latestFirst != null)
-                {
-                    var ts = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
-                    Db.Updateable<MesQaItemsDetect02>()
-                        .SetColumns(s => s.Remeke == $"宸ユ帶鏈轰簬{ts}鑷姩鍒涘缓鐨勯妫�鍗�(棣栨鍒涘缓)")
-                        .Where(s => s.Id == latestFirst.Id)
-                        .ExecuteCommand();
-                }
+                var ts = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+                Db.Updateable<MesQaItemsDetect02>()
+                    .SetColumns(s => s.Remeke == $"宸ユ帶鏈轰簬{ts}鑷姩鍒涘缓鐨勯妫�鍗�(棣栨鍒涘缓)")
+                    .Where(s => s.Id == latestFirst.Id)
+                    .ExecuteCommand();
+            }
+        }
+        else
+        {
+            // 鏈�鏂扮粨鏋滀负鈥滀笉鍚堟牸鈥� => 娓呯┖閫佹鏃堕棿锛屼笉閲嶅缓
+            if (string.Equals(latestResult, FirstCheckResultNG, StringComparison.OrdinalIgnoreCase))
+            {
+                clearMaShout = true;
+                entity.MaShoutTime = null;
+                entity.remark = $"鏈�鏂伴妫�缁撴灉鈥渰FirstCheckResultNG}鈥濓紝宸叉竻绌洪�佹鏃堕棿锛屽緟鍐嶆閫佹";
             }
             else
             {
-                // 鏈�鏂扮粨鏋滀负鈥滀笉鍚堟牸鈥� => 浠呮竻绌洪�佹鏃堕棿锛屼笉閲嶅缓
-                if (latestFirst != null && latestFirst.FcheckResu == FirstCheckResultNG)
-                {
-                    clearMaShout = true;
-                    entity.MaShoutTime = null;
-                    entity.remark = $"鏈�鏂伴妫�缁撴灉鈥渰FirstCheckResultNG}鈥濓紝宸叉竻绌洪�佹鏃堕棿锛屽緟鍐嶆閫佹";
-                }
-                else if (latestFirst != null)
-                {
-                    // 鍏跺畠缁撴灉锛堝鍚堟牸锛夋洿鏂板娉�
-                    var ts = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
-                    Db.Updateable<MesQaItemsDetect02>()
-                        .SetColumns(s => s.Remeke == $"宸ユ帶鏈轰簬{ts}棣栨缁撴灉锛歿latestFirst.FcheckResu}")
-                        .Where(s => s.Id == latestFirst.Id)
-                        .ExecuteCommand();
-                }
+                // 鍏跺畠缁撴灉鏇存柊澶囨敞
+                var ts = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+                Db.Updateable<MesQaItemsDetect02>()
+                    .SetColumns(s => s.Remeke == $"宸ユ帶鏈轰簬{ts}棣栨缁撴灉锛歿latestResult}")
+                    .Where(s => s.Id == latestFirst.Id)
+                    .ExecuteCommand();
             }
         }
 
-        // 鍘熸姤宸�/鏁伴噰閿氱偣閫昏緫淇濇寔
+        // 鍚庣画閫昏緫淇濇寔
         var mesReporting = Db.Queryable<MesReporting>()
             .Where(s => s.BillNo == womdaa.Daa001)
             .OrderByDescending(s => s.Id)
@@ -230,7 +228,7 @@
                                    .OrderBy(x => x.CreateDate, OrderByType.Desc)
                                    .First();
 
-                if (sjRecord != null && sjRecord.FcheckResu == FirstCheckResultOK)
+                if (sjRecord != null && string.Equals(sjRecord.FcheckResu?.Trim(), FirstCheckResultOK, StringComparison.OrdinalIgnoreCase))
                 {
                     QualifiedInspection(new OrderMachineDto
                     {
@@ -244,7 +242,6 @@
             }
         }
 
-        // 鏇存柊宸ュ崟鐘舵�佽〃
         var upd = Db.Updateable<MesOrderSta>()
             .SetColumnsIF(clearMaShout, s => s.MaShoutTime == null)
             .SetColumnsIF(!clearMaShout && entity.MaShoutTime != null, s => s.MaShoutTime == entity.MaShoutTime)

--
Gitblit v1.9.3