Бурение слайд

This commit is contained in:
Olga Nemt 2024-06-30 11:11:09 +05:00
parent bb155aa87d
commit 543db8ecca
7 changed files with 83 additions and 83 deletions

View File

@ -10,62 +10,62 @@ public class ProcessMapPlanSlideDto : ProcessMapPlanBaseDto
/// <summary> /// <summary>
/// Максимально допустимая скорость, м/ч /// Максимально допустимая скорость, м/ч
/// </summary> /// </summary>
[Range(0, 800.0, ErrorMessage = "Максимально допустимая скорость, м/ч., должно быть в пределах от 0 до 800.0")] [Range(0, 800, ErrorMessage = "Максимально допустимая скорость, м/ч., должно быть в пределах от 0 до 800")]
public double RopLimitMax { get; set; } public double RopMax { get; set; }
/// <summary> /// <summary>
/// Максимально допустимое давление, атм /// Максимально допустимое давление, атм
/// </summary> /// </summary>
[Range(0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400.0")] [Range(0, 400, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")]
public double PressureLimitMax { get; set; } public double PressureMax { get; set; }
/// <summary> /// <summary>
/// Перепад давления, атм. Уставка /// Перепад давления уставка, атм
/// </summary> /// </summary>
[Range(0, 60.0, ErrorMessage = "Перепад давления, атм. уставка, должно быть в пределах от 0 до 60.0")] [Range(0, 60, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")]
public double DifferentialPressure { get; set; } public double DifferentialPressure { get; set; }
/// <summary> /// <summary>
/// Перепад давления, атм. Ограничение /// Перепад давления ограничение, атм
/// </summary> /// </summary>
[Range(0, 60.0, ErrorMessage = "Перепад давления, атм., ограничение, должно быть в пределах от 0 до 60.0")] [Range(0, 60, ErrorMessage = "Перепад давления ограничение, атм., должно быть в пределах от 0 до 60")]
public double DifferentialPressureLimitMax { get; set; } public double DifferentialPressureMax { get; set; }
/// <summary> /// <summary>
/// Нагрузка, т. Уставка /// Нагрузка уставка, т
/// </summary> /// </summary>
[Range(0, 50.0, ErrorMessage = " Нагрузка, т., уставка, должно быть в пределах от 0 до 50.0")] [Range(0, 99, ErrorMessage = "Нагрузка уставка, т., должно быть в пределах от 0 до 99")]
public double WeightOnBit { get; set; } public double WeightOnBit { get; set; }
/// <summary> /// <summary>
/// Нагрузка, т. Ограничение /// Нагрузка ограничение, т
/// </summary> /// </summary>
[Range(0, 50.0, ErrorMessage = "Нагрузка, т., ограничение, должно быть в пределах от 0 до 50.0")] [Range(0, 99, ErrorMessage = "Нагрузка ограничение, т., должно быть в пределах от 0 до 99")]
public double WeightOnBitLimitMax { get; set; } public double WeightOnBitMax { get; set; }
/// <summary> /// <summary>
/// Расход л/с. Уставка /// Расход уставка л/с
/// </summary> /// </summary>
[Range(0, 100.0, ErrorMessage = "Расход, л/с., уставка, должно быть в пределах от 0 до 50.0")] [Range(0, 100, ErrorMessage = "Расход уставка л/с., должно быть в пределах от 0 до 100")]
public double FlowRate { get; set; } public double FlowRate { get; set; }
/// <summary> /// <summary>
/// Расход л/с. Ограничение /// Расход ограничение л/с
/// </summary> /// </summary>
[Range(0, 100.0, ErrorMessage = "Расход, л/с., ограничение, должно быть в пределах от 0 до 100.0")] [Range(0, 100, ErrorMessage = "Расход ограничение л/с., должно быть в пределах от 0 до 100")]
public double FlowRateLimitMax { get; set; } public double FlowRateMax { get; set; }
/// <summary> /// <summary>
/// Расчётная пружина, градус /// Расчётная пружина, градус
/// </summary> /// </summary>
[Range(0, 9999.9, ErrorMessage = "Расчётная пружина, градус, должно быть в пределах от 0 до 9999.9")] [Range(0, 9999, ErrorMessage = "Расчётная пружина, градус, должно быть в пределах от 0 до 9999")]
public double Spring { get; set; } public double Spring { get; set; }
/// <summary> /// <summary>
/// Складывание инструмента, м /// Складывание инструмента, м
/// </summary> /// </summary>
[Range(0, 9999.9, ErrorMessage = "Складывание инструмента, м, должно быть в пределах от 0 до 9999.9")] [Range(0, 9999, ErrorMessage = "Складывание инструмента, м., должно быть в пределах от 0 до 9999")]
public double ToolBuckling { get; set; } public double Buckling { get; set; }
/// <summary> /// <summary>
/// Примечание /// Примечание

View File

@ -8,55 +8,55 @@ namespace AsbCloudDb.Model.ProcessMaps;
[Table("t_process_map_plan_slide"), Comment("РТК план бурение слайд")] [Table("t_process_map_plan_slide"), Comment("РТК план бурение слайд")]
public class ProcessMapPlanSlide : ProcessMapPlanBase public class ProcessMapPlanSlide : ProcessMapPlanBase
{ {
[Column("rop_limit_max"), Comment("Максимально допустимая скорость, м/ч")] [Column("rop_max"), Comment("Максимально допустимая скорость, м/ч.")]
[Range(0, 800.0)] [Range(0, 800)]
[Required] [Required]
public double RopLimitMax { get; set; } public double RopMax { get; set; }
[Column("pressure_limit_max"), Comment("Максимально допустимое давление, атм")] [Column("pressure_max"), Comment("Максимально допустимое давление, атм.")]
[Range(0, 400.0)] [Range(0, 400)]
[Required] [Required]
public double PressureLimitMax { get; set; } public double PressureMax { get; set; }
[Column("differential_pressure"), Comment("Перепад давления, атм. Уставка")] [Column("differential_pressure"), Comment("Перепад давления уставка, атм.")]
[Range(0, 60.0)] [Range(0, 60)]
[Required] [Required]
public double DifferentialPressure { get; set; } public double DifferentialPressure { get; set; }
[Column("differential_pressure_limit_max"), Comment("Перепад давления, атм. Ограничение")] [Column("differential_pressure_max"), Comment("Перепад давления ограничение, атм.")]
[Range(0, 60.0)] [Range(0, 60)]
[Required] [Required]
public double DifferentialPressureLimitMax { get; set; } public double DifferentialPressureMax { get; set; }
[Column("weight_on_bit"), Comment("Нагрузка, т. Уставка")] [Column("weight_on_bit"), Comment("Нагрузка уставка, т.")]
[Range(0, 50.0)] [Range(0, 99)]
[Required] [Required]
public double WeightOnBit { get; set; } public double WeightOnBit { get; set; }
[Column("weight_on_bit_limit_max"), Comment("Нагрузка, т. Ограничение")] [Column("weight_on_bit_max"), Comment("Нагрузка ограничение, т.")]
[Range(0, 50.0)] [Range(0, 99)]
[Required] [Required]
public double WeightOnBitLimitMax { get; set; } public double WeightOnBitMax { get; set; }
[Column("flow_rate"), Comment("Расход л/с. Уставка")] [Column("flow_rate"), Comment("Расход уставка, л/с.")]
[Range(0, 100.0)] [Range(0, 100)]
[Required] [Required]
public double FlowRate { get; set; } public double FlowRate { get; set; }
[Column("flow_rate_limit_max"), Comment("Расход л/с. Ограничение")] [Column("flow_rate_max"), Comment("Расход ограничение, л/с.")]
[Range(0, 100.0)] [Range(0, 100)]
[Required] [Required]
public double FlowRateLimitMax { get; set; } public double FlowRateMax { get; set; }
[Column("spring"), Comment("Расчётная пружина, градус")] [Column("spring"), Comment("Расчётная пружина, градус")]
[Range(0, 9999.9)] [Range(0, 9999)]
[Required] [Required]
public double Spring { get; set; } public double Spring { get; set; }
[Column("tool_buckling"), Comment("Складывание инструмента, м")] [Column("buckling"), Comment("Складывание инструмента, м.")]
[Range(0, 9999.9)] [Range(0, 9999)]
[Required] [Required]
public double ToolBuckling { get; set; } public double Buckling { get; set; }
[Column("note"), Comment("Примечание"), StringLength(1024)] [Column("note"), Comment("Примечание"), StringLength(1024)]
public string Note { get; set; } = string.Empty; public string Note { get; set; } = string.Empty;

View File

@ -16,16 +16,16 @@ public class ProcessMapPlanSlideTemplate : ITemplateParameters
{ nameof(ProcessMapPlanSlideDto.Section), new Cell(1, typeof(string)) }, { nameof(ProcessMapPlanSlideDto.Section), new Cell(1, typeof(string)) },
{ nameof(ProcessMapPlanSlideDto.DepthStart), new Cell(2, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.DepthStart), new Cell(2, typeof(double)) },
{ nameof(ProcessMapPlanSlideDto.DepthEnd), new Cell(3, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.DepthEnd), new Cell(3, typeof(double)) },
{ nameof(ProcessMapPlanSlideDto.RopLimitMax), new Cell(4, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.RopMax), new Cell(4, typeof(double)) },
{ nameof(ProcessMapPlanSlideDto.PressureLimitMax), new Cell(5, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.PressureMax), new Cell(5, typeof(double)) },
{ nameof(ProcessMapPlanSlideDto.DifferentialPressure), new Cell(6, 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.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.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.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)) } { nameof(ProcessMapPlanSlideDto.Note), new Cell(14, typeof(double)) }
}; };
} }

View File

@ -287,13 +287,13 @@ public class ProcessMapReportDrillingService : IProcessMapReportDrillingService
if (processMapPlanFilteredByDepth is ProcessMapPlanSlideDto processMapPlanSlideFilteredByDepth) if (processMapPlanFilteredByDepth is ProcessMapPlanSlideDto processMapPlanSlideFilteredByDepth)
{ {
result.PressureDiff.SetpointPlan = processMapPlanSlideFilteredByDepth.DifferentialPressure; result.PressureDiff.SetpointPlan = processMapPlanSlideFilteredByDepth.DifferentialPressure;
result.PressureDiff.Limit = processMapPlanSlideFilteredByDepth.DifferentialPressureLimitMax; result.PressureDiff.Limit = processMapPlanSlideFilteredByDepth.DifferentialPressureMax;
result.AxialLoad.SetpointPlan = processMapPlanSlideFilteredByDepth.WeightOnBit; result.AxialLoad.SetpointPlan = processMapPlanSlideFilteredByDepth.WeightOnBit;
result.AxialLoad.Limit = processMapPlanSlideFilteredByDepth.WeightOnBitLimitMax; result.AxialLoad.Limit = processMapPlanSlideFilteredByDepth.WeightOnBitMax;
result.SpeedLimit.SetpointPlan = processMapPlanSlideFilteredByDepth.RopLimitMax; result.SpeedLimit.SetpointPlan = processMapPlanSlideFilteredByDepth.RopMax;
result.Flow.SetpointPlan = processMapPlanSlideFilteredByDepth.FlowRate; result.Flow.SetpointPlan = processMapPlanSlideFilteredByDepth.FlowRate;
result.Flow.Limit = processMapPlanSlideFilteredByDepth.FlowRateLimitMax; result.Flow.Limit = processMapPlanSlideFilteredByDepth.FlowRateMax;
result.Rop.Plan = processMapPlanSlideFilteredByDepth.RopLimitMax; result.Rop.Plan = processMapPlanSlideFilteredByDepth.RopMax;
} }
return result; return result;

View File

@ -186,7 +186,7 @@ public class WellInfoService
wellMapInfo.Pressure.Plan = processMapPlanSlide?.DifferentialPressure; 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); var wellSubsystemStat = subsystemStat.FirstOrDefault(s => s.Well.Id == well.Id);

View File

@ -12,16 +12,16 @@ public class ProcessMapPlanSlideControllerTest : ProcessMapPlanBaseControllerTes
IdWell = 1, IdWell = 1,
DepthStart = 1, DepthStart = 1,
DepthEnd = 2, DepthEnd = 2,
RopLimitMax = 3, RopMax = 3,
PressureLimitMax = 4, PressureMax = 4,
DifferentialPressure = 5, DifferentialPressure = 5,
DifferentialPressureLimitMax = 6, DifferentialPressureMax = 6,
WeightOnBit = 7, WeightOnBit = 7,
WeightOnBitLimitMax = 8, WeightOnBitMax = 8,
FlowRate = 9, FlowRate = 9,
FlowRateLimitMax = 10, FlowRateMax = 10,
Spring = 11, Spring = 11,
ToolBuckling = 12, Buckling = 12,
Id = 0, Id = 0,
IdWellSectionType = 1, IdWellSectionType = 1,
Note = "13" Note = "13"
@ -33,21 +33,21 @@ public class ProcessMapPlanSlideControllerTest : ProcessMapPlanBaseControllerTes
DepthEnd = 10, DepthEnd = 10,
DepthStart = 2, DepthStart = 2,
DifferentialPressure = 3, DifferentialPressure = 3,
DifferentialPressureLimitMax = 4, DifferentialPressureMax = 4,
FlowRate = 5, FlowRate = 5,
FlowRateLimitMax = 6, FlowRateMax = 6,
Id = 0, Id = 0,
IdWellSectionType = 1, IdWellSectionType = 1,
Note = "1", Note = "1",
PressureLimitMax = 2, PressureMax = 2,
RopLimitMax = 5, RopMax = 5,
WeightOnBit = 8, WeightOnBit = 8,
WeightOnBitLimitMax = 9, WeightOnBitMax = 9,
IdAuthor = 1, IdAuthor = 1,
IdEditor = 1, IdEditor = 1,
Creation = DateTimeOffset.UtcNow, Creation = DateTimeOffset.UtcNow,
Spring = 10, Spring = 10,
ToolBuckling = 11, Buckling = 11,
}; };
public ProcessMapPlanSlideControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanSlide") public ProcessMapPlanSlideControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanSlide")
@ -60,7 +60,7 @@ public class ProcessMapPlanSlideControllerTest : ProcessMapPlanBaseControllerTes
var entity = dbContext var entity = dbContext
.Set<ProcessMapPlanSlide>() .Set<ProcessMapPlanSlide>()
.Where(p => p.WeightOnBit == dto.WeightOnBit) .Where(p => p.WeightOnBit == dto.WeightOnBit)
.Where(p => p.WeightOnBitLimitMax == dto.WeightOnBitLimitMax) .Where(p => p.WeightOnBitMax == dto.WeightOnBitMax)
.Where(p => p.Note == dto.Note) .Where(p => p.Note == dto.Note)
.FirstOrDefault(p => p.IdWell == dto.IdWell); .FirstOrDefault(p => p.IdWell == dto.IdWell);
@ -115,32 +115,32 @@ public class ProcessMapPlanSlideControllerTest : ProcessMapPlanBaseControllerTes
var dtoUpdate = dto.Adapt<ProcessMapPlanSlideDto>(); var dtoUpdate = dto.Adapt<ProcessMapPlanSlideDto>();
dtoUpdate.IdWell = 0; dtoUpdate.IdWell = 0;
dtoUpdate.Note = "nebuchadnezzar"; dtoUpdate.Note = "nebuchadnezzar";
dtoUpdate.DifferentialPressureLimitMax++; dtoUpdate.DifferentialPressureMax++;
dtoUpdate.DifferentialPressure++; dtoUpdate.DifferentialPressure++;
dtoUpdate.FlowRate++; dtoUpdate.FlowRate++;
dtoUpdate.FlowRateLimitMax++; dtoUpdate.FlowRateMax++;
dtoUpdate.RopLimitMax++; dtoUpdate.RopMax++;
dtoUpdate.WeightOnBit++; dtoUpdate.WeightOnBit++;
dtoUpdate.WeightOnBitLimitMax++; dtoUpdate.WeightOnBitMax++;
dtoUpdate.DepthStart++; dtoUpdate.DepthStart++;
dtoUpdate.DepthEnd++; dtoUpdate.DepthEnd++;
dtoUpdate.Spring++; dtoUpdate.Spring++;
dtoUpdate.ToolBuckling++; dtoUpdate.Buckling++;
var dtoInsert = dtoUpdate.Adapt<ProcessMapPlanSlideDto>(); var dtoInsert = dtoUpdate.Adapt<ProcessMapPlanSlideDto>();
dtoInsert.Id = 0; dtoInsert.Id = 0;
dtoInsert.Note = "nebuchad"; dtoInsert.Note = "nebuchad";
dtoInsert.DifferentialPressureLimitMax++; dtoInsert.DifferentialPressureMax++;
dtoInsert.DifferentialPressure++; dtoInsert.DifferentialPressure++;
dtoInsert.FlowRate++; dtoInsert.FlowRate++;
dtoInsert.FlowRateLimitMax++; dtoInsert.FlowRateMax++;
dtoInsert.RopLimitMax++; dtoInsert.RopMax++;
dtoInsert.WeightOnBit++; dtoInsert.WeightOnBit++;
dtoInsert.WeightOnBitLimitMax++; dtoInsert.WeightOnBitMax++;
dtoInsert.DepthStart++; dtoInsert.DepthStart++;
dtoInsert.DepthEnd++; dtoInsert.DepthEnd++;
dtoUpdate.Spring++; dtoUpdate.Spring++;
dtoUpdate.ToolBuckling++; dtoUpdate.Buckling++;
await UpdateOrInsertRange(entity, dtoUpdate, dtoInsert); await UpdateOrInsertRange(entity, dtoUpdate, dtoInsert);
} }

View File

@ -6,7 +6,7 @@ using AsbCloudDb.Model.ProcessMaps;
using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export;
using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser;
namespace AsbCloudWebApi.Controllers.ProcessMaps; namespace AsbCloudWebApi.Controllers.ProcessMaps.Operations;
/// <summary> /// <summary>
/// РТК план бурения (ротор) /// РТК план бурения (ротор)