| | |
| | | "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": "" |
| | | } |
| | | ] |
| | | } |
| | |
| | | "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": "" |
| | | } |
| | | ] |
| | | } |
| | |
| | | ; 自动更新程序路径 |
| | | #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" |
| | |
| | | KeyPreview = true, |
| | | Dock = DockStyle.Fill |
| | | }; |
| | | mainForm.FormClosed += MainForm_FormClosed; |
| | | mainForm.Controls.Add(host); |
| | | IntPtr ptr = mainForm.Handle; |
| | | // IntPtr ptr = WindowIntPtrUtil.FindWindow(null, "Window1"); |
| | |
| | | mainForm.WindowState = FormWindowState.Maximized; |
| | | } |
| | | |
| | | private void MainForm_FormClosed(object sender, FormClosedEventArgs e) |
| | | { |
| | | /// 关闭时先执行DeActiveHandler,然后执行这个 |
| | | |
| | | } |
| | | |
| | | private void LoadPlugins() |
| | | { |
| | | // 读图,估计是panel的图标 |
| | |
| | | using PdmSwPlugin.Common.Setting; |
| | | using System; |
| | | using System.Text.RegularExpressions; |
| | | |
| | | namespace PdmSwPlugin.Common |
| | | { |
| | |
| | | |
| | | 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("文件格式"); |
| | |
| | | InitializeComponent(); |
| | | this.title = title; |
| | | DataContext = this; |
| | | if (hisList == null) |
| | | if (hisList == null || hisList.Count <= 0) |
| | | { |
| | | this.HisList = new ObservableCollection<DrawAuditHis>(); |
| | | } |
| | |
| | | set => RaiseAndSetIfChanged(ref _status, value); |
| | | } |
| | | |
| | | private bool? _inKeeDeeDb; |
| | | |
| | | public bool? inKeeDeeDb |
| | | { |
| | | get => _inKeeDeeDb; |
| | | set => RaiseAndSetIfChanged(ref _inKeeDeeDb, value); |
| | | } |
| | | |
| | | private string _auditId; |
| | | public string auditId |
| | | { |
| | |
| | | /// </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> |
| | |
| | | public List<string> errMessages { get; set; } |
| | | |
| | | public Dictionary<string, string> allProperties { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 为True说明没有工程图 |
| | | /// </summary> |
| | | } |
| | | |
| | | [Serializable] |
| | |
| | | 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; |
| | |
| | | public string checkUserId => BomInfo?.checkUserId; |
| | | public string checkUserName => BomInfo?.checkUserName; |
| | | |
| | | #region 规则检查相关字段 |
| | | |
| | | #endregion |
| | | |
| | | #region 图纸审核相关字段 |
| | | public string drawStatus => BomInfo?.status; |
| | | public string requestUserId => BomInfo?.requestUserId; |
| | |
| | | /// <summary> |
| | | /// 图纸是否发生变更 非历史图纸看2D图MD5 历史图纸看一致性检查没通过 |
| | | /// </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> |
| | |
| | | { |
| | | // 找不到文档的不审核 |
| | | 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); |
| | | //} |
| | | } |
| | | } |
| | | |
| | |
| | | /// <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 += "未通过审核"; |
| | |
| | | { |
| | | err = true; |
| | | msg += "被隐藏;"; |
| | | } |
| | | if (noDrw) |
| | | { |
| | | err = true; |
| | | msg += "未找到工程图"; |
| | | } |
| | | return err ? msg : null; |
| | | } |
| | |
| | | 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; |
| | |
| | | /// </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) |
| | |
| | | } |
| | | foreach (var name in names) |
| | | { |
| | | |
| | | cpm.Delete2(name); |
| | | needSave = true; |
| | | } |
| | | return true; |
| | | } |
| | |
| | | { |
| | | 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); |
| | | } |
| | | |
| | |
| | | |
| | | private int bomOrder = 0; |
| | | |
| | | public ConcurrentQueue<string> needSaveList { get; set; } = new ConcurrentQueue<string>(); |
| | | |
| | | /// <summary> |
| | | /// 多线程从打开的根文档中读取BOM信息 |
| | | /// </summary> |
| | |
| | | { |
| | | 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); |
| | |
| | | { |
| | | 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)) |
| | | { |
| | |
| | | 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(); ; |
| | | } |
| | |
| | | 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)) |
| | | { |
| | |
| | | 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 |
| | |
| | | } |
| | | |
| | | |
| | | 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>(); |
| | |
| | | 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(); |
| | |
| | | |
| | | 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)) |
| | |
| | | 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) |
| | |
| | | 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"; |
| | | } |
| | | } |
| | |
| | | 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"); |
| | |
| | | /// <returns></returns> |
| | | public virtual bool AttachEventHandlers() |
| | | { |
| | | // 添加应用事件监听 |
| | | AttachSwEvents(); |
| | | //Listen for events on all currently open docs |
| | | // 添加文档事件监听 |
| | | AttachEventsToAllDocuments(); |
| | | return true; |
| | | } |
| | |
| | | |
| | | 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; |
| | | } |
| | |
| | | |
| | | public int OnFileNew(object newDoc, int docType, string templateName) |
| | | { |
| | | AttachEventsToAllDocuments(); |
| | | AttachEventsToAllDocuments((ModelDoc2)newDoc); |
| | | return 0; |
| | | } |
| | | |
| | |
| | | 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; |
| | |
| | | |
| | | 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> |
| | |
| | | public ObservableCollection<PdmBom> BomTree |
| | | { |
| | | get => _bomTree; |
| | | set { |
| | | set |
| | | { |
| | | RaiseAndSetIfChanged(ref _bomTree, value); |
| | | int count = CacheList != null ? CacheList.Count : 0; |
| | | AllBomCount = $"共 {count} 条"; |
| | |
| | | } |
| | | } |
| | | |
| | | 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} 条"; |
| | | } |
| | | |
| | |
| | | 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; |
| | | } |
| | |
| | | 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); |
| | |
| | | { |
| | | 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 |
| | | { |
| | |
| | | <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> |
| | | |
| | |
| | | <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"/> |
| | |
| | | <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"/> |
| | |
| | | <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> |
| | |
| | | <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"> |
| | |
| | | <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> |
| | | |
| | |
| | | using 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; |
| | | using 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 |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | public void AutoSaveAlert(List<string> msgs) |
| | | { |
| | | //Dispatcher.Invoke(() => |
| | | //{ |
| | | // MultiExWindow exWin = new MultiExWindow(this, "以下文档因删除特定配置而被保存", msgs, "文件路径"); |
| | | // ShowExWindow(exWin); |
| | | //}); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 刷新按钮 |
| | | /// </summary> |
| | |
| | | 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插件,列表刷新完成!"); |
| | | } |
| | |
| | | allProperties["历史图纸"] = drawInfo.HistoryData.ToString(); |
| | | string drawFilePath = filepath.Replace(Path.GetExtension(filepath), ".slddrw"); |
| | | bool drawExists = File.Exists(drawFilePath); |
| | | // 工程图一致性检查 |
| | | // 工程图一致性检查 |
| | | allProperties["工程图是否存在"] = drawExists.ToString(); |
| | | // 不跳过检查的加工件,如果工程图不存在,设置noDrw为true |
| | | if (!drawExists && !bom.skipCheck && bom.produceWay == "加工件") |
| | | { |
| | | drawInfo.noDrw = true; |
| | | } |
| | | allProperties["md5"] = bom.localD3Md5; |
| | | if (bom.lost || bom.BomInfo.isHidden || sldDoc == null) |
| | | { |
| | |
| | | if (!bom.skipCheck) |
| | | { |
| | | result[filepath] = GetSingleDrawInfo(bom); |
| | | if (bom.BomInfo.inKeeDeeDb == true) result[filepath]._inKeeDeeDb = true; |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | ObservableCollection<PdmBom> children = bom.modules; |
| | | if (children != null) |
| | |
| | | bool allSuccess = true; |
| | | Dictionary<string, DrawInfo> properties = GetAllPropertiesByTask(temp); |
| | | MaskAdorner.ShowMessage(content, "正在请求数据..."); |
| | | // var factory = LimitedConcurrencyLevelTaskScheduler.Factory; |
| | | // var factory = LimitedConcurrencyLevelTaskScheduler.Factory; |
| | | CountdownEvent counter = new CountdownEvent(properties.Count); |
| | | int iii = 0; |
| | | foreach (KeyValuePair<string, DrawInfo> property in properties) |
| | |
| | | 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) |
| | |
| | | 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(() => |
| | |
| | | try |
| | | { |
| | | // 对所有的BOM做规则检查 |
| | | bool allSuccess = DoCheckRule(out _); |
| | | bool allSuccess = DoCheckRuleAsync(out _); |
| | | // 先获取所有的BOM |
| | | HashSet<string> cache = new HashSet<string>(); |
| | | // 然后筛选选中的BOM |
| | |
| | | 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}】未通过规则检查!"); |
| | |
| | | } |
| | | |
| | | // 都通过了,再进行审批 |
| | | |
| | | // 筛选非特殊的审核 |
| | | boms = boms.Where(b => !b._drawInfo.isSpecial).ToList(); |
| | | if (boms == null || boms.Count <= 0) return; |
| | | |
| | | // 先申请单号 |
| | | DrawAuditOrder daOrder = new DrawAuditOrder |
| | |
| | | /// <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}"); |
| | | } |
| | | } |
| | | |
| | |
| | | /// <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}"); |
| | | } |
| | | } |
| | | |
| | |
| | | { |
| | | 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()) |
| | |
| | | |
| | | 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) |
| | |
| | | |
| | | private void UpdateActiveDoc() |
| | | { |
| | | long start = DateTime.Now.Millisecond; |
| | | Logger.Debug("UpdateActiveDoc Start..."); |
| | | if (activeDoc != null) |
| | | { |
| | | DetachDocNotify(activeDoc); |
| | |
| | | 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> |
| | |
| | | ReadDoc = doc; |
| | | Dispatcher.Invoke(() => |
| | | { |
| | | SwitchVisiable(); |
| | | |
| | | // LoadDocProperties(); |
| | | }); |
| | | SwitchVisiable(); |
| | | } |
| | | |
| | | private int Ass_UserSelectionPostNotify() |
| | |
| | | /// </summary> |
| | | private void SwitchVisiable() |
| | | { |
| | | var start = DateTime.Now.Millisecond; |
| | | Logger.Debug("SwitchVisiable Start..."); |
| | | |
| | | HashSet<string> skipName = new HashSet<string> { |
| | | NameConstant.materialCode |
| | | }; |
| | |
| | | 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> |
| | |
| | | |
| | | 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() |
| | |
| | | |
| | | 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) |
| | |
| | | /// </summary> |
| | | public void AlertSaveWindow() |
| | | { |
| | | var start = DateTime.Now.Millisecond; |
| | | Logger.Debug("AlertSaveWindow Start..."); |
| | | IPropertyOpt opt = ActiveOpter as IPropertyOpt; |
| | | if (opt != null && opt.GetDocChanged()) |
| | | { |
| | |
| | | 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}"); |
| | | } |
| | | } |
| | | } |