From 5f2fed99394f95c133d330349ddf367b669951e9 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期二, 23 七月 2024 15:52:33 +0800 Subject: [PATCH] 项目导入调试修改 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/04-GeneralProject/ImportXhsProjectHelper.cs | 221 +++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 166 insertions(+), 55 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/04-GeneralProject/ImportXhsProjectHelper.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/04-GeneralProject/ImportXhsProjectHelper.cs index 2fd887d..034175e 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/04-GeneralProject/ImportXhsProjectHelper.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/04-GeneralProject/ImportXhsProjectHelper.cs @@ -1,11 +1,13 @@ -锘縩amespace HStation.WinFrmUI +锘縰sing DevExpress.XtraScheduler.VCalendar; + +namespace HStation.WinFrmUI { /// <summary> /// /// </summary> public class ImportXhsProjectHelper { - private const string _tempFolder = "project-import-temp"; + private const string _tempFolder = "ImportProjectTemp";//瀵煎叆椤圭洰涓存椂鏂囦欢澶� /// <summary> @@ -17,50 +19,85 @@ /// <returns></returns> public static async Task<bool> Import(ImportXhsProjectViewModel vm, Action<string> feedBackMsg, Action<int, int> feedBackProgress) { - #region 鏂囦欢瑙f瀽 - var tempFolderPath = Path.Combine(Yw.Service.ConfigHelper.DataPath, HStation.Settings.XhsParasHelper.Xhs.DataFolder, _tempFolder); - var bol = Yw.FileFolderZipHelper.UnZip(vm.ZipFile, tempFolderPath, null); - if (!bol) - { - feedBackMsg?.Invoke("妯″瀷鏂囦欢瑙f瀽澶辫触"); - return bol; - } + #region 涓存椂鏂囦欢澶勭悊 - var tempDirectoryInfo = new DirectoryInfo(tempFolderPath); - var allFileInfoList = tempDirectoryInfo.GetFiles(); - if (allFileInfoList == null || allFileInfoList.Count() < 1) + var tempFolder = Path.Combine(Yw.Service.ConfigHelper.DataPath, HStation.Settings.XhsParasHelper.Xhs.DataFolder, _tempFolder); + //濡傛灉瀛樺湪涓存椂鏂囦欢澶� + if (Directory.Exists(tempFolder)) { - feedBackMsg?.Invoke("妯″瀷鏂囦欢瑙f瀽澶辫触"); - return bol; + //鍒犻櫎涓存椂鏂囦欢澶瑰強瀛愮洰褰曚笌鏂囦欢 + Directory.Delete(tempFolder, true); } + //鍒涘缓涓存椂鏂囦欢澶� + Directory.CreateDirectory(tempFolder); #endregion - #region 姘村姏妯″瀷 + #region 鍘嬬缉鏂囦欢瑙f瀽 + feedBackMsg?.Invoke("姝e湪瑙f瀽妯″瀷鏂囦欢..."); + var bol = Yw.FileFolderZipHelper.UnZip(vm.ZipFile, tempFolder, null); + if (!bol) + { + feedBackMsg?.Invoke("妯″瀷鏂囦欢瑙f瀽澶辫触锛侊紒锛�"); + return bol; + } + + var tempFolderInfo = new DirectoryInfo(tempFolder); + var allFileInfoList = tempFolderInfo.GetFiles(); + if (allFileInfoList == null || allFileInfoList.Count() < 1) + { + feedBackMsg?.Invoke("妯″瀷鏂囦欢瑙f瀽澶辫触锛侊紒锛�"); + return bol; + } + + feedBackMsg?.Invoke("妯″瀷鏂囦欢瑙f瀽鎴愬姛銆傘�傘��"); + + feedBackProgress?.Invoke(100, 10); + + #endregion + + #region 姘村姏缁撴瀯鏂囦欢 + + feedBackMsg?.Invoke("姝e湪瑙f瀽姘村姏缁撴瀯鏂囦欢..."); var jsonFileInfo = allFileInfoList.Where(x => x.Extension == ".json").FirstOrDefault(); if (jsonFileInfo == null) { - feedBackMsg?.Invoke("姘村姏缁撴瀯鏂囦欢瑙f瀽澶辫触"); + feedBackMsg?.Invoke("姘村姏缁撴瀯鏂囦欢瑙f瀽澶辫触锛侊紒锛�"); return false; } var jsonText = File.ReadAllText(jsonFileInfo.FullName); var revitModel = JsonHelper.Json2Object<HStation.Model.RevitModel>(jsonText); - var hydroId = HStation.Hydro.ParseHelper.FromRevit(revitModel); - if (hydroId < 1) + var hydroInfo = HStation.Hydro.ParseHelper.FromRevit(revitModel); + if (hydroInfo == null) { - feedBackMsg?.Invoke("姘村姏缁撴瀯鏂囦欢瑙f瀽澶辫触"); + feedBackMsg?.Invoke("姘村姏缁撴瀯鏂囦欢瑙f瀽澶辫触锛侊紒锛�"); return false; } + var bllHydro = new Lazy<Yw.BLL.HydroModelInfo>(() => new Yw.BLL.HydroModelInfo()); + var hydroId = await bllHydro.Value.Save(hydroInfo); + if (hydroId < 1) + { + feedBackMsg?.Invoke("姘村姏缁撴瀯淇濆瓨澶辫触锛侊紒锛�"); + return false; + } + + feedBackMsg?.Invoke("姘村姏缁撴瀯鏂囦欢瑙f瀽鎴愬姛銆傘�傘��"); + + feedBackProgress?.Invoke(100, 20); + + vm.HydroID = hydroId; #endregion - #region 鍒涘缓椤圭洰 + #region 鍒涘缓淇濆瓨椤圭洰 - var bllXhsProject = new BLL.XhsProjectExtensions(); + feedBackMsg?.Invoke("姝e湪鍒涘缓椤圭洰..."); + + var bllXhsProject = new Lazy<BLL.XhsProjectExtensions>(() => new BLL.XhsProjectExtensions()); var project = new AddXhsProjectExtensionsInput(); project.NO = vm.NO; @@ -78,22 +115,58 @@ } }; - var projectId = await bllXhsProject.Insert(project); + var projectId = await bllXhsProject.Value.Insert(project); if (projectId < 1) { - feedBackMsg?.Invoke("椤圭洰鍒涘缓澶辫触"); + feedBackMsg?.Invoke("椤圭洰鍒涘缓澶辫触锛侊紒锛�"); return false; } - #endregion + feedBackMsg?.Invoke("椤圭洰鍒涘缓鎴愬姛銆傘�傘��"); - #region 鍏宠仈妯″瀷 + vm.ProjectID = projectId; - + feedBackProgress?.Invoke(100, 25); #endregion - #region 鍦板浘浣嶇疆 + #region 鍏宠仈姘村姏妯″瀷 + + var bllXhsProjectSite = new Lazy<BLL.XhsProjectSite>(() => new BLL.XhsProjectSite()); + var allProjectSiteList = await bllXhsProjectSite.Value.GetByProjectID(projectId); + var projectSiteId = allProjectSiteList.First().ID; + + vm.ProjectSiteID = projectSiteId; + + feedBackMsg?.Invoke("姝e湪鍏宠仈姘村姏妯″瀷..."); + + var hydroRelation = new Yw.Dto.AddHydroModelRelationInput(); + hydroRelation.ObjectType = HStation.Xhs.DataType.XhsProjectSite; + hydroRelation.ObjectID = projectSiteId; + hydroRelation.ModelID = hydroId; + hydroRelation.Purpose = Yw.Hydro.Purpose.Simulation; + hydroRelation.Content = null; + hydroRelation.Description = null; + + var bllHydroRelation = new Lazy<Yw.BLL.HydroModelRelation>(() => new Yw.BLL.HydroModelRelation()); + var hydroRelationId = await bllHydroRelation.Value.Insert(hydroRelation); + if (hydroRelationId < 1) + { + feedBackMsg?.Invoke("鍏宠仈姘村姏妯″瀷澶辫触锛侊紒锛�"); + return false; + } + + feedBackMsg?.Invoke("鍏宠仈姘村姏鎴愬姛銆傘�傘��"); + + vm.HydroRelationID = hydroRelationId; + + feedBackProgress?.Invoke(100, 30); + + #endregion + + #region 璁剧疆鍦板浘浣嶇疆 + + feedBackMsg?.Invoke("姝e湪璁剧疆鍦板浘浣嶇疆..."); if (vm.Location != null) { @@ -109,37 +182,54 @@ var mapInfoId = await new Yw.BLL.MapInfo().Insert(mapInfo); if (mapInfoId < 1) { - feedBackMsg?.Invoke("鍦板浘瀹氫綅淇℃伅淇濆瓨澶辫触"); + feedBackMsg?.Invoke("璁剧疆鍦板浘浣嶇疆澶辫触锛侊紒锛�"); } else { - feedBackMsg?.Invoke("淇濆瓨鍦板浘瀹氫綅淇℃伅鎴愬姛"); + feedBackMsg?.Invoke("璁剧疆鍦板浘浣嶇疆鎴愬姛銆傘�傘��"); } } + else + { + feedBackMsg?.Invoke("璁剧疆鍦板浘浣嶇疆澶辫触锛侊紒锛�"); + } + + feedBackMsg?.Invoke("璁剧疆鍦板浘浣嶇疆瀹屾垚銆傘�傘��"); + + feedBackProgress?.Invoke(100, 40); #endregion - #region 涓婁紶妯″瀷 + #region 涓婁紶Revit妯″瀷 + feedBackMsg?.Invoke("姝e湪瑙f瀽Revit妯″瀷鏂囦欢..."); var rvtFileInfo = allFileInfoList.Where(x => x.Extension == ".rvt").FirstOrDefault(); if (rvtFileInfo == null) { - feedBackMsg?.Invoke("Revit妯″瀷鏂囦欢瑙f瀽澶辫触"); - return false; + feedBackMsg?.Invoke("Revit妯″瀷鏂囦欢瑙f瀽澶辫触锛侊紒锛�"); } - var bimfaceId = await Yw.WinFrmUI.BimfaceHelper.UploadFile(rvtFileInfo.FullName); + //var bimfaceId = await Yw.WinFrmUI.BimfaceHelper.UploadFile(rvtFileInfo.FullName); + var bimfaceId = 10000869537010; if (bimfaceId < 1) { - feedBackMsg?.Invoke("Revit妯″瀷鏂囦欢涓婁紶澶辫触"); - return false; + feedBackMsg?.Invoke("Revit妯″瀷鏂囦欢涓婁紶澶辫触锛侊紒锛�"); + return true; } + feedBackMsg?.Invoke("瑙f瀽Revit妯″瀷鏂囦欢鎴愬姛銆傘�傘��"); + + + feedBackProgress?.Invoke(100, 60); + + vm.BimfaceId = bimfaceId; #endregion - #region 淇濆瓨Bimface + #region 淇濆瓨Bimface鏂囦欢 + + feedBackMsg?.Invoke("姝e湪淇濆瓨Bimface鏂囦欢..."); var bllBimfaceFile = new Yw.BLL.BimfaceFile(); @@ -155,19 +245,23 @@ var bimfaceFileId = await bllBimfaceFile.Insert(bimfaceFile); if (bimfaceFileId < 1) { - feedBackMsg?.Invoke("BIMFACE鏂囦欢淇℃伅淇濆瓨澶辫触"); + feedBackMsg?.Invoke("Bimface鏂囦欢淇濆瓨澶辫触锛侊紒锛�"); + return true; } - else - { - feedBackMsg?.Invoke("BIMFACE鏂囦欢淇℃伅淇濆瓨鎴愬姛"); - } + + feedBackMsg?.Invoke("Bimface鏂囦欢淇濆瓨鎴愬姛銆傘�傘��"); + + feedBackProgress?.Invoke(100, 70); + + vm.BimfaceFileID = bimfaceFileId; #endregion - #region 鍏宠仈Bimface + #region 鍏宠仈Bimface鏂囦欢 + + feedBackMsg?.Invoke("姝e湪鍏宠仈Bimface鏂囦欢..."); var bllBimfaceRelation = new Yw.BLL.BimfaceFileRelation(); - var bimfaceRelation = new Yw.Dto.AddBimfaceFileRelationInput(); bimfaceRelation.ObjectType = HStation.Xhs.DataType.XhsProject; bimfaceRelation.ObjectID = projectId; @@ -178,30 +272,47 @@ var bimfaceRelationId = await bllBimfaceRelation.Insert(bimfaceRelation); if (bimfaceRelationId < 1) { - feedBackMsg?.Invoke("BIMFACE鍏宠仈澶辫触"); + feedBackMsg?.Invoke("Bimface鏂囦欢鍏宠仈澶辫触锛侊紒锛�"); + return true; } - else - { - feedBackMsg?.Invoke("BIMFACE鍏宠仈鎴愬姛"); - } + feedBackMsg?.Invoke("Bimface鏂囦欢鍏宠仈鎴愬姛銆傘�傘��"); + + feedBackProgress?.Invoke(100, 80); + + vm.BimfaceFileRelationID = bimfaceRelationId; #endregion #region 鍙戣捣bimface杞崲 - var bimfaceTranslateStatus = await Yw.WinFrmUI.BimfaceHelper.TranslateRvtFile(bimfaceId); - if (bimfaceTranslateStatus != Yw.BIMFace.eTranslateStatus.Success) - { - await Yw.WinFrmUI.BimfaceHelper.WaitFileTranslateStatusUntilSuccess(bimfaceId, 3000); - } + feedBackMsg?.Invoke("姝e湪杩涜Bimface妯″瀷杞婚噺鍖�..."); + //var bimfaceTranslateStatus = await Yw.WinFrmUI.BimfaceHelper.TranslateRvtFile(bimfaceId); + //if (bimfaceTranslateStatus != Yw.BIMFace.eTranslateStatus.Success) + //{ + // await Yw.WinFrmUI.BimfaceHelper.WaitFileTranslateStatusUntilSuccess(bimfaceId, 3000); + //} + await Yw.WinFrmUI.BimfaceHelper.WaitFileTranslateStatusUntilSuccess(bimfaceId, 3000); + feedBackMsg?.Invoke("Bimface妯″瀷杞婚噺鍖栧畬鎴愩�傘�傘��"); + + feedBackProgress?.Invoke(100, 90); #endregion #region 鏇存柊鐘舵�� + feedBackMsg?.Invoke("姝e湪鏇存柊Bimface鏂囦欢鐘舵��..."); bol = await bllBimfaceFile.UpdateFileStatus(bimfaceFileId, (int)Yw.Bimface.eFileStatus.ConvertSucceed); - feedBackMsg?.Invoke("鏂囦欢鐘舵�佹洿鏂�"); + if (bol) + { + feedBackMsg?.Invoke("姝e湪Bimface鏂囦欢鐘舵�佹洿鏂版垚鍔熴�傘�傘��"); + } + else + { + feedBackMsg?.Invoke("姝e湪Bimface鏂囦欢鐘舵�佹洿鏂板け璐ワ紒锛侊紒"); + } + + feedBackProgress?.Invoke(100, 100); #endregion -- Gitblit v1.9.3