public static IActionResult Export_to_Excel(string reportName, ReportInfo reportInfo, Controller controller) { switch (reportName) { case "ConsumptionByCycleByBDM1": //БДМ-1 по видам продукции case "ConsumptionByCycleByBDM2": //БДМ-2 по видам продукции case "ConsumptionByBDM1ByDay": //БДМ-1(Суточный) case "ConsumptionByBDM2ByDay": //БДМ-2(Суточный) return(Excel_methods.Export_to_Excel_ConsumptionByCycleByBDM(reportInfo)); case "TERperMonthperTonne": //Средневзвешенное ТЭР на тонну по циклам производства //В данном отчете ограничение по датам используется для ограничения SKU по которым выводить годовой отчет, год передается отдельно return(Excel_methods.Export_to_Excel_TERperMonthperTonne(reportInfo)); case "EnergyConsumptionByManufactureByHour": //Часовой расход электроэнергии по производству var sList_places = new List <string> { "Дата" , "Период" }; //Добавляем заранее сформированный список мест sList_places.AddRange(Constants.places.Keys.ToList()); sList_places.Add("Итого:"); return(Excel_methods.Export_to_Excel_Generic(reportInfo: reportInfo, excel_head: sList_places.ToArray(), sums_position_shift: 2)); case "EnergyConsumptionByDevicesByDay": //Суточный расход электроэнергии по учётам case "EnergyConsumptionByDevicesByHour": //Часовой расход электроэнергии по учётам //отличия только в группировках между этими отчетами, так что формируем признак return(Excel_methods.Export_to_Excel_EnergyConsumptionByDevices(reportInfo)); case "ConsumptionByManufactureByPeriod": //общая по производству return(Excel_methods.Export_to_Excel_ConsumptionByManufactureByPeriod(reportInfo)); case "ConsumptionByBDM1ByHour": //БДМ-1(Часовой) case "ConsumptionByBDM2ByHour": //БДМ-2(Часовой) return(Excel_methods.Export_to_Excel_Generic(reportInfo, excel_head: Constants.Excel_export_head_ConsumptionByBDMByHour , propsNameToModify: new string [] { "ID", "StartPeriod", "EndPeriod" } , buttom_sums_name: "ConsumptionByBDMByHour" , sums_position_shift: 3 )); case "SkuDataByShifts_BDM1": case "SkuDataByShifts_BDM2": return(Excel_methods.Export_to_Excel_SkuDataByShifts(reportInfo)); default: return(null); } }
private void Email_report_Daily_TER_avg_permonth(object obj) { var timer_data = (Timer_data)obj; using (var scope = scopeFactory.CreateScope()) { var dbContext = scope.ServiceProvider.GetRequiredService <ScaffoldContext>(); DateTime startDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day).AddDays(-1); DateTime endDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day).AddSeconds(-1); var reportName = new ReportName("TERperMonthperTonne;Средневзвешенное ТЭР на тонну по циклам производства"); var reportDates = new ReportDates(startDate, endDate, tesYear: DateTime.Now.Year); var reportInfo = new ReportInfo(); reportInfo.EvalReportInfo(reportName, dbContext, reportDates ); var excel_file = Excel_methods.Export_to_Excel_TERperMonthperTonne(reportInfo); string serverUrl = "http://192.168.0.147:8080/"; string msg = $@"<html><body><h2>Здравствуйте. Отчет средневзвешенное ТЭР на тонну по циклам производства во вложении.</h2> <h4>Версию с графиками можно посмотреть и выгрузить здесь: <a href= ""{serverUrl}Reports/ShowReport?lastDay=1&report_name=TERperMonthperTonne%3B%D0%A1%D1%80%D0%B5%D0%B4%D0%BD%D0%B5%D0%B2%D0%B7%D0%B2%D0%B5%D1%88%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5+%D0%A2%D0%AD%D0%A0+%D0%BD%D0%B0+%D1%82%D0%BE%D0%BD%D0%BD%D1%83+%D0%BF%D0%BE+%D1%86%D0%B8%D0%BA%D0%BB%D0%B0%D0%BC+%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%B0"">Дневной отчет средневзвешенное ТЭР на тонну по циклам производства</a><h4></body></html>"; try { StaticMethods.SendEmailReport(ref SentMsges_daily_TER_avg_permonth , StaticMethods.Get_email_receivers(dbContext, "Daily_TER_avg_permonth") //new List<string> {"*****@*****.**"} //debug , "Средневзвешенное ТЭР на тонну по циклам производства" , msg , attachment_data: excel_file.FileContents); } catch (Exception e) { CustomExceptionHandler(e); } } }