Fix demand

This commit is contained in:
Luiz Filipe 2022-08-25 15:38:08 -03:00
parent 6cd5703c60
commit 41b4cf0c42

View File

@ -73,7 +73,7 @@ class Med5minRepository extends AbstractRepository implements Med5minContractInt
]; ];
if (!is_null($typeField)) { if (!is_null($typeField)) {
$fields = $this->typeField($fields, $typeField); $fields = $this->typeField($fields, $typeField, 5);
} }
$groupBy = $this->groupField($typeField); $groupBy = $this->groupField($typeField);
@ -83,6 +83,8 @@ class Med5minRepository extends AbstractRepository implements Med5minContractInt
->distinct() ->distinct()
->get(); ->get();
Log::debug('5min');
return Helpers::formatOfFooter($result); return Helpers::formatOfFooter($result);
} }
@ -100,7 +102,7 @@ class Med5minRepository extends AbstractRepository implements Med5minContractInt
]; ];
if (!is_null($typeField)) { if (!is_null($typeField)) {
$fields = $this->typeField($fields, $typeField); $fields = $this->typeField($fields, $typeField, 15);
} }
$groupBy = $this->groupField($typeField); $groupBy = $this->groupField($typeField);
@ -127,7 +129,7 @@ class Med5minRepository extends AbstractRepository implements Med5minContractInt
]; ];
if (!is_null($typeField)) { if (!is_null($typeField)) {
$fields = $this->typeField($fields, $typeField); $fields = $this->typeField($fields, $typeField, 60);
} }
$groupBy = $this->groupField($typeField, $type); $groupBy = $this->groupField($typeField, $type);
@ -214,7 +216,7 @@ class Med5minRepository extends AbstractRepository implements Med5minContractInt
return $arr; return $arr;
} }
private function typeField(array $fields, bool $typeField): array private function typeField(array $fields, bool $typeField, $period = 60): array
{ {
return collect($fields)->when($typeField, function ($collection, $value) { return collect($fields)->when($typeField, function ($collection, $value) {
@ -237,12 +239,19 @@ class Med5minRepository extends AbstractRepository implements Med5minContractInt
return $collection->merge($field); return $collection->merge($field);
}, function ($collection, $value) { }, function ($collection, $value) use($period) {
$multiplyBy = 1;
if($period === 5) {
$multiplyBy = 12;
}else if($period === 15) {
$multiplyBy = 4;
}
$field = $field =
[ [
DB::raw("(CASE WHEN (((med_5min.minuto-5)/60) >= 18 AND ((med_5min.minuto-5)/60) < 21 AND extract( dow from date '1899-12-30' + cast (med_5min.dia_num as integer)) BETWEEN 1 AND 5) THEN dados_cadastrais.demanda_p ELSE dados_cadastrais.demanda_fp END)*1.05 as dem_tolerancia"), DB::raw("(CASE WHEN (((med_5min.minuto-5)/60) >= 18 AND ((med_5min.minuto-5)/60) < 21 AND extract( dow from date '1899-12-30' + cast (med_5min.dia_num as integer)) BETWEEN 1 AND 5) THEN dados_cadastrais.demanda_p ELSE dados_cadastrais.demanda_fp END)*1.05 as dem_tolerancia"),
DB::raw("SUM(med_5min.ativa_consumo) AS dem_reg"), DB::raw("SUM(med_5min.ativa_consumo)*".$multiplyBy." AS dem_reg"),
DB::raw("(CASE WHEN (((med_5min.minuto-5)/60) >= 18 AND ((med_5min.minuto-5)/60) <= 21 AND extract( dow from date '1899-12-30' + cast (med_5min.dia_num as integer)) BETWEEN 1 AND 5) THEN dados_cadastrais.demanda_p ELSE dados_cadastrais.demanda_fp END) as dem_cont") DB::raw("(CASE WHEN (((med_5min.minuto-5)/60) >= 18 AND ((med_5min.minuto-5)/60) <= 21 AND extract( dow from date '1899-12-30' + cast (med_5min.dia_num as integer)) BETWEEN 1 AND 5) THEN dados_cadastrais.demanda_p ELSE dados_cadastrais.demanda_fp END) as dem_cont")
]; ];