duheng
2024-08-21 6c88a90d2330a27c0052a22538f6ebd6200faae7
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/00-core/ImportXhsProjectHelper.cs
@@ -41,7 +41,79 @@
            #endregion 第一步 临时文件处理(进度5%)
            #region 第二步 压缩文件解析 (进度10%)
            #region 第二步 创建项目(进度 10%)
            feedBackMsg?.Invoke("正在创建项目...");
            var bllXhsProjectExtensions = new Lazy<BLL.XhsProjectExtensions>(() => new BLL.XhsProjectExtensions());
            var project = new Vmo.Xhs.XhsProjectExtensions();
            project.NO = vm.NO;
            project.Name = vm.Name;
            project.Address = vm.Address;
            project.Customer = vm.Customer;
            project.Flags = vm.Flags;
            project.TagName = vm.TagName;
            project.Description = vm.Description;
            project.SiteList = new List<Vmo.Xhs.XhsProjectSite>() {
                new Vmo.Xhs.XhsProjectSite(){
                    Name=vm.Name,
                    Description=vm.Description
                }
            };
            var projectId = await bllXhsProjectExtensions.Value.Insert(project);
            if (projectId < 1)
            {
                feedBackMsg?.Invoke("项目创建失败!!!");
                return false;
            }
            feedBackMsg?.Invoke("项目创建成功。。。");
            vm.ProjectID = projectId;
            feedBackProgress?.Invoke(100, 10);
            #endregion 第二步 创建项目(进度 10%)
            #region 第三步 设置地图位置(进度 20%)
            feedBackMsg?.Invoke("正在设置地图位置...");
            if (vm.Location != null)
            {
                var mapInfo = new Yw.Vmo.Map.MapInfo();
                mapInfo.ObjectType = HStation.Xhs.DataType.XhsProject;
                mapInfo.ObjectID = projectId;
                mapInfo.ObjectName = project.Name;
                mapInfo.Purpose = Yw.Map.Purpose.Location;
                mapInfo.Kind = Yw.Map.Kind.Gaodei;
                mapInfo.Shape = Yw.Map.Shape.Marker;
                mapInfo.Position = vm.Location.ToJson();
                var mapInfoId = await new Yw.BLL.MapInfo().Insert(mapInfo);
                if (mapInfoId < 1)
                {
                    feedBackMsg?.Invoke("设置地图位置失败!!!");
                }
                else
                {
                    vm.MapInfoID = mapInfoId;
                    feedBackMsg?.Invoke("设置地图位置成功。。。");
                }
            }
            else
            {
                feedBackMsg?.Invoke("未设置地图位置信息!!!");
            }
            feedBackProgress?.Invoke(100, 20);
            #endregion 第三步 设置地图位置(进度 20%)
            #region 第四步 压缩文件解析 (进度25%)
            msg = "正在解析模型文件...";
            feedBackMsg?.Invoke(msg);
@@ -62,11 +134,11 @@
            feedBackMsg?.Invoke("模型文件解析成功。。。");
            feedBackProgress?.Invoke(100, 10);
            feedBackProgress?.Invoke(100, 25);
            #endregion 第二步 压缩文件解析 (进度10%)
            #endregion 第四步 压缩文件解析 (进度25%)
            #region 第三步 解析水力结构文件 (进度15%)
            #region 第五步 解析水力结构文件 (进度30%)
            feedBackMsg?.Invoke("正在解析水力结构文件...");
            var jsonFileInfo = allFileInfoList.Where(x => x.Extension == ".json").FirstOrDefault();
@@ -100,50 +172,13 @@
            feedBackMsg?.Invoke("水力结构文件解析成功。。。");
            feedBackProgress?.Invoke(100, 15);
            feedBackProgress?.Invoke(100, 30);
            vm.HydroID = hydroId;
            #endregion 第三步 解析水力结构文件 (进度15%)
            #endregion 第五步 解析水力结构文件 (进度30%)
            #region 第四步 创建项目(进度 20%)
            feedBackMsg?.Invoke("正在创建项目...");
            var bllXhsProjectExtensions = new Lazy<BLL.XhsProjectExtensions>(() => new BLL.XhsProjectExtensions());
            var project = new Vmo.Xhs.XhsProjectExtensions();
            project.NO = vm.NO;
            project.Name = vm.Name;
            project.Address = vm.Address;
            project.Customer = vm.Customer;
            project.Flags = vm.Flags;
            project.TagName = vm.TagName;
            project.Description = vm.Description;
            project.SiteList = new List<Vmo.Xhs.XhsProjectSite>() {
                new Vmo.Xhs.XhsProjectSite(){
                    Name=vm.Name,
                    Description=vm.Description
                }
            };
            var projectId = await bllXhsProjectExtensions.Value.Insert(project);
            if (projectId < 1)
            {
                feedBackMsg?.Invoke("项目创建失败!!!");
                return false;
            }
            feedBackMsg?.Invoke("项目创建成功。。。");
            vm.ProjectID = projectId;
            feedBackProgress?.Invoke(100, 20);
            #endregion 第四步 创建项目(进度 20%)
            #region 第五步 关联水力结构模型(进度 25%)
            #region 第六步 关联水力结构模型(进度 40%)
            var bllXhsProjectSite = new BLL.XhsProjectSiteStd();
            var projectSite = await bllXhsProjectSite.GetDefaultByProjectID(projectId);
@@ -178,44 +213,9 @@
            feedBackMsg?.Invoke("关联水力结构模型成功。。。");
            feedBackProgress?.Invoke(100, 25);
            feedBackProgress?.Invoke(100, 40);
            #endregion 第五步 关联水力结构模型(进度 25%)
            #region 第六步 设置地图位置(进度 30%)
            feedBackMsg?.Invoke("正在设置地图位置...");
            if (vm.Location != null)
            {
                var mapInfo = new Yw.Vmo.Map.MapInfo();
                mapInfo.ObjectType = HStation.Xhs.DataType.XhsProject;
                mapInfo.ObjectID = projectId;
                mapInfo.ObjectName = project.Name;
                mapInfo.Purpose = Yw.Map.Purpose.Location;
                mapInfo.Kind = Yw.Map.Kind.Gaodei;
                mapInfo.Shape = Yw.Map.Shape.Marker;
                mapInfo.Position = vm.Location.ToJson();
                var mapInfoId = await new Yw.BLL.MapInfo().Insert(mapInfo);
                if (mapInfoId < 1)
                {
                    feedBackMsg?.Invoke("设置地图位置失败!!!");
                }
                else
                {
                    vm.MapInfoID = mapInfoId;
                    feedBackMsg?.Invoke("设置地图位置成功。。。");
                }
            }
            else
            {
                feedBackMsg?.Invoke("未设置地图位置信息!!!");
            }
            feedBackProgress?.Invoke(100, 30);
            #endregion 第六步 设置地图位置(进度 30%)
            #endregion 第六步 关联水力结构模型(进度 40%)
            #region 第七步 上传Revit模型文件(进度 45%)
@@ -299,7 +299,7 @@
            #endregion 第九步 关联Bimface文件(进度 55%)
            #region 第九步 发起bimface转换(进度 80%)
            #region 第十步 发起bimface转换(进度 80%)
            feedBackMsg?.Invoke("正在进行Bimface模型轻量化...");
            // var bimfaceTranslateStatus = await Yw.WinFrmUI.BimfaceHelper.TranslateRvtFile(bimfaceId);//发起转换
@@ -327,9 +327,9 @@
            feedBackProgress?.Invoke(100, 80);
            #endregion 第九步 发起bimface转换(进度 80%)
            #endregion 第十步 发起bimface转换(进度 80%)
            #region 第十步 更新Bimface文件状态(进度 90%)
            #region 第十一步 更新Bimface文件状态(进度 100%)
            feedBackMsg?.Invoke("正在更新Bimface文件状态...");
            bol = await bllBimfaceFile.UpdateFileStatus(bimfaceFileId, (int)Yw.Bimface.eFileStatus.ConvertSucceed);
@@ -344,30 +344,30 @@
                return true;
            }
            feedBackProgress?.Invoke(100, 90);
            #endregion 第十步 更新Bimface文件状态(进度 90%)
            #region 第十一步 项目发布(进度 100%)
            feedBackMsg?.Invoke("正在发布项目...");
            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("项目导入结束。。。");
            #endregion 第十一步 更新Bimface文件状态(进度 100%)
            #region 弃用  第十二步 项目发布(进度 100%)
            /*    feedBackMsg?.Invoke("正在发布项目...");
                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 第十一步 项目发布(进度 100%)
            #endregion 弃用  第十二步 项目发布(进度 100%)
        }
    }
}