chr
2024-08-12 e9d7a5ef4c17e4804fb988dd193ff7d1fa36d52b
优化;
4个文件已添加
24个文件已修改
1020 ■■■■ 已修改文件
.gitignore 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/SwPlugin/v17/DocumentLayout.json 405 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSw/ProdSettings/PluginSetting.xml 补丁 | 查看 | 原始文档 | blame | 历史
PdmSw/Settings/PluginSetting.xml 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.Common/BomIniter/NameUtil.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.Common/BomIniter/YwtBomIniter.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.Common/Control/RichHisWindow.xaml 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.Common/Control/RichHisWindow.xaml.cs 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.Common/Entity/DrawAudit/DrawAudit.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.Common/Entity/DrawAudit/DrawAuditHis.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.Common/Entity/Pdm/PdmBom.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.Common/PdmSwPlugin.Common.csproj 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.Common/Setting/PluginSetting.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.Common/Util/CustomPropertyUtil.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.DrawApprove/DrawApprove.xaml 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.DrawApprove/DrawApprove.xaml.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.Main/Constant/PluginConst.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.PDM/DrawAuditHisWindow.xaml.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.PDM/Model/PdmControlModel.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.PDM/PdmControl.xaml.cs 101 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.PDM/PdmSwPlugin.PDM.csproj 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.PropertySetting/CommonSettingControl.xaml.cs 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.PropertySetting/Panel/JgjModulePanel.xaml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.PropertySetting/Panel/JgjModulePanel.xaml.cs 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.PropertySetting/Panel/JgjPartPanel.xaml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.PropertySetting/Panel/JgjPartPanel.xaml.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.PropertySetting/Panel/StandardModulePanel.xaml.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PdmSwPlugin.PropertySetting/Panel/StandardPartPanel.xaml.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
@@ -9,6 +9,7 @@
*.sln.docstates
*.sln
*.csproj.user
*.vsidx
# Build results
[Dd]ebug/
.vs/SwPlugin/v17/DocumentLayout.json
@@ -1,38 +1,94 @@
{
  "Version": 1,
  "WorkspaceRootPath": "C:\\Workspace\\SwPlugin\\",
  "WorkspaceRootPath": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|c:\\workspace\\swplugin\\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:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|C:\\Workspace\\SwPlugin\\pdmswplugin.pdm\\pdmcontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "AbsoluteMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\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:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|C:\\Workspace\\SwPlugin\\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|C:\\Workspace\\SwPlugin\\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:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|C:\\Workspace\\SwPlugin\\pdmswplugin.propertysetting\\commonsettingcontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "AbsoluteMoniker": "D:0:0:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|c:\\users\\administrator.skonda\\desktop\\swplugin\\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:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|C:\\Workspace\\SwPlugin\\pdmswplugin.pdm\\model\\pdmcontrolmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|solutionrelative:pdmswplugin.pdm\\model\\pdmcontrolmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\pdmswplugin.propertysetting\\commonsettingcontrol.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
      "RelativeMoniker": "D:0:0:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|solutionrelative:pdmswplugin.propertysetting\\commonsettingcontrol.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7ACEDAA9-2DE8-4485-837A-E7D58812A6DC}|PdmSw\\PdmSw.csproj|C:\\Workspace\\SwPlugin\\pdmsw\\settings\\pluginsetting.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}",
      "AbsoluteMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\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:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\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:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\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:{7ACEDAA9-2DE8-4485-837A-E7D58812A6DC}|PdmSw\\PdmSw.csproj|c:\\users\\administrator.skonda\\desktop\\swplugin\\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:{7ACEDAA9-2DE8-4485-837A-E7D58812A6DC}|PdmSw\\PdmSw.csproj|C:\\Workspace\\SwPlugin\\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:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\pdmswplugin.pdm\\model\\pdmcontrolmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|solutionrelative:pdmswplugin.pdm\\model\\pdmcontrolmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{4536570F-AD3C-4D24-870A-63C9E9CE0FED}|WpfUI\\WpfUI.csproj|C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\wpfui\\window1.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
      "RelativeMoniker": "D:0:0:{4536570F-AD3C-4D24-870A-63C9E9CE0FED}|WpfUI\\WpfUI.csproj|solutionrelative:wpfui\\window1.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\pdmswplugin.common\\bominiter\\nameutil.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|solutionrelative:pdmswplugin.common\\bominiter\\nameutil.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\pdmswplugin.propertysetting\\panel\\standardmodulepanel.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\\standardmodulepanel.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\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:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\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:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\pdmswplugin.common\\setting\\pluginsetting.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|solutionrelative:pdmswplugin.common\\setting\\pluginsetting.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\pdmswplugin.propertysetting\\panel\\jgjmodulepanel.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\\jgjmodulepanel.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\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:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\pdmswplugin.propertysetting\\panel\\standardpartpanel.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\\standardpartpanel.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\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:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\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:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\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:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\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}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\pdmswplugin.propertysetting\\panel\\jgjmodulepanel.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
      "RelativeMoniker": "D:0:0:{713278FD-1A24-41A4-86B7-1072E7DB9E39}|PdmSwPlugin.PropertySetting\\PdmSwPlugin.PropertySetting.csproj|solutionrelative:pdmswplugin.propertysetting\\panel\\jgjmodulepanel.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
    }
  ],
  "DocumentGroupContainers": [
@@ -42,15 +98,15 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 0,
          "SelectedChildIndex": 17,
          "Children": [
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "DocumentIndex": 3,
              "Title": "PluginConst.cs",
              "DocumentMoniker": "C:\\Workspace\\SwPlugin\\PdmSwPlugin.Main\\Constant\\PluginConst.cs",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.Main\\Constant\\PluginConst.cs",
              "RelativeDocumentMoniker": "PdmSwPlugin.Main\\Constant\\PluginConst.cs",
              "ToolTip": "C:\\Workspace\\SwPlugin\\PdmSwPlugin.Main\\Constant\\PluginConst.cs",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.Main\\Constant\\PluginConst.cs",
              "RelativeToolTip": "PdmSwPlugin.Main\\Constant\\PluginConst.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAgAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
@@ -60,86 +116,255 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "Title": "PluginSetting.xml",
              "DocumentMoniker": "C:\\Workspace\\SwPlugin\\PdmSw\\ProdSettings\\PluginSetting.xml",
              "RelativeDocumentMoniker": "PdmSw\\ProdSettings\\PluginSetting.xml",
              "ToolTip": "C:\\Workspace\\SwPlugin\\PdmSw\\ProdSettings\\PluginSetting.xml",
              "RelativeToolTip": "PdmSw\\ProdSettings\\PluginSetting.xml",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAoAAAAtAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003576|",
              "WhenOpened": "2024-07-30T02:19:30.245Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "Title": "PluginSetting.xml",
              "DocumentMoniker": "C:\\Workspace\\SwPlugin\\PdmSw\\Settings\\PluginSetting.xml",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSw\\Settings\\PluginSetting.xml",
              "RelativeDocumentMoniker": "PdmSw\\Settings\\PluginSetting.xml",
              "ToolTip": "C:\\Workspace\\SwPlugin\\PdmSw\\Settings\\PluginSetting.xml",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSw\\Settings\\PluginSetting.xml",
              "RelativeToolTip": "PdmSw\\Settings\\PluginSetting.xml",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAA8AAAAzAAAA",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAABIAAAATAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003576|",
              "WhenOpened": "2024-07-30T01:58:57.588Z"
              "WhenOpened": "2024-08-08T02:56:14.095Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "PdmControlModel.cs",
              "DocumentMoniker": "C:\\Workspace\\SwPlugin\\PdmSwPlugin.PDM\\Model\\PdmControlModel.cs",
              "RelativeDocumentMoniker": "PdmSwPlugin.PDM\\Model\\PdmControlModel.cs",
              "ToolTip": "C:\\Workspace\\SwPlugin\\PdmSwPlugin.PDM\\Model\\PdmControlModel.cs",
              "RelativeToolTip": "PdmSwPlugin.PDM\\Model\\PdmControlModel.cs",
              "ViewState": "AQIAAHoAAAAAAAAAAAAswKwAAAA7AAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-07-26T05:07:34.654Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "CommonSettingControl.xaml.cs",
              "DocumentMoniker": "C:\\Workspace\\SwPlugin\\PdmSwPlugin.PropertySetting\\CommonSettingControl.xaml.cs",
              "RelativeDocumentMoniker": "PdmSwPlugin.PropertySetting\\CommonSettingControl.xaml.cs",
              "ToolTip": "C:\\Workspace\\SwPlugin\\PdmSwPlugin.PropertySetting\\CommonSettingControl.xaml.cs",
              "RelativeToolTip": "PdmSwPlugin.PropertySetting\\CommonSettingControl.xaml.cs",
              "ViewState": "AQIAAA0BAAAAAAAAAAAAACwBAABAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-07-26T01:50:11.243Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "Title": "PdmBom.cs",
              "DocumentMoniker": "C:\\Workspace\\SwPlugin\\PdmSwPlugin.Common\\Entity\\Pdm\\PdmBom.cs",
              "RelativeDocumentMoniker": "PdmSwPlugin.Common\\Entity\\Pdm\\PdmBom.cs",
              "ToolTip": "C:\\Workspace\\SwPlugin\\PdmSwPlugin.Common\\Entity\\Pdm\\PdmBom.cs",
              "RelativeToolTip": "PdmSwPlugin.Common\\Entity\\Pdm\\PdmBom.cs",
              "ViewState": "AQIAAJQBAAAAAAAAAAAAALMBAAAcAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-07-26T01:44:56.426Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "Title": "PdmControl.xaml",
              "DocumentMoniker": "C:\\Workspace\\SwPlugin\\PdmSwPlugin.PDM\\PdmControl.xaml",
              "RelativeDocumentMoniker": "PdmSwPlugin.PDM\\PdmControl.xaml",
              "ToolTip": "C:\\Workspace\\SwPlugin\\PdmSwPlugin.PDM\\PdmControl.xaml",
              "RelativeToolTip": "PdmSwPlugin.PDM\\PdmControl.xaml",
              "DocumentIndex": 8,
              "Title": "Window1.xaml",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\WpfUI\\Window1.xaml",
              "RelativeDocumentMoniker": "WpfUI\\Window1.xaml",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\WpfUI\\Window1.xaml",
              "RelativeToolTip": "WpfUI\\Window1.xaml",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
              "WhenOpened": "2024-07-26T01:42:16.638Z"
              "WhenOpened": "2024-08-03T09:11:09.428Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 18,
              "Title": "RichHisWindow.xaml",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.Common\\Control\\RichHisWindow.xaml",
              "RelativeDocumentMoniker": "PdmSwPlugin.Common\\Control\\RichHisWindow.xaml",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.Common\\Control\\RichHisWindow.xaml",
              "RelativeToolTip": "PdmSwPlugin.Common\\Control\\RichHisWindow.xaml",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
              "WhenOpened": "2024-08-02T05:40:12.363Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "Title": "DrawAudit.cs",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.Common\\Entity\\DrawAudit\\DrawAudit.cs",
              "RelativeDocumentMoniker": "PdmSwPlugin.Common\\Entity\\DrawAudit\\DrawAudit.cs",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.Common\\Entity\\DrawAudit\\DrawAudit.cs",
              "RelativeToolTip": "PdmSwPlugin.Common\\Entity\\DrawAudit\\DrawAudit.cs",
              "ViewState": "AQIAAEIAAAAAAAAAAAAAAE0AAAAgAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-02T03:56:49.224Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 17,
              "Title": "DrawApprove.xaml.cs",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs",
              "RelativeDocumentMoniker": "PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs",
              "RelativeToolTip": "PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs",
              "ViewState": "AQIAAD8BAAAAAAAAAAAkwEYBAAAVAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-02T03:49:39.252Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "Title": "DrawApprove.xaml",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.DrawApprove\\DrawApprove.xaml",
              "RelativeDocumentMoniker": "PdmSwPlugin.DrawApprove\\DrawApprove.xaml",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.DrawApprove\\DrawApprove.xaml",
              "RelativeToolTip": "PdmSwPlugin.DrawApprove\\DrawApprove.xaml",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
              "WhenOpened": "2024-08-02T03:10:08.134Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 16,
              "Title": "StandardPartPanel.xaml.cs",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PropertySetting\\Panel\\StandardPartPanel.xaml.cs",
              "RelativeDocumentMoniker": "PdmSwPlugin.PropertySetting\\Panel\\StandardPartPanel.xaml.cs",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PropertySetting\\Panel\\StandardPartPanel.xaml.cs",
              "RelativeToolTip": "PdmSwPlugin.PropertySetting\\Panel\\StandardPartPanel.xaml.cs",
              "ViewState": "AQIAAF0AAAAAAAAAAAAuwGAAAAAPAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-01T10:29:15.957Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "PdmControl.xaml.cs",
              "DocumentMoniker": "C:\\Workspace\\SwPlugin\\PdmSwPlugin.PDM\\PdmControl.xaml.cs",
              "RelativeDocumentMoniker": "PdmSwPlugin.PDM\\PdmControl.xaml.cs",
              "ToolTip": "C:\\Workspace\\SwPlugin\\PdmSwPlugin.PDM\\PdmControl.xaml.cs",
              "RelativeToolTip": "PdmSwPlugin.PDM\\PdmControl.xaml.cs",
              "ViewState": "AQIAAKYFAAAAAAAAAAAswPMFAAAJAAAA",
              "Title": "CommonSettingControl.xaml.cs",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PropertySetting\\CommonSettingControl.xaml.cs",
              "RelativeDocumentMoniker": "PdmSwPlugin.PropertySetting\\CommonSettingControl.xaml.cs",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PropertySetting\\CommonSettingControl.xaml.cs",
              "RelativeToolTip": "PdmSwPlugin.PropertySetting\\CommonSettingControl.xaml.cs",
              "ViewState": "AQIAAPgCAAAAAAAAAAAzwAsDAAAjAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-07-25T11:19:46.517Z"
              "WhenOpened": "2024-07-26T01:50:11.243Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "Title": "NameUtil.cs",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.Common\\BomIniter\\NameUtil.cs",
              "RelativeDocumentMoniker": "PdmSwPlugin.Common\\BomIniter\\NameUtil.cs",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.Common\\BomIniter\\NameUtil.cs",
              "RelativeToolTip": "PdmSwPlugin.Common\\BomIniter\\NameUtil.cs",
              "ViewState": "AQIAAA4AAAAAAAAAAAAUwBEAAAA6AAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-07T07:12:45.076Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "Title": "StandardModulePanel.xaml.cs",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PropertySetting\\Panel\\StandardModulePanel.xaml.cs",
              "RelativeDocumentMoniker": "PdmSwPlugin.PropertySetting\\Panel\\StandardModulePanel.xaml.cs",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PropertySetting\\Panel\\StandardModulePanel.xaml.cs",
              "RelativeToolTip": "PdmSwPlugin.PropertySetting\\Panel\\StandardModulePanel.xaml.cs",
              "ViewState": "AQIAAFsAAAAAAAAAAAAuwGEAAAAtAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-01T10:28:52.86Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 15,
              "Title": "JgjPartPanel.xaml.cs",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml.cs",
              "RelativeDocumentMoniker": "PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml.cs",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml.cs",
              "RelativeToolTip": "PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml.cs",
              "ViewState": "AQIAALcAAAAAAAAAAAAgwNQAAAAJAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-01T07:13:56.43Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 14,
              "Title": "JgjModulePanel.xaml.cs",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PropertySetting\\Panel\\JgjModulePanel.xaml.cs",
              "RelativeDocumentMoniker": "PdmSwPlugin.PropertySetting\\Panel\\JgjModulePanel.xaml.cs",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PropertySetting\\Panel\\JgjModulePanel.xaml.cs",
              "RelativeToolTip": "PdmSwPlugin.PropertySetting\\Panel\\JgjModulePanel.xaml.cs",
              "ViewState": "AQIAAMgAAAAAAAAAAAAgwOUAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-01T07:11:48.035Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 20,
              "Title": "JgjPartPanel.xaml",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml",
              "RelativeDocumentMoniker": "PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml",
              "RelativeToolTip": "PdmSwPlugin.PropertySetting\\Panel\\JgjPartPanel.xaml",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
              "WhenOpened": "2024-08-01T07:14:43.782Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "Title": "CommonSettingControl.xaml",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PropertySetting\\CommonSettingControl.xaml",
              "RelativeDocumentMoniker": "PdmSwPlugin.PropertySetting\\CommonSettingControl.xaml",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PropertySetting\\CommonSettingControl.xaml",
              "RelativeToolTip": "PdmSwPlugin.PropertySetting\\CommonSettingControl.xaml",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
              "WhenOpened": "2024-08-01T08:19:51.868Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "YwtBomIniter.cs",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.Common\\BomIniter\\YwtBomIniter.cs",
              "RelativeDocumentMoniker": "PdmSwPlugin.Common\\BomIniter\\YwtBomIniter.cs",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.Common\\BomIniter\\YwtBomIniter.cs",
              "RelativeToolTip": "PdmSwPlugin.Common\\BomIniter\\YwtBomIniter.cs",
              "ViewState": "AQIAABUAAAAAAAAAAAAAAB8AAAAQAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-01T07:42:24.91Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "Title": "PluginSetting.cs",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.Common\\Setting\\PluginSetting.cs",
              "RelativeDocumentMoniker": "PdmSwPlugin.Common\\Setting\\PluginSetting.cs",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.Common\\Setting\\PluginSetting.cs",
              "RelativeToolTip": "PdmSwPlugin.Common\\Setting\\PluginSetting.cs",
              "ViewState": "AQIAAE8AAAAAAAAAAAAQwGQAAAANAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-01T07:50:41.931Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "Title": "PdmControl.xaml.cs",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PDM\\PdmControl.xaml.cs",
              "RelativeDocumentMoniker": "PdmSwPlugin.PDM\\PdmControl.xaml.cs",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PDM\\PdmControl.xaml.cs",
              "RelativeToolTip": "PdmSwPlugin.PDM\\PdmControl.xaml.cs",
              "ViewState": "AQIAADUGAAAAAAAAAAAkwJwEAAAVAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-07-25T11:19:46.517Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "PdmBom.cs",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.Common\\Entity\\Pdm\\PdmBom.cs",
              "RelativeDocumentMoniker": "PdmSwPlugin.Common\\Entity\\Pdm\\PdmBom.cs",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.Common\\Entity\\Pdm\\PdmBom.cs",
              "RelativeToolTip": "PdmSwPlugin.Common\\Entity\\Pdm\\PdmBom.cs",
              "ViewState": "AQIAAMUBAAAAAAAAAAAswNQBAAAlAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-07-26T01:44:56.426Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "Title": "PdmControlModel.cs",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PDM\\Model\\PdmControlModel.cs",
              "RelativeDocumentMoniker": "PdmSwPlugin.PDM\\Model\\PdmControlModel.cs",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PDM\\Model\\PdmControlModel.cs",
              "RelativeToolTip": "PdmSwPlugin.PDM\\Model\\PdmControlModel.cs",
              "ViewState": "AQIAAGsAAAAAAAAAAAAzwEsAAAAnAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-07-26T05:07:34.654Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 21,
              "Title": "JgjModulePanel.xaml",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PropertySetting\\Panel\\JgjModulePanel.xaml",
              "RelativeDocumentMoniker": "PdmSwPlugin.PropertySetting\\Panel\\JgjModulePanel.xaml",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PropertySetting\\Panel\\JgjModulePanel.xaml",
              "RelativeToolTip": "PdmSwPlugin.PropertySetting\\Panel\\JgjModulePanel.xaml",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
              "WhenOpened": "2024-08-01T07:14:26.069Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 19,
              "Title": "PdmControl.xaml",
              "DocumentMoniker": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PDM\\PdmControl.xaml",
              "RelativeDocumentMoniker": "PdmSwPlugin.PDM\\PdmControl.xaml",
              "ToolTip": "C:\\Users\\administrator.SKONDA\\Desktop\\SwPlugin\\PdmSwPlugin.PDM\\PdmControl.xaml",
              "RelativeToolTip": "PdmSwPlugin.PDM\\PdmControl.xaml",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
              "WhenOpened": "2024-07-26T01:42:16.638Z"
            }
          ]
        }
PdmSw/ProdSettings/PluginSetting.xml
Binary files differ
PdmSw/Settings/PluginSetting.xml
Binary files differ
PdmSwPlugin.Common/BomIniter/NameUtil.cs
New file
@@ -0,0 +1,34 @@
using PdmSwPlugin.Common.Setting;
using System;
namespace PdmSwPlugin.Common
{
    public class NameUtil
    {
        public static readonly PluginSetting setting = PluginSetting.Instance;
        /// <summary>
        /// 判断文档是否是历史文档
        /// </summary>
        /// <param name="name">文档名</param>
        /// <returns>true 是 false 不是</returns>
        public static bool IsHistoryDoc(string name)
        {
            if (string.IsNullOrEmpty(name)) return false;
            if (setting.HistoryDateFlag < 0) return false;
            try
            {
                long historyFlag = long.Parse(name.Substring(0, 8));
                if (historyFlag <= setting.HistoryDateFlag)
                {
                    return true;
                }
            }
            catch (Exception e)
            {
                return false;
            }
            return false;
        }
    }
}
PdmSwPlugin.Common/BomIniter/YwtBomIniter.cs
@@ -9,6 +9,7 @@
{
    public class YwtBomIniter : BomIniter
    {
        public static PluginSetting setting = PluginSetting.Instance;
        public string jgjNameRegx { get; private set; } = CustomerSetting.Instance["jgjNameRegx"];
        public string standardNameRegx { get; private set; } = CustomerSetting.Instance["standardNameRegx"];
@@ -28,6 +29,8 @@
            if (Regex.IsMatch(childName, jgjNameRegx))
            {
                bom.historyData = NameUtil.IsHistoryDoc(childName);
                string docType = bom.properties.Get("文件格式");
                if (string.IsNullOrEmpty(docType))
                {
PdmSwPlugin.Common/Control/RichHisWindow.xaml
New file
@@ -0,0 +1,70 @@
<Window x:Class="PdmSwPlugin.Commmon.Control.RichHisWindow"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:ctl="clr-namespace:PdmSwPlugin.UI;assembly=PdmSwPlugin.UI"
             mc:Ignorable="d"
        WindowStartupLocation="CenterScreen"
        Title="{Binding title}"
        Loaded="Window_Loaded"
             Height="600" Width="1200">
    <DataGrid x:Name="table" ItemsSource="{Binding HisList}"
          AutoGenerateColumns="False"
            EnableRowVirtualization="False"
            CanUserAddRows="False"
            ColumnWidth="*"
            CanUserSortColumns="False"
            CanUserDeleteRows="False">
        <DataGrid.Columns>
            <DataGridTextColumn Header="节点名称" Width="80" IsReadOnly="True" Binding="{Binding name,Mode=OneWay}"/>
            <DataGridTemplateColumn Header="审核结果" Width="60" IsReadOnly="True">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock>
                            <TextBlock.Style>
                                <Style TargetType="TextBlock">
                                    <Setter Property="Text" Value=""/>
                                    <Setter Property="Foreground" Value="Black"/>
                                    <Setter Property="Background" Value="White"/>
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding pass}" Value="True">
                                            <Setter Property="Text" Value="已通过"/>
                                            <Setter Property="Background" Value="Green"/>
                                        </DataTrigger>
                                        <DataTrigger Binding="{Binding pass}" Value="False">
                                            <Setter Property="Text" Value="未通过"/>
                                            <Setter Property="Background" Value="Red"/>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </TextBlock.Style>
                        </TextBlock>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <!--<DataGridTextColumn Header="备注" IsReadOnly="True" Width="*" Binding="{Binding comment,Mode=OneWay}"/>-->
            <DataGridTemplateColumn Header="备注" IsReadOnly="True" MinWidth="690">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <ctl:CustomRichBox ctl:DProperty.DisableEdit="True" ctl:DProperty.Blob="{Binding blobArr}"></ctl:CustomRichBox>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTextColumn Header="操作人" IsReadOnly="True" Width="60" Binding="{Binding auditUser,Mode=OneWay}"/>
            <DataGridTextColumn Header="操作时间" IsReadOnly="True" Width="150" Binding="{Binding auditTime,Mode=OneWay}"/>
        </DataGrid.Columns>
    </DataGrid>
    <!--<ListView ItemsSource="{Binding HisList}">
        <ListView.ItemTemplate>
            <DataTemplate>
                <ctl:UserControl1 ctl:Utils.DisableEdit="True" ctl:Utils.Blob="{Binding blobArr}"></ctl:UserControl1>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>-->
</Window>
PdmSwPlugin.Common/Control/RichHisWindow.xaml.cs
New file
@@ -0,0 +1,76 @@
using PdmSwPlugin.Common.Entity.DrawAudit;
using PdmSwPlugin.UI;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Windows;
using System.Windows.Threading;
namespace PdmSwPlugin.Commmon.Control
{
    /// <summary>
    /// MultiExWindow.xaml 的交互逻辑
    /// </summary>
    public partial class RichHisWindow : Window, INotifyPropertyChanged
    {
        #region ...
        public virtual event PropertyChangedEventHandler PropertyChanged;
        public virtual void RaisePropertyChanged(string name)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
        }
        public void RaiseAndSetIfChanged<T>(ref T old, T @new, [CallerMemberName] string propertyName = null)
        {
            old = @new;
            if (propertyName != null)
            {
                RaisePropertyChanged(propertyName);
            }
        }
        #endregion
        public readonly static CustomRichBox box = new CustomRichBox();
        private string _title;
        public string title
        {
            get => _title;
            set => RaiseAndSetIfChanged(ref _title, value);
        }
        private ObservableCollection<DrawAuditHis> _hisList;
        public ObservableCollection<DrawAuditHis> HisList
        {
            get => _hisList;
            set => RaiseAndSetIfChanged(ref _hisList, value);
        }
        public RichHisWindow(DependencyObject parent, string title, List<DrawAuditHis> hisList)
        {
            InitializeComponent();
            this.title = title;
            DataContext = this;
            if (hisList == null)
            {
                this.HisList = new ObservableCollection<DrawAuditHis>();
            }
            else
            {
                this.HisList = new ObservableCollection<DrawAuditHis>(hisList);
            }
        }
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            Dispatcher.Invoke(() =>
            {
                // table.ItemsSource = new ObservableCollection<DrawAuditHis>(HisList);
            });
        }
    }
}
PdmSwPlugin.Common/Entity/DrawAudit/DrawAudit.cs
@@ -73,6 +73,14 @@
            set => RaiseAndSetIfChanged(ref _comment, value);
        }
        private string _updateTime;
        public string updateTime
        {
            get { return _updateTime; }
            set => RaiseAndSetIfChanged(ref _updateTime, value);
        }
        public byte[] commentBlob { get; set; }
        private ObservableCollection<DrawAudit> _children;
PdmSwPlugin.Common/Entity/DrawAudit/DrawAuditHis.cs
New file
@@ -0,0 +1,22 @@
using System.Collections.Generic;
namespace PdmSwPlugin.Common.Entity.DrawAudit
{
    public class DrawAuditHis : NotifyBase
    {
        public string id { get; set; }
        public string auditId { get; set; }
        public string name { get; set; }
        public bool? pass { get; set; }
        public string comment { get; set; }
        public byte[] commentBlob { get; set; }
        public List<byte> blobArr => commentBlob == null ? null : new List<byte>(commentBlob);
        public string auditUserId { get; set; }
        public string auditUser { get; set; }
        public string auditTime { get; set; }
    }
}
PdmSwPlugin.Common/Entity/Pdm/PdmBom.cs
@@ -434,7 +434,8 @@
        }
        // 模组 不在物料明细表 巡检跳过检查
        public bool skipCheck => produceWay == "模组" || inBom || component?.IsVirtual == true;
        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;
PdmSwPlugin.Common/PdmSwPlugin.Common.csproj
@@ -60,17 +60,22 @@
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Attribute\PdmSwPlugin.cs" />
    <Compile Include="BomIniter\NameUtil.cs" />
    <Compile Include="BomIniter\YwtBomIniter.cs" />
    <Compile Include="ClassLoader.cs" />
    <Compile Include="Constants\PriceCheckName.cs" />
    <Compile Include="Constants\PropertyName.cs" />
    <Compile Include="Constants\Settings.cs" />
    <Compile Include="Control\RichHisWindow.xaml.cs">
      <DependentUpon>RichHisWindow.xaml</DependentUpon>
    </Compile>
    <Compile Include="Control\TreeGrid\Controls\TreeDataGrid.cs" />
    <Compile Include="Control\TreeGrid\Controls\TreeGrid.cs" />
    <Compile Include="Control\TreeGrid\Controls\TreeItemContentControl.cs" />
    <Compile Include="Control\TreeGrid\Controls\TreeItemData.cs" />
    <Compile Include="Entity\BusinessType.cs" />
    <Compile Include="Entity\DrawAudit\DrawAudit.cs" />
    <Compile Include="Entity\DrawAudit\DrawAuditHis.cs" />
    <Compile Include="Entity\NoteAndPos.cs" />
    <Compile Include="Entity\NotifyBase.cs" />
    <Compile Include="Entity\Page.cs" />
@@ -163,6 +168,10 @@
    <Reference Include="WindowsBase" />
  </ItemGroup>
  <ItemGroup>
    <Page Include="Control\RichHisWindow.xaml">
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
    </Page>
    <Page Include="Control\TreeGrid\Themes\TreeGrid.xaml">
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
@@ -191,6 +200,11 @@
  <ItemGroup>
    <Content Include="Image\loading.gif" />
  </ItemGroup>
  <ItemGroup />
  <ItemGroup>
    <ProjectReference Include="Z:\VisualStudio\CustomRichBox\CustomRictBox\PdmSwPlugin.UI.csproj">
      <Project>{44bce7b9-f984-426b-9997-fc1fb1a49cc0}</Project>
      <Name>PdmSwPlugin.UI</Name>
    </ProjectReference>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
PdmSwPlugin.Common/Setting/PluginSetting.cs
@@ -1,6 +1,7 @@
using PdmSwPlugin.Common.Util;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
@@ -35,12 +36,16 @@
        public string CheckInListenName { get; private set; } = "";
        public int ScanInterval { get; private set; } = 500;
        public string HistoryDate { get; private set; } = "";
        [XmlIgnore]
        public List<string> prefixes { get; private set; } = new List<string>();
        [XmlIgnore]
        public List<string> xcSuffixes { get; private set; } = new List<string>();
        [XmlIgnore]
        public List<string> mnSuffixes { get; private set; } = new List<string>();
        [XmlIgnore]
        public long HistoryDateFlag { get; private set; }
        [XmlIgnore]
        public string this[string field]
@@ -82,6 +87,22 @@
                string value = prop.GetValue(this).ToString();
                DataMap.Add(prop.Name, value);
            }
            if (!string.IsNullOrEmpty(HistoryDate))
            {
                try
                {
                    HistoryDateFlag = long.Parse(HistoryDate);
                }
                catch (Exception e)
                {
                    HistoryDateFlag = -1;
                }
            }
            else
            {
                HistoryDateFlag = -1;
            }
        }
        static PluginSetting()
PdmSwPlugin.Common/Util/CustomPropertyUtil.cs
@@ -159,6 +159,21 @@
            return true;
        }
        public static string GetMass(ModelDoc2 doc)
        {
            var cpm = doc?.Extension;
            if (cpm == null)
            {
                return null;
            }
            double[] values = cpm.GetMassProperties2(0, out _, false);
            if (values == null)
            {
                return null;
            }
            return values[5].ToString();
        }
        public static bool SetCustomProperties(ModelDoc2 doc, string key, string value)
        {
            CustomPropertyManager cpm = doc.Extension.CustomPropertyManager[""];
PdmSwPlugin.DrawApprove/DrawApprove.xaml
@@ -17,59 +17,6 @@
                <Setter Property="TextBlock.TextTrimming" Value="CharacterEllipsis"/>
            </Style>
            <Style x:Key ="jgjSlot" TargetType="TextBlock">
                <Setter Property="Text" Value="-"/>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding jgj}" Value="True">
                        <Setter Property="Text" Value="是"/>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding jgj}" Value="False">
                        <Setter Property="Text" Value="否"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
            <Style x:Key ="inDbSlot" TargetType="TextBlock">
                <Setter Property="Foreground" Value="White"/>
                <Style.Triggers>
                    <MultiDataTrigger>
                        <MultiDataTrigger.Conditions>
                            <Condition Binding="{Binding needOrdered}" Value="True"/>
                            <Condition Binding="{Binding inDb}" Value="True"/>
                        </MultiDataTrigger.Conditions>
                        <Setter Property="Text" Value="已建料"/>
                        <Setter Property="Background" Value="Green"/>
                    </MultiDataTrigger>
                    <MultiDataTrigger>
                        <MultiDataTrigger.Conditions>
                            <Condition Binding="{Binding needOrdered}" Value="True"/>
                            <Condition Binding="{Binding inDb}" Value="False"/>
                        </MultiDataTrigger.Conditions>
                        <Setter Property="Text" Value="未建料"/>
                        <Setter Property="Background" Value="red"/>
                    </MultiDataTrigger>
                    <MultiDataTrigger>
                        <MultiDataTrigger.Conditions>
                            <Condition Binding="{Binding produceWay}" Value="自制"/>
                            <Condition Binding="{Binding xcChild}" Value="False"/>
                            <Condition Binding="{Binding inDb}" Value="True"/>
                        </MultiDataTrigger.Conditions>
                        <Setter Property="Text" Value="已建料"/>
                        <Setter Property="Background" Value="Green"/>
                    </MultiDataTrigger>
                    <MultiDataTrigger>
                        <MultiDataTrigger.Conditions>
                            <Condition Binding="{Binding produceWay}" Value="自制"/>
                            <Condition Binding="{Binding xcChild}" Value="False"/>
                            <Condition Binding="{Binding inDb}" Value="False"/>
                        </MultiDataTrigger.Conditions>
                        <Setter Property="Text" Value="未建料"/>
                        <Setter Property="Background" Value="Orange"/>
                    </MultiDataTrigger>
                </Style.Triggers>
            </Style>
            <Style x:Key ="statusSlot" TargetType="TextBlock">
                <Setter Property="Foreground" Value="White"/>
                <Style.Triggers>
@@ -152,13 +99,15 @@
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>
                        <DataGridTextColumn Header="申请人" Width="80" IsReadOnly="True"  Binding="{Binding Data.requestUser}"/>
                        <DataGridTextColumn Header="前一审核人" Width="80" IsReadOnly="True"  Binding="{Binding Data.auditUser}"/>
                        <DataGridTextColumn Header="申请人" Width="80" IsReadOnly="True" Binding="{Binding Data.requestUser}"/>
                        <DataGridTextColumn Header="前一审核人" Width="80" IsReadOnly="True" Binding="{Binding Data.auditUser}"/>
                        <DataGridTextColumn Header="提交时间" Width="130" IsReadOnly="True" Binding="{Binding Data.updateTime}"/>
                        <DataGridTemplateColumn Header="状态" Width="60" IsReadOnly="True">
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <TextBlock Style="{StaticResource statusSlot}" DataContext="{Binding Data}"/>
                                    <TextBlock Style="{StaticResource statusSlot}" DataContext="{Binding Data}"
                                               MouseLeftButtonDown="TextBlock_MouseLeftButtonDown"/>
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>
PdmSwPlugin.DrawApprove/DrawApprove.xaml.cs
@@ -1,7 +1,9 @@
using log4net;
using PdmSwPlugin.Commmon.Control;
using PdmSwPlugin.Commmon.Util.UI;
using PdmSwPlugin.Common;
using PdmSwPlugin.Common.Entity.DrawAudit;
using PdmSwPlugin.Common.Entity.Pdm;
using PdmSwPlugin.Common.Interface;
using PdmSwPlugin.Common.Setting;
using PdmSwPlugin.Common.Util;
@@ -345,5 +347,43 @@
                dataSource = new ObservableCollection<DrawAudit>(RefreshList());
            });
        }
        private void TextBlock_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            // 检查是否是双击
            if (e.ClickCount == 2)
            {
                TextBlock textBlock = sender as TextBlock;
                DrawAudit data = textBlock.DataContext as DrawAudit;
                MaskAdorner.ShowMask(content, "请求中,请稍后...");
                Task.Run(() =>
                {
                    try
                    {
                        Result<List<DrawAuditHis>> res = Client.GetSyncAction<List<DrawAuditHis>>("drawAudit/listTaskHis", new DrawAudit
                        {
                            id = data.id
                        });
                        var datas = res.HandleResult();
                        Dispatcher.Invoke(() =>
                        {
                            //DrawAuditHisWindow window = new DrawAuditHisWindow(this, $"【{bom.partModel}】审核详情", datas);
                            RichHisWindow window = new RichHisWindow(this, $"【{data.materialCode}】审核详情", datas);
                            window.ShowDialog();
                        });
                    }
                    catch (Exception ex)
                    {
                        Logger.Error("Get draw audit history failed.", ex);
                        this.Error($"获取审核历史失败!{ex.Message}");
                    }
                    finally
                    {
                        MaskAdorner.HideMask(content);
                    }
                });
            }
        }
    }
}
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.32";
        public static readonly string Version = "0.0.0.34";
    }
}
PdmSwPlugin.PDM/DrawAuditHisWindow.xaml.cs
@@ -1,5 +1,4 @@
using PdmSwPlugin.PDM.Model;
using System;
using PdmSwPlugin.Common.Entity.DrawAudit;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
PdmSwPlugin.PDM/Model/PdmControlModel.cs
@@ -8,7 +8,6 @@
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Security.Cryptography;
namespace PdmSwPlugin.PDM.Model
{
PdmSwPlugin.PDM/PdmControl.xaml.cs
@@ -30,13 +30,10 @@
using PdmSwPlugin.Common.Setting;
using PdmSwPlugin.PDM.Model;
using System.Diagnostics;
using SolidWorks.Interop.gtswutilities;
using PdmSwPlugin.PDM.Constant;
using static PdmSwPlugin.PDM.Event.PdmEvent;
using NPOI.SS.Formula.PTG;
using PdmSwPlugin.Common.Entity.System;
using System.Windows.Input;
using System.Windows.Interop;
using PdmSwPlugin.Commmon.Control;
namespace PdmSwPlugin.PDM
{
@@ -1165,17 +1162,21 @@
                        if (!cache.Contains(b.partModel))
                        {
                            cache.Add(b.partModel);
                            // 文档存在的
                            return b.lost != true
                            // && b.drawingType == (int)swDocumentTypes_e.swDocPART
                            // 是加工件的
                            && b.produceWay == "加工件"
                            && (b.drawStatus != "submitted" && b.drawStatus != "resubmitted");
                            // 未被提交的
                            && (b.drawStatus != "submitted" && b.drawStatus != "resubmitted")
                            && (b.drawStatus != "completed" || b.auditedMd5Changed);
                        }
                        return false;
                    }).ToList();
                    if (boms == null || boms.Count <= 0)
                    {
                        this.Warning("只有未提交的加工件图纸可以进行审核");
                        this.Warning("只有未提交过或发生变更的加工件图纸可以进行审核");
                        return;
                    }
                    // 对所有的BOM做规则检查
@@ -1386,7 +1387,11 @@
                if (bom.checkRuleResult == 3)
                {
                    string title = string.Empty;
                    if (bom.inBom)
                    if (bom.historyData)
                    {
                        title = "历史图纸无需检查";
                    }
                    else if (bom.inBom)
                    {
                        title = "不在物料明细表中的物料无需检查";
                    }
@@ -1574,79 +1579,6 @@
            }
        }
        private void PtrHandler(IntPtr ptr, Action callback, Action<List<string>, Exception> reject)
        {
            if (workStatus == PdmStatus.FREE)
            {
                WindowIntPtrUtil.ShowWindow(ptr, 6);
                // 执行规则检查并获取结果
                MaskAdorner.ShowMask(content, "检查中,请稍后...");
                Task.Run(() =>
                {
                    try
                    {
                        RefreshBomList(SwApp.IActiveDoc2);
                        DoCheckRule(out _);
                        List<string> errs = model.bomTreeReader.CacheList.Where(b =>
                            !b.inBom
                            && (!b.checkRuleOk || (b.produceWay == "加工件" && b.drawStatus != "completed"))
                        ).Select(b =>
                        {
                            string msg = $"【{b.partModel}】";
                            if (!b.checkRuleOk)
                            {
                                msg += "未通过规则检查;";
                            }
                            if (b.produceWay == "加工件" && b.drawStatus != "completed")
                            {
                                msg += "未通过审核;";
                            }
                            return msg;
                        }
                        ).ToList();
                        if (errs != null && errs.Count > 0)
                        {
                            reject(errs, null);
                            Dispatcher.Invoke(() =>
                            {
                                MultiExWindow exWin = new MultiExWindow(this, "检入停止", errs);
                                exWin.ShowDialog();
                            });
                        }
                    }
                    catch (Exception ex)
                    {
                        reject(null, ex);
                        Logger.Error("PDM check rule failed.", ex);
                        this.Show($"图纸检查执行失败:{ex.Message}", true);
                    }
                    finally
                    {
                        workStatus = PdmStatus.FREE;
                        MaskAdorner.HideMask(content);
                    }
                });
            }
            else
            {
                reject(null, null);
                if (workStatus == PdmStatus.CHECKING)
                {
                    this.Info("正在进行规则检查,请勿检入");
                }
                else if (workStatus == PdmStatus.READING)
                {
                    this.Info("正在加载,请勿检入");
                }
                else if (workStatus == PdmStatus.UPLOADING)
                {
                    this.Info("正在上传图纸,请勿检入");
                }
            }
        }
        private async Task PtrHandler2()
        {
            if (workStatus == PdmStatus.FREE)
@@ -1660,17 +1592,18 @@
                        // 执行规则检查并获取结果
                        RefreshBomList(SwApp.IActiveDoc2);
                        DoCheckRule(out _);
                        // 筛选所有在物料明细表中,不跳过检查并且检查未通过的,类型是加工件的未通过审核的,加工件审核通过的但图纸变更的
                        List<string> errs = model.bomTreeReader.CacheList.Where(b =>
                            !b.inBom
                            && (
                                !b.checkRuleOk
                                (!b.skipCheck && !b.checkRuleOk)
                                || (b.produceWay == "加工件" && b.drawStatus != "completed")
                                || (b.produceWay == "加工件" && b.drawStatus == "completed" && b.auditedMd5Changed)
                            )
                        ).Select(b =>
                        {
                            string msg = $"【{b.partModel}】";
                            if (!b.checkRuleOk)
                            if (!b.skipCheck && !b.checkRuleOk)
                            {
                                msg += "未通过规则检查;";
                            }
@@ -1678,6 +1611,10 @@
                            {
                                msg += "未通过审核;";
                            }
                            if (b.produceWay == "加工件" && b.drawStatus == "completed" && b.auditedMd5Changed)
                            {
                                msg += "图纸变更后未重新审核";
                            }
                            return msg;
                        }
                        ).ToList();
PdmSwPlugin.PDM/PdmSwPlugin.PDM.csproj
@@ -183,16 +183,8 @@
    <Compile Include="Constant\PdmStatus.cs" />
    <Compile Include="Event\PdmEvent.cs" />
    <Compile Include="Model\CantCheckInException.cs" />
    <Compile Include="RichHisWindow.xaml.cs">
      <DependentUpon>RichHisWindow.xaml</DependentUpon>
    </Compile>
    <Compile Include="Model\DrawAuditHis.cs" />
    <Compile Include="Model\Dev\PdmControlModel.cs" />
    <Compile Include="Model\PdmControlModel.cs" />
    <Page Include="RichHisWindow.xaml">
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
    </Page>
    <Page Include="DrawAuditHisWindow.xaml">
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
PdmSwPlugin.PropertySetting/CommonSettingControl.xaml.cs
@@ -82,9 +82,14 @@
                    if (string.IsNullOrEmpty(value) && !string.IsNullOrEmpty(attr.defaultValue))
                    {
                        value = attr.defaultValue;
                        // 默认值不写入initData
                    }
                    else
                    {
                        // 其他写入initData
                        if (initData != null) initData[name] = value;
                    }
                    prop.SetValue(container, value);
                    if (initData != null) initData[name] = value;
                }
            });
            return true;
@@ -105,7 +110,14 @@
                string name = attr.Name;
                string value = initData.Get(name, string.Empty);
                string newValue = prop.GetValue(container) as string;
                if (value != newValue)
                if (name == NameConstant.weight)
                {
                    if (string.IsNullOrEmpty(value))
                    {
                        return true;
                    }
                }
                else if (value != newValue)
                {
                    return true;
                }
@@ -365,20 +377,7 @@
        public void UpdateUI(ModelDoc2 doc)
        {
            IPropertyOpt opt = ActiveOpter as IPropertyOpt;
            if (opt != null && opt.GetDocChanged())
            {
                string Message = $"{Path.GetFileName(ReadDocPath)}属性发生变更,是否保存?";
                if (SwApp.SendMsgToUser2(Message, (int)swMessageBoxIcon_e.swMbWarning
                   , (int)swMessageBoxBtn_e.swMbYesNo) == (int)swMessageBoxResult_e.swMbHitYes)
                {
                    SaveDoc(true);
                }
                else
                {
                    opt.ResetProperty(out string errMsg);
                }
            }
            AlertSaveWindow();
            LastReadDoc = ReadDoc;
            ReadDoc = doc;
            Dispatcher.Invoke(() =>
@@ -775,6 +774,35 @@
        }
        /// <summary>
        /// 判断是否需要弹窗提示保存
        /// </summary>
        public void AlertSaveWindow()
        {
            IPropertyOpt opt = ActiveOpter as IPropertyOpt;
            if (opt != null && opt.GetDocChanged())
            {
                // 历史文档直接重置
                string fullName = Path.GetFileName(ReadDocPath);
                if (NameUtil.IsHistoryDoc(fullName))
                {
                    opt.ResetProperty(out string errMsg);
                    return;
                }
                string Message = $"{fullName}属性发生变更,是否保存?";
                if (SwApp.SendMsgToUser2(Message, (int)swMessageBoxIcon_e.swMbWarning
                   , (int)swMessageBoxBtn_e.swMbYesNo) == (int)swMessageBoxResult_e.swMbHitYes)
                {
                    SaveDoc(true);
                }
                else
                {
                    opt.ResetProperty(out string errMsg);
                }
            }
        }
        public void OnTabControlSelectionChange(object sender, SelectionChangedEventArgs e)
        {
            if (e.RemovedItems == null)
@@ -788,20 +816,7 @@
                {
                    if (item.Content == this)
                    {
                        IPropertyOpt opt = ActiveOpter as IPropertyOpt;
                        if (opt != null && opt.GetDocChanged())
                        {
                            string Message = $"{Path.GetFileName(ReadDocPath)}属性发生变更,是否保存?";
                            if (SwApp.SendMsgToUser2(Message, (int)swMessageBoxIcon_e.swMbWarning
                               , (int)swMessageBoxBtn_e.swMbYesNo) == (int)swMessageBoxResult_e.swMbHitYes)
                            {
                                SaveDoc(true);
                            }
                            else
                            {
                                opt.ResetProperty(out string errMsg);
                            }
                        }
                        AlertSaveWindow();
                        break;
                    }
                }
PdmSwPlugin.PropertySetting/Panel/JgjModulePanel.xaml
@@ -19,7 +19,7 @@
    <StackPanel>
        <StackPanel x:Name="materialCodePanel">
            <Label Content="物料编码"/>
            <TextBox  x:Name="materialCodeText" Text="{Binding materialCode,UpdateSourceTrigger=PropertyChanged}"/>
            <TextBox x:Name="materialCodeText" IsReadOnly="True" Text="{Binding materialCode,UpdateSourceTrigger=PropertyChanged}"/>
        </StackPanel>
        <StackPanel x:Name="materialNamePanel">
PdmSwPlugin.PropertySetting/Panel/JgjModulePanel.xaml.cs
@@ -1,7 +1,7 @@
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Reflection;
using System.IO;
using System.Runtime.CompilerServices;
using System.Windows.Controls;
using PdmSwPlugin.Common.CustomHandler;
@@ -119,7 +119,7 @@
        #region UI属性
        private string _materialCode;
        [PropertySettingAttr(Name = NameConstant.materialCode)]
        [PropertySettingAttr(Name = NameConstant.materialCode, defaultValue = "$PRP:\"SW-File Name\"")]
        public string materialCode
        {
            get => _materialCode;
@@ -221,13 +221,20 @@
        [PropertySettingAttr(Name = NameConstant.weight, NeedSave = false)]
        public string weight
        {
            get => _weight;
            get => CustomPropertyUtil.GetMass(doc);
            set
            {
                RaiseAndSetIfChanged(ref _weight, value);
                ccc(ref _weight, value);
            }
        }
        [PropertySettingAttr(Name = NameConstant.weight, NeedInit = false)]
        public string weightEval
        {
            get => doc == null ? null : $"\"SW-质量@{Path.GetFileName(doc.GetPathName())}\"";
            set { }
        }
        private string _designer = "";
        [PropertySettingAttr(Name = NameConstant.designer)]
        public string designer
PdmSwPlugin.PropertySetting/Panel/JgjPartPanel.xaml
@@ -19,12 +19,12 @@
    <StackPanel>
        <StackPanel x:Name="materialCodePanel">
            <Label Content="物料编码"/>
            <TextBox  x:Name="materialCodeText" Text="{Binding materialCode,UpdateSourceTrigger=PropertyChanged}"/>
            <TextBox x:Name="materialCodeText" IsReadOnly="True" Text="{Binding materialCode,UpdateSourceTrigger=PropertyChanged}"/>
        </StackPanel>
        <StackPanel x:Name="weightPanel">
            <Label Content="重量(kg)"/>
            <TextBox IsReadOnly="True" x:Name="weightText" Text="{Binding weight,UpdateSourceTrigger=PropertyChanged}"/>
            <TextBox IsReadOnly="True" x:Name="weightText" Text="{Binding weight}"/>
        </StackPanel>
        <StackPanel x:Name="materialNamePanel">
PdmSwPlugin.PropertySetting/Panel/JgjPartPanel.xaml.cs
@@ -1,6 +1,7 @@
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.IO;
using System.Runtime.CompilerServices;
using System.Windows.Controls;
using PdmSwPlugin.Common.CustomHandler;
@@ -117,7 +118,7 @@
        #region UI属性
        private string _materialCode;
        [PropertySettingAttr(Name = NameConstant.materialCode)]
        [PropertySettingAttr(Name = NameConstant.materialCode, defaultValue = "$PRP:\"SW-File Name\"")]
        public string materialCode
        {
            get => _materialCode;
@@ -197,13 +198,20 @@
        [PropertySettingAttr(Name = NameConstant.weight, NeedSave = false)]
        public string weight
        {
            get => _weight;
            get => CustomPropertyUtil.GetMass(doc);
            set
            {
                RaiseAndSetIfChanged(ref _weight, value);
                ccc(ref _weight, value);
            }
        }
        [PropertySettingAttr(Name = NameConstant.weight, NeedInit = false)]
        public string weightEval
        {
            get => doc == null ? null : $"\"SW-质量@{Path.GetFileName(doc.GetPathName())}\"";
            set { }
        }
        private string _materialType = "";
        [PropertySettingAttr(Name = NameConstant.materialType, defaultValue = "普通件")]
        public string materialType
PdmSwPlugin.PropertySetting/Panel/StandardModulePanel.xaml.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Runtime.CompilerServices;
using System.Windows.Controls;
using PdmSwPlugin.Common.CustomHandler;
@@ -94,13 +95,20 @@
        [PropertySettingAttr(Name = NameConstant.weight, NeedSave = false)]
        public string weight
        {
            get => _weight;
            get => CustomPropertyUtil.GetMass(doc);
            set
            {
                RaiseAndSetIfChanged(ref _weight, value);
            }
        }
        [PropertySettingAttr(Name = NameConstant.weight, NeedInit = false)]
        public string weightEval
        {
            get => doc == null ? null : $"\"SW-质量@{Path.GetFileName(doc.GetPathName())}\"";
            set { }
        }
        private string _designer = "";
        [PropertySettingAttr(Name = NameConstant.designer)]
        public string designer
PdmSwPlugin.PropertySetting/Panel/StandardPartPanel.xaml.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Runtime.CompilerServices;
using System.Windows.Controls;
using PdmSwPlugin.Common.CustomHandler;
@@ -92,13 +93,20 @@
        [PropertySettingAttr(Name = NameConstant.weight, NeedSave = false)]
        public string weight
        {
            get => _weight;
            get => CustomPropertyUtil.GetMass(doc);
            set
            {
                RaiseAndSetIfChanged(ref _weight, value);
            }
        }
        [PropertySettingAttr(Name = NameConstant.weight, NeedInit = false)]
        public string weightEval
        {
            get => doc == null ? null : $"\"SW-质量@{Path.GetFileName(doc.GetPathName())}\"";
            set { }
        }
        private string _designer = "";
        [PropertySettingAttr(Name = NameConstant.designer)]
        public string designer