diff --git a/AsbCloudApp/Data/ProcessMaps/Report/WellDrillingProcessMapReportDto.cs b/AsbCloudApp/Data/ProcessMaps/Report/ProcessMapReportWellDrillingDto.cs similarity index 88% rename from AsbCloudApp/Data/ProcessMaps/Report/WellDrillingProcessMapReportDto.cs rename to AsbCloudApp/Data/ProcessMaps/Report/ProcessMapReportWellDrillingDto.cs index bb4430cc..49a96faf 100644 --- a/AsbCloudApp/Data/ProcessMaps/Report/WellDrillingProcessMapReportDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/Report/ProcessMapReportWellDrillingDto.cs @@ -5,7 +5,7 @@ namespace AsbCloudApp.Data.ProcessMaps.Report; /// /// Модель РТК /// -public class WellDrillingProcessMapReportDto +public class ProcessMapReportWellDrillingDto { /// /// Идентификатор скважины @@ -64,22 +64,22 @@ public class WellDrillingProcessMapReportDto /// /// Перепад давления, атм /// - public WellDrillingProcessMapReportParamsDto PressureDiff { get; set; } = new(); + public ProcessMapReportWellDrillingParamsDto PressureDiff { get; set; } = new(); /// /// Нагрузка, т /// - public WellDrillingProcessMapReportParamsDto AxialLoad { get; set; } = new(); + public ProcessMapReportWellDrillingParamsDto AxialLoad { get; set; } = new(); /// /// Момент на ВСП, кНхМ /// - public WellDrillingProcessMapReportParamsDto TopDriveTorque { get; set; } = new(); + public ProcessMapReportWellDrillingParamsDto TopDriveTorque { get; set; } = new(); /// /// Ограничение скорости, м/ч /// - public WellDrillingProcessMapReportParamsDto SpeedLimit { get; set; } = new(); + public ProcessMapReportWellDrillingParamsDto SpeedLimit { get; set; } = new(); /// /// Процент использования системы АПД план, % diff --git a/AsbCloudApp/Data/ProcessMaps/Report/WellDrillingProcessMapReportParamsDto.cs b/AsbCloudApp/Data/ProcessMaps/Report/ProcessMapReportWellDrillingParamsDto.cs similarity index 93% rename from AsbCloudApp/Data/ProcessMaps/Report/WellDrillingProcessMapReportParamsDto.cs rename to AsbCloudApp/Data/ProcessMaps/Report/ProcessMapReportWellDrillingParamsDto.cs index 9089fb1e..cc3dc899 100644 --- a/AsbCloudApp/Data/ProcessMaps/Report/WellDrillingProcessMapReportParamsDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/Report/ProcessMapReportWellDrillingParamsDto.cs @@ -3,7 +3,7 @@ /// /// Параметры РТК /// -public class WellDrillingProcessMapReportParamsDto +public class ProcessMapReportWellDrillingParamsDto { /// /// Уставка план diff --git a/AsbCloudApp/Services/ProcessMaps/WellDrillingProcessMap/IWellDrillingProcessMapReportService.cs b/AsbCloudApp/Services/ProcessMaps/WellDrillingProcessMap/IProcessMapReportWellDrillingService.cs similarity index 72% rename from AsbCloudApp/Services/ProcessMaps/WellDrillingProcessMap/IWellDrillingProcessMapReportService.cs rename to AsbCloudApp/Services/ProcessMaps/WellDrillingProcessMap/IProcessMapReportWellDrillingService.cs index be52a135..c2c54f99 100644 --- a/AsbCloudApp/Services/ProcessMaps/WellDrillingProcessMap/IWellDrillingProcessMapReportService.cs +++ b/AsbCloudApp/Services/ProcessMaps/WellDrillingProcessMap/IProcessMapReportWellDrillingService.cs @@ -6,9 +6,9 @@ using AsbCloudApp.Data.ProcessMaps.Report; namespace AsbCloudApp.Services.ProcessMaps.WellDrillingProcessMap; /// -/// Сервис формирования РТК +/// Сервис формирования отчёта РТК /// -public interface IWellDrillingProcessMapReportService +public interface IProcessMapReportWellDrillingService { /// /// Получить отчёт РТК по бурению @@ -16,5 +16,5 @@ public interface IWellDrillingProcessMapReportService /// /// /// - Task> GetAsync(int idWell, CancellationToken token); + Task> GetAsync(int idWell, CancellationToken token); } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMaps/WellDrillingProcessMap/Report/Data/ParamStat.cs b/AsbCloudInfrastructure/Services/ProcessMaps/WellDrillingProcessMap/Report/Data/ParamStat.cs index aab2ed52..56f84efd 100644 --- a/AsbCloudInfrastructure/Services/ProcessMaps/WellDrillingProcessMap/Report/Data/ParamStat.cs +++ b/AsbCloudInfrastructure/Services/ProcessMaps/WellDrillingProcessMap/Report/Data/ParamStat.cs @@ -79,9 +79,9 @@ internal class ParamStat previous = current; } - public WellDrillingProcessMapReportParamsDto MakeParams(double? spPlan) + public ProcessMapReportWellDrillingParamsDto MakeParams(double? spPlan) { - var result = new WellDrillingProcessMapReportParamsDto + var result = new ProcessMapReportWellDrillingParamsDto { SetpointPlan = spPlan, Fact = DivideValByDepth(pvWSum), diff --git a/AsbCloudInfrastructure/Services/ProcessMaps/WellDrillingProcessMap/Report/WellDrillingProcessMapReportExportService.cs b/AsbCloudInfrastructure/Services/ProcessMaps/WellDrillingProcessMap/Report/WellDrillingProcessMapReportExportService.cs index 58d3e4f2..233ca49b 100644 --- a/AsbCloudInfrastructure/Services/ProcessMaps/WellDrillingProcessMap/Report/WellDrillingProcessMapReportExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMaps/WellDrillingProcessMap/Report/WellDrillingProcessMapReportExportService.cs @@ -20,13 +20,13 @@ public class WellDrillingProcessMapReportExportService : IProcessMapReportExport const int headerRowsCount = 5; private readonly IWellService wellService; - private readonly IWellDrillingProcessMapReportService wellDrillingProcessMapReportService; + private readonly IProcessMapReportWellDrillingService processMapReportWellDrillingService; public WellDrillingProcessMapReportExportService(IWellService wellService, - IWellDrillingProcessMapReportService wellDrillingProcessMapReportService) + IProcessMapReportWellDrillingService processMapReportWellDrillingService) { this.wellService = wellService; - this.wellDrillingProcessMapReportService = wellDrillingProcessMapReportService; + this.processMapReportWellDrillingService = processMapReportWellDrillingService; } @@ -40,7 +40,7 @@ public class WellDrillingProcessMapReportExportService : IProcessMapReportExport var stream = GetExcelTemplateStream(); using var workbook = new XLWorkbook(stream, XLEventTracking.Disabled); - var data = await wellDrillingProcessMapReportService.GetAsync(idWell, cancellationToken); + var data = await processMapReportWellDrillingService.GetAsync(idWell, cancellationToken); FillProcessMapToWorkbook(workbook, data); @@ -54,7 +54,7 @@ public class WellDrillingProcessMapReportExportService : IProcessMapReportExport } private static void FillProcessMapToWorkbook(XLWorkbook workbook, - IEnumerable data) + IEnumerable data) { var sheet = workbook.Worksheets.FirstOrDefault(); if (sheet is null) @@ -64,7 +64,7 @@ public class WellDrillingProcessMapReportExportService : IProcessMapReportExport } private static void FillSheet(IXLWorksheet sheet, - IEnumerable> dataBySections) + IEnumerable> dataBySections) { var startRow = headerRowsCount + 1; foreach (var sectionData in dataBySections) @@ -74,7 +74,7 @@ public class WellDrillingProcessMapReportExportService : IProcessMapReportExport } } - private static int FillSection(IXLWorksheet sheet, IGrouping sectionData, + private static int FillSection(IXLWorksheet sheet, IGrouping sectionData, int row) { var rowStart = row; @@ -96,7 +96,7 @@ public class WellDrillingProcessMapReportExportService : IProcessMapReportExport return row; } - private static int FillIntervalData(IXLWorksheet sheet, WellDrillingProcessMapReportDto interval, int row) + private static int FillIntervalData(IXLWorksheet sheet, ProcessMapReportWellDrillingDto interval, int row) { const int columnDepth = firstColumn + 1; const int columnDate = firstColumn + 2; @@ -120,7 +120,7 @@ public class WellDrillingProcessMapReportExportService : IProcessMapReportExport return row; } - private static int FillIntervalModeData(IXLWorksheet sheet, WellDrillingProcessMapReportDto modeData, + private static int FillIntervalModeData(IXLWorksheet sheet, ProcessMapReportWellDrillingDto modeData, int column, int row) { int columnDeltaDepth = column + 1; @@ -156,7 +156,7 @@ public class WellDrillingProcessMapReportExportService : IProcessMapReportExport } private static void FillIntervalModeDataParam(IXLWorksheet sheet, - WellDrillingProcessMapReportParamsDto dataParam, int column, int row) + ProcessMapReportWellDrillingParamsDto dataParam, int column, int row) { const int columnOffsetSpPlan = 0; const int columnOffsetSpFact = 1; @@ -181,7 +181,7 @@ public class WellDrillingProcessMapReportExportService : IProcessMapReportExport } private static void FillIntervalModeDataSpeed(IXLWorksheet sheet, - WellDrillingProcessMapReportParamsDto dataParam, int column, int row) + ProcessMapReportWellDrillingParamsDto dataParam, int column, int row) { const int columnOffsetSpPlan = 0; const int columnOffsetSpFact = 1; diff --git a/AsbCloudInfrastructure/Services/ProcessMaps/WellDrillingProcessMap/Report/WellDrillingProcessMapReportService.cs b/AsbCloudInfrastructure/Services/ProcessMaps/WellDrillingProcessMap/Report/WellDrillingProcessMapReportService.cs index e38f839b..38574c30 100644 --- a/AsbCloudInfrastructure/Services/ProcessMaps/WellDrillingProcessMap/Report/WellDrillingProcessMapReportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMaps/WellDrillingProcessMap/Report/WellDrillingProcessMapReportService.cs @@ -14,25 +14,25 @@ using AsbCloudInfrastructure.Services.ProcessMaps.WellDrillingProcessMap.Report. namespace AsbCloudInfrastructure.Services.ProcessMaps.WellDrillingProcessMap.Report; -public class WellDrillingProcessMapReportService : IWellDrillingProcessMapReportService +public class WellDrillingProcessMapReportService : IProcessMapReportWellDrillingService { private readonly IWellService wellService; - private readonly IWellDrillingProcessMapRepository wellDrillingProcessMapRepository; + private readonly IProcessMapPlanRepository processMapPlanWellDrillingRepository; private readonly ITelemetryDataSaubService telemetryDataSaubService; private readonly IWellOperationRepository wellOperationRepository; public WellDrillingProcessMapReportService(IWellService wellService, - IWellDrillingProcessMapRepository wellDrillingProcessMapRepository, + IProcessMapPlanRepository processMapPlanWellDrillingRepository, ITelemetryDataSaubService telemetryDataSaubService, IWellOperationRepository wellOperationRepository) { this.wellService = wellService; - this.wellDrillingProcessMapRepository = wellDrillingProcessMapRepository; + this.processMapPlanWellDrillingRepository = processMapPlanWellDrillingRepository; this.telemetryDataSaubService = telemetryDataSaubService; this.wellOperationRepository = wellOperationRepository; } - public async Task> GetAsync(int idWell, + public async Task> GetAsync(int idWell, CancellationToken token) { var well = await wellService.GetOrDefaultAsync(idWell, token) @@ -41,34 +41,34 @@ public class WellDrillingProcessMapReportService : IWellDrillingProcessMapReport if (!well.IdTelemetry.HasValue) throw new ArgumentInvalidException(nameof(idWell), $"Скважина с Id: {idWell} не имеет телеметрии"); - var wellDrillingProcessMaps = await wellDrillingProcessMapRepository.GetByIdWellAsync(idWell, token); + var processMapPlanWellDrillings = await processMapPlanWellDrillingRepository.GetByIdWellAsync(idWell, token); - if (!wellDrillingProcessMaps.Any()) - return Enumerable.Empty(); + if (!processMapPlanWellDrillings.Any()) + return Enumerable.Empty(); var telemetryDataStat = (await telemetryDataSaubService.GetTelemetryDataStatAsync(well.IdTelemetry.Value, token)).ToArray(); if (!telemetryDataStat.Any()) - return Enumerable.Empty(); + return Enumerable.Empty(); - var result = CalcByIntervals(wellDrillingProcessMaps, telemetryDataStat); + var result = CalcByIntervals(processMapPlanWellDrillings, telemetryDataStat); return result; } - private IEnumerable CalcByIntervals( - IEnumerable wellDrillingProcessMaps, + private IEnumerable CalcByIntervals( + IEnumerable processMapPlanWellDrillings, TelemetryDataSaubStatDto[] telemetryDataStat) { - var processMapIntervals = CalcDepthIntervals(wellDrillingProcessMaps); + var processMapIntervals = CalcDepthIntervals(processMapPlanWellDrillings); - var result = new List(processMapIntervals.Count() * 4); + var result = new List(processMapIntervals.Count() * 4); var telemetryIndexStart = Array.FindIndex(telemetryDataStat, t => t.WellDepthMin >= processMapIntervals.First().DepthStart); if (telemetryIndexStart < 0) - return Enumerable.Empty(); + return Enumerable.Empty(); IDictionary sectionTypes = wellOperationRepository .GetSectionTypes() @@ -76,10 +76,10 @@ public class WellDrillingProcessMapReportService : IWellDrillingProcessMapReport foreach (var interval in processMapIntervals) { - var processMapPlanInterval = wellDrillingProcessMaps + var processMapPlanWellDrillingInterval = processMapPlanWellDrillings .Where(p => p.DepthStart <= interval.DepthEnd && p.DepthEnd >= interval.DepthStart); - if (!processMapPlanInterval.Any()) + if (!processMapPlanWellDrillingInterval.Any()) continue; var telemetryIndexEnd = Array.FindIndex(telemetryDataStat, telemetryIndexStart, @@ -89,8 +89,8 @@ public class WellDrillingProcessMapReportService : IWellDrillingProcessMapReport var telemetryDataInterval = telemetryDataStat.AsSpan(telemetryIndexStart, telemetryIndexEnd - telemetryIndexStart); - IEnumerable subIntervalsResult = - CalcSubIntervals(interval, processMapPlanInterval, telemetryDataInterval, sectionTypes); + IEnumerable subIntervalsResult = + CalcSubIntervals(interval, processMapPlanWellDrillingInterval, telemetryDataInterval, sectionTypes); result.AddRange(subIntervalsResult); telemetryIndexStart = telemetryIndexEnd; @@ -100,12 +100,12 @@ public class WellDrillingProcessMapReportService : IWellDrillingProcessMapReport } private static IEnumerable<(double DepthStart, double DepthEnd)> CalcDepthIntervals( - IEnumerable wellDrillingProcessMaps) + IEnumerable processMapPlanWellDrillings) { - if (!wellDrillingProcessMaps.Any()) + if (!processMapPlanWellDrillings.Any()) yield break; - var intervalStarts = wellDrillingProcessMaps + var intervalStarts = processMapPlanWellDrillings .OrderBy(i => i.DepthStart) .Select(p => p.DepthStart) .Distinct() @@ -114,20 +114,20 @@ public class WellDrillingProcessMapReportService : IWellDrillingProcessMapReport for (var i = 1; i < intervalStarts.Length; i++) yield return (intervalStarts[i - 1], intervalStarts[i]); - yield return (intervalStarts[^1], wellDrillingProcessMaps.Max(p => p.DepthEnd)); + yield return (intervalStarts[^1], processMapPlanWellDrillings.Max(p => p.DepthEnd)); } - private static IEnumerable CalcSubIntervals( + private static IEnumerable CalcSubIntervals( (double DepthStart, double DepthEnd) interval, - IEnumerable wellDrillingProcessMapInterval, + IEnumerable processMapPlanWellDrillingInterval, Span telemetryDataInterval, IDictionary sectionTypes) { var telemetryDataIntervalLength = telemetryDataInterval.Length; if (telemetryDataInterval.Length == 0) - return Enumerable.Empty(); + return Enumerable.Empty(); - var result = new List(); + var result = new List(); var telemetryIndexStart = 0; var subInterval = interval; @@ -140,7 +140,7 @@ public class WellDrillingProcessMapReportService : IWellDrillingProcessMapReport if (!telemetryRowSpan.IsEmpty) { - var intervalReportRow = CalcSubIntervalReportRow(subInterval, wellDrillingProcessMapInterval, + var intervalReportRow = CalcSubIntervalReportRow(subInterval, processMapPlanWellDrillingInterval, telemetryRowSpan, sectionTypes); result.Add(intervalReportRow); } @@ -151,24 +151,24 @@ public class WellDrillingProcessMapReportService : IWellDrillingProcessMapReport } subInterval.DepthEnd = interval.DepthEnd; - var intervalReportRowLast = CalcSubIntervalReportRow(subInterval, wellDrillingProcessMapInterval, + var intervalReportRowLast = CalcSubIntervalReportRow(subInterval, processMapPlanWellDrillingInterval, telemetryDataInterval[telemetryIndexStart..telemetryDataIntervalLength], sectionTypes); result.Add(intervalReportRowLast); return result; } - private static WellDrillingProcessMapReportDto CalcSubIntervalReportRow( + private static ProcessMapReportWellDrillingDto CalcSubIntervalReportRow( (double DepthStart, double DepthEnd) subInterval, - IEnumerable wellDrillingProcessMaps, + IEnumerable processMapPlanWellDrillings, Span telemetryRowSpan, IDictionary sectionTypes) { var telemetryStat = new TelemetryStat(telemetryRowSpan); - var processMapByMode = wellDrillingProcessMaps.FirstOrDefault(p => p.IdMode == telemetryStat.IdMode); - var processMapFirst = wellDrillingProcessMaps.First(); + var processMapByMode = processMapPlanWellDrillings.FirstOrDefault(p => p.IdMode == telemetryStat.IdMode); + var processMapFirst = processMapPlanWellDrillings.First(); var idWellSectionType = processMapByMode?.IdWellSectionType ?? processMapFirst.IdWellSectionType; - var result = new WellDrillingProcessMapReportDto + var result = new ProcessMapReportWellDrillingDto { IdWell = processMapByMode?.IdWell ?? processMapFirst.IdWell, IdWellSectionType = idWellSectionType,