From ea1a0a37a6771feaca1cacb4845bc0c721e26ef5 Mon Sep 17 00:00:00 2001 From: tgcl21 <tgcl21@inf.ufpr.br> Date: Fri, 16 May 2025 15:48:00 -0300 Subject: [PATCH 1/7] Fixed the the wrong total errors --- src/libs/routes_v1/instructionLevel.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/libs/routes_v1/instructionLevel.js b/src/libs/routes_v1/instructionLevel.js index d3cb7d0c..aa083380 100644 --- a/src/libs/routes_v1/instructionLevel.js +++ b/src/libs/routes_v1/instructionLevel.js @@ -291,7 +291,6 @@ NivelInstrucao.get('/', rqf.parse(), rqf.build(), (req, res, next) => { .field('nivel_de_instrucao', 'nivel') .field('round(sum(peso_domicilio_pessoas_com_cal), 0)', 'total') .field('ano_ref', 'year') - .where('nivel_de_instrucao <> 99') .where('faixa_etaria <> 99') .group('pnad_novo.ano_ref') .group('pnad_novo.nivel_de_instrucao') -- GitLab From a1a27edd3b3949da3028505d140bb8a4eb18d0f4 Mon Sep 17 00:00:00 2001 From: es23 <es23@inf.ufpr.br> Date: Tue, 20 May 2025 10:22:51 -0300 Subject: [PATCH 2/7] fix income range null field --- src/libs/routes_v1/studentsReceivingAidTax.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/libs/routes_v1/studentsReceivingAidTax.js b/src/libs/routes_v1/studentsReceivingAidTax.js index c4509cf8..b515e376 100644 --- a/src/libs/routes_v1/studentsReceivingAidTax.js +++ b/src/libs/routes_v1/studentsReceivingAidTax.js @@ -578,8 +578,21 @@ function matchQueries(queryPartial, queryTotal) { return match; } +function whereCondition(req) { + let where = ""; + + const dims = req.query.dims; + if (dims && dims.includes("income_range")){ + where += `pnad_novo.faixa_rendimento_aux_tx is not null`; + } + + + return where; +} + studentsReceivingAidTaxApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { req.querySet = []; + let where = whereCondition(req); // Subquery para total_pop_maior_25 com filtros dinâmicos let totalEstudantesQueRecebemAuxilio = req.sql.clone(); @@ -587,6 +600,7 @@ studentsReceivingAidTaxApp.get('/', rqf.parse(), rqf.build(), (req, res, next) = .field("ano_ref", "year") .field("SUM(peso_domicilio_pessoas_com_cal)", "total") .where("recebeu_rendimentos_de_programa_bolsa_familia = 1") + .where(`${where}`) .where("frequenta_escola = 1") .where("ano_ref >= 2019") .group("ano_ref") @@ -598,7 +612,9 @@ studentsReceivingAidTaxApp.get('/', rqf.parse(), rqf.build(), (req, res, next) = totalEstudantes.from("pnad_novo") .field("ano_ref", "year") .field("SUM(peso_domicilio_pessoas_com_cal)", "total") + .where(`${where}`) .where("frequenta_escola = 1") + .where("ano_ref >= 2019") .group("ano_ref") .order("ano_ref"); -- GitLab From f7240405b47b5de5f633ce5a92ae14623366ca39 Mon Sep 17 00:00:00 2001 From: es23 <es23@inf.ufpr.br> Date: Wed, 21 May 2025 10:24:44 -0300 Subject: [PATCH 3/7] fix age range filter --- src/libs/convert/ageRangeAll.js | 2 +- src/libs/routes_v1/studentsReceivingAidTax.js | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/libs/convert/ageRangeAll.js b/src/libs/convert/ageRangeAll.js index 1ad1c54e..ebc2336a 100644 --- a/src/libs/convert/ageRangeAll.js +++ b/src/libs/convert/ageRangeAll.js @@ -18,7 +18,7 @@ You should have received a copy of the GNU General Public License along with simcaq-node. If not, see <https://www.gnu.org/licenses/>. */ -module.exports = function ageRange(id) { +module.exports = function ageRangeAll(id) { switch (id) { case 1: return '0 a 3 anos'; diff --git a/src/libs/routes_v1/studentsReceivingAidTax.js b/src/libs/routes_v1/studentsReceivingAidTax.js index b515e376..16547bfd 100644 --- a/src/libs/routes_v1/studentsReceivingAidTax.js +++ b/src/libs/routes_v1/studentsReceivingAidTax.js @@ -242,7 +242,7 @@ studentsReceivingAidTaxApp.get('/state', (req, res, next) => { next(); }, response('state')); -studentsReceivingAidTaxApp.get('/age_range', (req, res, next) => { +studentsReceivingAidTaxApp.get('/age_range_all', (req, res, next) => { req.result = [] for (let i = 1; i < 12; i++) { req.result.push({ @@ -251,7 +251,7 @@ studentsReceivingAidTaxApp.get('/age_range', (req, res, next) => { } next(); -}, response('age_range')); +}, response('age_range_all')); studentsReceivingAidTaxApp.get('/location', (req, res, next) => { req.result = [] @@ -618,7 +618,6 @@ studentsReceivingAidTaxApp.get('/', rqf.parse(), rqf.build(), (req, res, next) = .group("ano_ref") .order("ano_ref"); - req.querySet.push(totalEstudantesQueRecebemAuxilio); req.querySet.push(totalEstudantes); -- GitLab From 877de5b65ab37df70734f25153d6b64a1c38c263 Mon Sep 17 00:00:00 2001 From: Joao Pedro <jpv.ramalho2013@gmail.com> Date: Thu, 22 May 2025 09:24:54 -0300 Subject: [PATCH 4/7] [fix] arredondando para duas casas decimais --- src/libs/routes_v1/expenses.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/libs/routes_v1/expenses.js b/src/libs/routes_v1/expenses.js index 36248659..624609e8 100644 --- a/src/libs/routes_v1/expenses.js +++ b/src/libs/routes_v1/expenses.js @@ -126,13 +126,13 @@ ExpensesApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { .field('despesas.ano_censo', 'year') .field('despesas.ano_censo', 'total_ano') .field('despesas.nome_ente', 'total_nome_ente') - .field('despesas.despesas', 'total_despesas') + .field('round(despesas.despesas,2)', 'total_despesas') .field('matriculas_publica', 'total_matriculas_publica') .field('matriculas_publicas_mais_conveniada', 'total_matriculas_publicas_mais_conveniada') - .field('gasto_aluno_ano_publica', 'total_gasto_aluno_ano_publica') - .field('gasto_aluno_mes_publica', 'total_gasto_aluno_mes_publica') - .field('gasto_aluno_ano_publica_mais_conveniada', 'total_gasto_aluno_ano_publica_mais_conveniada') - .field('gasto_aluno_mes_publica_mais_conveniada', 'total_gasto_aluno_mes_publica_mais_conveniada') + .field('round(gasto_aluno_ano_publica,2)', 'total_gasto_aluno_ano_publica') + .field('round(gasto_aluno_mes_publica,2)', 'total_gasto_aluno_mes_publica') + .field('round(gasto_aluno_ano_publica_mais_conveniada,2)', 'total_gasto_aluno_ano_publica_mais_conveniada') + .field('round(gasto_aluno_mes_publica_mais_conveniada,2)', 'total_gasto_aluno_mes_publica_mais_conveniada') .where(`${whereCondition}`) .order('despesas.ano_censo') } -- GitLab From c31b81cc1dbe1695f5424cd973ca423d8fea855d Mon Sep 17 00:00:00 2001 From: Joao Pedro <jpv.ramalho2013@gmail.com> Date: Wed, 28 May 2025 09:32:16 -0300 Subject: [PATCH 5/7] [fix] retirou as colunas desnecessarias da tabela --- src/libs/middlewares/aggregateData.js | 2 ++ src/libs/routes_v1/expenses.js | 44 +++++++++++---------------- 2 files changed, 20 insertions(+), 26 deletions(-) diff --git a/src/libs/middlewares/aggregateData.js b/src/libs/middlewares/aggregateData.js index 8dbf01d7..0aab0341 100644 --- a/src/libs/middlewares/aggregateData.js +++ b/src/libs/middlewares/aggregateData.js @@ -78,6 +78,7 @@ function aggregateData(req, res, next) { let currentAggregateField; let currentNonAggregateField; + console.log("data pre aggregate" ,req.result) // Verifica se o filtro passado está presente nos filtros agregados fields.forEach(field => {if (aggregateFields.includes(field)) currentAggregateField = field; else currentNonAggregateField = field}); if (currentAggregateField) { @@ -109,6 +110,7 @@ function aggregateData(req, res, next) { req.result = newResult; } } + console.log("data pos aggregate" ,req.result) next(); } diff --git a/src/libs/routes_v1/expenses.js b/src/libs/routes_v1/expenses.js index 624609e8..40f41166 100644 --- a/src/libs/routes_v1/expenses.js +++ b/src/libs/routes_v1/expenses.js @@ -111,33 +111,25 @@ rqf.addField({ ExpensesApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { - if (req.query.dims && req.query.dims.includes('despesas')) { - let whereCondition = req.query.filter.includes("region") ? "" : "despesas.cod_ibge = 0"; - let filterId; - const filters = req.query.filter.split(","); - filters.forEach((filter) => { - if (filter.includes("state") || filter.includes("city")) { - filterId = Number(filter.split(":")[1].replace(/"/g, "")); - whereCondition = `despesas.cod_ibge = ${filterId}` - } - }) - - req.sql.from('despesas') - .field('despesas.ano_censo', 'year') - .field('despesas.ano_censo', 'total_ano') - .field('despesas.nome_ente', 'total_nome_ente') - .field('round(despesas.despesas,2)', 'total_despesas') - .field('matriculas_publica', 'total_matriculas_publica') - .field('matriculas_publicas_mais_conveniada', 'total_matriculas_publicas_mais_conveniada') - .field('round(gasto_aluno_ano_publica,2)', 'total_gasto_aluno_ano_publica') - .field('round(gasto_aluno_mes_publica,2)', 'total_gasto_aluno_mes_publica') - .field('round(gasto_aluno_ano_publica_mais_conveniada,2)', 'total_gasto_aluno_ano_publica_mais_conveniada') - .field('round(gasto_aluno_mes_publica_mais_conveniada,2)', 'total_gasto_aluno_mes_publica_mais_conveniada') - .where(`${whereCondition}`) - .order('despesas.ano_censo') - } + let whereCondition = req.query.filter.includes("region") ? "" : "despesas.cod_ibge = 0"; + let filterId; + const filters = req.query.filter.split(","); + filters.forEach((filter) => { + if (filter.includes("state") || filter.includes("city")) { + filterId = Number(filter.split(":")[1].replace(/"/g, "")); + whereCondition = `despesas.cod_ibge = ${filterId}` + } + }) + req.sql.from('despesas') + .field('despesas.ano_censo', 'year') + .field('despesas.ano_censo', 'total_ano') + .field('despesas.nome_ente', 'total_nome_ente') + .field('round(despesas.despesas,2)', 'total') + .where(`${whereCondition}`) + .order('despesas.ano_censo') + next(); -}, query, aggregateData, id2str.transform(false), response('expenses')); +}, query, id2str.transform(false), response('expenses')); module.exports = ExpensesApp; \ No newline at end of file -- GitLab From 537bdef25e53cdf2bf3e8996c204db5d46b23465 Mon Sep 17 00:00:00 2001 From: Joao Pedro <jpv.ramalho2013@gmail.com> Date: Wed, 28 May 2025 11:19:38 -0300 Subject: [PATCH 6/7] [fix] filtros por rede --- src/libs/routes_v1/expenses.js | 43 +++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/src/libs/routes_v1/expenses.js b/src/libs/routes_v1/expenses.js index 40f41166..0e578f2e 100644 --- a/src/libs/routes_v1/expenses.js +++ b/src/libs/routes_v1/expenses.js @@ -51,6 +51,14 @@ ExpensesApp.get('/years', (req, res, next) => { next(); }, query, response('years')) +ExpensesApp.get('/type', (req, res, next) => { + req.result = [] + + req.result.push({ id: 1, name: "Rede Estadual" }); + req.result.push({ id: 2, name: "Rede Municipal" }); + next(); +}, response('type')); + // rqf.addValue({ // name: 'location', // table: 'despesas', @@ -111,6 +119,8 @@ rqf.addField({ ExpensesApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { + let obj = {} + let typeFilter = false; let whereCondition = req.query.filter.includes("region") ? "" : "despesas.cod_ibge = 0"; let filterId; const filters = req.query.filter.split(","); @@ -121,14 +131,31 @@ ExpensesApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { } }) - req.sql.from('despesas') - .field('despesas.ano_censo', 'year') - .field('despesas.ano_censo', 'total_ano') - .field('despesas.nome_ente', 'total_nome_ente') - .field('round(despesas.despesas,2)', 'total') - .where(`${whereCondition}`) - .order('despesas.ano_censo') - + if (req.query.filter) { + const jsonString = `{${req.query.filter.replace(/(\w+):/g, '"$1":')}}`; + obj = JSON.parse(jsonString); + if (obj.type) { + if (obj.type.includes("1") && !obj.type.includes("2")) { + whereCondition = "despesas.cod_ibge >= 11 and despesas.cod_ibge <= 53" + } + else if (obj.type.includes("2") && !obj.type.includes("1")) { + whereCondition = "despesas.cod_ibge > 53" + } + + typeFilter = true; + } + } + + if (!typeFilter || (typeFilter && (!obj.state && !obj.city && !obj.region))) { + req.sql.from('despesas') + .field('despesas.ano_censo', 'year') + .field('despesas.ano_censo', 'total_ano') + .field('despesas.nome_ente', 'total_nome_ente') + .field('round(despesas.despesas,2)', 'total') + .where(`${whereCondition}`) + .order('despesas.ano_censo') + } + next(); }, query, id2str.transform(false), response('expenses')); -- GitLab From 125b8a4d593e97682419824b1b6e5bd0f06ba85f Mon Sep 17 00:00:00 2001 From: Fernando Gbur dos Santos <fgs21@inf.ufpr.br> Date: Wed, 28 May 2025 14:43:56 +0000 Subject: [PATCH 7/7] Edit aggregateData.js --- src/libs/middlewares/aggregateData.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/libs/middlewares/aggregateData.js b/src/libs/middlewares/aggregateData.js index 0aab0341..8dbf01d7 100644 --- a/src/libs/middlewares/aggregateData.js +++ b/src/libs/middlewares/aggregateData.js @@ -78,7 +78,6 @@ function aggregateData(req, res, next) { let currentAggregateField; let currentNonAggregateField; - console.log("data pre aggregate" ,req.result) // Verifica se o filtro passado está presente nos filtros agregados fields.forEach(field => {if (aggregateFields.includes(field)) currentAggregateField = field; else currentNonAggregateField = field}); if (currentAggregateField) { @@ -110,7 +109,6 @@ function aggregateData(req, res, next) { req.result = newResult; } } - console.log("data pos aggregate" ,req.result) next(); } -- GitLab