From 31a636e735a0addc56e4f4527f500b7aa0874eb5 Mon Sep 17 00:00:00 2001 From: chr <chr@mailcom> Date: 星期五, 03 一月 2025 11:21:46 +0800 Subject: [PATCH] 改了一大堆; --- PdmSwPlugin.Main/SwAddIn/MainControl.cs | 28 .vs/SwPlugin/v17/DocumentLayout.backup.json | 190 +------- PdmSwPlugin.Common/Util/CustomPropertyUtil.cs | 5 PdmSwPlugin.Common/Util/Pdm/BomTreeReader.cs | 38 + PdmSwPlugin.Common/Control/RichHisWindow.xaml.cs | 2 PdmSwPlugin.Common/Entity/Pdm/PdmBom.cs | 111 +++- InnoSetupScript/PdmSwPlugin.iss | 2 PdmSwPlugin.Main/EventHandler/BaseAttacher.cs | 68 ++ PdmSwPlugin.PropertySetting/CommonSettingControl.xaml.cs | 136 ++++- PdmSw/SwAddin.cs | 7 PdmSwPlugin.DrawApprove/DrawApprove.xaml.cs | 32 + PdmSwPlugin.Common/Util/OpenDocContext.cs | 10 PdmSwPlugin.Main/Constant/PluginConst.cs | 2 PdmSwPlugin.Common/BomIniter/NameUtil.cs | 1 PdmSwPlugin.Common/Util/UI/MultiExWindow.xaml.cs | 11 PdmSwPlugin.PDM/Model/PdmControlModel.cs | 39 + PdmSwPlugin.PDM/PdmControl.xaml.cs | 325 +++++++++----- .vs/SwPlugin/v17/DocumentLayout.json | 190 +------- PdmSwPlugin.Common/BomIniter/YwtBomIniter.cs | 2 PdmSwPlugin.PDM/PdmControl.xaml | 98 +++ 20 files changed, 716 insertions(+), 581 deletions(-) diff --git a/.vs/SwPlugin/v17/DocumentLayout.backup.json b/.vs/SwPlugin/v17/DocumentLayout.backup.json index a0bc88a..6ae4a6d 100644 --- a/.vs/SwPlugin/v17/DocumentLayout.backup.json +++ b/.vs/SwPlugin/v17/DocumentLayout.backup.json @@ -3,190 +3,64 @@ "WorkspaceRootPath": "D:\\Workspace\\PdmSwPlugin2\\", "Documents": [ { - "AbsoluteMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|d:\\workspace\\pdmswplugin2\\pdmswplugin.main\\constant\\pluginconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|solutionrelative:pdmswplugin.main\\constant\\pluginconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + "AbsoluteMoniker": "D:0:0:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|d:\\workspace\\pdmswplugin2\\pdmswplugin.propertysetting\\panel\\jgjpartpanel.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|solutionrelative:pdmswplugin.propertysetting\\panel\\jgjpartpanel.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { - "AbsoluteMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|D:\\Workspace\\PdmSwPlugin2\\pdmswplugin.pdm\\pdmcontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|solutionrelative:pdmswplugin.pdm\\pdmcontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + "AbsoluteMoniker": "D:0:0:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|d:\\workspace\\pdmswplugin2\\pdmswplugin.propertysetting\\commonsettingcontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|solutionrelative:pdmswplugin.propertysetting\\commonsettingcontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { - "AbsoluteMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|D:\\Workspace\\PdmSwPlugin2\\pdmswplugin.common\\entity\\pdm\\pdmbom.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|solutionrelative:pdmswplugin.common\\entity\\pdm\\pdmbom.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|D:\\Workspace\\PdmSwPlugin2\\pdmswplugin.pdm\\pdmcontrol.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", - "RelativeMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|solutionrelative:pdmswplugin.pdm\\pdmcontrol.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" - }, - { - "AbsoluteMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|D:\\Workspace\\PdmSwPlugin2\\pdmswplugin.common\\util\\pdm\\bomtreereader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|solutionrelative:pdmswplugin.common\\util\\pdm\\bomtreereader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|D:\\Workspace\\PdmSwPlugin2\\pdmswplugin.common\\bominiter\\ywtbominiter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|solutionrelative:pdmswplugin.common\\bominiter\\ywtbominiter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{3AEC586C-B22A-4ADB-B4AB-10AA660F79EC}|Md5Reader\\Md5Reader.csproj|D:\\Workspace\\PdmSwPlugin2\\md5reader\\mainwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{3AEC586C-B22A-4ADB-B4AB-10AA660F79EC}|Md5Reader\\Md5Reader.csproj|solutionrelative:md5reader\\mainwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|D:\\Workspace\\PdmSwPlugin2\\pdmswplugin.main\\maincontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|solutionrelative:pdmswplugin.main\\maincontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{CB3551F6-0C4A-4537-9A04-1E40CD475479}|SolidWorksListener\\SolidWorksListener.csproj|D:\\Workspace\\PdmSwPlugin2\\solidworkslistener\\listener.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{CB3551F6-0C4A-4537-9A04-1E40CD475479}|SolidWorksListener\\SolidWorksListener.csproj|solutionrelative:solidworkslistener\\listener.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{4536570F-AD3C-4D24-870A-63C9E9CE0FED}|WpfUI\\WpfUI.csproj|D:\\Workspace\\PdmSwPlugin2\\wpfui\\asyncattacher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{4536570F-AD3C-4D24-870A-63C9E9CE0FED}|WpfUI\\WpfUI.csproj|solutionrelative:wpfui\\asyncattacher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{7ACEDAA9-2DE8-4485-837A-E7D58812A6DC}|PdmSw\\PdmSw.csproj|D:\\Workspace\\PdmSwPlugin2\\pdmsw\\swaddin.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{7ACEDAA9-2DE8-4485-837A-E7D58812A6DC}|PdmSw\\PdmSw.csproj|solutionrelative:pdmsw\\swaddin.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + "AbsoluteMoniker": "D:0:0:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|d:\\workspace\\pdmswplugin2\\pdmswplugin.propertysetting\\panel\\jgjpartpanel.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", + "RelativeMoniker": "D:0:0:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|solutionrelative:pdmswplugin.propertysetting\\panel\\jgjpartpanel.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" } ], "DocumentGroupContainers": [ { - "Orientation": 0, + "Orientation": 1, "VerticalTabListWidth": 256, "DocumentGroups": [ { - "DockedWidth": 200, - "SelectedChildIndex": 4, + "DockedHeight": 530, + "SelectedChildIndex": 1, "Children": [ { "$type": "Document", - "DocumentIndex": 5, - "Title": "YwtBomIniter.cs", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\BomIniter\\YwtBomIniter.cs", - "RelativeDocumentMoniker": "PdmSwPlugin.Common\\BomIniter\\YwtBomIniter.cs", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\BomIniter\\YwtBomIniter.cs", - "RelativeToolTip": "PdmSwPlugin.Common\\BomIniter\\YwtBomIniter.cs", - "ViewState": "AgIAAEEAAAAAAAAAAAAUwBIAAAAXAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-31T09:13:45.395Z" - }, - { - "$type": "Document", - "DocumentIndex": 3, - "Title": "PdmControl.xaml", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PDM\\PdmControl.xaml", - "RelativeDocumentMoniker": "PdmSwPlugin.PDM\\PdmControl.xaml", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PDM\\PdmControl.xaml", - "RelativeToolTip": "PdmSwPlugin.PDM\\PdmControl.xaml", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", - "WhenOpened": "2024-10-31T09:12:36.773Z" - }, - { - "$type": "Document", "DocumentIndex": 1, - "Title": "PdmControl.xaml.cs", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PDM\\PdmControl.xaml.cs", - "RelativeDocumentMoniker": "PdmSwPlugin.PDM\\PdmControl.xaml.cs", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PDM\\PdmControl.xaml.cs", - "RelativeToolTip": "PdmSwPlugin.PDM\\PdmControl.xaml.cs", - "ViewState": "AgIAALUEAAAAAAAAAAAuwMUEAABAAAAAAAAAAA==", + "Title": "CommonSettingControl.xaml.cs", + "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PropertySetting\\CommonSettingControl.xaml.cs", + "RelativeDocumentMoniker": "PdmSwPlugin.PropertySetting\\CommonSettingControl.xaml.cs", + "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PropertySetting\\CommonSettingControl.xaml.cs", + "RelativeToolTip": "PdmSwPlugin.PropertySetting\\CommonSettingControl.xaml.cs", + "ViewState": "AgIAAAoBAAAAAAAAAAD4vx0BAAAgAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-31T08:50:14.505Z" - }, - { - "$type": "Document", - "DocumentIndex": 4, - "Title": "BomTreeReader.cs", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\Util\\Pdm\\BomTreeReader.cs", - "RelativeDocumentMoniker": "PdmSwPlugin.Common\\Util\\Pdm\\BomTreeReader.cs", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\Util\\Pdm\\BomTreeReader.cs", - "RelativeToolTip": "PdmSwPlugin.Common\\Util\\Pdm\\BomTreeReader.cs", - "ViewState": "AgIAAPsAAAAAAAAAAAAUwBABAAAgAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-31T08:33:38.547Z" + "WhenOpened": "2025-01-02T06:15:07.965Z", + "EditorCaption": "" }, { "$type": "Document", "DocumentIndex": 0, - "Title": "PluginConst.cs", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\Constant\\PluginConst.cs", - "RelativeDocumentMoniker": "PdmSwPlugin.Main\\Constant\\PluginConst.cs", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\Constant\\PluginConst.cs", - "RelativeToolTip": "PdmSwPlugin.Main\\Constant\\PluginConst.cs", - "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAA==", + "Title": "JgjPartPanel.xaml.cs", + "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml.cs", + "RelativeDocumentMoniker": "PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml.cs", + "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml.cs", + "RelativeToolTip": "PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml.cs", + "ViewState": "AgIAAF4BAAAAAAAAAAAQwIABAABGAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-14T04:01:41.756Z", + "WhenOpened": "2025-01-02T06:10:11.494Z", "EditorCaption": "" }, { "$type": "Document", "DocumentIndex": 2, - "Title": "PdmBom.cs", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\Entity\\Pdm\\PdmBom.cs", - "RelativeDocumentMoniker": "PdmSwPlugin.Common\\Entity\\Pdm\\PdmBom.cs", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\Entity\\Pdm\\PdmBom.cs", - "RelativeToolTip": "PdmSwPlugin.Common\\Entity\\Pdm\\PdmBom.cs", - "ViewState": "AgIAAIgAAAAAAAAAAAA+wJYAAAAdAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-31T08:32:38.632Z" - }, - { - "$type": "Document", - "DocumentIndex": 6, - "Title": "MainWindow.xaml.cs", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\Md5Reader\\MainWindow.xaml.cs", - "RelativeDocumentMoniker": "Md5Reader\\MainWindow.xaml.cs", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\Md5Reader\\MainWindow.xaml.cs", - "RelativeToolTip": "Md5Reader\\MainWindow.xaml.cs", - "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAABDAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-30T02:39:22.183Z" - }, - { - "$type": "Document", - "DocumentIndex": 7, - "Title": "MainControl.xaml.cs", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\MainControl.xaml.cs", - "RelativeDocumentMoniker": "PdmSwPlugin.Main\\MainControl.xaml.cs", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\MainControl.xaml.cs", - "RelativeToolTip": "PdmSwPlugin.Main\\MainControl.xaml.cs", - "ViewState": "AgIAAMAAAAAAAAAAAAAYwMoAAAAAAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-14T04:24:56.766Z" - }, - { - "$type": "Document", - "DocumentIndex": 8, - "Title": "Listener.cs", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\SolidWorksListener\\Listener.cs", - "RelativeDocumentMoniker": "SolidWorksListener\\Listener.cs", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\SolidWorksListener\\Listener.cs", - "RelativeToolTip": "SolidWorksListener\\Listener.cs", - "ViewState": "AgIAANAAAAAAAAAAAADwv90AAAAiAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-14T03:42:50.289Z" - }, - { - "$type": "Document", - "DocumentIndex": 9, - "Title": "AsyncAttacher.cs", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\WpfUI\\AsyncAttacher.cs", - "RelativeDocumentMoniker": "WpfUI\\AsyncAttacher.cs", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\WpfUI\\AsyncAttacher.cs", - "RelativeToolTip": "WpfUI\\AsyncAttacher.cs", - "ViewState": "AgIAAAAAAAAAAAAAAAAAAA8AAAAJAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-14T03:36:12.415Z" - }, - { - "$type": "Document", - "DocumentIndex": 10, - "Title": "SwAddin.cs", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSw\\SwAddin.cs", - "RelativeDocumentMoniker": "PdmSw\\SwAddin.cs", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSw\\SwAddin.cs", - "RelativeToolTip": "PdmSw\\SwAddin.cs", - "ViewState": "AgIAABMBAAAAAAAAAAAkwCYBAAAkAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-14T01:09:55.509Z" + "Title": "JgjPartPanel.xaml", + "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml", + "RelativeDocumentMoniker": "PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml", + "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml", + "RelativeToolTip": "PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2025-01-02T06:07:52.955Z", + "EditorCaption": "" } ] } diff --git a/.vs/SwPlugin/v17/DocumentLayout.json b/.vs/SwPlugin/v17/DocumentLayout.json index a0bc88a..6ae4a6d 100644 --- a/.vs/SwPlugin/v17/DocumentLayout.json +++ b/.vs/SwPlugin/v17/DocumentLayout.json @@ -3,190 +3,64 @@ "WorkspaceRootPath": "D:\\Workspace\\PdmSwPlugin2\\", "Documents": [ { - "AbsoluteMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|d:\\workspace\\pdmswplugin2\\pdmswplugin.main\\constant\\pluginconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|solutionrelative:pdmswplugin.main\\constant\\pluginconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + "AbsoluteMoniker": "D:0:0:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|d:\\workspace\\pdmswplugin2\\pdmswplugin.propertysetting\\panel\\jgjpartpanel.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|solutionrelative:pdmswplugin.propertysetting\\panel\\jgjpartpanel.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { - "AbsoluteMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|D:\\Workspace\\PdmSwPlugin2\\pdmswplugin.pdm\\pdmcontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|solutionrelative:pdmswplugin.pdm\\pdmcontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + "AbsoluteMoniker": "D:0:0:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|d:\\workspace\\pdmswplugin2\\pdmswplugin.propertysetting\\commonsettingcontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|solutionrelative:pdmswplugin.propertysetting\\commonsettingcontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { - "AbsoluteMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|D:\\Workspace\\PdmSwPlugin2\\pdmswplugin.common\\entity\\pdm\\pdmbom.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|solutionrelative:pdmswplugin.common\\entity\\pdm\\pdmbom.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|D:\\Workspace\\PdmSwPlugin2\\pdmswplugin.pdm\\pdmcontrol.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", - "RelativeMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|solutionrelative:pdmswplugin.pdm\\pdmcontrol.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" - }, - { - "AbsoluteMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|D:\\Workspace\\PdmSwPlugin2\\pdmswplugin.common\\util\\pdm\\bomtreereader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|solutionrelative:pdmswplugin.common\\util\\pdm\\bomtreereader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|D:\\Workspace\\PdmSwPlugin2\\pdmswplugin.common\\bominiter\\ywtbominiter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|solutionrelative:pdmswplugin.common\\bominiter\\ywtbominiter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{3AEC586C-B22A-4ADB-B4AB-10AA660F79EC}|Md5Reader\\Md5Reader.csproj|D:\\Workspace\\PdmSwPlugin2\\md5reader\\mainwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{3AEC586C-B22A-4ADB-B4AB-10AA660F79EC}|Md5Reader\\Md5Reader.csproj|solutionrelative:md5reader\\mainwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|D:\\Workspace\\PdmSwPlugin2\\pdmswplugin.main\\maincontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|solutionrelative:pdmswplugin.main\\maincontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{CB3551F6-0C4A-4537-9A04-1E40CD475479}|SolidWorksListener\\SolidWorksListener.csproj|D:\\Workspace\\PdmSwPlugin2\\solidworkslistener\\listener.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{CB3551F6-0C4A-4537-9A04-1E40CD475479}|SolidWorksListener\\SolidWorksListener.csproj|solutionrelative:solidworkslistener\\listener.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{4536570F-AD3C-4D24-870A-63C9E9CE0FED}|WpfUI\\WpfUI.csproj|D:\\Workspace\\PdmSwPlugin2\\wpfui\\asyncattacher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{4536570F-AD3C-4D24-870A-63C9E9CE0FED}|WpfUI\\WpfUI.csproj|solutionrelative:wpfui\\asyncattacher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{7ACEDAA9-2DE8-4485-837A-E7D58812A6DC}|PdmSw\\PdmSw.csproj|D:\\Workspace\\PdmSwPlugin2\\pdmsw\\swaddin.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{7ACEDAA9-2DE8-4485-837A-E7D58812A6DC}|PdmSw\\PdmSw.csproj|solutionrelative:pdmsw\\swaddin.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + "AbsoluteMoniker": "D:0:0:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|d:\\workspace\\pdmswplugin2\\pdmswplugin.propertysetting\\panel\\jgjpartpanel.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", + "RelativeMoniker": "D:0:0:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|solutionrelative:pdmswplugin.propertysetting\\panel\\jgjpartpanel.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" } ], "DocumentGroupContainers": [ { - "Orientation": 0, + "Orientation": 1, "VerticalTabListWidth": 256, "DocumentGroups": [ { - "DockedWidth": 200, - "SelectedChildIndex": 4, + "DockedHeight": 530, + "SelectedChildIndex": 1, "Children": [ { "$type": "Document", - "DocumentIndex": 5, - "Title": "YwtBomIniter.cs", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\BomIniter\\YwtBomIniter.cs", - "RelativeDocumentMoniker": "PdmSwPlugin.Common\\BomIniter\\YwtBomIniter.cs", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\BomIniter\\YwtBomIniter.cs", - "RelativeToolTip": "PdmSwPlugin.Common\\BomIniter\\YwtBomIniter.cs", - "ViewState": "AgIAAEEAAAAAAAAAAAAUwBIAAAAXAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-31T09:13:45.395Z" - }, - { - "$type": "Document", - "DocumentIndex": 3, - "Title": "PdmControl.xaml", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PDM\\PdmControl.xaml", - "RelativeDocumentMoniker": "PdmSwPlugin.PDM\\PdmControl.xaml", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PDM\\PdmControl.xaml", - "RelativeToolTip": "PdmSwPlugin.PDM\\PdmControl.xaml", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", - "WhenOpened": "2024-10-31T09:12:36.773Z" - }, - { - "$type": "Document", "DocumentIndex": 1, - "Title": "PdmControl.xaml.cs", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PDM\\PdmControl.xaml.cs", - "RelativeDocumentMoniker": "PdmSwPlugin.PDM\\PdmControl.xaml.cs", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PDM\\PdmControl.xaml.cs", - "RelativeToolTip": "PdmSwPlugin.PDM\\PdmControl.xaml.cs", - "ViewState": "AgIAALUEAAAAAAAAAAAuwMUEAABAAAAAAAAAAA==", + "Title": "CommonSettingControl.xaml.cs", + "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PropertySetting\\CommonSettingControl.xaml.cs", + "RelativeDocumentMoniker": "PdmSwPlugin.PropertySetting\\CommonSettingControl.xaml.cs", + "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PropertySetting\\CommonSettingControl.xaml.cs", + "RelativeToolTip": "PdmSwPlugin.PropertySetting\\CommonSettingControl.xaml.cs", + "ViewState": "AgIAAAoBAAAAAAAAAAD4vx0BAAAgAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-31T08:50:14.505Z" - }, - { - "$type": "Document", - "DocumentIndex": 4, - "Title": "BomTreeReader.cs", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\Util\\Pdm\\BomTreeReader.cs", - "RelativeDocumentMoniker": "PdmSwPlugin.Common\\Util\\Pdm\\BomTreeReader.cs", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\Util\\Pdm\\BomTreeReader.cs", - "RelativeToolTip": "PdmSwPlugin.Common\\Util\\Pdm\\BomTreeReader.cs", - "ViewState": "AgIAAPsAAAAAAAAAAAAUwBABAAAgAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-31T08:33:38.547Z" + "WhenOpened": "2025-01-02T06:15:07.965Z", + "EditorCaption": "" }, { "$type": "Document", "DocumentIndex": 0, - "Title": "PluginConst.cs", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\Constant\\PluginConst.cs", - "RelativeDocumentMoniker": "PdmSwPlugin.Main\\Constant\\PluginConst.cs", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\Constant\\PluginConst.cs", - "RelativeToolTip": "PdmSwPlugin.Main\\Constant\\PluginConst.cs", - "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAA==", + "Title": "JgjPartPanel.xaml.cs", + "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml.cs", + "RelativeDocumentMoniker": "PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml.cs", + "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml.cs", + "RelativeToolTip": "PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml.cs", + "ViewState": "AgIAAF4BAAAAAAAAAAAQwIABAABGAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-14T04:01:41.756Z", + "WhenOpened": "2025-01-02T06:10:11.494Z", "EditorCaption": "" }, { "$type": "Document", "DocumentIndex": 2, - "Title": "PdmBom.cs", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\Entity\\Pdm\\PdmBom.cs", - "RelativeDocumentMoniker": "PdmSwPlugin.Common\\Entity\\Pdm\\PdmBom.cs", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\Entity\\Pdm\\PdmBom.cs", - "RelativeToolTip": "PdmSwPlugin.Common\\Entity\\Pdm\\PdmBom.cs", - "ViewState": "AgIAAIgAAAAAAAAAAAA+wJYAAAAdAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-31T08:32:38.632Z" - }, - { - "$type": "Document", - "DocumentIndex": 6, - "Title": "MainWindow.xaml.cs", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\Md5Reader\\MainWindow.xaml.cs", - "RelativeDocumentMoniker": "Md5Reader\\MainWindow.xaml.cs", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\Md5Reader\\MainWindow.xaml.cs", - "RelativeToolTip": "Md5Reader\\MainWindow.xaml.cs", - "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAABDAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-30T02:39:22.183Z" - }, - { - "$type": "Document", - "DocumentIndex": 7, - "Title": "MainControl.xaml.cs", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\MainControl.xaml.cs", - "RelativeDocumentMoniker": "PdmSwPlugin.Main\\MainControl.xaml.cs", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\MainControl.xaml.cs", - "RelativeToolTip": "PdmSwPlugin.Main\\MainControl.xaml.cs", - "ViewState": "AgIAAMAAAAAAAAAAAAAYwMoAAAAAAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-14T04:24:56.766Z" - }, - { - "$type": "Document", - "DocumentIndex": 8, - "Title": "Listener.cs", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\SolidWorksListener\\Listener.cs", - "RelativeDocumentMoniker": "SolidWorksListener\\Listener.cs", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\SolidWorksListener\\Listener.cs", - "RelativeToolTip": "SolidWorksListener\\Listener.cs", - "ViewState": "AgIAANAAAAAAAAAAAADwv90AAAAiAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-14T03:42:50.289Z" - }, - { - "$type": "Document", - "DocumentIndex": 9, - "Title": "AsyncAttacher.cs", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\WpfUI\\AsyncAttacher.cs", - "RelativeDocumentMoniker": "WpfUI\\AsyncAttacher.cs", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\WpfUI\\AsyncAttacher.cs", - "RelativeToolTip": "WpfUI\\AsyncAttacher.cs", - "ViewState": "AgIAAAAAAAAAAAAAAAAAAA8AAAAJAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-14T03:36:12.415Z" - }, - { - "$type": "Document", - "DocumentIndex": 10, - "Title": "SwAddin.cs", - "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSw\\SwAddin.cs", - "RelativeDocumentMoniker": "PdmSw\\SwAddin.cs", - "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSw\\SwAddin.cs", - "RelativeToolTip": "PdmSw\\SwAddin.cs", - "ViewState": "AgIAABMBAAAAAAAAAAAkwCYBAAAkAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-14T01:09:55.509Z" + "Title": "JgjPartPanel.xaml", + "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml", + "RelativeDocumentMoniker": "PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml", + "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml", + "RelativeToolTip": "PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2025-01-02T06:07:52.955Z", + "EditorCaption": "" } ] } diff --git a/InnoSetupScript/PdmSwPlugin.iss b/InnoSetupScript/PdmSwPlugin.iss index b520d2d..23494a5 100644 --- a/InnoSetupScript/PdmSwPlugin.iss +++ b/InnoSetupScript/PdmSwPlugin.iss @@ -7,7 +7,7 @@ ; 自动更新程序路径 #define AutoUpdaterDir = "D:\Workspace\PdmSwPlugin2\PdmSw\bin\x64\Release\AutoUpdater\" ; 版本 -#define Version = "_0.0.0.43_改" +#define Version = "_0.0.0.45_审核质量" ; 生成的Installer存放路径 #define OutPutDir = "Z:\Output" diff --git a/PdmSw/SwAddin.cs b/PdmSw/SwAddin.cs index 937fea0..96adc0a 100644 --- a/PdmSw/SwAddin.cs +++ b/PdmSw/SwAddin.cs @@ -294,6 +294,7 @@ KeyPreview = true, Dock = DockStyle.Fill }; + mainForm.FormClosed += MainForm_FormClosed; mainForm.Controls.Add(host); IntPtr ptr = mainForm.Handle; // IntPtr ptr = WindowIntPtrUtil.FindWindow(null, "Window1"); @@ -301,6 +302,12 @@ mainForm.WindowState = FormWindowState.Maximized; } + private void MainForm_FormClosed(object sender, FormClosedEventArgs e) + { + /// 关闭时先执行DeActiveHandler,然后执行这个 + + } + private void LoadPlugins() { // 读图,估计是panel的图标 diff --git a/PdmSwPlugin.Common/BomIniter/NameUtil.cs b/PdmSwPlugin.Common/BomIniter/NameUtil.cs index f3bb049..268e5be 100644 --- a/PdmSwPlugin.Common/BomIniter/NameUtil.cs +++ b/PdmSwPlugin.Common/BomIniter/NameUtil.cs @@ -1,5 +1,6 @@ 锘縰sing PdmSwPlugin.Common.Setting; using System; +using System.Text.RegularExpressions; namespace PdmSwPlugin.Common { diff --git a/PdmSwPlugin.Common/BomIniter/YwtBomIniter.cs b/PdmSwPlugin.Common/BomIniter/YwtBomIniter.cs index 6b105f0..3b6379e 100644 --- a/PdmSwPlugin.Common/BomIniter/YwtBomIniter.cs +++ b/PdmSwPlugin.Common/BomIniter/YwtBomIniter.cs @@ -27,12 +27,14 @@ string jgjNameRegx = CustomerSetting.Instance["jgjNameRegx"]; string standardNameRegx = CustomerSetting.Instance["standardNameRegx"]; + string specialJgjRegx = CustomerSetting.Instance["specialJgjRegx"]; if (Regex.IsMatch(childName, jgjNameRegx)) { if (bom._drawInfo != null) { bom._drawInfo.HistoryData = NameUtil.IsHistoryDoc(childName); + bom._drawInfo.isSpecial = Regex.IsMatch(childName, specialJgjRegx); } string docType = bom.properties.Get("鏂囦欢鏍煎紡"); diff --git a/PdmSwPlugin.Common/Control/RichHisWindow.xaml.cs b/PdmSwPlugin.Common/Control/RichHisWindow.xaml.cs index ce3c459..877c658 100644 --- a/PdmSwPlugin.Common/Control/RichHisWindow.xaml.cs +++ b/PdmSwPlugin.Common/Control/RichHisWindow.xaml.cs @@ -55,7 +55,7 @@ InitializeComponent(); this.title = title; DataContext = this; - if (hisList == null) + if (hisList == null || hisList.Count <= 0) { this.HisList = new ObservableCollection<DrawAuditHis>(); } diff --git a/PdmSwPlugin.Common/Entity/Pdm/PdmBom.cs b/PdmSwPlugin.Common/Entity/Pdm/PdmBom.cs index 7cddf17..5145fec 100644 --- a/PdmSwPlugin.Common/Entity/Pdm/PdmBom.cs +++ b/PdmSwPlugin.Common/Entity/Pdm/PdmBom.cs @@ -85,6 +85,14 @@ set => RaiseAndSetIfChanged(ref _status, value); } + private bool? _inKeeDeeDb; + + public bool? inKeeDeeDb + { + get => _inKeeDeeDb; + set => RaiseAndSetIfChanged(ref _inKeeDeeDb, value); + } + private string _auditId; public string auditId { @@ -116,6 +124,26 @@ /// </summary> public class DrawInfo : NotifyBase { + /// <summary> + /// true璇存槑娌℃湁宸ョ▼鍥� + /// </summary> + public bool _noDrw = false; + + public bool noDrw + { + get => _noDrw; + set => RaiseAndSetIfChanged(ref _noDrw, value); + } + + public bool _inKeeDeeDb = false; + + private bool _isSpecial; + public bool isSpecial + { + get => _isSpecial; + set => RaiseAndSetIfChanged(ref _isSpecial, value); + } + /// <summary> /// 3Dmd5 /// </summary> @@ -169,6 +197,10 @@ public List<string> errMessages { get; set; } public Dictionary<string, string> allProperties { get; set; } + + /// <summary> + /// 涓篢rue璇存槑娌℃湁宸ョ▼鍥� + /// </summary> } [Serializable] @@ -197,6 +229,11 @@ set => RaiseAndSetIfChanged(ref _treeId, value); } + /// <summary> + /// true璇存槑娌℃湁宸ョ▼鍥� + /// </summary> + public bool noDrw => (_drawInfo?.noDrw == true); + public string id => BomInfo?.id; public string name => BomInfo?.name; public string partNo => BomInfo?.partNo; @@ -222,10 +259,6 @@ public string checkUserId => BomInfo?.checkUserId; public string checkUserName => BomInfo?.checkUserName; - #region 瑙勫垯妫�鏌ョ浉鍏冲瓧娈� - - #endregion - #region 鍥剧焊瀹℃牳鐩稿叧瀛楁 public string drawStatus => BomInfo?.status; public string requestUserId => BomInfo?.requestUserId; @@ -244,8 +277,15 @@ /// <summary> /// 鍥剧焊鏄惁鍙戠敓鍙樻洿 闈炲巻鍙插浘绾哥湅2D鍥綧D5 鍘嗗彶鍥剧焊鐪嬩竴鑷存�ф鏌ユ病閫氳繃 /// </summary> - public bool localDocChanged => (!IsHistoryData && localD2Md5 != _drawInfo?.d2Md5) - || (IsHistoryData && _drawInfo?.checkRuleResult == 2); //localD3Md5 != _drawInfo?.d3Md5; + public bool localDocChanged + { + get + { + //if (!IsHistoryData) return localD2Md5 != _drawInfo?.d2Md5; //(!IsHistoryData && localD2Md5 != _drawInfo?.d2Md5) + //return (IsHistoryData && _drawInfo?.checkRuleResult == 2); + return false; + } + } /// <summary> /// 瑙勫垯妫�鏌ョ粨鏋� /// </summary> @@ -277,24 +317,29 @@ { // 鎵句笉鍒版枃妗g殑涓嶅鏍� if (lost) return false; - // 涓嶅湪鐗╂枡鏄庣粏琛ㄤ腑涓嶅鏍� - if (ExcludeFromBOM) return false; - // 妯$粍涓嶅鏍� - if (produceWay == "妯$粍") return false; + // 璺宠繃妫�鏌ョ殑涓嶅 + if (skipCheck) return false; + // 杩涘叆绯荤粺鐨勪笉瀹℃牳 + if (BomInfo.inKeeDeeDb == true) return false; + //if (_drawInfo.isSpecial) return false; // 寰呭鏍哥殑涓嶉噸澶嶆彁浜� if (drawStatus == "submitted" || drawStatus == "resubmitted") return false; - if (IsHistoryData) - { - // 鍘嗗彶鍥剧焊鍙鏍镐竴鑷存�т笉閫氳繃鐨� 鍜岃椹冲洖鐨� - return _drawInfo.checkRuleResult == 2 || drawStatus == "rejected"; - } - else - { - // 闈炲巻鍙插浘绾稿彧瀹℃牳 鍏佽瀹℃牳鐨勫姞宸ヤ欢 - return produceWay == "鍔犲伐浠�" - && (drawStatus != "submitted" && drawStatus != "resubmitted") - && (drawStatus != "completed" || localDocChanged); - } + return produceWay == "鍔犲伐浠�" && (drawStatus != "submitted" && drawStatus != "resubmitted") + && (drawStatus != "completed"); + + /// 浠ュ墠杩樿鍒嗗浘绾稿彉鏇达紝鐜板湪涓嶅紕浜� + //if (IsHistoryData) + //{ + // // 鍘嗗彶鍥剧焊鍙鏍镐竴鑷存�т笉閫氳繃鐨� 鍜岃椹冲洖鐨� + // return _drawInfo.checkRuleResult == 2 || drawStatus == "rejected"; + //} + //else + //{ + // // 闈炲巻鍙插浘绾稿彧瀹℃牳 鍏佽瀹℃牳鐨勫姞宸ヤ欢 + // return produceWay == "鍔犲伐浠�" + // && (drawStatus != "submitted" && drawStatus != "resubmitted") + // && (drawStatus != "completed" || localDocChanged); + //} } } @@ -304,18 +349,18 @@ /// <returns></returns> public string NeedStopCheckIn() { - if (produceWay == "妯$粍") return null; - if (ExcludeFromBOM) return null; + if (skipCheck) return null; + if (BomInfo.inKeeDeeDb == true) return null; if (IsHistoryData) { bool err = false; string msg = $"鍘嗗彶鍥剧焊銆恵partModel}銆�"; - if (localDocChanged) + if (localDocChanged && !noDrw) { err = true; msg += "鍙樻洿鍚庢湭閲嶆柊瀹℃牳;"; } - else if (drawStatus == "rejected" || drawStatus == "submitted" || drawStatus == "resubmitted") + if ((drawStatus == "rejected" || drawStatus == "submitted" || drawStatus == "resubmitted") && BomInfo.inKeeDeeDb != true) { err = true; msg += "鏈�氳繃瀹℃牳"; @@ -325,6 +370,11 @@ { err = true; msg += "琚殣钘�;"; + } + if (noDrw) + { + err = true; + msg += "鏈壘鍒板伐绋嬪浘"; } return err ? msg : null; } @@ -342,16 +392,21 @@ error = true; msg += "琚殣钘�;"; } - if (produceWay == "鍔犲伐浠�" && drawStatus != "completed") + if (produceWay == "鍔犲伐浠�" && drawStatus != "completed" && BomInfo.inKeeDeeDb != true) { error = true; msg += "鏈�氳繃瀹℃牳;"; } - if (produceWay == "鍔犲伐浠�" && drawStatus == "completed" && localDocChanged) + if (produceWay == "鍔犲伐浠�" && drawStatus == "completed" && localDocChanged && !noDrw) { error = true; msg += "鍥剧焊鍙樻洿鍚庢湭閲嶆柊瀹℃牳"; } + if (noDrw) + { + error = true; + msg += "鏈壘鍒板伐绋嬪浘"; + } return error ? msg : null; } return null; diff --git a/PdmSwPlugin.Common/Util/CustomPropertyUtil.cs b/PdmSwPlugin.Common/Util/CustomPropertyUtil.cs index 136ad88..79b7a5a 100644 --- a/PdmSwPlugin.Common/Util/CustomPropertyUtil.cs +++ b/PdmSwPlugin.Common/Util/CustomPropertyUtil.cs @@ -212,8 +212,9 @@ /// </summary> /// <param name="doc"></param> /// <returns></returns> - public static bool ClearAllCustomProperties(ModelDoc2 doc) + public static bool ClearAllCustomProperties(ModelDoc2 doc, out bool needSave) { + needSave = false; if (doc == null) return false; Configuration activeConfig = doc.GetActiveConfiguration() as Configuration; if (activeConfig == null) @@ -230,8 +231,8 @@ } foreach (var name in names) { - cpm.Delete2(name); + needSave = true; } return true; } diff --git a/PdmSwPlugin.Common/Util/OpenDocContext.cs b/PdmSwPlugin.Common/Util/OpenDocContext.cs index 217199d..872cc0a 100644 --- a/PdmSwPlugin.Common/Util/OpenDocContext.cs +++ b/PdmSwPlugin.Common/Util/OpenDocContext.cs @@ -5,18 +5,20 @@ { public class OpenDocContext { - public static readonly Hashtable OpenDocs = new Hashtable(); + public static readonly Hashtable OpenDocs = Hashtable.Synchronized(new Hashtable()); - public static void AddDoc(ModelDoc2 doc, object handler) { + public static void AddDoc(ModelDoc2 doc, object handler) + { OpenDocs.Add(doc, handler); } - public static bool IsOpenDoc(ModelDoc2 doc) { + public static bool IsOpenDoc(ModelDoc2 doc) + { return OpenDocs.ContainsKey(doc); } public static void RemoveDoc(ModelDoc2 doc) - { + { OpenDocs.Remove(doc); } diff --git a/PdmSwPlugin.Common/Util/Pdm/BomTreeReader.cs b/PdmSwPlugin.Common/Util/Pdm/BomTreeReader.cs index f8bba5f..d0d5981 100644 --- a/PdmSwPlugin.Common/Util/Pdm/BomTreeReader.cs +++ b/PdmSwPlugin.Common/Util/Pdm/BomTreeReader.cs @@ -41,6 +41,8 @@ private int bomOrder = 0; + public ConcurrentQueue<string> needSaveList { get; set; } = new ConcurrentQueue<string>(); + /// <summary> /// 澶氱嚎绋嬩粠鎵撳紑鐨勬牴鏂囨。涓鍙朆OM淇℃伅 /// </summary> @@ -59,10 +61,22 @@ { return; } - CustomPropertyUtil.ClearAllCustomProperties(sldDoc); - Component2 rootComponent = activeConfiguration.GetRootComponent3(false); string path = rootComponent.GetPathName(); + + CustomPropertyUtil.ClearAllCustomProperties(sldDoc, out bool needSave); + if (needSave) + { + int err = 0, warn = 0; + if (sldDoc.Save3((int)swSaveAsOptions_e.swSaveAsOptions_AvoidRebuildOnSave, ref err, ref warn)) + { + needSaveList.Enqueue(path); + } + else + { + needSaveList.Enqueue($"{path}鑷姩淇濆瓨澶辫触锛屽紓甯镐唬鐮�:{err}"); + } + } BomInfo bomInfo = GetBomInfoFromDoc(rootComponent); PdmBom bom = ConcatCacheBom(bomInfo, 0, null, rootComponent); @@ -123,9 +137,22 @@ { Component2 childComponent = child as Component2; ModelDoc2 childDoc = childComponent.GetModelDoc2(); - // 娓呮鏍煎紡涓嶅鐨勫睘鎬� - CustomPropertyUtil.ClearAllCustomProperties(childDoc); string childPath = childComponent.GetPathName(); + // 娓呴櫎鏍煎紡涓嶅鐨勫睘鎬� + CustomPropertyUtil.ClearAllCustomProperties(childDoc, out bool needSave); + if (needSave) + { + int err = 0, warn = 0; + if (childDoc.Save3((int)swSaveAsOptions_e.swSaveAsOptions_AvoidRebuildOnSave, ref err, ref warn)) + { + needSaveList.Enqueue(childPath); + } + else + { + needSaveList.Enqueue($"{childPath}鑷姩淇濆瓨澶辫触锛屽紓甯镐唬鐮�:{err}"); + } + } + PdmBom bom = null; if (BomInfoCache.ContainsKey(childPath)) { @@ -203,6 +230,7 @@ CacheList = new ConcurrentQueue<PdmBom>(); TreeList = new ConcurrentQueue<PdmBom>(); BomInfoCache = new ConcurrentDictionary<string, BomInfo>(); + needSaveList = new ConcurrentQueue<string>(); GetBomsFromDocAsync(doc); return TreeList.OrderBy(e => e.name).ToList(); ; } @@ -216,7 +244,7 @@ ModelDoc2 doc = component.GetModelDoc2(); // 鐩存帴鐢ㄦ枃浠跺悕锛屼互鍏� SolidWorks 鍥犱负鏈夊涓浉鍚屾枃浠惰�屾妸 Name2 鍔犱簡 -N 鐨勫悗缂�鍚� string childPath = component.GetPathName(); - string childName = Path.GetFileNameWithoutExtension(childPath); + string childName = System.IO.Path.GetFileNameWithoutExtension(childPath); if (ModelUtil.Is_Mn(childName)) { diff --git a/PdmSwPlugin.Common/Util/UI/MultiExWindow.xaml.cs b/PdmSwPlugin.Common/Util/UI/MultiExWindow.xaml.cs index 5083893..0baccba 100644 --- a/PdmSwPlugin.Common/Util/UI/MultiExWindow.xaml.cs +++ b/PdmSwPlugin.Common/Util/UI/MultiExWindow.xaml.cs @@ -38,6 +38,13 @@ set => RaiseAndSetIfChanged(ref _title, value); } + private string _header; + public string header + { + get => _header; + set => RaiseAndSetIfChanged(ref _header, value); + } + private ObservableCollection<string> _exceptions; public ObservableCollection<string> exceptions @@ -47,11 +54,13 @@ } - public MultiExWindow(DependencyObject parent, string title, List<string> exceptions) + public MultiExWindow(DependencyObject parent, string title, List<string> exceptions,string header = "寮傚父淇℃伅") { this.title = title; + this.header = header; InitializeComponent(); DataContext = this; + table.Columns[0].Header = header; if (exceptions == null) { this.exceptions = new ObservableCollection<string>(); diff --git a/PdmSwPlugin.DrawApprove/DrawApprove.xaml.cs b/PdmSwPlugin.DrawApprove/DrawApprove.xaml.cs index 32b593d..464f6fa 100644 --- a/PdmSwPlugin.DrawApprove/DrawApprove.xaml.cs +++ b/PdmSwPlugin.DrawApprove/DrawApprove.xaml.cs @@ -385,17 +385,28 @@ this.Error($"鏈嶅姟鍣ㄤ腑鏈壘鍒板浘绾告枃浠讹紝璺緞:{filePath}"); return; } - - double[] massData = SwDMUtil.GetMassProperty(filePath, out string errMsg); - if (massData == null) + try { - this.Error($"鑾峰彇鍥剧焊涓�鑷存�ф暟鎹け璐ワ紒{errMsg}"); - return; + double[] massData = SwDMUtil.GetMassProperty(filePath, out string errMsg); + if (massData == null) + { + //this.Error($"鑾峰彇鍥剧焊涓�鑷存�ф暟鎹け璐ワ紒{errMsg}"); + //return; + throw new Exception(errMsg); + } + da.fileName = Path.GetFileName(filePath); + da.volume = NumberUtil.HandleMass(massData[3]); + da.surfaceArea = NumberUtil.HandleMass(massData[4]); + da.mass = NumberUtil.HandleMass(massData[5]); } - da.fileName = Path.GetFileName(filePath); - da.volume = NumberUtil.HandleMass(massData[3]); - da.surfaceArea = NumberUtil.HandleMass(massData[4]); - da.mass = NumberUtil.HandleMass(massData[5]); + catch (Exception ex) + { + Logger.Warn("Get Doc Mass Data Failed.", ex); + da.fileName = Path.GetFileName(filePath); + da.volume = 0; + da.surfaceArea = 0; + da.mass = 0; + } da.pass = true; Result<object> res = Client.PostSyncAction<object>(da, "drawAudit/complete"); object obj = res.HandleResult(); @@ -533,6 +544,8 @@ public void OnSwActiveDocChange(ModelDoc2 oldDoc, ModelDoc2 newDoc, Component2 comp) { + long start = DateTime.Now.Millisecond; + Logger.Debug("Find Open Doc Start..."); string path = newDoc.GetPathName(); Uri fileName; if (string.IsNullOrEmpty(path)) @@ -549,6 +562,7 @@ var d3Path = new Uri(GetRealFilePath(e.d3RelativePath)); e.IsOpening = fileName == d2Path || fileName == d3Path; } + Logger.Debug($"Find Open Doc {path} End {DateTime.Now.Millisecond - start}ms."); } public void OnSwActiveDocSaved(ModelDoc2 doc, Component2 comp) diff --git a/PdmSwPlugin.Main/Constant/PluginConst.cs b/PdmSwPlugin.Main/Constant/PluginConst.cs index 522d835..dbef9ca 100644 --- a/PdmSwPlugin.Main/Constant/PluginConst.cs +++ b/PdmSwPlugin.Main/Constant/PluginConst.cs @@ -3,6 +3,6 @@ public class PluginConst { public static readonly string AppId = "DF23E96F-A469-4302-8367-7FA2F798CD09"; - public static readonly string Version = "0.0.0.44"; + public static readonly string Version = "0.0.0.45"; } } diff --git a/PdmSwPlugin.Main/EventHandler/BaseAttacher.cs b/PdmSwPlugin.Main/EventHandler/BaseAttacher.cs index 39d3dcb..70ce1ae 100644 --- a/PdmSwPlugin.Main/EventHandler/BaseAttacher.cs +++ b/PdmSwPlugin.Main/EventHandler/BaseAttacher.cs @@ -4,10 +4,14 @@ using SolidWorks.Interop.swconst; using System; using System.Collections; +using System.Threading.Tasks; using System.Windows.Controls; namespace PdmSwPlugin.Main.EventHandler { + /// <summary> + /// 浜嬩欢闄勫姞鍣� + /// </summary> public class BaseAttacher : IEventAttacher, IDocEventHandler { public static ILog Logger { get; } = LogManager.GetLogger("SwAddin"); @@ -33,8 +37,9 @@ /// <returns></returns> public virtual bool AttachEventHandlers() { + // 娣诲姞搴旂敤浜嬩欢鐩戝惉 AttachSwEvents(); - //Listen for events on all currently open docs + // 娣诲姞鏂囨。浜嬩欢鐩戝惉 AttachEventsToAllDocuments(); return true; } @@ -60,14 +65,55 @@ private bool AttachEventsToAllDocuments() { - ModelDoc2 modDoc = (ModelDoc2)SwApp.GetFirstDocument(); - while (modDoc != null) + //ModelDoc2 modDoc = (ModelDoc2)SwApp.GetFirstDocument(); + //while (modDoc != null) + //{ + // if (!OpenDocContext.IsOpenDoc(modDoc)) + // { + // AttachModelDocEventHandler(modDoc); + // } + // modDoc = (ModelDoc2)modDoc.GetNext(); + //} + + /// 璇曚竴涓嬪紓姝ラ檮鍔犱簨浠� + var objs = SwApp.GetDocuments(); + if (objs != null && objs.Length > 0) { - if (!OpenDocContext.IsOpenDoc(modDoc)) + Task[] tasks = new Task[objs.Length]; + for (int i = 0; i < objs.Length; i++) { - AttachModelDocEventHandler(modDoc); + var obj = objs[i]; + if (obj is ModelDoc2 modDoc) + { + tasks[i] = Task.Run(() => + { + if (!OpenDocContext.IsOpenDoc(modDoc)) + { + AttachModelDocEventHandler(modDoc); + } + }); + } } - modDoc = (ModelDoc2)modDoc.GetNext(); + Task.WaitAll(tasks); + } + return true; + } + + private bool AttachEventsToAllDocuments(ModelDoc2 modDoc) + { + if (!OpenDocContext.IsOpenDoc(modDoc)) + { + AttachModelDocEventHandler(modDoc); + } + return true; + } + + private bool AttachEventsToAllDocuments(string fileName) + { + ModelDoc2 modDoc = SwApp.GetOpenDocument(fileName); + if (!OpenDocContext.IsOpenDoc(modDoc)) + { + AttachModelDocEventHandler(modDoc); } return true; } @@ -208,7 +254,7 @@ public int OnFileNew(object newDoc, int docType, string templateName) { - AttachEventsToAllDocuments(); + AttachEventsToAllDocuments((ModelDoc2)newDoc); return 0; } @@ -217,7 +263,13 @@ return 0; } - public int FileOpenPostNotify(string FileName) + /// <summary> + /// Post-notifies an application when a file has been opened. + /// 鍦ㄦ墦寮�鏂囦欢鏃� Post-閫氱煡搴旂敤绋嬪簭銆� + /// </summary> + /// <param name="FileName"></param> + /// <returns></returns> + public int FileOpenPostNotify(string filePath) { AttachEventsToAllDocuments(); return 0; diff --git a/PdmSwPlugin.Main/SwAddIn/MainControl.cs b/PdmSwPlugin.Main/SwAddIn/MainControl.cs index 6b1208c..56b44f7 100644 --- a/PdmSwPlugin.Main/SwAddIn/MainControl.cs +++ b/PdmSwPlugin.Main/SwAddIn/MainControl.cs @@ -365,19 +365,29 @@ public void DeActiveHandler() { - foreach (TabItem item in mainTab.tabControl.Items) + try { - // 鍚戜富Control娉ㄥ唽浜嬩欢 - if (item.Content is IActiveDocChangeHandler handler) + if (mainTab?.tabControl != null) { - ActiveDocChangeEvent -= handler.OnSwActiveDocChange; - ActiveDocSavedEvent -= handler.OnSwActiveDocSaved; - ActiveDocCustomPropertyChange -= handler.OnCustomPropertyChange; - DocDestroy -= handler.OnDocDestroy; - AfterDocDestroy -= handler.AfterDocDestroy; + foreach (TabItem item in mainTab.tabControl.Items) + { + // 鍚戜富Control娉ㄥ唽浜嬩欢 + if (item.Content is IActiveDocChangeHandler handler) + { + ActiveDocChangeEvent -= handler.OnSwActiveDocChange; + ActiveDocSavedEvent -= handler.OnSwActiveDocSaved; + ActiveDocCustomPropertyChange -= handler.OnCustomPropertyChange; + DocDestroy -= handler.OnDocDestroy; + AfterDocDestroy -= handler.AfterDocDestroy; + } + } + PluginInfos.Clear(); } } - PluginInfos.Clear(); + catch (Exception ex) + { + Logger.Error("DeActiveHandler Failed.", ex); + } } /// <summary> diff --git a/PdmSwPlugin.PDM/Model/PdmControlModel.cs b/PdmSwPlugin.PDM/Model/PdmControlModel.cs index 7a71c9c..648c70a 100644 --- a/PdmSwPlugin.PDM/Model/PdmControlModel.cs +++ b/PdmSwPlugin.PDM/Model/PdmControlModel.cs @@ -44,7 +44,8 @@ public ObservableCollection<PdmBom> BomTree { get => _bomTree; - set { + set + { RaiseAndSetIfChanged(ref _bomTree, value); int count = CacheList != null ? CacheList.Count : 0; AllBomCount = $"鍏� {count} 鏉�"; @@ -52,8 +53,9 @@ } } - public void RefreshSelectedBomCount() { - int count = CacheList != null ? CacheList.Where(e=>e.selected).Count() : 0; + public void RefreshSelectedBomCount() + { + int count = CacheList != null ? CacheList.Where(e => e.selected).Count() : 0; SelectedBomCount = $"宸查�変腑 {count} 鏉�"; } @@ -93,7 +95,7 @@ private Dictionary<string, BomInfo> GetBomsFromWeb(HttpClient Client, PdmBomParam param) { Result<Dictionary<string, BomInfo>> result = - Client.PostSyncAction<Dictionary<string, BomInfo>>(param, "wpf/bom/openApi/bomInfo2"); + Client.PostSyncAction<Dictionary<string, BomInfo>>(param, "wpf/bom/openApi/bomInfo3"); Dictionary<string, BomInfo> bomInfo = result.HandleResult(); return bomInfo; } @@ -113,7 +115,7 @@ allModels = models }; Result<Dictionary<string, BomInfo>> result = - Client.PostSyncAction<Dictionary<string, BomInfo>>(param, "wpf/bom/openApi/bomInfo2"); + Client.PostSyncAction<Dictionary<string, BomInfo>>(param, "wpf/bom/openApi/bomInfo3"); Dictionary<string, BomInfo> bomInfos = result.HandleResult(); Dictionary<string, DrawInfo> drawInfos = new Dictionary<string, DrawInfo>(); FillBomInfo(BomTree.ToList(), bomInfos, drawInfos); @@ -143,19 +145,22 @@ { info = bomInfos[partModel]; bom.inDb = true; - //bom.BomInfo = info; - bom.BomInfo.id = info.id; - bom.BomInfo.bomVersion = info.bomVersion; - bom.BomInfo.checkStatus = info.checkStatus; - bom.BomInfo.checkUserId = info.checkUserId; - bom.BomInfo.checkUserName = info.checkUserName; + if (!string.IsNullOrEmpty(info.id)) + { + //bom.BomInfo = info; + bom.BomInfo.id = info.id; + bom.BomInfo.bomVersion = info.bomVersion; + bom.BomInfo.checkStatus = info.checkStatus; + bom.BomInfo.checkUserId = info.checkUserId; + bom.BomInfo.checkUserName = info.checkUserName; - bom.BomInfo.status = info.status; - bom.BomInfo.requestUserId = info.requestUserId; - bom.BomInfo.requestUser = info.requestUser; - bom.BomInfo.auditUserId = info.auditUserId; - bom.BomInfo.auditUser = info.auditUser; - + bom.BomInfo.status = info.status; + bom.BomInfo.requestUserId = info.requestUserId; + bom.BomInfo.requestUser = info.requestUser; + bom.BomInfo.auditUserId = info.auditUserId; + bom.BomInfo.auditUser = info.auditUser; + } + bom.BomInfo.inKeeDeeDb = info.inKeeDeeDb; } else { diff --git a/PdmSwPlugin.PDM/PdmControl.xaml b/PdmSwPlugin.PDM/PdmControl.xaml index 0870c68..5e8492e 100644 --- a/PdmSwPlugin.PDM/PdmControl.xaml +++ b/PdmSwPlugin.PDM/PdmControl.xaml @@ -117,6 +117,47 @@ <Setter Property="Foreground" Value="White"/> <Setter Property="Background" Value="Gray"/> </DataTrigger> + + <DataTrigger Binding="{Binding drawInfo.noDrw}" Value="true"> + <Setter Property="Text" Value="鏈�氳繃"/> + <Setter Property="Foreground" Value="White"/> + <Setter Property="Background" Value="Red"/> + </DataTrigger> + + <DataTrigger Binding="{Binding skipCheck}" Value="true"> + <Setter Property="Text" Value="鏃犻渶妫�鏌�"/> + <Setter Property="Foreground" Value="White"/> + <Setter Property="Background" Value="Gray"/> + </DataTrigger> + + <!--<MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding IsHistoryData}" Value="true"/> + <Condition Binding="{Binding drawInfo.noDrw}" Value="false"/> + </MultiDataTrigger.Conditions> + <Setter Property="Text" Value="鏃犻渶妫�鏌�"/> + <Setter Property="Foreground" Value="White"/> + <Setter Property="Background" Value="Gray"/> + </MultiDataTrigger> + + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding IsHistoryData}" Value="true"/> + <Condition Binding="{Binding drawInfo.noDrw}" Value="true"/> + </MultiDataTrigger.Conditions> + <Setter Property="Text" Value="鏈�氳繃"/> + <Setter Property="Foreground" Value="White"/> + <Setter Property="Background" Value="Red"/> + </MultiDataTrigger>--> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding BomInfo.inKeeDeeDb}" Value="true"/> + <Condition Binding="{Binding drawInfo.noDrw}" Value="false"/> + </MultiDataTrigger.Conditions> + <Setter Property="Text" Value="宸插叆绯荤粺"/> + <Setter Property="Foreground" Value="White"/> + <Setter Property="Background" Value="DarkGreen"/> + </MultiDataTrigger> </Style.Triggers> </Style> @@ -125,7 +166,7 @@ <Setter Property="Foreground" Value="Black"/> <Setter Property="Background" Value="White"/> <Style.Triggers> - <DataTrigger Binding="{Binding produceWay}" Value="妯$粍"> + <DataTrigger Binding="{Binding skipCheck}" Value="true"> <Setter Property="Text" Value="鏃犻渶瀹℃牳"/> <Setter Property="Foreground" Value="White"/> <Setter Property="Background" Value="Gray"/> @@ -137,7 +178,13 @@ <Setter Property="Background" Value="Gray"/> </DataTrigger> - <MultiDataTrigger> + <DataTrigger Binding="{Binding drawInfo.isSpecial}" Value="True"> + <Setter Property="Text" Value="鏃犻渶瀹℃牳"/> + <Setter Property="Foreground" Value="White"/> + <Setter Property="Background" Value="Gray"/> + </DataTrigger> + + <!--<MultiDataTrigger> <MultiDataTrigger.Conditions> <Condition Binding="{Binding drawInfo.HistoryData}" Value="true"/> <Condition Binding="{Binding localDocChanged}" Value="false"/> @@ -145,16 +192,41 @@ <Setter Property="Text" Value="鏃犻渶瀹℃牳"/> <Setter Property="Foreground" Value="White"/> <Setter Property="Background" Value="Gray"/> - </MultiDataTrigger> + </MultiDataTrigger>--> <MultiDataTrigger> <MultiDataTrigger.Conditions> <Condition Binding="{Binding drawInfo.HistoryData}" Value="true"/> <Condition Binding="{Binding localDocChanged}" Value="true"/> + <Condition Binding="{Binding drawInfo.noDrw}" Value="false"/> + <Condition Binding="{Binding skipCheck}" Value="false"/> </MultiDataTrigger.Conditions> <Setter Property="Text" Value="鍘嗗彶鍥剧焊鍙樻洿"/> <Setter Property="Foreground" Value="White"/> <Setter Property="Background" Value="Blue"/> + </MultiDataTrigger> + + + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding BomInfo.status}" Value="completed"/> + <Condition Binding="{Binding localDocChanged}" Value="true"/> + <Condition Binding="{Binding drawInfo.noDrw}" Value="false"/> + <Condition Binding="{Binding skipCheck}" Value="false"/> + </MultiDataTrigger.Conditions> + <Setter Property="Text" Value="鏂囨。鍙樻洿"/> + <Setter Property="Foreground" Value="White"/> + <Setter Property="Background" Value="Blue"/> + </MultiDataTrigger> + + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding skipCheck}" Value="false"/> + <Condition Binding="{Binding drawInfo.noDrw}" Value="true"/> + </MultiDataTrigger.Conditions> + <Setter Property="Text" Value="鏈壘鍒板伐绋嬪浘"/> + <Setter Property="Foreground" Value="White"/> + <Setter Property="Background" Value="Red"/> </MultiDataTrigger> <MultiDataTrigger> @@ -165,16 +237,6 @@ <Setter Property="Text" Value="宸查�氳繃"/> <Setter Property="Foreground" Value="White"/> <Setter Property="Background" Value="Green"/> - </MultiDataTrigger> - - <MultiDataTrigger> - <MultiDataTrigger.Conditions> - <Condition Binding="{Binding BomInfo.status}" Value="completed"/> - <Condition Binding="{Binding localDocChanged}" Value="true"/> - </MultiDataTrigger.Conditions> - <Setter Property="Text" Value="鏂囨。鍙樻洿"/> - <Setter Property="Foreground" Value="White"/> - <Setter Property="Background" Value="Blue"/> </MultiDataTrigger> <DataTrigger Binding="{Binding BomInfo.status}" Value="submitted"> @@ -192,6 +254,16 @@ <Setter Property="Foreground" Value="White"/> <Setter Property="Background" Value="Red"/> </DataTrigger> + + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding BomInfo.inKeeDeeDb}" Value="true"/> + <Condition Binding="{Binding drawInfo.noDrw}" Value="false"/> + </MultiDataTrigger.Conditions> + <Setter Property="Text" Value="宸插叆绯荤粺"/> + <Setter Property="Foreground" Value="White"/> + <Setter Property="Background" Value="DarkGreen"/> + </MultiDataTrigger> </Style.Triggers> </Style> diff --git a/PdmSwPlugin.PDM/PdmControl.xaml.cs b/PdmSwPlugin.PDM/PdmControl.xaml.cs index 6e6148a..e7667fb 100644 --- a/PdmSwPlugin.PDM/PdmControl.xaml.cs +++ b/PdmSwPlugin.PDM/PdmControl.xaml.cs @@ -1,45 +1,40 @@ -锘縰sing PdmSwPlugin.Common.Interface; -using SolidWorks.Interop.sldworks; -using System.Collections.Generic; -using System.Linq; -using System.Windows.Controls; -using PdmSwPlugin.Common; -using System.Collections.ObjectModel; -using System.Net.Http; -using System.Threading.Tasks; -using System.Windows; -using System; -using NPOI.SS.UserModel; -using NPOI.XSSF.UserModel; -using System.IO; +锘縰sing log4net; using Microsoft.Win32; +using NPOI.SS.UserModel; using NPOI.Util; +using NPOI.XSSF.UserModel; +using PdmSwPlugin.Commmon.Control; +using PdmSwPlugin.Commmon.Util.UI; +using PdmSwPlugin.Common; using PdmSwPlugin.Common.Constants; -using System.Threading; -using log4net; +using PdmSwPlugin.Common.Control.TreeGrid; +using PdmSwPlugin.Common.Entity.DrawAudit; +using PdmSwPlugin.Common.Entity.Pdm; +using PdmSwPlugin.Common.Entity.System; +using PdmSwPlugin.Common.Interface; +using PdmSwPlugin.Common.Setting; using PdmSwPlugin.Common.Util; using PdmSwPlugin.Common.Util.Http; -using PdmSwPlugin.Commmon.Util.UI; -using PdmSwPlugin.Common.Entity.Pdm; -using PdmSwPlugin.Common.Control.TreeGrid; -using System.Windows.Data; -using SolidWorks.Interop.swconst; -using PdmSwPlugin.Common.Entity.DrawAudit; -using System.Collections.Concurrent; using PdmSwPlugin.Common.Util.UI; -using PdmSwPlugin.Common.Setting; -using PdmSwPlugin.PDM.Model; -using System.Diagnostics; using PdmSwPlugin.PDM.Constant; -using static PdmSwPlugin.PDM.Event.PdmEvent; +using PdmSwPlugin.PDM.Model; +using SolidWorks.Interop.sldworks; +using SolidWorks.Interop.swconst; +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; using System.Windows.Interop; -using PdmSwPlugin.Commmon.Control; -using PdmSwPlugin.Common.Entity.System; -using System.Windows.Documents; -using System.Windows.Input; -using NPOI.POIFS.Properties; -using NPOI.POIFS.Crypt; -using System.Threading.Tasks.Schedulers; +using static PdmSwPlugin.PDM.Event.PdmEvent; namespace PdmSwPlugin.PDM { @@ -169,6 +164,15 @@ } } + public void AutoSaveAlert(List<string> msgs) + { + //Dispatcher.Invoke(() => + //{ + // MultiExWindow exWin = new MultiExWindow(this, "浠ヤ笅鏂囨。鍥犲垹闄ょ壒瀹氶厤缃�岃淇濆瓨", msgs, "鏂囦欢璺緞"); + // ShowExWindow(exWin); + //}); + } + /// <summary> /// 鍒锋柊鎸夐挳 /// </summary> @@ -187,6 +191,11 @@ await Task.Run(() => { RefreshBomList(SwApp.IActiveDoc2); + if (model.bomTreeReader.needSaveList.Count > 0) + { + List<string> msgs = new List<string>(model.bomTreeReader.needSaveList); + AutoSaveAlert(msgs); + } }); Logger.Debug("PDM鎻掍欢锛屽垪琛ㄥ埛鏂板畬鎴愶紒"); } @@ -1004,8 +1013,13 @@ allProperties["鍘嗗彶鍥剧焊"] = drawInfo.HistoryData.ToString(); string drawFilePath = filepath.Replace(Path.GetExtension(filepath), ".slddrw"); bool drawExists = File.Exists(drawFilePath); - // 宸ョ▼鍥句竴鑷存�ф鏌� + // 宸ョ▼鍥句竴鑷存�ф鏌� allProperties["宸ョ▼鍥炬槸鍚﹀瓨鍦�"] = drawExists.ToString(); + // 涓嶈烦杩囨鏌ョ殑鍔犲伐浠讹紝濡傛灉宸ョ▼鍥句笉瀛樺湪锛岃缃畁oDrw涓簍rue + if (!drawExists && !bom.skipCheck && bom.produceWay == "鍔犲伐浠�") + { + drawInfo.noDrw = true; + } allProperties["md5"] = bom.localD3Md5; if (bom.lost || bom.BomInfo.isHidden || sldDoc == null) { @@ -1107,11 +1121,10 @@ if (!bom.skipCheck) { result[filepath] = GetSingleDrawInfo(bom); + if (bom.BomInfo.inKeeDeeDb == true) result[filepath]._inKeeDeeDb = true; + } } - - - ObservableCollection<PdmBom> children = bom.modules; if (children != null) @@ -1186,7 +1199,7 @@ bool allSuccess = true; Dictionary<string, DrawInfo> properties = GetAllPropertiesByTask(temp); MaskAdorner.ShowMessage(content, "姝e湪璇锋眰鏁版嵁..."); - // var factory = LimitedConcurrencyLevelTaskScheduler.Factory; + // var factory = LimitedConcurrencyLevelTaskScheduler.Factory; CountdownEvent counter = new CountdownEvent(properties.Count); int iii = 0; foreach (KeyValuePair<string, DrawInfo> property in properties) @@ -1199,24 +1212,29 @@ try { Logger.Error($"{key} checking rule..."); + DrawInfo checkResult; Result<DrawInfo> result = Client.PostSyncAction<DrawInfo>(property.Value, "wpf/bom/openApi/checkRuleSingle"); - DrawInfo checkResult = result.HandleResult(); + checkResult = result.HandleResult(); properties[key].checkRuleResult = checkResult.checkRuleResult; properties[key].errMessages = checkResult.errMessages; var msgs = checkResult.errMessages; - if (!properties[key].HistoryData && (!checkResult.checkRuleOk||property.Value.isHidden)) + if (property.Value.noDrw || property.Value.isHidden || (!properties[key].HistoryData && (!checkResult.checkRuleOk))) { allSuccess = false; } - if (!properties[key].HistoryData) + lock (temp) { - lock (temp) + if (property.Value.isHidden) { - if (property.Value.isHidden) - { - temp.Add($"鐗╂枡銆恵key}銆戣璁剧疆涓洪殣钘�!"); - } + temp.Add($"鐗╂枡銆恵key}銆戣璁剧疆涓洪殣钘�!"); + } + if (property.Value.noDrw && property.Value.HistoryData) + { + temp.Add($"鐗╂枡銆恵key}銆戞湭鎵惧埌宸ョ▼鍥�!"); + } + if (!properties[key].HistoryData) + { if (msgs != null && msgs.Count > 0) { foreach (string msg in msgs) @@ -1419,6 +1437,12 @@ try { RefreshBomList(SwApp.IActiveDoc2); + if (model.bomTreeReader.needSaveList.Count > 0) + { + List<string> infos = new List<string>(model.bomTreeReader.needSaveList); + AutoSaveAlert(infos); + } + if (!DoCheckRuleAsync(out List<string> msgs)) { Dispatcher.Invoke(() => @@ -1468,7 +1492,7 @@ try { // 瀵规墍鏈夌殑BOM鍋氳鍒欐鏌� - bool allSuccess = DoCheckRule(out _); + bool allSuccess = DoCheckRuleAsync(out _); // 鍏堣幏鍙栨墍鏈夌殑BOM HashSet<string> cache = new HashSet<string>(); // 鐒跺悗绛涢�夐�変腑鐨凚OM @@ -1497,12 +1521,20 @@ if (!allSuccess) { // 濡傛灉鏈夋湭閫氳繃鐨勫浘绾革紝闇�瑕佹彁绀� - var err = boms.Where(b => !b.IsHistoryData && !b.checkRuleOk).ToList(); + var err = boms.Where(b => b.noDrw || b.isHidden || (!b.IsHistoryData && (!b.checkRuleOk))).ToList(); if (err != null && err.Count > 0) { List<string> msgs = new List<string>(); foreach (var ee in err) { + if (ee.noDrw && ee.IsHistoryData) + { + msgs.Add($"鐗╂枡銆恵ee.partNo}銆戞湭閫氳繃瑙勫垯妫�鏌ワ紒鏈壘鍒板伐绋嬪浘"); + } + if (ee.drawInfo.isHidden) + { + msgs.Add($"鐗╂枡銆恵ee.partNo}銆戞湭閫氳繃瑙勫垯妫�鏌ワ紒琚涓洪殣钘�"); + } if (ee.drawInfo.errMessages == null) { msgs.Add($"鐗╂枡銆恵ee.partNo}銆戞湭閫氳繃瑙勫垯妫�鏌ワ紒"); @@ -1524,6 +1556,10 @@ } // 閮介�氳繃浜嗭紝鍐嶈繘琛屽鎵� + + // 绛涢�夐潪鐗规畩鐨勫鏍� + boms = boms.Where(b => !b._drawInfo.isSpecial).ToList(); + if (boms == null || boms.Count <= 0) return; // 鍏堢敵璇峰崟鍙� DrawAuditOrder daOrder = new DrawAuditOrder @@ -1760,50 +1796,69 @@ /// <param name="e"></param> private void TextBox_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e) { - // 妫�鏌ユ槸鍚︽槸鍙屽嚮 - if (e.ClickCount == 2) + try { - TextBlock textBlock = sender as TextBlock; - PdmBom bom = textBlock.DataContext as PdmBom; - if (bom.checkRuleResult == 0) + // 妫�鏌ユ槸鍚︽槸鍙屽嚮 + if (e.ClickCount == 2) { - this.Warning("璇ュ浘绾歌繕鏈鏌�"); - return; - } - if (bom.checkRuleResult == 3) - { - string title = string.Empty; - if (bom.IsHistoryData) + TextBlock textBlock = sender as TextBlock; + PdmBom bom = textBlock.DataContext as PdmBom; + if (bom.checkRuleResult == 0) { - title = "鍘嗗彶鍥剧焊鏃犻渶妫�鏌�"; + this.Warning("璇ュ浘绾歌繕鏈鏌�"); + return; } - else if (bom.ExcludeFromBOM) - { - title = "涓嶅湪鐗╂枡鏄庣粏琛ㄤ腑鐨勭墿鏂欐棤闇�妫�鏌�"; - } - else if (bom.component?.IsVirtual == true) - { - title = "铏氭嫙浠舵棤闇�妫�鏌�"; - } - this.Info(title); - return; - } - if (bom.checkRuleOk && !bom.isHidden) - { - this.Show("瑙勫垯妫�鏌ラ�氳繃"); - } - else - { List<string> errs = new List<string>(); + if (bom.noDrw && bom.IsHistoryData) + { + errs.Add("宸ョ▼鍥句笉瀛樺湪 "); + } if (bom.isHidden) { errs.Add("鏂囨。琚缃负闅愯棌"); } - errs.AddRange(bom.drawInfo.errMessages); - MultiExWindow exWin = new MultiExWindow(this, "妫�鏌ョ粨鏋�", errs); - exWin.ShowDialog(); + if (bom.drawInfo.errMessages != null) + { + errs.AddRange(bom.drawInfo.errMessages); + } + if (errs.Count > 0) + { + MultiExWindow exWin = new MultiExWindow(this, "妫�鏌ョ粨鏋�", errs); + exWin.ShowDialog(); + } + else if (bom.checkRuleResult == 3) + { + string title = string.Empty; + if (bom.IsHistoryData) + { + title = "鍘嗗彶鍥剧焊鏃犻渶妫�鏌�"; + } + else if (bom.ExcludeFromBOM) + { + title = "涓嶅湪鐗╂枡鏄庣粏琛ㄤ腑鐨勭墿鏂欐棤闇�妫�鏌�"; + } + else if (bom.component?.IsVirtual == true) + { + title = "铏氭嫙浠舵棤闇�妫�鏌�"; + } + else + { + title = "鏃犻渶妫�鏌�"; + } + this.Info(title); + return; + } + else if (bom.checkRuleOk && !bom.isHidden) + { + this.Show("瑙勫垯妫�鏌ラ�氳繃"); + } } + } + catch (Exception ex) + { + Logger.Error("Double Click CheckRule Exception.", ex); + this.Error($"鏈煡寮傚父:{ex.Message}"); } } @@ -1814,59 +1869,77 @@ /// <param name="e"></param> private void AuditTextBox_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e) { - // 妫�鏌ユ槸鍚︽槸鍙屽嚮 - if (e.ClickCount == 2) + try { - TextBlock textBlock = sender as TextBlock; - PdmBom bom = textBlock.DataContext as PdmBom; - if (string.IsNullOrEmpty(bom.BomInfo.status)) + // 妫�鏌ユ槸鍚︽槸鍙屽嚮 + if (e.ClickCount == 2) { - if (bom.produceWay == "妯$粍" || bom.produceWay == "鏍囧噯浠�") + TextBlock textBlock = sender as TextBlock; + PdmBom bom = textBlock.DataContext as PdmBom; + if (bom._drawInfo.isSpecial) { - this.Info($"{bom.produceWay}鏃犻渶瀹℃牳"); + this.Info("鏃犻渶瀹℃牳"); return; } - if (bom.IsHistoryData && !bom.localDocChanged) + if (bom.BomInfo.inKeeDeeDb == true) { - this.Info("鍘嗗彶鍥剧焊鏃犻渶瀹℃牳"); + this.Info("宸插叆绯荤粺"); return; } - if (bom.IsHistoryData && bom.localDocChanged) + if (string.IsNullOrEmpty(bom.BomInfo.status)) { - this.Info("鍘嗗彶鍥剧焊涓�鑷存�у彉鏇达紝闇�瀹℃牳"); - return; - } - this.Warning("璇ュ浘绾告湭瀹℃牳"); - return; - } - MaskAdorner.ShowMask(content, "璇锋眰涓紝璇风◢鍚�..."); - Task.Run(() => - { - try - { - Result<List<DrawAuditHis>> res = Client.GetSyncAction<List<DrawAuditHis>>("drawAudit/listTaskHis", new DrawAudit + if (bom.produceWay == "妯$粍" || bom.produceWay == "鏍囧噯浠�") { - id = bom.BomInfo.id - }); - var datas = res.HandleResult(); - Dispatcher.Invoke(() => + this.Info($"{bom.produceWay}鏃犻渶瀹℃牳"); + return; + } + if (bom.IsHistoryData && !bom.localDocChanged) { - //DrawAuditHisWindow window = new DrawAuditHisWindow(this, $"銆恵bom.partModel}銆戝鏍歌鎯�", datas); - RichHisWindow window = new RichHisWindow(this, $"銆恵bom.partModel}銆戝鏍歌鎯�", datas); + this.Info("鍘嗗彶鍥剧焊鏃犻渶瀹℃牳"); + return; + } + if (bom.IsHistoryData && bom.localDocChanged) + { + this.Info("鍘嗗彶鍥剧焊涓�鑷存�у彉鏇达紝闇�瀹℃牳"); + return; + } + this.Warning("璇ュ浘绾告湭瀹℃牳"); + return; + } + MaskAdorner.ShowMask(content, "璇锋眰涓紝璇风◢鍚�..."); + Task.Run(() => + { + try + { + Result<List<DrawAuditHis>> res = Client.GetSyncAction<List<DrawAuditHis>>("drawAudit/listTaskHis", new DrawAudit + { + id = bom.BomInfo.id + }); + var datas = res.HandleResult(); + Dispatcher.Invoke(() => + { + //DrawAuditHisWindow window = new DrawAuditHisWindow(this, $"銆恵bom.partModel}銆戝鏍歌鎯�", datas); + RichHisWindow window = new RichHisWindow(this, $"銆恵bom.partModel}銆戝鏍歌鎯�", datas); - window.ShowDialog(); - }); - } - catch (Exception ex) - { - Logger.Error($"V{PdmUser.LoginUser.pluginVersion}, Get draw audit history failed.", ex); - this.Error($"V{PdmUser.LoginUser.pluginVersion}锛岃幏鍙栧鏍稿巻鍙插け璐ワ紒{ex.Message}"); - } - finally - { - MaskAdorner.HideMask(content); - } - }); + window.ShowDialog(); + }); + } + catch (Exception ex) + { + Logger.Error($"V{PdmUser.LoginUser.pluginVersion}, Get draw audit history failed.", ex); + this.Error($"V{PdmUser.LoginUser.pluginVersion}锛岃幏鍙栧鏍稿巻鍙插け璐ワ紒{ex.Message}"); + } + finally + { + MaskAdorner.HideMask(content); + } + }); + } + } + catch (Exception ex) + { + Logger.Error("Double Click Audit Status Exception.", ex); + this.Error($"鏈煡寮傚父:{ex.Message}"); } } @@ -1997,6 +2070,12 @@ { throw new CantCheckInException(new List<string> { "璇锋墦寮�涓�寮犲浘绾�" }); } + if (model.bomTreeReader.needSaveList.Count > 0) + { + List<string> infos = new List<string>(model.bomTreeReader.needSaveList); + AutoSaveAlert(infos); + } + DoCheckRuleAsync(out _); // 绛涢�夋墍鏈夊湪鐗╂枡鏄庣粏琛ㄤ腑锛屼笉璺宠繃妫�鏌ュ苟涓旀鏌ユ湭閫氳繃鐨勶紝绫诲瀷鏄姞宸ヤ欢鐨勬湭閫氳繃瀹℃牳鐨勶紝鍔犲伐浠跺鏍搁�氳繃鐨勪絾鍥剧焊鍙樻洿鐨� List<string> errs = model.bomTreeReader.CacheList.Select(b => b.NeedStopCheckIn()) diff --git a/PdmSwPlugin.PropertySetting/CommonSettingControl.xaml.cs b/PdmSwPlugin.PropertySetting/CommonSettingControl.xaml.cs index c9ae722..2ab4104 100644 --- a/PdmSwPlugin.PropertySetting/CommonSettingControl.xaml.cs +++ b/PdmSwPlugin.PropertySetting/CommonSettingControl.xaml.cs @@ -234,26 +234,33 @@ public void InitPropertyData() { - if (Client == null) + try { - Client = clientCreator.GetClient(); + if (Client == null) + { + Client = clientCreator.GetClient(); + } + DefaultPanel defaultPanel = new DefaultPanel(); + controlCache.Add("default", defaultPanel); + + JgjPartPanel jgjPart = new JgjPartPanel(); + controlCache.Add("jgjPart", jgjPart); + + JgjModulePanel jgjModule = new JgjModulePanel(); + controlCache.Add("jgjModule", jgjModule); + + var stPart = new StandardPartPanel(); + controlCache.Add("standardPart", stPart); + + var stModule = new StandardModulePanel(); + controlCache.Add("standardModule", stModule); + LoadComboxItemSource(); + Refresh_Click(null, null); } - DefaultPanel defaultPanel = new DefaultPanel(); - controlCache.Add("default", defaultPanel); - - JgjPartPanel jgjPart = new JgjPartPanel(); - controlCache.Add("jgjPart", jgjPart); - - JgjModulePanel jgjModule = new JgjModulePanel(); - controlCache.Add("jgjModule", jgjModule); - - var stPart = new StandardPartPanel(); - controlCache.Add("standardPart", stPart); - - var stModule = new StandardModulePanel(); - controlCache.Add("standardModule", stModule); - LoadComboxItemSource(); - Refresh_Click(null, null); + catch (Exception ex) + { + Logger.Error($"PropertySetting Init Error!", ex); + } } private void Jgj_SinglePropertyChanged(object sender, string name, object value) @@ -285,6 +292,8 @@ private void UpdateActiveDoc() { + long start = DateTime.Now.Millisecond; + Logger.Debug("UpdateActiveDoc Start..."); if (activeDoc != null) { DetachDocNotify(activeDoc); @@ -300,7 +309,11 @@ activeDoc.ClearSelection2(true); } } + Logger.Debug($"UpdateActiveDoc End {activeDoc?.GetPathName()} {DateTime.Now.Millisecond - start}ms."); + start = DateTime.Now.Millisecond; + Logger.Debug("UpdateUI Start..."); UpdateUI(activeDoc); + Logger.Debug($"UpdateUI End {activeDoc?.GetPathName()} {DateTime.Now.Millisecond - start}ms."); } /// <summary> @@ -382,9 +395,10 @@ ReadDoc = doc; Dispatcher.Invoke(() => { - SwitchVisiable(); + // LoadDocProperties(); }); + SwitchVisiable(); } private int Ass_UserSelectionPostNotify() @@ -419,6 +433,9 @@ /// </summary> private void SwitchVisiable() { + var start = DateTime.Now.Millisecond; + Logger.Debug("SwitchVisiable Start..."); + HashSet<string> skipName = new HashSet<string> { NameConstant.materialCode }; @@ -522,9 +539,15 @@ last = null; } ActiveOpter = control; - contentPanel.Children.Clear(); newOne.UpdateProperty += Jgj_SinglePropertyChanged; - contentPanel.Children.Add(control); + + Dispatcher.Invoke(() => + { + contentPanel.Children.Clear(); + contentPanel.Children.Add(control); + }); + + Logger.Debug($"SwitchVisiable End {activeDoc?.GetPathName()} {DateTime.Now.Millisecond - start}ms."); } /// <summary> @@ -694,11 +717,19 @@ private void SaveButton_Click(object sender, RoutedEventArgs e) { - if (ReadDoc == null) + try { - return; + if (ReadDoc == null) + { + return; + } + SaveDoc(false); } - SaveDoc(false); + catch (Exception ex) + { + Logger.Error($"Property Setting Save Doc Error!", ex); + this.Error($"淇濆瓨澶辫触!{ex.Message}"); + } } public void RefreshData() @@ -773,12 +804,20 @@ public void OnCustomPropertyChange(string propName, string Configuration, string oldValue, string NewValue, int valueType) { - if (oldValue == NewValue) + try { - return; + if (oldValue == NewValue) + { + return; + } + IPropertyOpt opt = ActiveOpter as IPropertyOpt; + opt.UpdateSingleProperty(propName, NewValue); } - IPropertyOpt opt = ActiveOpter as IPropertyOpt; - opt.UpdateSingleProperty(propName, NewValue); + catch (Exception ex) + { + Logger.Error("Property Setting OnCustomPropertyChange Error!", ex); + this.Error($"灞炴�у彉鏇村紓甯革紒{ex.Message}"); + } } public void OnDocDestroy(ModelDoc2 doc) @@ -796,6 +835,8 @@ /// </summary> public void AlertSaveWindow() { + var start = DateTime.Now.Millisecond; + Logger.Debug("AlertSaveWindow Start..."); IPropertyOpt opt = ActiveOpter as IPropertyOpt; if (opt != null && opt.GetDocChanged()) { @@ -818,29 +859,38 @@ opt.ResetProperty(out string errMsg); } } + Logger.Debug($"AlertSaveWindow End {activeDoc?.GetPathName()} {DateTime.Now.Millisecond - start}ms."); } public void OnTabControlSelectionChange(object sender, SelectionChangedEventArgs e) { - if (e.RemovedItems == null) + try { - return; - } - - foreach (object obj in e.RemovedItems) - { - if (obj is TabItem item) - { - if (item.Content == this) - { - AlertSaveWindow(); - break; - } - } - else + if (e.RemovedItems == null) { return; } + + foreach (object obj in e.RemovedItems) + { + if (obj is TabItem item) + { + if (item.Content == this) + { + AlertSaveWindow(); + break; + } + } + else + { + return; + } + } + } + catch (Exception ex) + { + Logger.Error($"Property Setting OnTabControlSelectionChange Error!", ex); + this.Error($"{ex.Message}"); } } } -- Gitblit v1.9.1