forked from ddrilling/AsbCloudServer
add TimeBalanceDto in MakeDefaultDailyReportAsync
This commit is contained in:
parent
d2b98d3a77
commit
1f9406c70d
@ -94,6 +94,26 @@
|
|||||||
/// НПВ
|
/// НПВ
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Npv { get; set; }
|
public string Npv { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка перед наращиванием
|
||||||
|
/// </summary>
|
||||||
|
public string ElaborationBeforeBuilding { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Шаблонировка перед наращиванием
|
||||||
|
/// </summary>
|
||||||
|
public string TemplatingBeforeBuilding { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Промывка перед наращиванием
|
||||||
|
/// </summary>
|
||||||
|
public string FlushingBeforeBuilding { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Статический замер телесистемы
|
||||||
|
/// </summary>
|
||||||
|
public string StaticSurveying { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,6 +16,7 @@ namespace AsbCloudApp.Services
|
|||||||
Task<int> DeleteAsync(DetectedOperationRequest request, CancellationToken token);
|
Task<int> DeleteAsync(DetectedOperationRequest request, CancellationToken token);
|
||||||
Task<IEnumerable<DetectedOperationStatDto>?> GetOperationsStatAsync(DetectedOperationRequest request, CancellationToken token);
|
Task<IEnumerable<DetectedOperationStatDto>?> GetOperationsStatAsync(DetectedOperationRequest request, CancellationToken token);
|
||||||
Task<Stream> ExportAsync(IEnumerable<int> idsWells, CancellationToken token);
|
Task<Stream> ExportAsync(IEnumerable<int> idsWells, CancellationToken token);
|
||||||
|
double GetSumValues(IEnumerable<DetectedOperationStatDto> detectedOperations, int idOperation);
|
||||||
}
|
}
|
||||||
#nullable disable
|
#nullable disable
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,8 @@ using AsbCloudApp.Services;
|
|||||||
using AsbCloudDb.Model;
|
using AsbCloudDb.Model;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using AsbCloudApp.Data.DailyReport;
|
using AsbCloudApp.Data.DailyReport;
|
||||||
|
using AsbCloudApp.Requests;
|
||||||
|
using AsbCloudInfrastructure.Services.DetectOperations;
|
||||||
|
|
||||||
namespace AsbCloudInfrastructure.Services.DailyReport
|
namespace AsbCloudInfrastructure.Services.DailyReport
|
||||||
{
|
{
|
||||||
@ -17,12 +19,14 @@ namespace AsbCloudInfrastructure.Services.DailyReport
|
|||||||
{
|
{
|
||||||
private readonly IAsbCloudDbContext db;
|
private readonly IAsbCloudDbContext db;
|
||||||
private readonly IWellService wellService;
|
private readonly IWellService wellService;
|
||||||
|
private readonly IDetectedOperationService detectedOperationService;
|
||||||
private readonly DailyReportMakerExcel dailyReportMaker = new DailyReportMakerExcel();
|
private readonly DailyReportMakerExcel dailyReportMaker = new DailyReportMakerExcel();
|
||||||
|
|
||||||
public DailyReportService(IAsbCloudDbContext db, IWellService wellService)
|
public DailyReportService(IAsbCloudDbContext db, IWellService wellService, IDetectedOperationService detectedOperationService)
|
||||||
{
|
{
|
||||||
this.db = db;
|
this.db = db;
|
||||||
this.wellService = wellService;
|
this.wellService = wellService;
|
||||||
|
this.detectedOperationService = detectedOperationService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IEnumerable<DailyReportDto>> GetListAsync(int idWell, DateTime? begin, DateTime? end, CancellationToken token)
|
public async Task<IEnumerable<DailyReportDto>> GetListAsync(int idWell, DateTime? begin, DateTime? end, CancellationToken token)
|
||||||
@ -109,16 +113,36 @@ namespace AsbCloudInfrastructure.Services.DailyReport
|
|||||||
private async Task<DailyReportDto> MakeDefaultDailyReportAsync(int idWell, DateTime date, CancellationToken token)
|
private async Task<DailyReportDto> MakeDefaultDailyReportAsync(int idWell, DateTime date, CancellationToken token)
|
||||||
{
|
{
|
||||||
var well = await wellService.GetOrDefaultAsync(idWell, token);
|
var well = await wellService.GetOrDefaultAsync(idWell, token);
|
||||||
|
var detectedOperations = await detectedOperationService.GetOperationsStatAsync(new DetectedOperationRequest
|
||||||
|
{
|
||||||
|
IdWell = idWell,
|
||||||
|
GtDate = date.Date,
|
||||||
|
LtDate = date.Date.AddDays(1)
|
||||||
|
}, token);
|
||||||
var dto = new DailyReportDto()
|
var dto = new DailyReportDto()
|
||||||
{
|
{
|
||||||
Head = new HeadDto()
|
Head = new HeadDto()
|
||||||
{
|
{
|
||||||
ReportDate = date.Date,
|
ReportDate = date.Date,
|
||||||
WellName = well?.Caption ?? "",
|
WellName = well?.Caption ?? "",
|
||||||
ClusterName = well?.Cluster ?? ""
|
ClusterName = well?.Cluster ?? "",
|
||||||
|
},
|
||||||
|
TimeBalance = detectedOperations is null ? new TimeBalanceDto() { } : new TimeBalanceDto()
|
||||||
|
{
|
||||||
|
Drilling = $"{detectedOperationService.GetSumValues(detectedOperations, DetectedOperationService.IdOperationRotor) + detectedOperationService.GetSumValues(detectedOperations, DetectedOperationService.IdOperationSlide)}",
|
||||||
|
Flushing = detectedOperationService.GetSumValues(detectedOperations, DetectedOperationService.idOperationFlushing).ToString(),
|
||||||
|
Building = detectedOperationService.GetSumValues(detectedOperations, DetectedOperationService.IdOperationSlipsTime).ToString(),
|
||||||
|
Elaboration = detectedOperationService.GetSumValues(detectedOperations, DetectedOperationService.idOperationElaboration).ToString(),
|
||||||
|
ElaborationBeforeBuilding = detectedOperationService.GetSumValues(detectedOperations, DetectedOperationService.idOperationElaborationBeforeBuilding).ToString(),
|
||||||
|
TemplatingBeforeBuilding = detectedOperationService.GetSumValues(detectedOperations, DetectedOperationService.idOperationTemplatingBeforeBuilding).ToString(),
|
||||||
|
FlushingBeforeBuilding = detectedOperationService.GetSumValues(detectedOperations, DetectedOperationService.idOperationFlushingBeforeBuilding).ToString(),
|
||||||
|
StaticSurveying = detectedOperationService.GetSumValues(detectedOperations, DetectedOperationService.idOperationStaticSurveying).ToString(),
|
||||||
|
Gis = detectedOperationService.GetSumValues(detectedOperations, DetectedOperationService.idOperationGis).ToString(),
|
||||||
|
Ozc = detectedOperationService.GetSumValues(detectedOperations, DetectedOperationService.idOperationOzc).ToString(),
|
||||||
|
Cementing = detectedOperationService.GetSumValues(detectedOperations, DetectedOperationService.idOperationCementing).ToString(),
|
||||||
|
Npv = detectedOperationService.GetSumValues(detectedOperations, DetectedOperationService.idOperationNpv).ToString(),
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return dto;
|
return dto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,6 +21,19 @@ namespace AsbCloudInfrastructure.Services.DetectOperations
|
|||||||
public const int IdOperationRotor = 1;
|
public const int IdOperationRotor = 1;
|
||||||
public const int IdOperationSlide = 3;
|
public const int IdOperationSlide = 3;
|
||||||
public const int IdOperationSlipsTime = 14;
|
public const int IdOperationSlipsTime = 14;
|
||||||
|
public const int idOperationFlushing = 22;
|
||||||
|
public const int idOperationElaboration = 1022;
|
||||||
|
|
||||||
|
public const int idOperationRepair = 1031;
|
||||||
|
public const int idOperationGis = 1001;
|
||||||
|
public const int idOperationOzc = 1008;
|
||||||
|
public const int idOperationCementing = 1040;
|
||||||
|
public const int idOperationNpv = 1043;
|
||||||
|
|
||||||
|
public const int idOperationElaborationBeforeBuilding = 18;
|
||||||
|
public const int idOperationTemplatingBeforeBuilding = 19;
|
||||||
|
public const int idOperationFlushingBeforeBuilding = 20;
|
||||||
|
public const int idOperationStaticSurveying = 21;
|
||||||
|
|
||||||
private readonly IAsbCloudDbContext db;
|
private readonly IAsbCloudDbContext db;
|
||||||
private readonly IWellService wellService;
|
private readonly IWellService wellService;
|
||||||
@ -283,6 +296,15 @@ namespace AsbCloudInfrastructure.Services.DetectOperations
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public double GetSumValues(IEnumerable<DetectedOperationStatDto> detectedOperations, int idOperation)
|
||||||
|
{
|
||||||
|
var result = detectedOperations
|
||||||
|
.Where(o => o.IdCategory == idOperation)
|
||||||
|
.Select(o => o.MinutesTotal)
|
||||||
|
.Sum() / 60;
|
||||||
|
return Math.Round(result, 2);
|
||||||
|
}
|
||||||
|
|
||||||
public Task<Stream> ExportAsync(IEnumerable<int> idsWells, CancellationToken token)
|
public Task<Stream> ExportAsync(IEnumerable<int> idsWells, CancellationToken token)
|
||||||
{
|
{
|
||||||
var exportService = new DetectedOperationExportService(db, wellService);
|
var exportService = new DetectedOperationExportService(db, wellService);
|
||||||
|
Loading…
Reference in New Issue
Block a user