From 2f2599f9ab5e27702316f50eea9ee32698771d49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D1=82=D0=B5=D0=BF=D0=B0=D0=BD=D0=BE=D0=B2=20=D0=94?= =?UTF-8?q?=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Thu, 12 Oct 2023 15:29:02 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D0=B3=20=D0=B8=D0=BC=D0=BF=D0=BE=D1=80=D1=82?= =?UTF-8?q?=D0=B0=20=D0=A0=D0=A2=D0=9A=20=D0=B1=D1=83=D1=80=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Files/DrillingProcessMapTemplate.xlsx | Bin 12433 -> 12484 bytes .../WellDrillingProcessMapImportService.cs | 80 +++++++++--------- 2 files changed, 42 insertions(+), 38 deletions(-) diff --git a/AsbCloudInfrastructure/Services/ProcessMaps/Files/DrillingProcessMapTemplate.xlsx b/AsbCloudInfrastructure/Services/ProcessMaps/Files/DrillingProcessMapTemplate.xlsx index be2c62e979333fc5a80f845a8f8e2ec6f11c4246..1fcfbe73873b360d2e77cdf70ce9589da9726fd9 100644 GIT binary patch delta 4672 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 delta 4636 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 UX9h@!kg#PINbms}#Qz!l7v5l;q5uE@ diff --git a/AsbCloudInfrastructure/Services/ProcessMaps/WellDrillingProcessMap/WellDrillingProcessMapImportService.cs b/AsbCloudInfrastructure/Services/ProcessMaps/WellDrillingProcessMap/WellDrillingProcessMapImportService.cs index 576e3ba2..3e4704bc 100644 --- a/AsbCloudInfrastructure/Services/ProcessMaps/WellDrillingProcessMap/WellDrillingProcessMapImportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMaps/WellDrillingProcessMap/WellDrillingProcessMapImportService.cs @@ -20,7 +20,7 @@ namespace AsbCloudInfrastructure.Services.ProcessMaps.WellDrillingProcessMap; */ public class WellDrillingProcessMapImportService : IProcessMapImportService { - private readonly IWellDrillingProcessMapRepository wellDrillingProcessMapRepository; + private readonly IProcessMapPlanRepository processMapPlanWellDrillingRepository; private readonly ICrudRepository wellSectionTypeRepository; private readonly IWellService wellService; @@ -45,14 +45,15 @@ public class WellDrillingProcessMapImportService : IProcessMapImportService private const int columnRopPlan = 15; private const int columnUsageSaub = 16; private const int columnUsageSpin = 17; + private const int columnComment = 18; private WellSectionTypeDto[] sections = null!; - public WellDrillingProcessMapImportService(IWellDrillingProcessMapRepository wellDrillingProcessMapRepository, + public WellDrillingProcessMapImportService(IProcessMapPlanRepository processMapPlanWellDrillingRepository, ICrudRepository wellSectionTypeRepository, IWellService wellService) { - this.wellDrillingProcessMapRepository = wellDrillingProcessMapRepository; + this.processMapPlanWellDrillingRepository = processMapPlanWellDrillingRepository; this.wellSectionTypeRepository = wellSectionTypeRepository; this.wellService = wellService; } @@ -67,7 +68,7 @@ public class WellDrillingProcessMapImportService : IProcessMapImportService var wellDrillingProcessMaps = ParseWorkBook(workBook); if (deleteProcessMapPlansBeforeImport) - await wellDrillingProcessMapRepository.RemoveByWellAsync(idWell, cancellationToken); + await processMapPlanWellDrillingRepository.RemoveByWellAsync(idWell, cancellationToken); foreach (var wellDrillingProcessMap in wellDrillingProcessMaps) { @@ -75,7 +76,7 @@ public class WellDrillingProcessMapImportService : IProcessMapImportService wellDrillingProcessMap.IdUser = idUser; } - await wellDrillingProcessMapRepository.InsertRangeAsync(wellDrillingProcessMaps, cancellationToken); + await processMapPlanWellDrillingRepository.InsertRangeAsync(wellDrillingProcessMaps, cancellationToken); } public async Task<(string Name, Stream File)> ExportAsync(int idWell, CancellationToken cancellationToken) @@ -85,7 +86,7 @@ public class WellDrillingProcessMapImportService : IProcessMapImportService sections = (await wellSectionTypeRepository.GetAllAsync(cancellationToken)).ToArray(); - var processMapPlans = (await wellDrillingProcessMapRepository.GetByIdWellAsync(idWell, + var processMapPlans = (await processMapPlanWellDrillingRepository.GetByIdWellAsync(idWell, cancellationToken)).ToArray(); var file = await GenerateExcelFileStreamAsync(processMapPlans, cancellationToken); @@ -113,48 +114,49 @@ public class WellDrillingProcessMapImportService : IProcessMapImportService return (name, memoryStream); } - private void AddToWorkbook(XLWorkbook workbook, IEnumerable wellDrillingProcessMaps) + private void AddToWorkbook(XLWorkbook workbook, IEnumerable processMapPlanWellDrillings) { var sheet = workbook.Worksheets.FirstOrDefault(ws => ws.Name == sheetNamePlan) ?? throw new FileFormatException($"Книга excel не содержит листа {sheetNamePlan}."); - AddToSheet(sheet, wellDrillingProcessMaps.ToArray()); + AddToSheet(sheet, processMapPlanWellDrillings.ToArray()); } - private void AddToSheet(IXLWorksheet sheet, IList wellDrillingProcessMaps) + private void AddToSheet(IXLWorksheet sheet, IList processMapPlanWellDrillings) { - if (!wellDrillingProcessMaps.Any()) + if (!processMapPlanWellDrillings.Any()) return; - for (int i = 0; i < wellDrillingProcessMaps.Count; i++) + for (int i = 0; i < processMapPlanWellDrillings.Count; i++) { var row = sheet.Row(1 + i + headerRowsCount); - AddToRow(row, wellDrillingProcessMaps[i]); + AddToRow(row, processMapPlanWellDrillings[i]); } } - private void AddToRow(IXLRow row, WellDrillingProcessMapDto wellDrillingProcessMap) + private void AddToRow(IXLRow row, ProcessMapPlanWellDrillingDto processMapPlanWellDrillings) { - row.Cell(columnWellSectionType).Value = sections.First(x => x.Id == wellDrillingProcessMap.IdWellSectionType).Caption; - row.Cell(columnMode).Value = GetModeCaption(wellDrillingProcessMap.IdMode); - row.Cell(columnDepthStart).Value = wellDrillingProcessMap.DepthStart; - row.Cell(columnDepthEnd).Value = wellDrillingProcessMap.DepthEnd; - row.Cell(columnPressurePlan).Value = wellDrillingProcessMap.Pressure.Plan; - row.Cell(columnPressureLimitMax).Value = wellDrillingProcessMap.Pressure.LimitMax; - row.Cell(columnAxialLoadPlan).Value = wellDrillingProcessMap.AxialLoad.Plan; - row.Cell(columnAxialLoadLimitMax).Value = wellDrillingProcessMap.AxialLoad.LimitMax; - row.Cell(columnTopDriveTorquePlan).Value = wellDrillingProcessMap.TopDriveTorque.Plan; - row.Cell(columnTopDriveTorqueLimitMax).Value = wellDrillingProcessMap.TopDriveTorque.LimitMax; - row.Cell(columnTopDriveSpeedPlan).Value = wellDrillingProcessMap.TopDriveSpeed.Plan; - row.Cell(columnTopDriveSpeedLimitMax).Value = wellDrillingProcessMap.TopDriveSpeed.LimitMax; - row.Cell(columnFlowPlan).Value = wellDrillingProcessMap.Flow.Plan; - row.Cell(columnFlowLimitMax).Value = wellDrillingProcessMap.Flow.LimitMax; - row.Cell(columnRopPlan).Value = wellDrillingProcessMap.RopPlan; - row.Cell(columnUsageSaub).Value = wellDrillingProcessMap.UsageSaub; - row.Cell(columnUsageSpin).Value = wellDrillingProcessMap.UsageSpin; + row.Cell(columnWellSectionType).Value = sections.First(x => x.Id == processMapPlanWellDrillings.IdWellSectionType).Caption; + row.Cell(columnMode).Value = GetModeCaption(processMapPlanWellDrillings.IdMode); + row.Cell(columnDepthStart).Value = processMapPlanWellDrillings.DepthStart; + row.Cell(columnDepthEnd).Value = processMapPlanWellDrillings.DepthEnd; + row.Cell(columnPressurePlan).Value = processMapPlanWellDrillings.Pressure.Plan; + row.Cell(columnPressureLimitMax).Value = processMapPlanWellDrillings.Pressure.LimitMax; + row.Cell(columnAxialLoadPlan).Value = processMapPlanWellDrillings.AxialLoad.Plan; + row.Cell(columnAxialLoadLimitMax).Value = processMapPlanWellDrillings.AxialLoad.LimitMax; + row.Cell(columnTopDriveTorquePlan).Value = processMapPlanWellDrillings.TopDriveTorque.Plan; + row.Cell(columnTopDriveTorqueLimitMax).Value = processMapPlanWellDrillings.TopDriveTorque.LimitMax; + row.Cell(columnTopDriveSpeedPlan).Value = processMapPlanWellDrillings.TopDriveSpeed.Plan; + row.Cell(columnTopDriveSpeedLimitMax).Value = processMapPlanWellDrillings.TopDriveSpeed.LimitMax; + row.Cell(columnFlowPlan).Value = processMapPlanWellDrillings.Flow.Plan; + row.Cell(columnFlowLimitMax).Value = processMapPlanWellDrillings.Flow.LimitMax; + row.Cell(columnRopPlan).Value = processMapPlanWellDrillings.RopPlan; + row.Cell(columnUsageSaub).Value = processMapPlanWellDrillings.UsageSaub; + row.Cell(columnUsageSpin).Value = processMapPlanWellDrillings.UsageSpin; + row.Cell(columnComment).Value = processMapPlanWellDrillings.Comment; } - private IEnumerable ParseWorkBook(IXLWorkbook workbook) + private IEnumerable ParseWorkBook(IXLWorkbook workbook) { var sheet = workbook.Worksheets.FirstOrDefault(ws => ws.Name == sheetNamePlan) ?? throw new FileFormatException($"Книга excel не содержит листа {sheetNamePlan}."); @@ -162,7 +164,7 @@ public class WellDrillingProcessMapImportService : IProcessMapImportService return ParseSheet(sheet); } - private IEnumerable ParseSheet(IXLWorksheet sheet) + private IEnumerable ParseSheet(IXLWorksheet sheet) { const int columnsCount = 17; @@ -172,9 +174,9 @@ public class WellDrillingProcessMapImportService : IProcessMapImportService var rowsCount = sheet.RowsUsed().Count() - headerRowsCount; if (rowsCount <= 0) - return Array.Empty(); + return Array.Empty(); - var processMapPlans = new WellDrillingProcessMapDto[rowsCount]; + var processMapPlans = new ProcessMapPlanWellDrillingDto[rowsCount]; var parseErrors = new List(); @@ -198,7 +200,7 @@ public class WellDrillingProcessMapImportService : IProcessMapImportService return processMapPlans; } - private WellDrillingProcessMapDto ParseRow(IXLRow row) + private ProcessMapPlanWellDrillingDto ParseRow(IXLRow row) { var wellSectionTypeCaption = row.Cell(columnWellSectionType).GetCellValue()?.Trim().ToLower(); var modeName = row.Cell(columnMode).GetCellValue()?.Trim().ToLower(); @@ -217,6 +219,7 @@ public class WellDrillingProcessMapImportService : IProcessMapImportService var ropPlan = row.Cell(columnRopPlan).GetCellValue(); var usageSaub = row.Cell(columnUsageSaub).GetCellValue(); var usageSpin = row.Cell(columnUsageSpin).GetCellValue(); + var comment = row.Cell(columnComment).GetCellValue(); var wellSection = sections.FirstOrDefault(s => s.Caption.Trim().ToLower() == wellSectionTypeCaption) ?? throw new FileFormatException( @@ -320,18 +323,19 @@ public class WellDrillingProcessMapImportService : IProcessMapImportService }, RopPlan = ropPlan, UsageSaub = usageSaub, - UsageSpin = usageSpin + UsageSpin = usageSpin, + Comment = comment }; } - private async Task GenerateExcelFileStreamAsync(WellDrillingProcessMapDto[] wellDrillingProcessMaps, + private async Task GenerateExcelFileStreamAsync(ProcessMapPlanWellDrillingDto[] processMapPlanWellDrillings, CancellationToken cancellationToken) { using var excelTemplateStream = (await GetExcelTemplateStreamAsync(cancellationToken)).File; using var workbook = new XLWorkbook(excelTemplateStream, XLEventTracking.Disabled); - AddToWorkbook(workbook, wellDrillingProcessMaps); + AddToWorkbook(workbook, processMapPlanWellDrillings); MemoryStream memoryStream = new(); workbook.SaveAs(memoryStream, new SaveOptions { });