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.
SIPRP/trunk/SiprpWebFichasClinicas/src/shst/medicina/fichasclinicas/logic/FichasClinicasLogic.java

1844 lines
68 KiB

package shst.medicina.fichasclinicas.logic;
import java.sql.Timestamp;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
import org.springframework.beans.factory.annotation.Autowired;
import pt.evolute.MailSenderSpringBean;
import shst.medicina.fichasclinicas.beans.EvoMessageBean;
import shst.medicina.fichasclinicas.beans.EvoMessageTypeBean;
import shst.medicina.fichasclinicas.beans.EvoResponseBean;
import shst.medicina.fichasclinicas.beans.FichaComposedBean;
import shst.medicina.fichasclinicas.beans.FichaExchangeBean;
import shst.medicina.fichasclinicas.beans.FichaRenderDataBean;
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.FcFichaAntecedentesPessoaisBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaAntecedentesPessoaisCirurgiasBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaAntecedentesPessoaisFracturasBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaAntecedentesPessoaisInternamentosBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaAptidaoBeanData;
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.FcFichaDoencasActivasBeanData;
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.FcFichaInformacaoPeriodicaBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaProblemasSolucoesBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcHabitosAlcoolicosBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcHabitosTabagicosBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.FcMotivosBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.TrbEstadoCivilBeanData;
import shst.medicina.fichasclinicas.beans.fichasclinicas.TrbHabilitacoesBeanData;
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.FcFichaAntecedentesPessoaisCirurgiasData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaAntecedentesPessoaisData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaAntecedentesPessoaisFracturasData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaAntecedentesPessoaisInternamentosData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaAptidaoData;
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.FcFichaDoencasActivasData;
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.FcFichaInformacaoPeriodicaData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaProblemasSolucoesData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcHabitosAlcoolicosData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcHabitosTabagicosData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcMotivosData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcTipoFichaData;
import shst.medicina.fichasclinicas.data.fichasclinicas.TrbEstadoCivilData;
import shst.medicina.fichasclinicas.data.fichasclinicas.TrbHabilitacoesData;
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 shst.medicina.fichasclinicas.provider.FichasClinicasDataProvider;
import com.evolute.module.utilizadores.data.EvoUsrUserData;
import com.evolute.utils.error.ErrorLogger;
public class FichasClinicasLogic
{
@Autowired(required = true)
FichasClinicasDataProvider fichasProvider;
@Autowired(required = true)
MailSenderSpringBean mailsender;
private static final String[] EMPRESAS_D_to_B = new String[]{EmpresasData.ID,EmpresasData.DESIGNACAO_SOCIAL};
private static final String[] ESTABELECIMENTOS_D_to_B = new String[]{EstabelecimentosData.ID,EstabelecimentosData.NOME};
private static final String[] TRABALHADORES_D_to_B = new String[]{TrabalhadoresData.ID,TrabalhadoresData.NOME};
private static final String[] FcFicha_D_to_B ;
private static final String[] FcFichaAntecedentesOcupacionais_D_to_B ;
private static final String[] FcFichaAntecedentesOcupacionaisAcidentesTrabalho_D_to_B ;
private static final String[] FcFichaAntecedentesOcupacionaisActividadesAnteriores_D_to_B ;
private static final String[] FcFichaAntecedentesOcupacionaisDoencasProfissionais_D_to_B ;
private static final String[] FcFichaAbsentismo_D_to_B ;
private static final String[] FcFichaActividade_D_to_B ;
private static final String[] FcFichaAntecedentesFamiliares_D_to_B ;
private static final String[] FcFichaAntecedentesPessoais_D_to_B ;
private static final String[] FcFichaAntecedentesPessoaisCirurgias_D_to_B ;
private static final String[] FcFichaAntecedentesPessoaisFracturas_D_to_B ;
private static final String[] FcFichaAntecedentesPessoaisInternamentos_D_to_B ;
private static final String[] FcFichaClassificacaoIndividualSaude_D_to_B ;
private static final String[] FcFichaConclusoes_D_to_B ;
private static final String[] FcFichaDoencasActivas_D_to_B ;
private static final String[] FcFichaEsquemaVacinal_D_to_B ;
private static final String[] FcFichaExameObjectivo_D_to_B ;
private static final String[] FcFichaHabitos_D_to_B ;
private static final String[] FcFichaProblemasSolucoes_D_to_B ;
private static final String[] FcFichaInformacaoPeriodica_D_to_B ;
private static final String[] FcFichaAptidao_D_to_B ;
static
{
List<String> fieldsToClean = Arrays.asList( new String[]{FcFichaData.CREATED_STAMP, FcFichaData.CREATED_USER_ID, FcFichaData.CREATED_USER_NAME, FcFichaData.DELETED_STAMP, FcFichaData.DELETED_USER_ID, FcFichaData.DELETED_USER_NAME});
List<String> tmp = new LinkedList<String>();
tmp.addAll(Arrays.asList(FcFichaData.FIELD_NAMES));
tmp.add(FcFichaData.ID);
tmp.removeAll(fieldsToClean);
FcFicha_D_to_B = tmp.toArray(new String[]{});
tmp.clear();
tmp.addAll(Arrays.asList(FcFichaAntecedentesOcupacionaisData.FIELD_NAMES));
tmp.add(FcFichaAntecedentesOcupacionaisData.ID);
tmp.removeAll(fieldsToClean);
FcFichaAntecedentesOcupacionais_D_to_B = tmp.toArray(new String[]{});
tmp.clear();
tmp.addAll(Arrays.asList(FcFichaAntecedentesOcupacionaisAcidentesTrabalhoData.FIELD_NAMES));
tmp.add(FcFichaAntecedentesOcupacionaisAcidentesTrabalhoData.ID);
tmp.removeAll(fieldsToClean);
FcFichaAntecedentesOcupacionaisAcidentesTrabalho_D_to_B = tmp.toArray(new String[]{});
tmp.clear();
tmp.addAll(Arrays.asList(FcFichaAntecedentesOcupacionaisActividadesAnterioresData.FIELD_NAMES));
tmp.add(FcFichaAntecedentesOcupacionaisActividadesAnterioresData.ID);
tmp.removeAll(fieldsToClean);
FcFichaAntecedentesOcupacionaisActividadesAnteriores_D_to_B = tmp.toArray(new String[]{});
tmp.clear();
tmp.addAll(Arrays.asList(FcFichaAntecedentesOcupacionaisDoencasProfissionaisData.FIELD_NAMES));
tmp.add(FcFichaAntecedentesOcupacionaisDoencasProfissionaisData.ID);
tmp.removeAll(fieldsToClean);
FcFichaAntecedentesOcupacionaisDoencasProfissionais_D_to_B = tmp.toArray(new String[]{});
tmp.clear();
tmp.addAll(Arrays.asList(FcFichaAbsentismoData.FIELD_NAMES)) ;
tmp.add(FcFichaAbsentismoData.ID);
tmp.removeAll(fieldsToClean);
FcFichaAbsentismo_D_to_B = tmp.toArray(new String[]{});
tmp.clear();
tmp.addAll(Arrays.asList(FcFichaActividadeData.FIELD_NAMES));
tmp.add(FcFichaActividadeData.ID);
tmp.removeAll(fieldsToClean);
FcFichaActividade_D_to_B = tmp.toArray(new String[]{});
tmp.clear();
tmp.addAll(Arrays.asList(FcFichaAntecedentesFamiliaresData.FIELD_NAMES));
tmp.add(FcFichaAntecedentesFamiliaresData.ID);
tmp.removeAll(fieldsToClean);
FcFichaAntecedentesFamiliares_D_to_B = tmp.toArray(new String[]{});
tmp.clear();
tmp.addAll(Arrays.asList(FcFichaAntecedentesPessoaisData.FIELD_NAMES));
tmp.add(FcFichaAntecedentesPessoaisData.ID);
tmp.removeAll(fieldsToClean);
FcFichaAntecedentesPessoais_D_to_B = tmp.toArray(new String[]{});
tmp.clear();
tmp.addAll(Arrays.asList(FcFichaAntecedentesPessoaisCirurgiasData.FIELD_NAMES));
tmp.add(FcFichaAntecedentesPessoaisCirurgiasData.ID);
tmp.removeAll(fieldsToClean);
FcFichaAntecedentesPessoaisCirurgias_D_to_B = tmp.toArray(new String[]{});
tmp.clear();
tmp.addAll(Arrays.asList(FcFichaAntecedentesPessoaisFracturasData.FIELD_NAMES));
tmp.add(FcFichaAntecedentesPessoaisFracturasData.ID);
tmp.removeAll(fieldsToClean);
FcFichaAntecedentesPessoaisFracturas_D_to_B = tmp.toArray(new String[]{});
tmp.clear();
tmp.addAll(Arrays.asList(FcFichaAntecedentesPessoaisInternamentosData.FIELD_NAMES));
tmp.add(FcFichaAntecedentesPessoaisInternamentosData.ID);
tmp.removeAll(fieldsToClean);
FcFichaAntecedentesPessoaisInternamentos_D_to_B = tmp.toArray(new String[]{});
tmp.clear();
tmp.addAll(Arrays.asList(FcFichaClassificacaoIndividualSaudeData.FIELD_NAMES));
tmp.add(FcFichaClassificacaoIndividualSaudeData.ID);
tmp.removeAll(fieldsToClean);
FcFichaClassificacaoIndividualSaude_D_to_B = tmp.toArray(new String[]{});
tmp.clear();
tmp.addAll(Arrays.asList(FcFichaConclusoesData.FIELD_NAMES));
tmp.add(FcFichaConclusoesData.ID);
tmp.removeAll(fieldsToClean);
FcFichaConclusoes_D_to_B = tmp.toArray(new String[]{});
tmp.clear();
tmp.addAll(Arrays.asList(FcFichaDoencasActivasData.FIELD_NAMES));
tmp.add(FcFichaDoencasActivasData.ID);
tmp.removeAll(fieldsToClean);
FcFichaDoencasActivas_D_to_B = tmp.toArray(new String[]{});
tmp.clear();
tmp.addAll(Arrays.asList(FcFichaEsquemaVacinalData.FIELD_NAMES));
tmp.add(FcFichaEsquemaVacinalData.ID);
tmp.removeAll(fieldsToClean);
FcFichaEsquemaVacinal_D_to_B = tmp.toArray(new String[]{});
tmp.clear();
tmp.addAll(Arrays.asList(FcFichaExameObjectivoData.FIELD_NAMES));
tmp.add(FcFichaExameObjectivoData.ID);
tmp.removeAll(fieldsToClean);
FcFichaExameObjectivo_D_to_B = tmp.toArray(new String[]{});
tmp.clear();
tmp.addAll(Arrays.asList(FcFichaHabitosData.FIELD_NAMES));
tmp.add(FcFichaHabitosData.ID);
tmp.removeAll(fieldsToClean);
FcFichaHabitos_D_to_B = tmp.toArray(new String[]{});
tmp.clear();
tmp.addAll(Arrays.asList(FcFichaProblemasSolucoesData.FIELD_NAMES));
tmp.add(FcFichaProblemasSolucoesData.ID);
tmp.removeAll(fieldsToClean);
FcFichaProblemasSolucoes_D_to_B = tmp.toArray(new String[]{});
tmp.clear();
tmp.addAll(Arrays.asList(FcFichaInformacaoPeriodicaData.FIELD_NAMES));
tmp.add(FcFichaInformacaoPeriodicaData.ID);
tmp.removeAll(fieldsToClean);
FcFichaInformacaoPeriodica_D_to_B = tmp.toArray(new String[]{});
tmp.clear();
tmp.addAll(Arrays.asList(FcFichaAptidaoData.FIELD_NAMES));
tmp.add(FcFichaAptidaoData.ID);
tmp.removeAll(fieldsToClean);
FcFichaAptidao_D_to_B = tmp.toArray(new String[]{});
}
private static final String ADM_COD = "ADMISSAO";
private static final String PER_INI_COD = "PERIODICA_INICIAL";
private static final String PER_COD = "PERIODICA";
private static final String OCA_COD = "OCASIONAL";
private static final String OCA_PREFIX = "OC_";
private static final String ENF_COD = "ENFERMAGEM";
// private static final String ENF_PREFIX = "MC_ENF_";
private static final String MDC_COD = "MEDICINA_CURATIVA";
// private static final String MDC_PREFIX = "MC_ENF_";
private static final String MDC_ENF_PREFIX = "MC_ENF_";
private Map<String,Object> filtra(Map<String,Object> in, String[] filtro)
{
Map<String,Object> out = new HashMap<String, Object>();
List<String> to_filter = Arrays.asList(filtro);
for(String f : in.keySet())
{
if(to_filter.contains(f))
{
out.put(f, in.get(f));
}
}
return out;
}
public EvoResponseBean<List<EmpresasBeanData>> getEmpresas(EvoUsrUserData user, String filter)
{
EvoResponseBean<List<EmpresasBeanData>> result = new EvoResponseBean<List<EmpresasBeanData>>();
if(user != null)
{
try
{
List<EmpresasBeanData> outSet = new LinkedList<EmpresasBeanData>();
for(EmpresasData in : fichasProvider.getEmpresas(user, filter))
{
EmpresasBeanData out = new EmpresasBeanData();
out.setMapData(in.getPropertiesValues(EMPRESAS_D_to_B));
outSet.add(out);
}
result.setSuccess(true);
result.setData(outSet);
}
catch(Exception ex)
{
result.setSuccess(false);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.ERROR);
msg.setMessageData("Erro ao comunicar com a Base de dados!");
result.addMessage(msg);
ErrorLogger.logException(ex, Level.SEVERE);
}
}
else
{
result.setSuccess(false);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.SESSIONTIMEOUT);
msg.setMessageData("Utilizador asssociado à sessão inválido/inexistente!");
result.addMessage(msg);
}
return result;
}
public EvoResponseBean<List<EstabelecimentosBeanData>> getEstabelecimentos(EvoUsrUserData user, Integer empresaID, String filter)
{
EvoResponseBean<List<EstabelecimentosBeanData>> result = new EvoResponseBean<List<EstabelecimentosBeanData>>();
if(user != null)
{
try
{
List<EstabelecimentosBeanData> outSet = new LinkedList<EstabelecimentosBeanData>();
for(EstabelecimentosData in : fichasProvider.getEstabelecimentos(user, empresaID, filter))
{
EstabelecimentosBeanData out = new EstabelecimentosBeanData();
out.setMapData(in.getPropertiesValues(ESTABELECIMENTOS_D_to_B));
outSet.add(out);
}
result.setSuccess(true);
result.setData(outSet);
}
catch(Exception ex)
{
result.setSuccess(false);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.ERROR);
msg.setMessageData("Erro ao comunicar com a Base de dados!");
result.addMessage(msg);
ErrorLogger.logException(ex, Level.SEVERE);
}
}
else
{
result.setSuccess(false);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.SESSIONTIMEOUT);
msg.setMessageData("Utilizador asssociado à sessão inválido/inexistente!");
result.addMessage(msg);
}
return result;
}
public EvoResponseBean<List<TrabalhadoresBeanData>> getTrabalhadores(EvoUsrUserData user, Integer estabelecimentoID, String filter)
{
EvoResponseBean<List<TrabalhadoresBeanData>> result = new EvoResponseBean<List<TrabalhadoresBeanData>>();
if(user != null)
{
try
{
List<TrabalhadoresBeanData> outSet = new LinkedList<TrabalhadoresBeanData>();
for(TrabalhadoresData in : fichasProvider.getTrabalhadores(user, estabelecimentoID, filter))
{
TrabalhadoresBeanData out = new TrabalhadoresBeanData();
out.setMapData(in.getPropertiesValues(TRABALHADORES_D_to_B));
outSet.add(out);
}
result.setSuccess(true);
result.setData(outSet);
}
catch(Exception ex)
{
result.setSuccess(false);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.ERROR);
msg.setMessageData("Erro ao comunicar com a Base de dados!");
result.addMessage(msg);
ErrorLogger.logException(ex, Level.SEVERE);
}
}
else
{
result.setSuccess(false);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.SESSIONTIMEOUT);
msg.setMessageData("Utilizador asssociado à sessão inválido/inexistente!");
result.addMessage(msg);
}
return result;
}
public EvoResponseBean<TrabalhadorResumeBean> loadTrabalhadorResume(EvoUsrUserData user, Integer trabalhadorID)
{
EvoResponseBean<TrabalhadorResumeBean> result = new EvoResponseBean<TrabalhadorResumeBean>();
if(user != null)
{
try
{
TrabalhadoresData trab = fichasProvider.getTrabalhador(user, trabalhadorID, false);
if(trab != null)
{
TrabalhadorResumeBean resultData = new TrabalhadorResumeBean();
FcFichaBeanData dadosTrabalhador = new FcFichaBeanData();
dadosTrabalhador.setTrabalhador_id(trab.getId());
dadosTrabalhador.setTrabalhador_nome(trab.getNome());
dadosTrabalhador.setTrabalhador_sexo(trab.getSexo().toUpperCase());
dadosTrabalhador.setTrabalhador_data_nascimento(trab.getData_nascimento());
dadosTrabalhador.setTrabalhador_data_admissao(trab.getData_admissao());
dadosTrabalhador.setTrabalhador_funcao_actual(trab.getFuncao_proposta());
dadosTrabalhador.setTrabalhador_posto(trab.getLocal_trabalho());
dadosTrabalhador.setEstabelecimento_id(trab.getEstabelecimento_id());
EstabelecimentosData estabelecimento = trab.toEstabelecimento_id();
if(estabelecimento != null)
{
dadosTrabalhador.setEstabelecimento_localidade(estabelecimento.getLocalidade());
dadosTrabalhador.setEstabelecimento_nome(estabelecimento.getNome());
dadosTrabalhador.setEmpresa_id(estabelecimento.getEmpresa_id());
EmpresasData empresa = estabelecimento.toEmpresa_id();
if(empresa != null)
{
dadosTrabalhador.setEmpresa_designacao_social(empresa.getDesignacao_social());
dadosTrabalhador.setEmpresa_ramo_actividade(empresa.getActividade());
}
}
resultData.setDadosTrabalhador(dadosTrabalhador);
List<FichaResumeBean> outSet = new LinkedList<FichaResumeBean>();
for(FcFichaData in : fichasProvider.getFichasTrabalhador(user, trabalhadorID))
{
FichaResumeBean out = new FichaResumeBean();
out.setId(in.getId());
out.setData(in.getCreated_stamp());
String tipo_str = "!INDEFINIDO!";
FcTipoFicha tipo = in.toTipo_ficha_id() ;
if(tipo != null)
{
tipo_str = tipo.getDescricao();
}
out.setTipo(tipo_str);
out.setResponsavel(in.getCreated_user_name());
out.setEditable(checkCanWrite(user.getId(),in.getId()));
out.setConcluido(in.getData_conclusao() != null);
out.setTipo_id(in.getTipo_ficha_id());
if(in.toAptidao_id() != null)
{
out.setEmissao_ficha_aptidao(in.toAptidao_id().getCreated_stamp());
}
outSet.add(out);
}
resultData.setFichas(outSet);
result.setSuccess(true);
result.setData(resultData);
}
else
{
result.setSuccess(false);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.ERROR);
msg.setMessageData("Erro ao carregar Trabalhador!");
result.addMessage(msg);
}
}
catch(Exception ex)
{
result.setSuccess(false);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.ERROR);
msg.setMessageData("Erro ao comunicar com a Base de dados!");
result.addMessage(msg);
ErrorLogger.logException(ex, Level.SEVERE);
}
}
else
{
result.setSuccess(false);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.SESSIONTIMEOUT);
msg.setMessageData("Utilizador asssociado à sessão inválido/inexistente!");
result.addMessage(msg);
}
return result;
}
private FichaComposedBean loadFicha(FcFichaData fichaBD, Boolean cleanIDs) throws Exception
{
FichaComposedBean data = new FichaComposedBean();
if(fichaBD != null)
{
FcFichaBeanData fichaBean = new FcFichaBeanData();
fichaBean.setMapData(fichaBD.getPropertiesValues(FcFicha_D_to_B));
if(cleanIDs)
{
fichaBean.setId(null);
}
data.setFicha(fichaBean);
FcFichaAntecedentesOcupacionaisData anto =fichaBD.toAntecedentes_ocupacionais_id();
if(anto != null)
{
FcFichaAntecedentesOcupacionaisBeanData antoBean = new FcFichaAntecedentesOcupacionaisBeanData();
antoBean.setMapData(anto.getPropertiesValues(FcFichaAntecedentesOcupacionais_D_to_B));
if(cleanIDs)
{
antoBean.setId(null);
}
data.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(FcFichaAntecedentesOcupacionaisAcidentesTrabalho_D_to_B));
if(cleanIDs)
{
atBean.setId(null);
}
antoatBean.add(atBean);
}
}
data.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(FcFichaAntecedentesOcupacionaisActividadesAnteriores_D_to_B));
if(cleanIDs)
{
atBean.setId(null);
}
antoaaBean.add(atBean);
}
}
data.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(FcFichaAntecedentesOcupacionaisDoencasProfissionais_D_to_B));
if(cleanIDs)
{
atBean.setId(null);
}
antodpBean.add(atBean);
}
}
data.setAntecentesOcupacionaisDoencasProfissionais(antodpBean);
}
FcFichaAbsentismoData abs = fichaBD.toAbsentismo_id();
if(abs != null)
{
FcFichaAbsentismoBeanData absBean = new FcFichaAbsentismoBeanData();
absBean.setMapData(abs.getPropertiesValues(FcFichaAbsentismo_D_to_B));
if(cleanIDs)
{
absBean.setId(null);
}
data.setAbsentismo(absBean);
}
FcFichaActividadeData act = fichaBD.toActividade_id();
if(act != null)
{
FcFichaActividadeBeanData actBean = new FcFichaActividadeBeanData();
actBean.setMapData(act.getPropertiesValues(FcFichaActividade_D_to_B));
if(cleanIDs)
{
actBean.setId(null);
}
data.setActividade(actBean);
}
FcFichaAntecedentesFamiliaresData antf = fichaBD.toAntecedentes_familiares_id();
if(antf != null)
{
FcFichaAntecedentesFamiliaresBeanData antfBean = new FcFichaAntecedentesFamiliaresBeanData();
antfBean.setMapData(antf.getPropertiesValues(FcFichaAntecedentesFamiliares_D_to_B));
if(cleanIDs)
{
antfBean.setId(null);
}
data.setAntecedentesFamiliares(antfBean);
}
FcFichaAntecedentesPessoaisData antp = fichaBD.toAntecedentes_pessoais_id();
if(antp != null)
{
FcFichaAntecedentesPessoaisBeanData antpBean = new FcFichaAntecedentesPessoaisBeanData();
antpBean.setMapData(antp.getPropertiesValues(FcFichaAntecedentesPessoais_D_to_B));
data.setAntecedentesPessoais(antpBean);
{
List<FcFichaAntecedentesPessoaisCirurgiasData> antpc = antp.fromFcFichaAntecedentesPessoaisCirurgias_antecedentes_pessoais_id();
LinkedList<FcFichaAntecedentesPessoaisCirurgiasBeanData> antpcBean = new LinkedList<FcFichaAntecedentesPessoaisCirurgiasBeanData>();
for(FcFichaAntecedentesPessoaisCirurgiasData apc : antpc)
{
if(apc.getDeleted_stamp() == null)
{
FcFichaAntecedentesPessoaisCirurgiasBeanData apcBean = new FcFichaAntecedentesPessoaisCirurgiasBeanData();
apcBean.setMapData(apc.getPropertiesValues(FcFichaAntecedentesPessoaisCirurgias_D_to_B));
if(cleanIDs)
{
apcBean.setId(null);
}
antpcBean.add(apcBean);
}
}
data.setAntecedentesPessoaisCirurgias(antpcBean);
}
{
List<FcFichaAntecedentesPessoaisFracturasData> antpc = antp.fromFcFichaAntecedentesPessoaisFracturas_antecedentes_pessoais_id();
LinkedList<FcFichaAntecedentesPessoaisFracturasBeanData> antpcBean = new LinkedList<FcFichaAntecedentesPessoaisFracturasBeanData>();
for(FcFichaAntecedentesPessoaisFracturasData apc : antpc)
{
if(apc.getDeleted_stamp() == null)
{
FcFichaAntecedentesPessoaisFracturasBeanData apcBean = new FcFichaAntecedentesPessoaisFracturasBeanData();
apcBean.setMapData(apc.getPropertiesValues(FcFichaAntecedentesPessoaisFracturas_D_to_B));
if(cleanIDs)
{
apcBean.setId(null);
}
antpcBean.add(apcBean);
}
}
data.setAntecedentesPessoaisFracturas(antpcBean);
}
{
List<FcFichaAntecedentesPessoaisInternamentosData> antpc = antp.fromFcFichaAntecedentesPessoaisInternamentos_antecedentes_pessoais_id();
LinkedList<FcFichaAntecedentesPessoaisInternamentosBeanData> antpcBean = new LinkedList<FcFichaAntecedentesPessoaisInternamentosBeanData>();
for(FcFichaAntecedentesPessoaisInternamentosData apc : antpc)
{
if(apc.getDeleted_stamp() == null)
{
FcFichaAntecedentesPessoaisInternamentosBeanData apcBean = new FcFichaAntecedentesPessoaisInternamentosBeanData();
apcBean.setMapData(apc.getPropertiesValues(FcFichaAntecedentesPessoaisInternamentos_D_to_B));
if(cleanIDs)
{
apcBean.setId(null);
}
antpcBean.add(apcBean);
}
}
data.setAntecedentesPessoaisInternamentos(antpcBean);
}
}
FcFichaClassificacaoIndividualSaudeData cis = fichaBD.toClassificacao_individual_saude_id();
if(cis != null)
{
FcFichaClassificacaoIndividualSaudeBeanData cisBean = new FcFichaClassificacaoIndividualSaudeBeanData();
cisBean.setMapData(cis.getPropertiesValues(FcFichaClassificacaoIndividualSaude_D_to_B));
if(cleanIDs)
{
cisBean.setId(null);
}
data.setClassificacaoIndividualSaude(cisBean);
}
FcFichaConclusoesData cr = fichaBD.toConclusoes_id();
if(cr != null)
{
FcFichaConclusoesBeanData crBean = new FcFichaConclusoesBeanData();
crBean.setMapData(cr.getPropertiesValues(FcFichaConclusoes_D_to_B));
if(cleanIDs)
{
crBean.setId(null);
}
data.setConclusoesResumo(crBean);
}
FcFichaDoencasActivasData da = fichaBD.toDoencas_activas_id();
if(da != null)
{
FcFichaDoencasActivasBeanData daBean = new FcFichaDoencasActivasBeanData();
daBean.setMapData(da.getPropertiesValues(FcFichaDoencasActivas_D_to_B));
if(cleanIDs)
{
daBean.setId(null);
}
data.setDoencasActivas(daBean);
}
FcFichaEsquemaVacinalData ev = fichaBD.toEsquema_vacinal_id();
if(ev != null)
{
FcFichaEsquemaVacinalBeanData evBean = new FcFichaEsquemaVacinalBeanData();
evBean.setMapData(ev.getPropertiesValues(FcFichaEsquemaVacinal_D_to_B));
if(cleanIDs)
{
evBean.setId(null);
}
data.setEsquemaVacinal(evBean);
}
FcFichaExameObjectivoData eo = fichaBD.toExame_objectivo_id();
if(eo != null)
{
FcFichaExameObjectivoBeanData eoBean = new FcFichaExameObjectivoBeanData();
eoBean.setMapData(eo.getPropertiesValues(FcFichaExameObjectivo_D_to_B));
if(cleanIDs)
{
eoBean.setId(null);
}
data.setExameObjectivo(eoBean);
}
FcFichaHabitosData fh = fichaBD.toHabitos_id();
if(fh != null)
{
FcFichaHabitosBeanData fhBean = new FcFichaHabitosBeanData();
fhBean.setMapData(fh.getPropertiesValues(FcFichaHabitos_D_to_B));
if(cleanIDs)
{
fhBean.setId(null);
}
data.setHabitos(fhBean);
}
FcFichaProblemasSolucoesData ps = fichaBD.toProblemas_solucoes_id();
if(ps != null)
{
FcFichaProblemasSolucoesBeanData psBean = new FcFichaProblemasSolucoesBeanData();
psBean.setMapData(ps.getPropertiesValues(FcFichaProblemasSolucoes_D_to_B));
if(cleanIDs)
{
psBean.setId(null);
}
data.setProblemasSolucoes(psBean);
}
FcFichaInformacaoPeriodicaData fpd = fichaBD.toInformacao_periodica_id();
if(fpd != null)
{
FcFichaInformacaoPeriodicaBeanData fpdBean = new FcFichaInformacaoPeriodicaBeanData();
fpdBean.setMapData(fpd.getPropertiesValues(FcFichaInformacaoPeriodica_D_to_B));
if(cleanIDs)
{
fpdBean.setId(null);
}
data.setInformacaoPeriodica(fpdBean);
}
}
else
{
throw new Exception("Ficha Inválida!");
}
return data;
}
public EvoResponseBean<FichaExchangeBean> getFicha(EvoUsrUserData user, Integer fichaID, Integer trabalhadorID, Integer fichaTipoID)
{
EvoResponseBean<FichaExchangeBean> result = new EvoResponseBean<FichaExchangeBean>();
if(user != null)
{
try
{
FichaExchangeBean bean = new FichaExchangeBean();
FcFichaData ficha = null;
if(fichaID != null)
{
ficha = fichasProvider.getFicha(user,fichaID);
}
else
{
ficha = fichasProvider.getLastFicha(user,trabalhadorID);
}
FichaComposedBean fichaBean = null;
if(null == ficha)
{
TrabalhadoresData trab = fichasProvider.getTrabalhador(user, trabalhadorID, false);
if(trab != null)
{
fichaBean = new FichaComposedBean();
FcFichaBeanData dadosTrabalhador = new FcFichaBeanData();
dadosTrabalhador.setTrabalhador_id(trab.getId());
dadosTrabalhador.setTrabalhador_nome(trab.getNome());
dadosTrabalhador.setTrabalhador_sexo(trab.getSexo().toUpperCase());
dadosTrabalhador.setTrabalhador_data_nascimento(trab.getData_nascimento());
dadosTrabalhador.setTrabalhador_data_admissao(trab.getData_admissao());
dadosTrabalhador.setTrabalhador_funcao_actual(trab.getFuncao_proposta());
dadosTrabalhador.setTrabalhador_posto(trab.getLocal_trabalho());
dadosTrabalhador.setEstabelecimento_id(trab.getEstabelecimento_id());
EstabelecimentosData estabelecimento = trab.toEstabelecimento_id();
if(estabelecimento != null)
{
dadosTrabalhador.setEstabelecimento_localidade(estabelecimento.getLocalidade());
dadosTrabalhador.setEstabelecimento_nome(estabelecimento.getNome());
dadosTrabalhador.setEmpresa_id(estabelecimento.getEmpresa_id());
EmpresasData empresa = estabelecimento.toEmpresa_id();
if(empresa != null)
{
dadosTrabalhador.setEmpresa_designacao_social(empresa.getDesignacao_social());
dadosTrabalhador.setEmpresa_ramo_actividade(empresa.getActividade());
}
}
dadosTrabalhador.setTipo_ficha_id(fichaTipoID);
fichaBean.setFicha(dadosTrabalhador);
bean.setFichaData(fichaBean);
}
}
else
{
fichaBean = loadFicha(ficha, null==fichaID);
if(null==fichaID)
{
fichaBean.getFicha().setTipo_ficha_id(fichaTipoID);
}
bean.setFichaData(fichaBean);
}
bean.setFieldsData(loadRenderData(fichaBean.getFicha().getTipo_ficha_id()));
result.setSuccess(true);
result.setData(bean);
}
catch(Exception ex)
{
result.setSuccess(false);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.ERROR);
msg.setMessageData("Erro ao comunicar com a Base de dados!");
result.addMessage(msg);
ErrorLogger.logException(ex, Level.SEVERE);
}
}
else
{
result.setSuccess(false);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.SESSIONTIMEOUT);
msg.setMessageData("Utilizador asssociado à sessão inválido/inexistente!");
result.addMessage(msg);
}
return result;
}
public EvoResponseBean<FichaComposedBean> saveFicha(EvoUsrUserData user, FichaComposedBean fichaBean)
{
EvoResponseBean<FichaComposedBean> result = new EvoResponseBean<FichaComposedBean>();
if(user != null)
{
try
{
if(fichaBean.getFicha() != null)
{
Boolean canWrite = checkCanWrite(user.getId(), fichaBean.getFicha().getId());
if(canWrite != null && canWrite)
{
FcFichaData fichaBD = null;
String operacao = null;
if(fichaBean.getFicha().getId() != null)
{
fichaBD = fichasProvider.getFicha(user,fichaBean.getFicha().getId());
operacao ="Actualização";
}
else
{
fichaBD = new FcFichaData();
fichaBD.setCreated_user_name(user.getName());
fichaBD.setCreated_user_id(user.getId());
operacao = "Criação";
}
Map<String,Object> values = filtra(fichaBean.getFicha().getMapData(),FcFicha_D_to_B) ;
Date data_conclusao_server = null;
if( fichaBean.getFicha().getData_conclusao() != null)
{
Map<Integer,Date> serverDates = fichasProvider.getServerDateFichaConclusion(user,fichaBean.getFicha().getId());
if(fichaBean.getFicha().getId() == null || serverDates.get(fichaBean.getFicha().getId()) == null)
{
data_conclusao_server = serverDates.get(0);
}
}
if(data_conclusao_server != null)
{
values.put(FcFichaData.DATA_CONCLUSAO,data_conclusao_server);
}
else
{
values.remove(FcFichaData.DATA_CONCLUSAO);
}
fichaBD.setHashData(values);
Set<com.evolute.entity.evo.EvoDataObject<com.evolute.entity.utils.IntegerPrimaryKey>> thingsToSave = new HashSet<com.evolute.entity.evo.EvoDataObject<com.evolute.entity.utils.IntegerPrimaryKey>>();
if(fichaBean.getAntecentesOcupacionais() != null )
{
FcFichaAntecedentesOcupacionaisData fd = null;
if(fichaBean.getAntecentesOcupacionais().getId() != null)
{
fd = fichaBD.toAntecedentes_ocupacionais_id();
}
if(fd == null)
{
fd = new FcFichaAntecedentesOcupacionaisData();
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(filtra(fichaBean.getAntecentesOcupacionais().getMapData(),FcFichaAntecedentesOcupacionais_D_to_B));
fichaBD.setToAntecedentes_ocupacionais_id(fd);
}
if(fichaBean.getAntecentesOcupacionaisAcidentesTrabalho() != null )//&& fichaBean.getAntecentesOcupacionaisAcidentesTrabalho().size() > 0)
{
FcFichaAntecedentesOcupacionaisData fd = null;
if(fichaBD.toAntecedentes_ocupacionais_id() != null)
{
fd = fichaBD.toAntecedentes_ocupacionais_id();
}
else
{
fd = new FcFichaAntecedentesOcupacionaisData();
fichaBD.setToAntecedentes_ocupacionais_id(fd);
}
List<FcFichaAntecedentesOcupacionaisAcidentesTrabalhoData> aoatBDlist = fd.fromFcFichaAntecedentesOcupacionaisAcidentesTrabalho_antecedentes_ocupacionais_id() ;
Map<Integer,FcFichaAntecedentesOcupacionaisAcidentesTrabalhoData> naBD = new HashMap<Integer, FcFichaAntecedentesOcupacionaisAcidentesTrabalhoData>();
for(FcFichaAntecedentesOcupacionaisAcidentesTrabalhoData elem : aoatBDlist)
{
elem.setDeleted_stamp(new Timestamp(System.currentTimeMillis()));
elem.setDeleted_user_id(user.getId());
elem.setDeleted_user_name(user.getName());
naBD.put(elem.getId(), elem);
thingsToSave.add(elem);
}
for(FcFichaAntecedentesOcupacionaisAcidentesTrabalhoBeanData item : fichaBean.getAntecentesOcupacionaisAcidentesTrabalho())
{
FcFichaAntecedentesOcupacionaisAcidentesTrabalhoData aoatBD = null;
if(item.getId() != null && naBD.containsKey(item.getId()))
{
aoatBD = naBD.get(item.getId());
aoatBD.setDeleted_stamp(null);
aoatBD.setDeleted_user_id(null);
aoatBD.setDeleted_user_name(null);
}
else
{
aoatBD = new FcFichaAntecedentesOcupacionaisAcidentesTrabalhoData();
aoatBD.setCreated_user_name(user.getName());
aoatBD.setCreated_user_id(user.getId());
thingsToSave.add(aoatBD);
}
aoatBD.setHashData(filtra(item.getMapData(),FcFichaAntecedentesOcupacionaisAcidentesTrabalho_D_to_B));
aoatBD.setToAntecedentes_ocupacionais_id(fd);
}
}
if(fichaBean.getAntecentesOcupacionaisActividadesAnteriores() != null )//&& fichaBean.getAntecentesOcupacionaisActividadesAnteriores().size() > 0)
{
FcFichaAntecedentesOcupacionaisData fd = null;
if(fichaBD.toAntecedentes_ocupacionais_id() != null)
{
fd = fichaBD.toAntecedentes_ocupacionais_id();
}
else
{
fd = new FcFichaAntecedentesOcupacionaisData();
fichaBD.setToAntecedentes_ocupacionais_id(fd);
}
List<FcFichaAntecedentesOcupacionaisActividadesAnterioresData> aoaaBDlist = fd.fromFcFichaAntecedentesOcupacionaisActividadesAnteriores_antecedentes_ocupacionais_id() ;
Map<Integer,FcFichaAntecedentesOcupacionaisActividadesAnterioresData> naBD = new HashMap<Integer, FcFichaAntecedentesOcupacionaisActividadesAnterioresData>();
for(FcFichaAntecedentesOcupacionaisActividadesAnterioresData elem : aoaaBDlist)
{
elem.setDeleted_stamp(new Timestamp(System.currentTimeMillis()));
elem.setDeleted_user_id(user.getId());
elem.setDeleted_user_name(user.getName());
naBD.put(elem.getId(), elem);
thingsToSave.add(elem);
}
for(FcFichaAntecedentesOcupacionaisActividadesAnterioresBeanData item : fichaBean.getAntecentesOcupacionaisActividadesAnteriores())
{
FcFichaAntecedentesOcupacionaisActividadesAnterioresData aoaaBD = null;
if(item.getId() != null && naBD.containsKey(item.getId()))
{
aoaaBD = naBD.get(item.getId());
aoaaBD.setDeleted_stamp(null);
aoaaBD.setDeleted_user_id(null);
aoaaBD.setDeleted_user_name(null);
}
else
{
aoaaBD = new FcFichaAntecedentesOcupacionaisActividadesAnterioresData();
aoaaBD.setCreated_user_name(user.getName());
aoaaBD.setCreated_user_id(user.getId());
thingsToSave.add(aoaaBD);
}
aoaaBD.setHashData(filtra(item.getMapData(),FcFichaAntecedentesOcupacionaisActividadesAnteriores_D_to_B));
aoaaBD.setToAntecedentes_ocupacionais_id(fd);
}
}
if(fichaBean.getAntecentesOcupacionaisDoencasProfissionais() != null )//&& fichaBean.getAntecentesOcupacionaisDoencasProfissionais().size() > 0)
{
FcFichaAntecedentesOcupacionaisData fd = null;
if(fichaBD.toAntecedentes_ocupacionais_id() != null)
{
fd = fichaBD.toAntecedentes_ocupacionais_id();
}
else
{
fd = new FcFichaAntecedentesOcupacionaisData();
fichaBD.setToAntecedentes_ocupacionais_id(fd);
}
List<FcFichaAntecedentesOcupacionaisDoencasProfissionaisData> aodpBDlist = fd.fromFcFichaAntecedentesOcupacionaisDoencasProfissionais_antecedentes_ocupacionais_id() ;
Map<Integer,FcFichaAntecedentesOcupacionaisDoencasProfissionaisData> naBD = new HashMap<Integer, FcFichaAntecedentesOcupacionaisDoencasProfissionaisData>();
for(FcFichaAntecedentesOcupacionaisDoencasProfissionaisData elem : aodpBDlist)
{
elem.setDeleted_stamp(new Timestamp(System.currentTimeMillis()));
elem.setDeleted_user_id(user.getId());
elem.setDeleted_user_name(user.getName());
naBD.put(elem.getId(), elem);
thingsToSave.add(elem);
}
for(FcFichaAntecedentesOcupacionaisDoencasProfissionaisBeanData item : fichaBean.getAntecentesOcupacionaisDoencasProfissionais())
{
FcFichaAntecedentesOcupacionaisDoencasProfissionaisData aodpBD = null;
if(item.getId() != null && naBD.containsKey(item.getId()))
{
aodpBD = naBD.get(item.getId());
aodpBD.setDeleted_stamp(null);
aodpBD.setDeleted_user_id(null);
aodpBD.setDeleted_user_name(null);
}
else
{
aodpBD = new FcFichaAntecedentesOcupacionaisDoencasProfissionaisData();
aodpBD.setCreated_user_name(user.getName());
aodpBD.setCreated_user_id(user.getId());
thingsToSave.add(aodpBD);
}
aodpBD.setHashData(filtra(item.getMapData(),FcFichaAntecedentesOcupacionaisDoencasProfissionais_D_to_B));
aodpBD.setToAntecedentes_ocupacionais_id(fd);
}
}
if(fichaBean.getAbsentismo() != null )
{
FcFichaAbsentismoData fd = null;
if(fichaBean.getAbsentismo().getId() != null)
{
fd = fichaBD.toAbsentismo_id();
}
if(fd == null)
{
fd = new FcFichaAbsentismoData();
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(filtra(fichaBean.getAbsentismo().getMapData(),FcFichaAbsentismo_D_to_B));
fichaBD.setToAbsentismo_id(fd);
}
if(fichaBean.getActividade() != null )
{
FcFichaActividadeData fd = null;
if(fichaBean.getActividade().getId() != null)
{
fd = fichaBD.toActividade_id();
}
if(fd == null)
{
fd = new FcFichaActividadeData();
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(filtra(fichaBean.getActividade().getMapData(),FcFichaActividade_D_to_B));
fichaBD.setToActividade_id(fd);
}
if(fichaBean.getAntecedentesFamiliares() != null )
{
FcFichaAntecedentesFamiliaresData fd = null;
if(fichaBean.getAntecedentesFamiliares().getId() != null)
{
fd = fichaBD.toAntecedentes_familiares_id();
}
if(fd == null)
{
fd = new FcFichaAntecedentesFamiliaresData();
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(filtra(fichaBean.getAntecedentesFamiliares().getMapData(),FcFichaAntecedentesFamiliares_D_to_B));
fichaBD.setToAntecedentes_familiares_id(fd);
}
if(fichaBean.getAntecedentesPessoais() != null )
{
FcFichaAntecedentesPessoaisData fd = null;
if(fichaBean.getAntecedentesPessoais().getId() != null)
{
fd = fichaBD.toAntecedentes_pessoais_id();
}
if(fd == null)
{
fd = new FcFichaAntecedentesPessoaisData();
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(filtra(fichaBean.getAntecedentesPessoais().getMapData(),FcFichaAntecedentesPessoais_D_to_B));
fichaBD.setToAntecedentes_pessoais_id(fd);
}
if(fichaBean.getAntecedentesPessoaisCirurgias() != null )//&& fichaBean.getAntecedentesPessoaisCirurgias().size() > 0)
{
FcFichaAntecedentesPessoaisData fd = null;
if(fichaBD.toAntecedentes_pessoais_id() != null)
{
fd = fichaBD.toAntecedentes_pessoais_id();
}
else
{
fd = new FcFichaAntecedentesPessoaisData();
fichaBD.setToAntecedentes_pessoais_id(fd);
}
List<FcFichaAntecedentesPessoaisCirurgiasData> apXBDlist = fd.fromFcFichaAntecedentesPessoaisCirurgias_antecedentes_pessoais_id();
Map<Integer,FcFichaAntecedentesPessoaisCirurgiasData> naBD = new HashMap<Integer, FcFichaAntecedentesPessoaisCirurgiasData>();
for(FcFichaAntecedentesPessoaisCirurgiasData elem : apXBDlist)
{
elem.setDeleted_stamp(new Timestamp(System.currentTimeMillis()));
elem.setDeleted_user_id(user.getId());
elem.setDeleted_user_name(user.getName());
naBD.put(elem.getId(), elem);
thingsToSave.add(elem);
}
for(FcFichaAntecedentesPessoaisCirurgiasBeanData item : fichaBean.getAntecedentesPessoaisCirurgias())
{
FcFichaAntecedentesPessoaisCirurgiasData apXBD = null;
if(item.getId() != null && naBD.containsKey(item.getId()))
{
apXBD = naBD.get(item.getId());
apXBD.setDeleted_stamp(null);
apXBD.setDeleted_user_id(null);
apXBD.setDeleted_user_name(null);
}
else
{
apXBD = new FcFichaAntecedentesPessoaisCirurgiasData();
apXBD.setCreated_user_name(user.getName());
apXBD.setCreated_user_id(user.getId());
thingsToSave.add(apXBD);
}
apXBD.setHashData(filtra(item.getMapData(),FcFichaAntecedentesPessoaisCirurgias_D_to_B));
apXBD.setToAntecedentes_pessoais_id(fd);
}
}
if(fichaBean.getAntecedentesPessoaisFracturas() != null )//&& fichaBean.getAntecedentesPessoaisFracturas().size() > 0)
{
FcFichaAntecedentesPessoaisData fd = null;
if(fichaBD.toAntecedentes_pessoais_id() != null)
{
fd = fichaBD.toAntecedentes_pessoais_id();
}
else
{
fd = new FcFichaAntecedentesPessoaisData();
fichaBD.setToAntecedentes_pessoais_id(fd);
}
List<FcFichaAntecedentesPessoaisFracturasData> apXBDlist = fd.fromFcFichaAntecedentesPessoaisFracturas_antecedentes_pessoais_id();
Map<Integer,FcFichaAntecedentesPessoaisFracturasData> naBD = new HashMap<Integer, FcFichaAntecedentesPessoaisFracturasData>();
for(FcFichaAntecedentesPessoaisFracturasData elem : apXBDlist)
{
elem.setDeleted_stamp(new Timestamp(System.currentTimeMillis()));
elem.setDeleted_user_id(user.getId());
elem.setDeleted_user_name(user.getName());
naBD.put(elem.getId(), elem);
thingsToSave.add(elem);
}
for(FcFichaAntecedentesPessoaisFracturasBeanData item : fichaBean.getAntecedentesPessoaisFracturas())
{
FcFichaAntecedentesPessoaisFracturasData apXBD = null;
if(item.getId() != null && naBD.containsKey(item.getId()))
{
apXBD = naBD.get(item.getId());
apXBD.setDeleted_stamp(null);
apXBD.setDeleted_user_id(null);
apXBD.setDeleted_user_name(null);
}
else
{
apXBD = new FcFichaAntecedentesPessoaisFracturasData();
apXBD.setCreated_user_name(user.getName());
apXBD.setCreated_user_id(user.getId());
thingsToSave.add(apXBD);
}
apXBD.setHashData(filtra(item.getMapData(),FcFichaAntecedentesPessoaisFracturas_D_to_B));
apXBD.setToAntecedentes_pessoais_id(fd);
}
}
if(fichaBean.getAntecedentesPessoaisInternamentos() != null ) //&& fichaBean.getAntecedentesPessoaisInternamentos().size() > 0)
{
FcFichaAntecedentesPessoaisData fd = null;
if(fichaBD.toAntecedentes_pessoais_id() != null)
{
fd = fichaBD.toAntecedentes_pessoais_id();
}
else
{
fd = new FcFichaAntecedentesPessoaisData();
fichaBD.setToAntecedentes_pessoais_id(fd);
}
List<FcFichaAntecedentesPessoaisInternamentosData> apXBDlist = fd.fromFcFichaAntecedentesPessoaisInternamentos_antecedentes_pessoais_id();
Map<Integer,FcFichaAntecedentesPessoaisInternamentosData> naBD = new HashMap<Integer, FcFichaAntecedentesPessoaisInternamentosData>();
for(FcFichaAntecedentesPessoaisInternamentosData elem : apXBDlist)
{
elem.setDeleted_stamp(new Timestamp(System.currentTimeMillis()));
elem.setDeleted_user_id(user.getId());
elem.setDeleted_user_name(user.getName());
naBD.put(elem.getId(), elem);
thingsToSave.add(elem);
}
for(FcFichaAntecedentesPessoaisInternamentosBeanData item : fichaBean.getAntecedentesPessoaisInternamentos())
{
FcFichaAntecedentesPessoaisInternamentosData apXBD = null;
if(item.getId() != null && naBD.containsKey(item.getId()))
{
apXBD = naBD.get(item.getId());
apXBD.setDeleted_stamp(null);
apXBD.setDeleted_user_id(null);
apXBD.setDeleted_user_name(null);
}
else
{
apXBD = new FcFichaAntecedentesPessoaisInternamentosData();
apXBD.setCreated_user_name(user.getName());
apXBD.setCreated_user_id(user.getId());
thingsToSave.add(apXBD);
}
apXBD.setHashData(filtra(item.getMapData(),FcFichaAntecedentesPessoaisInternamentos_D_to_B));
apXBD.setToAntecedentes_pessoais_id(fd);
}
}
if(fichaBean.getClassificacaoIndividualSaude() != null )
{
FcFichaClassificacaoIndividualSaudeData fd = null;
if(fichaBean.getClassificacaoIndividualSaude().getId() != null)
{
fd = fichaBD.toClassificacao_individual_saude_id();
}
if(fd == null)
{
fd = new FcFichaClassificacaoIndividualSaudeData();
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(filtra(fichaBean.getClassificacaoIndividualSaude().getMapData(),FcFichaClassificacaoIndividualSaude_D_to_B));
fichaBD.setToClassificacao_individual_saude_id(fd);
}
if(fichaBean.getConclusoesResumo() != null )
{
FcFichaConclusoesData fd = null;
if(fichaBean.getConclusoesResumo().getId() != null)
{
fd = fichaBD.toConclusoes_id();
}
if(fd == null)
{
fd = new FcFichaConclusoesData();
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(filtra(fichaBean.getConclusoesResumo().getMapData(),FcFichaConclusoes_D_to_B));
fichaBD.setToConclusoes_id(fd);
}
if(fichaBean.getDoencasActivas() != null )
{
FcFichaDoencasActivasData fd = null;
if(fichaBean.getDoencasActivas().getId() != null)
{
fd = fichaBD.toDoencas_activas_id();
}
if(fd == null)
{
fd = new FcFichaDoencasActivasData();
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(filtra(fichaBean.getDoencasActivas().getMapData(),FcFichaDoencasActivas_D_to_B));
fichaBD.setToDoencas_activas_id(fd);
}
if(fichaBean.getEsquemaVacinal() != null )
{
FcFichaEsquemaVacinalData fd = null;
if(fichaBean.getEsquemaVacinal().getId() != null)
{
fd = fichaBD.toEsquema_vacinal_id();
}
if(fd == null)
{
fd = new FcFichaEsquemaVacinalData();
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(filtra(fichaBean.getEsquemaVacinal().getMapData(),FcFichaEsquemaVacinal_D_to_B));
fichaBD.setToEsquema_vacinal_id(fd);
}
if(fichaBean.getExameObjectivo() != null )
{
FcFichaExameObjectivoData fd = null;
if(fichaBean.getExameObjectivo().getId() != null)
{
fd = fichaBD.toExame_objectivo_id();
}
if(fd == null)
{
fd = new FcFichaExameObjectivoData();
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(filtra(fichaBean.getExameObjectivo().getMapData(),FcFichaExameObjectivo_D_to_B));
fichaBD.setToExame_objectivo_id(fd);
}
if(fichaBean.getHabitos() != null )
{
FcFichaHabitosData fd = null;
if(fichaBean.getHabitos().getId() != null)
{
fd = fichaBD.toHabitos_id();
}
if(fd == null)
{
fd = new FcFichaHabitosData();
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(filtra(fichaBean.getHabitos().getMapData(),FcFichaHabitos_D_to_B));
fichaBD.setToHabitos_id(fd);
}
if(fichaBean.getProblemasSolucoes() != null )
{
FcFichaProblemasSolucoesData fd = null;
if(fichaBean.getProblemasSolucoes().getId() != null)
{
fd = fichaBD.toProblemas_solucoes_id();
}
if(fd == null)
{
fd = new FcFichaProblemasSolucoesData();
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(filtra(fichaBean.getProblemasSolucoes().getMapData(),FcFichaProblemasSolucoes_D_to_B));
fichaBD.setToProblemas_solucoes_id(fd);
}
if(fichaBean.getInformacaoPeriodica() != null )
{
FcFichaInformacaoPeriodicaData fd = null;
if(fichaBean.getInformacaoPeriodica().getId() != null)
{
fd = fichaBD.toInformacao_periodica_id();
}
if(fd == null)
{
fd = new FcFichaInformacaoPeriodicaData();
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(filtra(fichaBean.getInformacaoPeriodica().getMapData(),FcFichaInformacaoPeriodica_D_to_B));
fichaBD.setToInformacao_periodica_id(fd);
}
fichasProvider.atomSave(fichaBD, thingsToSave);
result.setData( loadFicha(fichaBD, false) );
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.INFO);
msg.setMessageData(operacao+" da ficha com sucesso!");
result.addMessage(msg);
result.setSuccess(true);
}
else
{
result.setSuccess(false);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.SECURITYEXCEPTION);
msg.setMessageData("Erro, sem permissão para guardar a ficha!");
result.addMessage(msg);
}
}
else
{
result.setSuccess(false);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.ERROR);
msg.setMessageData("Ficha Inválida!");
result.addMessage(msg);
}
}
catch(Exception ex)
{
result.setSuccess(false);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.ERROR);
msg.setMessageData("Erro ao comunicar com a Base de dados!");
result.addMessage(msg);
ErrorLogger.logException(ex, Level.SEVERE);
}
}
else
{
result.setSuccess(false);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.SESSIONTIMEOUT);
msg.setMessageData("Utilizador asssociado à sessão inválido/inexistente!");
result.addMessage(msg);
}
return result;
}
private FichaRenderDataBean loadRenderData(Integer typoID) throws Exception
{
FcTipoFichaData tipo_ficha = fichasProvider.getTipoFichaByID(typoID);
FichaRenderDataBean resData = new FichaRenderDataBean();
if(tipo_ficha != null)
{
if(ADM_COD.equalsIgnoreCase(tipo_ficha.getCodigo()) || PER_INI_COD.equalsIgnoreCase(tipo_ficha.getCodigo()))
{
{
List<TrbHabilitacoesData> in_list = fichasProvider.getHabilitacoes();
List<TrbHabilitacoesBeanData> out_list = new LinkedList<TrbHabilitacoesBeanData>();
for(TrbHabilitacoesData in : in_list)
{
TrbHabilitacoesBeanData out = new TrbHabilitacoesBeanData();
out.setMapData(in.getPropertiesValues(new String[]{TrbHabilitacoesData.ID,TrbHabilitacoesData.CODIGO,TrbHabilitacoesData.DESCRICAO,TrbHabilitacoesData.TEM_INFO_EXTRA}));
out_list.add(out);
}
resData.setHabilitacoes(out_list);
}
{
List<TrbEstadoCivilData> in_list = fichasProvider.getEstadosCivis();
List<TrbEstadoCivilBeanData> out_list = new LinkedList<TrbEstadoCivilBeanData>();
for(TrbEstadoCivilData in : in_list)
{
TrbEstadoCivilBeanData out = new TrbEstadoCivilBeanData();
out.setMapData(in.getPropertiesValues(new String[]{TrbEstadoCivilData.ID,TrbEstadoCivilData.CODIGO,TrbEstadoCivilData.DESCRICAO}));
out_list.add(out);
}
resData.setEstadosCivis(out_list);
}
}
else if( OCA_COD.equalsIgnoreCase(tipo_ficha.getCodigo()) || ENF_COD.equalsIgnoreCase(tipo_ficha.getCodigo()) || MDC_COD.equalsIgnoreCase(tipo_ficha.getCodigo()) )
{
List<FcMotivosData> in_list = null;
if( OCA_COD.equalsIgnoreCase(tipo_ficha.getCodigo()) )
{
in_list = fichasProvider.getMotivos(OCA_PREFIX);
}
else
{
in_list = fichasProvider.getMotivos(MDC_ENF_PREFIX);
}
List<FcMotivosBeanData> out_list = new LinkedList<FcMotivosBeanData>();
for(FcMotivosData in : in_list)
{
FcMotivosBeanData out = new FcMotivosBeanData();
out.setMapData(in.getPropertiesValues(new String[]{FcMotivosData.ID,FcMotivosData.CODIGO,FcMotivosData.DESCRICAO,FcMotivosData.PRECISA_DETALHE}));
out_list.add(out);
}
resData.setMotivos(out_list);
}
List<FcHabitosTabagicosBeanData> habitosTabagicos = new LinkedList<FcHabitosTabagicosBeanData>();
for(FcHabitosTabagicosData ht : fichasProvider.getHabitosTabagicos())
{
FcHabitosTabagicosBeanData elem = new FcHabitosTabagicosBeanData();
elem.setId(ht.getId());
elem.setDescricao(ht.getDescricao());
habitosTabagicos.add(elem);
}
resData.setHabitosTabagicos(habitosTabagicos);
List<FcHabitosAlcoolicosBeanData> habitosAlcoolicos = new LinkedList<FcHabitosAlcoolicosBeanData>();
for(FcHabitosAlcoolicosData ha : fichasProvider.getHabitosAlcoolicos() )
{
FcHabitosAlcoolicosBeanData elem = new FcHabitosAlcoolicosBeanData();
elem.setId(ha.getId());
elem.setDescricao(ha.getDescricao());
habitosAlcoolicos.add(elem);
}
resData.setHabitosAlcoolicos(habitosAlcoolicos);
///TODO
// private List<FcPeriodicidadeExameBeanData> perioridadesExame;
// private List<FcParecerBeanData> pareceres;
}
return resData;
}
public EvoResponseBean<FichaRenderDataBean> getDadosFichaFromBD( EvoUsrUserData user, Integer tipoFichaID)
{
EvoResponseBean<FichaRenderDataBean> result = new EvoResponseBean<FichaRenderDataBean>();
if(user != null)
{
try
{
FcTipoFichaData tipo_ficha = fichasProvider.getTipoFichaByID(tipoFichaID);
FichaRenderDataBean resData = new FichaRenderDataBean();
if(tipo_ficha != null)
{
if(ADM_COD.equalsIgnoreCase(tipo_ficha.getCodigo()) || PER_INI_COD.equalsIgnoreCase(tipo_ficha.getCodigo()))
{
{
List<TrbHabilitacoesData> in_list = fichasProvider.getHabilitacoes();
List<TrbHabilitacoesBeanData> out_list = new LinkedList<TrbHabilitacoesBeanData>();
for(TrbHabilitacoesData in : in_list)
{
TrbHabilitacoesBeanData out = new TrbHabilitacoesBeanData();
out.setMapData(in.getPropertiesValues(new String[]{TrbHabilitacoesData.ID,TrbHabilitacoesData.CODIGO,TrbHabilitacoesData.DESCRICAO,TrbHabilitacoesData.TEM_INFO_EXTRA}));
out_list.add(out);
}
resData.setHabilitacoes(out_list);
}
{
List<TrbEstadoCivilData> in_list = fichasProvider.getEstadosCivis();
List<TrbEstadoCivilBeanData> out_list = new LinkedList<TrbEstadoCivilBeanData>();
for(TrbEstadoCivilData in : in_list)
{
TrbEstadoCivilBeanData out = new TrbEstadoCivilBeanData();
out.setMapData(in.getPropertiesValues(new String[]{TrbEstadoCivilData.ID,TrbEstadoCivilData.CODIGO,TrbEstadoCivilData.DESCRICAO}));
out_list.add(out);
}
resData.setEstadosCivis(out_list);
}
}
else if( OCA_COD.equalsIgnoreCase(tipo_ficha.getCodigo()) || ENF_COD.equalsIgnoreCase(tipo_ficha.getCodigo()) || MDC_COD.equalsIgnoreCase(tipo_ficha.getCodigo()) )
{
List<FcMotivosData> in_list = null;
if( OCA_COD.equalsIgnoreCase(tipo_ficha.getCodigo()) )
{
in_list = fichasProvider.getMotivos(OCA_PREFIX);
}
else
{
in_list = fichasProvider.getMotivos(MDC_ENF_PREFIX);
}
List<FcMotivosBeanData> out_list = new LinkedList<FcMotivosBeanData>();
for(FcMotivosData in : in_list)
{
FcMotivosBeanData out = new FcMotivosBeanData();
out.setMapData(in.getPropertiesValues(new String[]{FcMotivosData.ID,FcMotivosData.CODIGO,FcMotivosData.DESCRICAO,FcMotivosData.PRECISA_DETALHE}));
out_list.add(out);
}
resData.setMotivos(out_list);
}
}
result.setSuccess(true);
result.setData(resData);
}
catch(Exception ex)
{
result.setSuccess(false);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.ERROR);
msg.setMessageData("Erro ao comunicar com a Base de dados!");
result.addMessage(msg);
ErrorLogger.logException(ex, Level.SEVERE);
}
}
else
{
result.setSuccess(false);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.SESSIONTIMEOUT);
msg.setMessageData("Utilizador asssociado à sessão inválido/inexistente!");
result.addMessage(msg);
}
return result;
}
private Boolean checkCanRead(Integer id, Integer fichaID) {
/// TODO - CAN READ
/// FIXME - CAN READ
return true;
}
private Boolean checkCanWrite(Integer userID, Integer fichaID)
{
/// TODO - CAN WRITE
/// FIXME - CAN WRITE
return true;
}
public EvoResponseBean<FichaExchangeBean> getFichaAptidao(EvoUsrUserData user, Integer fichaID, Integer trabalhadorID, Integer tipoFichaID)
{
EvoResponseBean<FichaExchangeBean> result = new EvoResponseBean<FichaExchangeBean>();
if(user != null)
{
try
{
FcFichaData fichaBD = fichasProvider.getFicha(user,fichaID);
FichaComposedBean data = new FichaComposedBean();
FcFichaBeanData fichaBean = new FcFichaBeanData();
fichaBean.setMapData(fichaBD.getPropertiesValues(FcFicha_D_to_B));
data.setFicha(fichaBean);
FcTipoFicha tipo_ficha = fichaBD.toTipo_ficha_id();
if(tipo_ficha != null)
{
// if
// (
// ADM_COD.equalsIgnoreCase(tipo_ficha.getCodigo()) ||
// PER_INI_COD.equalsIgnoreCase(tipo_ficha.getCodigo()) ||
// PER_COD.equalsIgnoreCase(tipo_ficha.getCodigo())
// )
// {
FcFichaConclusoesData cr = fichaBD.toConclusoes_id();
if(cr != null)
{
FcFichaConclusoesBeanData crBean = new FcFichaConclusoesBeanData();
crBean.setMapData(cr.getPropertiesValues(FcFichaConclusoes_D_to_B));
data.setConclusoesResumo(crBean);
}
FcFichaAptidaoData ap = fichaBD.toAptidao_id();
if(ap != null)
{
FcFichaConclusoesBeanData crBean = new FcFichaConclusoesBeanData();
crBean.setMapData(ap.getPropertiesValues(FcFichaAptidao_D_to_B));
data.setConclusoesResumo(crBean);
}
else
{
data.setAptidao(new FcFichaAptidaoBeanData());
}
//
// }
// else
// {
//
// }
FichaExchangeBean exc = new FichaExchangeBean();
exc.setFichaData(data);
result.setSuccess(true);
result.setData(exc);
}
else
{
result.setSuccess(false);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.ERROR);
msg.setMessageData("Ficha inválida!");
result.addMessage(msg);
}
}
catch(Exception ex)
{
result.setSuccess(false);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.ERROR);
msg.setMessageData("Erro ao comunicar com a Base de dados!");
result.addMessage(msg);
ErrorLogger.logException(ex, Level.SEVERE);
}
}
else
{
result.setSuccess(false);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.SESSIONTIMEOUT);
msg.setMessageData("Utilizador asssociado à sessão inválido/inexistente!");
result.addMessage(msg);
}
return result;
}
public EvoResponseBean<FichaComposedBean> saveFichaAptidao(EvoUsrUserData user, FichaComposedBean fichaBean)
{
EvoResponseBean<FichaComposedBean> result = new EvoResponseBean<FichaComposedBean>();
try{
FcFichaData fichaBD = fichasProvider.getFicha(user,fichaBean.getFicha().getId());
if(fichaBean.getAptidao() != null )
{
FcFichaAptidaoData fd = null;
if(fichaBean.getAptidao().getId() != null)
{
fd = fichaBD.toAptidao_id();
}
if(fd == null)
{
fd = new FcFichaAptidaoData();
fd.setCreated_user_name(user.getName());
fd.setCreated_user_id(user.getId());
}
fd.setHashData(filtra(fichaBean.getAptidao().getMapData(),FcFichaActividade_D_to_B));
fichaBD.setToAptidao_id(fd);
fichaBD.save();
mailsender.sendEmail(null, null, "O utilizador "+user.getName()+" criou uma nova ficha de aptidão para o trabalhador "+fichaBean.getFicha().getTrabalhador_nome()+"!", "Nova Ficha de Aptidão", false);
EvoResponseBean<FichaExchangeBean> getrsp = getFichaAptidao(user, fichaBD.getId(), null, null);
if(getrsp.isSuccess())
{
result.setSuccess(true);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.INFO);
msg.setMessageData("Ficha de Aptidão criada com sucesso!");
result.addMessage(msg);
result.setData(getrsp.getData().getFichaData());
}
else
{
result.setMessages(getrsp.getMessages());
}
}
else
{
System.out.println("FUUUUUUUUUUUUUUUUUUUU\n\n\n");
}
}
catch(Exception ex)
{
result.setSuccess(false);
EvoMessageBean msg = new EvoMessageBean();
msg.setType(EvoMessageTypeBean.ERROR);
msg.setMessageData("Erro ao comunicar com a Base de dados!");
result.addMessage(msg);
ErrorLogger.logException(ex, Level.SEVERE);
ex.printStackTrace();
}
return result;
}
}