package br.com.centralit.citcorpore.negocio;
import java.io.File;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.Time;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import net.htmlparser.jericho.Source;
import br.com.centralit.bpm.dto.FluxoDTO;
import br.com.centralit.bpm.dto.PermissoesFluxoDTO;
import br.com.centralit.bpm.integracao.FluxoDao;
import br.com.centralit.citcorpore.ajaxForms.RequisicaoLiberacao;
import br.com.centralit.citcorpore.bean.BaseConhecimentoDTO;
import br.com.centralit.citcorpore.bean.CalculoJornadaDTO;
import br.com.centralit.citcorpore.bean.ContatoRequisicaoLiberacaoDTO;
import br.com.centralit.citcorpore.bean.ControleQuestionariosDTO;
import br.com.centralit.citcorpore.bean.EmpregadoDTO;
import br.com.centralit.citcorpore.bean.ExecucaoLiberacaoDTO;
import br.com.centralit.citcorpore.bean.GrupoDTO;
import br.com.centralit.citcorpore.bean.HistoricoGEDDTO;
import br.com.centralit.citcorpore.bean.HistoricoLiberacaoDTO;
import br.com.centralit.citcorpore.bean.HistoricoMudancaDTO;
import br.com.centralit.citcorpore.bean.ItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.LiberacaoMudancaDTO;
import br.com.centralit.citcorpore.bean.LiberacaoProblemaDTO;
import br.com.centralit.citcorpore.bean.LigacaoRequisicaoLiberacaoHistoricoComprasDTO;
import br.com.centralit.citcorpore.bean.LigacaoRequisicaoLiberacaoHistoricoMidiaDTO;
import br.com.centralit.citcorpore.bean.LigacaoRequisicaoLiberacaoHistoricoResponsavelDTO;
import br.com.centralit.citcorpore.bean.OcorrenciaLiberacaoDTO;
import br.com.centralit.citcorpore.bean.PesquisaRequisicaoLiberacaoDTO;
import br.com.centralit.citcorpore.bean.RequisicaoLiberacaoDTO;
import br.com.centralit.citcorpore.bean.RequisicaoLiberacaoItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.RequisicaoLiberacaoMidiaDTO;
import br.com.centralit.citcorpore.bean.RequisicaoLiberacaoRequisicaoComprasDTO;
import br.com.centralit.citcorpore.bean.RequisicaoLiberacaoResponsavelDTO;
import br.com.centralit.citcorpore.bean.RequisicaoMudancaDTO;
import br.com.centralit.citcorpore.bean.RequisicaoQuestionarioDTO;
import br.com.centralit.citcorpore.bean.TemplateSolicitacaoServicoDTO;
import br.com.centralit.citcorpore.bean.TipoLiberacaoDTO;
import br.com.centralit.citcorpore.bean.UploadDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.integracao.ContatoRequisicaoLiberacaoDao;
import br.com.centralit.citcorpore.integracao.ControleQuestionariosDao;
import br.com.centralit.citcorpore.integracao.EmpregadoDao;
import br.com.centralit.citcorpore.integracao.ExecucaoLiberacaoDao;
import br.com.centralit.citcorpore.integracao.GrupoDao;
import br.com.centralit.citcorpore.integracao.HistoricoGEDDao;
import br.com.centralit.citcorpore.integracao.HistoricoLiberacaoDao;
import br.com.centralit.citcorpore.integracao.LiberacaoMudancaDao;
import br.com.centralit.citcorpore.integracao.LiberacaoProblemaDao;
import br.com.centralit.citcorpore.integracao.LigacaoRequisicaoLiberacaoComprasDao;
import br.com.centralit.citcorpore.integracao.LigacaoRequisicaoLiberacaoMidiaDao;
import br.com.centralit.citcorpore.integracao.LigacaoRequisicaoLiberacaoResponsavelDao;
import br.com.centralit.citcorpore.integracao.OcorrenciaLiberacaoDao;
import br.com.centralit.citcorpore.integracao.PermissoesFluxoDao;
import br.com.centralit.citcorpore.integracao.RequisicaoLiberacaoDao;
import br.com.centralit.citcorpore.integracao.RequisicaoLiberacaoItemConfiguracaoDao;
import br.com.centralit.citcorpore.integracao.RequisicaoLiberacaoMidiaDao;
import br.com.centralit.citcorpore.integracao.RequisicaoLiberacaoRequisicaoComprasDAO;
import br.com.centralit.citcorpore.integracao.RequisicaoLiberacaoResponsavelDao;
import br.com.centralit.citcorpore.integracao.RequisicaoQuestionarioDao;
import br.com.centralit.citcorpore.integracao.TemplateSolicitacaoServicoDao;
import br.com.centralit.citcorpore.integracao.TipoLiberacaoDAO;
import br.com.centralit.citcorpore.integracao.UsuarioDao;
import br.com.centralit.citcorpore.util.CriptoUtils;
import br.com.centralit.citcorpore.util.Enumerados;
import br.com.centralit.citcorpore.util.Enumerados.ParametroSistema;
import br.com.centralit.citcorpore.util.Enumerados.SituacaoRequisicaoLiberacao;
import br.com.centralit.citcorpore.util.Enumerados.TipoRequisicao;
import br.com.centralit.citcorpore.util.ParametroUtil;
import br.com.centralit.citcorpore.util.Util;
import br.com.centralit.citged.bean.ControleGEDDTO;
import br.com.centralit.citged.integracao.ControleGEDDao;
import br.com.centralit.citquestionario.integracao.RespostaItemQuestionarioDao;
import br.com.centralit.citquestionario.negocio.RespostaItemQuestionarioServiceBean;
import br.com.citframework.dto.IDto;
import br.com.citframework.excecao.LogicException;
import br.com.citframework.excecao.ServiceException;
import br.com.citframework.integracao.TransactionControler;
import br.com.citframework.integracao.TransactionControlerImpl;
import br.com.citframework.service.CrudServiceImpl;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.Constantes;
import br.com.citframework.util.Reflexao;
import br.com.citframework.util.UtilDatas;
import br.com.citframework.util.UtilStrings;
import com.google.gson.Gson;
@SuppressWarnings({"rawtypes", "unchecked"})
public class RequisicaoLiberacaoServiceEjb extends CrudServiceImpl implements RequisicaoLiberacaoService {
private RequisicaoLiberacaoDao dao;
private HistoricoLiberacaoDao historicoLiberacaoDao;
@Override
protected RequisicaoLiberacaoDao getDao() {
if (dao == null) {
dao = new RequisicaoLiberacaoDao();
}
return dao;
}
private HistoricoLiberacaoDao getHistoricoLiberacaoDao() {
if (historicoLiberacaoDao == null) {
historicoLiberacaoDao = new HistoricoLiberacaoDao();
}
return historicoLiberacaoDao;
}
/**
* @param requisicaoLiberacaoDTO
* @param user
* @return
* @throws Exception
* @author murilo.pacheco metodo para gravar o historico de autera��es em libera��es
*/
public HistoricoLiberacaoDTO createHistoricoLiberacao(final RequisicaoLiberacaoDTO requisicaoLiberacaoDTO) throws Exception {
final HistoricoLiberacaoDTO historico = new HistoricoLiberacaoDTO();
RequisicaoLiberacaoDTO requisicaoLiberacaoDTOAux = requisicaoLiberacaoDTO;
final Integer idExecutormodificacao = requisicaoLiberacaoDTO.getUsuarioDto().getIdEmpregado();
final RequisicaoLiberacaoService requisicaoLiberacaoService = (RequisicaoLiberacaoService) ServiceLocator.getInstance().getService(RequisicaoLiberacaoService.class, null);
requisicaoLiberacaoDTOAux = (RequisicaoLiberacaoDTO) requisicaoLiberacaoService.restore(requisicaoLiberacaoDTO);
requisicaoLiberacaoDTOAux.setAlterarSituacao(requisicaoLiberacaoDTO.getAlterarSituacao());
requisicaoLiberacaoDTOAux.setAcaoFluxo(requisicaoLiberacaoDTO.getAcaoFluxo());
Reflexao.copyPropertyValues(requisicaoLiberacaoDTOAux, historico);
historico.setIdExecutorModificacao(idExecutormodificacao);
// esse bloco seta as informa��es de contato.
ContatoRequisicaoLiberacaoDTO contatoRequisicaoLiberacaoDTO = new ContatoRequisicaoLiberacaoDTO();
final ContatoRequisicaoLiberacaoService contatoRequisicaoLiberacaoService = (ContatoRequisicaoLiberacaoService) ServiceLocator.getInstance().getService(
ContatoRequisicaoLiberacaoService.class, null);
contatoRequisicaoLiberacaoDTO = contatoRequisicaoLiberacaoService.restoreContatosById(requisicaoLiberacaoDTO.getIdContatoRequisicaoLiberacao());
if (contatoRequisicaoLiberacaoDTO != null) {
historico.setNomeContato2(contatoRequisicaoLiberacaoDTO.getNomeContato());
historico.setEmailContato(contatoRequisicaoLiberacaoDTO.getEmailContato());
historico.setIdContatoRequisicaoLiberacao(contatoRequisicaoLiberacaoDTO.getIdContatoRequisicaoLiberacao());
historico.setIdUnidade(contatoRequisicaoLiberacaoDTO.getIdUnidade());
historico.setIdLocalidade(contatoRequisicaoLiberacaoDTO.getIdLocalidade());
historico.setRamal(contatoRequisicaoLiberacaoDTO.getRamal());
historico.setTelefoneContato(contatoRequisicaoLiberacaoDTO.getTelefoneContato());
historico.setObservacao(contatoRequisicaoLiberacaoDTO.getObservacao());
}
HistoricoLiberacaoDTO ultVersao = new HistoricoLiberacaoDTO();
ultVersao = this.getHistoricoLiberacaoDao().maxIdHistorico(requisicaoLiberacaoDTO);
if (ultVersao.getIdHistoricoLiberacao() != null) {
ultVersao = (HistoricoLiberacaoDTO) this.getHistoricoLiberacaoDao().restore(ultVersao);
historico.setHistoricoVersao(ultVersao.getHistoricoVersao() == null ? 1d : +new BigDecimal(ultVersao.getHistoricoVersao() + 0.1f).setScale(1, BigDecimal.ROUND_DOWN)
.floatValue());
} else {
historico.setHistoricoVersao(1d);
}
historico.setDataHoraModificacao(UtilDatas.getDataHoraAtual());
if (historico.getIdExecutorModificacao() == null) {
historico.setIdExecutorModificacao(1);
} else {
historico.setIdExecutorModificacao(idExecutormodificacao);
}
return historico;
}
@Override
public Collection findByIdSolicitante(final Integer parm) throws Exception {
final RequisicaoLiberacaoDao dao = this.getDao();
try {
return dao.findByIdSolicitante(parm);
} catch (final Exception e) {
throw new ServiceException(e);
}
}
@Override
public IDto create(final IDto model) throws ServiceException, LogicException {
final RequisicaoLiberacaoDao liberacaoDao = this.getDao();
final LiberacaoMudancaDao liberacaoMudancaDao = new LiberacaoMudancaDao();
final LiberacaoProblemaDao liberacaoProblemaDao = new LiberacaoProblemaDao();
final RequisicaoLiberacaoItemConfiguracaoDao requisicaoLiberacaoItemConfiguracaoDao = new RequisicaoLiberacaoItemConfiguracaoDao();
final RequisicaoLiberacaoMidiaDao requisicaoLiberacaoMidiaDao = new RequisicaoLiberacaoMidiaDao();
final RequisicaoLiberacaoResponsavelDao requisicaoLiberacaoResponsavelDao = new RequisicaoLiberacaoResponsavelDao();
final RequisicaoLiberacaoRequisicaoComprasDAO requisicaoLiberacaoPedidoComprasDao = new RequisicaoLiberacaoRequisicaoComprasDAO();
final TipoLiberacaoDAO tipoLiberacaoDAO = new TipoLiberacaoDAO();
TipoLiberacaoDTO tipoLiberacaoDTO = new TipoLiberacaoDTO();
final UsuarioDao usuarioDao = new UsuarioDao();
final HistoricoLiberacaoDTO historicoLiberacaoDTO = new HistoricoLiberacaoDTO();
ContatoRequisicaoLiberacaoDTO contatoRequisicaoLiberacaoDto = new ContatoRequisicaoLiberacaoDTO();
UsuarioDTO usuarioDto = new UsuarioDTO();
final RequisicaoLiberacaoDTO requisicaoLiberacaoDto = (RequisicaoLiberacaoDTO) model;
final TransactionControler tc = new TransactionControlerImpl(liberacaoDao.getAliasDB());
final ExecucaoLiberacaoServiceEjb execucaoLiberacaoServiceEjb = new ExecucaoLiberacaoServiceEjb();
try {
this.validaCreate(model);
liberacaoDao.setTransactionControler(tc);
liberacaoMudancaDao.setTransactionControler(tc);
liberacaoProblemaDao.setTransactionControler(tc);
tipoLiberacaoDAO.setTransactionControler(tc);
requisicaoLiberacaoMidiaDao.setTransactionControler(tc);
requisicaoLiberacaoResponsavelDao.setTransactionControler(tc);
requisicaoLiberacaoPedidoComprasDao.setTransactionControler(tc);
usuarioDao.setTransactionControler(tc);
tc.start();
RequisicaoLiberacaoDTO liberacaoDto = (RequisicaoLiberacaoDTO) model;
if (liberacaoDto != null && liberacaoDto.getDataInicial() != null && liberacaoDto.getDataFinal() != null) {
final Timestamp dataInicialAgendada = UtilDatas.strToTimestamp(liberacaoDto.getDataInicial().toString());
liberacaoDto.setDataHoraInicioAgendada(dataInicialAgendada);
final Timestamp dataFinalAgendada = UtilDatas.strToTimestamp(liberacaoDto.getDataFinal().toString());
liberacaoDto.setDataHoraTerminoAgendada(dataFinalAgendada);
}
if (liberacaoDto != null && liberacaoDto.getDataInicial() != null && liberacaoDto.getHoraAgendamentoInicial() != null && liberacaoDto != null
&& liberacaoDto.getDataFinal() != null && liberacaoDto.getHoraAgendamentoFinal() != null) {
final boolean resultado = this.seHoraFinalMenorQHoraInicial(liberacaoDto);
if (resultado == true) {
throw new LogicException(this.i18nMessage("requisicaoMudanca.horaFinalMenorQueInicial"));
}
}
if (liberacaoDto != null && liberacaoDto.getDataInicial() != null && liberacaoDto.getHoraAgendamentoInicial() != null) {
final boolean resultado = this.seHoraInicialMenorQAtual(liberacaoDto);
if (resultado == true) {
throw new LogicException(this.i18nMessage("requisicaoMudanca.horaInicialMenorQueAtual"));
}
}
if (liberacaoDto != null && liberacaoDto.getDataFinal() != null && liberacaoDto.getHoraAgendamentoFinal() != null) {
final boolean resultado = this.seHoraFinalMenorQAtual(liberacaoDto);
if (resultado == true) {
throw new LogicException(this.i18nMessage("requisicaoMudanca.horaFinalMenorQueAtual"));
}
}
if (liberacaoDto != null && liberacaoDto.getDataInicial() != null && liberacaoDto.getHoraAgendamentoInicial() != null) {
final Timestamp dataHoraInicial = this.MontardataHoraAgendamentoInicial(liberacaoDto);
liberacaoDto.setDataHoraInicioAgendada(dataHoraInicial);
}
if (liberacaoDto != null && liberacaoDto.getDataFinal() != null && liberacaoDto.getHoraAgendamentoFinal() != null) {
final Timestamp dataHoraFinal = this.MontardataHoraAgendamentoFinal(liberacaoDto);
liberacaoDto.setDataHoraTerminoAgendada(dataHoraFinal);
liberacaoDto.setDataHoraTermino(dataHoraFinal);
}
if (liberacaoDto != null && liberacaoDto.getIdTipoLiberacao() != null) {
tipoLiberacaoDTO.setIdTipoLiberacao(liberacaoDto.getIdTipoLiberacao());
tipoLiberacaoDTO = (TipoLiberacaoDTO) tipoLiberacaoDAO.restore(tipoLiberacaoDTO);
}
final boolean resultado = this.validacaoGrupoExecutor(liberacaoDto);
if (resultado == false) {
throw new LogicException(this.i18nMessage("requisicaoLiberacao.grupoSemPermissao"));
}
if (liberacaoDto.getDataInicial() != null && liberacaoDto.getDataFinal() != null) {
this.determinaPrazo(liberacaoDto, tipoLiberacaoDTO.getIdCalendario());
this.calculaTempoAtraso(liberacaoDto);
} else {
liberacaoDto.setPrazoHH(00);
liberacaoDto.setPrazoMM(00);
}
if (liberacaoDto.getIdTipoLiberacao() != null) {
tipoLiberacaoDTO.setIdTipoLiberacao(liberacaoDto.getIdTipoLiberacao());
tipoLiberacaoDTO = (TipoLiberacaoDTO) tipoLiberacaoDAO.restore(tipoLiberacaoDTO);
}
if (liberacaoDto.getIdGrupoNivel1() == null || liberacaoDto.getIdGrupoNivel1().intValue() <= 0) {
liberacaoDto.setIdGrupoNivel1(tipoLiberacaoDTO.getIdGrupoExecutor());
}
if (liberacaoDto.getIdGrupoAtual() == null) {
liberacaoDto.setIdGrupoAtual(tipoLiberacaoDTO.getIdGrupoExecutor());
}
liberacaoDto.setIdCalendario(tipoLiberacaoDTO.getIdCalendario());
liberacaoDto.setTempoDecorridoHH(new Integer(0));
liberacaoDto.setTempoDecorridoMM(new Integer(0));
liberacaoDto.setDataHoraSuspensao(null);
liberacaoDto.setDataHoraReativacao(null);
liberacaoDto.setSeqReabertura(new Integer(0));
liberacaoDto.setDataHoraSolicitacao(new Timestamp(new java.util.Date().getTime()));
liberacaoDto.setIdProprietario(liberacaoDto.getUsuarioDto().getIdUsuario());
liberacaoDto.setIdResponsavel(liberacaoDto.getUsuarioDto().getIdUsuario());
usuarioDto = usuarioDao.restoreByIdEmpregado(liberacaoDto.getIdSolicitante());
if (usuarioDto != null) {
liberacaoDto.setUsuarioSolicitante(usuarioDto.getLogin());
}
if (liberacaoDto.getDataFinal() != null && liberacaoDto.getDataInicial() != null) {
// liberacaoDto.setDataHoraTerminoAgendada(UtilDatas.strToTimestamp(UtilDatas.dateToSTR(liberacaoDto.getDataFinal())));
// liberacaoDto.setDataHoraInicioAgendada(
// UtilDatas.strToTimestamp(UtilDatas.dateToSTR(liberacaoDto.getDataInicial())));
this.determinaPrazo(liberacaoDto, tipoLiberacaoDTO.getIdCalendario());
} else {
liberacaoDto.setPrazoHH(00);
liberacaoDto.setPrazoMM(00);
}
liberacaoDto.setDataHoraInicio(new Timestamp(new java.util.Date().getTime()));
liberacaoDto.setDataHoraCaptura(liberacaoDto.getDataHoraInicio());
contatoRequisicaoLiberacaoDto = this.criarContatoRequisicaoLiberacao(requisicaoLiberacaoDto, tc);
liberacaoDto.setIdContatoRequisicaoLiberacao(contatoRequisicaoLiberacaoDto.getIdContatoRequisicaoLiberacao());
liberacaoDto = (RequisicaoLiberacaoDTO) liberacaoDao.create(liberacaoDto);
// Grava Libera��o DTO
if (liberacaoDto.getColArquivosUpload() != null) {
this.gravaInformacoesGED(liberacaoDto, tc, historicoLiberacaoDTO);
}
if (liberacaoDto.getColArquivosUploadDocsLegais() != null) {
this.gravaGEDDocLegais(liberacaoDto, tc, historicoLiberacaoDTO);
}
if (liberacaoDto.getColDocsGerais() != null) {
this.gravaGEDDocGerais(liberacaoDto, tc, historicoLiberacaoDTO);
}
this.criarOcorrenciaLiberacao(liberacaoDto, tc);
// esse bloco grava a ocorrencia a partir do bot�o adicionar registro de execu��o
final Source source = new Source(liberacaoDto.getRegistroexecucao());
liberacaoDto.setRegistroexecucao(source.getTextExtractor().toString());
if (liberacaoDto.getRegistroexecucao() != null && !liberacaoDto.getRegistroexecucao().trim().equalsIgnoreCase("")) {
final OcorrenciaLiberacaoDao ocorrenciaLiberacaoDao = new OcorrenciaLiberacaoDao();
ocorrenciaLiberacaoDao.setTransactionControler(tc);
final OcorrenciaLiberacaoDTO ocorrenciaLiberacaoDTO = new OcorrenciaLiberacaoDTO();
ocorrenciaLiberacaoDTO.setIdRequisicaoLiberacao(liberacaoDto.getIdRequisicaoLiberacao());
ocorrenciaLiberacaoDTO.setDataregistro(UtilDatas.getDataAtual());
ocorrenciaLiberacaoDTO.setHoraregistro(UtilDatas.formatHoraFormatadaStr(UtilDatas.getHoraAtual()));
ocorrenciaLiberacaoDTO.setTempoGasto(0);
ocorrenciaLiberacaoDTO.setDescricao(br.com.centralit.citcorpore.util.Enumerados.CategoriaOcorrencia.Execucao.getDescricao());
ocorrenciaLiberacaoDTO.setDataInicio(UtilDatas.getDataAtual());
ocorrenciaLiberacaoDTO.setDataFim(UtilDatas.getDataAtual());
ocorrenciaLiberacaoDTO.setInformacoesContato("n�o se aplica");
ocorrenciaLiberacaoDTO.setRegistradopor(liberacaoDto.getUsuarioDto().getLogin());
try {
ocorrenciaLiberacaoDTO.setDadosLiberacao(new Gson().toJson(liberacaoDto));
} catch (final Exception e) {
e.printStackTrace();
}
ocorrenciaLiberacaoDTO.setOrigem(br.com.centralit.citcorpore.util.Enumerados.OrigemOcorrencia.OUTROS.getSigla().toString());
ocorrenciaLiberacaoDTO.setCategoria(br.com.centralit.citcorpore.util.Enumerados.CategoriaOcorrencia.Criacao.getSigla());
ocorrenciaLiberacaoDTO.setOcorrencia(liberacaoDto.getRegistroexecucao());
ocorrenciaLiberacaoDao.create(ocorrenciaLiberacaoDTO);
}
final Collection<LiberacaoMudancaDTO> colMudancas = liberacaoDto.getColMudancas();
if (colMudancas != null) {
for (final LiberacaoMudancaDTO liberacaoMudancaDto : colMudancas) {
liberacaoMudancaDto.setIdLiberacao(liberacaoDto.getIdRequisicaoLiberacao());
liberacaoMudancaDao.create(liberacaoMudancaDto);
}
}
final Collection<LiberacaoProblemaDTO> colProblema = liberacaoDto.getColProblemas();
if (colProblema != null) {
for (final LiberacaoProblemaDTO liberacaoProblemaDTO : colProblema) {
liberacaoProblemaDTO.setIdLiberacao(liberacaoDto.getIdRequisicaoLiberacao());
liberacaoProblemaDao.create(liberacaoProblemaDTO);
}
}
final Collection<RequisicaoLiberacaoItemConfiguracaoDTO> colitens = liberacaoDto.getListRequisicaoLiberacaoItemConfiguracaoDTO();
if (colitens != null) {
for (final RequisicaoLiberacaoItemConfiguracaoDTO requisicaoLiberacaoItemConfiguracaoDTO : colitens) {
requisicaoLiberacaoItemConfiguracaoDTO.setIdRequisicaoLiberacao(liberacaoDto.getIdRequisicaoLiberacao());
requisicaoLiberacaoItemConfiguracaoDao.create(requisicaoLiberacaoItemConfiguracaoDTO);
}
}
final Collection<RequisicaoLiberacaoMidiaDTO> colRequisicaoLiberacao = liberacaoDto.getColMidia();
if (colRequisicaoLiberacao != null) {
for (final RequisicaoLiberacaoMidiaDTO requisicaoLiberacaoMidiaDTO : colRequisicaoLiberacao) {
requisicaoLiberacaoMidiaDTO.setIdRequisicaoLiberacao(liberacaoDto.getIdRequisicaoLiberacao());
requisicaoLiberacaoMidiaDao.create(requisicaoLiberacaoMidiaDTO);
}
}
if (requisicaoLiberacaoDto.getDataHoraInicioAgendada() != null && requisicaoLiberacaoDto.getDataHoraTerminoAgendada() != null
&& (requisicaoLiberacaoDto.getIdGrupoAtvPeriodica() == null || requisicaoLiberacaoDto.getIdGrupoAtvPeriodica() == 0)) {
throw new LogicException(this.i18nMessage("gerenciaservico.agendaratividade.informacoesGrupoAtividade"));
}
// create Responsavel
final Collection<RequisicaoLiberacaoResponsavelDTO> colRequisicaoLiberacaoResp = liberacaoDto.getColResponsaveis();
if (colRequisicaoLiberacaoResp != null) {
for (final RequisicaoLiberacaoResponsavelDTO liberacaoResponsavelDTO : colRequisicaoLiberacaoResp) {
liberacaoResponsavelDTO.setIdRequisicaoLiberacao(liberacaoDto.getIdRequisicaoLiberacao());
requisicaoLiberacaoResponsavelDao.create(liberacaoResponsavelDTO);
}
}
// create PedidoCompras
final Collection<RequisicaoLiberacaoRequisicaoComprasDTO> colRequisicaoLiberacaoCompras = liberacaoDto.getColRequisicaoCompras();
if (colRequisicaoLiberacaoCompras != null) {
for (final RequisicaoLiberacaoRequisicaoComprasDTO liberacaoPedidoComprasDTO : colRequisicaoLiberacaoCompras) {
liberacaoPedidoComprasDTO.setIdRequisicaoLiberacao(liberacaoDto.getIdRequisicaoLiberacao());
requisicaoLiberacaoPedidoComprasDao.create(liberacaoPedidoComprasDTO);
}
}
// Grava Fluxo
execucaoLiberacaoServiceEjb.registraLiberacao(liberacaoDto, tc, usuario);
tc.commit();
if (requisicaoLiberacaoDto.getDataHoraInicioAgendada() != null) {
RequisicaoLiberacao.salvaGrupoAtvPeriodicaEAgenda(requisicaoLiberacaoDto);
}
} catch (final Exception e) {
this.rollbackTransaction(tc, e);
} finally {
tc.closeQuietly();
}
return model;
}
@Override
public List<RequisicaoLiberacaoItemConfiguracaoDTO> listItensRelacionadosRequisicaoLiberacao(final RequisicaoLiberacaoDTO requisicaoLiberacaoDTO) throws ServiceException,
Exception {
ItemConfiguracaoDTO ic = null;
final RequisicaoLiberacaoItemConfiguracaoService requisicaoLiberacaoService = (RequisicaoLiberacaoItemConfiguracaoService) ServiceLocator.getInstance().getService(
RequisicaoLiberacaoItemConfiguracaoService.class, null);
final ItemConfiguracaoService itemConfiguracaoService = (ItemConfiguracaoService) ServiceLocator.getInstance().getService(ItemConfiguracaoService.class, null);
final ArrayList<RequisicaoLiberacaoItemConfiguracaoDTO> listaReqLiberacaoIC = requisicaoLiberacaoService.listByIdRequisicaoLiberacao(requisicaoLiberacaoDTO
.getIdRequisicaoLiberacao());
// atribui nome para os itens retornados
if (listaReqLiberacaoIC != null) {
for (final RequisicaoLiberacaoItemConfiguracaoDTO r : listaReqLiberacaoIC) {
ic = itemConfiguracaoService.restoreByIdItemConfiguracao(r.getIdItemConfiguracao());
if (ic != null) {
r.setNomeItemConfiguracao(ic.getIdentificacao());
}
}
}
return listaReqLiberacaoIC;
}
@Override
public void updateSimples(final IDto model) {
try {
super.update(model);
} catch (final LogicException | ServiceException e) {
e.printStackTrace();
}
}
@Override
public void update(final IDto model) throws ServiceException, LogicException {
ContatoRequisicaoLiberacaoDTO contatoRequisicaoLiberacaoDto = new ContatoRequisicaoLiberacaoDTO();
final RequisicaoLiberacaoDao liberacaoDao = this.getDao();
final LiberacaoMudancaDao liberacaoMudancaDao = new LiberacaoMudancaDao();
final LiberacaoProblemaDao liberacaoProblemaDao = new LiberacaoProblemaDao();
final RequisicaoLiberacaoResponsavelDao liberacaoResponsavelDao = new RequisicaoLiberacaoResponsavelDao();
final RequisicaoLiberacaoMidiaDao requisicaoLiberacaoMidiaDao = new RequisicaoLiberacaoMidiaDao();
final RequisicaoLiberacaoRequisicaoComprasDAO requisicaoLiberacaoPedidoComprasDao = new RequisicaoLiberacaoRequisicaoComprasDAO();
final TipoLiberacaoDAO tipoLiberacaoDAO = new TipoLiberacaoDAO();
final UsuarioDao usuarioDao = new UsuarioDao();
LigacaoRequisicaoLiberacaoHistoricoMidiaDTO ligacaoMidiaDto = new LigacaoRequisicaoLiberacaoHistoricoMidiaDTO();
LigacaoRequisicaoLiberacaoHistoricoResponsavelDTO ligacaoResponsavelDTO = new LigacaoRequisicaoLiberacaoHistoricoResponsavelDTO();
final LigacaoRequisicaoLiberacaoMidiaDao ligacaoMidiaDao = new LigacaoRequisicaoLiberacaoMidiaDao();
final LigacaoRequisicaoLiberacaoResponsavelDao ligacaoResponsavelDao = new LigacaoRequisicaoLiberacaoResponsavelDao();
LigacaoRequisicaoLiberacaoHistoricoComprasDTO ligacaoComprasDTO = new LigacaoRequisicaoLiberacaoHistoricoComprasDTO();
final LigacaoRequisicaoLiberacaoComprasDao ligacaoComprasDao = new LigacaoRequisicaoLiberacaoComprasDao();
final TransactionControler tc = new TransactionControlerImpl(liberacaoDao.getAliasDB());
Connection connection = null;
try {
connection = tc.getConnection();
connection.setAutoCommit(true);
} catch (final Exception e1) {
e1.printStackTrace();
}
TipoLiberacaoDTO tipoLiberacaoDto = new TipoLiberacaoDTO();
UsuarioDTO usuarioDto = new UsuarioDTO();
try {
this.validaUpdate(model);
liberacaoDao.setTransactionControler(tc);
liberacaoMudancaDao.setTransactionControler(tc);
liberacaoProblemaDao.setTransactionControler(tc);
liberacaoResponsavelDao.setTransactionControler(tc);
tipoLiberacaoDAO.setTransactionControler(tc);
requisicaoLiberacaoMidiaDao.setTransactionControler(tc);
requisicaoLiberacaoPedidoComprasDao.setTransactionControler(tc);
usuarioDao.setTransactionControler(tc);
ligacaoMidiaDao.setTransactionControler(tc);
ligacaoResponsavelDao.setTransactionControler(tc);
tc.start();
final RequisicaoLiberacaoDTO liberacaoDto = (RequisicaoLiberacaoDTO) model;
if (liberacaoDto != null && liberacaoDto.getDataInicial() != null && liberacaoDto.getDataFinal() != null) {
final Timestamp dataInicialAgendada = UtilDatas.strToTimestamp(liberacaoDto.getDataInicial().toString());
liberacaoDto.setDataHoraInicioAgendada(dataInicialAgendada);
final Timestamp dataFinalAgendada = UtilDatas.strToTimestamp(liberacaoDto.getDataFinal().toString());
liberacaoDto.setDataHoraTerminoAgendada(dataFinalAgendada);
}
if (liberacaoDto != null && liberacaoDto.getDataInicial() != null && liberacaoDto.getHoraAgendamentoInicial() != null && liberacaoDto != null
&& liberacaoDto.getDataFinal() != null && liberacaoDto.getHoraAgendamentoFinal() != null) {
final boolean resultado = this.seHoraFinalMenorQHoraInicial(liberacaoDto);
if (resultado == true) {
throw new LogicException(this.i18nMessage("requisicaoMudanca.horaFinalMenorQueInicial"));
}
}
if (liberacaoDto != null && liberacaoDto.getDataInicial() != null && liberacaoDto.getHoraAgendamentoInicial() != null) {
final Timestamp dataHoraInicial = this.MontardataHoraAgendamentoInicial(liberacaoDto);
liberacaoDto.setDataHoraInicioAgendada(dataHoraInicial);
}
if (liberacaoDto != null && liberacaoDto.getDataFinal() != null && liberacaoDto.getHoraAgendamentoFinal() != null) {
final Timestamp dataHoraFinal = this.MontardataHoraAgendamentoFinal(liberacaoDto);
liberacaoDto.setDataHoraTerminoAgendada(dataHoraFinal);
liberacaoDto.setDataHoraTermino(dataHoraFinal);
}
if (liberacaoDto != null && liberacaoDto.getIdTipoLiberacao() != null) {
tipoLiberacaoDto.setIdTipoLiberacao(liberacaoDto.getIdTipoLiberacao());
tipoLiberacaoDto = (TipoLiberacaoDTO) tipoLiberacaoDAO.restore(tipoLiberacaoDto);
}
if (liberacaoDto != null && liberacaoDto.getDataInicial() != null && liberacaoDto.getDataFinal() != null) {
this.determinaPrazo(liberacaoDto, tipoLiberacaoDto.getIdCalendario());
this.calculaTempoAtraso(liberacaoDto);
} else {
if (liberacaoDto != null) {
liberacaoDto.setPrazoHH(00);
liberacaoDto.setPrazoMM(00);
}
}
final RequisicaoLiberacaoDTO auxliberacaoDto = (RequisicaoLiberacaoDTO) liberacaoDao.restore(liberacaoDto);
if (auxliberacaoDto != null && auxliberacaoDto.getDataHoraInicio() != null) {
liberacaoDto.setDataHoraInicio(auxliberacaoDto.getDataHoraInicio());
}
if (liberacaoDto != null && liberacaoDto.getIdTipoLiberacao() != null) {
tipoLiberacaoDto.setIdTipoLiberacao(liberacaoDto.getIdTipoLiberacao());
tipoLiberacaoDto = (TipoLiberacaoDTO) tipoLiberacaoDAO.restore(tipoLiberacaoDto);
}
if (auxliberacaoDto != null && auxliberacaoDto.getIdGrupoNivel1() == null) {
auxliberacaoDto.setIdGrupoNivel1(auxliberacaoDto.getIdGrupoNivel1());
}
if (liberacaoDto != null && liberacaoDto.getIdGrupoNivel1() == null || liberacaoDto.getIdGrupoNivel1().intValue() <= 0) {
liberacaoDto.setIdGrupoNivel1(tipoLiberacaoDto.getIdGrupoExecutor());
}
if (liberacaoDto != null && liberacaoDto.getDataHoraTerminoAgendada() != null && liberacaoDto.getDataHoraInicioAgendada() != null) {
this.determinaPrazo(liberacaoDto);
} else {
if (liberacaoDto != null) {
liberacaoDto.setPrazoHH(00);
liberacaoDto.setPrazoMM(00);
}
}
if (!liberacaoDto.getStatus().equalsIgnoreCase(SituacaoRequisicaoLiberacao.Cancelada.name())) {
if (liberacaoDto.getAlterarSituacao() != null && liberacaoDto.getAlterarSituacao().equalsIgnoreCase("N")) {
liberacaoDto.setStatus(this.getStatusAtual(liberacaoDto.getIdRequisicaoLiberacao()));
}
}
contatoRequisicaoLiberacaoDto = this.criarContatoRequisicaoLiberacao(liberacaoDto, tc);
if (contatoRequisicaoLiberacaoDto != null) {
liberacaoDto.setIdContatoRequisicaoLiberacao(contatoRequisicaoLiberacaoDto.getIdContatoRequisicaoLiberacao());
}
if (liberacaoDto.getIdGrupoAtual() == null) {
liberacaoDto.setIdGrupoAtual(tipoLiberacaoDto.getIdGrupoExecutor());
}
if (liberacaoDto.getAcaoFluxo() != null && liberacaoDto.getAcaoFluxo().equalsIgnoreCase("E")) {
// RequisicaoLiberacaoRequisicaoComprasService requisicaoComprasService =
// (RequisicaoLiberacaoRequisicaoComprasService)
// ServiceLocator.getInstance().getService(RequisicaoLiberacaoRequisicaoComprasService.class, null);
// Collection<RequisicaoLiberacaoRequisicaoComprasDTO> colReqCompras =
// requisicaoComprasService.findByIdLiberacaoAndDataFim(liberacaoDto.getIdRequisicaoLiberacao());
/*
* if (liberacaoDto.getColRequisicaoCompras() != null && colReqCompras != null && colReqCompras.size()>
* 0){ for (RequisicaoLiberacaoRequisicaoComprasDTO reqCompras : colReqCompras){ if
* (!reqCompras.getSituacaoServicos().equals("Fechada") &&
* !reqCompras.getSituacaoServicos().equals("Resolvida")){ throw new
* LogicException(i18n_Message("requisicaoLiberacao.requisicaoComprasVinculadas")); } } }
*/
if (liberacaoDto.getColRequisicaoCompras() != null) {
for (final RequisicaoLiberacaoRequisicaoComprasDTO reqCompras : liberacaoDto.getColRequisicaoCompras()) {
if (!reqCompras.getSituacaoServicos().equals("Fechada") && !reqCompras.getSituacaoServicos().equals("Concluida")) {
throw new LogicException(this.i18nMessage("requisicaoLiberacao.requisicaoComprasVinculacao"));
}
}
}
if (liberacaoDto.getStatus().equalsIgnoreCase(SituacaoRequisicaoLiberacao.Resolvida.name())) {
if (liberacaoDto.getFechamento() == null || liberacaoDto.getFechamento().equalsIgnoreCase("")) {
throw new LogicException(this.i18nMessage("citcorpore.comum.informeFechamento"));
}
if (!this.verificaConfirmacaoQuestionario(liberacaoDto)) {
throw new LogicException(this.i18nMessage("requisicaoLiberacao.verificaQuestionario"));
}
}
}
if (liberacaoDto.getAcaoFluxo() != null && liberacaoDto.getAcaoFluxo().equalsIgnoreCase("E")) {
if (liberacaoDto.getStatus().equalsIgnoreCase(SituacaoRequisicaoLiberacao.NaoResolvida.name())) {
if (liberacaoDto.getFechamento() == null || liberacaoDto.getFechamento().equalsIgnoreCase("")) {
throw new LogicException(this.i18nMessage("citcorpore.comum.informeFechamento"));
}
}
}
if (liberacaoDto.getStatus().equalsIgnoreCase(SituacaoRequisicaoLiberacao.Cancelada.name())) {
if (liberacaoDto.getFechamento() == null || liberacaoDto.getFechamento().equalsIgnoreCase("")) {
throw new LogicException(this.i18nMessage("citcorpore.comum.informeFechamento"));
}
}
usuarioDto = usuarioDao.restoreByIdEmpregado(liberacaoDto.getIdSolicitante());
if (usuarioDto != null) {
liberacaoDto.setUsuarioSolicitante(usuarioDto.getLogin());
}
if (usuarioDto != null && liberacaoDto.getUsuarioDto() != null && liberacaoDto.getUsuarioDto().getIdUsuario() != null) {
liberacaoDto.setIdProprietario(liberacaoDto.getUsuarioDto().getIdUsuario());
}
final ExecucaoLiberacaoServiceEjb execucaoLiberacaoService = new ExecucaoLiberacaoServiceEjb();
if (liberacaoDto.getIdTarefa() == null) {
liberacaoDao.updateNotNull(liberacaoDto);
} else {
if (liberacaoDto.getFase() != null && !liberacaoDto.getFase().equalsIgnoreCase("")) {
liberacaoDao.updateFase(liberacaoDto.getIdRequisicaoLiberacao(), liberacaoDto.getFase());
liberacaoDao.updateNotNull(liberacaoDto);
} else {
if (tipoLiberacaoDto != null) {
liberacaoDao.updateNotNull(model);
} else {
throw new LogicException(this.i18nMessage("requisicaoLiberacao.categoriaLiberacaoNaoLocalizada"));
}
}
if (liberacaoDto.getStatus().equalsIgnoreCase(SituacaoRequisicaoLiberacao.Cancelada.name())) {
execucaoLiberacaoService.encerra(liberacaoDto.getUsuarioDto(), liberacaoDto, tc);
} else {
// ############################################# INICIA ROTINA DO FLUXO
// #######################################
execucaoLiberacaoService.executa(liberacaoDto, liberacaoDto.getIdTarefa(), liberacaoDto.getAcaoFluxo(), tc);
// ############################################# ALTERA GRUPO EXECUTOR
// #######################################
if (auxliberacaoDto != null && liberacaoDto.getIdGrupoAtual() != null
&& UtilStrings.nullToVazio(liberacaoDto.getAcaoFluxo()).equals(br.com.centralit.bpm.util.Enumerados.ACAO_EXECUTAR)
&& (!auxliberacaoDto.escalada() || auxliberacaoDto.getIdGrupoAtual().intValue() != liberacaoDto.getIdGrupoAtual().intValue())) {
execucaoLiberacaoService.direcionaAtendimento(liberacaoDto, tc);
}
}
}
// esse bloco grava a ocorrencia a partir do bot�o adicionar registro de execu��o
if (liberacaoDto.getRegistroexecucao() != null) {
final Source source = new Source(liberacaoDto.getRegistroexecucao());
liberacaoDto.setRegistroexecucao(source.getTextExtractor().toString());
if (liberacaoDto.getRegistroexecucao() != null && !liberacaoDto.getRegistroexecucao().trim().equalsIgnoreCase("")) {
final OcorrenciaLiberacaoDao ocorrenciaLiberacaoDao = new OcorrenciaLiberacaoDao();
ocorrenciaLiberacaoDao.setTransactionControler(tc);
final OcorrenciaLiberacaoDTO ocorrenciaLiberacaoDTO = new OcorrenciaLiberacaoDTO();
ocorrenciaLiberacaoDTO.setIdRequisicaoLiberacao(liberacaoDto.getIdRequisicaoLiberacao());
ocorrenciaLiberacaoDTO.setDataregistro(UtilDatas.getDataAtual());
ocorrenciaLiberacaoDTO.setHoraregistro(UtilDatas.formatHoraFormatadaStr(UtilDatas.getHoraAtual()));
ocorrenciaLiberacaoDTO.setTempoGasto(0);
ocorrenciaLiberacaoDTO.setDescricao(br.com.centralit.citcorpore.util.Enumerados.CategoriaOcorrencia.Execucao.getDescricao());
ocorrenciaLiberacaoDTO.setDataInicio(UtilDatas.getDataAtual());
ocorrenciaLiberacaoDTO.setDataFim(UtilDatas.getDataAtual());
ocorrenciaLiberacaoDTO.setInformacoesContato("n�o se aplica");
ocorrenciaLiberacaoDTO.setRegistradopor(liberacaoDto.getUsuarioDto().getLogin());
try {
ocorrenciaLiberacaoDTO.setDadosLiberacao(new Gson().toJson(liberacaoDto));
} catch (final Exception e) {
e.printStackTrace();
}
ocorrenciaLiberacaoDTO.setOrigem(br.com.centralit.citcorpore.util.Enumerados.OrigemOcorrencia.OUTROS.getSigla().toString());
ocorrenciaLiberacaoDTO.setCategoria(br.com.centralit.citcorpore.util.Enumerados.CategoriaOcorrencia.Criacao.getSigla());
ocorrenciaLiberacaoDTO.setOcorrencia(liberacaoDto.getRegistroexecucao());
ocorrenciaLiberacaoDao.create(ocorrenciaLiberacaoDTO);
}
}
/* Gravando o historico */
HistoricoLiberacaoDTO historicoLiberacaoDTO = new HistoricoLiberacaoDTO();
final HistoricoLiberacaoDao historicoLiberacaoDao = new HistoricoLiberacaoDao();
historicoLiberacaoDao.setTransactionControler(tc);
if (liberacaoDto.getIdRequisicaoLiberacao() != null) {
historicoLiberacaoDTO = (HistoricoLiberacaoDTO) historicoLiberacaoDao.create(this.createHistoricoLiberacao(liberacaoDto));
final ControleGEDDao controleGEDDao = new ControleGEDDao();
controleGEDDao.setTransactionControler(tc);
historicoLiberacaoDTO.setListRequisicaoLiberacaoItemConfiguracaoDTO(this.listarICsLiberacaoRequisicao(historicoLiberacaoDTO));
if (historicoLiberacaoDTO.getListRequisicaoLiberacaoItemConfiguracaoDTO() != null) {
this.gravarICsRequisicaoLiberacao(historicoLiberacaoDTO, tc);
}
historicoLiberacaoDTO.setColMudancas(this.listarColMudancas(historicoLiberacaoDTO));
if (historicoLiberacaoDTO.getColMudancas() != null) {
this.gravarMudancasHistorico(historicoLiberacaoDTO, tc);
}
historicoLiberacaoDTO.setColProblemas(this.listarColProblemas(historicoLiberacaoDTO));
if (historicoLiberacaoDTO.getColProblemas() != null) {
this.gravarProblemasHistorico(historicoLiberacaoDTO, tc);
}
historicoLiberacaoDTO.setColMidia(this.listarColMidias(historicoLiberacaoDTO));
if (historicoLiberacaoDTO.getColMidia() != null) {
for (final RequisicaoLiberacaoMidiaDTO requisicaoLiberacaoMidiaDTO : historicoLiberacaoDTO.getColMidia()) {
ligacaoMidiaDto.setIdRequisicaoLiberacao(historicoLiberacaoDTO.getIdRequisicaoLiberacao());
ligacaoMidiaDto.setIdRequisicaoLiberacaoMidia(requisicaoLiberacaoMidiaDTO.getIdRequisicaoLiberacaoMidia());
ligacaoMidiaDto.setIdHistoricoLiberacao(historicoLiberacaoDTO.getIdHistoricoLiberacao());
ligacaoMidiaDao.create(ligacaoMidiaDto);
ligacaoMidiaDto = new LigacaoRequisicaoLiberacaoHistoricoMidiaDTO();
}
}
historicoLiberacaoDTO.setColResponsaveis(this.listarColResponsaveis(historicoLiberacaoDTO));
if (historicoLiberacaoDTO.getColResponsaveis() != null) {
for (final RequisicaoLiberacaoResponsavelDTO requisicaoLiberacaoRespDTO : historicoLiberacaoDTO.getColResponsaveis()) {
ligacaoResponsavelDTO.setIdRequisicaoLiberacao(historicoLiberacaoDTO.getIdRequisicaoLiberacao());
ligacaoResponsavelDTO.setIdRequisicaoLiberacaoResp(requisicaoLiberacaoRespDTO.getIdRequisicaoLiberacaoResp());
ligacaoResponsavelDTO.setIdHistoricoLiberacao(historicoLiberacaoDTO.getIdHistoricoLiberacao());
ligacaoResponsavelDao.create(ligacaoResponsavelDTO);
ligacaoResponsavelDTO = new LigacaoRequisicaoLiberacaoHistoricoResponsavelDTO();
}
}
historicoLiberacaoDTO.setColRequisicaoCompras(this.listarColCompras(historicoLiberacaoDTO));
if (historicoLiberacaoDTO.getColRequisicaoCompras() != null) {
for (final RequisicaoLiberacaoRequisicaoComprasDTO requisicaoLiberacaoComprasDTO : historicoLiberacaoDTO.getColRequisicaoCompras()) {
ligacaoComprasDTO.setIdRequisicaoLiberacao(historicoLiberacaoDTO.getIdRequisicaoLiberacao());
ligacaoComprasDTO.setIdRequisicaoLiberacaoCompras(requisicaoLiberacaoComprasDTO.getIdRequisicaoLiberacaoCompras());
ligacaoComprasDTO.setIdHistoricoLiberacao(historicoLiberacaoDTO.getIdHistoricoLiberacao());
ligacaoComprasDao.create(ligacaoComprasDTO);
ligacaoComprasDTO = new LigacaoRequisicaoLiberacaoHistoricoComprasDTO();
}
}
}
// esse bloco grava os anexos da libera��o
final ControleGEDDao gedDao = new ControleGEDDao();
gedDao.setTransactionControler(tc);
/** Comentado pois estava deletando o arquivo e pegando referencia incorreta **/
// /gedDao.deleteByIdRequisicaoLiberacao(liberacaoDto.getIdRequisicaoLiberacao(),
// ControleGEDDTO.TABELA_REQUISICAOLIBERACAO);
final HistoricoGEDDao historicoGEDDao = new HistoricoGEDDao();
Collection<HistoricoGEDDTO> colHistoricoGed = new ArrayList<HistoricoGEDDTO>();
colHistoricoGed = historicoGEDDao.listByIdTabelaAndIdLiberacao(ControleGEDDTO.TABELA_REQUISICAOLIBERACAO, liberacaoDto.getIdRequisicaoLiberacao());
if (colHistoricoGed != null && colHistoricoGed.size() > 0) {
for (final HistoricoGEDDTO historicoGEDDTO : colHistoricoGed) {
historicoGEDDTO.setDataFim(UtilDatas.getDataAtual());
historicoGEDDTO.setIdHistoricoMudanca(historicoLiberacaoDTO.getIdHistoricoLiberacao());
historicoGEDDao.update(historicoGEDDTO);
}
}
if (liberacaoDto.getColArquivosUpload() != null /* && liberacaoDto.getColArquivosUpload().size() > 0 */) {
this.gravaInformacoesGED(liberacaoDto, tc, historicoLiberacaoDTO);
}
// lista todos os anexos de decumentos legais para setar a data fim para o historico
Collection<HistoricoGEDDTO> colHistoricoGedDocsLegais = new ArrayList<HistoricoGEDDTO>();
colHistoricoGedDocsLegais = historicoGEDDao.listByIdTabelaAndIdLiberacao(ControleGEDDTO.TABELA_DOCSLEGAIS_REQUISICAOLIBERACAO, liberacaoDto.getIdRequisicaoLiberacao());
if (colHistoricoGedDocsLegais != null && colHistoricoGedDocsLegais.size() > 0) {
for (final HistoricoGEDDTO historicoGEDDTODocsLegais : colHistoricoGedDocsLegais) {
historicoGEDDTODocsLegais.setDataFim(UtilDatas.getDataAtual());
historicoGEDDTODocsLegais.setIdHistoricoMudanca(historicoLiberacaoDTO.getIdHistoricoLiberacao());
historicoGEDDao.update(historicoGEDDTODocsLegais);
}
}
if (liberacaoDto.getColArquivosUploadDocsLegais() != null /*
* &&
* liberacaoDto.getColArquivosUploadDocsLegais()
* .size() > 0
*/) {
this.gravaGEDDocLegais(liberacaoDto, tc, historicoLiberacaoDTO);
}
// lista todos os anexos de decumentos legais para setar a data fim para o historico
Collection<HistoricoGEDDTO> colHistoricoGedDocsGerais = new ArrayList<HistoricoGEDDTO>();
colHistoricoGedDocsGerais = historicoGEDDao.listByIdTabelaAndIdLiberacao(ControleGEDDTO.TABELA_DOCSGERAIS_REQUISICAOLIBERACAO, liberacaoDto.getIdRequisicaoLiberacao());
if (colHistoricoGedDocsGerais != null && colHistoricoGedDocsGerais.size() > 0) {
for (final HistoricoGEDDTO historicoGEDDTODocsGerais : colHistoricoGedDocsGerais) {
historicoGEDDTODocsGerais.setDataFim(UtilDatas.getDataAtual());
historicoGEDDTODocsGerais.setIdHistoricoMudanca(historicoLiberacaoDTO.getIdHistoricoLiberacao());
historicoGEDDao.update(historicoGEDDTODocsGerais);
}
}
if (liberacaoDto.getColDocsGerais() != null /* && liberacaoDto.getColDocsGerais().size() > 0 */) {
this.gravaGEDDocGerais(liberacaoDto, tc, historicoLiberacaoDTO);
}
// lista todos os anexos de decumentos legais para setar a data fim para o historico
Collection<HistoricoGEDDTO> colHistoricoGedPlanoReversao = new ArrayList<HistoricoGEDDTO>();
colHistoricoGedPlanoReversao = historicoGEDDao.listByIdTabelaAndIdLiberacao(ControleGEDDTO.TABELA_PLANO_REVERSAO_MUDANCA, liberacaoDto.getIdMudanca());
if (colHistoricoGedPlanoReversao != null && colHistoricoGedPlanoReversao.size() > 0) {
for (final HistoricoGEDDTO historicoGEDDTOPlanoReversao : colHistoricoGedPlanoReversao) {
historicoGEDDTOPlanoReversao.setDataFim(UtilDatas.getDataAtual());
historicoGEDDTOPlanoReversao.setIdHistoricoMudanca(historicoLiberacaoDTO.getIdHistoricoLiberacao());
historicoGEDDao.update(historicoGEDDTOPlanoReversao);
}
}
if (liberacaoDto.getColDocsGerais() != null /* && liberacaoDto.getColDocsGerais().size() > 0 */) {
final RequisicaoMudancaDTO requisicaomudacaDTO = new RequisicaoMudancaDTO();
final HistoricoMudancaDTO historicoMudancaDTO = new HistoricoMudancaDTO();
this.gravaPlanoDeReversaoGED(requisicaomudacaDTO, tc, historicoMudancaDTO);
}
// gravar ICs vinculados a liberacao
this.gravarICsRequisicaoLiberacao(liberacaoDto, tc);
liberacaoMudancaDao.deleteByIdLiberacao(liberacaoDto.getIdRequisicaoLiberacao());
final Collection<LiberacaoMudancaDTO> colMudancas = liberacaoDto.getColMudancas();
if (colMudancas != null) {
for (final LiberacaoMudancaDTO liberacaoMudancaDto : colMudancas) {
liberacaoMudancaDto.setIdLiberacao(liberacaoDto.getIdRequisicaoLiberacao());
liberacaoMudancaDto.setIdHistoricoLiberacao(null);
liberacaoMudancaDao.create(liberacaoMudancaDto);
}
}
liberacaoProblemaDao.deleteByIdLiberacao(liberacaoDto.getIdRequisicaoLiberacao());
final Collection<LiberacaoProblemaDTO> colProblema = liberacaoDto.getColProblemas();
if (colProblema != null) {
for (final LiberacaoProblemaDTO liberacaoProblemaDTO : colProblema) {
liberacaoProblemaDTO.setIdLiberacao(liberacaoDto.getIdRequisicaoLiberacao());
liberacaoProblemaDao.create(liberacaoProblemaDTO);
}
}
// requisicaoLiberacaoMidiaDao.deleteByIdRequisicaoLiberacao(liberacaoDto.getIdRequisicaoLiberacao());
if (liberacaoDto.getColMidia() != null && liberacaoDto.getColMidia().size() > 0) {
this.deleteAdicionaTabelaMidias(liberacaoDto, tc);
} else {
final RequisicaoLiberacaoMidiaDao midiaDao = new RequisicaoLiberacaoMidiaDao();
final Collection<RequisicaoLiberacaoMidiaDTO> ListRequisicaoLiberacaoMidiaDTO = midiaDao.findByIdLiberacaoEDataFim(liberacaoDto.getIdRequisicaoLiberacao());
if (ListRequisicaoLiberacaoMidiaDTO != null && ListRequisicaoLiberacaoMidiaDTO.size() > 0) {
for (final RequisicaoLiberacaoMidiaDTO requisicaoLiberacaoMidiaDTO : ListRequisicaoLiberacaoMidiaDTO) {
requisicaoLiberacaoMidiaDTO.setDataFim(UtilDatas.getDataAtual());
midiaDao.update(requisicaoLiberacaoMidiaDTO);
}
}
}
// update Responsavel
// liberacaoResponsavelDao.deleteByIdRequisicaoLiberacao(liberacaoDto.getIdRequisicaoLiberacao());
if (liberacaoDto.getColResponsaveis() != null && liberacaoDto.getColResponsaveis().size() > 0) {
this.deleteAdicionaTabelaResponsavel(liberacaoDto, tc);
} else {
final RequisicaoLiberacaoResponsavelDao requisicaoLiberacaoResponsavelDao = new RequisicaoLiberacaoResponsavelDao();
final Collection<RequisicaoLiberacaoResponsavelDTO> responsavel = requisicaoLiberacaoResponsavelDao.findByIdLiberacaoEDataFim(liberacaoDto
.getIdRequisicaoLiberacao());
if (responsavel != null && responsavel.size() > 0) {
for (final RequisicaoLiberacaoResponsavelDTO requisicaoLiberacaoResponsavelDTO : responsavel) {
requisicaoLiberacaoResponsavelDTO.setDataFim(UtilDatas.getDataAtual());
requisicaoLiberacaoResponsavelDao.update(requisicaoLiberacaoResponsavelDTO);
}
}
}
/*
* Collection<RequisicaoLiberacaoResponsavelDTO> colLiberacaoResponsavelResp =
* liberacaoDto.getColResponsaveis(); if (colLiberacaoResponsavelResp != null) { for
* (RequisicaoLiberacaoResponsavelDTO liberacaoResponsavelDTO : colLiberacaoResponsavelResp) {
* liberacaoResponsavelDTO.setIdRequisicaoLiberacao(liberacaoDto.getIdRequisicaoLiberacao());
* liberacaoResponsavelDao.create(liberacaoResponsavelDTO); } }
*/
// update Requisicao Compras
/*
* requisicaoLiberacaoPedidoComprasDao.deleteByIdRequisicaoLiberacao(liberacaoDto.getIdRequisicaoLiberacao())
* ; Collection<RequisicaoLiberacaoRequisicaoComprasDTO> colReqCompras =
* liberacaoDto.getColRequisicaoCompras(); if (colReqCompras != null) { for
* (RequisicaoLiberacaoRequisicaoComprasDTO liberacaoPedidoComprasDTO : colReqCompras) {
* liberacaoPedidoComprasDTO.setIdRequisicaoLiberacao(liberacaoDto.getIdRequisicaoLiberacao());
* requisicaoLiberacaoPedidoComprasDao.create(liberacaoPedidoComprasDTO); } }
*/
if (liberacaoDto.getColRequisicaoCompras() != null && liberacaoDto.getColRequisicaoCompras().size() > 0) {
this.deleteAdicionaTabelaCompras(liberacaoDto, tc);
} else {
final RequisicaoLiberacaoRequisicaoComprasDAO requisicaoComprasDAO = new RequisicaoLiberacaoRequisicaoComprasDAO();
final Collection<RequisicaoLiberacaoRequisicaoComprasDTO> requisicaoCompras = requisicaoComprasDAO.findByIdLiberacaoAndDataFim(liberacaoDto
.getIdRequisicaoLiberacao());
if (requisicaoCompras != null && requisicaoCompras.size() > 0) {
for (final RequisicaoLiberacaoRequisicaoComprasDTO requisicaoLiberacaoRequisicaoComprasDTO : requisicaoCompras) {
requisicaoLiberacaoRequisicaoComprasDTO.setDataFim(UtilDatas.getDataAtual());
requisicaoComprasDAO.update(requisicaoLiberacaoRequisicaoComprasDTO);
}
}
}
tc.commit();
if (liberacaoDto.getDataHoraInicioAgendada() != null) {
RequisicaoLiberacao.salvaGrupoAtvPeriodicaEAgenda(liberacaoDto);
}
} catch (final Exception e) {
this.rollbackTransaction(tc, e);
} finally {
tc.closeQuietly();
}
}
private void gravarICsRequisicaoLiberacao(final RequisicaoLiberacaoDTO liberacaoDto, final TransactionControler tc) throws ServiceException, Exception {
ArrayList<RequisicaoLiberacaoItemConfiguracaoDTO> icsBanco = null;
RequisicaoLiberacaoItemConfiguracaoDTO requisicaoLiberacaoItemConfiguracaoDTO2 = new RequisicaoLiberacaoItemConfiguracaoDTO();
final RequisicaoLiberacaoItemConfiguracaoDao requisicaoLiberacaoItemConfiguracaoDao = new RequisicaoLiberacaoItemConfiguracaoDao();
if (tc != null) {
requisicaoLiberacaoItemConfiguracaoDao.setTransactionControler(tc);
}
if (liberacaoDto.getListRequisicaoLiberacaoItemConfiguracaoDTO() != null) {
// se n�o existir no banco, cria, caso contr�rio, atualiza
for (final RequisicaoLiberacaoItemConfiguracaoDTO requisicaoLiberacaoItemConfiguracaoDTO : liberacaoDto.getListRequisicaoLiberacaoItemConfiguracaoDTO()) {
requisicaoLiberacaoItemConfiguracaoDTO.setIdRequisicaoLiberacao(liberacaoDto.getIdRequisicaoLiberacao());
requisicaoLiberacaoItemConfiguracaoDTO2 = requisicaoLiberacaoItemConfiguracaoDao.restoreByChaveComposta(requisicaoLiberacaoItemConfiguracaoDTO);
if (requisicaoLiberacaoItemConfiguracaoDTO2 == null) {
requisicaoLiberacaoItemConfiguracaoDao.create(requisicaoLiberacaoItemConfiguracaoDTO);
} else {
requisicaoLiberacaoItemConfiguracaoDao.update(requisicaoLiberacaoItemConfiguracaoDTO2);
}
}
}
// confere se existe algo no banco que n�o est� na lista salva, e deleta
icsBanco = requisicaoLiberacaoItemConfiguracaoDao.listByIdRequisicaoLiberacao(liberacaoDto.getIdRequisicaoLiberacao());
if (icsBanco != null) {
for (final RequisicaoLiberacaoItemConfiguracaoDTO i : icsBanco) {
if (!this.requisicaoLiberacaoICExisteNaLista(i, liberacaoDto.getListRequisicaoLiberacaoItemConfiguracaoDTO())) {
requisicaoLiberacaoItemConfiguracaoDao.delete(i);
}
}
}
}
private void gravarICsRequisicaoLiberacao(final HistoricoLiberacaoDTO historicoLiberacaoDTO, final TransactionControler tc) throws ServiceException, Exception {
final RequisicaoLiberacaoItemConfiguracaoDao requisicaoLiberacaoItemConfiguracaoDao = new RequisicaoLiberacaoItemConfiguracaoDao();
if (tc != null) {
requisicaoLiberacaoItemConfiguracaoDao.setTransactionControler(tc);
}
if (historicoLiberacaoDTO.getListRequisicaoLiberacaoItemConfiguracaoDTO() != null) {
// se n�o existir no banco, cria, caso contr�rio, atualiza
for (final RequisicaoLiberacaoItemConfiguracaoDTO requisicaoLiberacaoItemConfiguracaoDTO : historicoLiberacaoDTO.getListRequisicaoLiberacaoItemConfiguracaoDTO()) {
requisicaoLiberacaoItemConfiguracaoDTO.setIdHistoricoLiberacao(historicoLiberacaoDTO.getIdHistoricoLiberacao());
requisicaoLiberacaoItemConfiguracaoDTO.setIdRequisicaoLiberacao(null);
requisicaoLiberacaoItemConfiguracaoDao.create(requisicaoLiberacaoItemConfiguracaoDTO);
}
}
}
private void gravarMudancasHistorico(final HistoricoLiberacaoDTO historicoLiberacaoDTO, final TransactionControler tc) throws ServiceException, Exception {
final LiberacaoMudancaDao liberacaoMudancaDao = new LiberacaoMudancaDao();
if (tc != null) {
liberacaoMudancaDao.setTransactionControler(tc);
}
if (historicoLiberacaoDTO.getColMudancas() != null) {
// grava no banco os historicos de mudan�as.
for (final LiberacaoMudancaDTO liberacaoMudancaDTO : historicoLiberacaoDTO.getColMudancas()) {
liberacaoMudancaDTO.setIdHistoricoLiberacao(historicoLiberacaoDTO.getIdHistoricoLiberacao());
liberacaoMudancaDTO.setIdLiberacao(historicoLiberacaoDTO.getIdRequisicaoLiberacao());
liberacaoMudancaDao.create(liberacaoMudancaDTO);
}
}
}
private void gravarProblemasHistorico(final HistoricoLiberacaoDTO historicoLiberacaoDTO, final TransactionControler tc) throws ServiceException, Exception {
final LiberacaoProblemaDao liberacaoProblemaDao = new LiberacaoProblemaDao();
if (tc != null) {
liberacaoProblemaDao.setTransactionControler(tc);
}
if (historicoLiberacaoDTO.getColMudancas() != null) {
// se n�o existir no banco, cria, caso contr�rio, atualiza
for (final LiberacaoProblemaDTO liberacaoProblemaDTO : historicoLiberacaoDTO.getColProblemas()) {
liberacaoProblemaDTO.setIdHistoricoLiberacao(historicoLiberacaoDTO.getIdHistoricoLiberacao());
liberacaoProblemaDTO.setIdLiberacao(null);
liberacaoProblemaDao.create(liberacaoProblemaDTO);
}
}
}
public List<RequisicaoLiberacaoItemConfiguracaoDTO> listarICsLiberacaoRequisicao(final HistoricoLiberacaoDTO historicoLiberacaoDTO) throws ServiceException, Exception {
final RequisicaoLiberacaoItemConfiguracaoDao requisicaoLiberacaoDao = new RequisicaoLiberacaoItemConfiguracaoDao();
final List<RequisicaoLiberacaoItemConfiguracaoDTO> listICsRequisicaoLiberacao = requisicaoLiberacaoDao.listByIdRequisicaoLiberacao(historicoLiberacaoDTO
.getIdRequisicaoLiberacao());
return listICsRequisicaoLiberacao;
}
public Collection<LiberacaoMudancaDTO> listarColMudancas(final HistoricoLiberacaoDTO historicoLiberacaoDTO) throws ServiceException, Exception {
final LiberacaoMudancaDao requisicaoLiberacaoDao = new LiberacaoMudancaDao();
final Collection<LiberacaoMudancaDTO> listmudancas = requisicaoLiberacaoDao.findByIdLiberacao2(historicoLiberacaoDTO.getIdRequisicaoLiberacao());
return listmudancas;
}
public Collection<LiberacaoProblemaDTO> listarColProblemas(final HistoricoLiberacaoDTO historicoLiberacaoDTO) throws ServiceException, Exception {
final LiberacaoProblemaDao liberacaoProblemaDao = new LiberacaoProblemaDao();
final Collection<LiberacaoProblemaDTO> listProblemas = liberacaoProblemaDao.listByIdRequisicaoLiberacao(historicoLiberacaoDTO.getIdRequisicaoLiberacao());
return listProblemas;
}
public Collection<RequisicaoLiberacaoMidiaDTO> listarColMidias(final HistoricoLiberacaoDTO historicoLiberacaoDTO) throws ServiceException, Exception {
final RequisicaoLiberacaoMidiaDao midiaDao = new RequisicaoLiberacaoMidiaDao();
final Collection<RequisicaoLiberacaoMidiaDTO> listMidias = midiaDao.findByIdLiberacao(historicoLiberacaoDTO.getIdRequisicaoLiberacao());
return listMidias;
}
public Collection<RequisicaoLiberacaoResponsavelDTO> listarColResponsaveis(final HistoricoLiberacaoDTO historicoLiberacaoDTO) throws ServiceException, Exception {
final RequisicaoLiberacaoResponsavelDao respDao = new RequisicaoLiberacaoResponsavelDao();
final Collection<RequisicaoLiberacaoResponsavelDTO> listResp = respDao.findByIdLiberacaoEDataFim(historicoLiberacaoDTO.getIdRequisicaoLiberacao());
return listResp;
}
public Collection<RequisicaoLiberacaoRequisicaoComprasDTO> listarColCompras(final HistoricoLiberacaoDTO historicoLiberacaoDTO) throws ServiceException, Exception {
final RequisicaoLiberacaoRequisicaoComprasDAO comprasDao = new RequisicaoLiberacaoRequisicaoComprasDAO();
final Collection<RequisicaoLiberacaoRequisicaoComprasDTO> listCompras = comprasDao.findByIdLiberacaoAndDataFim(historicoLiberacaoDTO.getIdRequisicaoLiberacao());
return listCompras;
}
/**
* Verifica se o item existe na lista.
*
* @param item
* @param lista
* @return
*/
private boolean requisicaoLiberacaoICExisteNaLista(final RequisicaoLiberacaoItemConfiguracaoDTO item, final List<RequisicaoLiberacaoItemConfiguracaoDTO> lista) {
if (lista == null) {
return false;
}
for (final RequisicaoLiberacaoItemConfiguracaoDTO l : lista) {
if (l.equals(item)) {
return true;
}
}
return false;
}
@Override
public void delete(final IDto model) throws ServiceException, LogicException {
final RequisicaoLiberacaoDao liberacaoDao = this.getDao();
final LiberacaoMudancaDao liberacaoMudancaDao = new LiberacaoMudancaDao();
final TransactionControler tc = new TransactionControlerImpl(liberacaoDao.getAliasDB());
try {
this.validaDelete(model);
liberacaoDao.setTransactionControler(tc);
liberacaoMudancaDao.setTransactionControler(tc);
tc.start();
final RequisicaoLiberacaoDTO liberacaoDto = (RequisicaoLiberacaoDTO) model;
liberacaoMudancaDao.deleteByIdLiberacao(liberacaoDto.getIdRequisicaoLiberacao());
liberacaoDao.delete(liberacaoDto);
tc.commit();
} catch (final Exception e) {
this.rollbackTransaction(tc, e);
} finally {
tc.closeQuietly();
}
}
@Override
public List<RequisicaoLiberacaoDTO> listLiberacoes() throws Exception {
return this.getDao().listLiberacoes();
}
@Override
public void reativa(final UsuarioDTO usuarioDto, final RequisicaoLiberacaoDTO requisicaoLiberacaoDTO) throws Exception {
final TransactionControler tc = new TransactionControlerImpl(this.getDao().getAliasDB());
this.reativa(usuarioDto, requisicaoLiberacaoDTO, tc);
tc.commit();
tc.close();
}
public void reativa(final UsuarioDTO usuarioDto, final RequisicaoLiberacaoDTO requisicaoLiberacaoDTO, final TransactionControler tc) throws Exception {
final RequisicaoLiberacaoDTO requisicaoLiberacaoAuxDto = this.restoreAll(requisicaoLiberacaoDTO.getIdRequisicaoLiberacao(), tc);
new ExecucaoLiberacaoServiceEjb().reativa(usuarioDto, requisicaoLiberacaoAuxDto, tc);
}
private void determinaPrazo(final RequisicaoLiberacaoDTO requisicaoDto, final Integer idCalendarioParm) throws Exception {
if (requisicaoDto.getDataHoraTerminoAgendada() == null) {
throw new LogicException(this.i18nMessage("citcorpore.comum.Data/horaTerminoNaoDefinida"));
}
CalculoJornadaDTO calculoDto = new CalculoJornadaDTO(idCalendarioParm, requisicaoDto.getDataHoraInicioAgendada());
calculoDto = new CalendarioServiceEjb().calculaPrazoDecorrido(calculoDto, requisicaoDto.getDataHoraTerminoAgendada(), null);
requisicaoDto.setPrazoHH(calculoDto.getTempoDecorridoHH());
requisicaoDto.setPrazoMM(calculoDto.getTempoDecorridoMM());
}
@Override
public RequisicaoLiberacaoDTO restoreAll(final Integer idRequisicaoLiberacao) throws Exception {
return this.restoreAll(idRequisicaoLiberacao, null);
}
public RequisicaoLiberacaoDTO restoreAll(final Integer idRequisicaoLiberacao, final TransactionControler tc) throws Exception {
final RequisicaoLiberacaoDao requisicaoDao = this.getDao();
if (tc != null) {
requisicaoDao.setTransactionControler(tc);
}
RequisicaoLiberacaoDTO requisicaoDto = new RequisicaoLiberacaoDTO();
requisicaoDto.setIdRequisicaoLiberacao(idRequisicaoLiberacao);
requisicaoDto = (RequisicaoLiberacaoDTO) requisicaoDao.restore(requisicaoDto);
if (requisicaoDto != null) {
if (requisicaoDto.getDescricao() != null) {
final Source source = new Source(requisicaoDto.getDescricao());
requisicaoDto.setDescricao(source.getTextExtractor().toString());
}
if (requisicaoDto != null) {
if (requisicaoDto != null && requisicaoDto.getDataHoraInicioAgendada() != null) {
final Timestamp dataHoraTerminoAgendada = requisicaoDto.getDataHoraInicioAgendada();
final SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm");
final String horaAgendamentoInicialSTR = format.format(dataHoraTerminoAgendada);
final String horaInicial = horaAgendamentoInicialSTR.substring(11, 16);
requisicaoDto.setHoraAgendamentoInicial(horaInicial.trim());
}
if (requisicaoDto != null && requisicaoDto.getDataHoraTerminoAgendada() != null) {
final Timestamp dataHoraTerminoAgendada = requisicaoDto.getDataHoraTerminoAgendada();
final SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm");
final String horaAgendamentoFinallSTR = format.format(dataHoraTerminoAgendada);
final String horaFinal = horaAgendamentoFinallSTR.substring(11, 16);
requisicaoDto.setHoraAgendamentoFinal(horaFinal.trim());
}
requisicaoDto.setDataHoraTerminoStr(requisicaoDto.getDataHoraTerminoStr());
final EmpregadoDTO empregadoDto = new EmpregadoDao().restoreByIdEmpregado(requisicaoDto.getIdSolicitante());
if (empregadoDto != null) {
requisicaoDto.setNomeSolicitante(empregadoDto.getNome());
requisicaoDto.setEmailSolicitante(empregadoDto.getEmail());
}
if (requisicaoDto.getIdProprietario() != null) {
UsuarioDTO usuarioDto = new UsuarioDTO();
final UsuarioDao usuarioDao = new UsuarioDao();
usuarioDto.setIdUsuario(requisicaoDto.getIdProprietario());
usuarioDto = (UsuarioDTO) usuarioDao.restore(usuarioDto);
if (usuarioDto != null) {
requisicaoDto.setResponsavelAtual(usuarioDto.getLogin());
}
}
if (requisicaoDto.getIdGrupoAtual() != null) {
final GrupoDao grupoDao = new GrupoDao();
GrupoDTO grupoDto = new GrupoDTO();
grupoDto.setIdGrupo(requisicaoDto.getIdGrupoAtual());
grupoDto = (GrupoDTO) grupoDao.restore(grupoDto);
if (grupoDto != null) {
requisicaoDto.setNomeGrupoAtual(grupoDto.getSigla());
}
}
if (requisicaoDto.getIdGrupoAprovador() != null) {
final GrupoDao grupoDao = new GrupoDao();
GrupoDTO grupoDto = new GrupoDTO();
grupoDto.setIdGrupo(requisicaoDto.getIdGrupoAprovador());
grupoDto = (GrupoDTO) grupoDao.restore(grupoDto);
if (grupoDto != null) {
requisicaoDto.setNomeGrupoAprovador(grupoDto.getSigla());
}
}
if (requisicaoDto.getIdGrupoNivel1() != null) {
final GrupoDao grupoDao = new GrupoDao();
GrupoDTO grupoDto = new GrupoDTO();
grupoDto.setIdGrupo(requisicaoDto.getIdGrupoNivel1());
grupoDto = (GrupoDTO) grupoDao.restore(grupoDto);
if (grupoDto != null) {
requisicaoDto.setNomeGrupoNivel1(grupoDto.getSigla());
}
}
if (requisicaoDto.getIdTipoLiberacao() != null) {
TipoLiberacaoDTO tipoLiberacao = new TipoLiberacaoDTO();
final TipoLiberacaoDAO tipoMudancaDao = new TipoLiberacaoDAO();
tipoLiberacao.setIdTipoLiberacao(requisicaoDto.getIdTipoLiberacao());
tipoLiberacao = (TipoLiberacaoDTO) tipoMudancaDao.restore(tipoLiberacao);
if (tipoLiberacao != null) {
requisicaoDto.setTipo(tipoLiberacao.getNomeTipoLiberacao());
}
}
}
return this.verificaAtraso(requisicaoDto);
}
return null;
}
public RequisicaoLiberacaoDTO verificaAtraso(final RequisicaoLiberacaoDTO requisicaoDto) throws Exception {
if (requisicaoDto == null) {
return null;
}
long atrasoSLA = 0;
if (requisicaoDto.getDataHoraTerminoAgendada() != null) {
final Timestamp dataHoraLimite = requisicaoDto.getDataHoraTerminoAgendada();
Timestamp dataHoraComparacao = UtilDatas.getDataHoraAtual();
if (requisicaoDto.encerrada()) {
if (requisicaoDto.getDataHoraConclusao() != null) {
dataHoraComparacao = requisicaoDto.getDataHoraConclusao();
}
}
if (dataHoraLimite != null) {
if (dataHoraComparacao.compareTo(dataHoraLimite) > 0) {
atrasoSLA = UtilDatas.calculaDiferencaTempoEmMilisegundos(dataHoraComparacao, dataHoraLimite) / 1000;
}
}
}
requisicaoDto.setAtraso(atrasoSLA);
return requisicaoDto;
}
private void determinaPrazo(final RequisicaoLiberacaoDTO requisicaoDto) throws Exception {
if (requisicaoDto.getDataHoraTerminoAgendada() == null) {
throw new LogicException(this.i18nMessage("citcorpore.comum.Data/horaTerminoNaoDefinida"));
}
TipoLiberacaoDTO tipoLiberacaoDto = new TipoLiberacaoDTO();
final TipoLiberacaoDAO tipoLiberacaoDAO = new TipoLiberacaoDAO();
tipoLiberacaoDto.setIdTipoLiberacao(requisicaoDto.getIdTipoLiberacao());
tipoLiberacaoDto = (TipoLiberacaoDTO) tipoLiberacaoDAO.restore(tipoLiberacaoDto);
CalculoJornadaDTO calculoDto = new CalculoJornadaDTO(tipoLiberacaoDto.getIdCalendario(), requisicaoDto.getDataHoraInicioAgendada());
calculoDto = new CalendarioServiceEjb().calculaPrazoDecorrido(calculoDto, requisicaoDto.getDataHoraTerminoAgendada(), null);
requisicaoDto.setPrazoHH(calculoDto.getTempoDecorridoHH());
requisicaoDto.setPrazoMM(calculoDto.getTempoDecorridoMM());
}
private String getStatusAtual(final Integer id) throws ServiceException, Exception {
RequisicaoLiberacaoDTO reqLiberacao = new RequisicaoLiberacaoDTO();
reqLiberacao.setIdRequisicaoLiberacao(id);
reqLiberacao = (RequisicaoLiberacaoDTO) this.getDao().restore(reqLiberacao);
final String res = reqLiberacao.getStatus();
return res;
}
public void gravaInformacoesGED(final RequisicaoLiberacaoDTO requisicaoLiberacaoDTO, final TransactionControler tc, final HistoricoLiberacaoDTO historicoLiberacaoDTO)
throws Exception {
final Collection<UploadDTO> colArquivosUpload = requisicaoLiberacaoDTO.getColArquivosUpload();
new HistoricoGEDDTO();
final HistoricoGEDDao historicoGEDDao = new HistoricoGEDDao();
// Setando a transaction no GED
final ControleGEDDao controleGEDDao = new ControleGEDDao();
if (tc != null) {
controleGEDDao.setTransactionControler(tc);
historicoGEDDao.setTransactionControler(tc);
}
String PRONTUARIO_GED_DIRETORIO = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.GedDiretorio, "");
if (PRONTUARIO_GED_DIRETORIO == null || PRONTUARIO_GED_DIRETORIO.trim().equalsIgnoreCase("")) {
PRONTUARIO_GED_DIRETORIO = "";
}
if (PRONTUARIO_GED_DIRETORIO.equalsIgnoreCase("")) {
PRONTUARIO_GED_DIRETORIO = Constantes.getValue("DIRETORIO_GED");
}
if (PRONTUARIO_GED_DIRETORIO == null || PRONTUARIO_GED_DIRETORIO.equalsIgnoreCase("")) {
PRONTUARIO_GED_DIRETORIO = "/ged";
}
String PRONTUARIO_GED_INTERNO = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.GedInterno, "S");
if (PRONTUARIO_GED_INTERNO == null) {
PRONTUARIO_GED_INTERNO = "S";
}
String prontuarioGedInternoBancoDados = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.GedInternoBD, "N");
if (!UtilStrings.isNotVazio(prontuarioGedInternoBancoDados)) {
prontuarioGedInternoBancoDados = "N";
}
String pasta = "";
if (PRONTUARIO_GED_INTERNO.equalsIgnoreCase("S")) {
pasta = controleGEDDao.getProximaPastaArmazenar();
File fileDir = new File(PRONTUARIO_GED_DIRETORIO);
if (!fileDir.exists()) {
fileDir.mkdirs();
}
fileDir = new File(PRONTUARIO_GED_DIRETORIO + "/" + requisicaoLiberacaoDTO.getIdEmpresa());
if (!fileDir.exists()) {
fileDir.mkdirs();
}
fileDir = new File(PRONTUARIO_GED_DIRETORIO + "/" + requisicaoLiberacaoDTO.getIdEmpresa() + "/" + pasta);
if (!fileDir.exists()) {
fileDir.mkdirs();
}
}
/**
* Grava informa��es do upload principal.
* **/
if (colArquivosUpload != null) {
for (final UploadDTO upDto : colArquivosUpload) {
final UploadDTO uploadDTO = upDto;
ControleGEDDTO controleGEDDTO = new ControleGEDDTO();
Integer idControleGed = uploadDTO.getIdControleGED();
/*
* historicoGEDDTO.setIdRequisicaoMudanca(requisicaoLiberacaoDTO.getIdRequisicaoLiberacao());
* historicoGEDDTO.setIdTabela(ControleGEDDTO.TABELA_REQUISICAOLIBERACAO);
* if(historicoLiberacaoDTO.getIdHistoricoLiberacao() != null){
* historicoGEDDTO.setIdHistoricoMudanca(null); }else{ historicoGEDDTO.setIdHistoricoMudanca(-1); }
* historicoGEDDao.create(historicoGEDDTO);
*/
controleGEDDTO.setIdTabela(ControleGEDDTO.TABELA_REQUISICAOLIBERACAO);
controleGEDDTO.setId(requisicaoLiberacaoDTO.getIdRequisicaoLiberacao());
controleGEDDTO.setDataHora(UtilDatas.getDataAtual());
controleGEDDTO.setDescricaoArquivo(uploadDTO.getDescricao());
controleGEDDTO.setExtensaoArquivo(Util.getFileExtension(uploadDTO.getNameFile()));
controleGEDDTO.setPasta(pasta);
controleGEDDTO.setNomeArquivo(uploadDTO.getNameFile());
upDto.setTemporario("S");
uploadDTO.setTemporario("S");
if (upDto.getTemporario() != null) {
if (!uploadDTO.getTemporario().equalsIgnoreCase("S")) { // Se nao //
continue;
}
} else {
continue;
}
if (PRONTUARIO_GED_INTERNO.trim().equalsIgnoreCase("S") && "S".equalsIgnoreCase(prontuarioGedInternoBancoDados.trim())) { // Se
// utiliza
// GED
// interno e eh BD
controleGEDDTO.setPathArquivo(uploadDTO.getPath()); // Isso vai
// fazer a
// gravacao
// no BD.
// dento do
// create
// abaixo.
} else {
controleGEDDTO.setPathArquivo(null);
}
// esse bloco grava a tabela de historicos de anexos:
boolean existe = false;
if (idControleGed != null) {
final Collection<ControleGEDDTO> colAux = controleGEDDao.listByIdTabelaAndID(ControleGEDDTO.TABELA_REQUISICAOLIBERACAO,
requisicaoLiberacaoDTO.getIdRequisicaoLiberacao());
if (colAux != null && colAux.size() > 0) {
for (final ControleGEDDTO historicoGedDTOAux : colAux) {
if (idControleGed.intValue() == historicoGedDTOAux.getIdControleGED().intValue()) {
idControleGed = historicoGedDTOAux.getIdControleGED();
existe = true;
break;
}
}
}
}
if (!existe) {
controleGEDDTO = (ControleGEDDTO) controleGEDDao.create(controleGEDDTO);
controleGEDDTO.setId(requisicaoLiberacaoDTO.getIdRequisicaoLiberacao());
idControleGed = controleGEDDTO.getIdControleGED();
}
/*
* historicoGEDDTO.setIdControleGed(idControleGed); historicoGEDDao.update(historicoGEDDTO);
*/
// uploadDTO.setIdControleGED(controleGEDDTO.getIdControleGED());
if (PRONTUARIO_GED_INTERNO.equalsIgnoreCase("S") && !"S".equalsIgnoreCase(prontuarioGedInternoBancoDados)) { // Se
// utiliza
// GED
// interno e nao eh BD
if (controleGEDDTO != null) {
try {
final File arquivo = new File(PRONTUARIO_GED_DIRETORIO + "/" + requisicaoLiberacaoDTO.getIdEmpresa() + "/" + pasta + "/"
+ controleGEDDTO.getIdControleGED() + "." + Util.getFileExtension(uploadDTO.getNameFile()));
CriptoUtils.encryptFile(uploadDTO.getPath(), PRONTUARIO_GED_DIRETORIO + "/" + requisicaoLiberacaoDTO.getIdEmpresa() + "/" + pasta + "/"
+ controleGEDDTO.getIdControleGED() + ".ged", System.getProperties().get("user.dir") + Constantes.getValue("CAMINHO_CHAVE_PUBLICA"));
arquivo.delete();
} catch (final Exception e) {
}
}
} /*
* else if (!PRONTUARIO_GED_INTERNO.equalsIgnoreCase("S")) { // Se // utiliza // GED // externo //
* FALTA IMPLEMENTAR!!! }
*/
}
}
final Collection<ControleGEDDTO> colAnexo = controleGEDDao.listByIdTabelaAndIdBaseConhecimento(ControleGEDDTO.TABELA_REQUISICAOLIBERACAO,
requisicaoLiberacaoDTO.getIdRequisicaoLiberacao());
if (colAnexo != null) {
for (final ControleGEDDTO dtoGed : colAnexo) {
boolean b = false;
for (final Object element : colArquivosUpload) {
final UploadDTO uploadDTO = (UploadDTO) element;
if (uploadDTO.getIdControleGED() == null) {
b = true;
break;
}
if (uploadDTO.getIdControleGED().intValue() == dtoGed.getIdControleGED().intValue()) {
b = true;
}
if (b) {
break;
}
}
if (!b) {
controleGEDDao.delete(dtoGed);
}
}
}
}
public void gravaGEDDocLegais(final RequisicaoLiberacaoDTO requisicaoLiberacaoDTO, final TransactionControler tc, final HistoricoLiberacaoDTO historicoLiberacaoDTO)
throws Exception {
final Collection<UploadDTO> colArquivosUpload = requisicaoLiberacaoDTO.getColArquivosUploadDocsLegais();
new HistoricoGEDDTO();
final HistoricoGEDDao historicoGEDDao = new HistoricoGEDDao();
final ControleGEDDao controleGEDDao = new ControleGEDDao();
if (tc != null) {
controleGEDDao.setTransactionControler(tc);
historicoGEDDao.setTransactionControler(tc);
}
String PRONTUARIO_GED_DIRETORIO = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.GedDiretorio, "");
if (PRONTUARIO_GED_DIRETORIO == null || PRONTUARIO_GED_DIRETORIO.trim().equalsIgnoreCase("")) {
PRONTUARIO_GED_DIRETORIO = "";
}
if (PRONTUARIO_GED_DIRETORIO.equalsIgnoreCase("")) {
PRONTUARIO_GED_DIRETORIO = Constantes.getValue("DIRETORIO_GED");
}
if (PRONTUARIO_GED_DIRETORIO == null || PRONTUARIO_GED_DIRETORIO.equalsIgnoreCase("")) {
PRONTUARIO_GED_DIRETORIO = "/ged";
}
String PRONTUARIO_GED_INTERNO = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.GedInterno, "S");
if (PRONTUARIO_GED_INTERNO == null) {
PRONTUARIO_GED_INTERNO = "S";
}
String prontuarioGedInternoBancoDados = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.GedInternoBD, "N");
if (!UtilStrings.isNotVazio(prontuarioGedInternoBancoDados)) {
prontuarioGedInternoBancoDados = "N";
}
String pasta = "";
if (PRONTUARIO_GED_INTERNO.equalsIgnoreCase("S")) {
pasta = controleGEDDao.getProximaPastaArmazenar();
File fileDir = new File(PRONTUARIO_GED_DIRETORIO);
if (!fileDir.exists()) {
fileDir.mkdirs();
}
fileDir = new File(PRONTUARIO_GED_DIRETORIO + "/" + requisicaoLiberacaoDTO.getIdEmpresa());
if (!fileDir.exists()) {
fileDir.mkdirs();
}
fileDir = new File(PRONTUARIO_GED_DIRETORIO + "/" + requisicaoLiberacaoDTO.getIdEmpresa() + "/" + pasta);
if (!fileDir.exists()) {
fileDir.mkdirs();
}
}
/*
* for (Iterator it = colArquivosUpload.iterator(); it.hasNext();) { UploadDTO uploadDTO = (UploadDTO)
* it.next(); ControleGEDDTO controleGEDDTO = new ControleGEDDTO();
* controleGEDDTO.setIdTabela(ControleGEDDTO.TABELA_DOCSLEGAIS_REQUISICAOLIBERACAO);
* controleGEDDTO.setId(requisicaoLiberacaoDTO.getIdRequisicaoLiberacao());
* controleGEDDTO.setDataHora(UtilDatas.getDataAtual());
* controleGEDDTO.setDescricaoArquivo(uploadDTO.getDescricao());
* controleGEDDTO.setExtensaoArquivo(Util.getFileExtension(uploadDTO.getNameFile()));
* controleGEDDTO.setPasta(pasta); controleGEDDTO.setNomeArquivo(uploadDTO.getNameFile()); if
* (!uploadDTO.getTemporario().equalsIgnoreCase("S")) { // Se nao // continue; } if
* (PRONTUARIO_GED_INTERNO.trim().equalsIgnoreCase("S") &&
* "S".equalsIgnoreCase(prontuarioGedInternoBancoDados.trim())) { // Se // utiliza // GED // interno e eh BD
* controleGEDDTO.setPathArquivo(uploadDTO.getPath()); // Isso vai // fazer a // gravacao // no BD. // dento do
* // create // abaixo. } else { controleGEDDTO.setPathArquivo(null); }
*/
if (colArquivosUpload != null) {
for (final UploadDTO upDto : colArquivosUpload) {
final UploadDTO uploadDTO = upDto;
ControleGEDDTO controleGEDDTO = new ControleGEDDTO();
Integer idControleGed = uploadDTO.getIdControleGED();
/*
* historicoGEDDTO.setIdRequisicaoMudanca(requisicaoLiberacaoDTO.getIdRequisicaoLiberacao());
* historicoGEDDTO.setIdTabela(ControleGEDDTO.TABELA_DOCSLEGAIS_REQUISICAOLIBERACAO);
* if(historicoLiberacaoDTO.getIdHistoricoLiberacao() != null){
* historicoGEDDTO.setIdHistoricoMudanca(null); }else{ historicoGEDDTO.setIdHistoricoMudanca(-1); }
* historicoGEDDao.create(historicoGEDDTO);
*/
controleGEDDTO.setIdTabela(ControleGEDDTO.TABELA_DOCSLEGAIS_REQUISICAOLIBERACAO);
controleGEDDTO.setId(requisicaoLiberacaoDTO.getIdRequisicaoLiberacao());
controleGEDDTO.setDataHora(UtilDatas.getDataAtual());
controleGEDDTO.setDescricaoArquivo(uploadDTO.getDescricao());
controleGEDDTO.setExtensaoArquivo(Util.getFileExtension(uploadDTO.getNameFile()));
controleGEDDTO.setPasta(pasta);
controleGEDDTO.setNomeArquivo(uploadDTO.getNameFile());
upDto.setTemporario("S");
uploadDTO.setTemporario("S");
if (upDto.getTemporario() != null) {
if (!uploadDTO.getTemporario().equalsIgnoreCase("S")) { // Se nao //
continue;
}
} else {
continue;
}
if (PRONTUARIO_GED_INTERNO.trim().equalsIgnoreCase("S") && "S".equalsIgnoreCase(prontuarioGedInternoBancoDados.trim())) { // Se
// utiliza
// GED
// interno e eh BD
controleGEDDTO.setPathArquivo(uploadDTO.getPath()); // Isso vai
// fazer a
// gravacao
// no BD.
// dento do
// create
// abaixo.
} else {
controleGEDDTO.setPathArquivo(null);
}
// esse bloco grava a tabela de historicos de anexos:
boolean existe = false;
if (idControleGed != null) {
final Collection<ControleGEDDTO> colAux = controleGEDDao.listByIdTabelaAndID(ControleGEDDTO.TABELA_DOCSLEGAIS_REQUISICAOLIBERACAO,
requisicaoLiberacaoDTO.getIdRequisicaoLiberacao());
if (colAux != null && colAux.size() > 0) {
for (final ControleGEDDTO historicoGedDTOAux : colAux) {
if (idControleGed.intValue() == historicoGedDTOAux.getIdControleGED().intValue()) {
idControleGed = historicoGedDTOAux.getIdControleGED();
existe = true;
break;
}
}
}
}
if (!existe) {
controleGEDDTO = (ControleGEDDTO) controleGEDDao.create(controleGEDDTO);
controleGEDDTO.setId(requisicaoLiberacaoDTO.getIdRequisicaoLiberacao());
idControleGed = controleGEDDTO.getIdControleGED();
}
/*
* historicoGEDDTO.setIdControleGed(idControleGed); historicoGEDDao.update(historicoGEDDTO);
*/
if (PRONTUARIO_GED_INTERNO.equalsIgnoreCase("S") && !"S".equalsIgnoreCase(prontuarioGedInternoBancoDados)) { // Se
// utiliza
// GED
// interno e nao eh BD
if (controleGEDDTO != null) {
try {
new File(PRONTUARIO_GED_DIRETORIO + "/" + requisicaoLiberacaoDTO.getIdEmpresa() + "/" + pasta + "/" + controleGEDDTO.getIdControleGED() + "."
+ Util.getFileExtension(uploadDTO.getNameFile()));
CriptoUtils.encryptFile(uploadDTO.getPath(), PRONTUARIO_GED_DIRETORIO + "/" + requisicaoLiberacaoDTO.getIdEmpresa() + "/" + pasta + "/"
+ controleGEDDTO.getIdControleGED() + ".ged", System.getProperties().get("user.dir") + Constantes.getValue("CAMINHO_CHAVE_PUBLICA"));
// arquivo.delete();
} catch (final Exception e) {
}
}
} /*
* else if (!PRONTUARIO_GED_INTERNO.equalsIgnoreCase("S")) { // Se // utiliza // GED // externo //
* FALTA IMPLEMENTAR!!! }
*/
}
}
final Collection<ControleGEDDTO> colAnexo = controleGEDDao.listByIdTabelaAndIdBaseConhecimento(ControleGEDDTO.TABELA_DOCSLEGAIS_REQUISICAOLIBERACAO,
requisicaoLiberacaoDTO.getIdRequisicaoLiberacao());
if (colAnexo != null) {
for (final ControleGEDDTO dtoGed : colAnexo) {
boolean b = false;
for (final Object element : colArquivosUpload) {
final UploadDTO uploadDTO = (UploadDTO) element;
if (uploadDTO.getIdControleGED() == null) {
b = true;
break;
}
if (uploadDTO.getIdControleGED().intValue() == dtoGed.getIdControleGED().intValue()) {
b = true;
}
if (b) {
break;
}
}
if (!b) {
controleGEDDao.delete(dtoGed);
}
}
}
}
public void gravaGEDDocGerais(final RequisicaoLiberacaoDTO requisicaoLiberacaoDTO, final TransactionControler tc, final HistoricoLiberacaoDTO historicoLiberacaoDTO)
throws Exception {
final Collection<UploadDTO> colArquivosUpload = requisicaoLiberacaoDTO.getColDocsGerais();
new HistoricoGEDDTO();
final HistoricoGEDDao historicoGEDDao = new HistoricoGEDDao();
final ControleGEDDao controleGEDDao = new ControleGEDDao();
if (tc != null) {
controleGEDDao.setTransactionControler(tc);
historicoGEDDao.setTransactionControler(tc);
}
String PRONTUARIO_GED_DIRETORIO = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.GedDiretorio, "");
if (PRONTUARIO_GED_DIRETORIO == null || PRONTUARIO_GED_DIRETORIO.trim().equalsIgnoreCase("")) {
PRONTUARIO_GED_DIRETORIO = "";
}
if (PRONTUARIO_GED_DIRETORIO.equalsIgnoreCase("")) {
PRONTUARIO_GED_DIRETORIO = Constantes.getValue("DIRETORIO_GED");
}
if (PRONTUARIO_GED_DIRETORIO == null || PRONTUARIO_GED_DIRETORIO.equalsIgnoreCase("")) {
PRONTUARIO_GED_DIRETORIO = "/ged";
}
String PRONTUARIO_GED_INTERNO = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.GedInterno, "S");
if (PRONTUARIO_GED_INTERNO == null) {
PRONTUARIO_GED_INTERNO = "S";
}
String prontuarioGedInternoBancoDados = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.GedInternoBD, "N");
if (!UtilStrings.isNotVazio(prontuarioGedInternoBancoDados)) {
prontuarioGedInternoBancoDados = "N";
}
String pasta = "";
if (PRONTUARIO_GED_INTERNO.equalsIgnoreCase("S")) {
pasta = controleGEDDao.getProximaPastaArmazenar();
File fileDir = new File(PRONTUARIO_GED_DIRETORIO);
if (!fileDir.exists()) {
fileDir.mkdirs();
}
fileDir = new File(PRONTUARIO_GED_DIRETORIO + "/" + requisicaoLiberacaoDTO.getIdEmpresa());
if (!fileDir.exists()) {
fileDir.mkdirs();
}
fileDir = new File(PRONTUARIO_GED_DIRETORIO + "/" + requisicaoLiberacaoDTO.getIdEmpresa() + "/" + pasta);
if (!fileDir.exists()) {
fileDir.mkdirs();
}
}
/*
* for (Iterator it = colArquivosUpload.iterator(); it.hasNext();) { UploadDTO uploadDTO = (UploadDTO)
* it.next(); ControleGEDDTO controleGEDDTO = new ControleGEDDTO();
* controleGEDDTO.setIdTabela(ControleGEDDTO.TABELA_DOCSGERAIS_REQUISICAOLIBERACAO);
* controleGEDDTO.setId(requisicaoLiberacaoDTO.getIdRequisicaoLiberacao());
* controleGEDDTO.setDataHora(UtilDatas.getDataAtual());
* controleGEDDTO.setDescricaoArquivo(uploadDTO.getDescricao());
* controleGEDDTO.setExtensaoArquivo(Util.getFileExtension(uploadDTO.getNameFile()));
* controleGEDDTO.setPasta(pasta); controleGEDDTO.setNomeArquivo(uploadDTO.getNameFile()); if
* (!uploadDTO.getTemporario().equalsIgnoreCase("S")) { // Se nao // continue; } if
* (PRONTUARIO_GED_INTERNO.trim().equalsIgnoreCase("S") &&
* "S".equalsIgnoreCase(prontuarioGedInternoBancoDados.trim())) { // Se // utiliza // GED // interno e eh BD
* controleGEDDTO.setPathArquivo(uploadDTO.getPath()); // Isso vai // fazer a // gravacao // no BD. // dento do
* // create // abaixo. } else { controleGEDDTO.setPathArquivo(null); }
*/
if (colArquivosUpload != null) {
for (final UploadDTO upDto : colArquivosUpload) {
final UploadDTO uploadDTO = upDto;
ControleGEDDTO controleGEDDTO = new ControleGEDDTO();
Integer idControleGed = uploadDTO.getIdControleGED();
/*
* historicoGEDDTO.setIdRequisicaoMudanca(requisicaoLiberacaoDTO.getIdRequisicaoLiberacao());
* historicoGEDDTO.setIdTabela(ControleGEDDTO.TABELA_DOCSGERAIS_REQUISICAOLIBERACAO);
* if(historicoLiberacaoDTO.getIdHistoricoLiberacao() != null){
* historicoGEDDTO.setIdHistoricoMudanca(null); }else{ historicoGEDDTO.setIdHistoricoMudanca(-1); }
* historicoGEDDao.create(historicoGEDDTO);
*/
controleGEDDTO.setIdTabela(ControleGEDDTO.TABELA_DOCSGERAIS_REQUISICAOLIBERACAO);
controleGEDDTO.setId(requisicaoLiberacaoDTO.getIdRequisicaoLiberacao());
controleGEDDTO.setDataHora(UtilDatas.getDataAtual());
controleGEDDTO.setDescricaoArquivo(uploadDTO.getDescricao());
controleGEDDTO.setExtensaoArquivo(Util.getFileExtension(uploadDTO.getNameFile()));
controleGEDDTO.setPasta(pasta);
controleGEDDTO.setNomeArquivo(uploadDTO.getNameFile());
upDto.setTemporario("S");
uploadDTO.setTemporario("S");
if (upDto.getTemporario() != null) {
if (!uploadDTO.getTemporario().equalsIgnoreCase("S")) { // Se nao //
continue;
}
} else {
continue;
}
if (PRONTUARIO_GED_INTERNO.trim().equalsIgnoreCase("S") && "S".equalsIgnoreCase(prontuarioGedInternoBancoDados.trim())) { // Se
// utiliza
// GED
// interno e eh BD
controleGEDDTO.setPathArquivo(uploadDTO.getPath()); // Isso vai
// fazer a
// gravacao
// no BD.
// dento do
// create
// abaixo.
} else {
controleGEDDTO.setPathArquivo(null);
}
// esse bloco grava a tabela de historicos de anexos:
boolean existe = false;
if (idControleGed != null) {
final Collection<ControleGEDDTO> colAux = controleGEDDao.listByIdTabelaAndIdLiberacao(ControleGEDDTO.TABELA_DOCSGERAIS_REQUISICAOLIBERACAO,
requisicaoLiberacaoDTO.getIdRequisicaoLiberacao());
if (colAux != null && colAux.size() > 0) {
for (final ControleGEDDTO historicoGedDTOAux : colAux) {
if (idControleGed.intValue() == historicoGedDTOAux.getIdControleGED().intValue()) {
idControleGed = historicoGedDTOAux.getIdControleGED();
existe = true;
break;
}
}
}
}
if (!existe) {
controleGEDDTO = (ControleGEDDTO) controleGEDDao.create(controleGEDDTO);
controleGEDDTO.setId(requisicaoLiberacaoDTO.getIdRequisicaoLiberacao());
idControleGed = controleGEDDTO.getIdControleGED();
}
/*
* historicoGEDDTO.setIdControleGed(idControleGed); historicoGEDDao.update(historicoGEDDTO);
*/
if (PRONTUARIO_GED_INTERNO.equalsIgnoreCase("S") && !"S".equalsIgnoreCase(prontuarioGedInternoBancoDados)) { // Se
// utiliza
// GED
// interno e nao eh BD
if (controleGEDDTO != null) {
try {
new File(PRONTUARIO_GED_DIRETORIO + "/" + requisicaoLiberacaoDTO.getIdEmpresa() + "/" + pasta + "/" + controleGEDDTO.getIdControleGED() + "."
+ Util.getFileExtension(uploadDTO.getNameFile()));
CriptoUtils.encryptFile(uploadDTO.getPath(), PRONTUARIO_GED_DIRETORIO + "/" + requisicaoLiberacaoDTO.getIdEmpresa() + "/" + pasta + "/"
+ controleGEDDTO.getIdControleGED() + ".ged", System.getProperties().get("user.dir") + Constantes.getValue("CAMINHO_CHAVE_PUBLICA"));
// arquivo.delete();
} catch (final Exception e) {
}
}
} /*
* else if (!PRONTUARIO_GED_INTERNO.equalsIgnoreCase("S")) { // Se // utiliza // GED // externo //
* FALTA IMPLEMENTAR!!! }
*/
}
final Collection<ControleGEDDTO> colAnexo = controleGEDDao.listByIdTabelaAndIdBaseConhecimento(ControleGEDDTO.TABELA_DOCSGERAIS_REQUISICAOLIBERACAO,
requisicaoLiberacaoDTO.getIdRequisicaoLiberacao());
if (colAnexo != null) {
for (final ControleGEDDTO dtoGed : colAnexo) {
boolean b = false;
for (final Object element : colArquivosUpload) {
final UploadDTO uploadDTO = (UploadDTO) element;
if (uploadDTO.getIdControleGED() == null) {
b = true;
break;
}
if (uploadDTO.getIdControleGED().intValue() == dtoGed.getIdControleGED().intValue()) {
b = true;
}
if (b) {
break;
}
}
if (!b) {
controleGEDDao.delete(dtoGed);
}
}
}
}
}
public void gravaInformacoesGED(final HistoricoLiberacaoDTO hitoricoDto, final Collection col, final TransactionControler tc, final Integer idtabela) throws Exception {
final Collection<UploadDTO> colArquivosUpload = col;
// Setando a transaction no GED
final ControleGEDDao controleGEDDao = new ControleGEDDao();
if (tc != null) {
controleGEDDao.setTransactionControler(tc);
}
String PRONTUARIO_GED_DIRETORIO = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.GedDiretorio, "");
if (PRONTUARIO_GED_DIRETORIO == null || PRONTUARIO_GED_DIRETORIO.trim().equalsIgnoreCase("")) {
PRONTUARIO_GED_DIRETORIO = "";
}
if (PRONTUARIO_GED_DIRETORIO.equalsIgnoreCase("")) {
PRONTUARIO_GED_DIRETORIO = Constantes.getValue("DIRETORIO_GED");
}
if (PRONTUARIO_GED_DIRETORIO == null || PRONTUARIO_GED_DIRETORIO.equalsIgnoreCase("")) {
PRONTUARIO_GED_DIRETORIO = "/ged";
}
String PRONTUARIO_GED_INTERNO = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.GedInterno, "S");
if (PRONTUARIO_GED_INTERNO == null) {
PRONTUARIO_GED_INTERNO = "S";
}
String prontuarioGedInternoBancoDados = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.GedInternoBD, "N");
if (!UtilStrings.isNotVazio(prontuarioGedInternoBancoDados)) {
prontuarioGedInternoBancoDados = "N";
}
String pasta = "";
if (PRONTUARIO_GED_INTERNO.equalsIgnoreCase("S")) {
pasta = controleGEDDao.getProximaPastaArmazenar();
File fileDir = new File(PRONTUARIO_GED_DIRETORIO);
if (!fileDir.exists()) {
fileDir.mkdirs();
}
fileDir = new File(PRONTUARIO_GED_DIRETORIO + "/" + hitoricoDto.getIdEmpresa());
if (!fileDir.exists()) {
fileDir.mkdirs();
}
fileDir = new File(PRONTUARIO_GED_DIRETORIO + "/" + hitoricoDto.getIdEmpresa() + "/" + pasta);
if (!fileDir.exists()) {
fileDir.mkdirs();
}
}
for (final UploadDTO upDto : colArquivosUpload) {
final UploadDTO uploadDTO = upDto;
ControleGEDDTO controleGEDDTO = new ControleGEDDTO();
controleGEDDTO.setIdTabela(idtabela);
controleGEDDTO.setId(hitoricoDto.getIdHistoricoLiberacao());
controleGEDDTO.setDataHora(UtilDatas.getDataAtual());
controleGEDDTO.setDescricaoArquivo(uploadDTO.getDescricao());
controleGEDDTO.setExtensaoArquivo(Util.getFileExtension(uploadDTO.getNameFile()));
controleGEDDTO.setPasta(pasta);
controleGEDDTO.setNomeArquivo(uploadDTO.getNameFile());
if (PRONTUARIO_GED_INTERNO.trim().equalsIgnoreCase("S") && "S".equalsIgnoreCase(prontuarioGedInternoBancoDados.trim())) { // Se
// utiliza
// GED
// interno e eh BD
controleGEDDTO.setPathArquivo(uploadDTO.getPath()); // Isso vai
// fazer a
// gravacao
// no BD.
// dento do
// create
// abaixo.
} else {
controleGEDDTO.setPathArquivo(null);
}
controleGEDDTO = (ControleGEDDTO) controleGEDDao.create(controleGEDDTO);
if (controleGEDDTO != null) {
uploadDTO.setIdControleGED(controleGEDDTO.getIdControleGED());
}
if (PRONTUARIO_GED_INTERNO.equalsIgnoreCase("S") && !"S".equalsIgnoreCase(prontuarioGedInternoBancoDados)) { // Se
// utiliza
// GED
// interno e nao eh BD
if (controleGEDDTO != null) {
try {
final File arquivo = new File(PRONTUARIO_GED_DIRETORIO + "/" + hitoricoDto.getIdEmpresa() + "/" + pasta + "/" + controleGEDDTO.getIdControleGED() + "."
+ Util.getFileExtension(uploadDTO.getNameFile()));
CriptoUtils.encryptFile(uploadDTO.getPath(),
PRONTUARIO_GED_DIRETORIO + "/" + hitoricoDto.getIdEmpresa() + "/" + pasta + "/" + controleGEDDTO.getIdControleGED() + ".ged", System
.getProperties().get("user.dir") + Constantes.getValue("CAMINHO_CHAVE_PUBLICA"));
arquivo.delete();
} catch (final Exception e) {
}
}
} /*
* else if (!PRONTUARIO_GED_INTERNO.equalsIgnoreCase("S")) { // Se // utiliza // GED // externo // FALTA
* IMPLEMENTAR!!! }
*/
}
final Collection<ControleGEDDTO> colAnexo = controleGEDDao.listByIdTabelaAndIdBaseConhecimento(ControleGEDDTO.TABELA_REQUISICAOLIBERACAO,
hitoricoDto.getIdRequisicaoLiberacao());
if (colAnexo != null) {
for (final ControleGEDDTO dtoGed : colAnexo) {
boolean b = false;
for (final UploadDTO uploadDTO : colArquivosUpload) {
if (uploadDTO.getIdControleGED() == null) {
b = true;
break;
}
if (uploadDTO.getIdControleGED().intValue() == dtoGed.getIdControleGED().intValue()) {
b = true;
}
if (b) {
break;
}
}
if (!b) {
controleGEDDao.delete(dtoGed);
}
}
}
}
@Override
public void suspende(final UsuarioDTO usuarioDto, final RequisicaoLiberacaoDTO requisicaoLiberacaoDTO) throws Exception {
final TransactionControler tc = new TransactionControlerImpl(this.getDao().getAliasDB());
this.suspende(usuarioDto, requisicaoLiberacaoDTO, tc);
tc.commit();
tc.close();
}
public void suspende(final UsuarioDTO usuarioDto, final RequisicaoLiberacaoDTO requisicaoLiberacaoDTO, final TransactionControler tc) throws Exception {
final RequisicaoLiberacaoDTO requisicaoLibercaoAuxiliarDto = this.restoreAll(requisicaoLiberacaoDTO.getIdRequisicaoLiberacao(), tc);
requisicaoLibercaoAuxiliarDto.setIdJustificativa(requisicaoLiberacaoDTO.getIdJustificativa());
requisicaoLibercaoAuxiliarDto.setComplementoJustificativa(requisicaoLiberacaoDTO.getComplementoJustificativa());
new ExecucaoLiberacaoServiceEjb().suspende(usuarioDto, requisicaoLiberacaoDTO, tc);
}
public ContatoRequisicaoLiberacaoDTO criarContatoRequisicaoLiberacao(final RequisicaoLiberacaoDTO requisicaoLiberacaoDto, final TransactionControler tc)
throws ServiceException, LogicException {
final ContatoRequisicaoLiberacaoDao contatoRequisicaoLiberacaoDao = new ContatoRequisicaoLiberacaoDao();
ContatoRequisicaoLiberacaoDTO contatoRequisicaoLiberacaoDto = new ContatoRequisicaoLiberacaoDTO();
// RequisicaoMudancaDao requisicaoMudancaDao = new RequisicaoMudancaDao();
try {
contatoRequisicaoLiberacaoDao.setTransactionControler(tc);
// requisicaoMudancaDao.setTransactionControler(tc);
if (requisicaoLiberacaoDto.getIdContatoRequisicaoLiberacao() != null) {
contatoRequisicaoLiberacaoDto.setIdContatoRequisicaoLiberacao(requisicaoLiberacaoDto.getIdContatoRequisicaoLiberacao());
contatoRequisicaoLiberacaoDto.setNomeContato(requisicaoLiberacaoDto.getNomeContato2());
contatoRequisicaoLiberacaoDto.setTelefoneContato(requisicaoLiberacaoDto.getTelefoneContato());
contatoRequisicaoLiberacaoDto.setRamal(requisicaoLiberacaoDto.getRamal());
if (requisicaoLiberacaoDto.getEmailContato() != null) {
contatoRequisicaoLiberacaoDto.setEmailContato(requisicaoLiberacaoDto.getEmailContato().trim());
}
contatoRequisicaoLiberacaoDto.setObservacao(requisicaoLiberacaoDto.getObservacao());
contatoRequisicaoLiberacaoDto.setIdLocalidade(requisicaoLiberacaoDto.getIdLocalidade());
contatoRequisicaoLiberacaoDto.setIdUnidade(requisicaoLiberacaoDto.getIdUnidade());
contatoRequisicaoLiberacaoDao.update(contatoRequisicaoLiberacaoDto);
} else {
contatoRequisicaoLiberacaoDto.setNomeContato(requisicaoLiberacaoDto.getNomeContato2());
contatoRequisicaoLiberacaoDto.setTelefoneContato(requisicaoLiberacaoDto.getTelefoneContato());
contatoRequisicaoLiberacaoDto.setRamal(requisicaoLiberacaoDto.getRamal());
if (requisicaoLiberacaoDto.getEmailContato() != null) {
contatoRequisicaoLiberacaoDto.setEmailContato(requisicaoLiberacaoDto.getEmailContato().trim());
}
contatoRequisicaoLiberacaoDto.setObservacao(requisicaoLiberacaoDto.getObservacao());
contatoRequisicaoLiberacaoDto.setIdLocalidade(requisicaoLiberacaoDto.getIdLocalidade());
contatoRequisicaoLiberacaoDto.setIdUnidade(requisicaoLiberacaoDto.getIdUnidade());
contatoRequisicaoLiberacaoDto = (ContatoRequisicaoLiberacaoDTO) contatoRequisicaoLiberacaoDao.create(contatoRequisicaoLiberacaoDto);
}
} catch (final Exception e) {
this.rollbackTransaction(tc, e);
throw new ServiceException(e);
}
return contatoRequisicaoLiberacaoDto;
}
/*
* (non-Javadoc)
* @see
* br.com.centralit.citcorpore.negocio.RequisicaoLiberacaoService#updateLiberacaoAprovada(br.com.citframework.dto
* .IDto) Parametro Requisicao Liberacao;
*/
@Override
public void updateLiberacaoAprovada(final IDto obj) throws Exception {
final RequisicaoLiberacaoDTO liberacaoDto = (RequisicaoLiberacaoDTO) obj;
final RequisicaoLiberacaoDao requiDao = this.getDao();
final OcorrenciaLiberacaoDao ocorrenciaLiberacaoDao = new OcorrenciaLiberacaoDao();
final TransactionControler tc = new TransactionControlerImpl(this.getDao().getAliasDB());
final OcorrenciaLiberacaoDTO ocorrenciaLiberacaoDTO = new OcorrenciaLiberacaoDTO();
requiDao.setTransactionControler(tc);
ocorrenciaLiberacaoDao.setTransactionControler(tc);
try {
tc.start();
requiDao.updateNotNull(liberacaoDto);
// Criando ocorrecia para libera��o de uma release
ocorrenciaLiberacaoDTO.setIdRequisicaoLiberacao(liberacaoDto.getIdRequisicaoLiberacao());
ocorrenciaLiberacaoDTO.setDataregistro(UtilDatas.getDataAtual());
ocorrenciaLiberacaoDTO.setHoraregistro(UtilDatas.formatHoraFormatadaStr(UtilDatas.getHoraAtual()));
ocorrenciaLiberacaoDTO.setTempoGasto(0);
ocorrenciaLiberacaoDTO.setDescricao(br.com.centralit.citcorpore.util.Enumerados.CategoriaOcorrencia.Execucao.getDescricao());
ocorrenciaLiberacaoDTO.setDataInicio(UtilDatas.getDataAtual());
ocorrenciaLiberacaoDTO.setDataFim(UtilDatas.getDataAtual());
ocorrenciaLiberacaoDTO.setInformacoesContato("n�o se aplica");
ocorrenciaLiberacaoDTO.setRegistradopor(liberacaoDto.getUsuarioDto().getLogin());
ocorrenciaLiberacaoDTO.setDadosLiberacao(new Gson().toJson(liberacaoDto));
ocorrenciaLiberacaoDTO.setOrigem(br.com.centralit.citcorpore.util.Enumerados.OrigemOcorrencia.OUTROS.getSigla().toString());
ocorrenciaLiberacaoDTO.setCategoria(br.com.centralit.citcorpore.util.Enumerados.CategoriaOcorrencia.Aprovar.getSigla());
ocorrenciaLiberacaoDTO.setOcorrencia(liberacaoDto.getRegistroexecucao());
ocorrenciaLiberacaoDao.create(ocorrenciaLiberacaoDTO);
tc.commit();
} catch (final Exception e) {
tc.rollback();
} finally {
tc.closeQuietly();
}
}
@Override
public Collection<RequisicaoLiberacaoDTO> listaRequisicaoLiberacaoPorCriterios(final PesquisaRequisicaoLiberacaoDTO pesquisaRequisicaoLiberacaoDto) throws Exception {
Collection<RequisicaoLiberacaoDTO> listaRequisicaoLiberacaoPorCriterios = null;
try {
listaRequisicaoLiberacaoPorCriterios = this.getDao().listaRequisicaoLiberacaoPorCriterios(pesquisaRequisicaoLiberacaoDto);
} catch (final Exception e) {
e.printStackTrace();
}
return listaRequisicaoLiberacaoPorCriterios;
}
@Override
public FluxoDTO recuperaFluxo(final RequisicaoLiberacaoDTO requisicaoLiberacaoDto) throws Exception {
if (requisicaoLiberacaoDto == null || requisicaoLiberacaoDto.getIdRequisicaoLiberacao() == null) {
throw new Exception(this.i18nMessage("requisicaoliberacao.validacao.requisicaoliberacao"));
}
FluxoDTO fluxoDto = null;
final Collection<ExecucaoLiberacaoDTO> colExecucao = new ExecucaoLiberacaoDao().listByIdRequisicaoLiberacao(requisicaoLiberacaoDto.getIdRequisicaoLiberacao());
if (colExecucao != null && !colExecucao.isEmpty()) {
fluxoDto = new FluxoDTO();
final ExecucaoLiberacaoDTO execucaoDto = (ExecucaoLiberacaoDTO) ((List) colExecucao).get(0);
fluxoDto.setIdFluxo(execucaoDto.getIdFluxo());
fluxoDto = (FluxoDTO) new FluxoDao().restore(fluxoDto);
}
return fluxoDto;
}
@Override
public void reabre(final UsuarioDTO usuarioDto, final RequisicaoLiberacaoDTO requisicaoLiberacaoDto) throws Exception {
final TransactionControler tc = new TransactionControlerImpl(this.getDao().getAliasDB());
this.reabre(usuarioDto, requisicaoLiberacaoDto, tc);
tc.close();
}
public void reabre(final UsuarioDTO usuarioDto, final RequisicaoLiberacaoDTO requisicaoLiberacaoDto, final TransactionControler tc) throws Exception {
final RequisicaoLiberacaoDTO liberacaoAuxDto = this.restoreAll(requisicaoLiberacaoDto.getIdRequisicaoLiberacao(), tc);
new ExecucaoLiberacaoServiceEjb().reabre(usuarioDto, liberacaoAuxDto, tc);
}
@Override
public String getUrlInformacoesComplementares(final RequisicaoLiberacaoDTO requisicaoLiberacaoDTO) throws Exception {
String url = "";
final TemplateSolicitacaoServicoDTO templateDto = new TemplateSolicitacaoServicoServiceEjb().recuperaTemplateRequisicaoLiberacao(requisicaoLiberacaoDTO);
if (templateDto != null) {
url += templateDto.getUrlRecuperacao();
url += "?";
url = url.replaceAll("\n", "");
url = url.replaceAll("\r", "");
String editar = "S";
if (requisicaoLiberacaoDTO.getIdRequisicaoLiberacao() != null && requisicaoLiberacaoDTO.getIdRequisicaoLiberacao().intValue() > 0) {
url += "idRequisicao=" + requisicaoLiberacaoDTO.getIdRequisicaoLiberacao() + "&";
url += "IdTipoRequisicao=" + Enumerados.TipoRequisicao.LIBERCAO.getId() + "&";
if (requisicaoLiberacaoDTO.getIdTipoAba() != null) {
url += "idTipoAba=" + requisicaoLiberacaoDTO.getIdTipoAba() + "&";
}
if (requisicaoLiberacaoDTO.getIdTarefa() == null) {
editar = "N";
} else {
url += "idTarefa=" + requisicaoLiberacaoDTO.getIdTarefa() + "&";
}
}
url += "&editar=" + editar;
}
return url;
}
@Override
public void atualizaInformacoesQuestionario(final RequisicaoQuestionarioDTO requisicaoQuestionarioDTO) throws Exception {
final ControleQuestionariosDao controleQuestionariosDao = new ControleQuestionariosDao();
final RequisicaoQuestionarioDao requisicaoQuestionarioDao = new RequisicaoQuestionarioDao();
final RespostaItemQuestionarioDao respostaItemDao = new RespostaItemQuestionarioDao();
final RespostaItemQuestionarioServiceBean respostaItemQuestionarioServiceBean = new RespostaItemQuestionarioServiceBean();
final TransactionControler tc = new TransactionControlerImpl(requisicaoQuestionarioDao.getAliasDB());
controleQuestionariosDao.setTransactionControler(tc);
requisicaoQuestionarioDao.setTransactionControler(tc);
respostaItemDao.setTransactionControler(tc);
try {
if (requisicaoQuestionarioDTO.getIdRequisicaoQuestionario() != null && requisicaoQuestionarioDTO.getIdRequisicaoQuestionario().intValue() > 0) {
requisicaoQuestionarioDTO.setDataHoraGrav(UtilDatas.getDataHoraAtual());
requisicaoQuestionarioDao.updateNotNull(requisicaoQuestionarioDTO);
respostaItemDao.deleteByIdIdentificadorResposta(requisicaoQuestionarioDTO.getIdRequisicaoQuestionario());
respostaItemQuestionarioServiceBean.processCollection(tc, requisicaoQuestionarioDTO.getColValores(), requisicaoQuestionarioDTO.getColAnexos(),
requisicaoQuestionarioDTO.getIdRequisicaoQuestionario(), null);
} else {
ControleQuestionariosDTO controleQuestionariosDto = new ControleQuestionariosDTO();
controleQuestionariosDto = (ControleQuestionariosDTO) controleQuestionariosDao.create(controleQuestionariosDto);
if (requisicaoQuestionarioDTO.getDataQuestionario() == null) {
requisicaoQuestionarioDTO.setDataQuestionario(UtilDatas.getDataAtual());
}
requisicaoQuestionarioDTO.setSituacao("E");
requisicaoQuestionarioDTO.setIdRequisicaoQuestionario(controleQuestionariosDto.getIdControleQuestionario());
requisicaoQuestionarioDTO.setDataHoraGrav(UtilDatas.getDataHoraAtual());
requisicaoQuestionarioDTO.setIdTipoRequisicao(Enumerados.TipoRequisicao.LIBERCAO.getId());
final RequisicaoQuestionarioDTO reqQuestionariosDTO = (RequisicaoQuestionarioDTO) requisicaoQuestionarioDao.create(requisicaoQuestionarioDTO);
final Integer idIdentificadorResposta = reqQuestionariosDTO.getIdRequisicaoQuestionario();
respostaItemQuestionarioServiceBean.processCollection(tc, reqQuestionariosDTO.getColValores(), reqQuestionariosDTO.getColAnexos(), idIdentificadorResposta, null);
}
} finally {
tc.close();
}
}
public ComplemInfSolicitacaoServicoService getInformacoesComplementaresService(final String nomeClasse) throws Exception {
final ComplemInfSolicitacaoServicoService informacoesComplementaresService = (ComplemInfSolicitacaoServicoService) Class.forName(nomeClasse).newInstance();
return informacoesComplementaresService;
}
@Override
public List<RequisicaoLiberacaoDTO> findByConhecimento(final BaseConhecimentoDTO baseConhecimentoDto) throws Exception {
try {
return this.getDao().findByConhecimento(baseConhecimentoDto);
} catch (final Exception e) {
e.printStackTrace();
}
return null;
}
@Override
public List<RequisicaoLiberacaoDTO> listLiberacaoByItemConfiugracao(final Integer idItemConfiguracao) throws Exception {
return this.getDao().listLiberacaoByIdItemConfiguracao(idItemConfiguracao);
}
private boolean verificaConfirmacaoQuestionario(final RequisicaoLiberacaoDTO liberacao) throws ServiceException, Exception {
final RequisicaoQuestionarioService questService = (RequisicaoQuestionarioService) ServiceLocator.getInstance().getService(RequisicaoQuestionarioService.class, null);
final Integer tipo = TipoRequisicao.LIBERCAO.getId();
final Collection lista = questService.listNaoConfirmados(liberacao.getIdRequisicaoLiberacao(), tipo);
if (lista != null && lista.size() > 0) {
return false;
} else {
return true;
}
}
@Override
public String getUrlInformacoesQuestionario(final RequisicaoLiberacaoDTO requisicaoLiberacaoDTO) throws Exception {
String url = "";
final TemplateSolicitacaoServicoDao templateDao = new TemplateSolicitacaoServicoDao();
TemplateSolicitacaoServicoDTO templateDto = null;
if (templateDto == null) {
final String idTemplate = ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.TEMPLATE_QUESTIONARIO, "13");
if (idTemplate != null && !idTemplate.equals("")) {
templateDto = new TemplateSolicitacaoServicoDTO();
templateDto.setIdTemplate(new Integer(idTemplate));
templateDto = (TemplateSolicitacaoServicoDTO) templateDao.restore(templateDto);
}
}
if (templateDto != null) {
url += templateDto.getUrlRecuperacao();
url += "?";
url = url.replaceAll("\n", "");
url = url.replaceAll("\r", "");
String editar = "S";
if (requisicaoLiberacaoDTO.getIdRequisicaoLiberacao() != null && requisicaoLiberacaoDTO.getIdRequisicaoLiberacao().intValue() > 0) {
url += "idRequisicao=" + requisicaoLiberacaoDTO.getIdRequisicaoLiberacao() + "&";
url += "IdTipoRequisicao=" + Enumerados.TipoRequisicao.LIBERCAO.getId() + "&";
if (requisicaoLiberacaoDTO.getIdTipoAba() != null) {
url += "idTipoAba=" + requisicaoLiberacaoDTO.getIdTipoAba() + "&";
}
if (requisicaoLiberacaoDTO.getIdTarefa() == null) {
editar = "N";
} else {
url += "idTarefa=" + requisicaoLiberacaoDTO.getIdTarefa() + "&";
}
}
url += "&editar=" + editar;
}
return url;
}
public void deleteAdicionaTabelaMidias(final RequisicaoLiberacaoDTO liberacaoDTO, final TransactionControler tc) throws Exception {
Collection<RequisicaoLiberacaoMidiaDTO> colMidiasBanco = new ArrayList<RequisicaoLiberacaoMidiaDTO>();
final RequisicaoLiberacaoMidiaDao midiaDAO = new RequisicaoLiberacaoMidiaDao();
colMidiasBanco = midiaDAO.findByIdLiberacaoEDataFim(liberacaoDTO.getIdRequisicaoLiberacao());
midiaDAO.setTransactionControler(tc);
boolean grava = false;
boolean exclui = false;
int idMidia1 = 0;
int idMidia2 = 0;
if (colMidiasBanco == null || colMidiasBanco.size() == 0) {
for (final RequisicaoLiberacaoMidiaDTO requisicaoLiberacaoMidiaDTO : liberacaoDTO.getColMidia()) {
requisicaoLiberacaoMidiaDTO.setIdRequisicaoLiberacao(liberacaoDTO.getIdRequisicaoLiberacao());
midiaDAO.create(requisicaoLiberacaoMidiaDTO);
}
} else {
if (liberacaoDTO.getColMidia() != null && liberacaoDTO.getColMidia().size() > 0) {
// compara o que vem da tela com o que est� no banco se o que estiver na tela for diferente do banco
// ent�o ele grava poruqe o item n�o existe no banco.
for (final RequisicaoLiberacaoMidiaDTO requisicaoLiberacaoMidiaDTO : liberacaoDTO.getColMidia()) {
for (final RequisicaoLiberacaoMidiaDTO requisicaoLiberacaoMidiaDTO2 : colMidiasBanco) {
idMidia1 = requisicaoLiberacaoMidiaDTO.getIdMidiaSoftware();
idMidia2 = requisicaoLiberacaoMidiaDTO2.getIdMidiaSoftware();
if (idMidia1 == idMidia2) {
grava = false;
break;
} else {
grava = true;
}
}
if (grava) {
requisicaoLiberacaoMidiaDTO.setIdRequisicaoLiberacao(liberacaoDTO.getIdRequisicaoLiberacao());
midiaDAO.create(requisicaoLiberacaoMidiaDTO);
}
}
// Compara o que vem do banco com o que est� na tela se o que estiver no banco for diferente do que tem
// na tela
// ent�o ele seta a data fim para desabilitar no banco.
if (colMidiasBanco != null && colMidiasBanco.size() > 0) {
for (final RequisicaoLiberacaoMidiaDTO requisicaoLiberacaoMidiaDTO : colMidiasBanco) {
for (final RequisicaoLiberacaoMidiaDTO requisicaoLiberacaoMidiaDTO2 : liberacaoDTO.getColMidia()) {
idMidia1 = requisicaoLiberacaoMidiaDTO.getIdMidiaSoftware();
idMidia2 = requisicaoLiberacaoMidiaDTO2.getIdMidiaSoftware();
if (idMidia1 == idMidia2) {
exclui = false;
break;
} else {
exclui = true;
requisicaoLiberacaoMidiaDTO.setDataFim(UtilDatas.getDataAtual());
}
}
if (exclui) {
midiaDAO.update(requisicaoLiberacaoMidiaDTO);
}
}
}
}
}
}
public void deleteAdicionaTabelaResponsavel(final RequisicaoLiberacaoDTO liberacaoDTO, final TransactionControler tc) throws Exception {
Collection<RequisicaoLiberacaoResponsavelDTO> colResponsavelBanco = new ArrayList<RequisicaoLiberacaoResponsavelDTO>();
final RequisicaoLiberacaoResponsavelDao responsavelDao = new RequisicaoLiberacaoResponsavelDao();
colResponsavelBanco = responsavelDao.findByIdLiberacaoEDataFim(liberacaoDTO.getIdRequisicaoLiberacao());
responsavelDao.setTransactionControler(tc);
boolean grava = false;
boolean exclui = false;
int idResp1 = 0;
int idResp2 = 0;
if (colResponsavelBanco == null || colResponsavelBanco.size() == 0) {
for (final RequisicaoLiberacaoResponsavelDTO requisicaoLiberacaoRespDTO : liberacaoDTO.getColResponsaveis()) {
requisicaoLiberacaoRespDTO.setIdRequisicaoLiberacao(liberacaoDTO.getIdRequisicaoLiberacao());
responsavelDao.create(requisicaoLiberacaoRespDTO);
}
} else {
if (liberacaoDTO.getColResponsaveis() != null && liberacaoDTO.getColResponsaveis().size() > 0) {
// compara o que vem da tela com o que est� no banco se o que estiver na tela for diferente do banco
// ent�o ele grava poruqe o item n�o existe no banco.
for (final RequisicaoLiberacaoResponsavelDTO requisicaoLiberacaoRespDTO : liberacaoDTO.getColResponsaveis()) {
for (final RequisicaoLiberacaoResponsavelDTO requisicaoLiberacaoRespDTO2 : colResponsavelBanco) {
idResp1 = requisicaoLiberacaoRespDTO.getIdResponsavel();
idResp2 = requisicaoLiberacaoRespDTO2.getIdResponsavel();
if (idResp1 == idResp2) {
grava = false;
break;
} else {
grava = true;
}
}
if (grava) {
requisicaoLiberacaoRespDTO.setIdRequisicaoLiberacao(liberacaoDTO.getIdRequisicaoLiberacao());
responsavelDao.create(requisicaoLiberacaoRespDTO);
}
}
// Compara o que vem do banco com o que est� na tela se o que estiver no banco for diferente do que tem
// na tela
// ent�o ele seta a data fim para desabilitar no banco.
if (colResponsavelBanco != null && colResponsavelBanco.size() > 0) {
for (final RequisicaoLiberacaoResponsavelDTO requisicaoLiberacaoRespDTO : colResponsavelBanco) {
for (final RequisicaoLiberacaoResponsavelDTO requisicaoLiberacaoMidiaDTO2 : liberacaoDTO.getColResponsaveis()) {
idResp1 = requisicaoLiberacaoRespDTO.getIdResponsavel();
idResp2 = requisicaoLiberacaoMidiaDTO2.getIdResponsavel();
if (idResp1 == idResp2) {
exclui = false;
break;
} else {
exclui = true;
requisicaoLiberacaoRespDTO.setDataFim(UtilDatas.getDataAtual());
}
}
if (exclui) {
responsavelDao.update(requisicaoLiberacaoRespDTO);
}
}
}
}
}
}
public void deleteAdicionaTabelaCompras(final RequisicaoLiberacaoDTO liberacaoDTO, final TransactionControler tc) throws Exception {
Collection<RequisicaoLiberacaoRequisicaoComprasDTO> colComprasBanco = new ArrayList<RequisicaoLiberacaoRequisicaoComprasDTO>();
final RequisicaoLiberacaoRequisicaoComprasDAO comprasDao = new RequisicaoLiberacaoRequisicaoComprasDAO();
colComprasBanco = comprasDao.findByIdLiberacaoAndDataFim(liberacaoDTO.getIdRequisicaoLiberacao());
comprasDao.setTransactionControler(tc);
boolean grava = false;
boolean exclui = false;
int idCompras1 = 0;
int idCompras2 = 0;
if (colComprasBanco == null || colComprasBanco.size() == 0) {
for (final RequisicaoLiberacaoRequisicaoComprasDTO requisicaoLiberacaoComprasDTO : liberacaoDTO.getColRequisicaoCompras()) {
requisicaoLiberacaoComprasDTO.setIdRequisicaoLiberacao(liberacaoDTO.getIdRequisicaoLiberacao());
comprasDao.create(requisicaoLiberacaoComprasDTO);
}
} else {
if (liberacaoDTO.getColRequisicaoCompras() != null && liberacaoDTO.getColRequisicaoCompras().size() > 0) {
// compara o que vem da tela com o que est� no banco se o que estiver na tela for diferente do banco
// ent�o ele grava poruqe o item n�o existe no banco.
for (final RequisicaoLiberacaoRequisicaoComprasDTO requisicaoLiberacaoComprasDTO : liberacaoDTO.getColRequisicaoCompras()) {
for (final RequisicaoLiberacaoRequisicaoComprasDTO requisicaoLiberacaoComprasDTO2 : colComprasBanco) {
idCompras1 = requisicaoLiberacaoComprasDTO.getIdSolicitacaoServico();
idCompras2 = requisicaoLiberacaoComprasDTO2.getIdSolicitacaoServico();
if (idCompras1 == idCompras2) {
grava = false;
break;
} else {
grava = true;
}
}
if (grava) {
requisicaoLiberacaoComprasDTO.setIdRequisicaoLiberacao(liberacaoDTO.getIdRequisicaoLiberacao());
comprasDao.create(requisicaoLiberacaoComprasDTO);
}
}
// Compara o que vem do banco com o que est� na tela se o que estiver no banco for diferente do que tem
// na tela
// ent�o ele seta a data fim para desabilitar no banco.
if (colComprasBanco != null && colComprasBanco.size() > 0) {
for (final RequisicaoLiberacaoRequisicaoComprasDTO requisicaoLiberacaoComprasDTO : colComprasBanco) {
for (final RequisicaoLiberacaoRequisicaoComprasDTO requisicaoLiberacaoComprasDTO2 : liberacaoDTO.getColRequisicaoCompras()) {
idCompras1 = requisicaoLiberacaoComprasDTO.getIdSolicitacaoServico();
idCompras2 = requisicaoLiberacaoComprasDTO2.getIdSolicitacaoServico();
if (idCompras1 == idCompras2) {
exclui = false;
break;
} else {
exclui = true;
requisicaoLiberacaoComprasDTO.setDataFim(UtilDatas.getDataAtual());
}
}
if (exclui) {
comprasDao.update(requisicaoLiberacaoComprasDTO);
}
}
}
}
}
}
@Override
public void gravaInformacoesGED(final RequisicaoLiberacaoDTO requisicaoLiberacaoDTO, final TransactionControler tc) throws Exception {
}
@Override
public Boolean verificaPermissaoGrupoCancelar(final Integer idTipoLiberacao, final Integer idGrupo) throws ServiceException, Exception {
boolean isOk = false;
final TipoLiberacaoService tipoLiberacaoService = (TipoLiberacaoService) ServiceLocator.getInstance().getService(TipoLiberacaoService.class, null);
TipoLiberacaoDTO tipoLiberacaoDTO = new TipoLiberacaoDTO();
final PermissoesFluxoDao permissoesDao = new PermissoesFluxoDao();
tipoLiberacaoDTO.setIdTipoLiberacao(idTipoLiberacao);
tipoLiberacaoDTO = (TipoLiberacaoDTO) tipoLiberacaoService.restore(tipoLiberacaoDTO);
if (tipoLiberacaoDTO != null) {
final PermissoesFluxoDTO permissoesDto = permissoesDao.permissaoGrupoCancelar(idGrupo, tipoLiberacaoDTO.getIdTipoFluxo());
if (permissoesDto != null && permissoesDto.getCancelar() != null && permissoesDto.getCancelar().equalsIgnoreCase("S")) {
isOk = true;
}
}
return isOk;
}
@Override
public Timestamp MontardataHoraAgendamentoInicial(final RequisicaoLiberacaoDTO requisicaoLiberacaoDto) {
final Timestamp dataHoraInicio = requisicaoLiberacaoDto.getDataHoraInicioAgendada();
final SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm");
String horaAgendamentoInicialSTR = format.format(dataHoraInicio);
horaAgendamentoInicialSTR = horaAgendamentoInicialSTR.substring(0, 11);
final String horaAgendamentoInicial = requisicaoLiberacaoDto.getHoraAgendamentoInicial();
final String dia = horaAgendamentoInicialSTR.substring(0, 2);
final String mes = horaAgendamentoInicialSTR.substring(3, 5);
final String ano = horaAgendamentoInicialSTR.substring(6, 10);
final String dataHoraMontada = ano + "-" + mes + "-" + dia + " " + horaAgendamentoInicial + ":00.0";
final Timestamp dataHoraInicial = Timestamp.valueOf(dataHoraMontada);
return dataHoraInicial;
}
@Override
public Timestamp MontardataHoraAgendamentoFinal(final RequisicaoLiberacaoDTO requisicaoLiberacaoDto) {
final Timestamp dataHoraFim = requisicaoLiberacaoDto.getDataHoraTerminoAgendada();
final SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm");
final String horaAgendamentoFinalSTR = format.format(dataHoraFim);
final String horaAgendamentoFinal = requisicaoLiberacaoDto.getHoraAgendamentoFinal();
final String dia = horaAgendamentoFinalSTR.substring(0, 2);
final String mes = horaAgendamentoFinalSTR.substring(3, 5);
final String ano = horaAgendamentoFinalSTR.substring(6, 10);
final String dataHoraMontada = ano + "-" + mes + "-" + dia + " " + horaAgendamentoFinal + ":00.0";
final Timestamp dataHoraFinal = Timestamp.valueOf(dataHoraMontada);
return dataHoraFinal;
}
@Override
public void calculaTempoAtraso(final RequisicaoLiberacaoDTO requisicaoLiberacaoDto) throws Exception {
requisicaoLiberacaoDto.setPrazoHH(0);
requisicaoLiberacaoDto.setPrazoMM(0);
if (requisicaoLiberacaoDto.getDataHoraInicioAgendada() != null && requisicaoLiberacaoDto.getDataHoraTerminoAgendada() != null) {
final Timestamp dataHoraInicioComparacao = requisicaoLiberacaoDto.getDataHoraInicioAgendada();
final Timestamp dataHoraFinalComparacao = requisicaoLiberacaoDto.getDataHoraTerminoAgendada();
if (dataHoraFinalComparacao.compareTo(dataHoraInicioComparacao) > 0) {
final long atrasoSLA = UtilDatas.calculaDiferencaTempoEmMilisegundos(dataHoraFinalComparacao, dataHoraInicioComparacao) / 1000;
final String hora = Util.getHoraStr(new Double(atrasoSLA) / 3600);
final int tam = hora.length();
requisicaoLiberacaoDto.setPrazoHH(new Integer(hora.substring(0, tam - 2)));
requisicaoLiberacaoDto.setPrazoMM(new Integer(hora.substring(tam - 2, tam)));
}
}
}
@Override
public Boolean seHoraInicialMenorQAtual(final RequisicaoLiberacaoDTO requisicaoLiberacaoDto) {
boolean resultado = false;
final Time horaAtual = UtilDatas.getHoraAtual();
final Date dataAtual = UtilDatas.getDataAtual();
String horaAtualStr = horaAtual.toString();
final String dataAtualStr = dataAtual.toString();
horaAtualStr = horaAtualStr.substring(0, 5);
final Timestamp dataHoraInicio = requisicaoLiberacaoDto.getDataHoraInicioAgendada();
final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
final String dataAgendamentoFinalSTR = format.format(dataHoraInicio);
if (dataAtualStr.equals(dataAgendamentoFinalSTR)) {
String horaAgendamentoInicial = requisicaoLiberacaoDto.getHoraAgendamentoInicial();
horaAgendamentoInicial = horaAgendamentoInicial.replaceAll(":", "");
horaAtualStr = horaAtualStr.replaceAll(":", "");
final int horaAtualInt = Integer.parseInt(horaAtualStr);
final int horaAgendamentoInicialInt = Integer.parseInt(horaAgendamentoInicial);
if (horaAgendamentoInicialInt < horaAtualInt) {
resultado = true;
}
}
return resultado;
}
@Override
public Boolean seHoraFinalMenorQAtual(final RequisicaoLiberacaoDTO requisicaoLiberacaoDto) {
boolean resultado = false;
final Time horaAtual = UtilDatas.getHoraAtual();
final Date dataAtual = UtilDatas.getDataAtual();
String horaAtualStr = horaAtual.toString();
final String dataAtualStr = dataAtual.toString();
horaAtualStr = horaAtualStr.substring(0, 5);
final Timestamp dataHoraFim = requisicaoLiberacaoDto.getDataHoraTerminoAgendada();
final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
final String dataAgendamentoFinalSTR = format.format(dataHoraFim);
if (dataAtualStr.equals(dataAgendamentoFinalSTR)) {
String horaAgendamentoFim = requisicaoLiberacaoDto.getHoraAgendamentoFinal();
horaAgendamentoFim = horaAgendamentoFim.replaceAll(":", "");
horaAtualStr = horaAtualStr.replaceAll(":", "");
final int horaAtualInt = Integer.parseInt(horaAtualStr);
final int horaAgendamentoFimInt = Integer.parseInt(horaAgendamentoFim);
if (horaAgendamentoFimInt < horaAtualInt) {
resultado = true;
}
}
return resultado;
}
@Override
public Boolean seHoraFinalMenorQHoraInicial(final RequisicaoLiberacaoDTO requisicaoLiberacaoDto) {
boolean resultado = false;
final Time horaAtual = UtilDatas.getHoraAtual();
final Date dataAtual = UtilDatas.getDataAtual();
String horaAtualStr = horaAtual.toString();
final String dataAtualStr = dataAtual.toString();
horaAtualStr = horaAtualStr.substring(0, 5);
final Timestamp dataHoraInicio = requisicaoLiberacaoDto.getDataHoraInicioAgendada();
final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
final String dataAgendamentoInicialSTR = format.format(dataHoraInicio);
final Timestamp dataHoraFim = requisicaoLiberacaoDto.getDataHoraTerminoAgendada();
final String dataAgendamentoFinalSTR = format.format(dataHoraFim);
String horaAgendamentoFim = requisicaoLiberacaoDto.getHoraAgendamentoFinal();
String horaAgendamentoInicial = requisicaoLiberacaoDto.getHoraAgendamentoInicial();
horaAgendamentoInicial = horaAgendamentoInicial.replaceAll(":", "");
horaAgendamentoFim = horaAgendamentoFim.replaceAll(":", "");
final int horaInicioInt = Integer.parseInt(horaAgendamentoInicial);
final int horaFimInt = Integer.parseInt(horaAgendamentoFim);
if (dataAtualStr.equals(dataAgendamentoFinalSTR) && dataAtualStr.equals(dataAgendamentoInicialSTR)) {
if (horaInicioInt > horaFimInt) {
resultado = true;
}
}
if (dataAgendamentoInicialSTR.equals(dataAgendamentoFinalSTR)) {
if (horaInicioInt > horaFimInt) {
resultado = true;
}
}
return resultado;
}
public boolean validacaoGrupoExecutor(final RequisicaoLiberacaoDTO requisicaoMudancaDto) throws Exception {
boolean resultado = false;
if (requisicaoMudancaDto != null && requisicaoMudancaDto.getIdGrupoAtual() != null && requisicaoMudancaDto.getIdTipoLiberacao() != null) {
final Integer idGrupoExecutor = requisicaoMudancaDto.getIdGrupoAtual();
final Integer idTipoMudanca = requisicaoMudancaDto.getIdTipoLiberacao();
final PermissoesFluxoService permissoesFluxoService = (PermissoesFluxoService) ServiceLocator.getInstance().getService(PermissoesFluxoService.class, null);
resultado = permissoesFluxoService.permissaoGrupoExecutorLiberacao(idTipoMudanca, idGrupoExecutor);
}
return resultado;
}
public void gravaPlanoDeReversaoGED(final RequisicaoMudancaDTO requisicaomudacaDTO, final TransactionControler tc, final HistoricoMudancaDTO historicoMudancaDTO)
throws Exception {
final Collection<UploadDTO> colArquivosUpload = requisicaomudacaDTO.getColUploadPlanoDeReversaoGED();
final HistoricoGEDDTO historicoGEDDTO = new HistoricoGEDDTO();
final HistoricoGEDDao historicoGEDDao = new HistoricoGEDDao();
// Setando a transaction no GED
final ControleGEDDao controleGEDDao = new ControleGEDDao();
if (tc != null) {
controleGEDDao.setTransactionControler(tc);
historicoGEDDao.setTransactionControler(tc);
}
String PRONTUARIO_GED_DIRETORIO = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.GedDiretorio, "");
if (PRONTUARIO_GED_DIRETORIO == null || PRONTUARIO_GED_DIRETORIO.trim().equalsIgnoreCase("")) {
PRONTUARIO_GED_DIRETORIO = "";
}
if (PRONTUARIO_GED_DIRETORIO.equalsIgnoreCase("")) {
PRONTUARIO_GED_DIRETORIO = Constantes.getValue("DIRETORIO_GED");
}
if (PRONTUARIO_GED_DIRETORIO == null || PRONTUARIO_GED_DIRETORIO.equalsIgnoreCase("")) {
PRONTUARIO_GED_DIRETORIO = "/ged";
}
String PRONTUARIO_GED_INTERNO = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.GedInterno, "S");
if (PRONTUARIO_GED_INTERNO == null) {
PRONTUARIO_GED_INTERNO = "S";
}
String prontuarioGedInternoBancoDados = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.GedInternoBD, "N");
if (!UtilStrings.isNotVazio(prontuarioGedInternoBancoDados)) {
prontuarioGedInternoBancoDados = "N";
}
String pasta = "";
if (PRONTUARIO_GED_INTERNO.equalsIgnoreCase("S")) {
pasta = controleGEDDao.getProximaPastaArmazenar();
File fileDir = new File(PRONTUARIO_GED_DIRETORIO);
if (!fileDir.exists()) {
fileDir.mkdirs();
}
fileDir = new File(PRONTUARIO_GED_DIRETORIO + "/" + requisicaomudacaDTO.getIdEmpresa());
if (!fileDir.exists()) {
fileDir.mkdirs();
}
fileDir = new File(PRONTUARIO_GED_DIRETORIO + "/" + requisicaomudacaDTO.getIdEmpresa() + "/" + pasta);
if (!fileDir.exists()) {
fileDir.mkdirs();
}
}
/**
* Grava informa��es do upload principal.
* **/
if (colArquivosUpload != null) {
for (final UploadDTO upDto : colArquivosUpload) {
final UploadDTO uploadDTO = upDto;
ControleGEDDTO controleGEDDTO = new ControleGEDDTO();
Integer idControleGed = uploadDTO.getIdControleGED();
historicoGEDDTO.setIdRequisicaoMudanca(requisicaomudacaDTO.getIdRequisicaoMudanca());
historicoGEDDTO.setIdTabela(ControleGEDDTO.TABELA_PLANO_REVERSAO_MUDANCA);
if (historicoMudancaDTO.getIdHistoricoMudanca() != null) {
historicoGEDDTO.setIdHistoricoMudanca(null);
} else {
historicoGEDDTO.setIdHistoricoMudanca(-1);
}
historicoGEDDao.create(historicoGEDDTO);
controleGEDDTO.setIdTabela(ControleGEDDTO.TABELA_PLANO_REVERSAO_MUDANCA);
controleGEDDTO.setId(requisicaomudacaDTO.getIdRequisicaoMudanca());
controleGEDDTO.setDataHora(UtilDatas.getDataAtual());
controleGEDDTO.setDescricaoArquivo(uploadDTO.getDescricao());
controleGEDDTO.setExtensaoArquivo(Util.getFileExtension(uploadDTO.getNameFile()));
controleGEDDTO.setPasta(pasta);
controleGEDDTO.setVersao(uploadDTO.getVersao());
controleGEDDTO.setNomeArquivo(uploadDTO.getNameFile());
upDto.setTemporario("S");
uploadDTO.setTemporario("S");
if (upDto.getTemporario() != null) {
if (!uploadDTO.getTemporario().equalsIgnoreCase("S")) { // Se
// nao
// //
continue;
}
} else {
continue;
}
if (PRONTUARIO_GED_INTERNO.trim().equalsIgnoreCase("S") && "S".equalsIgnoreCase(prontuarioGedInternoBancoDados.trim())) { // Se
// utiliza
// GED
// interno e eh BD
controleGEDDTO.setPathArquivo(uploadDTO.getPath()); // Isso
// vai
// fazer a
// gravacao
// no BD.
// dento do
// create
// abaixo.
} else {
controleGEDDTO.setPathArquivo(null);
}
// esse bloco grava a tabela de historicos de anexos:
boolean existe = false;
if (idControleGed != null) {
final Collection<HistoricoGEDDTO> colAux = historicoGEDDao.listByIdTabelaAndIdLiberacaoEDataFim(ControleGEDDTO.TABELA_PLANO_REVERSAO_MUDANCA,
requisicaomudacaDTO.getIdRequisicaoMudanca());
if (colAux != null && colAux.size() > 0) {
for (final HistoricoGEDDTO historicoGedDTOAux : colAux) {
if (idControleGed.intValue() == historicoGedDTOAux.getIdControleGed().intValue()) {
idControleGed = historicoGedDTOAux.getIdControleGed();
existe = true;
break;
}
}
}
}
if (!existe) {
controleGEDDTO = (ControleGEDDTO) controleGEDDao.create(controleGEDDTO);
controleGEDDTO.setId(requisicaomudacaDTO.getIdRequisicaoMudanca());
idControleGed = controleGEDDTO.getIdControleGED();
}
/*
* historicoGEDDTO.setIdControleGed(idControleGed);
* historicoGEDDTO.setDataFim(UtilDatas.getDataAtual()); historicoGEDDao.update(historicoGEDDTO);
*/
// uploadDTO.setIdControleGED(controleGEDDTO.getIdControleGED());
if (PRONTUARIO_GED_INTERNO.equalsIgnoreCase("S") && !"S".equalsIgnoreCase(prontuarioGedInternoBancoDados)) { // Se
// utiliza
// GED
// interno e nao eh BD
if (controleGEDDTO != null) {
try {
final File arquivo = new File(PRONTUARIO_GED_DIRETORIO + "/" + requisicaomudacaDTO.getIdEmpresa() + "/" + pasta + "/"
+ controleGEDDTO.getIdControleGED() + "." + Util.getFileExtension(uploadDTO.getNameFile()));
CriptoUtils.encryptFile(uploadDTO.getPath(),
PRONTUARIO_GED_DIRETORIO + "/" + requisicaomudacaDTO.getIdEmpresa() + "/" + pasta + "/" + controleGEDDTO.getIdControleGED() + ".ged", System
.getProperties().get("user.dir") + Constantes.getValue("CAMINHO_CHAVE_PUBLICA"));
arquivo.delete();
} catch (final Exception e) {
}
}
} /*
* else if (!PRONTUARIO_GED_INTERNO.equalsIgnoreCase("S")) { // Se // utiliza // GED // externo //
* FALTA IMPLEMENTAR!!! }
*/
}
}
/*
* Collection<ControleGEDDTO> colAnexo = controleGEDDao.listByIdTabelaAndIdBaseConhecimento
* (ControleGEDDTO.TABELA_PLANO_REVERSAO_MUDANCA, requisicaomudacaDTO.getIdRequisicaoMudanca()); if (colAnexo !=
* null ) { for (ControleGEDDTO dtoGed : colAnexo) { boolean b = false; for (Iterator it =
* colArquivosUpload.iterator(); it.hasNext();) { UploadDTO uploadDTO = (UploadDTO) it.next();
* if(uploadDTO.getIdControleGED() == null) { b = true; break; } if(uploadDTO.getIdControleGED().intValue() ==
* dtoGed.getIdControleGED().intValue()) { b = true; } if (b) { break; } } if (!b) {
* controleGEDDao.delete(dtoGed); } } }
*/
}
public void criarOcorrenciaLiberacao(final RequisicaoLiberacaoDTO requisicaoLiberacaoDto, final TransactionControler tc) throws Exception {
final OcorrenciaLiberacaoDao ocorrenciaLiberacaoDao = new OcorrenciaLiberacaoDao();
ocorrenciaLiberacaoDao.setTransactionControler(tc);
final OcorrenciaLiberacaoDTO ocorrenciaLiberacaoDto = new OcorrenciaLiberacaoDTO();
ocorrenciaLiberacaoDto.setIdRequisicaoLiberacao(requisicaoLiberacaoDto.getIdRequisicaoLiberacao());
ocorrenciaLiberacaoDto.setDataregistro(UtilDatas.getDataAtual());
ocorrenciaLiberacaoDto.setHoraregistro(UtilDatas.formatHoraFormatadaStr(UtilDatas.getHoraAtual()));
ocorrenciaLiberacaoDto.setTempoGasto(0);
ocorrenciaLiberacaoDto.setDescricao(br.com.centralit.citcorpore.util.Enumerados.CategoriaOcorrencia.Execucao.getDescricao());
ocorrenciaLiberacaoDto.setDataInicio(UtilDatas.getDataAtual());
ocorrenciaLiberacaoDto.setDataFim(UtilDatas.getDataAtual());
ocorrenciaLiberacaoDto.setInformacoesContato("n�o se aplica");
ocorrenciaLiberacaoDto.setRegistradopor(requisicaoLiberacaoDto.getUsuarioDto().getLogin());
ocorrenciaLiberacaoDto.setDadosLiberacao(new Gson().toJson(requisicaoLiberacaoDto));
ocorrenciaLiberacaoDto.setOrigem(br.com.centralit.citcorpore.util.Enumerados.OrigemOcorrencia.OUTROS.getSigla().toString());
ocorrenciaLiberacaoDto.setCategoria(br.com.centralit.citcorpore.util.Enumerados.CategoriaOcorrencia.Criacao.getSigla());
ocorrenciaLiberacaoDao.create(ocorrenciaLiberacaoDto);
}
}