forked from ddrilling/AsbCloudServer
Бурение слайд
This commit is contained in:
parent
bb155aa87d
commit
543db8ecca
@ -10,62 +10,62 @@ public class ProcessMapPlanSlideDto : ProcessMapPlanBaseDto
|
||||
/// <summary>
|
||||
/// Максимально допустимая скорость, м/ч
|
||||
/// </summary>
|
||||
[Range(0, 800.0, ErrorMessage = "Максимально допустимая скорость, м/ч., должно быть в пределах от 0 до 800.0")]
|
||||
public double RopLimitMax { get; set; }
|
||||
[Range(0, 800, ErrorMessage = "Максимально допустимая скорость, м/ч., должно быть в пределах от 0 до 800")]
|
||||
public double RopMax { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Максимально допустимое давление, атм
|
||||
/// </summary>
|
||||
[Range(0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400.0")]
|
||||
public double PressureLimitMax { get; set; }
|
||||
[Range(0, 400, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")]
|
||||
public double PressureMax { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Перепад давления, атм. Уставка
|
||||
/// Перепад давления уставка, атм
|
||||
/// </summary>
|
||||
[Range(0, 60.0, ErrorMessage = "Перепад давления, атм. уставка, должно быть в пределах от 0 до 60.0")]
|
||||
[Range(0, 60, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")]
|
||||
public double DifferentialPressure { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Перепад давления, атм. Ограничение
|
||||
/// Перепад давления ограничение, атм
|
||||
/// </summary>
|
||||
[Range(0, 60.0, ErrorMessage = "Перепад давления, атм., ограничение, должно быть в пределах от 0 до 60.0")]
|
||||
public double DifferentialPressureLimitMax { get; set; }
|
||||
[Range(0, 60, ErrorMessage = "Перепад давления ограничение, атм., должно быть в пределах от 0 до 60")]
|
||||
public double DifferentialPressureMax { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Нагрузка, т. Уставка
|
||||
/// Нагрузка уставка, т
|
||||
/// </summary>
|
||||
[Range(0, 50.0, ErrorMessage = " Нагрузка, т., уставка, должно быть в пределах от 0 до 50.0")]
|
||||
[Range(0, 99, ErrorMessage = "Нагрузка уставка, т., должно быть в пределах от 0 до 99")]
|
||||
public double WeightOnBit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Нагрузка, т. Ограничение
|
||||
/// Нагрузка ограничение, т
|
||||
/// </summary>
|
||||
[Range(0, 50.0, ErrorMessage = "Нагрузка, т., ограничение, должно быть в пределах от 0 до 50.0")]
|
||||
public double WeightOnBitLimitMax { get; set; }
|
||||
[Range(0, 99, ErrorMessage = "Нагрузка ограничение, т., должно быть в пределах от 0 до 99")]
|
||||
public double WeightOnBitMax { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Расход л/с. Уставка
|
||||
/// Расход уставка л/с
|
||||
/// </summary>
|
||||
[Range(0, 100.0, ErrorMessage = "Расход, л/с., уставка, должно быть в пределах от 0 до 50.0")]
|
||||
[Range(0, 100, ErrorMessage = "Расход уставка л/с., должно быть в пределах от 0 до 100")]
|
||||
public double FlowRate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Расход л/с. Ограничение
|
||||
/// Расход ограничение л/с
|
||||
/// </summary>
|
||||
[Range(0, 100.0, ErrorMessage = "Расход, л/с., ограничение, должно быть в пределах от 0 до 100.0")]
|
||||
public double FlowRateLimitMax { get; set; }
|
||||
[Range(0, 100, ErrorMessage = "Расход ограничение л/с., должно быть в пределах от 0 до 100")]
|
||||
public double FlowRateMax { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Расчётная пружина, градус
|
||||
/// </summary>
|
||||
[Range(0, 9999.9, ErrorMessage = "Расчётная пружина, градус, должно быть в пределах от 0 до 9999.9")]
|
||||
[Range(0, 9999, ErrorMessage = "Расчётная пружина, градус, должно быть в пределах от 0 до 9999")]
|
||||
public double Spring { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Складывание инструмента, м
|
||||
/// </summary>
|
||||
[Range(0, 9999.9, ErrorMessage = "Складывание инструмента, м, должно быть в пределах от 0 до 9999.9")]
|
||||
public double ToolBuckling { get; set; }
|
||||
[Range(0, 9999, ErrorMessage = "Складывание инструмента, м., должно быть в пределах от 0 до 9999")]
|
||||
public double Buckling { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Примечание
|
||||
|
@ -8,55 +8,55 @@ namespace AsbCloudDb.Model.ProcessMaps;
|
||||
[Table("t_process_map_plan_slide"), Comment("РТК план бурение слайд")]
|
||||
public class ProcessMapPlanSlide : ProcessMapPlanBase
|
||||
{
|
||||
[Column("rop_limit_max"), Comment("Максимально допустимая скорость, м/ч")]
|
||||
[Range(0, 800.0)]
|
||||
[Column("rop_max"), Comment("Максимально допустимая скорость, м/ч.")]
|
||||
[Range(0, 800)]
|
||||
[Required]
|
||||
public double RopLimitMax { get; set; }
|
||||
public double RopMax { get; set; }
|
||||
|
||||
[Column("pressure_limit_max"), Comment("Максимально допустимое давление, атм")]
|
||||
[Range(0, 400.0)]
|
||||
[Column("pressure_max"), Comment("Максимально допустимое давление, атм.")]
|
||||
[Range(0, 400)]
|
||||
[Required]
|
||||
public double PressureLimitMax { get; set; }
|
||||
public double PressureMax { get; set; }
|
||||
|
||||
[Column("differential_pressure"), Comment("Перепад давления, атм. Уставка")]
|
||||
[Range(0, 60.0)]
|
||||
[Column("differential_pressure"), Comment("Перепад давления уставка, атм.")]
|
||||
[Range(0, 60)]
|
||||
[Required]
|
||||
public double DifferentialPressure { get; set; }
|
||||
|
||||
[Column("differential_pressure_limit_max"), Comment("Перепад давления, атм. Ограничение")]
|
||||
[Range(0, 60.0)]
|
||||
[Column("differential_pressure_max"), Comment("Перепад давления ограничение, атм.")]
|
||||
[Range(0, 60)]
|
||||
[Required]
|
||||
public double DifferentialPressureLimitMax { get; set; }
|
||||
public double DifferentialPressureMax { get; set; }
|
||||
|
||||
[Column("weight_on_bit"), Comment("Нагрузка, т. Уставка")]
|
||||
[Range(0, 50.0)]
|
||||
[Column("weight_on_bit"), Comment("Нагрузка уставка, т.")]
|
||||
[Range(0, 99)]
|
||||
[Required]
|
||||
public double WeightOnBit { get; set; }
|
||||
|
||||
[Column("weight_on_bit_limit_max"), Comment("Нагрузка, т. Ограничение")]
|
||||
[Range(0, 50.0)]
|
||||
[Column("weight_on_bit_max"), Comment("Нагрузка ограничение, т.")]
|
||||
[Range(0, 99)]
|
||||
[Required]
|
||||
public double WeightOnBitLimitMax { get; set; }
|
||||
public double WeightOnBitMax { get; set; }
|
||||
|
||||
[Column("flow_rate"), Comment("Расход л/с. Уставка")]
|
||||
[Range(0, 100.0)]
|
||||
[Column("flow_rate"), Comment("Расход уставка, л/с.")]
|
||||
[Range(0, 100)]
|
||||
[Required]
|
||||
public double FlowRate { get; set; }
|
||||
|
||||
[Column("flow_rate_limit_max"), Comment("Расход л/с. Ограничение")]
|
||||
[Range(0, 100.0)]
|
||||
[Column("flow_rate_max"), Comment("Расход ограничение, л/с.")]
|
||||
[Range(0, 100)]
|
||||
[Required]
|
||||
public double FlowRateLimitMax { get; set; }
|
||||
public double FlowRateMax { get; set; }
|
||||
|
||||
[Column("spring"), Comment("Расчётная пружина, градус")]
|
||||
[Range(0, 9999.9)]
|
||||
[Range(0, 9999)]
|
||||
[Required]
|
||||
public double Spring { get; set; }
|
||||
|
||||
[Column("tool_buckling"), Comment("Складывание инструмента, м")]
|
||||
[Range(0, 9999.9)]
|
||||
[Column("buckling"), Comment("Складывание инструмента, м.")]
|
||||
[Range(0, 9999)]
|
||||
[Required]
|
||||
public double ToolBuckling { get; set; }
|
||||
public double Buckling { get; set; }
|
||||
|
||||
[Column("note"), Comment("Примечание"), StringLength(1024)]
|
||||
public string Note { get; set; } = string.Empty;
|
||||
|
@ -16,16 +16,16 @@ public class ProcessMapPlanSlideTemplate : ITemplateParameters
|
||||
{ nameof(ProcessMapPlanSlideDto.Section), new Cell(1, typeof(string)) },
|
||||
{ nameof(ProcessMapPlanSlideDto.DepthStart), new Cell(2, typeof(double)) },
|
||||
{ nameof(ProcessMapPlanSlideDto.DepthEnd), new Cell(3, typeof(double)) },
|
||||
{ nameof(ProcessMapPlanSlideDto.RopLimitMax), new Cell(4, typeof(double)) },
|
||||
{ nameof(ProcessMapPlanSlideDto.PressureLimitMax), new Cell(5, typeof(double)) },
|
||||
{ nameof(ProcessMapPlanSlideDto.RopMax), new Cell(4, typeof(double)) },
|
||||
{ nameof(ProcessMapPlanSlideDto.PressureMax), new Cell(5, typeof(double)) },
|
||||
{ nameof(ProcessMapPlanSlideDto.DifferentialPressure), new Cell(6, typeof(double)) },
|
||||
{ nameof(ProcessMapPlanSlideDto.DifferentialPressureLimitMax), new Cell(7, typeof(double)) },
|
||||
{ nameof(ProcessMapPlanSlideDto.DifferentialPressureMax), new Cell(7, typeof(double)) },
|
||||
{ nameof(ProcessMapPlanSlideDto.WeightOnBit), new Cell(8, typeof(double)) },
|
||||
{ nameof(ProcessMapPlanSlideDto.WeightOnBitLimitMax), new Cell(9, typeof(double)) },
|
||||
{ nameof(ProcessMapPlanSlideDto.WeightOnBitMax), new Cell(9, typeof(double)) },
|
||||
{ nameof(ProcessMapPlanSlideDto.FlowRate), new Cell(10, typeof(double)) },
|
||||
{ nameof(ProcessMapPlanSlideDto.FlowRateLimitMax), new Cell(11, typeof(double)) },
|
||||
{ nameof(ProcessMapPlanSlideDto.FlowRateMax), new Cell(11, typeof(double)) },
|
||||
{ nameof(ProcessMapPlanSlideDto.Spring), new Cell(12, typeof(double)) },
|
||||
{ nameof(ProcessMapPlanSlideDto.ToolBuckling), new Cell(13, typeof(double)) },
|
||||
{ nameof(ProcessMapPlanSlideDto.Buckling), new Cell(13, typeof(double)) },
|
||||
{ nameof(ProcessMapPlanSlideDto.Note), new Cell(14, typeof(double)) }
|
||||
};
|
||||
}
|
@ -287,13 +287,13 @@ public class ProcessMapReportDrillingService : IProcessMapReportDrillingService
|
||||
if (processMapPlanFilteredByDepth is ProcessMapPlanSlideDto processMapPlanSlideFilteredByDepth)
|
||||
{
|
||||
result.PressureDiff.SetpointPlan = processMapPlanSlideFilteredByDepth.DifferentialPressure;
|
||||
result.PressureDiff.Limit = processMapPlanSlideFilteredByDepth.DifferentialPressureLimitMax;
|
||||
result.PressureDiff.Limit = processMapPlanSlideFilteredByDepth.DifferentialPressureMax;
|
||||
result.AxialLoad.SetpointPlan = processMapPlanSlideFilteredByDepth.WeightOnBit;
|
||||
result.AxialLoad.Limit = processMapPlanSlideFilteredByDepth.WeightOnBitLimitMax;
|
||||
result.SpeedLimit.SetpointPlan = processMapPlanSlideFilteredByDepth.RopLimitMax;
|
||||
result.AxialLoad.Limit = processMapPlanSlideFilteredByDepth.WeightOnBitMax;
|
||||
result.SpeedLimit.SetpointPlan = processMapPlanSlideFilteredByDepth.RopMax;
|
||||
result.Flow.SetpointPlan = processMapPlanSlideFilteredByDepth.FlowRate;
|
||||
result.Flow.Limit = processMapPlanSlideFilteredByDepth.FlowRateLimitMax;
|
||||
result.Rop.Plan = processMapPlanSlideFilteredByDepth.RopLimitMax;
|
||||
result.Flow.Limit = processMapPlanSlideFilteredByDepth.FlowRateMax;
|
||||
result.Rop.Plan = processMapPlanSlideFilteredByDepth.RopMax;
|
||||
}
|
||||
|
||||
return result;
|
||||
|
@ -186,7 +186,7 @@ public class WellInfoService
|
||||
|
||||
wellMapInfo.Pressure.Plan = processMapPlanSlide?.DifferentialPressure;
|
||||
|
||||
wellMapInfo.ROP.Plan = processMapPlanSlide?.RopLimitMax;
|
||||
wellMapInfo.ROP.Plan = processMapPlanSlide?.RopMax;
|
||||
}
|
||||
|
||||
var wellSubsystemStat = subsystemStat.FirstOrDefault(s => s.Well.Id == well.Id);
|
||||
|
@ -12,16 +12,16 @@ public class ProcessMapPlanSlideControllerTest : ProcessMapPlanBaseControllerTes
|
||||
IdWell = 1,
|
||||
DepthStart = 1,
|
||||
DepthEnd = 2,
|
||||
RopLimitMax = 3,
|
||||
PressureLimitMax = 4,
|
||||
RopMax = 3,
|
||||
PressureMax = 4,
|
||||
DifferentialPressure = 5,
|
||||
DifferentialPressureLimitMax = 6,
|
||||
DifferentialPressureMax = 6,
|
||||
WeightOnBit = 7,
|
||||
WeightOnBitLimitMax = 8,
|
||||
WeightOnBitMax = 8,
|
||||
FlowRate = 9,
|
||||
FlowRateLimitMax = 10,
|
||||
FlowRateMax = 10,
|
||||
Spring = 11,
|
||||
ToolBuckling = 12,
|
||||
Buckling = 12,
|
||||
Id = 0,
|
||||
IdWellSectionType = 1,
|
||||
Note = "13"
|
||||
@ -33,21 +33,21 @@ public class ProcessMapPlanSlideControllerTest : ProcessMapPlanBaseControllerTes
|
||||
DepthEnd = 10,
|
||||
DepthStart = 2,
|
||||
DifferentialPressure = 3,
|
||||
DifferentialPressureLimitMax = 4,
|
||||
DifferentialPressureMax = 4,
|
||||
FlowRate = 5,
|
||||
FlowRateLimitMax = 6,
|
||||
FlowRateMax = 6,
|
||||
Id = 0,
|
||||
IdWellSectionType = 1,
|
||||
Note = "1",
|
||||
PressureLimitMax = 2,
|
||||
RopLimitMax = 5,
|
||||
PressureMax = 2,
|
||||
RopMax = 5,
|
||||
WeightOnBit = 8,
|
||||
WeightOnBitLimitMax = 9,
|
||||
WeightOnBitMax = 9,
|
||||
IdAuthor = 1,
|
||||
IdEditor = 1,
|
||||
Creation = DateTimeOffset.UtcNow,
|
||||
Spring = 10,
|
||||
ToolBuckling = 11,
|
||||
Buckling = 11,
|
||||
};
|
||||
|
||||
public ProcessMapPlanSlideControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanSlide")
|
||||
@ -60,7 +60,7 @@ public class ProcessMapPlanSlideControllerTest : ProcessMapPlanBaseControllerTes
|
||||
var entity = dbContext
|
||||
.Set<ProcessMapPlanSlide>()
|
||||
.Where(p => p.WeightOnBit == dto.WeightOnBit)
|
||||
.Where(p => p.WeightOnBitLimitMax == dto.WeightOnBitLimitMax)
|
||||
.Where(p => p.WeightOnBitMax == dto.WeightOnBitMax)
|
||||
.Where(p => p.Note == dto.Note)
|
||||
.FirstOrDefault(p => p.IdWell == dto.IdWell);
|
||||
|
||||
@ -115,32 +115,32 @@ public class ProcessMapPlanSlideControllerTest : ProcessMapPlanBaseControllerTes
|
||||
var dtoUpdate = dto.Adapt<ProcessMapPlanSlideDto>();
|
||||
dtoUpdate.IdWell = 0;
|
||||
dtoUpdate.Note = "nebuchadnezzar";
|
||||
dtoUpdate.DifferentialPressureLimitMax++;
|
||||
dtoUpdate.DifferentialPressureMax++;
|
||||
dtoUpdate.DifferentialPressure++;
|
||||
dtoUpdate.FlowRate++;
|
||||
dtoUpdate.FlowRateLimitMax++;
|
||||
dtoUpdate.RopLimitMax++;
|
||||
dtoUpdate.FlowRateMax++;
|
||||
dtoUpdate.RopMax++;
|
||||
dtoUpdate.WeightOnBit++;
|
||||
dtoUpdate.WeightOnBitLimitMax++;
|
||||
dtoUpdate.WeightOnBitMax++;
|
||||
dtoUpdate.DepthStart++;
|
||||
dtoUpdate.DepthEnd++;
|
||||
dtoUpdate.Spring++;
|
||||
dtoUpdate.ToolBuckling++;
|
||||
dtoUpdate.Buckling++;
|
||||
|
||||
var dtoInsert = dtoUpdate.Adapt<ProcessMapPlanSlideDto>();
|
||||
dtoInsert.Id = 0;
|
||||
dtoInsert.Note = "nebuchad";
|
||||
dtoInsert.DifferentialPressureLimitMax++;
|
||||
dtoInsert.DifferentialPressureMax++;
|
||||
dtoInsert.DifferentialPressure++;
|
||||
dtoInsert.FlowRate++;
|
||||
dtoInsert.FlowRateLimitMax++;
|
||||
dtoInsert.RopLimitMax++;
|
||||
dtoInsert.FlowRateMax++;
|
||||
dtoInsert.RopMax++;
|
||||
dtoInsert.WeightOnBit++;
|
||||
dtoInsert.WeightOnBitLimitMax++;
|
||||
dtoInsert.WeightOnBitMax++;
|
||||
dtoInsert.DepthStart++;
|
||||
dtoInsert.DepthEnd++;
|
||||
dtoUpdate.Spring++;
|
||||
dtoUpdate.ToolBuckling++;
|
||||
dtoUpdate.Buckling++;
|
||||
|
||||
await UpdateOrInsertRange(entity, dtoUpdate, dtoInsert);
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ using AsbCloudDb.Model.ProcessMaps;
|
||||
using AsbCloudInfrastructure.Services.ProcessMapPlan.Export;
|
||||
using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser;
|
||||
|
||||
namespace AsbCloudWebApi.Controllers.ProcessMaps;
|
||||
namespace AsbCloudWebApi.Controllers.ProcessMaps.Operations;
|
||||
|
||||
/// <summary>
|
||||
/// РТК план бурения (ротор)
|
Loading…
Reference in New Issue
Block a user