forked from ddrilling/AsbCloudServer
Комментарии в DTOs
This commit is contained in:
parent
13b4486e38
commit
cf40bb85a1
@ -29,4 +29,9 @@ public class DrillerDto : IId
|
||||
/// Отчество
|
||||
/// </summary>
|
||||
public string? Patronymic { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Полное имя
|
||||
/// </summary>
|
||||
public string FullName => $"{Surname} {Name} {Patronymic}";
|
||||
}
|
||||
|
@ -1,12 +1,21 @@
|
||||
using AsbCloudApp.Data.Subsystems;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace AsbCloudApp.Data.WellReport;
|
||||
|
||||
//TODO: комментарии
|
||||
/// <summary>
|
||||
/// Показатели бурильщиков
|
||||
/// </summary>
|
||||
public class DrillerReportDto
|
||||
{
|
||||
public ScheduleDto Shedule { get; set; }
|
||||
/// <summary>
|
||||
/// Расписание
|
||||
/// </summary>
|
||||
public ScheduleDto Shedule { get; set; } = null!;
|
||||
|
||||
public IEnumerable<SubsystemStatDto> SubsystemsStat { get; set; }
|
||||
/// <summary>
|
||||
/// Наработка подсистем
|
||||
/// </summary>
|
||||
public IEnumerable<SubsystemStatDto> SubsystemsStat { get; set; } = Enumerable.Empty<SubsystemStatDto>();
|
||||
}
|
@ -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: комментарии
|
||||
/// <summary>
|
||||
/// Бурение по уставкам
|
||||
/// </summary>
|
||||
public class DrillingBySetpointsDto
|
||||
{
|
||||
public DrillingBySetpointsDto(IEnumerable<ProcessMapReportDataSaubStatDto> 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)
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Давление
|
||||
/// </summary>
|
||||
public double? Pressure { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Нагрузка
|
||||
/// </summary>
|
||||
public double? AxialLoad { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Момент
|
||||
/// </summary>
|
||||
public double? TopDriveTorque { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Скорость
|
||||
/// </summary>
|
||||
public double? SpeedLimit { get; set; }
|
||||
}
|
@ -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: комментарии
|
||||
/// <summary>
|
||||
/// Режим работы
|
||||
/// </summary>
|
||||
public class OperatingModeDto
|
||||
{
|
||||
public OperatingModeDto(IEnumerable<WellOperationBaseDto> 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<ProcessMapPlanRotorDto> 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);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Интервал от
|
||||
/// </summary>
|
||||
public double DepthStart { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Интервал до
|
||||
/// </summary>
|
||||
public double DepthEnd { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Скорость проходки мин, м/ч
|
||||
/// </summary>
|
||||
public double? RopMin { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Скорость проходки максимум, м/ч
|
||||
/// </summary>
|
||||
public double? RopMax { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Скорость проходки среднее, м/ч
|
||||
/// </summary>
|
||||
public double? RopAvg { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Нагрузка на долото минимум, т
|
||||
/// </summary>
|
||||
public double? WeightOnBitMin { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Нагрузка на долото максимум, т
|
||||
/// </summary>
|
||||
public double? WeightOnBitMax { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Нагрузка на долото среднее, т
|
||||
/// </summary>
|
||||
public double? WeightOnBitAvg { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Момент минимум, кН*м
|
||||
/// </summary>
|
||||
public double? DriveTorqueMin { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Момент максимум, кН*м
|
||||
/// </summary>
|
||||
public double? DriveTorqueMax { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Момент среднее, кН*м
|
||||
/// </summary>
|
||||
public double? DriveTorqueAvg { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Перепад давления минимум, атм
|
||||
/// </summary>
|
||||
public double? DifferentialPressureMin { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Перепад давления максимум, атм
|
||||
/// </summary>
|
||||
public double? DifferentialPressureMax { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Перепад давления среднее, атм
|
||||
/// </summary>
|
||||
public double? DifferentialPressureAvg { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Q насосов минимум л/с
|
||||
/// </summary>
|
||||
public double? FrowRateMin { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Q насосов максимум л/с
|
||||
/// </summary>
|
||||
public double? FrowRateMax { get; set; }
|
||||
}
|
@ -3,14 +3,28 @@ using AsbCloudApp.Data.Subsystems;
|
||||
|
||||
namespace AsbCloudApp.Data.WellReport;
|
||||
|
||||
//TODO: комментарии
|
||||
/// <summary>
|
||||
/// Показатели по секции
|
||||
/// </summary>
|
||||
public class SectionReportDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Идентификатор секции
|
||||
/// </summary>
|
||||
public int IdSection { get; set; }
|
||||
|
||||
public IEnumerable<SubsystemStatDto> SubsystemsStat { get; set; }
|
||||
|
||||
public PlanFactDto<OperatingModeDto>? OperatingMode { get; set; }
|
||||
/// <summary>
|
||||
/// Наработка подсистем
|
||||
/// </summary>
|
||||
public IEnumerable<SubsystemStatDto> SubsystemsStat { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// Режимы бурения
|
||||
/// </summary>
|
||||
public PlanFactDto<OperatingModeDto> OperatingMode { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Бурение по уставкам
|
||||
/// </summary>
|
||||
public DrillingBySetpointsDto? DrillingBySetpoints { get; set; }
|
||||
}
|
@ -4,26 +4,58 @@ using AsbCloudApp.Data.User;
|
||||
|
||||
namespace AsbCloudApp.Data.WellReport;
|
||||
|
||||
//TODO: комментарии
|
||||
/// <summary>
|
||||
/// Отчёт по скважине
|
||||
/// </summary>
|
||||
public class WellReportDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Информация о скважине
|
||||
/// </summary>
|
||||
public WellDto Well { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Дата начала бурения
|
||||
/// </summary>
|
||||
public DateTimeOffset? DateFrom { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Дата окончания бурения
|
||||
/// </summary>
|
||||
public DateTimeOffset? DateTo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Дни бурения
|
||||
/// </summary>
|
||||
public PlanFactDto<double?> Days { get; set; } = null!;
|
||||
|
||||
public PlanFactDto<double?> WellBoreDepth { get; set; }
|
||||
/// <summary>
|
||||
/// Проектная глубина
|
||||
/// </summary>
|
||||
public PlanFactDto<double?> WellBoreDepth { get; set; } = null!;
|
||||
|
||||
public PlanFactDto<double?> VerticalDepth { get; set; }
|
||||
/// <summary>
|
||||
/// Вертикальная глубина
|
||||
/// </summary>
|
||||
public PlanFactDto<double?> VerticalDepth { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Дни бурения без НПВ
|
||||
/// </summary>
|
||||
public double WithoutNtpDays { get; set; }
|
||||
|
||||
public IEnumerable<ContactDto> Constacts { get; set; }
|
||||
/// <summary>
|
||||
/// Контакты
|
||||
/// </summary>
|
||||
public IEnumerable<ContactDto> Contacts { get; set; } = [];
|
||||
|
||||
public IEnumerable<SectionReportDto> SectionReports { get; set; }
|
||||
/// <summary>
|
||||
/// Показатели по секциям
|
||||
/// </summary>
|
||||
public IEnumerable<SectionReportDto> SectionReports { get; set; } = [];
|
||||
|
||||
public IEnumerable<DrillerReportDto> DrillerReports { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// Показатели по бурильщикам
|
||||
/// </summary>
|
||||
public IEnumerable<DrillerReportDto> DrillerReports { get; set; } = [];
|
||||
}
|
Loading…
Reference in New Issue
Block a user