From 17bbf8d0e6c20b6eab5ebe953c52dd849eea7a8c Mon Sep 17 00:00:00 2001 From: Giuliano Paschoalino Date: Thu, 4 Dec 2025 16:26:32 -0300 Subject: [PATCH] FP calculation logic correction in Med5minRepository for improved accuracy --- README.md | 2 +- .../Med5min/Med5minRepository.php | 25 ++++++++++++------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 9e486b2..716da7a 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ # API -## Requerimentos \ No newline at end of file +## Requerimento diff --git a/app/Repositories/Med5min/Med5minRepository.php b/app/Repositories/Med5min/Med5minRepository.php index c3184f3..e3a8153 100644 --- a/app/Repositories/Med5min/Med5minRepository.php +++ b/app/Repositories/Med5min/Med5minRepository.php @@ -245,15 +245,22 @@ class Med5minRepository extends AbstractRepository implements Med5minContractInt $field = [ DB::raw(" - ( - SUM(med_5min.ativa_consumo) - / - CASE WHEN SQRT(SUM(med_5min.reativa_consumo+med_5min.reativa_geracao)^2) <> 0 - THEN SQRT(SUM(med_5min.reativa_consumo+med_5min.reativa_geracao)^2) - ELSE NULL - END - ) as FP"), - DB::raw("0.92 as F_ref") + CASE + WHEN (SUM(med_5min.ativa_consumo - med_5min.ativa_geracao) = 0 AND SUM(med_5min.reativa_consumo - med_5min.reativa_geracao) = 0) THEN NULL + WHEN SUM(med_5min.reativa_consumo - med_5min.reativa_geracao) > 0 THEN + ABS(SUM(med_5min.ativa_consumo - med_5min.ativa_geracao)) / + SQRT(POWER(SUM(med_5min.ativa_consumo - med_5min.ativa_geracao), 2) + POWER(SUM(med_5min.reativa_consumo - med_5min.reativa_geracao), 2)) + ELSE NULL + END as fp_indutivo"), + DB::raw(" + CASE + WHEN (SUM(med_5min.ativa_consumo - med_5min.ativa_geracao) = 0 AND SUM(med_5min.reativa_consumo - med_5min.reativa_geracao) = 0) THEN NULL + WHEN SUM(med_5min.reativa_consumo - med_5min.reativa_geracao) < 0 THEN + ABS(SUM(med_5min.ativa_consumo - med_5min.ativa_geracao)) / + SQRT(POWER(SUM(med_5min.ativa_consumo - med_5min.ativa_geracao), 2) + POWER(SUM(med_5min.reativa_consumo - med_5min.reativa_geracao), 2)) + ELSE NULL + END as fp_capacitivo"), + DB::raw("0.92 as f_ref") ]; return $collection->merge($field);