From 2b265bf47f6ed7f7c90cd78f07aad2c464754ca7 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=20=D0=90=D0=BB=D0=B5=D0=BA?= =?UTF-8?q?=D1=81=D0=B0=D0=BD=D0=B4=D1=80=D0=BE=D0=B2=D0=B8=D1=87?= Date: Mon, 21 Aug 2023 14:51:46 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BB=D0=B0=D0=BD=D0=BE=D0=B2=D1=8B?= =?UTF-8?q?=D0=B5=20=D1=82=D1=80=D0=B0=D0=B5=D0=BA=D1=82=D0=BE=D1=80=D0=B8?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Поправил шаблон 2. Поправил импорт/экспорт траекторий --- .../PlannedTrajectoryImportService.cs | 45 +++--------------- .../Trajectory/PlannedTrajectoryTemplate.xlsx | Bin 7576 -> 11387 bytes 2 files changed, 7 insertions(+), 38 deletions(-) diff --git a/AsbCloudInfrastructure/Services/Trajectory/PlannedTrajectoryImportService.cs b/AsbCloudInfrastructure/Services/Trajectory/PlannedTrajectoryImportService.cs index d319492f..802de787 100644 --- a/AsbCloudInfrastructure/Services/Trajectory/PlannedTrajectoryImportService.cs +++ b/AsbCloudInfrastructure/Services/Trajectory/PlannedTrajectoryImportService.cs @@ -30,16 +30,8 @@ namespace AsbCloudInfrastructure.Services.Trajectory private const int ColumnAzimuthGeo = 3; private const int ColumnAzimuthMagnetic = 4; private const int ColumnVerticalDepth = 5; - private const int ColumnAbsoluteMark = 6; - private const int ColumnNorthOrifice = 7; - private const int ColumnEastOrifice = 8; - private const int ColumnEastCartographic = 9; - private const int ColumnNorthCartographic = 10; - private const int ColumnSpatialIntensity = 11; - private const int ColumnAngleIntensity = 12; - private const int ColumnAzimuthIntensity = 13; - private const int ColumnOrificeOffset = 14; - private const int ColumnComment = 15; + private const int ColumnRadius = 6; + private const int ColumnComment = 7; public PlannedTrajectoryImportService(IWellService wellService, ITrajectoryPlanRepository plannedTrajectoryService) { @@ -107,15 +99,7 @@ namespace AsbCloudInfrastructure.Services.Trajectory row.Cell(ColumnAzimuthGeo).Value = trajectory.AzimuthGeo; row.Cell(ColumnAzimuthMagnetic).Value = trajectory.AzimuthMagnetic; row.Cell(ColumnVerticalDepth).Value = trajectory.VerticalDepth; - row.Cell(ColumnAbsoluteMark).Value = trajectory.AbsoluteMark; - row.Cell(ColumnNorthOrifice).Value = trajectory.NorthOrifice; - row.Cell(ColumnEastOrifice).Value = trajectory.EastOrifice; - row.Cell(ColumnEastCartographic).Value = trajectory.EastCartographic; - row.Cell(ColumnNorthCartographic).Value = trajectory.NorthCartographic; - row.Cell(ColumnSpatialIntensity).Value = trajectory.SpatialIntensity; - row.Cell(ColumnAngleIntensity).Value = trajectory.AngleIntensity; - row.Cell(ColumnAzimuthIntensity).Value = trajectory.AzimuthIntensity; - row.Cell(ColumnOrificeOffset).Value = trajectory.OrificeOffset; + row.Cell(ColumnRadius).Value = trajectory.Radius; row.Cell(ColumnComment).Value = trajectory.Comment; } @@ -158,7 +142,7 @@ namespace AsbCloudInfrastructure.Services.Trajectory private IEnumerable ParseSheet(IXLWorksheet sheet) { - if (sheet.RangeUsed().RangeAddress.LastAddress.ColumnNumber < 15) + if (sheet.RangeUsed().RangeAddress.LastAddress.ColumnNumber < 7) throw new FileFormatException($"Лист {sheet.Name} содержит меньшее количество столбцов."); var count = sheet.RowsUsed().Count() - headerRowsCount; @@ -194,15 +178,7 @@ namespace AsbCloudInfrastructure.Services.Trajectory var _azimuthGeo = row.Cell(ColumnAzimuthGeo).Value; var _azimuthMagnetic = row.Cell(ColumnAzimuthMagnetic).Value; var _verticalDepth = row.Cell(ColumnVerticalDepth).Value; - var _absoluteMark = row.Cell(ColumnAbsoluteMark).Value; - var _northOrifice = row.Cell(ColumnNorthOrifice).Value; - var _eastOrifice = row.Cell(ColumnEastOrifice).Value; - var _eastCartographic = row.Cell(ColumnEastCartographic).Value; - var _northCartographic = row.Cell(ColumnNorthCartographic).Value; - var _spatialIntensity = row.Cell(ColumnSpatialIntensity).Value; - var _angleIntensity = row.Cell(ColumnAngleIntensity).Value; - var _azimuthIntensity = row.Cell(ColumnAzimuthIntensity).Value; - var _orificeOffset = row.Cell(ColumnOrificeOffset).Value; + var _radius = row.Cell(ColumnRadius).Value; var _comment = row.Cell(ColumnComment).Value; var trajectoryRow = new TrajectoryGeoPlanDto(); @@ -219,15 +195,8 @@ namespace AsbCloudInfrastructure.Services.Trajectory trajectoryRow.AzimuthGeo = getDoubleValue(_azimuthGeo, "Азимут географический", row); trajectoryRow.AzimuthMagnetic = getDoubleValue(_azimuthMagnetic, "Азимут магнитный", row); trajectoryRow.VerticalDepth = getDoubleValue(_verticalDepth, "Глубина вертикальная", row); - trajectoryRow.AbsoluteMark = getDoubleValue(_absoluteMark, "Абсолютная отметка", row); - trajectoryRow.NorthOrifice = getDoubleValue(_northOrifice, "Север относительно устья", row); - trajectoryRow.EastOrifice = getDoubleValue(_eastOrifice, "Восток относительно устья", row); - trajectoryRow.EastCartographic = getDoubleValue(_eastCartographic, "Восток картографический", row); - trajectoryRow.NorthCartographic = getDoubleValue(_northCartographic, "Север картографический", row); - trajectoryRow.SpatialIntensity = getDoubleValue(_spatialIntensity, "Простр. интенсивность", row); - trajectoryRow.AngleIntensity = getDoubleValue(_angleIntensity, "Интенсивность по углу", row); - trajectoryRow.AzimuthIntensity = getDoubleValue(_azimuthIntensity, "Интенсивность по азимуту", row); - trajectoryRow.OrificeOffset = getDoubleValue(_orificeOffset, "Смещение от устья", row); + trajectoryRow.Radius = getDoubleValue(_radius, "Радиус цели", row); + if (_comment is not null) trajectoryRow.Comment = _comment.ToString(); return trajectoryRow; diff --git a/AsbCloudInfrastructure/Services/Trajectory/PlannedTrajectoryTemplate.xlsx b/AsbCloudInfrastructure/Services/Trajectory/PlannedTrajectoryTemplate.xlsx index 68fd9cc258bfb718bd4056d4082261bca07d75ee..20080ac44fcb3671ec2fd39dfd03c44dc8014f38 100644 GIT binary patch literal 11387 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 Z{&f7R3UCk|1OQMWA6keSi!l6l_CL@X#@zq_ literal 7576 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