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.

1388 lines
49 KiB

package shst.medicina.fichasclinicas.webservices.jaxrs;
import java.io.File;
import java.io.FileNotFoundException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import pt.evolute.data.ProviderSpringBean;
import shst.medicina.fichasclinicas.beans.EvoMessageBean;
import shst.medicina.fichasclinicas.beans.EvoMessageTypeBean;
import shst.medicina.fichasclinicas.beans.EvoResponseBean;
import shst.medicina.fichasclinicas.beans.FichaEAdmissaoInicialBean;
import shst.medicina.fichasclinicas.beans.FichaEMCurativaEnfBean;
import shst.medicina.fichasclinicas.beans.FichaEOcasionalBean;
import shst.medicina.fichasclinicas.beans.FichaEPeriodicoBean;
import shst.medicina.fichasclinicas.beans.FichaResumeBean;
import shst.medicina.fichasclinicas.beans.TrabalhadorResumeBean;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaAbsentismoBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaActividadeBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaAntecedentesFamiliaresBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaAntecedentesOcupacionaisAcidentesTrabalhoBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaAntecedentesOcupacionaisActividadesAnterioresBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaAntecedentesOcupacionaisBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaAntecedentesOcupacionaisDoencasProfissionaisBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaClassificacaoIndividualSaudeBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaConclusoesBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaDoencasBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaEsquemaVacinalBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaExameObjectivoBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaHabitosBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaProblemasSolucoesBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcTipoFichaBeanData;
import shst.medicina.fichasclinicas.beans.shst.EmpresasBeanData;
import shst.medicina.fichasclinicas.beans.shst.EstabelecimentosBeanData;
import shst.medicina.fichasclinicas.beans.shst.TrabalhadoresBeanData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaAbsentismoData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaActividadeData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaAntecedentesFamiliaresData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaAntecedentesOcupacionaisAcidentesTrabalhoData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaAntecedentesOcupacionaisActividadesAnterioresData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaAntecedentesOcupacionaisData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaAntecedentesOcupacionaisDoencasProfissionaisData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaClassificacaoIndividualSaudeData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaConclusoesData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaDoencasData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaEsquemaVacinalData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaExameObjectivoData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaHabitosData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaProblemasSolucoesData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcTipoFichaData;
import shst.medicina.fichasclinicas.data.fichasclinicas.inner.FcTipoFicha;
import shst.medicina.fichasclinicas.data.shst.EmpresasData;
import shst.medicina.fichasclinicas.data.shst.EstabelecimentosData;
import shst.medicina.fichasclinicas.data.shst.TrabalhadoresData;
import com.evolute.module.utilizadores.data.EvoUsrUserData;
import com.evolute.module.utilizadores.users.provider.UsersDataProvider;
import com.evolute.utils.error.ErrorLogger;
import com.evolute.utils.sql.Expression;
import com.evolute.utils.sql.Field;
import com.googlecode.htmlcompressor.compressor.HtmlCompressor;
@Path("/fichasclinicas")
public class FichasClinicasImpl {
@Autowired(required = true)
@Qualifier("defaultProvider")
ProviderSpringBean fichasProvidersBean;
@Autowired(required = true)
@Qualifier("siprpProvider")
ProviderSpringBean siprpProvidersBean;
@GET
@Path("/getEmpresas")
@Produces(MediaType.APPLICATION_JSON)
public Response getEmpresas(@Context HttpServletRequest req, @DefaultValue("") @QueryParam("filter") String filter)
{
EvoResponseBean rsp = new EvoResponseBean();
if(req.getSession().getAttribute("user") != null)
{
Collection<EmpresasBeanData> result = new LinkedList<EmpresasBeanData>();
Expression dataFilter = new Field(EmpresasData.INACTIVO).isDifferent("y").and(new Field(EmpresasData.DATA_CANCELAMENTO).isEqual(null));
if(!filter.isEmpty())
{
dataFilter = dataFilter.and(new Field(EmpresasData.DESIGNACAO_SOCIAL).isILike("%"+filter+"%")) ;
}
try
{
Collection<EmpresasData> bdLoad = siprpProvidersBean
.getENTITY_PROVIDER()
.listLoad(EmpresasData.class, dataFilter, new String[]{EmpresasData.DESIGNACAO_SOCIAL}, null);
for(EmpresasData bdElem : bdLoad)
{
EmpresasBeanData resultElem = new EmpresasBeanData();
resultElem.setMapData(bdElem.getPropertiesValues(new String[]{EmpresasData.ID,EmpresasData.DESIGNACAO_SOCIAL}));
result.add(resultElem);
}
}
catch (Exception ex)
{
ErrorLogger.logException(ex);
}
rsp.setSuccess(true);
rsp.setData(result);
}
else
{
rsp.setSuccess(false);
EvoMessageBean mb = new EvoMessageBean();
mb.setType(EvoMessageTypeBean.SESSIONTIMEOUT);
mb.setMessageData("sessão expirada");
rsp.addMessage(mb);
}
return Response.status(200).entity(rsp).build();
}
@GET
@Path("/getEstabelecimentos")
@Produces(MediaType.APPLICATION_JSON)
public Response getEstabelecimentos(@Context HttpServletRequest req, @DefaultValue("0") @QueryParam("empresaID") int empresaID,@DefaultValue("") @QueryParam("filter") String filter)
{
EvoResponseBean rsp = new EvoResponseBean();
if(req.getSession().getAttribute("user") != null)
{
Collection<EstabelecimentosBeanData> result = new LinkedList<EstabelecimentosBeanData>();
Expression dataFilter = new Field(EstabelecimentosData.INACTIVO).isDifferent("y").and(new Field(EstabelecimentosData.EMPRESA_ID).isEqual(empresaID));
if(!filter.isEmpty())
{
dataFilter = dataFilter.and(new Field(EstabelecimentosData.NOME).isILike("%"+filter+"%")) ;
}
try
{
Collection<EstabelecimentosData> bdLoad = siprpProvidersBean
.getENTITY_PROVIDER()
.listLoad(EstabelecimentosData.class, dataFilter, new String[]{EstabelecimentosData.NOME}, null);
for(EstabelecimentosData bdElem : bdLoad)
{
EstabelecimentosBeanData resultElem = new EstabelecimentosBeanData();
resultElem.setMapData(bdElem.getPropertiesValues(new String[]{EstabelecimentosData.ID,EstabelecimentosData.NOME}));
result.add(resultElem);
}
}
catch (Exception ex)
{
ErrorLogger.logException(ex);
}
rsp.setSuccess(true);
rsp.setData(result);
}
else
{
rsp.setSuccess(false);
EvoMessageBean mb = new EvoMessageBean();
mb.setType(EvoMessageTypeBean.SESSIONTIMEOUT);
mb.setMessageData("sessão expirada");
rsp.addMessage(mb);
}
return Response.status(200).entity(rsp).build();
}
@GET
@Path("/getTrabalhadores")
@Produces(MediaType.APPLICATION_JSON)
public Response getTrabalhadores(@Context HttpServletRequest req, @DefaultValue("0") @QueryParam("estabelecimentoID") int estabelecimentoID,@DefaultValue("") @QueryParam("filter") String filter)
{
EvoResponseBean rsp = new EvoResponseBean();
if(req.getSession().getAttribute("user") != null)
{
Collection<TrabalhadoresBeanData> result = new LinkedList<TrabalhadoresBeanData>();
Expression dataFilter = new Field(TrabalhadoresData.INACTIVO).isDifferent("y").and(new Field(TrabalhadoresData.ESTABELECIMENTO_ID).isEqual(estabelecimentoID)).and(new Field(TrabalhadoresData.DATA_DEMISSAO).isEqual(null));
if(!filter.isEmpty())
{
dataFilter = dataFilter.and(new Field("PLAIN("+TrabalhadoresData.NOME+")").isILike("%"+filter+"%")) ;
}
try
{
Collection<TrabalhadoresData> bdLoad = siprpProvidersBean
.getENTITY_PROVIDER()
.listLoad(TrabalhadoresData.class, dataFilter, new String[]{TrabalhadoresData.NOME}, null);
for(TrabalhadoresData bdElem : bdLoad)
{
TrabalhadoresBeanData resultElem = new TrabalhadoresBeanData();
resultElem.setMapData(bdElem.getPropertiesValues(new String[]{TrabalhadoresData.ID,TrabalhadoresData.NOME}));
result.add(resultElem);
}
}
catch (Exception ex)
{
ErrorLogger.logException(ex);
}
rsp.setSuccess(true);
rsp.setData(result);
}
else
{
rsp.setSuccess(false);
EvoMessageBean mb = new EvoMessageBean();
mb.setType(EvoMessageTypeBean.SESSIONTIMEOUT);
mb.setMessageData("sessão expirada");
rsp.addMessage(mb);
}
return Response.status(200).entity(rsp).build();
}
@GET
@Path("/getFichaEAdmissaoInicial")
@Produces(MediaType.APPLICATION_JSON)
public Response getFichaEAdmissaoInicial(@Context HttpServletRequest req, @DefaultValue("0") @QueryParam("fichaID") int fichaID)
{
EvoResponseBean rsp = new EvoResponseBean();
if(req.getSession().getAttribute("user") != null)
{
FcFichaData ficha=null;
try {
ficha = fichasProvidersBean.getENTITY_PROVIDER().load(FcFichaData.class, new Object[]{fichaID,null}, new String[]{FcFichaData.ID,FcFichaData.DELETED_STAMP});
if(ficha != null)
{
FichaEAdmissaoInicialBean var = new FichaEAdmissaoInicialBean();
FcFichaBeanData fichaBean = new FcFichaBeanData();
fichaBean.setMapData(ficha.getPropertiesValues(fichaBean.getMapData().keySet().toArray(new String[]{})));
var.setFicha(fichaBean);
FcFichaAbsentismoData abs = ficha.toAbsentismo_id();
if(abs != null)
{
FcFichaAbsentismoBeanData absBean = new FcFichaAbsentismoBeanData();
absBean.setMapData(abs.getPropertiesValues(absBean.getMapData().keySet().toArray(new String[]{})));
var.setAbsentismo(absBean);
}
FcFichaActividadeData act = ficha.toActividade_id();
if(act != null)
{
FcFichaActividadeBeanData actBean = new FcFichaActividadeBeanData();
actBean.setMapData(act.getPropertiesValues(actBean.getMapData().keySet().toArray(new String[]{})));
var.setActividade(actBean);
}
FcFichaAntecedentesFamiliaresData antf = ficha.toAntecedentes_familiares_id();
if(antf != null)
{
FcFichaAntecedentesFamiliaresBeanData antfBean = new FcFichaAntecedentesFamiliaresBeanData();
antfBean.setMapData(antf.getPropertiesValues(antfBean.getMapData().keySet().toArray(new String[]{})));
var.setAntecedentesFamiliares(antfBean);
}
FcFichaDoencasData antp = ficha.toAntecedentes_pessoais_id();
if(antp != null)
{
FcFichaDoencasBeanData antpBean = new FcFichaDoencasBeanData();
antpBean.setMapData(antp.getPropertiesValues(antpBean.getMapData().keySet().toArray(new String[]{})));
var.setAntecedentesPessoais(antpBean);
}
FcFichaAntecedentesOcupacionaisData anto =ficha.toAntecedentes_ocupacionais_id();
if(anto != null)
{
FcFichaAntecedentesOcupacionaisBeanData antoBean = new FcFichaAntecedentesOcupacionaisBeanData();
antoBean.setMapData(anto.getPropertiesValues(antoBean.getMapData().keySet().toArray(new String[]{})));
var.setAntecentesOcupacionais(antoBean);
List<FcFichaAntecedentesOcupacionaisAcidentesTrabalhoData> antoat = anto.fromFcFichaAntecedentesOcupacionaisAcidentesTrabalho_antecedentes_ocupacionais_id();
LinkedList<FcFichaAntecedentesOcupacionaisAcidentesTrabalhoBeanData> antoatBean = new LinkedList<FcFichaAntecedentesOcupacionaisAcidentesTrabalhoBeanData>();
for(FcFichaAntecedentesOcupacionaisAcidentesTrabalhoData at : antoat)
{
if(at.getDeleted_stamp() == null)
{
FcFichaAntecedentesOcupacionaisAcidentesTrabalhoBeanData atBean = new FcFichaAntecedentesOcupacionaisAcidentesTrabalhoBeanData();
atBean.setMapData(at.getPropertiesValues(atBean.getMapData().keySet().toArray(new String[]{})));
antoatBean.add(atBean);
}
}
var.setAntecentesOcupacionaisAcidentesTrabalho(antoatBean);
List<FcFichaAntecedentesOcupacionaisActividadesAnterioresData> antoaa = anto.fromFcFichaAntecedentesOcupacionaisActividadesAnteriores_antecedentes_ocupacionais_id();
LinkedList<FcFichaAntecedentesOcupacionaisActividadesAnterioresBeanData> antoaaBean = new LinkedList<FcFichaAntecedentesOcupacionaisActividadesAnterioresBeanData>();
for(FcFichaAntecedentesOcupacionaisActividadesAnterioresData at : antoaa)
{
if(at.getDeleted_stamp() == null)
{
FcFichaAntecedentesOcupacionaisActividadesAnterioresBeanData atBean = new FcFichaAntecedentesOcupacionaisActividadesAnterioresBeanData();
atBean.setMapData(at.getPropertiesValues(atBean.getMapData().keySet().toArray(new String[]{})));
antoaaBean.add(atBean);
}
}
var.setAntecentesOcupacionaisActividadesAnteriores(antoaaBean);
List<FcFichaAntecedentesOcupacionaisDoencasProfissionaisData> antodp = anto.fromFcFichaAntecedentesOcupacionaisDoencasProfissionais_antecedentes_ocupacionais_id();
LinkedList<FcFichaAntecedentesOcupacionaisDoencasProfissionaisBeanData> antodpBean = new LinkedList<FcFichaAntecedentesOcupacionaisDoencasProfissionaisBeanData>();
for(FcFichaAntecedentesOcupacionaisDoencasProfissionaisData at : antodp)
{
if(at.getDeleted_stamp() == null)
{
FcFichaAntecedentesOcupacionaisDoencasProfissionaisBeanData atBean = new FcFichaAntecedentesOcupacionaisDoencasProfissionaisBeanData();
atBean.setMapData(at.getPropertiesValues(atBean.getMapData().keySet().toArray(new String[]{})));
antodpBean.add(atBean);
}
}
var.setAntecentesOcupacionaisDoencasProfissionais(antodpBean);
}
FcFichaClassificacaoIndividualSaudeData cis = ficha.toClassificacao_individual_saude_id();
if(cis != null)
{
FcFichaClassificacaoIndividualSaudeBeanData cisBean = new FcFichaClassificacaoIndividualSaudeBeanData();
cisBean.setMapData(cis.getPropertiesValues(cisBean.getMapData().keySet().toArray(new String[]{})));
var.setClassificacaoIndividualSaude(cisBean);
}
FcFichaConclusoesData cr = ficha.toConclusoes_id();
if(cr != null)
{
FcFichaConclusoesBeanData crBean = new FcFichaConclusoesBeanData();
crBean.setMapData(cr.getPropertiesValues(crBean.getMapData().keySet().toArray(new String[]{})));
var.setConclusoesResumo(crBean);
}
FcFichaDoencasData da = ficha.toDoencas_activas_id();
if(da != null)
{
FcFichaDoencasBeanData daBean = new FcFichaDoencasBeanData();
daBean.setMapData(da.getPropertiesValues(daBean.getMapData().keySet().toArray(new String[]{})));
var.setDoencasActivas(daBean);
}
FcFichaEsquemaVacinalData ev = ficha.toEsquema_vacinal_id();
if(ev != null)
{
FcFichaEsquemaVacinalBeanData evBean = new FcFichaEsquemaVacinalBeanData();
evBean.setMapData(ev.getPropertiesValues(evBean.getMapData().keySet().toArray(new String[]{})));
var.setEsquemaVacinal(evBean);
}
FcFichaExameObjectivoData eo = ficha.toExame_objectivo_id();
if(eo != null)
{
FcFichaExameObjectivoBeanData eoBean = new FcFichaExameObjectivoBeanData();
eoBean.setMapData(eo.getPropertiesValues(eoBean.getMapData().keySet().toArray(new String[]{})));
var.setExameObjectivo(eoBean);
}
FcFichaHabitosData fh = ficha.toHabitos_id();
if(fh != null)
{
FcFichaHabitosBeanData fhBean = new FcFichaHabitosBeanData();
fhBean.setMapData(fh.getPropertiesValues(fhBean.getMapData().keySet().toArray(new String[]{})));
var.setHabitos(fhBean);
}
FcFichaProblemasSolucoesData ps = ficha.toProblemas_solucoes_id();
if(ps != null)
{
FcFichaProblemasSolucoesBeanData psBean = new FcFichaProblemasSolucoesBeanData();
psBean.setMapData(ps.getPropertiesValues(psBean.getMapData().keySet().toArray(new String[]{})));
var.setProblemasSolucoes(psBean);
}
rsp.setSuccess(true);
rsp.setData(var);
}
else
{
rsp.setSuccess(false);
EvoMessageBean mb = new EvoMessageBean();
mb.setType(EvoMessageTypeBean.ERROR);
mb.setMessageData("ID de ficha inválido!");
rsp.addMessage(mb);
}
}
catch(Exception ex)
{
rsp.setSuccess(false);
EvoMessageBean mb = new EvoMessageBean();
mb.setType(EvoMessageTypeBean.ERROR);
mb.setMessageData("Erro ao carregar a Ficha!");
rsp.addMessage(mb);
}
}
else
{
rsp.setSuccess(false);
EvoMessageBean mb = new EvoMessageBean();
mb.setType(EvoMessageTypeBean.SESSIONTIMEOUT);
mb.setMessageData("sessão expirada");
rsp.addMessage(mb);
}
return Response.status(200).entity(rsp).build();
}
private static Map<String, Object> mapCleaner(Map<String, Object> in)
{
Map<String, Object> out = new HashMap<String, Object>();
for(Entry<String,Object> e : in.entrySet())
{
if(!(e.getKey().equals("id")||(e.getValue() == null)))
{
out.put(e.getKey(), e.getValue());
}
}
return out;
}
@POST
@Path("/sendFichaEAdmissaoInicial")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response sendFichaEAdmissaoInicial(@Context HttpServletRequest req, FichaEAdmissaoInicialBean ficha) throws Exception
{
EvoResponseBean rsp = new EvoResponseBean();
EvoUsrUserData user = (EvoUsrUserData) req.getSession().getAttribute("user") ;
// EvoUsrUserData user = new EvoUsrUserData();
// user.setName("fake admin");
// user.setId(1);
if( user != null)
{
Object trx = null;
try
{
if(ficha.getFicha() != null)
{
String operation = null;
FichaEAdmissaoInicialBean rspdata = new FichaEAdmissaoInicialBean();
trx = fichasProvidersBean.getENTITY_PROVIDER().begin();
FcFichaData ff = null;
if(ficha.getFicha().getId() != null)
{
ff = fichasProvidersBean.getENTITY_PROVIDER().load(FcFichaData.class, ficha.getFicha().getId());
operation = "Actualização";
}
if(ff == null)
{
ff = new FcFichaData();
ff.setProvider(fichasProvidersBean.getENTITY_PROVIDER());
ff.setCreated_user_name(user.getName());
ff.setCreated_user_id(user.getId());
operation = "Criação";
}
ff.setHashData(mapCleaner(ficha.getFicha().getMapData()));
if(ficha.getAntecentesOcupacionais() != null )
{
FcFichaAntecedentesOcupacionaisData fd = null;
if(ficha.getAntecentesOcupacionais().getId() != null)
{
fd = fichasProvidersBean.getENTITY_PROVIDER().load(FcFichaAntecedentesOcupacionaisData.class, ficha.getAntecentesOcupacionais().getId());
}
if(fd == null)
{
fd = new FcFichaAntecedentesOcupacionaisData();
fd.setProvider(fichasProvidersBean.getENTITY_PROVIDER());
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(mapCleaner(ficha.getAntecentesOcupacionais().getMapData()));
fd.save(trx);
ficha.getAntecentesOcupacionais().setId(fd.getId());
ff.setAntecedentes_ocupacionais_id(fd.getId());
FcFichaAntecedentesOcupacionaisBeanData fdb = new FcFichaAntecedentesOcupacionaisBeanData();
fdb.setId(fd.getId());
rspdata.setAntecentesOcupacionais(fdb);
if(ficha.getAntecentesOcupacionaisAcidentesTrabalho() != null)
{
List<FcFichaAntecedentesOcupacionaisAcidentesTrabalhoBeanData> aoat = new LinkedList<FcFichaAntecedentesOcupacionaisAcidentesTrabalhoBeanData>();
List<Integer> notDel = new LinkedList<Integer>();
for(FcFichaAntecedentesOcupacionaisAcidentesTrabalhoBeanData item : ficha.getAntecentesOcupacionaisAcidentesTrabalho())
{
FcFichaAntecedentesOcupacionaisAcidentesTrabalhoData itemBD = null;
if(item.getId() != null)
{
itemBD = fichasProvidersBean.getENTITY_PROVIDER().load(FcFichaAntecedentesOcupacionaisAcidentesTrabalhoData.class, item.getId());
}
if(itemBD == null)
{
itemBD = new FcFichaAntecedentesOcupacionaisAcidentesTrabalhoData();
itemBD.setProvider(fichasProvidersBean.getENTITY_PROVIDER());
itemBD.setCreated_user_name(user.getName());
itemBD.setCreated_user_id(user.getId());
}
itemBD.setHashData(mapCleaner(item.getMapData()));
itemBD.setAntecedentes_ocupacionais_id(fd.getId());
itemBD.setDeleted_stamp(null);
itemBD.save(trx);
item.setId(itemBD.getId());
notDel.add(itemBD.getId());
FcFichaAntecedentesOcupacionaisAcidentesTrabalhoBeanData itemb = new FcFichaAntecedentesOcupacionaisAcidentesTrabalhoBeanData();
itemb.setId(itemBD.getId());
aoat.add(itemb);
}
List<FcFichaAntecedentesOcupacionaisAcidentesTrabalhoData> toDel = fichasProvidersBean.getENTITY_PROVIDER().listLoad(FcFichaAntecedentesOcupacionaisAcidentesTrabalhoData.class, new Field(FcFichaAntecedentesOcupacionaisAcidentesTrabalhoData.ANTECEDENTES_OCUPACIONAIS_ID).isEqual(fd.getId()).and(new Field(FcFichaAntecedentesOcupacionaisAcidentesTrabalhoData.ID).notIn(notDel)), null, null);
for(FcFichaAntecedentesOcupacionaisAcidentesTrabalhoData del : toDel)
{
del.setDeleted_stamp(new Timestamp(System.currentTimeMillis()));
del.setDeleted_user_name(user.getName());
del.setDeleted_user_id(user.getId());
del.save(trx);
}
rspdata.setAntecentesOcupacionaisAcidentesTrabalho(aoat);
}
if(ficha.getAntecentesOcupacionaisActividadesAnteriores() != null)
{
List<FcFichaAntecedentesOcupacionaisActividadesAnterioresBeanData> aoaa = new LinkedList<FcFichaAntecedentesOcupacionaisActividadesAnterioresBeanData>();
List<Integer> notDel = new LinkedList<Integer>();
for(FcFichaAntecedentesOcupacionaisActividadesAnterioresBeanData item : ficha.getAntecentesOcupacionaisActividadesAnteriores())
{
FcFichaAntecedentesOcupacionaisActividadesAnterioresData itemBD = null;
if(item.getId() != null)
{
itemBD = fichasProvidersBean.getENTITY_PROVIDER().load(FcFichaAntecedentesOcupacionaisActividadesAnterioresData.class, item.getId());
}
if(itemBD == null)
{
itemBD = new FcFichaAntecedentesOcupacionaisActividadesAnterioresData();
itemBD.setProvider(fichasProvidersBean.getENTITY_PROVIDER());
itemBD.setCreated_user_name(user.getName());
itemBD.setCreated_user_id(user.getId());
}
itemBD.setHashData(mapCleaner(item.getMapData()));
itemBD.setAntecedentes_ocupacionais_id(fd.getId());
itemBD.setDeleted_stamp(null);
itemBD.save(trx);
item.setId(itemBD.getId());
notDel.add(itemBD.getId());
FcFichaAntecedentesOcupacionaisActividadesAnterioresBeanData itemb = new FcFichaAntecedentesOcupacionaisActividadesAnterioresBeanData();
itemb.setId(itemBD.getId());
aoaa.add(itemb);
}
List<FcFichaAntecedentesOcupacionaisActividadesAnterioresData> toDel = fichasProvidersBean.getENTITY_PROVIDER().listLoad(FcFichaAntecedentesOcupacionaisActividadesAnterioresData.class, new Field(FcFichaAntecedentesOcupacionaisActividadesAnterioresData.ANTECEDENTES_OCUPACIONAIS_ID).isEqual(fd.getId()).and(new Field(FcFichaAntecedentesOcupacionaisActividadesAnterioresData.ID).notIn(notDel)), null, null);
for(FcFichaAntecedentesOcupacionaisActividadesAnterioresData del : toDel)
{
del.setDeleted_stamp(new Timestamp(System.currentTimeMillis()));
del.setDeleted_user_name(user.getName());
del.setDeleted_user_id(user.getId());
del.save(trx);
}
rspdata.setAntecentesOcupacionaisActividadesAnteriores(aoaa);
}
if(ficha.getAntecentesOcupacionaisDoencasProfissionais() != null)
{
List<FcFichaAntecedentesOcupacionaisDoencasProfissionaisBeanData> aodp = new LinkedList<FcFichaAntecedentesOcupacionaisDoencasProfissionaisBeanData>();
List<Integer> notDel = new LinkedList<Integer>();
for(FcFichaAntecedentesOcupacionaisDoencasProfissionaisBeanData item : ficha.getAntecentesOcupacionaisDoencasProfissionais())
{
FcFichaAntecedentesOcupacionaisDoencasProfissionaisData itemBD = null;
if(item.getId() != null)
{
itemBD = fichasProvidersBean.getENTITY_PROVIDER().load(FcFichaAntecedentesOcupacionaisDoencasProfissionaisData.class, item.getId());
}
if(itemBD == null)
{
itemBD = new FcFichaAntecedentesOcupacionaisDoencasProfissionaisData();
itemBD.setProvider(fichasProvidersBean.getENTITY_PROVIDER());
itemBD.setCreated_user_name(user.getName());
itemBD.setCreated_user_id(user.getId());
}
itemBD.setHashData(mapCleaner(item.getMapData()));
itemBD.setAntecedentes_ocupacionais_id(fd.getId());
itemBD.setDeleted_stamp(null);
itemBD.save(trx);
item.setId(itemBD.getId());
notDel.add(itemBD.getId());
FcFichaAntecedentesOcupacionaisDoencasProfissionaisBeanData itemb = new FcFichaAntecedentesOcupacionaisDoencasProfissionaisBeanData();
itemb.setId(itemBD.getId());
aodp.add(itemb);
}
List<FcFichaAntecedentesOcupacionaisDoencasProfissionaisData> toDel = fichasProvidersBean.getENTITY_PROVIDER().listLoad(FcFichaAntecedentesOcupacionaisDoencasProfissionaisData.class, new Field(FcFichaAntecedentesOcupacionaisDoencasProfissionaisData.ANTECEDENTES_OCUPACIONAIS_ID).isEqual(fd.getId()).and(new Field(FcFichaAntecedentesOcupacionaisDoencasProfissionaisData.ID).notIn(notDel)), null, null);
for(FcFichaAntecedentesOcupacionaisDoencasProfissionaisData del : toDel)
{
del.setDeleted_stamp(new Timestamp(System.currentTimeMillis()));
del.setDeleted_user_name(user.getName());
del.setDeleted_user_id(user.getId());
del.save(trx);
}
rspdata.setAntecentesOcupacionaisDoencasProfissionais(aodp);
}
}
if(ficha.getAbsentismo() != null )
{
FcFichaAbsentismoData fd = null;
if(ficha.getAbsentismo().getId() != null)
{
fd = fichasProvidersBean.getENTITY_PROVIDER().load(FcFichaAbsentismoData.class,ficha.getAbsentismo().getId());
}
if(fd == null)
{
fd = new FcFichaAbsentismoData();
fd.setProvider(fichasProvidersBean.getENTITY_PROVIDER());
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(mapCleaner(ficha.getAbsentismo().getMapData()));
fd.save(trx);
ficha.getAbsentismo().setId(fd.getId());
ff.setAbsentismo_id(fd.getId());
FcFichaAbsentismoBeanData fdb = new FcFichaAbsentismoBeanData();
fdb.setId(fd.getId());
rspdata.setAbsentismo(fdb);
}
if(ficha.getActividade() != null )
{
FcFichaActividadeData fd = null;
if(ficha.getActividade().getId() != null)
{
fd = fichasProvidersBean.getENTITY_PROVIDER().load(FcFichaActividadeData.class,ficha.getActividade().getId());
}
if(fd == null)
{
fd = new FcFichaActividadeData();
fd.setProvider(fichasProvidersBean.getENTITY_PROVIDER());
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(mapCleaner(ficha.getActividade().getMapData()));
fd.save(trx);
ficha.getActividade().setId(fd.getId());
ff.setActividade_id(fd.getId());
FcFichaActividadeBeanData fdb = new FcFichaActividadeBeanData();
fdb.setId(fd.getId());
rspdata.setActividade(fdb);
}
if(ficha.getAntecedentesFamiliares() != null )
{
FcFichaAntecedentesFamiliaresData fd = null;
if(ficha.getAntecedentesFamiliares().getId() != null)
{
fd = fichasProvidersBean.getENTITY_PROVIDER().load(FcFichaAntecedentesFamiliaresData.class,ficha.getAntecedentesFamiliares().getId());
}
if(fd == null)
{
fd = new FcFichaAntecedentesFamiliaresData();
fd.setProvider(fichasProvidersBean.getENTITY_PROVIDER());
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(mapCleaner(ficha.getAntecedentesFamiliares().getMapData()));
fd.save(trx);
ficha.getAntecedentesFamiliares().setId(fd.getId());
ff.setAntecedentes_familiares_id(fd.getId());
FcFichaAntecedentesFamiliaresBeanData fdb = new FcFichaAntecedentesFamiliaresBeanData();
fdb.setId(fd.getId());
rspdata.setAntecedentesFamiliares(fdb);
}
if(ficha.getAntecedentesPessoais() != null )
{
FcFichaDoencasData fd = null;
if(ficha.getAntecedentesPessoais().getId() != null)
{
fd = fichasProvidersBean.getENTITY_PROVIDER().load(FcFichaDoencasData.class,ficha.getAntecedentesPessoais().getId());
}
if(fd == null)
{
fd = new FcFichaDoencasData();
fd.setProvider(fichasProvidersBean.getENTITY_PROVIDER());
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(mapCleaner(ficha.getAntecedentesPessoais().getMapData()));
fd.save(trx);
ficha.getAntecedentesPessoais().setId(fd.getId());
ff.setAntecedentes_pessoais_id(fd.getId());
FcFichaDoencasBeanData fdb = new FcFichaDoencasBeanData();
fdb.setId(fd.getId());
rspdata.setAntecedentesPessoais(fdb);
}
if(ficha.getClassificacaoIndividualSaude() != null )
{
FcFichaClassificacaoIndividualSaudeData fd = null;
if(ficha.getClassificacaoIndividualSaude().getId() != null)
{
fd = fichasProvidersBean.getENTITY_PROVIDER().load(FcFichaClassificacaoIndividualSaudeData.class,ficha.getClassificacaoIndividualSaude().getId());
}
if(fd == null)
{
fd = new FcFichaClassificacaoIndividualSaudeData();
fd.setProvider(fichasProvidersBean.getENTITY_PROVIDER());
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(mapCleaner(ficha.getClassificacaoIndividualSaude().getMapData()));
fd.save(trx);
ficha.getClassificacaoIndividualSaude().setId(fd.getId());
ff.setClassificacao_individual_saude_id(fd.getId());
FcFichaClassificacaoIndividualSaudeBeanData fdb = new FcFichaClassificacaoIndividualSaudeBeanData();
fdb.setId(fd.getId());
rspdata.setClassificacaoIndividualSaude(fdb);
}
if(ficha.getConclusoesResumo() != null )
{
FcFichaConclusoesData fd = null;
if(ficha.getConclusoesResumo().getId() != null)
{
fd = fichasProvidersBean.getENTITY_PROVIDER().load(FcFichaConclusoesData.class,ficha.getConclusoesResumo().getId());
}
if(fd == null)
{
fd = new FcFichaConclusoesData();
fd.setProvider(fichasProvidersBean.getENTITY_PROVIDER());
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(mapCleaner(ficha.getConclusoesResumo().getMapData()));
fd.save(trx);
ficha.getConclusoesResumo().setId(fd.getId());
ff.setConclusoes_id(fd.getId());
FcFichaConclusoesBeanData fdb = new FcFichaConclusoesBeanData();
fdb.setId(fd.getId());
rspdata.setConclusoesResumo(fdb);
}
if(ficha.getDoencasActivas() != null )
{
FcFichaDoencasData fd = null;
if(ficha.getDoencasActivas().getId() != null)
{
fd = fichasProvidersBean.getENTITY_PROVIDER().load(FcFichaDoencasData.class,ficha.getDoencasActivas().getId());
}
if(fd == null)
{
fd = new FcFichaDoencasData();
fd.setProvider(fichasProvidersBean.getENTITY_PROVIDER());
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(mapCleaner(ficha.getDoencasActivas().getMapData()));
fd.save(trx);
ficha.getDoencasActivas().setId(fd.getId());
ff.setDoencas_activas_id(fd.getId());
FcFichaDoencasBeanData fdb = new FcFichaDoencasBeanData();
fdb.setId(fd.getId());
rspdata.setDoencasActivas(fdb);
}
if(ficha.getEsquemaVacinal() != null )
{
FcFichaEsquemaVacinalData fd = null;
if(ficha.getEsquemaVacinal().getId() != null)
{
fd = fichasProvidersBean.getENTITY_PROVIDER().load(FcFichaEsquemaVacinalData.class,ficha.getEsquemaVacinal().getId());
}
if(fd == null)
{
fd = new FcFichaEsquemaVacinalData();
fd.setProvider(fichasProvidersBean.getENTITY_PROVIDER());
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(mapCleaner(ficha.getEsquemaVacinal().getMapData()));
fd.save(trx);
ficha.getEsquemaVacinal().setId(fd.getId());
ff.setEsquema_vacinal_id(fd.getId());
FcFichaEsquemaVacinalBeanData fdb = new FcFichaEsquemaVacinalBeanData();
fdb.setId(fd.getId());
rspdata.setEsquemaVacinal(fdb);
}
if(ficha.getExameObjectivo() != null )
{
FcFichaExameObjectivoData fd = null;
if(ficha.getExameObjectivo().getId() != null)
{
fd = fichasProvidersBean.getENTITY_PROVIDER().load(FcFichaExameObjectivoData.class,ficha.getExameObjectivo().getId());
}
if(fd == null)
{
fd = new FcFichaExameObjectivoData();
fd.setProvider(fichasProvidersBean.getENTITY_PROVIDER());
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(mapCleaner(ficha.getExameObjectivo().getMapData()));
fd.save(trx);
ficha.getExameObjectivo().setId(fd.getId());
ff.setExame_objectivo_id(fd.getId());
FcFichaExameObjectivoBeanData fdb = new FcFichaExameObjectivoBeanData();
fdb.setId(fd.getId());
rspdata.setExameObjectivo(fdb);
}
if(ficha.getHabitos() != null )
{
FcFichaHabitosData fd = null;
if(ficha.getHabitos().getId() != null)
{
fd = fichasProvidersBean.getENTITY_PROVIDER().load(FcFichaHabitosData.class,ficha.getHabitos().getId());
}
if(fd == null)
{
fd = new FcFichaHabitosData();
fd.setProvider(fichasProvidersBean.getENTITY_PROVIDER());
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(mapCleaner(ficha.getHabitos().getMapData()));
fd.save(trx);
ficha.getHabitos().setId(fd.getId());
ff.setHabitos_id(fd.getId());
FcFichaHabitosBeanData fdb = new FcFichaHabitosBeanData();
fdb.setId(fd.getId());
rspdata.setHabitos(fdb);
}
if(ficha.getProblemasSolucoes() != null )
{
FcFichaProblemasSolucoesData fd = null;
if(ficha.getProblemasSolucoes().getId() != null)
{
fd = fichasProvidersBean.getENTITY_PROVIDER().load(FcFichaProblemasSolucoesData.class,ficha.getProblemasSolucoes().getId());
}
if(fd == null)
{
fd = new FcFichaProblemasSolucoesData();
fd.setProvider(fichasProvidersBean.getENTITY_PROVIDER());
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(mapCleaner(ficha.getProblemasSolucoes().getMapData()));
fd.save(trx);
ficha.getProblemasSolucoes().setId(fd.getId());
ff.setProblemas_solucoes_id(fd.getId());
FcFichaProblemasSolucoesBeanData fdb = new FcFichaProblemasSolucoesBeanData();
fdb.setId(fd.getId());
rspdata.setProblemasSolucoes(fdb);
}
///TODO get timestamp da bd
if(ficha.getFicha().getData_conclusao() != null)
{
ff.setData_conclusao(new Timestamp(System.currentTimeMillis()));
ficha.getFicha().setData_conclusao(new Timestamp(System.currentTimeMillis()));
}
ff.save(trx);
ficha.getFicha().setId(ff.getId());
FcFichaBeanData rspdata_ficha = new FcFichaBeanData();
rspdata.setFicha(rspdata_ficha);
rspdata_ficha.setId(ff.getId());
fichasProvidersBean.getENTITY_PROVIDER().commit(trx);
rsp.setSuccess(true);
// rsp.setData(rspdata);
rsp.setData(ficha);
EvoMessageBean mb = new EvoMessageBean();
rsp.setSuccess(true);
mb.setType(EvoMessageTypeBean.INFO);
mb.setMessageData(operation+" da ficha com sucesso!");
rsp.addMessage(mb);
}
else
{
rsp.setSuccess(false);
EvoMessageBean mb = new EvoMessageBean();
mb.setType(EvoMessageTypeBean.ERROR);
mb.setMessageData("Erro Ficha Inválida!");
rsp.addMessage(mb);
}
}
catch(Exception ex)
{
if(trx != null)
{
fichasProvidersBean.getENTITY_PROVIDER().rollback(trx);
}
rsp.setSuccess(false);
EvoMessageBean mb = new EvoMessageBean();
mb.setType(EvoMessageTypeBean.ERROR);
mb.setMessageData("Erro ao gravar Ficha!"+ex);
rsp.addMessage(mb);
ex.printStackTrace();
}
}
else
{
rsp.setSuccess(false);
EvoMessageBean mb = new EvoMessageBean();
mb.setType(EvoMessageTypeBean.SESSIONTIMEOUT);
mb.setMessageData("sessão expirada");
rsp.addMessage(mb);
}
return Response.status(200).entity(rsp).build();
}
@GET
@Path("/getFichaEMCurativaEnf")
@Produces(MediaType.APPLICATION_JSON)
public Response getFichaEMCurativaEnf(@Context HttpServletRequest req, @DefaultValue("0") @QueryParam("fichaID") int fichaID)
{
// TODO Auto-generated method stub
return null;
}
@POST
@Path("/sendFichaEMCurativaEnf")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response sendFichaEMCurativaEnf(FichaEMCurativaEnfBean ficha) {
// TODO Auto-generated method stub
return null;
}
@GET
@Path("/getFichaEOcasional")
@Produces(MediaType.APPLICATION_JSON)
public Response getFichaEOcasional(@DefaultValue("0") @QueryParam("fichaID") int fichaID,@DefaultValue("0") @QueryParam("trabalhadorID") int trabalhadorID) {
// TODO Auto-generated method stub
return null;
}
@POST
@Path("/sendFichaEOcasional")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response sendFichaEOcasional(FichaEOcasionalBean ficha) {
// TODO Auto-generated method stub
return null;
}
@GET
@Path("/getFichaEPeriodico")
@Produces(MediaType.APPLICATION_JSON)
public Response getFichaEPeriodico(@DefaultValue("0") @QueryParam("fichaID") int fichaID,@DefaultValue("0") @QueryParam("trabalhadorID") int trabalhadorID) {
// TODO Auto-generated method stub
return null;
}
@POST
@Path("/sendFichaEPeriodico")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response sendFichaEPeriodico(FichaEPeriodicoBean ficha) {
// TODO Auto-generated method stub
return null;
}
@POST
@Path("/doLogin")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response doLogin(@Context HttpServletRequest req, Map<String,Object> auth) {
String login = (String) auth.get("user");
String pass = (String) auth.get("pass");
EvoResponseBean rsp = new EvoResponseBean();
EvoMessageBean mb = new EvoMessageBean();
rsp.addMessage(mb);
EvoUsrUserData user = null;
try
{
///TODO integração com o springsecurity que esta em falta devido a nao ser usado de momento
///TODO adicionar o envio de permissoes para o interface grafico poder ligar/desligar funcionalidades
user = UsersDataProvider.getProvider().loadUserByUsernamePasswordActive(login, pass, null);
if(user != null )
{
user.setLast_login(new Timestamp(System.currentTimeMillis()));
user.save();
req.getSession().setAttribute("user", user);
Map<String,Object> loginData = new HashMap<String, Object>();
loginData.put("username", user.getName());
List<FcTipoFichaData> tfl = fichasProvidersBean.getENTITY_PROVIDER().listLoad(FcTipoFichaData.class, new Field(FcTipoFichaData.DELETED_STAMP).isEqual(null), new String[]{FcTipoFichaData.DESCRICAO}, null);
List<FcTipoFichaBeanData> tflBean = new LinkedList<FcTipoFichaBeanData>();
for(FcTipoFichaData i : tfl)
{
FcTipoFichaBeanData ib = new FcTipoFichaBeanData();
ib.setMapData(i.getPropertiesValues(new String[]{FcTipoFichaData.ID,FcTipoFichaData.DESCRICAO}));
tflBean.add(ib);
}
loginData.put("tipoFichas", tflBean);
rsp.setData(loginData);
rsp.setSuccess(true);
mb.setType(EvoMessageTypeBean.INFO);
mb.setMessageData("login com sucesso");
}
else
{
rsp.setData(false);
rsp.setSuccess(false);
mb.setType(EvoMessageTypeBean.SECURITYEXCEPTION);
mb.setMessageData("utilizador e/ou password inválidos");
}
}
catch (Exception e)
{
rsp.setData(false);
rsp.setSuccess(false);
mb.setType(EvoMessageTypeBean.ERROR);
mb.setMessageData("Erro no processo de validação do login!");
}
return Response.status(200).entity(rsp).build();
}
@GET
@Path("/checkLogin")
@Produces(MediaType.APPLICATION_JSON)
public Response checkLogin(@Context HttpServletRequest req) {
EvoResponseBean rsp = new EvoResponseBean();
EvoMessageBean mb = new EvoMessageBean();
rsp.addMessage(mb);
if(req.getSession().getAttribute("user") != null )
{
try
{
EvoUsrUserData user = (EvoUsrUserData) req.getSession().getAttribute("user");
Map<String,Object> loginData = new HashMap<String, Object>();
loginData.put("username", user.getName());
List<FcTipoFichaData> tfl = fichasProvidersBean.getENTITY_PROVIDER().listLoad(FcTipoFichaData.class, new Field(FcTipoFichaData.DELETED_STAMP).isEqual(null), new String[]{FcTipoFichaData.DESCRICAO}, null);
List<FcTipoFichaBeanData> tflBean = new LinkedList<FcTipoFichaBeanData>();
for(FcTipoFichaData i : tfl)
{
FcTipoFichaBeanData ib = new FcTipoFichaBeanData();
ib.setMapData(i.getPropertiesValues(new String[]{FcTipoFichaData.ID,FcTipoFichaData.DESCRICAO}));
tflBean.add(ib);
}
loginData.put("tipoFichas", tflBean);
rsp.setData(loginData);
rsp.setSuccess(true);
mb.setType(EvoMessageTypeBean.INFO);
mb.setMessageData("sessão activa");
}
catch (Exception e)
{
rsp.setData(false);
rsp.setSuccess(false);
mb.setType(EvoMessageTypeBean.ERROR);
mb.setMessageData("Erro no processo de validação do login!");
}
}
else
{
rsp.setData(false);
rsp.setSuccess(false);
mb.setType(EvoMessageTypeBean.SECURITYEXCEPTION);
mb.setMessageData("sem sessão ou sessão expirada");
}
return Response.status(200).entity(rsp).build();
}
@POST
@Path("/doLogout")
@Produces(MediaType.APPLICATION_JSON)
public Response doLogout(@Context HttpServletRequest req) {
EvoResponseBean rsp = new EvoResponseBean();
EvoMessageBean mb = new EvoMessageBean();
rsp.addMessage(mb);
req.getSession().removeAttribute("user");
rsp.setData(true);
rsp.setSuccess(true);
mb.setType(EvoMessageTypeBean.INFO);
mb.setMessageData("logout com sucesso");
return Response.status(200).entity(rsp).build();
}
@GET
@Path("/getResumoTrabalhador")
@Produces(MediaType.APPLICATION_JSON)
public Response getResumoTrabalhador(@Context HttpServletRequest req, @DefaultValue("0") @QueryParam("trabalhadorID") int trabalhadorID) {
EvoResponseBean rsp = new EvoResponseBean();
EvoMessageBean mb = new EvoMessageBean();
if(req.getSession().getAttribute("user") != null )
{
try
{
TrabalhadorResumeBean tr = new TrabalhadorResumeBean();
TrabalhadoresData trab = siprpProvidersBean.getENTITY_PROVIDER().load(TrabalhadoresData.class, trabalhadorID);
FcFichaBeanData dadosTrab = new FcFichaBeanData();
dadosTrab.setTrabalhador_id(trab.getId());
dadosTrab.setTrabalhador_nome(trab.getNome());
dadosTrab.setTrabalhador_sexo(trab.getSexo().toUpperCase());
dadosTrab.setTrabalhador_data_nascimento(trab.getData_nascimento());
dadosTrab.setTrabalhador_data_admissao(trab.getData_admissao());
dadosTrab.setTrabalhador_funcao_actual(trab.getFuncao_proposta());
dadosTrab.setTrabalhador_posto(trab.getLocal_trabalho());
dadosTrab.setEstabelecimento_id(trab.getEstabelecimento_id());
EstabelecimentosData est = trab.toEstabelecimento_id();
dadosTrab.setEstabelecimento_localidade(est.getLocalidade());
dadosTrab.setEstabelecimento_nome(est.getNome());
dadosTrab.setEmpresa_id(est.getEmpresa_id());
EmpresasData emp = est.toEmpresa_id();
dadosTrab.setEmpresa_designacao_social(emp.getDesignacao_social());
dadosTrab.setEmpresa_ramo_actividade(emp.getActividade());
tr.setDadosTrabalhador(dadosTrab);
List<FcFichaData> fichasBD = fichasProvidersBean.getENTITY_PROVIDER().listLoad(FcFichaData.class, new Field(FcFichaData.TRABALHADOR_ID).isEqual(trabalhadorID).and(new Field(FcFichaData.DELETED_STAMP).isEqual(null)), null, null);
List<FichaResumeBean> fichas = new LinkedList<FichaResumeBean>();
for(FcFichaData fbd : fichasBD)
{
FichaResumeBean fichaR = new FichaResumeBean();
fichaR.setId(fbd.getId());
fichaR.setData(fbd.getCreated_stamp());
String tipo_str = "-INDEFINIDO-";
FcTipoFicha tipo = fbd.toTipo_ficha_id() ;
if(tipo != null)
{
tipo_str = tipo.getDescricao();
}
fichaR.setTipo(tipo_str);
fichaR.setResponsavel(fbd.getCreated_user_name());
fichaR.setEditable(true);
fichaR.setConcluido(fbd.getData_conclusao()!=null);
fichas.add(fichaR);
}
tr.setFichas(fichas);
rsp.setSuccess(true);
rsp.setData(tr);
}
catch (Exception e)
{
rsp.setSuccess(false);
mb.setType(EvoMessageTypeBean.ERROR);
mb.setMessageData("Ocorreu um erro ao carregar os dados do Trabalhador");
rsp.addMessage(mb);
e.printStackTrace();
}
}
else
{
rsp.setData(false);
rsp.setSuccess(false);
mb.setType(EvoMessageTypeBean.SECURITYEXCEPTION);
mb.setMessageData("Sem sessão ou sessão expirada");
rsp.addMessage(mb);
}
return Response.status(200).entity(rsp).build();
}
@GET
@Path("/getViews")
@Produces(MediaType.TEXT_HTML)
public Response getViews(@Context HttpServletRequest req) {
String html = "";
try
{
DirectoryFileUtils dff = new DirectoryFileUtils();
//TODO: check the alternative to getRealPath
String basePath = req.getRealPath("/static/html/app");
File baseFolder = new File(basePath);
List<String> foundFiles = dff.getFilesContents(baseFolder, ".html");
for(int i=0; i < foundFiles.toArray().length; i++){
html += foundFiles.get(i);
}
//https://code.google.com/p/htmlcompressor/#Using_HTML_Compressor_from_Java_API
HtmlCompressor compressor = new HtmlCompressor();
html = compressor.compress(html);
}
catch (Exception e)
{
}
return Response.status(200).entity(html).build();
}
//TODO: place this class elsewhere
public class DirectoryFileUtils {
private List<String> fileContents = new ArrayList<String>();
private String content;
private Scanner scanner;
public List<String> getFilesContents(File file, String extension) throws FileNotFoundException {
if (file.isFile() && file.getName().endsWith(extension)) {
scanner = new Scanner(new File(file.getAbsoluteFile().toString()));
content = scanner.useDelimiter("\\Z").next();
fileContents.add(content);
} else if (file.isDirectory()) {
File[] listOfFiles = file.listFiles();
if (listOfFiles != null) {
for (int i = 0; i < listOfFiles.length; i++){
getFilesContents(listOfFiles[i], extension);
}
} else {
System.out.println("[ACCESS DENIED]");
}
}
return fileContents;
}
}
}