diff --git a/AsbCloudApp/Repositories/IWellCompositeRepository.cs b/AsbCloudApp/Repositories/IWellCompositeRepository.cs
index 8b24d32f..8369a803 100644
--- a/AsbCloudApp/Repositories/IWellCompositeRepository.cs
+++ b/AsbCloudApp/Repositories/IWellCompositeRepository.cs
@@ -35,7 +35,7 @@ namespace AsbCloudApp.Repositories
///
///
///
- Task> GetCompositeProcessMap(int idWell, CancellationToken token);
+ Task?> GetCompositeProcessMap(int idWell, CancellationToken token);
}
#nullable disable
}
diff --git a/AsbCloudApp/Requests/WellCompositeRequest.cs b/AsbCloudApp/Requests/WellCompositeRequest.cs
index 893a88fd..f9f2246a 100644
--- a/AsbCloudApp/Requests/WellCompositeRequest.cs
+++ b/AsbCloudApp/Requests/WellCompositeRequest.cs
@@ -1,4 +1,6 @@
-namespace AsbCloudApp.Requests
+using System.Collections.Generic;
+
+namespace AsbCloudApp.Requests
{
#nullable enable
///
@@ -9,12 +11,12 @@
///
/// Идентификатор скважины
///
- public int IdWell { get; set; }
+ public IEnumerable IdWells { get; set; } = null!;
///
/// Тип секции
///
- public int? IdWellSectionType { get; set; }
+ public IEnumerable? IdWellSectionTypes { get; set; } = null!;
}
#nullable disable
}
diff --git a/AsbCloudApp/Services/IProcessMapService.cs b/AsbCloudApp/Services/IProcessMapService.cs
index f45f8c36..11bb2846 100644
--- a/AsbCloudApp/Services/IProcessMapService.cs
+++ b/AsbCloudApp/Services/IProcessMapService.cs
@@ -1,7 +1,5 @@
-using AsbCloudApp.Data;
-using AsbCloudApp.Data.ProcessMap;
+using AsbCloudApp.Data.ProcessMap;
using System.Collections.Generic;
-using System.IO;
using System.Threading;
using System.Threading.Tasks;
diff --git a/AsbCloudInfrastructure/Repository/ProcessMapRepository.cs b/AsbCloudInfrastructure/Repository/ProcessMapRepository.cs
index 257791bc..e631bcbb 100644
--- a/AsbCloudInfrastructure/Repository/ProcessMapRepository.cs
+++ b/AsbCloudInfrastructure/Repository/ProcessMapRepository.cs
@@ -43,10 +43,10 @@ namespace AsbCloudInfrastructure.Repository
public async Task?> GetByRequesProcessMaplAsync(WellCompositeRequest request, CancellationToken token)
{
- var query = GetQuery().Where(e => e.IdWell == request.IdWell);
- if (request.IdWellSectionType is not null)
+ var query = GetQuery().Where(e => request.IdWells.Contains(e.IdWell));
+ if (request.IdWellSectionTypes is not null)
{
- query.Where(e => e.IdWellSectionType == request.IdWellSectionType);
+ query.Where(e => request.IdWellSectionTypes.Contains(e.IdWellSectionType));
}
var entities = await query
diff --git a/AsbCloudInfrastructure/Repository/WellCompositeRepository.cs b/AsbCloudInfrastructure/Repository/WellCompositeRepository.cs
index a56fa91f..557132b5 100644
--- a/AsbCloudInfrastructure/Repository/WellCompositeRepository.cs
+++ b/AsbCloudInfrastructure/Repository/WellCompositeRepository.cs
@@ -51,53 +51,49 @@ namespace AsbCloudInfrastructure.Repository
}
///
- public async Task> GetCompositeProcessMap(int idWell, CancellationToken token)
+ public async Task?> GetCompositeProcessMap(int idWell, CancellationToken token)
{
- var result = new List();
-
var dtos = await GetAsync(idWell, token);
- foreach (var dto in dtos)
- {
- var processMaps = (await processMapRepository.GetByRequesProcessMaplAsync(new WellCompositeRequest
- {
- IdWell = dto.IdWellSrc,
- IdWellSectionType = dto.IdWellSectionType
- }
- , token))?
- .Where(x => x.IdWellSectionType == dto.IdWellSectionType)
- .Select(x => new ProcessMapDto
- {
- IdWell = dto.IdWell,
- IdWellSectionType = dto.IdWellSectionType,
- RopPlan = x.RopPlan,
- DepthStart = x.DepthStart,
- DepthEnd = x.DepthEnd,
- AxialLoad = new PlanFactDto
- {
- Plan = x.AxialLoad.Fact ?? 0
- },
- Flow = new PlanFactDto
- {
- Plan = x.Flow.Fact ?? x.Flow.Plan
- },
- Pressure = new PlanFactDto
- {
- Plan = x.Pressure.Fact ?? x.Pressure.Plan
- },
- TopDriveSpeed = new PlanFactDto
- {
- Plan = x.TopDriveSpeed.Fact ?? x.TopDriveSpeed.Plan
- },
- TopDriveTorque = new PlanFactDto
- {
- Plan = x.TopDriveTorque.Fact ?? x.TopDriveTorque.Plan
- },
- LastUpdate = DateTime.UtcNow
- });
+ var idWells = dtos.Select(c => c.IdWellSrc);
+ var idWellSectionTypes = dtos.Select(c => c.IdWellSectionType);
- if (processMaps is not null)
- result.AddRange(processMaps);
- }
+ var processMap = (await processMapRepository.GetByRequesProcessMaplAsync(new WellCompositeRequest
+ {
+ IdWells = idWells,
+ IdWellSectionTypes = idWellSectionTypes
+ },
+ token));
+
+ var result = processMap?.Select(x => new ProcessMapDto
+ {
+ IdWell = x.IdWell,
+ IdWellSectionType = x.IdWellSectionType,
+ RopPlan = x.RopPlan,
+ DepthStart = x.DepthStart,
+ DepthEnd = x.DepthEnd,
+ AxialLoad = new PlanFactDto
+ {
+ Plan = x.AxialLoad.Fact ?? x.AxialLoad.Plan,
+ },
+ Flow = new PlanFactDto
+ {
+ Plan = x.Flow.Fact ?? x.Flow.Plan
+ },
+ Pressure = new PlanFactDto
+ {
+ Plan = x.Pressure.Fact ?? x.Pressure.Plan
+ },
+ TopDriveSpeed = new PlanFactDto
+ {
+ Plan = x.TopDriveSpeed.Fact ?? x.TopDriveSpeed.Plan
+ },
+ TopDriveTorque = new PlanFactDto
+ {
+ Plan = x.TopDriveTorque.Fact ?? x.TopDriveTorque.Plan
+ },
+ LastUpdate = DateTime.UtcNow
+ });
+
return result;
}
diff --git a/AsbCloudInfrastructure/Services/ProcessMap/ProcessMapService.cs b/AsbCloudInfrastructure/Services/ProcessMap/ProcessMapService.cs
index 998f61fb..0ede2e82 100644
--- a/AsbCloudInfrastructure/Services/ProcessMap/ProcessMapService.cs
+++ b/AsbCloudInfrastructure/Services/ProcessMap/ProcessMapService.cs
@@ -26,7 +26,6 @@ namespace AsbCloudInfrastructure.Services.ProcessMap
private readonly ITelemetryDataSaubService telemetryDataSaubService;
private readonly ILimitingParameterRepository limitingParameterRepository;
private readonly ISubsystemOperationTimeService subsystemOperationTimeService;
- private readonly IWellCompositeRepository wellCompositeRepository;
public ProcessMapService(
IWellService wellService,
@@ -34,8 +33,7 @@ namespace AsbCloudInfrastructure.Services.ProcessMap
IProcessMapRepository processMapRepository,
ITelemetryDataSaubService telemetryDataSaubService,
ILimitingParameterRepository limitingParameterRepository,
- ISubsystemOperationTimeService subsystemOperationTimeService,
- IWellCompositeRepository wellCompositeRepository)
+ ISubsystemOperationTimeService subsystemOperationTimeService)
{
this.wellService = wellService;
this.wellOperationRepository = wellOperationService;
@@ -43,7 +41,6 @@ namespace AsbCloudInfrastructure.Services.ProcessMap
this.telemetryDataSaubService = telemetryDataSaubService;
this.limitingParameterRepository = limitingParameterRepository;
this.subsystemOperationTimeService = subsystemOperationTimeService;
- this.wellCompositeRepository = wellCompositeRepository;
}
///