Бурение ротор

This commit is contained in:
Olga Nemt 2024-06-29 20:46:11 +05:00
parent 9bbe417504
commit 093495ab4c
7 changed files with 71 additions and 76 deletions

View File

@ -11,13 +11,13 @@ public class ProcessMapPlanRotorDto : ProcessMapPlanBaseDto
/// Максимально допустимая скорость, м/ч /// Максимально допустимая скорость, м/ч
/// </summary> /// </summary>
[Range(0, 800.0, ErrorMessage = "Максимально допустимая скорость, м/ч., должно быть в пределах от 0 до 800.0")] [Range(0, 800.0, ErrorMessage = "Максимально допустимая скорость, м/ч., должно быть в пределах от 0 до 800.0")]
public double RopLimitMax { get; set; } public double RopMax { get; set; }
/// <summary> /// <summary>
/// Максимально допустимое давление, атм /// Максимально допустимое давление, атм
/// </summary> /// </summary>
[Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400.0")] [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400.0")]
public double PressureLimitMax { get; set; } public double PressureMax { get; set; }
/// <summary> /// <summary>
/// Перепад давления, атм. Уставка /// Перепад давления, атм. Уставка
@ -29,7 +29,7 @@ public class ProcessMapPlanRotorDto : ProcessMapPlanBaseDto
/// Перепад давления, атм. Ограничение /// Перепад давления, атм. Ограничение
/// </summary> /// </summary>
[Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., ограничение, должно быть в пределах от 0 до 60.0")] [Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., ограничение, должно быть в пределах от 0 до 60.0")]
public double DifferentialPressureLimitMax { get; set; } public double DifferentialPressureMax { get; set; }
/// <summary> /// <summary>
/// Нагрузка, т. Уставка /// Нагрузка, т. Уставка
@ -41,7 +41,7 @@ public class ProcessMapPlanRotorDto : ProcessMapPlanBaseDto
/// Нагрузка, т. Ограничение /// Нагрузка, т. Ограничение
/// </summary> /// </summary>
[Range(0.0, 99.0, ErrorMessage = "Нагрузка, т., ограничение, должно быть в пределах от 0 до 99.0")] [Range(0.0, 99.0, ErrorMessage = "Нагрузка, т., ограничение, должно быть в пределах от 0 до 99.0")]
public double WeightOnBitLimitMax { get; set; } public double WeightOnBitMax { get; set; }
/// <summary> /// <summary>
/// Момент на ВСП, кН*м. Уставка /// Момент на ВСП, кН*м. Уставка
@ -53,19 +53,19 @@ public class ProcessMapPlanRotorDto : ProcessMapPlanBaseDto
/// Момент на ВСП, кН*м. Ограничение /// Момент на ВСП, кН*м. Ограничение
/// </summary> /// </summary>
[Range(0.0, 35.0, ErrorMessage = "Момент на ВСП, кН*м., ограничение, должно быть в пределах от 0 до 35.0")] [Range(0.0, 35.0, ErrorMessage = "Момент на ВСП, кН*м., ограничение, должно быть в пределах от 0 до 35.0")]
public double TopDriveTorqueLimit { get; set; } public double TopDriveTorqueMax { get; set; }
/// <summary> /// <summary>
/// Обороты на ВСП, об/мин. Уставка /// Обороты на ВСП, об/мин. Уставка
/// </summary> /// </summary>
[Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., уставка, должно быть в пределах от 0 до 270.0")] [Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., уставка, должно быть в пределах от 0 до 270.0")]
public double RevolutionsPerMinute { get; set; } public double Rpm { get; set; }
/// <summary> /// <summary>
/// Обороты на ВСП, об/мин. Ограничение /// Обороты на ВСП, об/мин. Ограничение
/// </summary> /// </summary>
[Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., ограничение, должно быть в пределах от 0 до 270.0")] [Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., ограничение, должно быть в пределах от 0 до 270.0")]
public double RevolutionsPerMinuteLimitMax { get; set; } public double RpmMax { get; set; }
/// <summary> /// <summary>
/// Расход л/с. Уставка /// Расход л/с. Уставка
@ -77,7 +77,7 @@ public class ProcessMapPlanRotorDto : ProcessMapPlanBaseDto
/// Расход л/с. Ограничение /// Расход л/с. Ограничение
/// </summary> /// </summary>
[Range(0.0, 100.0, ErrorMessage = "Расход л/с., ограничение, должно быть в пределах от 0 до 100.0")] [Range(0.0, 100.0, ErrorMessage = "Расход л/с., ограничение, должно быть в пределах от 0 до 100.0")]
public double FlowRateLimitMax { get; set; } public double FlowRateMax { get; set; }
/// <summary> /// <summary>
/// Примечание /// Примечание

View File

@ -8,12 +8,12 @@ namespace AsbCloudDb.Model.ProcessMaps;
[Table("t_process_map_plan_rotor"), Comment("РТК план бурение ротор")] [Table("t_process_map_plan_rotor"), Comment("РТК план бурение ротор")]
public class ProcessMapPlanRotor : ProcessMapPlanBase public class ProcessMapPlanRotor : ProcessMapPlanBase
{ {
[Column("rop_limit_max"), Comment("Максимально допустимая скорость, м/ч")] [Column("rop_max"), Comment("Максимально допустимая скорость, м/ч")]
[Range(0, 800.0)] [Range(0, 800.0)]
[Required] [Required]
public double RopLimitMax { get; set; } public double RopMax { get; set; }
[Column("pressure_limit_max"), Comment("Максимально допустимое давление, атм")] [Column("pressure_max"), Comment("Максимально допустимое давление, атм")]
[Range(0.0, 400.0)] [Range(0.0, 400.0)]
[Required] [Required]
public double PressureLimitMax { get; set; } public double PressureLimitMax { get; set; }
@ -23,52 +23,53 @@ public class ProcessMapPlanRotor : ProcessMapPlanBase
[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.0, 60.0)] [Range(0.0, 60.0)]
[Required] [Required]
public double DifferentialPressureLimitMax { get; set; } public double DifferentialPressureMax { get; set; }
[Column("weight_on_bit"), Comment("Нагрузка, т. Уставка")] [Column("weight_on_bit"), Comment("Нагрузка, т. Уставка")]
[Range(0.0, 99.0)] [Range(0.0, 99.0)]
[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.0, 99.0)] [Range(0.0, 99.0)]
[Required] [Required]
public double WeightOnBitLimitMax { get; set; } public double WeightOnBitMax { get; set; }
[Column("top_drive_torque"), Comment("Момент на ВСП, кН*м. Уставка")] [Column("top_drive_torque"), Comment("Момент на ВСП, кН*м. Уставка")]
[Range(0.0, 35.0)] [Range(0.0, 35.0)]
[Required] [Required]
public double TopDriveTorque { get; set; } public double TopDriveTorque { get; set; }
[Column("top_drive_torque_limit_max"), Comment("Момент на ВСП, кН*м. Ограничение")] [Column("top_drive_torque_max"), Comment("Момент на ВСП, кН*м. Ограничение")]
[Range(0.0, 35.0)] [Range(0.0, 35.0)]
[Required] [Required]
public double TopDriveTorqueLimit { get; set; } public double TopDriveTorqueMax { get; set; }
[Column("revolution_per_minute"), Comment("Обороты на ВСП, об/мин. Уставка")] [Column("rpm"), Comment("Обороты на ВСП, об/мин. Уставка")]
[Range(0.0, 270.0)] [Range(0.0, 270.0)]
[Required] [Required]
public double RevolutionsPerMinute { get; set; } public double Rpm { get; set; }
[Column("revolutions_per_minute_limit_max"), Comment("Обороты на ВСП, об/мин. Ограничение")] [Column("rpm_max"), Comment("Обороты на ВСП, об/мин. Ограничение")]
[Range(0.0, 270.0)] [Range(0.0, 270.0)]
[Required] [Required]
public double RevolutionsPerMinuteLimitMax { get; set; } public double RpmMax { get; set; }
[Column("flow_rate"), Comment("Расход л/с. Уставка")] [Column("flow_rate"), Comment("Расход л/с. Уставка")]
[Range(0.0, 100.0)] [Range(0.0, 100.0)]
[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.0, 100.0)] [Range(0.0, 100.0)]
[Required] [Required]
public double FlowRateLimitMax { get; set; } public double FlowRateMax { get; set; }
[Column("note"), Comment("Примечание"), StringLength(1024)] [Column("note"), Comment("Примечание"), StringLength(1024)]
[Required]
public string Note { get; set; } = string.Empty; public string Note { get; set; } = string.Empty;
[ForeignKey(nameof(IdPrevious))] [ForeignKey(nameof(IdPrevious))]

View File

@ -16,18 +16,18 @@ public class ProcessMapPlanRotorTemplate : ITemplateParameters
{ nameof(ProcessMapPlanRotorDto.Section), new Cell(1, typeof(string)) }, { nameof(ProcessMapPlanRotorDto.Section), new Cell(1, typeof(string)) },
{ nameof(ProcessMapPlanRotorDto.DepthStart), new Cell(2, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.DepthStart), new Cell(2, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.DepthEnd), new Cell(3, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.DepthEnd), new Cell(3, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.RopLimitMax), new Cell(4, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.RopMax), new Cell(4, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.PressureLimitMax), new Cell(5, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.PressureMax), new Cell(5, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.DifferentialPressure), new Cell(6, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.DifferentialPressure), new Cell(6, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.DifferentialPressureLimitMax), new Cell(7, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.DifferentialPressureMax), new Cell(7, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.WeightOnBit), new Cell(8, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.WeightOnBit), new Cell(8, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.WeightOnBitLimitMax), new Cell(9, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.WeightOnBitMax), new Cell(9, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.TopDriveTorque), new Cell(10, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.TopDriveTorque), new Cell(10, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.TopDriveTorqueLimit), new Cell(11, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.TopDriveTorqueMax), new Cell(11, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.RevolutionsPerMinute), new Cell(12, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.Rpm), new Cell(12, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.RevolutionsPerMinuteLimitMax), new Cell(13, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.RpmMax), new Cell(13, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.FlowRate), new Cell(14, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.FlowRate), new Cell(14, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.FlowRateLimitMax), new Cell(15, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.FlowRateMax), new Cell(15, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.Note), new Cell(16, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.Note), new Cell(16, typeof(double)) },
}; };
} }

View File

@ -273,16 +273,16 @@ public class ProcessMapReportDrillingService : IProcessMapReportDrillingService
if(processMapPlanFilteredByDepth is ProcessMapPlanRotorDto processMapPlanRotorFilteredByDepth) if(processMapPlanFilteredByDepth is ProcessMapPlanRotorDto processMapPlanRotorFilteredByDepth)
{ {
result.PressureDiff.SetpointPlan = processMapPlanRotorFilteredByDepth.DifferentialPressure; result.PressureDiff.SetpointPlan = processMapPlanRotorFilteredByDepth.DifferentialPressure;
result.PressureDiff.Limit = processMapPlanRotorFilteredByDepth.DifferentialPressureLimitMax; result.PressureDiff.Limit = processMapPlanRotorFilteredByDepth.DifferentialPressureMax;
result.AxialLoad.SetpointPlan = processMapPlanRotorFilteredByDepth.WeightOnBit; result.AxialLoad.SetpointPlan = processMapPlanRotorFilteredByDepth.WeightOnBit;
result.AxialLoad.Limit = processMapPlanRotorFilteredByDepth.WeightOnBitLimitMax; result.AxialLoad.Limit = processMapPlanRotorFilteredByDepth.WeightOnBitMax;
result.TopDriveTorque.SetpointPlan = processMapPlanRotorFilteredByDepth.TopDriveTorque; result.TopDriveTorque.SetpointPlan = processMapPlanRotorFilteredByDepth.TopDriveTorque;
result.TopDriveTorque.Limit = processMapPlanRotorFilteredByDepth.TopDriveTorqueLimit; result.TopDriveTorque.Limit = processMapPlanRotorFilteredByDepth.TopDriveTorqueMax;
result.SpeedLimit.SetpointPlan = processMapPlanRotorFilteredByDepth.RopLimitMax; result.SpeedLimit.SetpointPlan = processMapPlanRotorFilteredByDepth.RopMax;
result.TopDriveSpeed.SetpointPlan = processMapPlanRotorFilteredByDepth.RevolutionsPerMinute; result.TopDriveSpeed.SetpointPlan = processMapPlanRotorFilteredByDepth.Rpm;
result.Flow.SetpointPlan = processMapPlanRotorFilteredByDepth.FlowRate; result.Flow.SetpointPlan = processMapPlanRotorFilteredByDepth.FlowRate;
result.Flow.Limit = processMapPlanRotorFilteredByDepth.FlowRateLimitMax; result.Flow.Limit = processMapPlanRotorFilteredByDepth.FlowRateMax;
result.Rop.Plan = processMapPlanRotorFilteredByDepth.RopLimitMax; result.Rop.Plan = processMapPlanRotorFilteredByDepth.RopMax;
} }
if (processMapPlanFilteredByDepth is ProcessMapPlanSlideDto processMapPlanSlideFilteredByDepth) if (processMapPlanFilteredByDepth is ProcessMapPlanSlideDto processMapPlanSlideFilteredByDepth)
{ {

View File

@ -171,13 +171,13 @@ public class WellInfoService
{ {
wellMapInfo.AxialLoad.Plan = processMapPlanRotor?.WeightOnBit; wellMapInfo.AxialLoad.Plan = processMapPlanRotor?.WeightOnBit;
wellMapInfo.TopDriveSpeed.Plan = processMapPlanRotor?.RevolutionsPerMinute; wellMapInfo.TopDriveSpeed.Plan = processMapPlanRotor?.Rpm;
wellMapInfo.TopDriveTorque.Plan = processMapPlanRotor?.TopDriveTorque; wellMapInfo.TopDriveTorque.Plan = processMapPlanRotor?.TopDriveTorque;
wellMapInfo.Pressure.Plan = processMapPlanRotor?.DifferentialPressure; wellMapInfo.Pressure.Plan = processMapPlanRotor?.DifferentialPressure;
wellMapInfo.ROP.Plan = processMapPlanRotor?.RopLimitMax; wellMapInfo.ROP.Plan = processMapPlanRotor?.RopMax;
} }
if (processMapPlanWellDrilling is ProcessMapPlanSlideDto processMapPlanSlide) if (processMapPlanWellDrilling is ProcessMapPlanSlideDto processMapPlanSlide)

View File

@ -28,12 +28,6 @@ public class ProcessMapPlanOscillationAnglesControllerTest :
DepthEnd = 2, DepthEnd = 2,
Id = 0, Id = 0,
IdWellSectionType = 1, IdWellSectionType = 1,
DifferentialPressure = 1,
MaxPressure = 2,
Reaming1ROPDown = 3,
Reaming1ROPUp = 4,
SetpointsSlackingOff = 5,
SetpointsTight = 6
}; };
private readonly ProcessMapPlanOscillationAngles entity = new ProcessMapPlanOscillationAngles() private readonly ProcessMapPlanOscillationAngles entity = new ProcessMapPlanOscillationAngles()

View File

@ -13,18 +13,18 @@ public class ProcessMapPlanRotorControllerTest : 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,
TopDriveTorque = 9, TopDriveTorque = 9,
TopDriveTorqueLimit = 10, TopDriveTorqueMax = 10,
RevolutionsPerMinute = 11, Rpm = 11,
RevolutionsPerMinuteLimitMax = 12, RpmMax = 12,
FlowRate = 13, FlowRate = 13,
FlowRateLimitMax = 14, FlowRateMax = 14,
Note = "15", Note = "15",
Id = 0, Id = 0,
IdWellSectionType = 1, IdWellSectionType = 1,
@ -36,20 +36,20 @@ public class ProcessMapPlanRotorControllerTest : 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, PressureLimitMax = 2,
RevolutionsPerMinute = 3, Rpm = 3,
RevolutionsPerMinuteLimitMax = 4, RpmMax = 4,
RopLimitMax = 5, RopMax = 5,
TopDriveTorque = 6, TopDriveTorque = 6,
TopDriveTorqueLimit = 7, TopDriveTorqueMax = 7,
WeightOnBit = 8, WeightOnBit = 8,
WeightOnBitLimitMax = 9, WeightOnBitMax = 9,
IdAuthor = 1, IdAuthor = 1,
IdEditor = 1, IdEditor = 1,
Creation = DateTimeOffset.UtcNow Creation = DateTimeOffset.UtcNow
@ -65,7 +65,7 @@ public class ProcessMapPlanRotorControllerTest : ProcessMapPlanBaseControllerTes
var entity = dbContext var entity = dbContext
.Set<ProcessMapPlanRotor>() .Set<ProcessMapPlanRotor>()
.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);
@ -120,36 +120,36 @@ public class ProcessMapPlanRotorControllerTest : ProcessMapPlanBaseControllerTes
var dtoUpdate = dto.Adapt<ProcessMapPlanRotorDto>(); var dtoUpdate = dto.Adapt<ProcessMapPlanRotorDto>();
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.RevolutionsPerMinute++; dtoUpdate.Rpm++;
dtoUpdate.RevolutionsPerMinuteLimitMax++; dtoUpdate.RpmMax++;
dtoUpdate.TopDriveTorque++; dtoUpdate.TopDriveTorque++;
dtoUpdate.TopDriveTorqueLimit++; dtoUpdate.TopDriveTorqueMax++;
var dtoInsert = dtoUpdate.Adapt<ProcessMapPlanRotorDto>(); var dtoInsert = dtoUpdate.Adapt<ProcessMapPlanRotorDto>();
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++;
dtoInsert.RevolutionsPerMinute++; dtoInsert.Rpm++;
dtoInsert.RevolutionsPerMinuteLimitMax++; dtoInsert.RpmMax++;
dtoInsert.TopDriveTorque++; dtoInsert.TopDriveTorque++;
dtoInsert.TopDriveTorqueLimit++; dtoInsert.TopDriveTorqueMax++;
await UpdateOrInsertRange(entity, dtoUpdate, dtoInsert); await UpdateOrInsertRange(entity, dtoUpdate, dtoInsert);
} }