From 12e70cb7c0f3b5c291e75d11917f746df0cc30e4 Mon Sep 17 00:00:00 2001 From: "a.chernyshev" Date: Wed, 10 Aug 2022 13:11:05 +0500 Subject: [PATCH] edit fill TimeBalanceDto --- .../Services/IDetectedOperationService.cs | 1 - .../DailyReport/DailyReportService.cs | 42 ++++++++++++------- .../DetectedOperationService.cs | 9 ---- 3 files changed, 27 insertions(+), 25 deletions(-) diff --git a/AsbCloudApp/Services/IDetectedOperationService.cs b/AsbCloudApp/Services/IDetectedOperationService.cs index 3fe70e1c..3d077443 100644 --- a/AsbCloudApp/Services/IDetectedOperationService.cs +++ b/AsbCloudApp/Services/IDetectedOperationService.cs @@ -16,7 +16,6 @@ namespace AsbCloudApp.Services Task DeleteAsync(DetectedOperationRequest request, CancellationToken token); Task?> GetOperationsStatAsync(DetectedOperationRequest request, CancellationToken token); Task ExportAsync(IEnumerable idsWells, CancellationToken token); - double GetSumValues(IEnumerable detectedOperations, int idOperation); } #nullable disable } diff --git a/AsbCloudInfrastructure/Services/DailyReport/DailyReportService.cs b/AsbCloudInfrastructure/Services/DailyReport/DailyReportService.cs index 4c921371..3ac7a947 100644 --- a/AsbCloudInfrastructure/Services/DailyReport/DailyReportService.cs +++ b/AsbCloudInfrastructure/Services/DailyReport/DailyReportService.cs @@ -11,6 +11,7 @@ using System.Collections.Generic; using AsbCloudApp.Data.DailyReport; using AsbCloudApp.Requests; using AsbCloudInfrastructure.Services.DetectOperations; +using AsbCloudApp.Data.DetectedOperation; namespace AsbCloudInfrastructure.Services.DailyReport { @@ -127,25 +128,36 @@ namespace AsbCloudInfrastructure.Services.DailyReport WellName = well?.Caption ?? "", 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(), - } + TimeBalance = detectedOperations is null ? new TimeBalanceDto() { } : GetTimeBalanceDto(detectedOperations), }; return dto; } + private TimeBalanceDto GetTimeBalanceDto(IEnumerable stat) + { + var dto = stat is null ? new TimeBalanceDto() { } : new TimeBalanceDto() + { + Drilling = $"{FormatOperationValue(stat.FirstOrDefault(x => x.IdCategory == DetectedOperationService.IdOperationRotor)) + FormatOperationValue(stat.FirstOrDefault(x => x.IdCategory == DetectedOperationService.IdOperationSlide))}", + Flushing = FormatOperationValue(stat.FirstOrDefault(x => x.IdCategory == DetectedOperationService.idOperationFlushing)).ToString(), + Building = FormatOperationValue(stat.FirstOrDefault(x => x.IdCategory == DetectedOperationService.IdOperationSlipsTime)).ToString(), + Elaboration = FormatOperationValue(stat.FirstOrDefault(x => x.IdCategory == DetectedOperationService.idOperationElaboration)).ToString(), + ElaborationBeforeBuilding = FormatOperationValue(stat.FirstOrDefault(x => x.IdCategory == DetectedOperationService.idOperationElaborationBeforeBuilding)).ToString(), + TemplatingBeforeBuilding = FormatOperationValue(stat.FirstOrDefault(x => x.IdCategory == DetectedOperationService.idOperationTemplatingBeforeBuilding)).ToString(), + FlushingBeforeBuilding = FormatOperationValue(stat.FirstOrDefault(x => x.IdCategory == DetectedOperationService.idOperationFlushingBeforeBuilding)).ToString(), + StaticSurveying = FormatOperationValue(stat.FirstOrDefault(x => x.IdCategory == DetectedOperationService.idOperationStaticSurveying)).ToString(), + Gis = FormatOperationValue(stat.FirstOrDefault(x => x.IdCategory == DetectedOperationService.idOperationGis)).ToString(), + Ozc = FormatOperationValue(stat.FirstOrDefault(x => x.IdCategory == DetectedOperationService.idOperationOzc)).ToString(), + Cementing = FormatOperationValue(stat.FirstOrDefault(x => x.IdCategory == DetectedOperationService.idOperationCementing)).ToString(), + Npv = FormatOperationValue(stat.FirstOrDefault(x => x.IdCategory == DetectedOperationService.idOperationNpv)).ToString(), + }; + return dto; + } + + private double FormatOperationValue(DetectedOperationStatDto? operationStat) + { + return operationStat is not null ? Math.Round(operationStat.MinutesTotal / 60, 2) : 0; + } + private static DailyReportDto Convert(AsbCloudDb.Model.DailyReport.DailyReport entity) { var dto = entity.Info.Adapt(); diff --git a/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs b/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs index 1bdb4469..518e1925 100644 --- a/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs +++ b/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs @@ -296,15 +296,6 @@ namespace AsbCloudInfrastructure.Services.DetectOperations return result; } - public double GetSumValues(IEnumerable detectedOperations, int idOperation) - { - var result = detectedOperations - .Where(o => o.IdCategory == idOperation) - .Select(o => o.MinutesTotal) - .Sum() / 60; - return Math.Round(result, 2); - } - public Task ExportAsync(IEnumerable idsWells, CancellationToken token) { var exportService = new DetectedOperationExportService(db, wellService);