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.
		
		
		
		
		
			
		
			
				
					
					
						
							225 lines
						
					
					
						
							8.4 KiB
						
					
					
				
			
		
		
	
	
							225 lines
						
					
					
						
							8.4 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;
 | |
| import com.evolute.utils.error.ErrorLogger;
 | |
| 
 | |
| 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 )
 | |
| 		{
 | |
| 			SiprpWebLogger.logException( e );
 | |
| 			out.println( mergeTemplate( msgErroBd, errorTemplate ) );
 | |
| 		}
 | |
| 		catch ( Exception e )
 | |
| 		{
 | |
| 			SiprpWebLogger.logException( e );
 | |
| 			out.println( mergeTemplate( msgGenericError, errorTemplate ) );
 | |
| 		}
 | |
| 
 | |
| 	}
 | |
| 
 | |
| }
 |