Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
                }
            }
        }