forked from Coded/SIPRP
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
224 lines
8.3 KiB
224 lines
8.3 KiB
package com.evolute.siprp.pagina;
|
|
|
|
import java.io.IOException;
|
|
import java.sql.Connection;
|
|
import java.sql.DriverManager;
|
|
import java.sql.ResultSet;
|
|
import java.sql.SQLException;
|
|
import java.sql.Statement;
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
import javax.servlet.ServletOutputStream;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpSession;
|
|
|
|
import com.evolute.utils.arrays.ResultSet2DArray;
|
|
|
|
public class doGetTrabalhador extends siprpServlet
|
|
{
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
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;
|
|
}
|
|
|
|
public doGetTrabalhador( HttpServletRequest req, HttpServletResponse res ) throws IOException
|
|
{
|
|
ServletOutputStream out = res.getOutputStream();
|
|
Connection con = null;
|
|
Statement stmt = null;
|
|
ResultSet2DArray rs;
|
|
StringBuffer dbQuery, sBuffer;
|
|
String userRole;
|
|
String empresaId;
|
|
String estabelecimentoId;
|
|
String trabalhadorId;
|
|
HttpSession session = req.getSession( false );
|
|
|
|
try
|
|
{
|
|
userRole = ( String ) session.getAttribute( sessionUserRole );
|
|
empresaId = ( String ) session.getAttribute( sessionEmpresaId );
|
|
estabelecimentoId = ( String ) session.getAttribute( sessionEstabelecimentoId );
|
|
trabalhadorId = ( String ) session.getAttribute( sessionTrabalhadorId );
|
|
|
|
Class.forName( bdDriver );
|
|
con = DriverManager.getConnection( bdLocalUrl, bdLocalUsername, bdLocalPassword );
|
|
|
|
if ( ( userRole.equals( superUserRole ) || userRole.equals( empresaId ) ) && verificaEstabelecimento( con, empresaId, estabelecimentoId )
|
|
&& verificaTrabalhador( con, estabelecimentoId, trabalhadorId ) )
|
|
{
|
|
|
|
dbQuery = new StringBuffer();
|
|
dbQuery.append( " SELECT sexo, categoria, data_nascimento, nome, numero_mecanografico " + "FROM trabalhadores where id='" + trabalhadorId
|
|
+ "'" );
|
|
stmt = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY );
|
|
rs = new ResultSet2DArray( stmt.executeQuery( dbQuery.toString() ) );
|
|
|
|
Map< String, Object > hmFuncionario = new HashMap< String, Object >();
|
|
if ( rs.columnLength() > 0 )
|
|
{
|
|
hmFuncionario.put( "sexo", rs.get( 0, "sexo" ) );
|
|
hmFuncionario.put( "categoria", rs.get( 0, "categoria" ) );
|
|
hmFuncionario.put( "data_nascimento", rs.get( 0, "data_nascimento" ) );
|
|
hmFuncionario.put( "nome", rs.get( 0, "nome" ) );
|
|
hmFuncionario.put( "numero", rs.get( 0, "numero_mecanografico" ) );
|
|
stmt.close();
|
|
|
|
/** 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 )
|
|
{
|
|
dataUltimoExameRealizado = ( java.util.Date ) rs.get( 0, 1 );
|
|
realizado = "Sim";
|
|
}
|
|
|
|
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 )
|
|
{
|
|
dataProximoExame = ( java.util.Date ) rs.get( 0, 1 );
|
|
}
|
|
|
|
hmFuncionario.put( "ultimo_exame", dataUltimoExameRealizado == null ? "" : dataUltimoExameRealizado );
|
|
hmFuncionario.put( "realizado", realizado );
|
|
hmFuncionario.put( "proximo_exame", dataProximoExame == null ? "" : dataProximoExame );
|
|
/** 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;
|
|
if ( rs.columnLength() > 0 )
|
|
{
|
|
fichaId = ( Integer ) rs.get( 0, 0 );
|
|
}
|
|
stmt.close();
|
|
|
|
if ( fichaId != null )
|
|
{
|
|
query = "SELECT data, resultado FROM exames WHERE id = " + fichaId;
|
|
stmt = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY );
|
|
rs = new ResultSet2DArray( stmt.executeQuery( query ) );
|
|
Integer resultadoFicha = ( Integer ) rs.get( 0, 1 );
|
|
stmt.close();
|
|
if ( resultadoFicha != null )
|
|
{
|
|
switch ( resultadoFicha.intValue() )
|
|
{
|
|
case 1 :
|
|
hmFuncionario.put( "resultado", "Apto" );
|
|
break;
|
|
case 2 :
|
|
hmFuncionario.put( "resultado", "Apto Condicionalmente" );
|
|
break;
|
|
case 3 :
|
|
hmFuncionario.put( "resultado", "Inapto Temporariamente" );
|
|
break;
|
|
case 4 :
|
|
hmFuncionario.put( "resultado", "Inapto Definitivamente" );
|
|
break;
|
|
default :
|
|
hmFuncionario.put( "resultado", null );
|
|
}
|
|
}
|
|
else
|
|
{
|
|
hmFuncionario.put( "resultado", null );
|
|
}
|
|
}
|
|
else
|
|
{
|
|
hmFuncionario.put( "resultado", null );
|
|
}
|
|
|
|
/** consulta dados **/
|
|
String queryUltima = "select id, data, estado " + "from marcacoes_trabalhador "
|
|
+ "where deleted_stamp is null and tipo = 1 and estado = 2 and trabalhador_id = " + trabalhadorId + " " + "order by data desc "
|
|
+ "limit 1";
|
|
rs = executeQuery( con, queryUltima );
|
|
|
|
java.util.Date dataUltimaConsultaRealizada = null;
|
|
String consultaRealizada = "";
|
|
if ( rs.columnLength() > 0 )
|
|
{
|
|
dataUltimaConsultaRealizada = ( java.util.Date ) rs.get( 0, 1 );
|
|
consultaRealizada = "Sim";
|
|
}
|
|
|
|
String queryProxima = "select id, data, estado " + "from marcacoes_trabalhador "
|
|
+ "where deleted_stamp is null and tipo = 1 and estado != 2 and data >= now() and trabalhador_id = " + trabalhadorId + " "
|
|
+ "order by data desc " + "limit 1";
|
|
rs = executeQuery( con, queryProxima );
|
|
|
|
java.util.Date dataProximaConsulta = null;
|
|
if ( rs.columnLength() > 0 )
|
|
{
|
|
dataProximaConsulta = ( java.util.Date ) rs.get( 0, 1 );
|
|
}
|
|
|
|
hmFuncionario.put( "ultima_consulta", dataUltimaConsultaRealizada == null ? "" : dataUltimaConsultaRealizada );
|
|
hmFuncionario.put( "realizada", consultaRealizada );
|
|
hmFuncionario.put( "proxima_consulta", dataProximaConsulta == null ? "" : dataProximaConsulta );
|
|
/** eof consulta dados **/
|
|
|
|
}
|
|
|
|
sBuffer = new StringBuffer();
|
|
sBuffer.append( "<b>" + nomeEmpresa( con, empresaId ) + "</b><br><br><i>" + nomeEstabelecimento( con, estabelecimentoId ) + "</i>" );
|
|
|
|
Map< String, Object > hmValues = new HashMap< String, Object >();
|
|
hmValues.put( "empresa_nome", session.getAttribute( sessionCompanyName ) );
|
|
hmValues.put( "empresa_id", session.getAttribute( sessionEmpresaId ) );
|
|
hmValues.put( "estabelecimento_nome", nomeEstabelecimento( con, estabelecimentoId ) );
|
|
|
|
/* Dados para marcacao de consulta/exame */
|
|
session.setAttribute( "session_estabelecimento_nome", hmValues.get( "estabelecimento_nome" ) );
|
|
session.setAttribute( "session_funcionario_nome", hmFuncionario.get( "nome" ) );
|
|
session.setAttribute( "session_funcionario_numero", hmFuncionario.get( "numero" ) );
|
|
|
|
hmValues.put( "estabelecimento_id", estabelecimentoId );
|
|
hmValues.put( "userRole", userRole );
|
|
hmValues.put( "userName", session.getAttribute( sessionUser ) );
|
|
hmValues.put( msgTemplate, sBuffer.toString() );
|
|
hmValues.put( templateUserRole, userRole );
|
|
hmValues.put( templateQuery, queryStringTrabalhador );
|
|
hmValues.put( "funcionario", hmFuncionario );
|
|
out.println( mergeTemplate( hmValues, authenticatedUserTemplate ) );
|
|
}
|
|
else
|
|
{
|
|
out.println( mergeTemplate( msgLinkFormatError, userRole, errorTemplate ) );
|
|
}
|
|
con.close();
|
|
}
|
|
catch ( SQLException e )
|
|
{
|
|
e.printStackTrace();
|
|
out.println( mergeTemplate( msgErroBd, errorTemplate ) );
|
|
}
|
|
catch ( Exception e )
|
|
{
|
|
e.printStackTrace();
|
|
out.println( mergeTemplate( msgGenericError, errorTemplate ) );
|
|
}
|
|
|
|
}
|
|
|
|
}
|