diff --git a/trunk/WEB-INF/classes/siprp/pagina/doGetListaTrabalhadores.java b/trunk/WEB-INF/classes/siprp/pagina/doGetListaTrabalhadores.java index bf534f5a..efb29bcb 100644 --- a/trunk/WEB-INF/classes/siprp/pagina/doGetListaTrabalhadores.java +++ b/trunk/WEB-INF/classes/siprp/pagina/doGetListaTrabalhadores.java @@ -34,13 +34,14 @@ public class doGetListaTrabalhadores extends siprpServlet{ ServletOutputStream out = res.getOutputStream(); Connection con = null ; Statement stmt = null ; - ResultSet2DArray rs; - StringBuffer dbQuery, sBuffer; + ResultSet2DArray rs, rsTrab; + StringBuffer sBuffer; String userRole, empresaId, estabelecimentoId, temp; HttpSession session = req.getSession(false); Vector links = new Vector(); Vector desc = new Vector(); Vector descAdicional = new Vector(); + java.util.Date today = new java.util.Date(); try { userRole = (String)session.getAttribute(super.sessionUserRole); @@ -55,26 +56,169 @@ public class doGetListaTrabalhadores extends siprpServlet{ { //Class.forName(super.bdDriver); //con = DriverManager.getConnection( super.bdUrl, super.bdUsername, super.bdPassword ); - dbQuery = new StringBuffer(); - dbQuery.append( " SELECT id, nome, nome_plain FROM trabalhadores WHERE inactivo <> 'y' AND data_demissao IS NULL AND estabelecimento_id = '"+estabelecimentoId+"' ORDER BY nome_plain" ); + String dbQuery = "SELECT id, nome, nome_plain FROM trabalhadores WHERE inactivo <> 'y' AND data_demissao IS NULL AND estabelecimento_id = '"+estabelecimentoId+"' ORDER BY nome_plain"; stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); - rs = new ResultSet2DArray( stmt.executeQuery( dbQuery.toString()) ); - - int index=0; - int max = rs.columnLength(); + rsTrab = new ResultSet2DArray( stmt.executeQuery( dbQuery ) ); + rsTrab.getObjects(); + stmt.close(); + + final int max = rsTrab.columnLength(); - while ( index < max ) + for ( int index = 0; index < max; index++ ) { - temp=""+rs.get(index,0); // converter de int para String - dbQuery = new StringBuffer(); - dbQuery.append("/"+super.servletName+"/?"+empresaId+"/"+estabelecimentoId+"/"+temp); // contruir url - links.add(dbQuery.toString()); + Integer id = (Integer)rsTrab.get(index,0); + String link = "/"+super.servletName+"/?"+empresaId+"/"+estabelecimentoId+"/"+id; + links.add(link); HashMap trabalhador = new HashMap(); - trabalhador.put( "Nome", (String)rs.get(index,1) ); + trabalhador.put( "Nome", (String)rsTrab.get(index,1) ); + + + dbQuery = "SELECT id, data, realizada FROM marcacoes_trabalhador " + + "WHERE tipo = 1 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 ); + String realizada2 = ( String ) rs.get( 0, 2 ); + java.util.Date dataConsulta1; + // java.util.Date dataRelatorio1; + // java.util.Date dataRelatorio2 = (java.util.Date) rs.get( 0, 3 ); + String realizada1; + if( rs.columnLength() >= 2 ) + { + dataConsulta1 = ( java.util.Date ) rs.get( 1, 1 ); + realizada1 = ( String ) rs.get( 1, 2 ); + // dataRelatorio1 = (java.util.Date) rs.get( 1, 3 ); + } + else + { + dataConsulta1 = dataConsulta2; + realizada1 = realizada2; + // dataRelatorio1 = dataRelatorio2; + } + if( "y".equals( realizada2 ) || today.after( dataConsulta2 ) ) + { + trabalhador.put( "ultima_consulta", dataConsulta2 ); + if( realizada2.equals( "n" ) ) + { + realizada2 = "não"; + } + else if( realizada2.equals( "s" ) || realizada2.equals( "y" ) ) + { + realizada2 = "sim"; + } + trabalhador.put( "realizada", realizada2 ); + trabalhador.put( "proxima_consulta", "" ); + } + else + { + trabalhador.put( "proxima_consulta", dataConsulta2 ); + if( !dataConsulta2.equals( dataConsulta1 ) ) + { + if( realizada1.equals( "n" ) ) + { + realizada1 = "não"; + } + else if( realizada1.equals( "s" ) || realizada1.equals( "y" ) ) + { + realizada1 = "sim"; + } + trabalhador.put( "realizada", realizada1 ); + trabalhador.put( "ultima_consulta", dataConsulta1 ); + } + else + { + trabalhador.put( "ultima_consulta", "" ); + trabalhador.put( "realizada", null ); + } + } + } + else + { + trabalhador.put( "ultima_consulta", "" ); + trabalhador.put( "realizada", null ); + trabalhador.put( "proxima_consulta", "" ); + } + + + dbQuery = "SELECT id, data, realizada 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 ); + String realizada2 = ( String ) rs.get( 0, 2 ); + java.util.Date dataConsulta1; + // java.util.Date dataRelatorio1; + // java.util.Date dataRelatorio2 = (java.util.Date) rs.get( 0, 3 ); + String realizada1; + if( rs.columnLength() >= 2 ) + { + dataConsulta1 = ( java.util.Date ) rs.get( 1, 1 ); + realizada1 = ( String ) rs.get( 1, 2 ); + // dataRelatorio1 = (java.util.Date) rs.get( 1, 3 ); + } + else + { + dataConsulta1 = dataConsulta2; + realizada1 = realizada2; + // dataRelatorio1 = dataRelatorio2; + } + if( "y".equals( realizada2 ) || today.after( dataConsulta2 ) ) + { + trabalhador.put( "ultimo_exame", dataConsulta2 ); + if( realizada2.equals( "n" ) ) + { + realizada2 = "não"; + } + else if( realizada2.equals( "s" ) || realizada2.equals( "y" ) ) + { + realizada2 = "sim"; + } + trabalhador.put( "realizado", realizada2 ); + trabalhador.put( "proximo_exame", "" ); + } + else + { + trabalhador.put( "proximo_exame", dataConsulta2 ); + if( !dataConsulta2.equals( dataConsulta1 ) ) + { + if( realizada1.equals( "n" ) ) + { + realizada1 = "não"; + } + else if( realizada1.equals( "s" ) || realizada1.equals( "y" ) ) + { + 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", "" ); + } + desc.add( trabalhador ); - ++index; } - stmt.close(); + sBuffer = new StringBuffer(); sBuffer.append(""+super.nomeEmpresa(con,empresaId)+"

" diff --git a/trunk/WEB-INF/classes/siprp/pagina/doGetListaTrabalhadoresPendentes.java b/trunk/WEB-INF/classes/siprp/pagina/doGetListaTrabalhadoresPendentes.java index 99d2b4eb..6c128715 100644 --- a/trunk/WEB-INF/classes/siprp/pagina/doGetListaTrabalhadoresPendentes.java +++ b/trunk/WEB-INF/classes/siprp/pagina/doGetListaTrabalhadoresPendentes.java @@ -239,6 +239,8 @@ public class doGetListaTrabalhadoresPendentes boolean pe = false; boolean quase_c = false; boolean quase_e = false; + java.util.Date consultaAnterior = null; + java.util.Date exameAnterior = null; if( consultas.length > 0 ) { int anterior; @@ -262,6 +264,10 @@ public class doGetListaTrabalhadoresPendentes } long diff = proxima > -1 ? ( ( ( java.util.Date )consultas[ proxima ][ 0 ] ).getTime() - todayMillis ) / 86400000 : 15; uc = anterior > -1 && "y".equals( consultas[ anterior ][ 1 ] ); + if( uc ) + { + consultaAnterior = ( java.util.Date ) consultas[ anterior ][ 0 ]; + } pc = proxima > -1; quase_c = pc && diff <= 14; } @@ -289,6 +295,10 @@ public class doGetListaTrabalhadoresPendentes } long diff = proximo > -1 ? ( ( ( java.util.Date )exames[ proximo ][ 0 ] ).getTime() - todayMillis ) / 86400000 : 15; ue = anterior > -1 && "y".equals( exames[ anterior ][ 1 ] ); + if( ue ) + { + exameAnterior = ( java.util.Date ) exames[ anterior ][ 0 ]; + } pe = proximo > -1; quase_e = pe && diff <= 14; } @@ -296,17 +306,17 @@ public class doGetListaTrabalhadoresPendentes if( quase_c ) { trabalhador.put( "Consulta", "yellow" ); - trabalhador.put( "Consulta_estado", "marcado" ); + trabalhador.put( "Consulta_estado", "pendente" ); } else if( uc ) { trabalhador.put( "Consulta", "green" ); - trabalhador.put( "Consulta_estado", "tratado" ); + trabalhador.put( "Consulta_estado", consultaAnterior ); } else if( pc ) { trabalhador.put( "Consulta", "yellow" ); - trabalhador.put( "Consulta_estado", "marcado" ); + trabalhador.put( "Consulta_estado", "pendente" ); } else { @@ -317,17 +327,17 @@ public class doGetListaTrabalhadoresPendentes if( quase_e ) { trabalhador.put( "Exame", "yellow" ); - trabalhador.put( "Exame_estado", "marcado" ); + trabalhador.put( "Exame_estado", "pendente" ); } else if( ue ) { trabalhador.put( "Exame", "green" ); - trabalhador.put( "Exame_estado", "tratado" ); + trabalhador.put( "Exame_estado", exameAnterior ); } else if( pe ) { trabalhador.put( "Exame", "yellow" ); - trabalhador.put( "Exame_estado", "marcado" ); + trabalhador.put( "Exame_estado", "pendente" ); } else { diff --git a/trunk/html/user.html b/trunk/html/user.html index 3499ab6b..b3d8a59f 100644 --- a/trunk/html/user.html +++ b/trunk/html/user.html @@ -272,7 +272,7 @@ td.box6    funcionários:    todos -    com tudo resolvido +    com ficha de aptidão    com pendências          imprimir @@ -309,11 +309,25 @@ td.box6 #elseif( $query == "trabalhadores" ) + (*)ECD - Exames Complementares de Diagnóstico

+ + + + + + + #foreach( $element in $v1 ) #set ( $counter = $velocityCount - 1 ) #set ( $dados_trabalhador = $v2.get($counter) ) - $dados_trabalhador.Nome
+ + + + + + #end +
  NomeÚltimo ECD(*)Última consultaPróxima consulta
$dados_trabalhador.Nome $dados_trabalhador.ultimo_exame $dados_trabalhador.ultima_consulta $dados_trabalhador.proxima_consulta 
#elseif( $query == "trabalhadores_tudo" )