diff --git a/AsbCloudInfrastructure/Services/ProcessMaps/Files/DrillingProcessMapTemplate.xlsx b/AsbCloudInfrastructure/Services/ProcessMaps/Files/DrillingProcessMapTemplate.xlsx index be2c62e9..1fcfbe73 100644 Binary files a/AsbCloudInfrastructure/Services/ProcessMaps/Files/DrillingProcessMapTemplate.xlsx and b/AsbCloudInfrastructure/Services/ProcessMaps/Files/DrillingProcessMapTemplate.xlsx differ 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 { });