From b12c3efffc117648b3b4698363f4cf1f6185208b Mon Sep 17 00:00:00 2001 From: ngfrolov Date: Fri, 18 Mar 2022 16:54:40 +0500 Subject: [PATCH] Fix ScheduleReportService correct deltaDepth --- .../ScheduleReportService.cs | 92 +++++++++++------- .../ScheduleReportTemplate.xlsx | Bin 15221 -> 15314 bytes .../DrillingProgramServiceTest.cs | 4 +- ConsoleApp1/Program.cs | 2 +- 4 files changed, 61 insertions(+), 37 deletions(-) diff --git a/AsbCloudInfrastructure/Services/WellOperationService/ScheduleReportService.cs b/AsbCloudInfrastructure/Services/WellOperationService/ScheduleReportService.cs index 25e8ecb7..9cdd5b60 100644 --- a/AsbCloudInfrastructure/Services/WellOperationService/ScheduleReportService.cs +++ b/AsbCloudInfrastructure/Services/WellOperationService/ScheduleReportService.cs @@ -16,7 +16,7 @@ namespace AsbCloudInfrastructure.Services.WellOperationService private readonly IWellService wellService; const string sheetNameSchedule = "Сетевой график"; const string sheetNameTvd = "ГГД"; - const int maxChartsToWrap = 89; + const int maxChartsToWrap = 88; public ScheduleReportService(IOperationsStatService operationsStatService, IWellService wellService) { @@ -43,7 +43,7 @@ namespace AsbCloudInfrastructure.Services.WellOperationService return memoryStream; } - private void FillScheduleSheetToWorkbook(XLWorkbook workbook, IEnumerable> tvd, WellDto well) + private static void FillScheduleSheetToWorkbook(XLWorkbook workbook, IEnumerable> tvd, WellDto well) { var sheet = workbook.Worksheets.FirstOrDefault(ws => ws.Name == sheetNameSchedule); if (sheet is null) @@ -54,25 +54,36 @@ namespace AsbCloudInfrastructure.Services.WellOperationService const int columnRowNumber = 2; const int columnCaption = 3; - const int columnWellDepthPlan = 4; - const int columnWellDepthFact = 5; - const int columnWellDepthPredict = 6; - const int columnDeltaWellDepthPerDay = 7; - const int columnDurationPlan = 8; - const int columnDurationFact = 9; - const int columnDurationPredict = 10; - const int columnDateEndPlan = 11; - const int columnDateEndFact = 12; - const int columnDateEndPredict = 13; - const int columnGuilty = 14; - const int columnNpt = 15; + const int columnWellDepthStartPlan = 4; + const int columnWellDepthStartFact = 5; + const int columnWellDepthStartPredict = 6; + const int columnWellDepthEndPlan = 7; + const int columnWellDepthEndFact = 8; + const int columnWellDepthEndPredict = 9; + const int columnDeltaWellDepthPerDay = 10; + const int columnDurationPlan = 11; + const int columnDurationFact = 12; + const int columnDurationPredict = 13; + const int columnDateStartPlan = 14; + const int columnDateStartFact = 15; + const int columnDateStartPredict = 16; + const int columnDateEndPlan = 17; + const int columnDateEndFact = 18; + const int columnDateEndPredict = 19; + const int columnGuilty = 20; + const int columnNpt = 21; var subTitle = $"на строительство скважины №{well.Caption}, куст: {well.Cluster}, м/р: {well.Deposit}"; sheet.Row(rowTitle).Cell(3).Value = subTitle; var tvdList = tvd.ToList(); - double dayStartDepth = 0d; - double dayNum = 0; + var facts = tvd + .Where(t=>t.Fact is not null) + .Select(t=>t.Fact) + .ToList(); + + DateTime lastFactDate = default; + var lastFactI = 0; int i = 0; for (; i < tvdList.Count; i++) @@ -86,33 +97,46 @@ namespace AsbCloudInfrastructure.Services.WellOperationService SetCell(row, columnRowNumber, $"{1 + i}"); SetCell(row, columnCaption, $"{operation.CategoryName} {operation.CategoryInfo}".Trim()); - SetCell(row, columnWellDepthPlan, tvdItem.Plan?.DepthEnd); - SetCell(row, columnWellDepthFact, tvdItem.Fact?.DepthEnd); - SetCell(row, columnWellDepthPredict, tvdItem.Predict?.DepthEnd); + + SetCell(row, columnWellDepthStartPlan, tvdItem.Plan?.DepthStart); + SetCell(row, columnWellDepthStartFact, tvdItem.Fact?.DepthStart); + SetCell(row, columnWellDepthStartPredict, tvdItem.Predict?.DepthStart); + + SetCell(row, columnWellDepthEndPlan, tvdItem.Plan?.DepthEnd); + SetCell(row, columnWellDepthEndFact, tvdItem.Fact?.DepthEnd); + SetCell(row, columnWellDepthEndPredict, tvdItem.Predict?.DepthEnd); SetCell(row, columnDeltaWellDepthPerDay, null); if (tvdItem.Fact is not null) { - if (dayStartDepth == 0d) - { - dayStartDepth = tvdItem.Fact.DepthStart; - dayNum = tvdItem.Fact.DateStart.DayOfYear; - } + var fact = tvdItem.Fact; + if (lastFactDate == default) + lastFactDate = fact.DateStart; - if (i > 0 && tvdItem.Fact.DateStart.DayOfYear > dayNum) + if (i > 0 && fact.DateStart.DayOfYear != lastFactDate.DayOfYear) { - double? delta = tvdItem.Fact.DepthStart - dayStartDepth; - delta = delta > 0 ? delta : null; - SetCell(sheet.Row(0 + i + headerRowsCount), columnDeltaWellDepthPerDay, delta); - dayStartDepth = tvdItem.Fact.DepthStart; - dayNum = tvdItem.Fact.DateStart.DayOfYear; + var daylyOperations = facts + .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, columnDurationPlan, tvdItem.Plan?.DurationHours); SetCell(row, columnDurationFact, tvdItem.Fact?.DurationHours); SetCell(row, columnDurationPredict, tvdItem.Predict?.DurationHours); + SetCell(row, columnDateStartPlan, tvdItem.Plan?.DateStart); + SetCell(row, columnDateStartFact, tvdItem.Fact?.DateStart); + SetCell(row, columnDateStartPredict, tvdItem.Predict?.DateStart); + SetCell(row, columnDateEndPlan, tvdItem.Plan?.DateStart.AddHours(tvdItem.Plan?.DurationHours ?? 0)); SetCell(row, columnDateEndFact, tvdItem.Fact?.DateStart.AddHours(tvdItem.Fact?.DurationHours ?? 0)); SetCell(row, columnDateEndPredict, tvdItem.Predict?.DateStart.AddHours(tvdItem.Predict?.DurationHours ?? 0)); @@ -171,7 +195,7 @@ namespace AsbCloudInfrastructure.Services.WellOperationService SetBorder(rowSummary2.Cells(true).Style); } - private void FillTvdSheetToWorkbook(XLWorkbook workbook, IEnumerable> tvd, WellDto well) + private static void FillTvdSheetToWorkbook(XLWorkbook workbook, IEnumerable> tvd, WellDto well) { var sheet = workbook.Worksheets.FirstOrDefault(ws => ws.Name == sheetNameTvd); if (sheet is null) @@ -206,7 +230,7 @@ namespace AsbCloudInfrastructure.Services.WellOperationService var factLast = Fact.LastOrDefault(); var predictLast = Predict.LastOrDefault(); - DateTime GetEndDate(WellOperationDto operation) + static DateTime GetEndDate(WellOperationDto operation) => operation is not null ? operation.DateStart.AddHours(operation.DurationHours) : default; @@ -232,7 +256,7 @@ namespace AsbCloudInfrastructure.Services.WellOperationService SetCell(sheet.Row(rowTopStatTitle + 1), colTopStatvalue - 1, "+") .Style.Font.SetFontColor(XLColor.Green); else - SetCell(sheet.Row(rowTopStatTitle + 1), colTopStatvalue - 1, "-") + SetCell(sheet.Row(rowTopStatTitle + 1), colTopStatvalue - 1, "—") .Style.Font.SetFontColor(XLColor.Red); } } @@ -287,7 +311,7 @@ namespace AsbCloudInfrastructure.Services.WellOperationService if (value is string valueString && valueString.Length > maxChartsToWrap) { var baseHeight = row.Height; - row.Height = Math.Ceiling(0.85d * valueString.Length / maxChartsToWrap) * baseHeight; + row.Height = 0.82d * baseHeight * Math.Ceiling(1d + valueString.Length / maxChartsToWrap); } if (value is DateTime) diff --git a/AsbCloudInfrastructure/Services/WellOperationService/ScheduleReportTemplate.xlsx b/AsbCloudInfrastructure/Services/WellOperationService/ScheduleReportTemplate.xlsx index d7ce54eda1e8844832241fc15a74baf843120d6a..5f86498dd420ebc9340bb76f47ab7781d9ac3d0c 100644 GIT binary patch delta 9612 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 delta 9481 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 diff --git a/AsbCloudWebApi.Tests/ServicesTests/DrillingProgramServiceTest.cs b/AsbCloudWebApi.Tests/ServicesTests/DrillingProgramServiceTest.cs index 92938991..ffd39dd2 100644 --- a/AsbCloudWebApi.Tests/ServicesTests/DrillingProgramServiceTest.cs +++ b/AsbCloudWebApi.Tests/ServicesTests/DrillingProgramServiceTest.cs @@ -46,7 +46,7 @@ namespace AsbCloudWebApi.Tests.ServicesTests new User { Id = 3005, IdCompany = 3003, Login = "wrong 2", Email = "aa@aa.aa", IdState = 2 }, }; - private static readonly FileInfo file1001 = new FileInfo + private static readonly FileInfo file1001 = new () { Id = 3001, IdWell = idWell, @@ -58,7 +58,7 @@ namespace AsbCloudWebApi.Tests.ServicesTests UploadDate = System.DateTimeOffset.UtcNow, }; - private static readonly FileInfo file1002 = new FileInfo + private static readonly FileInfo file1002 = new () { Id = 3002, IdWell = idWell, diff --git a/ConsoleApp1/Program.cs b/ConsoleApp1/Program.cs index 3e180ff9..aa1b13de 100644 --- a/ConsoleApp1/Program.cs +++ b/ConsoleApp1/Program.cs @@ -67,7 +67,7 @@ namespace ConsoleApp1 var wellService = new WellService(db, cacheDb, telemetryService, timeZoneService); var operationService = new OperationsStatService(db, cacheDb, wellService); var scheduleReportService = new ScheduleReportService(operationService, wellService); - var stream = scheduleReportService.MakeReportAsync(4).Result; + var stream = scheduleReportService.MakeReportAsync(44).Result; var outStream = System.IO.File.OpenWrite(@"c:\temp\1.xlsx"); stream.CopyTo(outStream); outStream.Flush();