From 4bc299dd7766a6714c854dede7190666d86a3b45 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Wed, 7 Jun 2023 12:45:44 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=BE=D1=80=D1=82=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=BA=D0=B0=20=D0=BE=D0=BF=D0=B5=D1=80=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D0=B9=20=D0=B2=20=D1=81=D0=B5=D1=82=D0=B5=D0=B2=D0=BE=D0=B9?= =?UTF-8?q?=D0=BC=20=D0=B3=D1=80=D0=B0=D1=84=D0=B8=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ScheduleReportService.cs | 133 +----------------- .../ScheduleReportTemplate.xlsx | Bin 34867 -> 34647 bytes 2 files changed, 7 insertions(+), 126 deletions(-) diff --git a/AsbCloudInfrastructure/Services/WellOperationService/ScheduleReportService.cs b/AsbCloudInfrastructure/Services/WellOperationService/ScheduleReportService.cs index 40e69dd8..a850fa54 100644 --- a/AsbCloudInfrastructure/Services/WellOperationService/ScheduleReportService.cs +++ b/AsbCloudInfrastructure/Services/WellOperationService/ScheduleReportService.cs @@ -24,13 +24,6 @@ namespace AsbCloudInfrastructure.Services.WellOperationService const string sheetNameTvd = "ГГД"; const int maxChartsToWrap = 88; - private enum sheduleMode - { - plan, - fact, - predict - }; - public ScheduleReportService(IOperationsStatService operationsStatService, IWellService wellService) { this.operationsStatService = operationsStatService; @@ -66,50 +59,39 @@ namespace AsbCloudInfrastructure.Services.WellOperationService .Select(t => t.Plan!) .OrderBy(t => t.DateStart) .ToList(); - FillCurrentScheduleSheetToWorkbook(workbook, plans, well, sheduleMode.plan); + FillCurrentScheduleSheetToWorkbook(workbook, plans, sheetNameSchedulePlan); 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); + FillCurrentScheduleSheetToWorkbook(workbook, facts, sheetNameScheduleFact); 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); + FillCurrentScheduleSheetToWorkbook(workbook, predictions, sheetNameSchedulePrediction); } - private static void FillCurrentScheduleSheetToWorkbook(XLWorkbook workbook, List tvdList, WellDto well, sheduleMode mode) + private static void FillCurrentScheduleSheetToWorkbook(XLWorkbook workbook, List tvdList, string sheetName) { - 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; + const int columnDuration = 6; + const int columnDateStart = 7; + const int columnDateEnd = 8; int i = 0; for (; i < tvdList.Count; i++) @@ -118,111 +100,15 @@ namespace AsbCloudInfrastructure.Services.WellOperationService 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; } } @@ -278,11 +164,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..06926243bb55e8cea10183465be94d1e346f4a24 100644 GIT binary patch delta 18017 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 z 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 delta 17298 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�PY>vDRHnN z=Q96TyqyZX6OOrHLuG%@O+^^kdt7#OeBHrgf=PoN`4Ihzh_t4_5Zk_1+v5BThQFZ%nIRA6AF#cgTM_M?n)cN0h}~1><5lJTF4*j^ zsRA0+Xjthu_9uy6ZMS%f$2Nmp-nHXAsk*hNLgz#M{fmXjJrd}52`+2g;~&vl%FX)u zQ^&t{FNiip?xCNiL75`um5`@5fp#WQ987x{{MVjcb|PlSzfy^B#;yl^T$9W-B7;d}LQi-kAEO;xx;1^})`JQbCNeibXhrQC~CmI434J7;GRFJvP|bqIc)n zC-xob#9gx57ykOm`(Cp*-QuL?`v932;}UDOy(>sQ@Oh1_>zg}IROFeS>z*otoBGzQ zQ~dHM@M&IOnbO&BN1g`+TzLZ=+`5VXY{Rd1?m6$Ir?R^=xi`eEcXYfvQ}*(T+b$hV zmEE$t6rN*$$u7Rw^&}u}_VcI5n=S{btuj4m66!v^EBCrjca+c0{edD$oR=L*<$0C& zylaERg>R+mpEZw4Uq7e%)iVg=`<$N=d-Gj8WOp~AAKogR+fQDvMAulJ!~wy`FSi<_ z7w+|ZlxWe+{K5)Z4@g)PzuM@<|Mf6{HpYQJe2Tljy6fVFOw!=deuF}a?3IaE_81XC zvl4g3)i8Oz(pL^|KUjD4R9!k3FcVW=6OXxplM6!{4|M$=Y3S(%ZPppww9Gat3tm|j zg_f?t%i>?resKt}l1uxyj9T~bCny@wtH7&eZY$^x1D&TsEBn++^yUH<~Gvn zXx5%1I#ench@n1wd`0w=OI7n?eKDeb)=VqgwmCF$d&&1r=eoB=Pv%@yZFJIfzgc(c zQiq|`={daxYb(f!ozQoCN}le`(h*1v!7a`Ix^2>HyqD;&iFnz$#^&vI zgwtjfqJn$EBi;^ZHa<0Q+3ciM)C04^sv1|@R%;yrd~L`Lv$JE*bgXws`d8*UhWM&#e0Y z6MZBBU4No>uXtnNfUC5TCW*hr`0B3fr!#dreef@-NkRnwXeMlqpKriLf?4S3KOIW{m8V0`dX_s|Mu)6QEbR#^f z6xzxP0(|dHj5PNh57i2J@a5R))T>9AR)4ywMeqMG+N!X&Qy;y55(0RXL@yq3c=KTE zLif6Xtv_~um%y;FmD!rN?aZ}V4?Zi-Z!ms(zA0+r-o*{sYb>L8UEJet7IW*7uF87( zvx}Za$=4?1710thZou6is~TPewQ~n+WNHIBdzMm$6@U2$q?cd8)Yaw@T5}eW0~#=s znBPP5qPUay2b)^b1Cq@iNYCo%8_IZz+%hZmVmCtXcARvudGS<7|XYX4r~h&w@laRP}#Vqi`dH=I!{()!xE^Idq3G(~z@%$Z^ z{Bu0-Lct@~jsJA|cO0