From 0832ac460e994d1f852f14e91b09b380ebf66a52 Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期二, 30 七月 2024 14:04:12 +0800
Subject: [PATCH] 1

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/04-GeneralProject/ImportXhsProjectHelper.cs |  220 ++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 139 insertions(+), 81 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 c6d11f5..700986c 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,4 +1,6 @@
-锘縰sing DevExpress.XtraScheduler.VCalendar;
+锘縰sing DevExpress.XtraEditors;
+using static DevExpress.XtraEditors.XtraInputBox;
+using static System.Windows.Forms.VisualStyles.VisualStyleElement.Window;
 
 namespace HStation.WinFrmUI
 {
@@ -20,36 +22,40 @@
         public static async Task<bool> Import(ImportXhsProjectViewModel vm, Action<string> feedBackMsg, Action<int, int> feedBackProgress)
         {
 
-            #region 涓存椂鏂囦欢澶勭悊
+            #region 绗竴姝� 涓存椂鏂囦欢澶勭悊锛堣繘搴�5%锛�
 
+            feedBackMsg?.Invoke("寮�濮嬪鍏ラ」鐩�...");
+
+            //涓存椂鏂囦欢澶硅矾寰�
             var tempFolder = Path.Combine(Yw.Service.ConfigHelper.DataPath, HStation.Settings.XhsParasHelper.Xhs.DataFolder, _tempFolder);
-            //濡傛灉瀛樺湪涓存椂鏂囦欢澶�
+            //濡傛灉瀛樺湪涓存椂鏂囦欢澶癸紝鍒欏垹闄や复鏃舵枃浠跺す鍙婂瓙鐩綍涓庢枃浠�
             if (Directory.Exists(tempFolder))
             {
-                //鍒犻櫎涓存椂鏂囦欢澶瑰強瀛愮洰褰曚笌鏂囦欢
                 Directory.Delete(tempFolder, true);
             }
             //鍒涘缓涓存椂鏂囦欢澶�
             Directory.CreateDirectory(tempFolder);
 
+            feedBackProgress?.Invoke(100, 5);
+
             #endregion
 
-            #region 鍘嬬缉鏂囦欢瑙f瀽
+            #region 绗簩姝� 鍘嬬缉鏂囦欢瑙f瀽 锛堣繘搴�10%锛�
 
             feedBackMsg?.Invoke("姝e湪瑙f瀽妯″瀷鏂囦欢...");
             var bol = Yw.FileFolderZipHelper.UnZip(vm.ZipFile, tempFolder, null);
             if (!bol)
             {
                 feedBackMsg?.Invoke("妯″瀷鏂囦欢瑙f瀽澶辫触锛侊紒锛�");
-                return bol;
+                return false;
             }
 
             var tempFolderInfo = new DirectoryInfo(tempFolder);
             var allFileInfoList = tempFolderInfo.GetFiles();
             if (allFileInfoList == null || allFileInfoList.Count() < 1)
             {
-                feedBackMsg?.Invoke("妯″瀷鏂囦欢瑙f瀽澶辫触锛侊紒锛�");
-                return bol;
+                feedBackMsg?.Invoke("妯″瀷鏂囦欢鏍煎紡閿欒锛侊紒锛�");
+                return false;
             }
 
             feedBackMsg?.Invoke("妯″瀷鏂囦欢瑙f瀽鎴愬姛銆傘�傘��");
@@ -58,46 +64,52 @@
 
             #endregion
 
-            #region 姘村姏缁撴瀯鏂囦欢
+            #region 绗笁姝� 瑙f瀽姘村姏缁撴瀯鏂囦欢 锛堣繘搴�15%锛�
 
             feedBackMsg?.Invoke("姝e湪瑙f瀽姘村姏缁撴瀯鏂囦欢...");
             var jsonFileInfo = allFileInfoList.Where(x => x.Extension == ".json").FirstOrDefault();
             if (jsonFileInfo == null)
             {
-                feedBackMsg?.Invoke("姘村姏缁撴瀯鏂囦欢瑙f瀽澶辫触锛侊紒锛�");
+                feedBackMsg?.Invoke("姘村姏缁撴瀯鏂囦欢鏍煎紡閿欒锛侊紒锛�");
                 return false;
             }
 
             var jsonText = File.ReadAllText(jsonFileInfo.FullName);
             var revitModel = JsonHelper.Json2Object<HStation.Model.RevitModel>(jsonText);
-            var hydroInfo = HStation.Hydro.ParseHelper.FromRevit(revitModel);
-            if (hydroInfo == null)
+            if (revitModel == null)
             {
-                feedBackMsg?.Invoke("姘村姏缁撴瀯鏂囦欢瑙f瀽澶辫触锛侊紒锛�");
+                feedBackMsg?.Invoke("姘村姏缁撴瀯鏂囦欢鏍煎紡閿欒锛侊紒锛�");
                 return false;
             }
 
-            var bllHydro = new Lazy<Yw.BLL.HydroModelInfo>(() => new Yw.BLL.HydroModelInfo());
-            var hydroId = await bllHydro.Value.Save(hydroInfo);
+            var hydroInfo = HStation.Hydro.ParseHelper.FromRevit(revitModel, out string msg);
+            if (hydroInfo == null)
+            {
+                feedBackMsg?.Invoke($"姘村姏缁撴瀯鏂囦欢瑙f瀽澶辫触锛寋msg}锛侊紒锛�");
+                return false;
+            }
+
+            var bllHydroInfo = new Yw.BLL.HydroModelInfo();
+            var hydroId = await bllHydroInfo.Save(hydroInfo);
             if (hydroId < 1)
             {
-                feedBackMsg?.Invoke("姘村姏缁撴瀯淇濆瓨澶辫触锛侊紒锛�");
+                feedBackMsg?.Invoke("姘村姏缁撴瀯淇℃伅淇濆瓨澶辫触锛侊紒锛�");
                 return false;
             }
 
             feedBackMsg?.Invoke("姘村姏缁撴瀯鏂囦欢瑙f瀽鎴愬姛銆傘�傘��");
 
-            feedBackProgress?.Invoke(100, 20);
+            feedBackProgress?.Invoke(100, 15);
 
             vm.HydroID = hydroId;
 
             #endregion
 
-            #region 鍒涘缓淇濆瓨椤圭洰
+            #region 绗洓姝� 鍒涘缓椤圭洰锛堣繘搴� 20%锛�
 
             feedBackMsg?.Invoke("姝e湪鍒涘缓椤圭洰...");
 
-            var bllXhsProject = new Lazy<BLL.XhsProjectExtensions>(() => new BLL.XhsProjectExtensions());
+            var bllXhsProjectExtensions = new Lazy<BLL.XhsProjectExtensions>(() => new BLL.XhsProjectExtensions());
 
             var project = new AddXhsProjectExtensionsInput();
             project.NO = vm.NO;
@@ -115,7 +127,7 @@
                 }
             };
 
-            var projectId = await bllXhsProject.Value.Insert(project);
+            var projectId = await bllXhsProjectExtensions.Value.Insert(project);
             if (projectId < 1)
             {
                 feedBackMsg?.Invoke("椤圭洰鍒涘缓澶辫触锛侊紒锛�");
@@ -126,19 +138,24 @@
 
             vm.ProjectID = projectId;
 
-            feedBackProgress?.Invoke(100, 25);
+            feedBackProgress?.Invoke(100, 20);
 
             #endregion
 
-            #region 鍏宠仈姘村姏妯″瀷
+            #region 绗簲姝� 鍏宠仈姘村姏缁撴瀯妯″瀷锛堣繘搴� 25%锛�
 
-            var bllXhsProjectSite = new Lazy<BLL.XhsProjectSite>(() => new BLL.XhsProjectSite());
-            var allProjectSiteList = await bllXhsProjectSite.Value.GetByProjectID(projectId);
-            var projectSiteId = allProjectSiteList.First().ID;
+            var bllXhsProjectSite = new BLL.XhsProjectSiteStd();
+            var projectSite = await bllXhsProjectSite.GetDefaultByProjectID(projectId);
+            if (projectSite == null)
+            {
+                feedBackMsg?.Invoke("椤圭洰绔欎俊鎭敊璇�...");
+                return false;
+            }
 
-            vm.ProjectSiteID = projectSiteId;
+            var projectSiteId = projectSite.ID;
+            vm.ProjectSiteID = projectSite.ID;
 
-            feedBackMsg?.Invoke("姝e湪鍏宠仈姘村姏妯″瀷...");
+            feedBackMsg?.Invoke("姝e湪鍏宠仈姘村姏缁撴瀯妯″瀷...");
 
             var hydroRelation = new Yw.Dto.AddHydroModelRelationInput();
             hydroRelation.ObjectType = HStation.Xhs.DataType.XhsProjectSite;
@@ -148,23 +165,23 @@
             hydroRelation.Content = null;
             hydroRelation.Description = null;
 
-            var bllHydroRelation = new Lazy<Yw.BLL.HydroModelRelation>(() => new Yw.BLL.HydroModelRelation());
-            var hydroRelationId = await bllHydroRelation.Value.Insert(hydroRelation);
+            var bllHydroRelation = new Yw.BLL.HydroModelRelation();
+            var hydroRelationId = await bllHydroRelation.Insert(hydroRelation);
             if (hydroRelationId < 1)
             {
-                feedBackMsg?.Invoke("鍏宠仈姘村姏妯″瀷澶辫触锛侊紒锛�");
+                feedBackMsg?.Invoke("鍏宠仈姘村姏缁撴瀯妯″瀷澶辫触锛侊紒锛�");
                 return false;
             }
 
-            feedBackMsg?.Invoke("鍏宠仈姘村姏鎴愬姛銆傘�傘��");
-
             vm.HydroRelationID = hydroRelationId;
 
-            feedBackProgress?.Invoke(100, 30);
+            feedBackMsg?.Invoke("鍏宠仈姘村姏缁撴瀯妯″瀷鎴愬姛銆傘�傘��");
+
+            feedBackProgress?.Invoke(100, 25);
 
             #endregion
 
-            #region 璁剧疆鍦板浘浣嶇疆
+            #region 绗叚姝� 璁剧疆鍦板浘浣嶇疆锛堣繘搴� 30%锛�
 
             feedBackMsg?.Invoke("姝e湪璁剧疆鍦板浘浣嶇疆...");
 
@@ -186,49 +203,51 @@
                 }
                 else
                 {
+                    vm.MapInfoID = mapInfoId;
                     feedBackMsg?.Invoke("璁剧疆鍦板浘浣嶇疆鎴愬姛銆傘�傘��");
                 }
             }
             else
             {
-                feedBackMsg?.Invoke("璁剧疆鍦板浘浣嶇疆澶辫触锛侊紒锛�");
+                feedBackMsg?.Invoke("鏈缃湴鍥句綅缃俊鎭紒锛侊紒");
             }
 
-            feedBackMsg?.Invoke("璁剧疆鍦板浘浣嶇疆瀹屾垚銆傘�傘��");
 
-            feedBackProgress?.Invoke(100, 40);
+            feedBackProgress?.Invoke(100, 30);
 
             #endregion
 
-            #region 涓婁紶Revit妯″瀷
+            #region 绗竷姝� 涓婁紶Revit妯″瀷鏂囦欢锛堣繘搴� 45%锛�
 
             feedBackMsg?.Invoke("姝e湪瑙f瀽Revit妯″瀷鏂囦欢...");
             var rvtFileInfo = allFileInfoList.Where(x => x.Extension == ".rvt").FirstOrDefault();
             if (rvtFileInfo == null)
             {
                 feedBackMsg?.Invoke("Revit妯″瀷鏂囦欢瑙f瀽澶辫触锛侊紒锛�");
-            }
-
-            var bimfaceId = await Yw.WinFrmUI.BimfaceHelper.UploadFile(rvtFileInfo.FullName);
-            if (bimfaceId < 1)
-            {
-                feedBackMsg?.Invoke("Revit妯″瀷鏂囦欢涓婁紶澶辫触锛侊紒锛�");
+                feedBackMsg?.Invoke("椤圭洰瀵煎叆缁撴潫銆傘�傘��");
                 return true;
             }
 
-            feedBackMsg?.Invoke("瑙f瀽Revit妯″瀷鏂囦欢鎴愬姛銆傘�傘��");
-
-            feedBackProgress?.Invoke(100, 60);
+            //var bimfaceId = await Yw.WinFrmUI.BimfaceHelper.UploadFile(rvtFileInfo.FullName);//涓婁紶
+            var bimfaceId = 10000869537010; //娴嬭瘯鐢ㄤ緥
+            if (bimfaceId < 1)
+            {
+                feedBackMsg?.Invoke("Revit妯″瀷鏂囦欢涓婁紶澶辫触锛侊紒锛�");
+                feedBackMsg?.Invoke("椤圭洰瀵煎叆缁撴潫銆傘�傘��");
+                return true;
+            }
 
             vm.BimfaceId = bimfaceId;
 
+            feedBackMsg?.Invoke("瑙f瀽Revit妯″瀷鏂囦欢鎴愬姛銆傘�傘��");
+
+            feedBackProgress?.Invoke(100, 45);
+
             #endregion
 
-            #region 淇濆瓨Bimface鏂囦欢
+            #region 绗叓姝� 淇濆瓨Bimface鏂囦欢 锛堣繘搴� 50%锛�
 
             feedBackMsg?.Invoke("姝e湪淇濆瓨Bimface鏂囦欢...");
-
-            var bllBimfaceFile = new Yw.BLL.BimfaceFile();
 
             var bimfaceFile = new Yw.Dto.AddBimfaceFileInput();
             bimfaceFile.BimfaceId = bimfaceId.ToString();
@@ -239,78 +258,117 @@
             bimfaceFile.FileSuffix = rvtFileInfo.Extension;
             bimfaceFile.FileSize = string.Format("{0}MB", System.Math.Ceiling(rvtFileInfo.Length / 1024.0 / 1024.0));
 
+            var bllBimfaceFile = new Yw.BLL.BimfaceFile();
             var bimfaceFileId = await bllBimfaceFile.Insert(bimfaceFile);
             if (bimfaceFileId < 1)
             {
                 feedBackMsg?.Invoke("Bimface鏂囦欢淇濆瓨澶辫触锛侊紒锛�");
+                feedBackMsg?.Invoke("椤圭洰瀵煎叆缁撴潫銆傘�傘��");
                 return true;
             }
+            vm.BimfaceFileID = bimfaceFileId;
 
             feedBackMsg?.Invoke("Bimface鏂囦欢淇濆瓨鎴愬姛銆傘�傘��");
 
-            feedBackProgress?.Invoke(100, 70);
-
-            vm.BimfaceFileID = bimfaceFileId;
+            feedBackProgress?.Invoke(100, 50);
 
             #endregion
 
-            #region 鍏宠仈Bimface鏂囦欢
+            #region 绗節姝� 鍏宠仈Bimface鏂囦欢锛堣繘搴� 55%锛�
 
             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;
+            bimfaceRelation.ObjectType = HStation.Xhs.DataType.XhsProjectSite;
+            bimfaceRelation.ObjectID = projectSiteId;
             bimfaceRelation.BimfaceFileID = bimfaceFileId;
-            bimfaceRelation.Purpose = HStation.Xhs.Purpose.Simulation;
+            bimfaceRelation.Purpose = Yw.Bimface.Purpose.Simulation;
             bimfaceRelation.Description = vm.Description;
 
+            var bllBimfaceRelation = new Yw.BLL.BimfaceFileRelation();
             var bimfaceRelationId = await bllBimfaceRelation.Insert(bimfaceRelation);
             if (bimfaceRelationId < 1)
             {
                 feedBackMsg?.Invoke("Bimface鏂囦欢鍏宠仈澶辫触锛侊紒锛�");
+                feedBackMsg?.Invoke("椤圭洰瀵煎叆缁撴潫銆傘�傘��");
                 return true;
             }
-            feedBackMsg?.Invoke("Bimface鏂囦欢鍏宠仈鎴愬姛銆傘�傘��");
-
-            feedBackProgress?.Invoke(100, 80);
-
             vm.BimfaceFileRelationID = bimfaceRelationId;
+            feedBackMsg?.Invoke("Bimface鏂囦欢鍏宠仈鎴愬姛銆傘�傘��");
+            feedBackProgress?.Invoke(100, 55);
+
             #endregion
 
-            #region 鍙戣捣bimface杞崲
+            #region 绗節姝� 鍙戣捣bimface杞崲锛堣繘搴� 80%锛�
 
             feedBackMsg?.Invoke("姝e湪杩涜Bimface妯″瀷杞婚噺鍖�...");
-            var bimfaceTranslateStatus = await Yw.WinFrmUI.BimfaceHelper.TranslateRvtFile(bimfaceId);
+            // var bimfaceTranslateStatus = await Yw.WinFrmUI.BimfaceHelper.TranslateRvtFile(bimfaceId);//鍙戣捣杞崲
+            var bimfaceTranslateStatus = Yw.BIMFace.eTranslateStatus.Processing;//娴嬭瘯浠g爜
+            feedBackProgress?.Invoke(100, 60);
             if (bimfaceTranslateStatus != Yw.BIMFace.eTranslateStatus.Success)
             {
-                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);
-
-            if (bol)
-            {
-                feedBackMsg?.Invoke("姝e湪Bimface鏂囦欢鐘舵�佹洿鏂版垚鍔熴�傘�傘��");
+                var dlgResult = XtraMessageBox.Show("Bimface妯″瀷杞婚噺鍖栭渶瑕佷竴瀹氱殑鏃堕棿锛屾槸鍚︾户缁瓑寰咃紵", "璇㈤棶", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
+                if (dlgResult == DialogResult.Yes)
+                {
+                    await Yw.WinFrmUI.BimfaceHelper.WaitFileTranslateStatusUntilSuccess(bimfaceId, 3000);
+                    vm.BimfaceConverted = true;
+                    feedBackMsg?.Invoke("Bimface妯″瀷杞婚噺鍖栧畬鎴愩�傘�傘��");
+                }
+                else
+                {
+                    feedBackMsg?.Invoke("璺宠繃Bimface妯″瀷杞婚噺鍖栫瓑寰呫�傘�傘��");
+                }
             }
             else
             {
-                feedBackMsg?.Invoke("姝e湪Bimface鏂囦欢鐘舵�佹洿鏂板け璐ワ紒锛侊紒");
+                vm.BimfaceConverted = true;
+                feedBackMsg?.Invoke("Bimface妯″瀷杞婚噺鍖栧畬鎴愩�傘�傘��");
             }
 
-            feedBackProgress?.Invoke(100, 100);
+            feedBackProgress?.Invoke(100, 80);
 
             #endregion
 
+            #region 绗崄姝� 鏇存柊Bimface鏂囦欢鐘舵�侊紙杩涘害 90%锛�
+
+            feedBackMsg?.Invoke("姝e湪鏇存柊Bimface鏂囦欢鐘舵��...");
+            bol = await bllBimfaceFile.UpdateFileStatus(bimfaceFileId, (int)Yw.Bimface.eFileStatus.ConvertSucceed);
+            if (bol)
+            {
+                feedBackMsg?.Invoke("Bimface鏂囦欢鐘舵�佹洿鏂版垚鍔熴�傘�傘��");
+            }
+            else
+            {
+                feedBackMsg?.Invoke("Bimface鏂囦欢鐘舵�佹洿鏂板け璐ワ紒锛侊紒");
+                feedBackMsg?.Invoke("椤圭洰瀵煎叆缁撴潫銆傘�傘��");
+                return true;
+            }
+
+            feedBackProgress?.Invoke(100, 90);
+
+            #endregion
+
+            #region 绗崄涓�姝� 椤圭洰鍙戝竷锛堣繘搴� 100%锛�
+
+            feedBackMsg?.Invoke("姝e湪鍙戝竷椤圭洰...");
+            var bllXhsProject = new BLL.XhsProject();
+            bol = await bllXhsProject.Publish(projectId);
+            if (!bol)
+            {
+                feedBackMsg?.Invoke("椤圭洰鍙戝竷澶辫触...");
+            }
+            else
+            {
+                vm.IsPublished = true;
+                feedBackMsg?.Invoke("椤圭洰鍙戝竷鎴愬姛...");
+            }
+
+            feedBackProgress?.Invoke(100, 100);
+            feedBackMsg?.Invoke("椤圭洰瀵煎叆缁撴潫銆傘�傘��");
             return true;
+            #endregion
+
+
 
         }
 

--
Gitblit v1.9.3