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