From a9b50a35d15742fde4677f25ad20598234a662a1 Mon Sep 17 00:00:00 2001 From: Diogo Neves Date: Thu, 3 Feb 2011 17:43:09 +0000 Subject: [PATCH] git-svn-id: https://svn.coded.pt/svn/SIPRP@1607 bb69d46d-e84e-40c8-a05a-06db0d633741 --- .../siprp/pagina/doGetListaTrabalhadores.java | 183 +++++++++++------- .../src/siprp/pagina/doGetTrabalhador.java | 179 ++++++++++------- 2 files changed, 224 insertions(+), 138 deletions(-) diff --git a/branches/SIPRP/web/src/siprp/pagina/doGetListaTrabalhadores.java b/branches/SIPRP/web/src/siprp/pagina/doGetListaTrabalhadores.java index 7dc28e73..dca6d6c5 100644 --- a/branches/SIPRP/web/src/siprp/pagina/doGetListaTrabalhadores.java +++ b/branches/SIPRP/web/src/siprp/pagina/doGetListaTrabalhadores.java @@ -11,8 +11,18 @@ import javax.servlet.http.*; import org.apache.velocity.*; import org.apache.velocity.app.*; -public class doGetListaTrabalhadores extends siprpServlet{ - +public class doGetListaTrabalhadores extends siprpServlet +{ + + private ResultSet2DArray executeQuery( Connection con, String query ) throws Exception + { + Statement stmt = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY ); + ResultSet2DArray rs = new ResultSet2DArray( stmt.executeQuery( query ) ); + rs.getObjects(); + stmt.close(); + return rs; + } + /** Creates a new instance of doGetListaTrabalhadores */ public doGetListaTrabalhadores(HttpServletRequest req, HttpServletResponse res, String query) throws IOException { @@ -78,6 +88,8 @@ public class doGetListaTrabalhadores extends siprpServlet{ trabalhador.put( "Nome", (String)rsTrab.get(index,1) ); + /** dados de consultas **/ + dbQuery = "SELECT id, data, estado FROM marcacoes_trabalhador " + "WHERE tipo = 1 and trabalhador_id = " + id + " ORDER BY data DESC"; @@ -173,80 +185,111 @@ public class doGetListaTrabalhadores extends siprpServlet{ trabalhador.put( "proxima_consulta", "" ); } + + /** dados de exames **/ + dbQuery = "select id, data, estado " + + "from marcacoes_trabalhador " + + "where deleted_stamp is null and tipo = 0 and estado = 2 and trabalhador_id = " + id + + " order by data desc " + + "limit 1"; + rs = executeQuery( con, dbQuery ); - dbQuery = "SELECT id, data, estado FROM marcacoes_trabalhador " - + "WHERE tipo = 0 and trabalhador_id = " + id - + " ORDER BY data DESC"; - stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); - rs = new ResultSet2DArray( stmt.executeQuery( dbQuery ) ); - rs.getObjects(); - stmt.close(); - if( rs.columnLength() > 0 ) + java.util.Date dataUltimoExameRealizado = null; + String realizado = ""; + if ( rs.columnLength() > 0 ) { - java.util.Date dataConsulta2 = ( java.util.Date ) rs.get( 0, 1 ); - Integer estado2 = ( Integer ) rs.get( 0, 2 ); - Integer estado1; - java.util.Date dataConsulta1; - // java.util.Date dataRelatorio1; - // java.util.Date dataRelatorio2 = (java.util.Date) rs.get( 0, 3 ); - String realizada1 = ""; - String realizada2 = ""; - if( rs.columnLength() >= 2 ) - { - dataConsulta1 = ( java.util.Date ) rs.get( 1, 1 ); - estado1 = ( Integer ) rs.get( 1, 2 ); - // dataRelatorio1 = (java.util.Date) rs.get( 1, 3 ); - } - else - { - dataConsulta1 = dataConsulta2; - estado1 = estado2; - // dataRelatorio1 = dataRelatorio2; - } - if( ESTADO_REALIZADO.equals( estado2 ) || today.after( dataConsulta2 ) ) - { - trabalhador.put( "ultimo_exame", dataConsulta2 ); - if( estado2.equals( ESTADO_POR_REALIZAR ) ) - { - realizada2 = "não"; - } - else if( estado2.equals( ESTADO_REALIZADO ) ) - { - realizada2 = "sim"; - } - trabalhador.put( "realizado", realizada2 ); - trabalhador.put( "proximo_exame", "" ); - } - else - { - trabalhador.put( "proximo_exame", dataConsulta2 ); - if( !dataConsulta2.equals( dataConsulta1 ) ) - { - if( estado1.equals( ESTADO_POR_REALIZAR ) ) - { - realizada1 = "não"; - } - else if( estado1.equals( ESTADO_REALIZADO ) ) - { - realizada1 = "sim"; - } - trabalhador.put( "realizado", realizada1 ); - trabalhador.put( "ultimo_exame", dataConsulta1 ); - } - else - { - trabalhador.put( "ultimo_exame", "" ); - trabalhador.put( "realizado", null ); - } - } + dataUltimoExameRealizado = ( java.util.Date ) rs.get( 0, 1 ); + realizado = "Sim"; } - else + + java.util.Date dataProximoExame = null; + dbQuery = "select id, data, estado " + + "from marcacoes_trabalhador " + + "where deleted_stamp is null and tipo = 0 and estado != 2 and data >= now() and trabalhador_id = " + id + " " + + "order by data desc " + + "limit 1"; + rs = executeQuery( con, dbQuery ); + if ( rs.columnLength() > 0 ) { - trabalhador.put( "ultimo_exame", "" ); - trabalhador.put( "realizado", null ); - trabalhador.put( "proximo_exame", "" ); + dataProximoExame = ( java.util.Date ) rs.get( 0, 1 ); } + trabalhador.put( "ultimo_exame", dataUltimoExameRealizado == null ? "" : dataUltimoExameRealizado ); + trabalhador.put( "realizado", realizado ); + trabalhador.put( "proximo_exame", dataProximoExame == null ? "" : dataProximoExame ); + + +// dbQuery = "SELECT id, data, estado FROM marcacoes_trabalhador " +// + "WHERE tipo = 0 and trabalhador_id = " + id +// + " ORDER BY data DESC"; +// stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); +// rs = new ResultSet2DArray( stmt.executeQuery( dbQuery ) ); +// rs.getObjects(); +// stmt.close(); +// if( rs.columnLength() > 0 ) +// { +// java.util.Date dataConsulta2 = ( java.util.Date ) rs.get( 0, 1 ); +// Integer estado2 = ( Integer ) rs.get( 0, 2 ); +// Integer estado1; +// java.util.Date dataConsulta1; +// String realizada1 = ""; +// String realizada2 = ""; +// if( rs.columnLength() >= 2 ) +// { +// dataConsulta1 = ( java.util.Date ) rs.get( 1, 1 ); +// estado1 = ( Integer ) rs.get( 1, 2 ); +// } +// else +// { +// dataConsulta1 = dataConsulta2; +// estado1 = estado2; +// } +// if( ESTADO_REALIZADO.equals( estado2 ) || today.after( dataConsulta2 ) ) +// { +// trabalhador.put( "ultimo_exame", dataConsulta2 ); +// if( estado2.equals( ESTADO_POR_REALIZAR ) ) +// { +// realizada2 = "não"; +// } +// else if( estado2.equals( ESTADO_REALIZADO ) ) +// { +// realizada2 = "sim"; +// } +// trabalhador.put( "realizado", realizada2 ); +// trabalhador.put( "proximo_exame", "" ); +// } +// else +// { +// trabalhador.put( "proximo_exame", dataConsulta2 ); +// if( !dataConsulta2.equals( dataConsulta1 ) ) +// { +// if( estado1.equals( ESTADO_POR_REALIZAR ) ) +// { +// realizada1 = "não"; +// } +// else if( estado1.equals( ESTADO_REALIZADO ) ) +// { +// realizada1 = "sim"; +// } +// trabalhador.put( "realizado", realizada1 ); +// trabalhador.put( "ultimo_exame", dataConsulta1 ); +// } +// else +// { +// trabalhador.put( "ultimo_exame", "" ); +// trabalhador.put( "realizado", null ); +// } +// } +// } +// else +// { +// trabalhador.put( "ultimo_exame", "" ); +// trabalhador.put( "realizado", null ); +// trabalhador.put( "proximo_exame", "" ); +// } + /** eof dados exames **/ + + desc.add( trabalhador ); } diff --git a/branches/SIPRP/web/src/siprp/pagina/doGetTrabalhador.java b/branches/SIPRP/web/src/siprp/pagina/doGetTrabalhador.java index 267421e7..91949d44 100644 --- a/branches/SIPRP/web/src/siprp/pagina/doGetTrabalhador.java +++ b/branches/SIPRP/web/src/siprp/pagina/doGetTrabalhador.java @@ -14,6 +14,15 @@ import org.apache.velocity.app.*; public class doGetTrabalhador extends siprpServlet { + private ResultSet2DArray executeQuery( Connection con, String query ) throws Exception + { + Statement stmt = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY ); + ResultSet2DArray rs = new ResultSet2DArray( stmt.executeQuery( query ) ); + rs.getObjects(); + stmt.close(); + return rs; + } + /** Creates a new instance of doGetTrabalhador */ public doGetTrabalhador(HttpServletRequest req, HttpServletResponse res) throws IOException { @@ -49,9 +58,6 @@ public class doGetTrabalhador extends siprpServlet stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); rs = new ResultSet2DArray( stmt.executeQuery( dbQuery.toString()) ); - // int index=0; - // int max = super.trabalhadorDescFields.length; - HashMap hmFuncionario = new HashMap(); if( rs.columnLength() > 0 ) { @@ -63,76 +69,113 @@ public class doGetTrabalhador extends siprpServlet hmFuncionario.put( "numero", rs.get( 0, "numero_mecanografico" ) ); stmt.close(); - String query = "SELECT id, data, estado, data_relatorio FROM marcacoes_trabalhador " - + "WHERE tipo = 0 and trabalhador_id = " + trabalhadorId - + " ORDER BY data DESC"; - stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); - rs = new ResultSet2DArray( stmt.executeQuery( query ) ); - if( rs.columnLength() > 0 ) + + /** dados de exames **/ + String queryUltimo = "select id, data, estado " + + "from marcacoes_trabalhador " + + "where deleted_stamp is null and tipo = 0 and estado = 2 and trabalhador_id = " + trabalhadorId + + " order by data desc " + + "limit 1"; + rs = executeQuery( con, queryUltimo ); + + java.util.Date dataUltimoExameRealizado = null; + String realizado = ""; + if ( rs.columnLength() > 0 ) { - java.util.Date dataExame2 = ( java.util.Date ) rs.get( 0, 1 ); - Integer estado1; - Integer estado2 = ( Integer ) rs.get( 0, 2 ); - java.util.Date dataExame1; - String realizado1 = ""; - String realizado2 = ""; - if( rs.columnLength() > 1 ) - { - dataExame1 = ( java.util.Date ) rs.get( 1, 1 ); - estado1 = ( Integer ) rs.get( 1, 2 ); - } - else - { - dataExame1 = dataExame2; - estado1 = estado2; - } - if( ESTADO_REALIZADO.equals( estado2 ) || ESTADO_PARCIALMENTE_REALIZADO.equals( estado2 ) - || today.after( dataExame2 ) ) - { - hmFuncionario.put( "ultimo_exame", dataExame2 ); - if( estado2.equals( ESTADO_REALIZADO ) || estado2.equals( ESTADO_PARCIALMENTE_REALIZADO ) ) - { - realizado2 = "sim"; - } - else - { - realizado2 = "não"; - } - hmFuncionario.put( "realizado", realizado2 ); - hmFuncionario.put( "proximo_exame", null ); - } - else - { - hmFuncionario.put( "proximo_exame", dataExame2 ); - if( !dataExame2.equals( dataExame1 ) ) - { - hmFuncionario.put( "ultimo_exame", dataExame1 ); - if( estado1.equals( ESTADO_REALIZADO ) || estado1.equals( ESTADO_PARCIALMENTE_REALIZADO ) ) - { - realizado1 = "sim"; - } - else - { - realizado1 = "não"; - } - hmFuncionario.put( "realizado", realizado1 ); - } - else - { - hmFuncionario.put( "ultimo_exame", null ); - hmFuncionario.put( "realizado", null ); - } - } + dataUltimoExameRealizado = ( java.util.Date ) rs.get( 0, 1 ); + realizado = "Sim"; } - else + + java.util.Date dataProximoExame = null; + String queryProximo = "select id, data, estado " + + "from marcacoes_trabalhador " + + "where deleted_stamp is null and tipo = 0 and estado != 2 and data >= now() and trabalhador_id = " + trabalhadorId + " " + + "order by data desc " + + "limit 1"; + rs = executeQuery( con, queryProximo ); + if ( rs.columnLength() > 0 ) { - hmFuncionario.put( "ultimo_exame", null ); - hmFuncionario.put( "realizado", null ); - hmFuncionario.put( "proximo_exame", null ); + dataProximoExame = ( java.util.Date ) rs.get( 0, 1 ); } - stmt.close(); - query = "SELECT MAX(id) FROM exames WHERE trabalhador_id = " + trabalhadorId + " AND inactivo <> 'y'"; + hmFuncionario.put( "ultimo_exame", dataUltimoExameRealizado == null ? "" : dataUltimoExameRealizado ); + hmFuncionario.put( "realizado", realizado ); + hmFuncionario.put( "proximo_exame", dataProximoExame == null ? "" : dataProximoExame ); + + +// String query = "SELECT id, data, estado, data_relatorio FROM marcacoes_trabalhador " +// + "WHERE tipo = 0 and trabalhador_id = " + trabalhadorId +// + " ORDER BY data DESC"; +// stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); +// rs = new ResultSet2DArray( stmt.executeQuery( query ) ); +// if( rs.columnLength() > 0 ) +// { +// java.util.Date dataExame2 = ( java.util.Date ) rs.get( 0, 1 ); +// Integer estado1; +// Integer estado2 = ( Integer ) rs.get( 0, 2 ); +// java.util.Date dataExame1; +// String realizado1 = ""; +// String realizado2 = ""; +// if( rs.columnLength() > 1 ) +// { +// dataExame1 = ( java.util.Date ) rs.get( 1, 1 ); +// estado1 = ( Integer ) rs.get( 1, 2 ); +// } +// else +// { +// dataExame1 = dataExame2; +// estado1 = estado2; +// } +// if( ESTADO_REALIZADO.equals( estado2 ) || ESTADO_PARCIALMENTE_REALIZADO.equals( estado2 ) +// || today.after( dataExame2 ) ) +// { +// hmFuncionario.put( "ultimo_exame", dataExame2 ); +// if( estado2.equals( ESTADO_REALIZADO ) || estado2.equals( ESTADO_PARCIALMENTE_REALIZADO ) ) +// { +// realizado2 = "sim"; +// } +// else +// { +// realizado2 = "não"; +// } +// hmFuncionario.put( "realizado", realizado2 ); +// hmFuncionario.put( "proximo_exame", null ); +// } +// else +// { +// hmFuncionario.put( "proximo_exame", dataExame2 ); +// if( !dataExame2.equals( dataExame1 ) ) +// { +// hmFuncionario.put( "ultimo_exame", dataExame1 ); +// if( estado1.equals( ESTADO_REALIZADO ) || estado1.equals( ESTADO_PARCIALMENTE_REALIZADO ) ) +// { +// realizado1 = "sim"; +// } +// else +// { +// realizado1 = "não"; +// } +// hmFuncionario.put( "realizado", realizado1 ); +// } +// else +// { +// hmFuncionario.put( "ultimo_exame", null ); +// hmFuncionario.put( "realizado", null ); +// } +// } +// } +// else +// { +// hmFuncionario.put( "ultimo_exame", null ); +// hmFuncionario.put( "realizado", null ); +// hmFuncionario.put( "proximo_exame", null ); +// } +// stmt.close(); + /** eof dados exames **/ + + + + String query = "SELECT MAX(id) FROM exames WHERE trabalhador_id = " + trabalhadorId + " AND inactivo <> 'y'"; stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); rs = new ResultSet2DArray( stmt.executeQuery( query ) ); Integer fichaId = null;