diff --git a/AsbCloudApp/Data/DrillerDto.cs b/AsbCloudApp/Data/DrillerDto.cs index 1a11bd2a..01a4473d 100644 --- a/AsbCloudApp/Data/DrillerDto.cs +++ b/AsbCloudApp/Data/DrillerDto.cs @@ -29,4 +29,9 @@ public class DrillerDto : IId /// Отчество /// public string? Patronymic { get; set; } + + /// + /// Полное имя + /// + public string FullName => $"{Surname} {Name} {Patronymic}"; } diff --git a/AsbCloudApp/Data/WellReport/DrillerReportDto.cs b/AsbCloudApp/Data/WellReport/DrillerReportDto.cs index ce2527f3..fed9a917 100644 --- a/AsbCloudApp/Data/WellReport/DrillerReportDto.cs +++ b/AsbCloudApp/Data/WellReport/DrillerReportDto.cs @@ -1,12 +1,21 @@ using AsbCloudApp.Data.Subsystems; using System.Collections.Generic; +using System.Linq; namespace AsbCloudApp.Data.WellReport; -//TODO: комментарии +/// +/// Показатели бурильщиков +/// public class DrillerReportDto { - public ScheduleDto Shedule { get; set; } + /// + /// Расписание + /// + public ScheduleDto Shedule { get; set; } = null!; - public IEnumerable SubsystemsStat { get; set; } + /// + /// Наработка подсистем + /// + public IEnumerable SubsystemsStat { get; set; } = Enumerable.Empty(); } \ No newline at end of file diff --git a/AsbCloudApp/Data/WellReport/DrillingBySetpointsDto.cs b/AsbCloudApp/Data/WellReport/DrillingBySetpointsDto.cs index fdb70a6c..d7175141 100644 --- a/AsbCloudApp/Data/WellReport/DrillingBySetpointsDto.cs +++ b/AsbCloudApp/Data/WellReport/DrillingBySetpointsDto.cs @@ -1,29 +1,27 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using AsbCloudApp.Data.ProcessMaps.Report; +namespace AsbCloudApp.Data.WellReport; -namespace AsbCloudApp.Data.WellReport; - -//TODO: комментарии +/// +/// Бурение по уставкам +/// public class DrillingBySetpointsDto { - public DrillingBySetpointsDto(IEnumerable processMapReport) - { - if (processMapReport.All(x => x.IdWellSectionType != processMapReport.ElementAt(0).IdWellSectionType)) - throw new ArgumentException("Not all entries belong to the same well section", nameof(processMapReport)); - - Pressure = processMapReport.Sum(x => x.DeltaDepth * x.PressureDiff.SetpointUsage / 100), - AxialLoad = processMapReport.Sum(x => x.DeltaDepth * x.AxialLoad.SetpointUsage / 100), - TopDriveTorque = processMapReport.Sum(x => x.DeltaDepth * x.TopDriveTorque.SetpointUsage / 100), - SpeedLimit = processMapReport.Sum(x => x.DeltaDepth * x.SpeedLimit.SetpointUsage / 100) - } - + /// + /// Давление + /// public double? Pressure { get; set; } + /// + /// Нагрузка + /// public double? AxialLoad { get; set; } + /// + /// Момент + /// public double? TopDriveTorque { get; set; } + /// + /// Скорость + /// public double? SpeedLimit { get; set; } } \ No newline at end of file diff --git a/AsbCloudApp/Data/WellReport/OperatingModeDto.cs b/AsbCloudApp/Data/WellReport/OperatingModeDto.cs index d48aba9e..c355c623 100644 --- a/AsbCloudApp/Data/WellReport/OperatingModeDto.cs +++ b/AsbCloudApp/Data/WellReport/OperatingModeDto.cs @@ -1,78 +1,87 @@ -using AsbCloudApp.Data.ProcessMaps.Operations; -using System; -using System.Collections.Generic; -using System.Linq; -using AsbCloudApp.Data.WellOperation; +namespace AsbCloudApp.Data.WellReport; -namespace AsbCloudApp.Data.WellReport; - -//TODO: комментарии +/// +/// Режим работы +/// public class OperatingModeDto { - public OperatingModeDto(IEnumerable factWellOperations) - { - if (factWellOperations.All(x => x.IdWellSectionType != factWellOperations.ElementAt(0).IdWellSectionType)) - throw new ArgumentException("Not all entries belong to the same well section", nameof(factWellOperations)); - - if (factWellOperations.All(x => x.IdType != 1)) - throw new ArgumentException("Invalid list. There are planned operations", nameof(factWellOperations)); - - DepthStart = factWellOperations.Min(w => w.DepthStart); - DepthEnd = factWellOperations.Max(w => w.DepthEnd); - } - - public OperatingModeDto(IEnumerable processMapPlanRotor) - { - if (processMapPlanRotor.All(x => x.IdWellSectionType != processMapPlanRotor.ElementAt(0).IdWellSectionType)) - throw new ArgumentException("Not all entries belong to the same well section", nameof(processMapPlanRotor)); - - DepthStart = processMapPlanRotor.Min(p => p.DepthStart); - DepthEnd = processMapPlanRotor.Max(p => p.DepthEnd); - RopMin = processMapPlanRotor.Min(p => p.RopMax); - RopMax = processMapPlanRotor.Max(p => p.RopMax); - RopAvg = processMapPlanRotor.Average(p => p.RopMax); - WeightOnBitMin = processMapPlanRotor.Min(p => p.WeightOnBit); - WeightOnBitMax = processMapPlanRotor.Max(p => p.WeightOnBitMax); - WeightOnBitAvg = processMapPlanRotor.Average(p => p.WeightOnBit); - DriveTorqueMin = processMapPlanRotor.Min(p => p.TopDriveTorque); - DriveTorqueMax = processMapPlanRotor.Max(p => p.TopDriveTorqueMax); - DriveTorqueAvg = processMapPlanRotor.Average(p => p.TopDriveTorque); - DifferentialPressureMin = processMapPlanRotor.Min(p => p.DifferentialPressure); - DifferentialPressureMax = processMapPlanRotor.Max(p => p.DifferentialPressureMax); - DifferentialPressureAvg = processMapPlanRotor.Average(p => p.DifferentialPressure); - FrowRateMin = processMapPlanRotor.Min(p => p.FlowRate); - FrowRateMax = processMapPlanRotor.Max(p => p.FlowRateMax); - } - + /// + /// Интервал от + /// public double DepthStart { get; set; } + /// + /// Интервал до + /// public double DepthEnd { get; set; } + /// + /// Скорость проходки мин, м/ч + /// public double? RopMin { get; set; } + /// + /// Скорость проходки максимум, м/ч + /// public double? RopMax { get; set; } + /// + /// Скорость проходки среднее, м/ч + /// public double? RopAvg { get; set; } + /// + /// Нагрузка на долото минимум, т + /// public double? WeightOnBitMin { get; set; } + /// + /// Нагрузка на долото максимум, т + /// public double? WeightOnBitMax { get; set; } + /// + /// Нагрузка на долото среднее, т + /// public double? WeightOnBitAvg { get; set; } + /// + /// Момент минимум, кН*м + /// public double? DriveTorqueMin { get; set; } + /// + /// Момент максимум, кН*м + /// public double? DriveTorqueMax { get; set; } + /// + /// Момент среднее, кН*м + /// public double? DriveTorqueAvg { get; set; } + /// + /// Перепад давления минимум, атм + /// public double? DifferentialPressureMin { get; set; } + /// + /// Перепад давления максимум, атм + /// public double? DifferentialPressureMax { get; set; } + /// + /// Перепад давления среднее, атм + /// public double? DifferentialPressureAvg { get; set; } + /// + /// Q насосов минимум л/с + /// public double? FrowRateMin { get; set; } + /// + /// Q насосов максимум л/с + /// public double? FrowRateMax { get; set; } } \ No newline at end of file diff --git a/AsbCloudApp/Data/WellReport/SectionReportDto.cs b/AsbCloudApp/Data/WellReport/SectionReportDto.cs index a300c6a9..0acf094d 100644 --- a/AsbCloudApp/Data/WellReport/SectionReportDto.cs +++ b/AsbCloudApp/Data/WellReport/SectionReportDto.cs @@ -3,14 +3,28 @@ using AsbCloudApp.Data.Subsystems; namespace AsbCloudApp.Data.WellReport; -//TODO: комментарии +/// +/// Показатели по секции +/// public class SectionReportDto { + /// + /// Идентификатор секции + /// public int IdSection { get; set; } - public IEnumerable SubsystemsStat { get; set; } - - public PlanFactDto? OperatingMode { get; set; } + /// + /// Наработка подсистем + /// + public IEnumerable SubsystemsStat { get; set; } = []; + + /// + /// Режимы бурения + /// + public PlanFactDto OperatingMode { get; set; } = null!; + /// + /// Бурение по уставкам + /// public DrillingBySetpointsDto? DrillingBySetpoints { get; set; } } \ No newline at end of file diff --git a/AsbCloudApp/Data/WellReport/WellReportDto.cs b/AsbCloudApp/Data/WellReport/WellReportDto.cs index d94a7d0c..ae8e1b9c 100644 --- a/AsbCloudApp/Data/WellReport/WellReportDto.cs +++ b/AsbCloudApp/Data/WellReport/WellReportDto.cs @@ -4,26 +4,58 @@ using AsbCloudApp.Data.User; namespace AsbCloudApp.Data.WellReport; -//TODO: комментарии +/// +/// Отчёт по скважине +/// public class WellReportDto { + /// + /// Информация о скважине + /// public WellDto Well { get; set; } + /// + /// Дата начала бурения + /// public DateTimeOffset? DateFrom { get; set; } + /// + /// Дата окончания бурения + /// public DateTimeOffset? DateTo { get; set; } + /// + /// Дни бурения + /// public PlanFactDto Days { get; set; } = null!; - public PlanFactDto WellBoreDepth { get; set; } + /// + /// Проектная глубина + /// + public PlanFactDto WellBoreDepth { get; set; } = null!; - public PlanFactDto VerticalDepth { get; set; } + /// + /// Вертикальная глубина + /// + public PlanFactDto VerticalDepth { get; set; } = null!; + /// + /// Дни бурения без НПВ + /// public double WithoutNtpDays { get; set; } - public IEnumerable Constacts { get; set; } + /// + /// Контакты + /// + public IEnumerable Contacts { get; set; } = []; - public IEnumerable SectionReports { get; set; } + /// + /// Показатели по секциям + /// + public IEnumerable SectionReports { get; set; } = []; - public IEnumerable DrillerReports { get; set; } -} + /// + /// Показатели по бурильщикам + /// + public IEnumerable DrillerReports { get; set; } = []; +} \ No newline at end of file