forked from ddrilling/AsbCloudServer
Dto суточного отчёта
1. Добавлен Dto суточного отчёта 2. Добавлены блок для суточного отчёта
This commit is contained in:
parent
6b0db1adbc
commit
b92acca29b
12
AsbCloudApp/Data/DailyReport/Blocks/EditableBlock.cs
Normal file
12
AsbCloudApp/Data/DailyReport/Blocks/EditableBlock.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
namespace AsbCloudApp.Data.DailyReport.Blocks;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Базовый класс для редактируемых блоков
|
||||||
|
/// </summary>
|
||||||
|
public abstract class EditableBlock
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Id пользователя внесшего изменения в блок
|
||||||
|
/// </summary>
|
||||||
|
public int IdUser { get; set; }
|
||||||
|
}
|
@ -0,0 +1,29 @@
|
|||||||
|
namespace AsbCloudApp.Data.DailyReport.Blocks;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// РТК
|
||||||
|
/// </summary>
|
||||||
|
public class ProcessMapWellDrillingRecordDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Id режима бурения
|
||||||
|
/// 1 - ротор
|
||||||
|
/// 2 - слайд
|
||||||
|
/// </summary>
|
||||||
|
public int IdMode { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Мех. скорость
|
||||||
|
/// </summary>
|
||||||
|
public PlanFactDto<double?> Rop { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Глубина ствола
|
||||||
|
/// </summary>
|
||||||
|
public double? WellBoreDepth { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Часы бурения
|
||||||
|
/// </summary>
|
||||||
|
public double MechDrillingHours { get; set; }
|
||||||
|
}
|
32
AsbCloudApp/Data/DailyReport/Blocks/ScheduleRecordDto.cs
Normal file
32
AsbCloudApp/Data/DailyReport/Blocks/ScheduleRecordDto.cs
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
namespace AsbCloudApp.Data.DailyReport.Blocks;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Блок с графиком работы
|
||||||
|
/// </summary>
|
||||||
|
public class ScheduleRecordDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Начало смены
|
||||||
|
/// </summary>
|
||||||
|
public TimeDto? ShiftStart { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Конец смены
|
||||||
|
/// </summary>
|
||||||
|
public TimeDto? ShiftEnd { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Имя бурильщика
|
||||||
|
/// </summary>
|
||||||
|
public string? Name { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Фамилия бурильщика
|
||||||
|
/// </summary>
|
||||||
|
public string? Surname { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Отчество бурильщика
|
||||||
|
/// </summary>
|
||||||
|
public string? Patronymic { get; set; }
|
||||||
|
}
|
17
AsbCloudApp/Data/DailyReport/Blocks/Sign/SignBlockDto.cs
Normal file
17
AsbCloudApp/Data/DailyReport/Blocks/Sign/SignBlockDto.cs
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
namespace AsbCloudApp.Data.DailyReport.Blocks.Sign;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Блок с подписями
|
||||||
|
/// </summary>
|
||||||
|
public class SignBlockDto : EditableBlock
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Подпись мастера буровой
|
||||||
|
/// </summary>
|
||||||
|
public SignRecordDto? DrillingMaster { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Подпись супервайзера
|
||||||
|
/// </summary>
|
||||||
|
public SignRecordDto? Supervisor { get; set; }
|
||||||
|
}
|
28
AsbCloudApp/Data/DailyReport/Blocks/Sign/SignRecordDto.cs
Normal file
28
AsbCloudApp/Data/DailyReport/Blocks/Sign/SignRecordDto.cs
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
namespace AsbCloudApp.Data.DailyReport.Blocks.Sign;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Подпись
|
||||||
|
/// </summary>
|
||||||
|
public class SignRecordDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Имя
|
||||||
|
/// </summary>
|
||||||
|
public string Name { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Фамилия
|
||||||
|
/// </summary>
|
||||||
|
public string Surname { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Отчество
|
||||||
|
/// </summary>
|
||||||
|
public string? Patronymic { get; set; }
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return $"{Surname} {Name} {Patronymic}";
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.DailyReport.Blocks.Subsystems;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Блок статистики работы подсистем
|
||||||
|
/// </summary>
|
||||||
|
public class SubsystemBlockDto : EditableBlock
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Длина ствола скважины
|
||||||
|
/// </summary>
|
||||||
|
public double? WellBoreDepth { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Кол-во замеров за сутки
|
||||||
|
/// </summary>
|
||||||
|
public double? MeasurementsPerDaily { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Общая плановая мех. скорость
|
||||||
|
/// </summary>
|
||||||
|
public double? TotalRopPlan { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Рекомендации специалиста
|
||||||
|
/// </summary>
|
||||||
|
public string? Comment { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Модули
|
||||||
|
/// </summary>
|
||||||
|
public IEnumerable<SubsystemRecordDto> Modules { get; set; } = Enumerable.Empty<SubsystemRecordDto>();
|
||||||
|
}
|
@ -0,0 +1,44 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.DailyReport.Blocks.Subsystems;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Модуль подсистемы
|
||||||
|
/// </summary>
|
||||||
|
public class SubsystemRecordDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 1 - АПД, ч/м
|
||||||
|
/// 11 - АПД ротор
|
||||||
|
/// 12 - АПД слайд
|
||||||
|
/// 65536 - Осцилляция
|
||||||
|
/// 65537 - Демпфер
|
||||||
|
/// 100000 - Автопроработка
|
||||||
|
/// 100001 - АвтоСПО
|
||||||
|
/// </summary>
|
||||||
|
public int IdSubsystem { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Идентификатор временного интервала
|
||||||
|
/// 1 - за сутки
|
||||||
|
/// 2 - за скважину
|
||||||
|
/// </summary>
|
||||||
|
[Range(1, 2)]
|
||||||
|
public int IdTimeInterval { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Сумма изменения глубин при включеной подсистеме
|
||||||
|
/// </summary>
|
||||||
|
public double? SumDepthInterval { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Наработка подсистемы
|
||||||
|
/// </summary>
|
||||||
|
public double? UsedTimeHours { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Коэффициент использования
|
||||||
|
/// </summary>
|
||||||
|
[Range(0, 100)]
|
||||||
|
public double? KUsage { get; set; }
|
||||||
|
}
|
@ -0,0 +1,37 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.DailyReport.Blocks.TimeBalance;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Блок с балансом времени
|
||||||
|
/// </summary>
|
||||||
|
public class TimeBalanceBlockDto : EditableBlock
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Идентификатор секции
|
||||||
|
/// </summary>
|
||||||
|
[Range(1, int.MaxValue)]
|
||||||
|
public int IdSection { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Плановая проходка скважины
|
||||||
|
/// </summary>
|
||||||
|
public double? WellDepthPlan { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Фактическая проходка скважины
|
||||||
|
/// </summary>
|
||||||
|
public double WellDepthFact { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Кол-во наращиваний за сутки
|
||||||
|
/// </summary>
|
||||||
|
public double? CountWellOperationSlipsTime { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Операции на скважине
|
||||||
|
/// </summary>
|
||||||
|
public IEnumerable<TimeBalanceRecordDto> WellOperations { get; set; } = Enumerable.Empty<TimeBalanceRecordDto>();
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
namespace AsbCloudApp.Data.DailyReport.Blocks.TimeBalance;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Операции проводимые на скважине
|
||||||
|
/// </summary>
|
||||||
|
public class TimeBalanceRecordDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Мех. бурение - 4001
|
||||||
|
/// Статический замер - 4002
|
||||||
|
/// Наращивание - 4004
|
||||||
|
/// Промывка, ОБР - 4012
|
||||||
|
/// </summary>
|
||||||
|
public int IdWellOperation { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Продолжительность операции, ч
|
||||||
|
/// </summary>
|
||||||
|
public PlanFactDto<double>? DurationHours { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Отклонение за секцию
|
||||||
|
/// </summary>
|
||||||
|
public double? DrillingDeviationPerSection { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Отклонение за сутки
|
||||||
|
/// </summary>
|
||||||
|
public double? DrillingDeviationPerDaily { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Причина отклонения
|
||||||
|
/// </summary>
|
||||||
|
public string? ReasonDeviation { get; set; }
|
||||||
|
}
|
27
AsbCloudApp/Data/DailyReport/Blocks/TrajectoryBlockDto.cs
Normal file
27
AsbCloudApp/Data/DailyReport/Blocks/TrajectoryBlockDto.cs
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
namespace AsbCloudApp.Data.DailyReport.Blocks;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Блок с траекторией скважины
|
||||||
|
/// </summary>
|
||||||
|
public class TrajectoryBlockDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Глубина по стволу
|
||||||
|
/// </summary>
|
||||||
|
public double? WellboreDepth { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Глубина вертикальная
|
||||||
|
/// </summary>
|
||||||
|
public double? VerticalDepth { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Угол зенитный
|
||||||
|
/// </summary>
|
||||||
|
public double? ZenithAngle { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Азимут Географ.
|
||||||
|
/// </summary>
|
||||||
|
public double? AzimuthGeo { get; set; }
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.DailyReport.Blocks.WellOperation;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Блок с операциями проводимыми на скважине
|
||||||
|
/// </summary>
|
||||||
|
public class WellOperationBlockDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Продолжительность бурения за секцию
|
||||||
|
/// </summary>
|
||||||
|
public double DurationHoursDrillingPerSection { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Операции проводимые на скважине
|
||||||
|
/// </summary>
|
||||||
|
public IEnumerable<WellOperationRecordDto> WellOperations { get; set; } = Enumerable.Empty<WellOperationRecordDto>();
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
namespace AsbCloudApp.Data.DailyReport.Blocks.WellOperation;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Операция на скважине
|
||||||
|
/// </summary>
|
||||||
|
public class WellOperationRecordDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Id категории операции
|
||||||
|
/// </summary>
|
||||||
|
public int? IdWellCategory { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Продолжительность операции
|
||||||
|
/// </summary>
|
||||||
|
public double? DurationHours { get; set; }
|
||||||
|
}
|
@ -1,45 +1,113 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using AsbCloudApp.Data.DailyReport.Blocks;
|
||||||
|
using AsbCloudApp.Data.DailyReport.Blocks.Sign;
|
||||||
|
using AsbCloudApp.Data.DailyReport.Blocks.Subsystems;
|
||||||
|
using AsbCloudApp.Data.DailyReport.Blocks.TimeBalance;
|
||||||
|
using AsbCloudApp.Data.DailyReport.Blocks.WellOperation;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data.DailyReport
|
namespace AsbCloudApp.Data.DailyReport;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Суточный отчёт
|
||||||
|
/// </summary>
|
||||||
|
public class DailyReportDto : IId,
|
||||||
|
IWellRelated
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <inheritdoc/>
|
||||||
/// Блоки для формирования суточного рапорта
|
public int Id { get; set; }
|
||||||
/// </summary>
|
|
||||||
public class DailyReportDto
|
/// <inheritdoc/>
|
||||||
{
|
public int IdWell { get; set; }
|
||||||
/// <summary>
|
|
||||||
/// дата отчёта
|
|
||||||
/// </summary>
|
|
||||||
public DateOnly StartDate { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// блок заголовка
|
/// Название скважины
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public HeadDto Head { get; set; } = new();
|
public string WellName { get; set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// блок КНБК
|
/// Название типа скважины
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public BhaDto Bha { get; set; } = new();
|
public string? WellType { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// блок безметражные работы
|
/// Название куста
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public NoDrillingDto NoDrilling { get; set; } = new();
|
public string? Cluster { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// блок баланса времени
|
/// Заказчик
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public TimeBalanceDto TimeBalance { get; set; } = new();
|
public string? Customer { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// блок САУБ
|
/// Подрядчик
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public SaubDto Saub { get; set; } = new();
|
public string? Contractor { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// блок подписи
|
/// Месторождение
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public SignDto Sign { get; set; } = new();
|
public string? Deposit { get; set; }
|
||||||
}
|
|
||||||
|
/// <summary>
|
||||||
|
/// Глубина забоя на дату начала интервала
|
||||||
|
/// </summary>
|
||||||
|
public double? DepthStart { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Глубина забоя на дату окончания интервала
|
||||||
|
/// </summary>
|
||||||
|
public double? DepthEnd { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Дата последнего обновления
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? DateLastUpdate { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Начальная дата отчёта
|
||||||
|
/// </summary>
|
||||||
|
public DateTime DateStart { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Конечная дата отчёта
|
||||||
|
/// </summary>
|
||||||
|
public DateTime DateEnd => DateStart.AddHours(24);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Блок фактической траектории
|
||||||
|
/// </summary>
|
||||||
|
public TrajectoryBlockDto TrajectoryBlock { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Фактические операции
|
||||||
|
/// </summary>
|
||||||
|
public WellOperationBlockDto FactWellOperationBlock { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Баланс времени
|
||||||
|
/// </summary>
|
||||||
|
public TimeBalanceBlockDto? TimeBalanceBlock { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Наработка подсистем
|
||||||
|
/// </summary>
|
||||||
|
public SubsystemBlockDto? SubsystemBlock { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Подпись
|
||||||
|
/// </summary>
|
||||||
|
public SignBlockDto? SignBlock { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Блок расписания
|
||||||
|
/// </summary>
|
||||||
|
public IEnumerable<ScheduleRecordDto> ScheduleBlock { get; set; } = Enumerable.Empty<ScheduleRecordDto>();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// РТК
|
||||||
|
/// </summary>
|
||||||
|
public IEnumerable<ProcessMapWellDrillingRecordDto> ProcessMapWellDrillingBlock { get; set; } = Enumerable.Empty<ProcessMapWellDrillingRecordDto>();
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user