using Microsoft.AspNetCore.Mvc; using System.Net; using System.Net.Http.Headers; using Microsoft.Extensions.Hosting.Internal; using Microsoft.AspNetCore.Http.Extensions; using IStation.Untity; using Furion.DynamicApiController; using System.ComponentModel.DataAnnotations; using Mapster; using Microsoft.AspNetCore.Http; using Furion.DependencyInjection; using Microsoft.AspNetCore.Authorization; using Furion.DataEncryption; using Furion.FriendlyException; namespace IStation.Application { /// /// Report /// [AllowAnonymous] [Route("DataFile/Report ")] [ApiDescriptionSettings("DataFile", Name = "报表", Order = 999)] public class Eta_Month_Report_Controller : IDynamicApiController { /// /// 泵站能效月报表 /// [Route("StationEtaMonthReport@V1.0")] [HttpGet] public string StationEtaMonthReport([FromQuery][Required] Month_DataFileTestInput input) { var station = new Service.Station().GetByID(input.CorpID, input.ObjectID); LogHelper.Info("已获取泵站信息" + station); if (station==null) { return null; } LogHelper.Info("已获取泵站信息" + station); var etaSumRecord = new Service.EtaSumMultiRecord().GetMonthByObjectOfMonth(input.CorpID, IStation.ObjectType.Station, input.ObjectID, input.Year, input.Month); if (etaSumRecord==null) { return null; } LogHelper.Info("已获取泵站能效信息" + etaSumRecord); var pumpPipeLineList = new Service.PipeLine().GetByBelongTypeAndBelongID(input.CorpID, IStation.ObjectType.PipeLine, input.ObjectID).FindAll(x => x.Catalog == IStation.Product.Catalog_JiBeng); if (pumpPipeLineList.Count<1&&pumpPipeLineList==null) { return null; } LogHelper.Info("已获管路信息"); var etaSumSingleDayRecordList = new List(); var etaSumSingleService = new Service.EtaSumSingleRecord(); foreach (var pipeLineitem in pumpPipeLineList) { var etaSumSingleRecord = etaSumSingleService.GetMonthByObjectOfMonth(pipeLineitem.CorpID, IStation.ObjectType.PipeLine, pipeLineitem.ID, input.Year, input.Month); if(etaSumSingleRecord!=null) etaSumSingleDayRecordList.Add(etaSumSingleRecord); } LogHelper.Info("已获管路能效信息"); if (etaSumSingleDayRecordList == null && etaSumSingleDayRecordList.Count < 1) { return null; } var pdf = new Eta_Month_ReportPdf(); var ReportPath = Path.Combine(ConfigHelper.DataPath, @"Report"); if (!Directory.Exists(ReportPath)) Directory.CreateDirectory(ReportPath); LogHelper.Info("已创建根目录"); var EtaPathName = "Eta-Month"; var EtaPath = Path.Combine(ReportPath, EtaPathName); if (!Directory.Exists(EtaPath)) Directory.CreateDirectory(EtaPath); LogHelper.Info("已创建日期文件夹"); string dateTimePathName = input.Year + "-" + input.Month; var pdfPath = Path.Combine(EtaPath, dateTimePathName); if (!Directory.Exists(pdfPath)) Directory.CreateDirectory(pdfPath); LogHelper.Info("已创建最终日期文件夹"); var etaPdfFileName = $"Station_Eta_{station.ID}_{dateTimePathName}.pdf"; var etaPdfFilePath = Path.Combine(pdfPath, etaPdfFileName); LogHelper.Info("已拼接最终文件路径"); var turePath = Path.Combine(@"Report", EtaPathName, dateTimePathName, etaPdfFileName); turePath = turePath.Replace(@"\\", @"/"); LogHelper.Info("已拼接最终返回路径"); if (!File.Exists(etaPdfFilePath)) { if (!pdf.Create4Stream(station, etaSumRecord, pumpPipeLineList, etaSumSingleDayRecordList, dateTimePathName,input.CorpID, etaPdfFilePath)) { LogHelper.Info("10"); return null; } LogHelper.Info("文件已创建"); } else { if (File.Exists(etaPdfFilePath)) { LogHelper.Info("文件已存在,返回文件路径"); return turePath; } } LogHelper.Info("返回文件路径"); return turePath; } } }