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