From b62a2f5ad99995ec01da71b9f93be7284023171b Mon Sep 17 00:00:00 2001 From: chr <chr@chr.com> Date: 星期二, 20 八月 2024 11:29:13 +0800 Subject: [PATCH] 优化插件; --- PdmSwPlugin.Common/Entity/Pdm/PdmBom.cs | 116 +++++++ InnoSetupScript/PdmSwPlugin.iss | 16 PdmSwPlugin.Common/PdmSwPlugin.Common.csproj | 2 PdmSwPlugin.DrawApprove/DrawApprove.xaml | 5 PdmSwPlugin.Common/Entity/DrawAudit/DrawAudit.cs | 36 ++ PdmSwPlugin.DrawApprove/DrawApprove.xaml.cs | 108 ++++++- /dev/null | 39 -- PdmSwPlugin.Common/Entity/DrawAudit/DrawAuditOrder.cs | 16 + PdmSwPlugin.Common/Util/NumberUtil.cs | 16 + PdmSwPlugin.Main/Constant/PluginConst.cs | 2 PdmSw/Settings/PluginSetting.xml | 0 PdmSwPlugin.PDM/Model/PdmControlModel.cs | 34 ++ PdmSwPlugin.PDM/PdmControl.xaml.cs | 118 ++++--- .vs/SwPlugin/v17/DocumentLayout.json | 173 +++++------- PdmSwPlugin.Common/BomIniter/YwtBomIniter.cs | 4 PdmSwPlugin.PDM/PdmControl.xaml | 107 ++++-- 16 files changed, 515 insertions(+), 277 deletions(-) diff --git a/.vs/SwPlugin/v17/DocumentLayout.json b/.vs/SwPlugin/v17/DocumentLayout.json index 67f8ef5..d993371 100644 --- a/.vs/SwPlugin/v17/DocumentLayout.json +++ b/.vs/SwPlugin/v17/DocumentLayout.json @@ -3,36 +3,28 @@ "WorkspaceRootPath": "C:\\Workspace\\PdmSwPlugin2\\", "Documents": [ { - "AbsoluteMoniker": "D:0:0:{7ACEDAA9-2DE8-4485-837A-E7D58812A6DC}|PdmSw\\PdmSw.csproj|c:\\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:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|c:\\workspace\\pdmswplugin2\\pdmswplugin.common\\entity\\drawaudit\\drawaudit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|solutionrelative:pdmswplugin.common\\entity\\drawaudit\\drawaudit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { - "AbsoluteMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|C:\\Workspace\\PdmSwPlugin2\\pdmswplugin.common\\control\\richhiswindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", - "RelativeMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|solutionrelative:pdmswplugin.common\\control\\richhiswindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" + "AbsoluteMoniker": "D:0:0:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|c:\\workspace\\pdmswplugin2\\pdmswplugin.drawapprove\\drawapprove.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", + "RelativeMoniker": "D:0:0:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|solutionrelative:pdmswplugin.drawapprove\\drawapprove.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" }, { - "AbsoluteMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|C:\\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:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|c:\\workspace\\pdmswplugin2\\pdmswplugin.drawapprove\\drawapprove.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|solutionrelative:pdmswplugin.drawapprove\\drawapprove.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { - "AbsoluteMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|C:\\Workspace\\PdmSwPlugin2\\pdmswplugin.common\\bominiter\\bominiter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|solutionrelative:pdmswplugin.common\\bominiter\\bominiter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + "AbsoluteMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|c:\\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:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|C:\\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:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|c:\\workspace\\pdmswplugin2\\pdmswplugin.common\\entity\\drawaudit\\drawauditorder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|solutionrelative:pdmswplugin.common\\entity\\drawaudit\\drawauditorder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { - "AbsoluteMoniker": "D:0:0:{7ACEDAA9-2DE8-4485-837A-E7D58812A6DC}|PdmSw\\PdmSw.csproj|C:\\Workspace\\PdmSwPlugin2\\pdmsw\\prodsettings\\pluginsetting.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}", - "RelativeMoniker": "D:0:0:{7ACEDAA9-2DE8-4485-837A-E7D58812A6DC}|PdmSw\\PdmSw.csproj|solutionrelative:pdmsw\\prodsettings\\pluginsetting.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}" - }, - { - "AbsoluteMoniker": "D:0:0:{7ACEDAA9-2DE8-4485-837A-E7D58812A6DC}|PdmSw\\PdmSw.csproj|C:\\Workspace\\PdmSwPlugin2\\pdmsw\\settings\\pluginsetting.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}", - "RelativeMoniker": "D:0:0:{7ACEDAA9-2DE8-4485-837A-E7D58812A6DC}|PdmSw\\PdmSw.csproj|solutionrelative:pdmsw\\settings\\pluginsetting.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}" - }, - { - "AbsoluteMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|C:\\Workspace\\PdmSwPlugin2\\pdmswplugin.main\\swaddin\\maincontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|solutionrelative:pdmswplugin.main\\swaddin\\maincontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + "AbsoluteMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|c:\\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}" } ], "DocumentGroupContainers": [ @@ -42,103 +34,84 @@ "DocumentGroups": [ { "DockedWidth": 200, - "SelectedChildIndex": 0, + "SelectedChildIndex": 5, "Children": [ { "$type": "Document", - "DocumentIndex": 0, - "Title": "SwAddin.cs", - "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSw\\SwAddin.cs", - "RelativeDocumentMoniker": "PdmSw\\SwAddin.cs", - "ToolTip": "C:\\Workspace\\PdmSwPlugin2\\PdmSw\\SwAddin.cs", - "RelativeToolTip": "PdmSw\\SwAddin.cs", - "ViewState": "AQIAAAcAAAAAAAAAAAAAABIAAAAnAAAA", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-08-16T02:28:52.727Z", + "DocumentIndex": 1, + "Title": "DrawApprove.xaml", + "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.DrawApprove\\DrawApprove.xaml", + "RelativeDocumentMoniker": "PdmSwPlugin.DrawApprove\\DrawApprove.xaml", + "ToolTip": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.DrawApprove\\DrawApprove.xaml", + "RelativeToolTip": "PdmSwPlugin.DrawApprove\\DrawApprove.xaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2024-08-20T03:02:33.757Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 1, - "Title": "RichHisWindow.xaml", - "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\Control\\RichHisWindow.xaml", - "RelativeDocumentMoniker": "PdmSwPlugin.Common\\Control\\RichHisWindow.xaml", - "ToolTip": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\Control\\RichHisWindow.xaml", - "RelativeToolTip": "PdmSwPlugin.Common\\Control\\RichHisWindow.xaml", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", - "WhenOpened": "2024-08-16T02:26:26.745Z" - }, - { - "$type": "Document", - "DocumentIndex": 2, - "Title": "YwtBomIniter.cs", - "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\BomIniter\\YwtBomIniter.cs", - "RelativeDocumentMoniker": "PdmSwPlugin.Common\\BomIniter\\YwtBomIniter.cs", - "ToolTip": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\BomIniter\\YwtBomIniter.cs", - "RelativeToolTip": "PdmSwPlugin.Common\\BomIniter\\YwtBomIniter.cs", - "ViewState": "AQIAAAAAAAAAAAAAAAAAABIAAABLAAAA", + "DocumentIndex": 4, + "Title": "DrawAuditOrder.cs", + "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\Entity\\DrawAudit\\DrawAuditOrder.cs", + "RelativeDocumentMoniker": "PdmSwPlugin.Common\\Entity\\DrawAudit\\DrawAuditOrder.cs", + "ToolTip": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\Entity\\DrawAudit\\DrawAuditOrder.cs", + "RelativeToolTip": "PdmSwPlugin.Common\\Entity\\DrawAudit\\DrawAuditOrder.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAAAAkAAAAFAAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-08-15T08:33:54.519Z" - }, - { - "$type": "Document", - "DocumentIndex": 3, - "Title": "BomIniter.cs", - "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\BomIniter\\BomIniter.cs", - "RelativeDocumentMoniker": "PdmSwPlugin.Common\\BomIniter\\BomIniter.cs", - "ToolTip": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\BomIniter\\BomIniter.cs", - "RelativeToolTip": "PdmSwPlugin.Common\\BomIniter\\BomIniter.cs", - "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-08-15T08:33:51.192Z" + "WhenOpened": "2024-08-20T02:13:49.926Z", + "EditorCaption": "" }, { "$type": "Document", "DocumentIndex": 5, - "Title": "PluginSetting.xml", - "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSw\\ProdSettings\\PluginSetting.xml", - "RelativeDocumentMoniker": "PdmSw\\ProdSettings\\PluginSetting.xml", - "ToolTip": "C:\\Workspace\\PdmSwPlugin2\\PdmSw\\ProdSettings\\PluginSetting.xml", - "RelativeToolTip": "PdmSw\\ProdSettings\\PluginSetting.xml", - "ViewState": "AQIAAAAAAAAAAAAAAAAAAA0AAAAPAAAA", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003576|", - "WhenOpened": "2024-08-12T10:16:18.735Z" - }, - { - "$type": "Document", - "DocumentIndex": 6, - "Title": "PluginSetting.xml", - "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSw\\Settings\\PluginSetting.xml", - "RelativeDocumentMoniker": "PdmSw\\Settings\\PluginSetting.xml", - "ToolTip": "C:\\Workspace\\PdmSwPlugin2\\PdmSw\\Settings\\PluginSetting.xml", - "RelativeToolTip": "PdmSw\\Settings\\PluginSetting.xml", - "ViewState": "AQIAAAAAAAAAAAAAAAAAABEAAAAXAAAA", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003576|", - "WhenOpened": "2024-08-12T10:16:06.032Z" - }, - { - "$type": "Document", - "DocumentIndex": 4, - "Title": "MainControl.xaml.cs", - "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\MainControl.xaml.cs", - "RelativeDocumentMoniker": "PdmSwPlugin.Main\\MainControl.xaml.cs", - "ToolTip": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\MainControl.xaml.cs", - "RelativeToolTip": "PdmSwPlugin.Main\\MainControl.xaml.cs", - "ViewState": "AQIAAIUAAAAAAAAAAAAAAJAAAAANAAAA", + "Title": "PluginConst.cs", + "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\Constant\\PluginConst.cs", + "RelativeDocumentMoniker": "PdmSwPlugin.Main\\Constant\\PluginConst.cs", + "ToolTip": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\Constant\\PluginConst.cs", + "RelativeToolTip": "PdmSwPlugin.Main\\Constant\\PluginConst.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAAAAgAAAAAAAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-08-12T10:08:35.904Z" + "WhenOpened": "2024-08-18T12:05:54.617Z", + "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 7, - "Title": "MainControl.cs", - "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\SwAddIn\\MainControl.cs", - "RelativeDocumentMoniker": "PdmSwPlugin.Main\\SwAddIn\\MainControl.cs", - "ToolTip": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\SwAddIn\\MainControl.cs", - "RelativeToolTip": "PdmSwPlugin.Main\\SwAddIn\\MainControl.cs", - "ViewState": "AQIAADcAAAAAAAAAAAAkwG0AAAANAAAA", + "DocumentIndex": 3, + "Title": "PdmControl.xaml.cs", + "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PDM\\PdmControl.xaml.cs", + "RelativeDocumentMoniker": "PdmSwPlugin.PDM\\PdmControl.xaml.cs", + "ToolTip": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PDM\\PdmControl.xaml.cs", + "RelativeToolTip": "PdmSwPlugin.PDM\\PdmControl.xaml.cs", + "ViewState": "AQIAAMoEAAAAAAAAAAApwNoEAAAAAAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-08-12T09:19:59.648Z" + "WhenOpened": "2024-08-18T08:40:17.518Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 2, + "Title": "DrawApprove.xaml.cs", + "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs", + "RelativeDocumentMoniker": "PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs", + "ToolTip": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs", + "RelativeToolTip": "PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs", + "ViewState": "AQIAABoBAAAAAAAAAAAcwCUBAAAdAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-08-18T08:30:42.283Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "DrawAudit.cs", + "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\Entity\\DrawAudit\\DrawAudit.cs", + "RelativeDocumentMoniker": "PdmSwPlugin.Common\\Entity\\DrawAudit\\DrawAudit.cs", + "ToolTip": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\Entity\\DrawAudit\\DrawAudit.cs", + "RelativeToolTip": "PdmSwPlugin.Common\\Entity\\DrawAudit\\DrawAudit.cs", + "ViewState": "AQIAAAYAAAAAAAAAAAAAABAAAAAfAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-08-18T08:28:05.337Z", + "EditorCaption": "" } ] } diff --git a/SetupScript/SetupScript.iss b/InnoSetupScript/PdmSwPlugin.iss similarity index 86% rename from SetupScript/SetupScript.iss rename to InnoSetupScript/PdmSwPlugin.iss index f06a4cf..83dde2b 100644 --- a/SetupScript/SetupScript.iss +++ b/InnoSetupScript/PdmSwPlugin.iss @@ -3,14 +3,14 @@ ; AppName #define AppName = "PdmSwPlugin" ; 打包的应用文件夹路径 -#define AppDir = "C:\Users\cheng\Documents\Workspace\PdmSw\bin\x64\Debug\" +#define AppDir = "C:\Workspace\PdmSwPlugin2\PdmSw\bin\x64\Release\" ; 自动更新程序路径 -#define AutoUpdaterDir = "C:\Users\cheng\Documents\Workspace\PdmSw\bin\x64\Debug\AutoUpdater\" +#define AutoUpdaterDir = "C:\Workspace\PdmSwPlugin2\PdmSw\bin\x64\Release\Release\AutoUpdater\" ; 版本 -#define Version = "0.1" +#define Version = "0.0.0.35" ; 生成的Installer存放路径 -#define OutPutDir = "C:\temp\Test" +#define OutPutDir = "Z:\Main\Workspace\Output" #define DllName = "PdmSwPlugin.dll" @@ -22,14 +22,14 @@ AppVersion={#Version} ;AppVerName=Test 1.0 ; 安装路径 C:\Program Files (x86)\LHJ\PdmSwPlugin -DefaultDirName={autopf}\LHJ\PdmSwPlugin +DefaultDirName={autopf}\HengXin\PdmSwPlugin DisableDirPage=yes DefaultGroupName=PdmSwPlugin DisableProgramGroupPage=yes ; Uncomment the following line to run in non administrative install mode (install for current user only.) ;PrivilegesRequired=lowest OutputDir={#OutputDir} -OutputBaseFilename=PdmSwPluginInstaller +OutputBaseFilename=PdmSwPluginInstaller_V{#Version} Compression=lzma SolidCompression=yes WizardStyle=modern @@ -61,12 +61,12 @@ ; 32 Root: HKLM; Subkey: "SOFTWARE\SolidWorks\Addins\{{{#AppId}}"; Flags: uninsdeletekey Root: HKLM; Subkey: "SOFTWARE\SolidWorks\Addins\{{{#AppId}}"; ValueType: dword; ValueName: ""; ValueData: 0; Flags: deletevalue -Root: HKLM; Subkey: "SOFTWARE\SolidWorks\Addins\{{{#AppId}}"; ValueType: string; ValueName: "Description"; ValueData: "LHJ插件"; Flags: deletevalue +Root: HKLM; Subkey: "SOFTWARE\SolidWorks\Addins\{{{#AppId}}"; ValueType: string; ValueName: "Description"; ValueData: "PDM插件"; Flags: deletevalue Root: HKLM; Subkey: "SOFTWARE\SolidWorks\Addins\{{{#AppId}}"; ValueType: string; ValueName: "Title"; ValueData: "PdmSw"; Flags: deletevalue ; 64 Root: HKLM64; Subkey: "SOFTWARE\SolidWorks\Addins\{{{#AppId}}"; Flags: uninsdeletekey Root: HKLM64; Subkey: "SOFTWARE\SolidWorks\Addins\{{{#AppId}}"; ValueType: dword; ValueName: ""; ValueData: 0; Flags: deletevalue -Root: HKLM64; Subkey: "SOFTWARE\SolidWorks\Addins\{{{#AppId}}"; ValueType: string; ValueName: "Description"; ValueData: "LHJ插件"; Flags: deletevalue +Root: HKLM64; Subkey: "SOFTWARE\SolidWorks\Addins\{{{#AppId}}"; ValueType: string; ValueName: "Description"; ValueData: "PDM插件"; Flags: deletevalue Root: HKLM64; Subkey: "SOFTWARE\SolidWorks\Addins\{{{#AppId}}"; ValueType: string; ValueName: "Title"; ValueData: "PdmSw"; Flags: deletevalue [Icons] diff --git a/PdmSw/Settings/PluginSetting.xml b/PdmSw/Settings/PluginSetting.xml index 3a405cf..8d3508b 100644 --- a/PdmSw/Settings/PluginSetting.xml +++ b/PdmSw/Settings/PluginSetting.xml Binary files differ diff --git a/PdmSwPlugin.Common/BomIniter/YwtBomIniter.cs b/PdmSwPlugin.Common/BomIniter/YwtBomIniter.cs index 5ff5a59..5aae542 100644 --- a/PdmSwPlugin.Common/BomIniter/YwtBomIniter.cs +++ b/PdmSwPlugin.Common/BomIniter/YwtBomIniter.cs @@ -29,7 +29,9 @@ if (Regex.IsMatch(childName, jgjNameRegx)) { - bom.historyData = NameUtil.IsHistoryDoc(childName); + if (bom._drawInfo != null) { + bom._drawInfo.HistoryData = NameUtil.IsHistoryDoc(childName); + } string docType = bom.properties.Get("鏂囦欢鏍煎紡"); if (string.IsNullOrEmpty(docType)) diff --git a/PdmSwPlugin.Common/Entity/DrawAudit/DrawAudit.cs b/PdmSwPlugin.Common/Entity/DrawAudit/DrawAudit.cs index 94586e4..52fb104 100644 --- a/PdmSwPlugin.Common/Entity/DrawAudit/DrawAudit.cs +++ b/PdmSwPlugin.Common/Entity/DrawAudit/DrawAudit.cs @@ -12,6 +12,15 @@ set { _id = value; } } + private string _orderCode; + + public string orderCode + { + get => _orderCode; + set => RaiseAndSetIfChanged(ref _orderCode, value); + } + + private string _materialCode; public string materialCode @@ -107,5 +116,32 @@ set => RaiseAndSetIfChanged(ref _count, value); } + private string _fileName; + public string fileName + { + get => _fileName; + set => RaiseAndSetIfChanged(ref _fileName, value); + } + + private double? _volume; + public double? volume + { + get => _volume; + set => RaiseAndSetIfChanged(ref _volume, value); + } + + private double? _surfaceArea; + public double? surfaceArea + { + get => _surfaceArea; + set => RaiseAndSetIfChanged(ref _surfaceArea, value); + } + + private double? _mass; + public double? mass + { + get => _mass; + set => RaiseAndSetIfChanged(ref _mass, value); + } } } diff --git a/PdmSwPlugin.Common/Entity/DrawAudit/DrawAuditOrder.cs b/PdmSwPlugin.Common/Entity/DrawAudit/DrawAuditOrder.cs new file mode 100644 index 0000000..cd69831 --- /dev/null +++ b/PdmSwPlugin.Common/Entity/DrawAudit/DrawAuditOrder.cs @@ -0,0 +1,16 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PdmSwPlugin.Common.Entity.DrawAudit +{ + public class DrawAuditOrder + { + public string id { get; set; } + public string code { get; set; } + public string requestUserId { get; set; } + public string requestUser { get; set; } + } +} diff --git a/PdmSwPlugin.Common/Entity/Pdm/PdmBom.cs b/PdmSwPlugin.Common/Entity/Pdm/PdmBom.cs index 654ff5b..5348f1b 100644 --- a/PdmSwPlugin.Common/Entity/Pdm/PdmBom.cs +++ b/PdmSwPlugin.Common/Entity/Pdm/PdmBom.cs @@ -6,6 +6,7 @@ using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO; +using System.Windows.Interop; namespace PdmSwPlugin.Common.Entity.Pdm { @@ -35,6 +36,8 @@ public string filePath { get; set; } public int level { get; set; } public int drawingType { get; set; } + + public bool HistoryData = false; public ModelDoc2 doc { get; set; } public Component2 component { get; set; } @@ -152,6 +155,14 @@ public bool checkRuleOk => checkRuleResult == 1 || checkRuleResult == 3; + private bool _HistoryData = false; + public bool HistoryData + { + get => _HistoryData; + set => RaiseAndSetIfChanged(ref _HistoryData, value); + } + + public List<string> errMessages { get; set; } public Dictionary<string, string> allProperties { get; set; } @@ -216,15 +227,101 @@ public string auditUserId => BomInfo?.auditUserId; public string auditUser => BomInfo?.auditUser; - public bool inBom + /// <summary> + /// 鏄惁鏄巻鍙插浘绾� + /// </summary> + public bool IsHistoryData => _drawInfo?.HistoryData == true; + /// <summary> + /// 鏄惁璺宠繃瑙勫垯妫�鏌� + /// </summary> + public bool skipCheck => produceWay == "妯$粍" || ExcludeFromBOM || component?.IsVirtual == true; + /// <summary> + /// 鍥剧焊鏄惁鍙戠敓鍙樻洿 闈炲巻鍙插浘绾哥湅2D鍥綧D5 鍘嗗彶鍥剧焊鐪嬩竴鑷存�ф鏌ユ病閫氳繃 + /// </summary> + public bool localDocChanged => (!IsHistoryData && localD2Md5 != _drawInfo?.d2Md5) + || (IsHistoryData && _drawInfo?.checkRuleResult == 2); //localD3Md5 != _drawInfo?.d3Md5; + /// <summary> + /// 瑙勫垯妫�鏌ョ粨鏋� + /// </summary> + public int? checkRuleResult => (IsHistoryData || skipCheck) ? 3 : _drawInfo?.checkRuleResult; + /// <summary> + /// 妫�鏌ユ槸鍚K + /// </summary> + public bool checkRuleOk => _drawInfo != null && _drawInfo.checkRuleOk; + /// <summary> + /// 鏄惁涓嶅湪鐗╂枡鏄庣粏琛ㄤ腑 + /// </summary> + public bool ExcludeFromBOM { get => component == null ? false : component.ExcludeFromBOM; set { InBomChanged?.Invoke(this, value); - // RaiseAndSetIfChanged(ref _inBom, value); } } + + /// <summary> + /// 鏄惁闇�瑕佸鏍� + /// </summary> + public bool NeedAudit + { + get + { + // 鎵句笉鍒版枃妗g殑涓嶅鏍� + if (lost) return false; + // 涓嶅湪鐗╂枡鏄庣粏琛ㄤ腑涓嶅鏍� + if (ExcludeFromBOM) return false; + if (IsHistoryData) + { + // 鍘嗗彶鍥剧焊鍙鏍镐竴鑷存�т笉閫氳繃鐨� + return _drawInfo.checkRuleResult == 2; + } + else + { + // 闈炲巻鍙插浘绾稿彧瀹℃牳 鍏佽瀹℃牳鐨勫姞宸ヤ欢 + return produceWay == "鍔犲伐浠�" + && (drawStatus != "submitted" && drawStatus != "resubmitted") + && (drawStatus != "completed" || localDocChanged); + } + } + } + + /// <summary> + /// 鏄惁闇�瑕佺粓姝㈡鍏�/瀵煎叆 + /// </summary> + /// <returns></returns> + public string NeedStopCheckIn() + { + if (produceWay == "妯$粍") return null; + if (ExcludeFromBOM) return null; + if (IsHistoryData && localDocChanged) + { + return $"鍘嗗彶鍥剧焊銆恵partModel}銆戝彉鏇村悗鏈噸鏂板鏍�"; + } + if (!IsHistoryData) + { + bool error = false; + string msg = $"銆恵partModel}銆�"; + if (!skipCheck && !checkRuleOk) + { + error = true; + msg += "鏈�氳繃瑙勫垯妫�鏌�"; + } + if (produceWay == "鍔犲伐浠�" && drawStatus != "completed") + { + error = true; + msg += "鏈�氳繃瀹℃牳;"; + } + if (produceWay == "鍔犲伐浠�" && drawStatus == "completed" && localDocChanged) + { + error = true; + msg += "鍥剧焊鍙樻洿鍚庢湭閲嶆柊瀹℃牳"; + } + return error ? msg : null; + } + return null; + } + public void UpdateInBom(bool value) { @@ -430,15 +527,13 @@ if (e.PropertyName == "checkRuleResult") { RaisePropertyChanged("checkRuleResult"); + RaisePropertyChanged("localDocChanged"); + } + else if (e.PropertyName == "HistoryData") + { + RaisePropertyChanged("IsHistoryData"); } } - - // 妯$粍 涓嶅湪鐗╂枡鏄庣粏琛� 宸℃璺宠繃妫�鏌� - public bool historyData { get; set; } = false; - public bool skipCheck => historyData || produceWay == "妯$粍" || inBom || component?.IsVirtual == true; - public int? checkRuleResult => skipCheck ? 3 : _drawInfo?.checkRuleResult; - - public bool checkRuleOk => _drawInfo != null && _drawInfo.checkRuleOk; public string d3Md5 => _drawInfo == null ? null : _drawInfo.d3Md5; public string d2Md5 => _drawInfo == null ? null : _drawInfo.d2Md5; @@ -459,14 +554,13 @@ public bool checkBoxEnabled => !(xcChild || (lost == true) || produceWay == "鏍囧噯浠�" || (produceWay == "妯$粍" && drawingType == (int)swDocumentTypes_e.swDocPART) - || (inBom && drawingType == (int)swDocumentTypes_e.swDocPART) + || (ExcludeFromBOM && drawingType == (int)swDocumentTypes_e.swDocPART) // BomInfo.jgj == "鏍囧噯浠�" //|| component?.IsVirtual == true ); public bool d3Changed => localD3Md5 != _drawInfo?.d3Md5; - public bool auditedMd5Changed => localD2Md5 != _drawInfo?.d2Md5; //localD3Md5 != _drawInfo?.d3Md5; public int order { get; set; } diff --git a/PdmSwPlugin.Common/PdmSwPlugin.Common.csproj b/PdmSwPlugin.Common/PdmSwPlugin.Common.csproj index 2329521..4d9b8de 100644 --- a/PdmSwPlugin.Common/PdmSwPlugin.Common.csproj +++ b/PdmSwPlugin.Common/PdmSwPlugin.Common.csproj @@ -76,6 +76,7 @@ <Compile Include="Entity\BusinessType.cs" /> <Compile Include="Entity\DrawAudit\DrawAudit.cs" /> <Compile Include="Entity\DrawAudit\DrawAuditHis.cs" /> + <Compile Include="Entity\DrawAudit\DrawAuditOrder.cs" /> <Compile Include="Entity\NoteAndPos.cs" /> <Compile Include="Entity\NotifyBase.cs" /> <Compile Include="Entity\Page.cs" /> @@ -102,6 +103,7 @@ <Compile Include="Setting\YwtUserSetting.cs" /> <Compile Include="Util\DictionaryUtil.cs" /> <Compile Include="Util\LimitedConcurrencyLevelTaskScheduler.cs" /> + <Compile Include="Util\NumberUtil.cs" /> <Compile Include="Util\OpenDocContext.cs" /> <Compile Include="Util\Pdm\ComponentAndTask.cs" /> <Compile Include="Util\Pdm\BomTreeReader.cs" /> diff --git a/PdmSwPlugin.Common/Util/NumberUtil.cs b/PdmSwPlugin.Common/Util/NumberUtil.cs new file mode 100644 index 0000000..a1e5545 --- /dev/null +++ b/PdmSwPlugin.Common/Util/NumberUtil.cs @@ -0,0 +1,16 @@ +锘縰sing SolidWorks.Interop.sldworks; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PdmSwPlugin.Common.Util +{ + public class NumberUtil + { + public static double HandleMass(double mass) { + return Math.Round(mass, 6); + } + } +} diff --git a/PdmSwPlugin.DrawApprove/DrawApprove.xaml b/PdmSwPlugin.DrawApprove/DrawApprove.xaml index b2bcb72..fd35c23 100644 --- a/PdmSwPlugin.DrawApprove/DrawApprove.xaml +++ b/PdmSwPlugin.DrawApprove/DrawApprove.xaml @@ -84,7 +84,7 @@ <DataGridTemplateColumn.CellTemplate> <DataTemplate> <CheckBox DataContext="{Binding Data}" - IsChecked="{Binding selected}"/> + IsChecked="{Binding selected}" Checked="SingleCheckBox_Event" Unchecked="SingleCheckBox_Event"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> @@ -100,6 +100,7 @@ </DataGridTemplateColumn> <DataGridTextColumn Header="鐢宠浜�" Width="80" IsReadOnly="True" Binding="{Binding Data.requestUser}"/> + <DataGridTextColumn Header="娴佹按鍗曞彿" Width="80" IsReadOnly="True" Binding="{Binding Data.orderCode}"/> <DataGridTextColumn Header="鍓嶄竴瀹℃牳浜�" Width="80" IsReadOnly="True" Binding="{Binding Data.auditUser}"/> <DataGridTextColumn Header="鎻愪氦鏃堕棿" Width="130" IsReadOnly="True" Binding="{Binding Data.updateTime}"/> @@ -131,7 +132,7 @@ <StatusBar DockPanel.Dock="Bottom" Height="20"> <StatusBarItem > - <TextBox x:Name="activeDocPath" IsReadOnly="True" Style="{StaticResource StatusBarTextBox}" Text="{Binding ActiveDocPath}"/> + <TextBox x:Name="activeDocPath" IsReadOnly="True" Style="{StaticResource StatusBarTextBox}" Text="{Binding SelectBomText}"/> </StatusBarItem> <Separator/> <StatusBarItem> diff --git a/PdmSwPlugin.DrawApprove/DrawApprove.xaml.cs b/PdmSwPlugin.DrawApprove/DrawApprove.xaml.cs index 6c27ce6..1b6b817 100644 --- a/PdmSwPlugin.DrawApprove/DrawApprove.xaml.cs +++ b/PdmSwPlugin.DrawApprove/DrawApprove.xaml.cs @@ -64,8 +64,36 @@ public ObservableCollection<DrawAudit> dataSource { get => _dataSource; - set => RaiseAndSetIfChanged(ref _dataSource, value); + set + { + RaiseAndSetIfChanged(ref _dataSource, value); + if (value == null) + { + StatusBarText = $"鍏� 0 鏉�"; + } + else + { + StatusBarText = $"鍏� {value.Count} 鏉�"; + } + RefreshSelectedCount(); + } } + + private string _SelectBomText = "宸查�変腑 0 鏉�"; + public string SelectBomText + { + get => _SelectBomText; + set => RaiseAndSetIfChanged(ref _SelectBomText, value); + } + + private string _StatusBarText = "鍏� 0 鏉�"; + + public string StatusBarText + { + get { return _StatusBarText; } + set => RaiseAndSetIfChanged(ref _StatusBarText, value); + } + public DrawApproveControl() : this(null) @@ -100,7 +128,32 @@ { data.selected = cb.IsChecked.Value; } + int count = cb.IsChecked.Value ? (dataSource == null ? 0 : dataSource.Count) : 0; + SelectBomText = $"宸查�変腑 {count} 鏉�"; } + + private void RefreshSelectedCount() + { + if (dataSource == null || dataSource.Count <= 0) + { + SelectBomText = "宸查�変腑 0 鏉�"; + return; + } + int count = dataSource.Where(e => e.selected).Count(); + SelectBomText = $"宸查�変腑 {count} 鏉�"; + } + + /// <summary> + /// 鍗曚釜鐐归�変簨浠� + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void SingleCheckBox_Event(object sender, RoutedEventArgs e) + { + RefreshSelectedCount(); + } + + private void Button_Click(object sender, RoutedEventArgs e) { @@ -207,39 +260,34 @@ { Button btn = sender as Button; DrawAudit da = btn.DataContext as DrawAudit; - string fileName = Path.GetFileName(da.d2RelativePath); - if (string.IsNullOrEmpty(fileName)) + string filePath = GetRealFilePath(da.d2RelativePath); + if (!File.Exists(filePath)) { - this.Error("鏃犳晥鏂囦欢鍚�"); + this.Error($"鏈嶅姟鍣ㄤ腑鏈壘鍒板伐绋嬪浘鏂囦欢锛岃矾寰�:{filePath}"); return; } - fileName = Path.Combine(PluginSetting.Instance.SwFilePath, fileName); - if (!File.Exists(fileName)) - { - this.Error($"鏈嶅姟鍣ㄤ腑鏈壘鍒板伐绋嬪浘鏂囦欢锛岃矾寰�:{fileName}"); - return; - } - OpenDocMayError(fileName, (int)swDocumentTypes_e.swDocDRAWING, (int)swOpenDocOptions_e.swOpenDocOptions_ReadOnly, + OpenDocMayError(filePath, (int)swDocumentTypes_e.swDocDRAWING, (int)swOpenDocOptions_e.swOpenDocOptions_ReadOnly, ""); + } + + private string GetRealFilePath(string dbPath) + { + string fileName = Path.GetFileName(dbPath); + string filePath = Path.Combine(PluginSetting.Instance.SwFilePath, fileName); + return filePath; } private void OpenDoc_Click(object sender, RoutedEventArgs e) { Button btn = sender as Button; DrawAudit da = btn.DataContext as DrawAudit; - string fileName = Path.GetFileName(da.d3RelativePath); - if (string.IsNullOrEmpty(fileName)) + string filePath = GetRealFilePath(da.d3RelativePath); + if (!File.Exists(filePath)) { - this.Error("鏃犳晥鏂囦欢鍚�"); + this.Error($"鏈嶅姟鍣ㄤ腑鏈壘鍒板浘绾告枃浠讹紝璺緞:{filePath}"); return; } - fileName = Path.Combine(PluginSetting.Instance.SwFilePath, fileName); - if (!File.Exists(fileName)) - { - this.Error($"鏈嶅姟鍣ㄤ腑鏈壘鍒板伐绋嬪浘鏂囦欢锛岃矾寰�:{fileName}"); - return; - } - OpenDocMayError(fileName, (int)swDocumentTypes_e.swDocPART, (int)swOpenDocOptions_e.swOpenDocOptions_ReadOnly, + OpenDocMayError(filePath, (int)swDocumentTypes_e.swDocPART, (int)swOpenDocOptions_e.swOpenDocOptions_ReadOnly, ""); } @@ -295,6 +343,23 @@ { try { + string filePath = GetRealFilePath(da.d3RelativePath); + if (!File.Exists(filePath)) + { + this.Error($"鏈嶅姟鍣ㄤ腑鏈壘鍒板浘绾告枃浠讹紝璺緞:{filePath}"); + return; + } + + double[] massData = SwDMUtil.GetMassProperty(filePath, out string errMsg); + if (massData == null) + { + this.Error($"鑾峰彇鍥剧焊涓�鑷存�ф暟鎹け璐ワ紒{errMsg}"); + return; + } + da.fileName = Path.GetFileName(filePath); + da.volume = NumberUtil.HandleMass(massData[3]); + da.surfaceArea = NumberUtil.HandleMass(massData[4]); + da.mass = NumberUtil.HandleMass(massData[5]); da.pass = true; Result<object> res = Client.PostSyncAction<object>(da, "drawAudit/complete"); object obj = res.HandleResult(); @@ -307,6 +372,7 @@ catch (Exception ex) { Logger.Error("Draw complete failed.", ex); + this.Error($"瀹℃牳澶辫触锛亄ex.Message}"); } finally { diff --git a/PdmSwPlugin.Main/Constant/PluginConst.cs b/PdmSwPlugin.Main/Constant/PluginConst.cs index 3b7f1df..3961f77 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.34"; + public static readonly string Version = "0.0.0.36"; } } diff --git a/PdmSwPlugin.PDM/Model/PdmControlModel.cs b/PdmSwPlugin.PDM/Model/PdmControlModel.cs index 5f154ab..7a71c9c 100644 --- a/PdmSwPlugin.PDM/Model/PdmControlModel.cs +++ b/PdmSwPlugin.PDM/Model/PdmControlModel.cs @@ -13,6 +13,27 @@ { public partial class PdmControlModel : NotifyBase { + private string _SelectedBomCount = "宸查�変腑 0 鏉�"; + + public string SelectedBomCount + { + get => _SelectedBomCount; + set + { + RaiseAndSetIfChanged(ref _SelectedBomCount, value); + } + } + + private string _AllBomCount = "鍏� 0 鏉�"; + + public string AllBomCount + { + get => _AllBomCount; + set + { + RaiseAndSetIfChanged(ref _AllBomCount, value); + } + } public BomTreeReader bomTreeReader { get; private set; } = new BomTreeReader(); @@ -23,7 +44,17 @@ public ObservableCollection<PdmBom> BomTree { get => _bomTree; - set => RaiseAndSetIfChanged(ref _bomTree, value); + set { + RaiseAndSetIfChanged(ref _bomTree, value); + int count = CacheList != null ? CacheList.Count : 0; + AllBomCount = $"鍏� {count} 鏉�"; + RefreshSelectedBomCount(); + } + } + + public void RefreshSelectedBomCount() { + int count = CacheList != null ? CacheList.Where(e=>e.selected).Count() : 0; + SelectedBomCount = $"宸查�変腑 {count} 鏉�"; } public List<PdmBom> CacheList => bomTreeReader?.CacheList.ToList(); @@ -167,6 +198,7 @@ drawInfos.Add(partModel, drawInfo); } bom.drawInfo = drawInfo; + bom.Init(); ICollection<PdmBom> children = bom.modules; if (children != null && children.Count > 0) diff --git a/PdmSwPlugin.PDM/PdmControl.xaml b/PdmSwPlugin.PDM/PdmControl.xaml index 30f6399..0870c68 100644 --- a/PdmSwPlugin.PDM/PdmControl.xaml +++ b/PdmSwPlugin.PDM/PdmControl.xaml @@ -111,6 +111,12 @@ <Setter Property="Foreground" Value="White"/> <Setter Property="Background" Value="Gray"/> </DataTrigger> + + <DataTrigger Binding="{Binding IsHistoryData}" Value="true"> + <Setter Property="Text" Value="鏃犻渶妫�鏌�"/> + <Setter Property="Foreground" Value="White"/> + <Setter Property="Background" Value="Gray"/> + </DataTrigger> </Style.Triggers> </Style> @@ -119,42 +125,6 @@ <Setter Property="Foreground" Value="Black"/> <Setter Property="Background" Value="White"/> <Style.Triggers> - <DataTrigger Binding="{Binding BomInfo.status}" Value="submitted"> - <Setter Property="Text" Value="瀹℃牳涓�"/> - <Setter Property="Background" Value="Orange"/> - </DataTrigger> - - <MultiDataTrigger> - <MultiDataTrigger.Conditions> - <Condition Binding="{Binding BomInfo.status}" Value="completed"/> - <Condition Binding="{Binding auditedMd5Changed}" Value="false"/> - </MultiDataTrigger.Conditions> - <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 auditedMd5Changed}" 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="resubmitted"> - <Setter Property="Text" Value="閲嶆柊瀹℃牳"/> - <Setter Property="Background" Value="Orange"/> - </DataTrigger> - - <DataTrigger Binding="{Binding BomInfo.status}" Value="rejected"> - <Setter Property="Text" Value="鏈�氳繃"/> - <Setter Property="Foreground" Value="White"/> - <Setter Property="Background" Value="Red"/> - </DataTrigger> - <DataTrigger Binding="{Binding produceWay}" Value="妯$粍"> <Setter Property="Text" Value="鏃犻渶瀹℃牳"/> <Setter Property="Foreground" Value="White"/> @@ -165,6 +135,62 @@ <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"/> + </MultiDataTrigger.Conditions> + <Setter Property="Text" Value="鏃犻渶瀹℃牳"/> + <Setter Property="Foreground" Value="White"/> + <Setter Property="Background" Value="Gray"/> + </MultiDataTrigger> + + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding drawInfo.HistoryData}" Value="true"/> + <Condition Binding="{Binding localDocChanged}" Value="true"/> + </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="false"/> + </MultiDataTrigger.Conditions> + <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="Text" Value="瀹℃牳涓�"/> + <Setter Property="Background" Value="Orange"/> + </DataTrigger> + + <DataTrigger Binding="{Binding BomInfo.status}" Value="resubmitted"> + <Setter Property="Text" Value="閲嶆柊瀹℃牳"/> + <Setter Property="Background" Value="Orange"/> + </DataTrigger> + + <DataTrigger Binding="{Binding BomInfo.status}" Value="rejected"> + <Setter Property="Text" Value="鏈�氳繃"/> + <Setter Property="Foreground" Value="White"/> + <Setter Property="Background" Value="Red"/> </DataTrigger> </Style.Triggers> </Style> @@ -308,6 +334,7 @@ <DataGridTemplateColumn.CellTemplate> <DataTemplate> <CheckBox DataContext="{Binding Data}" + Checked="SingleCheckBox_Event" Unchecked="SingleCheckBox_Event" IsEnabled="{Binding checkBoxEnabled}" IsChecked="{Binding selected}"/> </DataTemplate> @@ -330,7 +357,7 @@ <DataGridTemplateColumn.CellTemplate> <DataTemplate> <CheckBox DataContext="{Binding Data}" - IsChecked="{Binding inBom}"/> + IsChecked="{Binding ExcludeFromBOM}"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> @@ -394,7 +421,7 @@ </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> - <DataGridTemplateColumn Header="瀹℃壒鐘舵��" Width="60" IsReadOnly="True" pm:PermissionUtil.HasPermission="PDM:PLUGIN:CONTROL:PDM:RuleCheckAndApprove"> + <DataGridTemplateColumn Header="瀹℃壒鐘舵��" Width="80" IsReadOnly="True" pm:PermissionUtil.HasPermission="PDM:PLUGIN:CONTROL:PDM:RuleCheckAndApprove"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock Style="{StaticResource drawStatusSlot}" DataContext="{Binding Data}" @@ -411,11 +438,11 @@ <StatusBar Grid.Row="2" > <StatusBarItem > - <TextBox x:Name="activeDocPath" IsReadOnly="True" Style="{StaticResource StatusBarTextBox}" Text="{Binding ActiveDocPath}"/> + <TextBox x:Name="activeDocPath" IsReadOnly="True" Style="{StaticResource StatusBarTextBox}" Text="{Binding SelectedBomCount}"/> </StatusBarItem> <Separator/> <StatusBarItem> - <TextBox x:Name="statusBarText" IsReadOnly="True" Style="{StaticResource StatusBarTextBox}" Text="{Binding StatusBarText}"/> + <TextBox x:Name="statusBarText" IsReadOnly="True" Style="{StaticResource StatusBarTextBox}" Text="{Binding AllBomCount}"/> </StatusBarItem> </StatusBar> </Grid> diff --git a/PdmSwPlugin.PDM/PdmControl.xaml.cs b/PdmSwPlugin.PDM/PdmControl.xaml.cs index 909cb44..d4b28ac 100644 --- a/PdmSwPlugin.PDM/PdmControl.xaml.cs +++ b/PdmSwPlugin.PDM/PdmControl.xaml.cs @@ -34,6 +34,7 @@ using static PdmSwPlugin.PDM.Event.PdmEvent; using System.Windows.Interop; using PdmSwPlugin.Commmon.Control; +using PdmSwPlugin.Common.Entity.System; namespace PdmSwPlugin.PDM { @@ -856,6 +857,12 @@ List<PdmBom> treeBoms = model.bomTreeReader.TreeList.ToList(); if (treeBoms == null || treeBoms.Count <= 0) return; treeBoms[0].selected = cb.IsChecked.Value; + model.RefreshSelectedBomCount(); + } + + private void SingleCheckBox_Event(object sender, RoutedEventArgs e) + { + model.RefreshSelectedBomCount(); } /// <summary> @@ -898,6 +905,11 @@ return result; } + /// <summary> + /// 澶勭悊璐ㄩ噺锛屼繚鐣�6浣嶅皬鏁� + /// </summary> + /// <param name="number"></param> + /// <returns></returns> public static string HandleMass(double number) { return Math.Round(number, 6).ToString("0.000000"); @@ -925,6 +937,7 @@ allProperties["鏂囦欢鍚庣紑"] = Path.GetExtension(filepath); // 鏂囦欢璺緞 allProperties["鏂囦欢璺緞"] = filepath; + allProperties["鍘嗗彶鍥剧焊"] = drawInfo.HistoryData.ToString(); string drawFilePath = filepath.Replace(Path.GetExtension(filepath), ".slddrw"); bool drawExists = File.Exists(drawFilePath); // 宸ョ▼鍥句竴鑷存�ф鏌� @@ -988,6 +1001,10 @@ return drawInfo; } + /// <summary> + /// 鑾峰彇鍏ㄩ儴灞炴�� + /// </summary> + /// <param name="param"></param> public void GetAll(object param) { object[] datas = param as object[]; @@ -1055,14 +1072,16 @@ Dictionary<string, DrawInfo> checkResult = result.HandleResult(); foreach (string key in properties.Keys) { - if (!checkResult[key].checkRuleOk) - { - allSuccess = false; - } properties[key].checkRuleResult = checkResult[key].checkRuleResult; properties[key].errMessages = checkResult[key].errMessages; var msgs = checkResult[key].errMessages; - if (msgs != null && msgs.Count > 0) + if (!properties[key].HistoryData && !checkResult[key].checkRuleOk) + { + // 涓嶆槸鍘嗗彶鏁版嵁骞朵笖鏈夋湭閫氳繃鐨勶紝鏍囪涓篺alse + allSuccess = false; + } + + if (!properties[key].HistoryData && msgs != null && msgs.Count > 0) { foreach (string msg in msgs) { @@ -1148,6 +1167,8 @@ { try { + // 瀵规墍鏈夌殑BOM鍋氳鍒欐鏌� + bool allSuccess = DoCheckRule(out _); // 鍏堣幏鍙栨墍鏈夌殑BOM HashSet<string> cache = new HashSet<string>(); // 鐒跺悗绛涢�夐�変腑鐨凚OM @@ -1156,20 +1177,13 @@ { // 濡傛灉娌℃湁閫変腑鐨凚OM锛岄偅灏辨槸鎵�鏈塀OM boms = model.bomTreeReader.CacheList.ToList(); } - // 绛涢�夋湁鍥剧焊鐨勶紝鏈彁浜ょ殑锛岄浂浠朵綋鍔犲伐浠惰繘琛屼笂浼� + // 绛涢�夋湁鍥剧焊鐨勶紝鍦ㄧ墿鏂欐槑缁嗕腑锛屾湭鎻愪氦鐨勶紝鍦ㄧ墿鏂欐槑缁嗚〃涓殑闆朵欢浣撳姞宸ヤ欢杩涜涓婁紶 boms = boms.Where(b => { if (!cache.Contains(b.partModel)) { cache.Add(b.partModel); - // 鏂囨。瀛樺湪鐨� - return b.lost != true - // && b.drawingType == (int)swDocumentTypes_e.swDocPART - // 鏄姞宸ヤ欢鐨� - && b.produceWay == "鍔犲伐浠�" - // 鏈鎻愪氦鐨� - && (b.drawStatus != "submitted" && b.drawStatus != "resubmitted") - && (b.drawStatus != "completed" || b.auditedMd5Changed); + return b.NeedAudit; } return false; }).ToList(); @@ -1179,12 +1193,11 @@ this.Warning("鍙湁鏈彁浜よ繃鎴栧彂鐢熷彉鏇寸殑鍔犲伐浠跺浘绾稿彲浠ヨ繘琛屽鏍�"); return; } - // 瀵规墍鏈夌殑BOM鍋氳鍒欐鏌� - bool allSuccess = DoCheckRule(out _); + if (!allSuccess) { // 濡傛灉鏈夋湭閫氳繃鐨勫浘绾革紝闇�瑕佹彁绀� - var err = boms.Where(b => !b.checkRuleOk).ToList(); + var err = boms.Where(b => !b.IsHistoryData && !b.checkRuleOk).ToList(); if (err != null && err.Count > 0) { List<string> msgs = new List<string>(); @@ -1192,6 +1205,7 @@ { if (ee.drawInfo.errMessages == null) { + msgs.Add($"鐗╂枡銆恵ee.partNo}銆戞湭閫氳繃瑙勫垯妫�鏌ワ紒"); continue; } foreach (string msg in ee.drawInfo.errMessages) @@ -1207,18 +1221,28 @@ }); return; } - - // 涓嶇浉鍏崇殑瑙勫垯妫�鏌ヤ笉閫氳繃灏辨棤鎵�璋撲簡 - /*int res = SwApp.SendMsgToUser2("鏈夋湭閫氳繃瑙勫垯妫�鏌ョ殑鍥剧焊锛屾槸鍚︾户缁紵", (int)swMessageBoxIcon_e.swMbWarning, - (int)swMessageBoxBtn_e.swMbOkCancel); - - if (res == (int)swMessageBoxResult_e.swMbHitCancel) - { - return; - }*/ } // 閮介�氳繃浜嗭紝鍐嶈繘琛屽鎵� + + // 鍏堢敵璇峰崟鍙� + DrawAuditOrder daOrder = new DrawAuditOrder + { + requestUserId = PdmUser.LoginUser.id, + requestUser = PdmUser.LoginUser.realname + }; + try + { + Result<DrawAuditOrder> res = Client.PostSyncAction<DrawAuditOrder>(daOrder, "drawAudit/order/create"); + daOrder = res.HandleResult(); + } + catch (Exception ex) + { + Logger.Error($"璇锋眰瀹℃壒鍗曞彿澶辫触", ex); + this.Error($"璇锋眰瀹℃壒鍗曞彿澶辫触! {ex.Message}"); + return; + } + ConcurrentQueue<string> errs = new ConcurrentQueue<string>(); CountdownEvent counter = new CountdownEvent(boms.Count); foreach (PdmBom bom in boms) @@ -1243,6 +1267,7 @@ MultipartFormDataContent httpContent = new MultipartFormDataContent(); httpContent.Add(new StringContent(bom.partNo), "materialCode"); httpContent.Add(new StringContent(bom.partNo), "materialModel"); + httpContent.Add(new StringContent(daOrder.id), "orderId"); fileInfo = new FileInfo(d3FilePath); FileInfo file2Info = new FileInfo(d2FilePath); httpContent.Add(new ByteArrayContent(FileUtil.toByteArray(d3FilePath)), "d3File", fileInfo.Name); @@ -1387,11 +1412,11 @@ if (bom.checkRuleResult == 3) { string title = string.Empty; - if (bom.historyData) + if (bom.IsHistoryData) { title = "鍘嗗彶鍥剧焊鏃犻渶妫�鏌�"; } - else if (bom.inBom) + else if (bom.ExcludeFromBOM) { title = "涓嶅湪鐗╂枡鏄庣粏琛ㄤ腑鐨勭墿鏂欐棤闇�妫�鏌�"; } @@ -1432,6 +1457,16 @@ if (bom.produceWay == "妯$粍" || bom.produceWay == "鏍囧噯浠�") { this.Info($"{bom.produceWay}鏃犻渶瀹℃牳"); + return; + } + if (bom.IsHistoryData && !bom.localDocChanged) + { + this.Info("鍘嗗彶鍥剧焊鏃犻渶瀹℃牳"); + return; + } + if (bom.IsHistoryData && bom.localDocChanged) + { + this.Info("鍘嗗彶鍥剧焊涓�鑷存�у彉鏇达紝闇�瀹℃牳"); return; } this.Warning("璇ュ浘绾告湭瀹℃牳"); @@ -1593,31 +1628,8 @@ RefreshBomList(SwApp.IActiveDoc2); DoCheckRule(out _); // 绛涢�夋墍鏈夊湪鐗╂枡鏄庣粏琛ㄤ腑锛屼笉璺宠繃妫�鏌ュ苟涓旀鏌ユ湭閫氳繃鐨勶紝绫诲瀷鏄姞宸ヤ欢鐨勬湭閫氳繃瀹℃牳鐨勶紝鍔犲伐浠跺鏍搁�氳繃鐨勪絾鍥剧焊鍙樻洿鐨� - List<string> errs = model.bomTreeReader.CacheList.Where(b => - !b.inBom - && ( - (!b.skipCheck && !b.checkRuleOk) - || (b.produceWay == "鍔犲伐浠�" && b.drawStatus != "completed") - || (b.produceWay == "鍔犲伐浠�" && b.drawStatus == "completed" && b.auditedMd5Changed) - ) - ).Select(b => - { - string msg = $"銆恵b.partModel}銆�"; - if (!b.skipCheck && !b.checkRuleOk) - { - msg += "鏈�氳繃瑙勫垯妫�鏌�;"; - } - if (b.produceWay == "鍔犲伐浠�" && b.drawStatus != "completed") - { - msg += "鏈�氳繃瀹℃牳;"; - } - if (b.produceWay == "鍔犲伐浠�" && b.drawStatus == "completed" && b.auditedMd5Changed) - { - msg += "鍥剧焊鍙樻洿鍚庢湭閲嶆柊瀹℃牳"; - } - return msg; - } - ).ToList(); + List<string> errs = model.bomTreeReader.CacheList.Select(b => b.NeedStopCheckIn()) + .Where(s => s != null).ToList(); if (errs != null && errs.Count > 0) { diff --git a/SetupScript/.vs/SetupScript.csproj.dtbcache.json b/SetupScript/.vs/SetupScript.csproj.dtbcache.json deleted file mode 100644 index 6505a7b..0000000 --- a/SetupScript/.vs/SetupScript.csproj.dtbcache.json +++ /dev/null @@ -1 +0,0 @@ -{"RootPath":"C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\SetupScript","ProjectFileName":"SetupScript.csproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[],"References":[{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\SetupScript\\bin\\Debug\\SetupScript.exe","OutputItemRelativePath":"SetupScript.exe"},{"OutputItemFullPath":"C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\SetupScript\\bin\\Debug\\SetupScript.pdb","OutputItemRelativePath":"SetupScript.pdb"}],"CopyToOutputEntries":[]} \ No newline at end of file diff --git a/SetupScript/SetupScript.csproj b/SetupScript/SetupScript.csproj deleted file mode 100644 index 2c051eb..0000000 --- a/SetupScript/SetupScript.csproj +++ /dev/null @@ -1,39 +0,0 @@ -锘�<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProjectGuid>{AAD001AD-F127-4D75-A4ED-39B3581D5BB8}</ProjectGuid> - <OutputType>Exe</OutputType> - <RootNamespace>SetupScript</RootNamespace> - <AssemblyName>SetupScript</AssemblyName> - <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> - <FileAlignment>512</FileAlignment> - <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> - <Deterministic>true</Deterministic> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <PlatformTarget>AnyCPU</PlatformTarget> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <PlatformTarget>AnyCPU</PlatformTarget> - <DebugType>pdbonly</DebugType> - <Optimize>true</Optimize> - <OutputPath>bin\Release\</OutputPath> - <DefineConstants>TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <ItemGroup> - <None Include="SetupScript.iss" /> - </ItemGroup> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> -</Project> \ No newline at end of file -- Gitblit v1.9.1