Shuxia Ning
2024-12-11 f02df8852f3adbebd6c50a6c0077065ca18ccd84
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -2250,59 +2250,42 @@
        private async void barBtnExportWord_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            var fileName = FileDialogHelper.SaveWordDoc("导出Word报告");
            if (string.IsNullOrEmpty(fileName))
            if (_visual == null)
            {
                return;
            }
            var vm = new SimulationWorkingReportViewModel();
            vm.ReportType = "模拟工况运行报告";
            vm.Info = new SimulationReportInfoItemViewModel()
            {
                Name = _project.Name,
                Description = _project.Description,
            };
            vm.Pumps = new List<SimulationReportPumpItemViewModel>();
            var pumps = _hydroInfo.Pumps;
            foreach (var pump in _hydroInfo.Pumps)
            {
                var pumpItem = new SimulationReportPumpItemViewModel();
                pumpItem.Name = pump.Name;
                pumpItem.ModelType = pumpItem.ModelType;
                pumpItem.SerialNO = (_hydroInfo.Pumps.IndexOf(pump) + 1).ToString();
                pumpItem.RatedQ = $"{pump.RatedQ ?? 0}m³/h";
                pumpItem.RatedH = $"{pump.RatedH ?? 0}m";
                pumpItem.RatedP = $"{pump.RatedP}kW";
                pumpItem.RatedN = $"{pump.RatedN ?? 0}r/min";
                vm.Pumps.Add(pumpItem);
                var pumpDb = await BLLFactory<HStation.BLL.AssetsPumpMain>.Instance.GetByIDEx(long.Parse(pump.DbId));
                if (pumpDb != null)
                SelectInputSource();
                if (_visual == null)
                {
                    if (pumpDb.PropContent != null && pumpDb.PropContent.Count > 0)
                    {
                        var ratedUProp = pumpDb.PropContent.Find(x => x.TagName == HStation.Assets.PumpDataType.RatedVoltage);
                        if (ratedUProp != null)
                        {
                            pumpItem.RatedU = ratedUProp.PropValue;
                        }
                        var ratedIProp = pumpDb.PropContent.Find(x => x.TagName == HStation.Assets.PumpDataType.RatedCurrent);
                        if (ratedIProp != null)
                        {
                            pumpItem.RatedI = ratedIProp.PropValue;
                        }
                        var ratedFProp = pumpDb.PropContent.Find(x => x.TagName == HStation.Assets.PumpDataType.RatedFactor);
                        if (ratedFProp != null)
                        {
                            pumpItem.RatedF = ratedFProp.PropValue;
                        }
                    }
                    TipFormHelper.ShowWarn("请选择构件后重试!");
                    return;
                }
            }
            HydroVisualInfo visual = _visual;
            if (_visual is HydroLinkInfo linkInfo)
            {
                var visualListHelper = GetVisualListHelper();
                visual = visualListHelper.GetVisual(linkInfo.StartCode);
            }
            var reportHelper = new SimulationWorkingReportHelper();
            reportHelper.Create(fileName, vm);
            var allMonitorList = await GetMonitorList();
            var working = GetWorking();
            var calcuResult = GetCalcuResult();
            TipFormHelper.ShowInfo("导出成功!");
            var dlg = new SimulationWorkingReportDlg();
            dlg.ReloadDataEvent += (vm) =>
            {
                var fileName = FileDialogHelper.SaveWordDoc("导出Word报告");
                if (string.IsNullOrEmpty(fileName))
                {
                    return;
                }
                var reportHelper = new SimulationWorkingReportHelper();
                reportHelper.Create(fileName, vm);
                TipFormHelper.ShowInfo("导出成功!");
            };
            dlg.SetBindingData(_project, _hydroInfo, allMonitorList, working, calcuResult, visual);
            dlg.ShowDialog();
        }
        #endregion