From e9d7a5ef4c17e4804fb988dd193ff7d1fa36d52b Mon Sep 17 00:00:00 2001
From: chr <chr@chr.com>
Date: 星期一, 12 八月 2024 09:08:43 +0800
Subject: [PATCH] 优化;

---
 PdmSwPlugin.PDM/PdmControl.xaml.cs |  101 +++++++++-----------------------------------------
 1 files changed, 19 insertions(+), 82 deletions(-)

diff --git a/PdmSwPlugin.PDM/PdmControl.xaml.cs b/PdmSwPlugin.PDM/PdmControl.xaml.cs
index 5db4dda..909cb44 100644
--- a/PdmSwPlugin.PDM/PdmControl.xaml.cs
+++ b/PdmSwPlugin.PDM/PdmControl.xaml.cs
@@ -30,13 +30,10 @@
 using PdmSwPlugin.Common.Setting;
 using PdmSwPlugin.PDM.Model;
 using System.Diagnostics;
-using SolidWorks.Interop.gtswutilities;
 using PdmSwPlugin.PDM.Constant;
 using static PdmSwPlugin.PDM.Event.PdmEvent;
-using NPOI.SS.Formula.PTG;
-using PdmSwPlugin.Common.Entity.System;
-using System.Windows.Input;
 using System.Windows.Interop;
+using PdmSwPlugin.Commmon.Control;
 
 namespace PdmSwPlugin.PDM
 {
@@ -1165,17 +1162,21 @@
                         if (!cache.Contains(b.partModel))
                         {
                             cache.Add(b.partModel);
+                            // 鏂囨。瀛樺湪鐨�
                             return b.lost != true
                             // && b.drawingType == (int)swDocumentTypes_e.swDocPART
+                            // 鏄姞宸ヤ欢鐨�
                             && b.produceWay == "鍔犲伐浠�"
-                            && (b.drawStatus != "submitted" && b.drawStatus != "resubmitted");
+                            // 鏈鎻愪氦鐨�
+                            && (b.drawStatus != "submitted" && b.drawStatus != "resubmitted")
+                            && (b.drawStatus != "completed" || b.auditedMd5Changed);
                         }
                         return false;
                     }).ToList();
 
                     if (boms == null || boms.Count <= 0)
                     {
-                        this.Warning("鍙湁鏈彁浜ょ殑鍔犲伐浠跺浘绾稿彲浠ヨ繘琛屽鏍�");
+                        this.Warning("鍙湁鏈彁浜よ繃鎴栧彂鐢熷彉鏇寸殑鍔犲伐浠跺浘绾稿彲浠ヨ繘琛屽鏍�");
                         return;
                     }
                     // 瀵规墍鏈夌殑BOM鍋氳鍒欐鏌�
@@ -1386,7 +1387,11 @@
                 if (bom.checkRuleResult == 3)
                 {
                     string title = string.Empty;
-                    if (bom.inBom)
+                    if (bom.historyData)
+                    {
+                        title = "鍘嗗彶鍥剧焊鏃犻渶妫�鏌�";
+                    }
+                    else if (bom.inBom)
                     {
                         title = "涓嶅湪鐗╂枡鏄庣粏琛ㄤ腑鐨勭墿鏂欐棤闇�妫�鏌�";
                     }
@@ -1574,79 +1579,6 @@
             }
         }
 
-        private void PtrHandler(IntPtr ptr, Action callback, Action<List<string>, Exception> reject)
-        {
-
-            if (workStatus == PdmStatus.FREE)
-            {
-                WindowIntPtrUtil.ShowWindow(ptr, 6);
-                // 鎵ц瑙勫垯妫�鏌ュ苟鑾峰彇缁撴灉
-                MaskAdorner.ShowMask(content, "妫�鏌ヤ腑锛岃绋嶅悗...");
-                Task.Run(() =>
-                {
-                    try
-                    {
-                        RefreshBomList(SwApp.IActiveDoc2);
-                        DoCheckRule(out _);
-                        List<string> errs = model.bomTreeReader.CacheList.Where(b =>
-                            !b.inBom
-                            && (!b.checkRuleOk || (b.produceWay == "鍔犲伐浠�" && b.drawStatus != "completed"))
-                        ).Select(b =>
-                        {
-                            string msg = $"銆恵b.partModel}銆�";
-                            if (!b.checkRuleOk)
-                            {
-                                msg += "鏈�氳繃瑙勫垯妫�鏌�;";
-                            }
-                            if (b.produceWay == "鍔犲伐浠�" && b.drawStatus != "completed")
-                            {
-                                msg += "鏈�氳繃瀹℃牳;";
-                            }
-                            return msg;
-                        }
-                        ).ToList();
-
-                        if (errs != null && errs.Count > 0)
-                        {
-                            reject(errs, null);
-                            Dispatcher.Invoke(() =>
-                            {
-                                MultiExWindow exWin = new MultiExWindow(this, "妫�鍏ュ仠姝�", errs);
-                                exWin.ShowDialog();
-                            });
-                        }
-                    }
-                    catch (Exception ex)
-                    {
-                        reject(null, ex);
-                        Logger.Error("PDM check rule failed.", ex);
-                        this.Show($"鍥剧焊妫�鏌ユ墽琛屽け璐ワ細{ex.Message}", true);
-                    }
-                    finally
-                    {
-                        workStatus = PdmStatus.FREE;
-                        MaskAdorner.HideMask(content);
-                    }
-                });
-            }
-            else
-            {
-                reject(null, null);
-                if (workStatus == PdmStatus.CHECKING)
-                {
-                    this.Info("姝e湪杩涜瑙勫垯妫�鏌ワ紝璇峰嬁妫�鍏�");
-                }
-                else if (workStatus == PdmStatus.READING)
-                {
-                    this.Info("姝e湪鍔犺浇锛岃鍕挎鍏�");
-                }
-                else if (workStatus == PdmStatus.UPLOADING)
-                {
-                    this.Info("姝e湪涓婁紶鍥剧焊锛岃鍕挎鍏�");
-                }
-            }
-        }
-
         private async Task PtrHandler2()
         {
             if (workStatus == PdmStatus.FREE)
@@ -1660,17 +1592,18 @@
                         // 鎵ц瑙勫垯妫�鏌ュ苟鑾峰彇缁撴灉
                         RefreshBomList(SwApp.IActiveDoc2);
                         DoCheckRule(out _);
+                        // 绛涢�夋墍鏈夊湪鐗╂枡鏄庣粏琛ㄤ腑锛屼笉璺宠繃妫�鏌ュ苟涓旀鏌ユ湭閫氳繃鐨勶紝绫诲瀷鏄姞宸ヤ欢鐨勬湭閫氳繃瀹℃牳鐨勶紝鍔犲伐浠跺鏍搁�氳繃鐨勪絾鍥剧焊鍙樻洿鐨�
                         List<string> errs = model.bomTreeReader.CacheList.Where(b =>
                             !b.inBom
                             && (
-                                !b.checkRuleOk
+                                (!b.skipCheck && !b.checkRuleOk)
                                 || (b.produceWay == "鍔犲伐浠�" && b.drawStatus != "completed")
                                 || (b.produceWay == "鍔犲伐浠�" && b.drawStatus == "completed" && b.auditedMd5Changed)
                             )
                         ).Select(b =>
                         {
                             string msg = $"銆恵b.partModel}銆�";
-                            if (!b.checkRuleOk)
+                            if (!b.skipCheck && !b.checkRuleOk)
                             {
                                 msg += "鏈�氳繃瑙勫垯妫�鏌�;";
                             }
@@ -1678,6 +1611,10 @@
                             {
                                 msg += "鏈�氳繃瀹℃牳;";
                             }
+                            if (b.produceWay == "鍔犲伐浠�" && b.drawStatus == "completed" && b.auditedMd5Changed)
+                            {
+                                msg += "鍥剧焊鍙樻洿鍚庢湭閲嶆柊瀹℃牳";
+                            }
                             return msg;
                         }
                         ).ToList();

--
Gitblit v1.9.1