From 2c5bf00d854390099aa9c362a9deba9ccfb532d7 Mon Sep 17 00:00:00 2001 From: chenjinbu Date: Mon, 22 Sep 2025 09:21:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=90=E6=96=99=E8=A1=A8=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E7=94=9F=E6=88=90=EF=BC=8C=E5=B8=83=E7=BD=AE=E5=9B=BE=E4=B8=8B?= =?UTF-8?q?=E6=9D=A5=E5=A4=9A=E9=80=89=E5=92=8C=E9=BB=98=E8=AE=A4=E5=9D=97?= =?UTF-8?q?=E5=9B=BE=E7=BA=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 009_DI-Electrical.sln | 29 +- Department2/obj/Debug/build.force | 0 .../AppApi/PlotBOMApiController.cs | 50 +- .../AppApi/ProjectApiController.cs | 24 +- .../Learun.Application.Web.csproj | 7 + ...Base.Oracle.csproj.AssemblyReference.cache | Bin 13639 -> 45467 bytes .../obj/Debug/build.force | 0 ...e.SqlServer.csproj.AssemblyReference.cache | Bin 10723 -> 42038 bytes .../obj/Debug/build.force | 0 ...ase.MySqlEx.csproj.AssemblyReference.cache | Bin 15878 -> 51218 bytes .../obj/Debug/build.force | 0 .../SWSDBSchemeUpgradeTool_MarkupCompile.lref | 4 +- .../ViewModels/MainWindowViewModel.cs | 1 + newFront/c#前端/SWS.CAD.Base/General.cs | 168 ++++- .../SWS.CAD.Base/Model/DtoCadTextInfo.cs | 37 ++ .../c#前端/SWS.CAD.Base/SWS.CAD.Base.csproj | 1 + newFront/c#前端/SWS.CAD.sln | 18 + newFront/c#前端/SWS.CAD/GlobalObje.cs | 9 +- newFront/c#前端/SWS.CAD/Helper/TreeHelper.cs | 16 +- .../c#前端/SWS.CAD/Views/CheckInApprove.xaml | 151 +++-- newFront/c#前端/SWS.CAD/Views/LeftPanel.xaml | 316 +++++---- newFront/c#前端/SWS.Commons/GlobalObject.cs | 57 +- .../c#前端/SWS.Commons/Helper/IniHelper.cs | 6 +- .../c#前端/SWS.Commons/Helper/LoggerHelper.cs | 8 +- .../c#前端/SWS.Commons/Helper/TreeHelper.cs | 85 +++ .../c#前端/SWS.Commons/SWS.Commons.csproj | 1 + .../MultiSelectComboBox/MultiSelectComboBox.cs | 182 ++++++ .../MultiSelectComboBoxItem.cs | 14 + .../MultiSelectComboBox/SmallPanel.cs | 52 ++ .../SWS.CustomControl/SWS.CustomControl.csproj | 1 + newFront/c#前端/SWS.Electrical/Commands.cs | 109 ++- newFront/c#前端/SWS.Electrical/GlobalObj.cs | 32 +- .../SWS.Electrical/Models/DtoBomDrawings.cs | 25 + .../SWS.Electrical/SWS.Electrical.csproj | 29 + newFront/c#前端/SWS.Electrical/Start.cs | 4 + .../SWS.Electrical/Style/CustomStyles.xaml | 266 ++++++++ .../Template/19-09-2025_10-11-58_v21-2-04-0.dmp | Bin 0 -> 86037 bytes .../SWS.Electrical/Template/BomConfig.json | 31 + .../SWS.Electrical/Template/crash_report.txt | 49 ++ .../Template/常规矩形两行图块.dwg | Bin 0 -> 21350 bytes .../Template/常规矩形单行图块.dwg | Bin 0 -> 16099 bytes .../c#前端/SWS.Electrical/Template/材料表.bak | Bin 0 -> 18376 bytes .../c#前端/SWS.Electrical/Template/材料表.dwg | Bin 0 -> 19847 bytes .../DialogAutoArrangeLayoutViewModel.cs | 180 +++-- .../ViewModels/DialogGenerateBOMViewModel.cs | 618 ++++++++++++++++++ .../Views/DialogAutoArrangeLayout.xaml | 409 ++++++------ .../Views/DialogAutoArrangeLayout.xaml.cs | 5 + .../SWS.Electrical/Views/DialogGenerateBOM.xaml | 241 +++++++ .../Views/DialogGenerateBOM.xaml.cs | 37 ++ .../Debug/Views/DialogAutoArrangeLayout.g.cs | 12 +- .../Debug/Views/DialogAutoArrangeLayout.g.i.cs | 12 +- .../c#前端/SWS.Model/LayoutTagInfoBrief.cs | 24 +- .../c#前端/SWS.Model/NoEntity/BomConfig.cs | 133 ++++ .../c#前端/SWS.Model/NoEntity/TreeModel.cs | 16 +- newFront/c#前端/SWS.Model/SWS.Model.csproj | 1 + newFront/c#前端/SWS.Service/DrawingServce.cs | 2 +- newFront/c#前端/SWS.Service/PlotBOMService.cs | 32 + newFront/c#前端/SWS.Service/ProjectService.cs | 12 + .../c#前端/SWS.Service/SWS.Service.csproj | 5 + .../SWS.Service/SWS.Service.csproj.user | 2 +- newFront/c#前端/SWS.Share/BOMGroupInfo.cs | 44 ++ .../SWS.Share/Properties/AssemblyInfo.cs | 33 + newFront/c#前端/SWS.Share/SWS.Share.csproj | 49 ++ .../c#前端/SWS.Share/SWS.Share.csproj.user | 6 + .../SWS.WPF/ViewModels/DialogTestViewModel.cs | 14 +- .../DialogAllOutputSignal.xaml | 408 ++++++------ .../DialogSignalManagement.xaml | 318 ++++----- newFront/c#前端/SWS.WPF/Views/DialogTest.xaml | 86 +-- .../SWS.WPF/obj/Debug/SWS.WPF.g.resources | Bin 97432 -> 97620 bytes .../DialogSignalManagement.g.i.cs | 16 +- .../SWS.WPF/obj/Debug/Views/DialogTest.g.i.cs | 4 +- 71 files changed, 3509 insertions(+), 992 deletions(-) delete mode 100644 Department2/obj/Debug/build.force delete mode 100644 Learun.Framework.Module/Learun.Db/Learun.DataBase.EF.Oracle/obj/Debug/build.force delete mode 100644 Learun.Framework.Module/Learun.Db/Learun.DataBase.EF.Sqlserver/obj/Debug/build.force delete mode 100644 Learun.Framework.Module/Learun.Db/Learun.DataBase.MySql/obj/Debug/build.force create mode 100644 newFront/c#前端/SWS.CAD.Base/Model/DtoCadTextInfo.cs create mode 100644 newFront/c#前端/SWS.Commons/Helper/TreeHelper.cs create mode 100644 newFront/c#前端/SWS.CustomControl/MultiSelectComboBox/MultiSelectComboBox.cs create mode 100644 newFront/c#前端/SWS.CustomControl/MultiSelectComboBox/MultiSelectComboBoxItem.cs create mode 100644 newFront/c#前端/SWS.CustomControl/MultiSelectComboBox/SmallPanel.cs create mode 100644 newFront/c#前端/SWS.Electrical/Models/DtoBomDrawings.cs create mode 100644 newFront/c#前端/SWS.Electrical/Style/CustomStyles.xaml create mode 100644 newFront/c#前端/SWS.Electrical/Template/19-09-2025_10-11-58_v21-2-04-0.dmp create mode 100644 newFront/c#前端/SWS.Electrical/Template/BomConfig.json create mode 100644 newFront/c#前端/SWS.Electrical/Template/crash_report.txt create mode 100644 newFront/c#前端/SWS.Electrical/Template/常规矩形两行图块.dwg create mode 100644 newFront/c#前端/SWS.Electrical/Template/常规矩形单行图块.dwg create mode 100644 newFront/c#前端/SWS.Electrical/Template/材料表.bak create mode 100644 newFront/c#前端/SWS.Electrical/Template/材料表.dwg create mode 100644 newFront/c#前端/SWS.Electrical/ViewModels/DialogGenerateBOMViewModel.cs create mode 100644 newFront/c#前端/SWS.Electrical/Views/DialogGenerateBOM.xaml create mode 100644 newFront/c#前端/SWS.Electrical/Views/DialogGenerateBOM.xaml.cs create mode 100644 newFront/c#前端/SWS.Model/NoEntity/BomConfig.cs create mode 100644 newFront/c#前端/SWS.Service/PlotBOMService.cs create mode 100644 newFront/c#前端/SWS.Share/BOMGroupInfo.cs create mode 100644 newFront/c#前端/SWS.Share/Properties/AssemblyInfo.cs create mode 100644 newFront/c#前端/SWS.Share/SWS.Share.csproj create mode 100644 newFront/c#前端/SWS.Share/SWS.Share.csproj.user diff --git a/009_DI-Electrical.sln b/009_DI-Electrical.sln index f6d4f9fc..c646d901 100644 --- a/009_DI-Electrical.sln +++ b/009_DI-Electrical.sln @@ -94,6 +94,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "04 Plugin", "04 Plugin", "{ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Department2", "Department2\Department2.csproj", "{74A88CCC-F53B-471C-B350-A2BB5804619C}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SWS.Share", "newFront\c#前端\SWS.Share\SWS.Share.csproj", "{87E71797-E60A-4637-BA32-C8B57154ABC3}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Android = Debug|Android @@ -806,6 +808,30 @@ Global {74A88CCC-F53B-471C-B350-A2BB5804619C}.Release|Windows-x64.Build.0 = Release|Any CPU {74A88CCC-F53B-471C-B350-A2BB5804619C}.Release|Windows-x86.ActiveCfg = Release|Any CPU {74A88CCC-F53B-471C-B350-A2BB5804619C}.Release|Windows-x86.Build.0 = Release|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Debug|Android.ActiveCfg = Debug|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Debug|Android.Build.0 = Debug|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Debug|iOS.ActiveCfg = Debug|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Debug|iOS.Build.0 = Debug|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Debug|Windows-ARM.ActiveCfg = Debug|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Debug|Windows-ARM.Build.0 = Debug|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Debug|Windows-x64.ActiveCfg = Debug|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Debug|Windows-x64.Build.0 = Debug|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Debug|Windows-x86.ActiveCfg = Debug|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Debug|Windows-x86.Build.0 = Debug|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Release|Android.ActiveCfg = Release|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Release|Android.Build.0 = Release|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Release|Any CPU.Build.0 = Release|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Release|iOS.ActiveCfg = Release|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Release|iOS.Build.0 = Release|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Release|Windows-ARM.ActiveCfg = Release|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Release|Windows-ARM.Build.0 = Release|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Release|Windows-x64.ActiveCfg = Release|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Release|Windows-x64.Build.0 = Release|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Release|Windows-x86.ActiveCfg = Release|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Release|Windows-x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -848,10 +874,11 @@ Global {56F9A112-FD96-4809-98F4-0D7C5DE0711B} = {D5BF3E92-22DA-4C1B-A736-B9E847A3DE27} {A448AD52-CB49-4206-BBDC-E433574BB88F} = {27B3C269-FF3F-4E1C-9B92-A40F6B4857E0} {74A88CCC-F53B-471C-B350-A2BB5804619C} = {E011739D-4EC0-4E88-B6D1-A86242FBE6B0} + {87E71797-E60A-4637-BA32-C8B57154ABC3} = {D5BF3E92-22DA-4C1B-A736-B9E847A3DE27} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - EnterpriseLibraryConfigurationToolBinariesPath = packages\Unity.2.1.505.0\lib\NET35 SolutionGuid = {968C278F-4142-4DFF-96B0-B3D70A649451} + EnterpriseLibraryConfigurationToolBinariesPath = packages\Unity.2.1.505.0\lib\NET35 EndGlobalSection GlobalSection(Performance) = preSolution HasPerformanceSessions = true diff --git a/Department2/obj/Debug/build.force b/Department2/obj/Debug/build.force deleted file mode 100644 index e69de29b..00000000 diff --git a/Learun.Application.Web/AppApi/PlotBOMApiController.cs b/Learun.Application.Web/AppApi/PlotBOMApiController.cs index ffff394e..56a34701 100644 --- a/Learun.Application.Web/AppApi/PlotBOMApiController.cs +++ b/Learun.Application.Web/AppApi/PlotBOMApiController.cs @@ -6,6 +6,7 @@ using NPOI.SS.Formula.PTG; using NPOI.Util.Collections; using OfficeOpenXml.Drawing.Vml; using Pipelines.Sockets.Unofficial.Arenas; +using SWS.Share; using System; using System.Collections; using System.Collections.Generic; @@ -31,7 +32,7 @@ namespace Learun.Application.Web.AppApi /// /// [HttpGet] - public IHttpActionResult GetBOMGroupInfo(string ProjectId = "c151f5d4-cbe1-4522-945c-501b1ad990d5", string drawingId = "277d883d-e271-45e4-990b-926585321fa8") + public IHttpActionResult GetBOMGroupInfo(string ProjectId = "403ee1e6-ca2e-4acc-9667-273afd4ea93c", string drawingId = "db834963-f62b-4c44-8180-1b9073819546") { var res = new List();//声明结果 @@ -77,7 +78,7 @@ namespace Learun.Application.Web.AppApi #region 预处理每个位号,然后进行分组 foreach (ec_enginedataEntity tag in allTag) { - var matchedTypes = new List(); + var matchedTypes = new List(); var idx = 0; var GroupName = TrimTagNubmer(tag.TagNumber, out idx);// 如 A-B1,A-B2,取出来的group就是A-B,idx为0 var seq = tag.TagNumber.Substring(idx).Replace(GroupName, "");// 1,2 @@ -127,19 +128,25 @@ namespace Learun.Application.Web.AppApi { List allTagsInThisGroup = group.ToList(); var GroupName = group.Key.Group; //A-ABC, 正常情况下A是system,放下面;B是tag,放上面 + string part1 = string.Empty; + string part0 = string.Empty; if (!GroupName.Contains("-")) - { - - continue; + { + part1 = GroupName; } - var upper_text_Part1 = GroupName.Split('-')[1];//ABC + else + { + part0 = GroupName.Split('-')[0]; + part1 = GroupName.Split('-')[1];//ABC + } + var upper_text_Part1 = part1;//ABC var upper_text_Part2 = "";//seq #region seq的不同情况 //得到每个位号下的seq var allSeqText = allTagsInThisGroup.OrderBy(x => x.Seq).Select(x => x.Seq).ToList(); var allSeq = ExtractNumbers(allSeqText);//把1A 1B 这种情况也处理了,变成1,1 - if (allSeq.Distinct().Count() == 1) + if (allSeq.Distinct().Count() <= 1) { //TAG如果一样的就取这个TAG就行??? upper_text_Part2 = allSeqText.First(); @@ -165,7 +172,7 @@ namespace Learun.Application.Web.AppApi var BOMGroupInfo = new BOMGroupInfo { upper_text = upper_text_Part1 + upper_text_Part2, - lower_text = GroupName.Split('-')[0],//A + lower_text = part0,//A Count = group.Count(), Remark = group.Key.vendor, Model = group.Key.Model, @@ -290,32 +297,5 @@ namespace Learun.Application.Web.AppApi /// public string Name { set; get; } } - public class BOMGroupInfo - { - public string upper_text { set; get; } - public string lower_text { set; get; } - /// - /// 每一行用的symbol是什么 - /// - public string FileId { set; get; } - /// - /// 个数 - /// - public int Count { set; get; } - /// - /// 备注(由 厂商) - /// - public string Remark { set; get; } - /// - /// 规格(由 电制 额定功率 ip等级 防爆等级等属性拼接而成) - /// - public string Spec { set; get; } - - /// - /// 型号 - /// - public string Model { set; get; } - - } } \ No newline at end of file diff --git a/Learun.Application.Web/AppApi/ProjectApiController.cs b/Learun.Application.Web/AppApi/ProjectApiController.cs index 5e5c73e4..b9f80969 100644 --- a/Learun.Application.Web/AppApi/ProjectApiController.cs +++ b/Learun.Application.Web/AppApi/ProjectApiController.cs @@ -1,4 +1,6 @@ -using Learun.Application.TwoDevelopment.ZZDT_EC; +using DocumentFormat.OpenXml.Drawing.Spreadsheet; +using Learun.Application.Base.SystemModule; +using Learun.Application.TwoDevelopment.ZZDT_EC; using Learun.Util; using Learun.Util.SqlSugar; using SqlSugar; @@ -109,5 +111,25 @@ namespace Learun.Application.Web.AppApi return Success(resAll); } + /// + /// 获取项目信息 + /// + /// 项目ID + /// + [HttpGet] + [ResponseType(typeof(TwoDevelopment.ZZDT_EC.ec_projectEntity))] + public IHttpActionResult GetEntity(string projectId) + { + try + { + ec_projectIBLL ec_projectIBLL = new ec_projectBLL(); + var entity = ec_projectIBLL.GetEntity(projectId); + return Success(entity); + } + catch (Exception ex) + { + return Fail(ex.Message); + } + } } } \ No newline at end of file diff --git a/Learun.Application.Web/Learun.Application.Web.csproj b/Learun.Application.Web/Learun.Application.Web.csproj index 75876b25..3bda2aa7 100644 --- a/Learun.Application.Web/Learun.Application.Web.csproj +++ b/Learun.Application.Web/Learun.Application.Web.csproj @@ -3814,6 +3814,9 @@ + + PreserveNewest + @@ -3909,6 +3912,10 @@ {1d192591-b85a-41db-ae3a-4bf9765786c1} Learun.Workflow.Engine + + {87e71797-e60a-4637-ba32-c8b57154abc3} + SWS.Share + 10.0 diff --git a/Learun.Framework.Module/Learun.Db/Learun.DataBase.EF.Oracle/obj/Debug/Learun.DataBase.Oracle.csproj.AssemblyReference.cache b/Learun.Framework.Module/Learun.Db/Learun.DataBase.EF.Oracle/obj/Debug/Learun.DataBase.Oracle.csproj.AssemblyReference.cache index 0b7d950e7b6ae0a1eaa4390b8dc592adca4531d5..c3986afc4b27eaa019c0dcb42b835a493af0fd95 100644 GIT binary patch literal 45467 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 I{uNU4e|J|cv;Y7A delta 1415 zcmah|O-zzu9Oogv3?<@2!BSt){Fn)-xpit6FndEV6cB|hSDWk5A(JV?gPWU&TDj`b*R4xihxkA9Wpq$3?0xw^|KI2HE_@ch8DV7P zphzSl7uy}aiC}!p*M63B`D`|Jkn=RSBEbM`hgxB2O0Mloh9j1tNQ98gdF5=Xd~GY0 zw3|jk;YiS7wOZR9Rs^sjfb~CsYpu}LF9#KQ2)zLgeh+vd>2O1`+XG+3et4bG!D@^B zuFDO}(KaFi)?NYcqP38aaPU&%0*TZE-O@H-dKp-e+Te%O3r<-_=H!ho6D-OO!^z|4 zz%1{9Wo-aH$=$%sXyAmR%6MrHR}9=&w8-8Drz_UBU{m2V#q&C8Eci)PqadU*E1lF$ zT6u~(+o6TY!uT|%BqGwxPho6qA{riw@s?O5uEdvED3J3!gwOO)EHp|7!V8^{{gcNm zHcPXuxseqSZZ}81I3F10hl2?p$H(JAC@V6{F1NGwcX)6WHJdu~n!8uDnl*CR*|4DO+!v+&mK?-~9N3POkxX7xtc(ASuT^C^LKwF4IPD&ULPp{c}6g~K`cKa^UhSFyQHV$=BBEdZ-fv%sHU7+b;3d`mF z!bh@mv-R*Ibf9#W?4hO-RE!$7D_pXH=YKM);3(5)29h@oLn+-%Z!$}S#*rIEvbP$( zR@!JpIkCXEs+gGU1GUOctHji}866BCnFDh|1B}W}SI`{7;Y?C}T}-5OMeyF^^k&EN z)mMZuqT!{$W5RYx&CM(__LMtYtht(W@u+(ADX4@pXu;5wQ6rZ|ND2z_`IlmvM=$O9);B LtB8$uxf$(0nHtu^ diff --git a/Learun.Framework.Module/Learun.Db/Learun.DataBase.EF.Oracle/obj/Debug/build.force b/Learun.Framework.Module/Learun.Db/Learun.DataBase.EF.Oracle/obj/Debug/build.force deleted file mode 100644 index e69de29b..00000000 diff --git a/Learun.Framework.Module/Learun.Db/Learun.DataBase.EF.Sqlserver/obj/Debug/Learun.DataBase.SqlServer.csproj.AssemblyReference.cache b/Learun.Framework.Module/Learun.Db/Learun.DataBase.EF.Sqlserver/obj/Debug/Learun.DataBase.SqlServer.csproj.AssemblyReference.cache index 0a03554a1d71f75e5dea0a4771ac97f737f04748..8e1769fc11459c6b8ed9e7d2051012bef9387db4 100644 GIT binary patch literal 42038 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 delta 1132 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 Us&v=VvJF`-z){NZ{u5I2e`Ip4ssI20 delta 1785 zcmai#ZA@Bs6vn+u;aXt=iWTP+D)Q0+7Z4Swtx+xrRKPcItr$SKS}Ro}%tdE)OPgl4 zCWW3XaVATf^n=-lrfJxVaouJUldfG?mYH_0i?d6*WLf82vbl82n(SVtn_Wx!aC7gM z^M8KNbI$qSv(c=RV*)yomywZybQukvA!2aAV|3ysk4mNY;#P$zLbzP4H#8|Q6<>+lGx~8SdB8^IpjR3WESYou|m*mA-`#`?n9vz zuY(^l55kf=A4&u|cqC!MHyt(bT~<9vXch?5aQKjBg2f6uxOVJ^(H;SOutNo_wRR)} z7W@imlI6n!9fec${ScA4LCkPMtGNg6GjK3Tx!{e7_=lfiNdPlwCH*=vQF?P3Zlg8A z!L+8-**`sIVBOaME;9k*936D!*dd-%2ii(Au;gq?9)_9M_;^YL7fVfl*{FZ_DE+oWK-qUAkkZk~VK{h<#Wz#38 zexz{z2Tt{0v?iN`CVis-xhL=wwNZj>5BNalo3qxt5Ml|U)FXEub^;+Rtzt_ zQ2@my*@dabI4&z1r$i|+YGx-%(`a%|Zy4=xNzw$xRb2jol!CJ_=ujy<)SmH^g3!wx+WR&N5!Sx#Z|S%9uJE?ztJsExBQ2CR;#7Emxp`3LWI;*x;h14L&(yCu!JZ z^df#|N}{)S+vs_2X(bu^+U|NGk&Y$qEIapK?Dyo20OdI3;r3+w=T-RDc}ah=|7@4iiVaLL;7rI-}R#YHjp5hx~yMp|tz^{XIkw_ecD7 zfdCN>dxo`2l~=1&Yt%{&`Q_E=yR^EBZmmWi&{kJyH7P4O%3vsjAml~1F*D1%b({=5 z(NhlGsgj9FWSh%PLhLa@Y>N=vBE(V=V(AExA( zNB`BS>+`mygMVCk^`q}M0(Xj5-kMKbn9*q8zxBmP@!ge=b@$l~)1wb1vtQ%JNXxFj zigOFAV%&Yl7Gq6}B2I0zCG^V!X>Ol;spy8uq{ILJcZ)U(B0*$vcDGSt)`%pGp;PGa@vSZ-jg@;c{jf6dqPv@W>q=2Ba*Cj)uL5msl@Q;wj12njI{+Q)L^zlznIzX2Y`X diff --git a/newFront/c#前端/SWS.CAD.Base/General.cs b/newFront/c#前端/SWS.CAD.Base/General.cs index c8ee2e9f..36bdcaf5 100644 --- a/newFront/c#前端/SWS.CAD.Base/General.cs +++ b/newFront/c#前端/SWS.CAD.Base/General.cs @@ -109,8 +109,10 @@ namespace SWS.CAD.Base /// /// 读取图块图纸插入当前文档 /// - /// - public static ObjectId InsertBlock(string fileName, string blockName) + /// 块图纸路径 + /// 块名 + /// 坐标位 + public static ObjectId InsertBlock(string fileName, string blockName, Point3d position) { ObjectId entity = ObjectId.Null; @@ -135,9 +137,10 @@ namespace SWS.CAD.Base using (Transaction trans = db.TransactionManager.StartTransaction()) { BlockTable bt = trans.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable; - ObjectId idBtr = doc.Database.Insert(blockName, blockName, blockDb, true); + ObjectId idBtr = doc.Database.Insert(blockName, blockName, blockDb, true); BlockTableRecord curBtr = trans.GetObject(db.CurrentSpaceId, OpenMode.ForWrite) as BlockTableRecord; var block = new BlockReference(Point3d.Origin, idBtr); + block.Position = position; curBtr.AppendEntity(block); trans.AddNewlyCreatedDBObject(block, true); entity = block.Id; @@ -721,6 +724,7 @@ namespace SWS.CAD.Base } #endregion + #region 读取元件块,插入图纸 /// /// 读取元件块,插入图纸 @@ -730,15 +734,15 @@ namespace SWS.CAD.Base /// 位号值 /// 元件类型ID /// 比例大小 - /// 坐标位置 + /// 坐标位置 /// - public static ObjectId AddTagDWG(string filePath, string tagName, string tag, string objTypeId, double scale, Point3d tagPoint) + public static ObjectId AddTagDWG(string filePath, string tagName, string tag, string objTypeId, double scale, Point3d position) { if (scale == 0) { scale = 1; } Document doc = Application.DocumentManager.MdiActiveDocument; var ed = doc.Editor; - ObjectId oid = ObjectId.Null; + ObjectId oid = ObjectId.Null; if (!File.Exists(filePath)) { ed.WriteMessage("\n 错误:图元文件不存在!\n"); @@ -754,7 +758,7 @@ namespace SWS.CAD.Base using (Database sourceDb = new Database(false, true)) { sourceDb.ReadDwgFile(filePath, FileOpenMode.OpenForReadAndAllShare, false, null); - + // 生成唯一块名(避免重名) string blockName = GetUniqueBlockName(destDb, tagName); // 将外部DWG转换为块定义 @@ -764,7 +768,7 @@ namespace SWS.CAD.Base Point3d.Origin, // 插入点(可修改) blockId// bt[blockName] ); - br.Position = tagPoint; + br.Position = position; // 设置比例和旋转 br.ScaleFactors = new Scale3d(scale); //比例因子 br.Rotation = 0.0; // 旋转角度(弧度) @@ -948,18 +952,13 @@ namespace SWS.CAD.Base /// /// 保存图纸 /// - public static void SaveDwg(string filename) + public static void SaveAndCloseDwg(string filename) { Document doc = Application.DocumentManager.MdiActiveDocument; Database db = doc.Database; if (db.Filename.Equals(filename)) { - using (Transaction tr = doc.TransactionManager.StartTransaction()) - { - // 操作数据库... - tr.Commit(); // 必须提交 - } - doc.Database.Save(); + doc.CloseAndSave(filename); } } #endregion @@ -1013,6 +1012,7 @@ namespace SWS.CAD.Base } else { doc.CloseAndDiscard(); } // 重新打开 + Thread.Sleep(200); Application.DocumentManager.Open(filePath, isReadOnly); doc = Application.DocumentManager.MdiActiveDocument; ed = doc.Editor; @@ -1996,6 +1996,144 @@ namespace SWS.CAD.Base } #endregion + + #region 插入文本内容 + public static string InsertTextInfo(List listTextInfo) + { + string res = string.Empty; + try + { + Document doc = Application.DocumentManager.MdiActiveDocument; + Database db = doc.Database; + Editor ed = doc.Editor; + // 开始事务处理 + using (Transaction tr = db.TransactionManager.StartTransaction()) + { + // 打开当前空间(模型空间或图纸空间)用于写入 + BlockTableRecord currentSpace = (BlockTableRecord)tr.GetObject( + db.CurrentSpaceId, OpenMode.ForWrite); + foreach (var textInfo in listTextInfo) + { + if (textInfo.IsMText) + { + // 创建多行文字对象 + MText mText = new MText(); + mText.Contents = textInfo.Text; + mText.Location = textInfo.Position; + mText.TextHeight = textInfo.Height; + mText.Width = textInfo.Width; // 设置文本宽度,控制自动换行 + if (textInfo.Align == 0) + { + mText.Attachment = AttachmentPoint.MiddleLeft; // 设置对齐居左 + } + else if (textInfo.Align == 1) + { + mText.Attachment = AttachmentPoint.BaseCenter; // 设置对齐居中 + } + // 将文字添加到当前空间 + currentSpace.AppendEntity(mText); + tr.AddNewlyCreatedDBObject(mText, true); + } + else + { + // 创建单行文字对象 + DBText dbText = new DBText(); + dbText.TextString = textInfo.Text; + dbText.Position = textInfo.Position; + dbText.AlignmentPoint= textInfo.Position; + dbText.Height = textInfo.Height; + if (textInfo.Align == 0) + { + dbText.HorizontalMode = TextHorizontalMode.TextLeft; // 设置对齐居左 + } + else if (textInfo.Align == 1) + { + dbText.HorizontalMode = TextHorizontalMode.TextCenter; // 设置对齐居中 + } + + // 将文字添加到当前空间 + currentSpace.AppendEntity(dbText); + tr.AddNewlyCreatedDBObject(dbText, true); + } + } + + // 提交事务 + tr.Commit(); + } + return res; + } + catch (Exception ex) + { + return ex.Message; + } + } + #endregion + + #region 读取源图纸,插入当前图纸 + /// + /// 读取源图纸,插入当前图纸 + /// + /// 源图纸路径 + /// 块名 + /// 坐标位置 + /// + public static ObjectId AddBlockDWG(string filePath, string blockName, Point3d position) + { + Document doc = Application.DocumentManager.MdiActiveDocument; + var ed = doc.Editor; + ObjectId oid = ObjectId.Null; + if (!File.Exists(filePath)) + { + ed.WriteMessage("\n 错误: 源图纸不存在!\n"); + return oid; + } + // 获取当前数据库 + Database destDb = HostApplicationServices.WorkingDatabase; + using (Transaction tr = destDb.TransactionManager.StartTransaction()) + { + try + { + // 创建临时数据库读取外部DWG + using (Database sourceDb = new Database(false, true)) + { + sourceDb.ReadDwgFile(filePath, FileOpenMode.OpenForReadAndAllShare, false, null); + + // 生成唯一块名(避免重名) + //string blockName = GetUniqueBlockName(destDb, blockName); + // 将外部DWG转换为块定义 + ObjectId blockId = destDb.Insert(blockName, sourceDb, true); + // 创建块参照 + BlockReference br = new BlockReference( + Point3d.Origin, // 插入点(可修改) + blockId// bt[blockName] + ); + br.Position = position; + // 设置比例和旋转 + br.ScaleFactors = new Scale3d(1.0); //比例因子 + br.Rotation = 0.0; // 旋转角度(弧度) + BlockTableRecord btr = (BlockTableRecord)tr.GetObject( + SymbolUtilityServices.GetBlockModelSpaceId(destDb), + OpenMode.ForWrite + ); + + // 处理插入结果 + btr.AppendEntity(br); + tr.AddNewlyCreatedDBObject(br, true); + tr.Commit(); + oid = br.Id; + } + } + catch (Exception ex) + { + tr.Abort(); + ed.WriteMessage($"\n错误: {ex.Message}\n"); + } + } + return oid; + + + } + #endregion } } diff --git a/newFront/c#前端/SWS.CAD.Base/Model/DtoCadTextInfo.cs b/newFront/c#前端/SWS.CAD.Base/Model/DtoCadTextInfo.cs new file mode 100644 index 00000000..2ceebadb --- /dev/null +++ b/newFront/c#前端/SWS.CAD.Base/Model/DtoCadTextInfo.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Teigha.Geometry; + +namespace SWS.CAD.Base +{ + public class DtoCadTextInfo + { + /// + /// 坐标 + /// + public Point3d Position { get; set; } + /// + /// 是否为多行文本 + /// + public bool IsMText { get; set; } + /// + /// 文本内容,多行文本用\n 进行换行 + /// + public string Text { get; set; } + /// + /// 文本高度 + /// + public double Height { get; set; } + /// + /// 文本宽度 + /// + public double Width { get; set; } + /// + /// 文本对齐方式 0:居左对齐 1:居中对齐 + /// + public double Align { get; set; } + } +} diff --git a/newFront/c#前端/SWS.CAD.Base/SWS.CAD.Base.csproj b/newFront/c#前端/SWS.CAD.Base/SWS.CAD.Base.csproj index ee676d80..9412e79b 100644 --- a/newFront/c#前端/SWS.CAD.Base/SWS.CAD.Base.csproj +++ b/newFront/c#前端/SWS.CAD.Base/SWS.CAD.Base.csproj @@ -52,6 +52,7 @@ + diff --git a/newFront/c#前端/SWS.CAD.sln b/newFront/c#前端/SWS.CAD.sln index 87f32b55..e6768535 100644 --- a/newFront/c#前端/SWS.CAD.sln +++ b/newFront/c#前端/SWS.CAD.sln @@ -27,6 +27,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SWS.WPF", "SWS.WPF\SWS.WPF. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SWS.CAD", "SWS.CAD\SWS.CAD.csproj", "{6BD9B3FC-7D55-4762-AF68-A50183342537}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SWS.Share", "SWS.Share\SWS.Share.csproj", "{87E71797-E60A-4637-BA32-C8B57154ABC3}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -215,6 +217,22 @@ Global {6BD9B3FC-7D55-4762-AF68-A50183342537}.Release|x64.Build.0 = Release|Any CPU {6BD9B3FC-7D55-4762-AF68-A50183342537}.Release|x86.ActiveCfg = Release|Any CPU {6BD9B3FC-7D55-4762-AF68-A50183342537}.Release|x86.Build.0 = Release|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Debug|ARM64.Build.0 = Debug|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Debug|x64.ActiveCfg = Debug|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Debug|x64.Build.0 = Debug|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Debug|x86.ActiveCfg = Debug|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Debug|x86.Build.0 = Debug|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Release|Any CPU.Build.0 = Release|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Release|ARM64.ActiveCfg = Release|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Release|ARM64.Build.0 = Release|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Release|x64.ActiveCfg = Release|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Release|x64.Build.0 = Release|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Release|x86.ActiveCfg = Release|Any CPU + {87E71797-E60A-4637-BA32-C8B57154ABC3}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/newFront/c#前端/SWS.CAD/GlobalObje.cs b/newFront/c#前端/SWS.CAD/GlobalObje.cs index d235b2e6..f45a552e 100644 --- a/newFront/c#前端/SWS.CAD/GlobalObje.cs +++ b/newFront/c#前端/SWS.CAD/GlobalObje.cs @@ -1,5 +1,6 @@ using IniParser; using Prism.Ioc; +using SWS.Commons; using SWS.Model; using SWS.Service; using System; @@ -59,7 +60,7 @@ namespace SWS.CAD if (_dwgType == null) { - var serv = GlobalObje.container.Resolve(); + var serv = GlobalObject.container.Resolve(); var res = Task.Run(() => serv.GetDetails(DBConst.Be_DrawingType.ToString())); var res2 = res.Result; return res2; @@ -83,7 +84,7 @@ namespace SWS.CAD if (_dwgMaterialRange == null) { - var serv = GlobalObje.container.Resolve(); + var serv = GlobalObject.container.Resolve(); var res = Task.Run(() => serv.GetDetails(DBConst.Be_MaterialRange.ToString())); var res2 = res.Result; return res2; @@ -107,7 +108,7 @@ namespace SWS.CAD if (_dwgMaterialCensus == null) { - var serv = GlobalObje.container.Resolve(); + var serv = GlobalObject.container.Resolve(); var res = Task.Run(() => serv.GetDetails(DBConst.Be_MaterialCensus.ToString())); var res2 = res.Result; return res2; @@ -131,7 +132,7 @@ namespace SWS.CAD if (_dwgStage == null) { - var serv = GlobalObje.container.Resolve(); + var serv = GlobalObject.container.Resolve(); var res = Task.Run(() => serv.GetDetails(DBConst.Be_DrawingStage.ToString())); var res2 = res.Result; return res2; diff --git a/newFront/c#前端/SWS.CAD/Helper/TreeHelper.cs b/newFront/c#前端/SWS.CAD/Helper/TreeHelper.cs index 1682d52b..b0b6bf2b 100644 --- a/newFront/c#前端/SWS.CAD/Helper/TreeHelper.cs +++ b/newFront/c#前端/SWS.CAD/Helper/TreeHelper.cs @@ -58,27 +58,27 @@ namespace SWS.CAD.Helper } #endregion - #region 获取树节点所有图纸名 + #region 获取树节点所有图纸名 - /// - /// 获取树节点所有图纸名 - /// + /// + /// 获取树节点所有图纸名 + /// public static void GetTreeText(Model.TreeModel node) { // 如果根节点为空,则返回null - if (node == null) return ; + if (node == null) return; //没有子节点就返回null - if (node.ChildNodes == null) return ; + if (node.ChildNodes == null) return; // 否则,递归地在子节点中查找 foreach (var child in node.ChildNodes) { GetTreeText(child); - + } if (node.Text.ToLower().EndsWith(".dwg") && !GlobalObject.AllDwgName.Contains(node.Text)) { GlobalObject.AllDwgName.Add(node.Text); } // 如果在当前树中没有找到,返回null - return ; + return; } #endregion } diff --git a/newFront/c#前端/SWS.CAD/Views/CheckInApprove.xaml b/newFront/c#前端/SWS.CAD/Views/CheckInApprove.xaml index c11334a2..70666235 100644 --- a/newFront/c#前端/SWS.CAD/Views/CheckInApprove.xaml +++ b/newFront/c#前端/SWS.CAD/Views/CheckInApprove.xaml @@ -11,8 +11,8 @@ AllowsTransparency="True" Background="White" Loaded="Window_Loaded" - ResizeMode="NoResize" - WindowStartupLocation="CenterScreen" + ResizeMode="NoResize" + WindowStartupLocation="CenterScreen" WindowStyle="None"> @@ -24,67 +24,115 @@ - + - + - - - - + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -95,22 +143,23 @@ + Background="{StaticResource ColorPrimary}"> - + + Margin="5" + Command="{Binding OKCommand}" + CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=Window}}" + Content="批量审核" + Style="{StaticResource sysBtn}" + Visibility="{Binding IsShowApprove}" /> - + diff --git a/newFront/c#前端/SWS.CAD/Views/LeftPanel.xaml b/newFront/c#前端/SWS.CAD/Views/LeftPanel.xaml index dad986c5..bec49049 100644 --- a/newFront/c#前端/SWS.CAD/Views/LeftPanel.xaml +++ b/newFront/c#前端/SWS.CAD/Views/LeftPanel.xaml @@ -2,16 +2,17 @@ x:Class="SWS.CAD.Views.LeftPanel" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:converter="clr-namespace:SWS.CAD.Converter" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:i="http://schemas.microsoft.com/xaml/behaviors" xmlns:local="clr-namespace:SWS.CAD.Views" xmlns:local2="clr-namespace:SWS.Model;assembly=SWS.Model" - xmlns:converter="clr-namespace:SWS.CAD.Converter" - xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" - xmlns:i="http://schemas.microsoft.com/xaml/behaviors" Width="250" + xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" + Width="250" Loaded="UserControl_Loaded"> - - + + @@ -48,32 +49,35 @@ - + - + - - + + - + - - - - - - + + + + + + @@ -122,7 +126,7 @@ - + @@ -136,49 +140,79 @@ - - - - - - - + Grid.Column="1" + Width="auto" + Margin="1,0,0,0" + HorizontalAlignment="Stretch" + Style="{StaticResource sysTextBox}" + Tag="工程文件" + TextChanged="TextBox_TextChanged" /> + + + + + + + - + + x:Name="radTreeView" + Grid.Row="2" + Grid.ColumnSpan="2" + Margin="-5,0,0,0" + telerik:StyleManager.Theme="Green" + FontSize="11" + ItemsSource="{Binding Drawings}" + PreviewMouseRightButtonDown="RadTreeView_PreviewMouseRightButtonDown" + SelectedItem="{Binding selectedNode, Mode=TwoWay}"> + Height="16" + Orientation="Horizontal" + ToolTip="{Binding ToolTipText}"> - + + VerticalAlignment="Center" + Foreground="{Binding FontColor}" + Text="{Binding Text}" /> - + @@ -190,28 +224,32 @@ + x:Name="treeDwgHistory" + Margin="-5,0,0,0" + telerik:StyleManager.Theme="Green" + Background="Transparent" + FontSize="11" + ItemsSource="{Binding historyDrawings}" + PreviewMouseRightButtonDown="treeDwgHistory_PreviewMouseRightButtonDown" + SelectedItem="{Binding selectedHistoryDwg, Mode=TwoWay}"> + Height="16" + Orientation="Horizontal" + ToolTip="{Binding ToolTipText}"> - + - + @@ -231,7 +269,7 @@ - + @@ -242,10 +280,17 @@ -