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 1/2] [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 2/2] [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