From 100b51a372701bd0afa00849071b07d031a14c47 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Tue, 6 Jun 2023 14:43:42 +0500 Subject: [PATCH] =?UTF-8?q?Revert=20"=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=20=D1=81=D0=B5?= =?UTF-8?q?=D1=82=D0=B5=D1=82=D0=B2=D0=BE=D0=BC=D1=83=20=D0=B3=D1=80=D0=B0?= =?UTF-8?q?=D1=84=D0=B8=D0=BA=D1=83"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit f01708c69f0f2a7f658eacc8f352b0cea5d52db1. --- .../ScheduleReportService.cs | 185 ------------------ .../ScheduleReportTemplate.xlsx | Bin 34867 -> 15314 bytes AsbCloudWebApi/appsettings.json | 6 +- 3 files changed, 3 insertions(+), 188 deletions(-) diff --git a/AsbCloudInfrastructure/Services/WellOperationService/ScheduleReportService.cs b/AsbCloudInfrastructure/Services/WellOperationService/ScheduleReportService.cs index 40e69dd8..b22ce6ff 100644 --- a/AsbCloudInfrastructure/Services/WellOperationService/ScheduleReportService.cs +++ b/AsbCloudInfrastructure/Services/WellOperationService/ScheduleReportService.cs @@ -18,19 +18,9 @@ namespace AsbCloudInfrastructure.Services.WellOperationService private readonly IOperationsStatService operationsStatService; private readonly IWellService wellService; const string sheetNameSchedule = "Сетевой график"; - const string sheetNameSchedulePlan = "План"; - const string sheetNameScheduleFact = "Факт"; - const string sheetNameSchedulePrediction = "Прогноз"; const string sheetNameTvd = "ГГД"; const int maxChartsToWrap = 88; - private enum sheduleMode - { - plan, - fact, - predict - }; - public ScheduleReportService(IOperationsStatService operationsStatService, IWellService wellService) { this.operationsStatService = operationsStatService; @@ -57,176 +47,6 @@ namespace AsbCloudInfrastructure.Services.WellOperationService } private static void FillScheduleSheetToWorkbook(XLWorkbook workbook, IEnumerable> tvd, WellDto well) - { - FillScheduleSheet(workbook, tvd, well); - - var tvdList = tvd.ToList(); - var plans = tvd - .Where(t => t.Plan is not null) - .Select(t => t.Plan!) - .OrderBy(t => t.DateStart) - .ToList(); - FillCurrentScheduleSheetToWorkbook(workbook, plans, well, sheduleMode.plan); - - var facts = tvd - .Where(t => t.Fact is not null) - .Select(t => t.Fact!) - .OrderBy(t => t.DateStart) - .ToList(); - FillCurrentScheduleSheetToWorkbook(workbook, facts, well, sheduleMode.fact); - - var predictions = tvd - .Where(t => t.Predict is not null) - .Select(t => t.Predict!) - .OrderBy(t => t.DateStart) - .ToList(); - FillCurrentScheduleSheetToWorkbook(workbook, predictions, well, sheduleMode.predict); - - } - - private static void FillCurrentScheduleSheetToWorkbook(XLWorkbook workbook, List tvdList, WellDto well, sheduleMode mode) - { - var sheetName = GetSheetName(mode); - var sheet = workbook.Worksheets.FirstOrDefault(ws => ws.Name == sheetName); - if (sheet is null) - return; - - const int headerRowsCount = 6; - const int rowTitle = 3; - - const int columnRowNumber = 2; - const int columnCaption = 3; - const int columnWellDepthStart = 4; - const int columnWellDepthEnd = 5; - const int columnDeltaWellDepthPerDay = 6; - const int columnDuration = 7; - const int columnDateStart = 8; - const int columnDateEnd = 9; - const int columnGuilty = 10; - const int columnNpt = 11; - - var subTitle = $"на строительство скважины №{well.Caption}, куст: {well.Cluster}, м/р: {well.Deposit}"; - sheet.Row(rowTitle).Cell(3).Value = subTitle; - - DateTime lastFactDate = default; - var lastFactI = 0; - - int i = 0; - for (; i < tvdList.Count; i++) - { - var tvdItem = tvdList[i]; - if (tvdItem is null) - continue; - - if (i == 86) - { - ; - } - - var row = sheet.Row(1 + i + headerRowsCount); - - SetCell(row, columnRowNumber, $"{1 + i}"); - SetCell(row, columnCaption, $"{tvdItem.CategoryName} {tvdItem.CategoryInfo}".Trim()); - - SetCell(row, columnWellDepthStart, tvdItem.DepthStart); - - SetCell(row, columnWellDepthEnd, tvdItem.DepthEnd); - - SetCell(row, columnDeltaWellDepthPerDay, null); - if (mode == sheduleMode.fact) - { - var fact = tvdItem; - if (lastFactDate == default) - lastFactDate = fact.DateStart; - - if (i > 0 && fact.DateStart.DayOfYear != lastFactDate.DayOfYear) - { - var daylyOperations = tvdList - .Where(t => t.DateStart >= lastFactDate && t.DateStart < fact.DateStart); - if (daylyOperations.Any()) - { - var depthDayStart = daylyOperations.Min(o => o.DepthStart); - var depthDayEnd = daylyOperations.Max(o => o.DepthEnd); - var delta = depthDayEnd - depthDayStart; - SetCell(sheet.Row(1 + lastFactI + headerRowsCount), columnDeltaWellDepthPerDay, delta); - lastFactDate = fact.DateStart; - } - } - lastFactI = i; - } - - SetCell(row, columnDuration, tvdItem.DurationHours); - - SetCell(row, columnDateStart, tvdItem.DateStart); - - SetCell(row, columnDateEnd, tvdItem.DateStart.AddHours(tvdItem.DurationHours)); - - if (mode == sheduleMode.fact && WellOperationCategory.NonProductiveTimeSubIds.Contains(tvdItem.IdCategory)) - { - SetCell(row, columnGuilty, tvdItem.Comment); - SetCell(row, columnNpt, tvdItem.DurationHours); - row.Row(columnRowNumber, columnNpt).Style.Fill.BackgroundColor = XLColor.Red; - } - else - { - SetCell(row, columnGuilty, null); - SetCell(row, columnNpt, null); - } - } - - var rowNumSummary = 1 + i + headerRowsCount; - var rowNumStart = 1 + headerRowsCount; - var rowNumEnd = i + headerRowsCount; - - string MakeRangeFunction(string funcName, int column) - => $"={funcName}({GetColunmLetter(column)}{rowNumStart}:{GetColunmLetter(column)}{rowNumEnd})"; - - IXLCell AddRangeFormula(IXLRow row, string funcName, int column) - { - var cell = row.Cell(column); - cell.FormulaA1 = MakeRangeFunction(funcName, column); - return cell; - } - - var rowSummary = sheet.Row(rowNumSummary); - rowSummary.Style.Font.Bold = true; - rowSummary.Cell(columnCaption).Value = "Итого:"; - - AddRangeFormula(rowSummary, "sum", columnDeltaWellDepthPerDay); - AddRangeFormula(rowSummary, "sum", columnDuration); - var cell = AddRangeFormula(rowSummary, "max", columnDateEnd); - SetDateTime(cell); - SetDateTime(cell); - AddRangeFormula(rowSummary, "sum", columnNpt); - SetBorder(rowSummary.Cells(true).Style); - - var rowSummary2 = sheet.Row(rowNumSummary + 1); - rowSummary2.DataType = XLDataType.Number; - rowSummary2.Style.NumberFormat.Format = "0,00"; - rowSummary2.Cell(columnCaption).Value = "в сутках:"; - rowSummary2.Cell(columnDuration).FormulaA1 = $"={GetColunmLetter(columnDuration)}{rowNumSummary}/24"; - SetNumber(rowSummary2.Cell(columnDuration)); - rowSummary2.Cell(columnNpt).FormulaA1 = $"={GetColunmLetter(columnNpt)}{rowNumSummary}/24"; - SetNumber(rowSummary2.Cell(columnNpt)); - SetBorder(rowSummary2.Cells(true).Style); - } - - private static string GetSheetName(sheduleMode mode) - { - switch (mode) - { - case sheduleMode.plan: - return sheetNameSchedulePlan; - case sheduleMode.fact: - return sheetNameScheduleFact; - case sheduleMode.predict: - return sheetNameSchedulePrediction; - default: - return sheetNameSchedule; - } - } - - private static void FillScheduleSheet(XLWorkbook workbook, IEnumerable> tvd, WellDto well) { var sheet = workbook.Worksheets.FirstOrDefault(ws => ws.Name == sheetNameSchedule); if (sheet is null) @@ -278,11 +98,6 @@ namespace AsbCloudInfrastructure.Services.WellOperationService var row = sheet.Row(1 + i + headerRowsCount); - if (i == 86) - { - ; - } - SetCell(row, columnRowNumber, $"{1 + i}"); SetCell(row, columnCaption, $"{operation.CategoryName} {operation.CategoryInfo}".Trim()); diff --git a/AsbCloudInfrastructure/Services/WellOperationService/ScheduleReportTemplate.xlsx b/AsbCloudInfrastructure/Services/WellOperationService/ScheduleReportTemplate.xlsx index 53b8ce5bda34d60c142121f1551ae82d2f49f8c1..5f86498dd420ebc9340bb76f47ab7781d9ac3d0c 100644 GIT binary patch delta 9692 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 S1{Mq!4Cn89bmY4~NB;*%V8b8) literal 34867 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