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.
1388 lines
49 KiB
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;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|