forked from ddrilling/AsbCloudServer
Изменение dto для анализа
This commit is contained in:
parent
6d44dadb27
commit
cf8c61c1a7
@ -57,5 +57,15 @@ namespace AsbCloudApp.Data
|
|||||||
/// Пользователь панели оператора
|
/// Пользователь панели оператора
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string TelemetryUserName { get; set; }
|
public string TelemetryUserName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Бурильщик
|
||||||
|
/// </summary>
|
||||||
|
public DrillerDto Driller { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Целевые/нормативные показатели
|
||||||
|
/// </summary>
|
||||||
|
public OperationValueDto OperationValue { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -117,6 +117,7 @@ namespace AsbCloudInfrastructure
|
|||||||
services.AddTransient<IDetectedOperationService, DetectedOperationService>();
|
services.AddTransient<IDetectedOperationService, DetectedOperationService>();
|
||||||
services.AddTransient<IDrillerService, DrillerService>();
|
services.AddTransient<IDrillerService, DrillerService>();
|
||||||
services.AddTransient<IScheduleService, ScheduleService>();
|
services.AddTransient<IScheduleService, ScheduleService>();
|
||||||
|
services.AddTransient<IOperationValueService, OperationValueService>();
|
||||||
|
|
||||||
// admin crud services:
|
// admin crud services:
|
||||||
services.AddTransient<ICrudService<TelemetryDto>, CrudServiceBase<TelemetryDto, Telemetry>>(s =>
|
services.AddTransient<ICrudService<TelemetryDto>, CrudServiceBase<TelemetryDto, Telemetry>>(s =>
|
||||||
|
@ -17,11 +17,18 @@ namespace AsbCloudInfrastructure.Services.DetectOperations
|
|||||||
{
|
{
|
||||||
private readonly IAsbCloudDbContext db;
|
private readonly IAsbCloudDbContext db;
|
||||||
private readonly IWellService wellService;
|
private readonly IWellService wellService;
|
||||||
|
private readonly IOperationValueService operationValueService;
|
||||||
|
private readonly IScheduleService scheduleService;
|
||||||
|
|
||||||
public DetectedOperationService(IAsbCloudDbContext db, IWellService wellService)
|
private IEnumerable<OperationValueDto> operationValues;
|
||||||
|
|
||||||
|
public DetectedOperationService(IAsbCloudDbContext db, IWellService wellService,
|
||||||
|
IOperationValueService operationValueService, IScheduleService scheduleService)
|
||||||
{
|
{
|
||||||
this.db = db;
|
this.db = db;
|
||||||
this.wellService = wellService;
|
this.wellService = wellService;
|
||||||
|
this.operationValueService = operationValueService;
|
||||||
|
this.scheduleService = scheduleService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IEnumerable<DetectedOperationDto>> GetAsync(int idWell, DetectedOperationRequest request, CancellationToken token)
|
public async Task<IEnumerable<DetectedOperationDto>> GetAsync(int idWell, DetectedOperationRequest request, CancellationToken token)
|
||||||
@ -34,7 +41,15 @@ namespace AsbCloudInfrastructure.Services.DetectOperations
|
|||||||
.AsNoTracking();
|
.AsNoTracking();
|
||||||
|
|
||||||
var data = await query.ToListAsync(token);
|
var data = await query.ToListAsync(token);
|
||||||
var dtos = data.Select(o => Convert(o, well));
|
|
||||||
|
operationValues = await operationValueService.GetAllAsync(token);
|
||||||
|
operationValues = operationValues.Where(o => o.IdWell == idWell);
|
||||||
|
|
||||||
|
var dtos = data.Select(o => Convert(o, well, operationValues));
|
||||||
|
foreach (var item in dtos)
|
||||||
|
{
|
||||||
|
item.Driller = await scheduleService.GetDrillerAsync(idWell, item.DateStart);
|
||||||
|
}
|
||||||
return dtos;
|
return dtos;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,12 +112,14 @@ namespace AsbCloudInfrastructure.Services.DetectOperations
|
|||||||
return query;
|
return query;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static DetectedOperationDto Convert(DetectedOperation operation, WellDto well)
|
private static DetectedOperationDto Convert(DetectedOperation operation, WellDto well, IEnumerable<OperationValueDto> operationValues)
|
||||||
{
|
{
|
||||||
var dto = operation.Adapt<DetectedOperationDto>();
|
var dto = operation.Adapt<DetectedOperationDto>();
|
||||||
dto.IdWell = well.Id;
|
dto.IdWell = well.Id;
|
||||||
dto.DateStart = operation.DateStart.ToRemoteDateTime(well.Timezone.Hours);
|
dto.DateStart = operation.DateStart.ToRemoteDateTime(well.Timezone.Hours);
|
||||||
dto.DateEnd = operation.DateEnd.ToRemoteDateTime(well.Timezone.Hours);
|
dto.DateEnd = operation.DateEnd.ToRemoteDateTime(well.Timezone.Hours);
|
||||||
|
dto.OperationValue = operationValues.FirstOrDefault(e => e.IdOperationCategory == dto.IdCategory
|
||||||
|
&& e.DepthStart <= dto.DepthStart);
|
||||||
return dto;
|
return dto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user