/** * CentralIT - CITSmart */ package br.com.centralit.citcorpore.negocio; import java.io.File; import java.math.BigDecimal; 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 javax.servlet.http.HttpServletRequest; import net.htmlparser.jericho.Source; import br.com.centralit.bpm.dto.PermissoesFluxoDTO; import br.com.centralit.citcorpore.ajaxForms.RequisicaoMudanca; import br.com.centralit.citcorpore.bean.AprovacaoMudancaDTO; import br.com.centralit.citcorpore.bean.AprovacaoPropostaDTO; import br.com.centralit.citcorpore.bean.BaseConhecimentoDTO; import br.com.centralit.citcorpore.bean.CalculoJornadaDTO; import br.com.centralit.citcorpore.bean.ContatoRequisicaoMudancaDTO; import br.com.centralit.citcorpore.bean.EmpregadoDTO; import br.com.centralit.citcorpore.bean.GrupoDTO; import br.com.centralit.citcorpore.bean.GrupoRequisicaoMudancaDTO; import br.com.centralit.citcorpore.bean.HistoricoGEDDTO; import br.com.centralit.citcorpore.bean.HistoricoMudancaDTO; import br.com.centralit.citcorpore.bean.ItemConfiguracaoDTO; import br.com.centralit.citcorpore.bean.JustificativaRequisicaoMudancaDTO; import br.com.centralit.citcorpore.bean.LiberacaoMudancaDTO; import br.com.centralit.citcorpore.bean.LigacaoRequisicaoMudancaHistoricoGrupoDTO; import br.com.centralit.citcorpore.bean.LigacaoRequisicaoMudancaHistoricoItemConfiguracaoDTO; import br.com.centralit.citcorpore.bean.LigacaoRequisicaoMudancaHistoricoProblemaDTO; import br.com.centralit.citcorpore.bean.LigacaoRequisicaoMudancaHistoricoResponsavelDTO; import br.com.centralit.citcorpore.bean.LigacaoRequisicaoMudancaHistoricoRiscosDTO; import br.com.centralit.citcorpore.bean.LigacaoRequisicaoMudancaHistoricoServicoDTO; import br.com.centralit.citcorpore.bean.OcorrenciaMudancaDTO; import br.com.centralit.citcorpore.bean.PesquisaRequisicaoMudancaDTO; import br.com.centralit.citcorpore.bean.ProblemaDTO; import br.com.centralit.citcorpore.bean.ProblemaMudancaDTO; import br.com.centralit.citcorpore.bean.RequisicaoMudancaDTO; import br.com.centralit.citcorpore.bean.RequisicaoMudancaItemConfiguracaoDTO; import br.com.centralit.citcorpore.bean.RequisicaoMudancaResponsavelDTO; import br.com.centralit.citcorpore.bean.RequisicaoMudancaRiscoDTO; import br.com.centralit.citcorpore.bean.RequisicaoMudancaServicoDTO; import br.com.centralit.citcorpore.bean.ReuniaoRequisicaoMudancaDTO; import br.com.centralit.citcorpore.bean.ServicoContratoDTO; import br.com.centralit.citcorpore.bean.SolicitacaoServicoDTO; import br.com.centralit.citcorpore.bean.SolicitacaoServicoMudancaDTO; import br.com.centralit.citcorpore.bean.TemplateSolicitacaoServicoDTO; import br.com.centralit.citcorpore.bean.TipoMudancaDTO; import br.com.centralit.citcorpore.bean.UploadDTO; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.centralit.citcorpore.integracao.AprovacaoMudancaDao; import br.com.centralit.citcorpore.integracao.AprovacaoPropostaDao; import br.com.centralit.citcorpore.integracao.ContatoRequisicaoMudancaDao; import br.com.centralit.citcorpore.integracao.EmpregadoDao; import br.com.centralit.citcorpore.integracao.GrupoDao; import br.com.centralit.citcorpore.integracao.GrupoRequisicaoMudancaDao; import br.com.centralit.citcorpore.integracao.HistoricoGEDDao; import br.com.centralit.citcorpore.integracao.HistoricoMudancaDao; import br.com.centralit.citcorpore.integracao.LiberacaoMudancaDao; import br.com.centralit.citcorpore.integracao.LigacaoRequisicaoLiberacaoRiscosDao; import br.com.centralit.citcorpore.integracao.LigacaoRequisicaoMudancaGrupoDao; import br.com.centralit.citcorpore.integracao.LigacaoRequisicaoMudancaItemConfiguracaoDao; import br.com.centralit.citcorpore.integracao.LigacaoRequisicaoMudancaProblemaDao; import br.com.centralit.citcorpore.integracao.LigacaoRequisicaoMudancaResponsavelDao; import br.com.centralit.citcorpore.integracao.LigacaoRequisicaoMudancaServicoDao; import br.com.centralit.citcorpore.integracao.OcorrenciaMudancaDao; import br.com.centralit.citcorpore.integracao.PermissoesFluxoDao; import br.com.centralit.citcorpore.integracao.ProblemaMudancaDAO; import br.com.centralit.citcorpore.integracao.RequisicaoMudancaDao; import br.com.centralit.citcorpore.integracao.RequisicaoMudancaItemConfiguracaoDao; import br.com.centralit.citcorpore.integracao.RequisicaoMudancaResponsavelDao; import br.com.centralit.citcorpore.integracao.RequisicaoMudancaRiscoDao; import br.com.centralit.citcorpore.integracao.RequisicaoMudancaServicoDao; import br.com.centralit.citcorpore.integracao.ReuniaoRequisicaoMudancaDAO; import br.com.centralit.citcorpore.integracao.SolicitacaoServicoMudancaDao; import br.com.centralit.citcorpore.integracao.TemplateSolicitacaoServicoDao; import br.com.centralit.citcorpore.integracao.TipoMudancaDAO; import br.com.centralit.citcorpore.integracao.UsuarioDao; import br.com.centralit.citcorpore.util.CITCorporeUtil; import br.com.centralit.citcorpore.util.CriptoUtils; import br.com.centralit.citcorpore.util.Enumerados; import br.com.centralit.citcorpore.util.Enumerados.CategoriaOcorrencia; import br.com.centralit.citcorpore.util.Enumerados.OrigemOcorrencia; import br.com.centralit.citcorpore.util.Enumerados.ParametroSistema; import br.com.centralit.citcorpore.util.Enumerados.SituacaoRequisicaoMudanca; 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.citframework.dto.IDto; import br.com.citframework.dto.Usuario; import br.com.citframework.excecao.LogicException; import br.com.citframework.excecao.PersistenceException; import br.com.citframework.excecao.ServiceException; import br.com.citframework.integracao.CrudDAO; 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.UtilI18N; import br.com.citframework.util.UtilStrings; import com.google.gson.Gson; @SuppressWarnings({"rawtypes", "unchecked"}) public class RequisicaoMudancaServiceEjb extends CrudServiceImpl implements RequisicaoMudancaService { private RequisicaoMudancaDao dao; private ItemConfiguracaoService itemConfiguracaoService; @Override public RequisicaoMudancaDao getDao() { if (dao == null) { dao = new RequisicaoMudancaDao(); } return dao; } @Override public void updateNotNull(final IDto obj) throws Exception { this.getDao().updateNotNull(obj); } /* * (non-Javadoc) * @see br.com.citframework.service.CrudServicePojoImpl#create(br.com.citframework.dto.IDto) */ @Override public IDto create(final IDto model) throws ServiceException, LogicException { final ExecucaoMudancaServiceEjb execucaoMudancaService = new ExecucaoMudancaServiceEjb(); final SolicitacaoServicoMudancaDao solicitacaoServicoMudancaDao = new SolicitacaoServicoMudancaDao(); final TipoMudancaDAO tipoMudancaDAO = new TipoMudancaDAO(); final RequisicaoMudancaDao requisicaoMudancaDao = this.getDao(); ContatoRequisicaoMudancaDTO contatoRequisicaoMudancaDto = new ContatoRequisicaoMudancaDTO(); final AprovacaoMudancaDao aprovacaoMudancaDao = new AprovacaoMudancaDao(); final AprovacaoPropostaDao aprovacaoPropostaDao = new AprovacaoPropostaDao(); final RequisicaoMudancaItemConfiguracaoDao requisicaoMudancaItemConfiguracaoDao = new RequisicaoMudancaItemConfiguracaoDao(); final ProblemaMudancaDAO problemaMudancaDao = new ProblemaMudancaDAO(); final RequisicaoMudancaRiscoDao requisicaoMudancaRiscoDao = new RequisicaoMudancaRiscoDao(); final LiberacaoMudancaDao liberacaoMudancaDao = new LiberacaoMudancaDao(); final RequisicaoMudancaServicoDao requisicaoMudancaServicoDao = new RequisicaoMudancaServicoDao(); final RequisicaoMudancaResponsavelDao requisicaoMudancaResponsavelDao = new RequisicaoMudancaResponsavelDao(); final GrupoRequisicaoMudancaDao grupoRequisicaoMudancaDao = new GrupoRequisicaoMudancaDao(); TipoMudancaDTO tipoMudancaDTO = new TipoMudancaDTO(); RequisicaoMudancaDTO requisicaoMudancaDto = (RequisicaoMudancaDTO) model; final TransactionControler tc = new TransactionControlerImpl(requisicaoMudancaDao.getAliasDB()); try { tc.start(); this.validaCreate(model); tipoMudancaDAO.setTransactionControler(tc); requisicaoMudancaDao.setTransactionControler(tc); solicitacaoServicoMudancaDao.setTransactionControler(tc); aprovacaoMudancaDao.setTransactionControler(tc); aprovacaoPropostaDao.setTransactionControler(tc); requisicaoMudancaItemConfiguracaoDao.setTransactionControler(tc); problemaMudancaDao.setTransactionControler(tc); requisicaoMudancaRiscoDao.setTransactionControler(tc); liberacaoMudancaDao.setTransactionControler(tc); requisicaoMudancaServicoDao.setTransactionControler(tc); requisicaoMudancaResponsavelDao.setTransactionControler(tc); grupoRequisicaoMudancaDao.setTransactionControler(tc); if (usuario == null) { usuario = new Usuario(); } if (usuario != null && requisicaoMudancaDto != null) { usuario.setLocale(requisicaoMudancaDto.getUsuarioDto().getLocale()); } if (requisicaoMudancaDto != null && requisicaoMudancaDto.getDataHoraInicioAgendada() != null && requisicaoMudancaDto.getHoraAgendamentoInicial() != null && requisicaoMudancaDto != null && requisicaoMudancaDto.getDataHoraInicioAgendada() != null && requisicaoMudancaDto.getHoraAgendamentoInicial() != null) { final boolean resultado = this.seHoraFinalMenorQHoraInicial(requisicaoMudancaDto); if (resultado == true) { throw new LogicException(this.i18nMessage("requisicaoMudanca.horaFinalMenorQueInicial")); } } if (requisicaoMudancaDto != null && requisicaoMudancaDto.getDataHoraInicioAgendada() != null && requisicaoMudancaDto.getHoraAgendamentoInicial() != null) { final boolean resultado = this.seHoraInicialMenorQAtual(requisicaoMudancaDto); if (resultado == true) { throw new LogicException(this.i18nMessage("requisicaoMudanca.horaInicialMenorQueAtual")); } } if (requisicaoMudancaDto != null && requisicaoMudancaDto.getDataHoraTerminoAgendada() != null && requisicaoMudancaDto.getHoraAgendamentoFinal() != null) { final boolean resultado = this.seHoraFinalMenorQAtual(requisicaoMudancaDto); if (resultado == true) { throw new LogicException(this.i18nMessage("requisicaoMudanca.horaFinalMenorQueAtual")); } } if (requisicaoMudancaDto != null && requisicaoMudancaDto.getDataHoraInicioAgendada() != null && requisicaoMudancaDto.getHoraAgendamentoInicial() != null) { final Timestamp dataHoraInicial = this.MontardataHoraAgendamentoInicial(requisicaoMudancaDto); requisicaoMudancaDto.setDataHoraInicioAgendada(dataHoraInicial); } if (requisicaoMudancaDto != null && requisicaoMudancaDto.getDataHoraTerminoAgendada() != null && requisicaoMudancaDto.getHoraAgendamentoFinal() != null) { final Timestamp dataHoraFinal = this.MontardataHoraAgendamentoFinal(requisicaoMudancaDto); requisicaoMudancaDto.setDataHoraTerminoAgendada(dataHoraFinal); requisicaoMudancaDto.setDataHoraTermino(dataHoraFinal); } final boolean resultado = this.validacaoGrupoExecutor(requisicaoMudancaDto); if (resultado == false) { throw new LogicException(this.i18nMessage("requisicaoMudanca.grupoSemPermissao")); } if (requisicaoMudancaDto.getDataHoraTerminoAgendada() != null && requisicaoMudancaDto.getDataHoraInicioAgendada() != null) { this.calculaTempoAtraso(requisicaoMudancaDto); } else { requisicaoMudancaDto.setPrazoHH(00); requisicaoMudancaDto.setPrazoMM(00); } if (requisicaoMudancaDto.getUsuarioDto() == null) { throw new LogicException(this.i18nMessage("citcorpore.comum.usuarioNaoidentificado")); } if (requisicaoMudancaDto.getIdTipoMudanca() != null) { tipoMudancaDTO.setIdTipoMudanca(requisicaoMudancaDto.getIdTipoMudanca()); tipoMudancaDTO = (TipoMudancaDTO) tipoMudancaDAO.restore(tipoMudancaDTO); } if (tipoMudancaDTO.getIdGrupoExecutor() == null) { throw new LogicException(this.i18nMessage("citcorpore.comum.grupoExecutorNaoDefinido")); } if (tipoMudancaDTO.getIdCalendario() == null) { throw new LogicException(this.i18nMessage("citcorpore.comum.calendarioNaoDefinido")); } if (requisicaoMudancaDto.getEhPropostaAux().equalsIgnoreCase("S")) { requisicaoMudancaDto.setStatus(SituacaoRequisicaoMudanca.Proposta.name()); } else { requisicaoMudancaDto.setStatus(SituacaoRequisicaoMudanca.Registrada.name()); } if (requisicaoMudancaDto.getIdGrupoAtual() == null) { requisicaoMudancaDto.setIdGrupoAtual(tipoMudancaDTO.getIdGrupoExecutor()); } requisicaoMudancaDto.setIdGrupoNivel1(requisicaoMudancaDto.getIdGrupoAtual()); requisicaoMudancaDto.setIdCalendario(tipoMudancaDTO.getIdCalendario()); requisicaoMudancaDto.setTempoDecorridoHH(new Integer(0)); requisicaoMudancaDto.setTempoDecorridoMM(new Integer(0)); requisicaoMudancaDto.setDataHoraSuspensao(null); requisicaoMudancaDto.setDataHoraReativacao(null); requisicaoMudancaDto.setSeqReabertura(new Integer(0)); requisicaoMudancaDto.setDataHoraSolicitacao(new Timestamp(new java.util.Date().getTime())); requisicaoMudancaDto.setIdProprietario(requisicaoMudancaDto.getUsuarioDto().getIdEmpregado()); requisicaoMudancaDto.setDataHoraInicio(new Timestamp(new java.util.Date().getTime())); requisicaoMudancaDto.setDataHoraCaptura(requisicaoMudancaDto.getDataHoraInicio()); contatoRequisicaoMudancaDto = this.criarContatoRequisicaoMudanca(requisicaoMudancaDto, tc); requisicaoMudancaDto.setIdContatoRequisicaoMudanca(contatoRequisicaoMudancaDto.getIdContatoRequisicaoMudanca()); if (contatoRequisicaoMudancaDto.getIdLocalidade() != null) { requisicaoMudancaDto.setIdLocalidade(contatoRequisicaoMudancaDto.getIdLocalidade()); } final String remetente = ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.RemetenteNotificacoesSolicitacao, null); if (remetente == null) { throw new LogicException(this.i18nMessage("citcorpore.comum.notficacaoEmailParametrizado")); } requisicaoMudancaDto = (RequisicaoMudancaDTO) requisicaoMudancaDao.create(requisicaoMudancaDto); this.criarOcorrenciaMudanca(requisicaoMudancaDto, tc); Source source = null; if (requisicaoMudancaDto != null) { source = new Source(requisicaoMudancaDto.getRegistroexecucao()); requisicaoMudancaDto.setRegistroexecucao(source.getTextExtractor().toString()); } if (requisicaoMudancaDto != null && requisicaoMudancaDto.getRegistroexecucao() != null && !requisicaoMudancaDto.getRegistroexecucao().trim().equalsIgnoreCase("")) { final OcorrenciaMudancaDao ocorrenciaMudancaDao = new OcorrenciaMudancaDao(); ocorrenciaMudancaDao.setTransactionControler(tc); final OcorrenciaMudancaDTO ocorrenciaMudancaDto = new OcorrenciaMudancaDTO(); ocorrenciaMudancaDto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); ocorrenciaMudancaDto.setDataregistro(UtilDatas.getDataAtual()); ocorrenciaMudancaDto.setHoraregistro(UtilDatas.formatHoraFormatadaStr(UtilDatas.getHoraAtual())); ocorrenciaMudancaDto.setTempoGasto(0); ocorrenciaMudancaDto.setDescricao(br.com.centralit.citcorpore.util.Enumerados.CategoriaOcorrencia.Execucao.getDescricao()); ocorrenciaMudancaDto.setDataInicio(UtilDatas.getDataAtual()); ocorrenciaMudancaDto.setDataFim(UtilDatas.getDataAtual()); ocorrenciaMudancaDto.setInformacoesContato("n�o se aplica"); ocorrenciaMudancaDto.setRegistradopor(requisicaoMudancaDto.getUsuarioDto().getLogin()); try { ocorrenciaMudancaDto.setDadosMudanca(new Gson().toJson(requisicaoMudancaDto)); } catch (final Exception e) { e.printStackTrace(); } ocorrenciaMudancaDto.setOrigem(br.com.centralit.citcorpore.util.Enumerados.OrigemOcorrencia.OUTROS.getSigla().toString()); ocorrenciaMudancaDto.setCategoria(br.com.centralit.citcorpore.util.Enumerados.CategoriaOcorrencia.Criacao.getSigla()); ocorrenciaMudancaDto.setOcorrencia(requisicaoMudancaDto.getRegistroexecucao()); ocorrenciaMudancaDao.create(ocorrenciaMudancaDto); } if (requisicaoMudancaDto != null) { if (requisicaoMudancaDto.getListIdSolicitacaoServico() != null && requisicaoMudancaDto.getListIdSolicitacaoServico().size() > 0) { for (final SolicitacaoServicoDTO solicitacaoServicoDTO : requisicaoMudancaDto.getListIdSolicitacaoServico()) { final SolicitacaoServicoMudancaDTO solicitacaoServicoMudancaDTO = new SolicitacaoServicoMudancaDTO(); solicitacaoServicoMudancaDTO.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); solicitacaoServicoMudancaDTO.setIdSolicitacaoServico(solicitacaoServicoDTO.getIdSolicitacaoServico()); solicitacaoServicoMudancaDao.create(solicitacaoServicoMudancaDTO); } } if (requisicaoMudancaDto.getListAprovacaoMudancaDTO() != null) { for (final AprovacaoMudancaDTO aprovacaoMudancaDto : requisicaoMudancaDto.getListAprovacaoMudancaDTO()) { aprovacaoMudancaDto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); aprovacaoMudancaDto.setDataHoraInicio(UtilDatas.getDataHoraAtual()); aprovacaoMudancaDao.create(aprovacaoMudancaDto); } } if (requisicaoMudancaDto.getListAprovacaoPropostaDTO() != null) { for (final AprovacaoPropostaDTO aprovacaoPropostaDto : requisicaoMudancaDto.getListAprovacaoPropostaDTO()) { aprovacaoPropostaDto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); aprovacaoPropostaDto.setDataHoraInicio(UtilDatas.getDataHoraAtual()); aprovacaoPropostaDao.create(aprovacaoPropostaDto); } } if (requisicaoMudancaDto.getListRequisicaoMudancaItemConfiguracaoDTO() != null) { for (final RequisicaoMudancaItemConfiguracaoDTO requisicaoMudancaItemConfiguracaoDto : requisicaoMudancaDto.getListRequisicaoMudancaItemConfiguracaoDTO()) { requisicaoMudancaItemConfiguracaoDto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); requisicaoMudancaItemConfiguracaoDao.create(requisicaoMudancaItemConfiguracaoDto); } } if (requisicaoMudancaDto.getListProblemaMudancaDTO() != null) { for (final ProblemaMudancaDTO problemaMudancaDto : requisicaoMudancaDto.getListProblemaMudancaDTO()) { problemaMudancaDto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); problemaMudancaDao.create(problemaMudancaDto); } } if (requisicaoMudancaDto.getListRequisicaoMudancaRiscoDTO() != null) { for (final RequisicaoMudancaRiscoDTO RequisicaoMudancaRiscoDto : requisicaoMudancaDto.getListRequisicaoMudancaRiscoDTO()) { RequisicaoMudancaRiscoDto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); requisicaoMudancaRiscoDao.create(RequisicaoMudancaRiscoDto); } } if (requisicaoMudancaDto.getListGrupoRequisicaoMudancaDTO() != null) { for (final GrupoRequisicaoMudancaDTO grupoRequisicaoMudancaDto : requisicaoMudancaDto.getListGrupoRequisicaoMudancaDTO()) { grupoRequisicaoMudancaDto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); grupoRequisicaoMudancaDao.create(grupoRequisicaoMudancaDto); } } // geber.costa if (requisicaoMudancaDto.getListLiberacaoMudancaDTO() != null) { for (final LiberacaoMudancaDTO liberacaoMudancaDto : requisicaoMudancaDto.getListLiberacaoMudancaDTO()) { liberacaoMudancaDto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); liberacaoMudancaDto.setIdLiberacao(liberacaoMudancaDto.getIdLiberacao()); // O Trim foi utilizado para tratamento, os campos n�o virem com espa�o if (liberacaoMudancaDto.getSituacaoLiberacao() != null) { liberacaoMudancaDto.setSituacaoLiberacao(liberacaoMudancaDto.getSituacaoLiberacao().trim()); } if (liberacaoMudancaDto.getStatus() != null) { liberacaoMudancaDto.setStatus(liberacaoMudancaDto.getStatus().trim()); } liberacaoMudancaDao.create(liberacaoMudancaDto); } } if (requisicaoMudancaDto.getDataHoraInicioAgendada() != null && requisicaoMudancaDto.getDataHoraTerminoAgendada() != null && (requisicaoMudancaDto.getIdGrupoAtvPeriodica() == null || requisicaoMudancaDto.getIdGrupoAtvPeriodica() == 0)) { throw new LogicException(this.i18nMessage("gerenciaservico.agendaratividade.informacoesGrupoAtividade")); } if (requisicaoMudancaDto.getListRequisicaoMudancaServicoDTO() != null) { for (final RequisicaoMudancaServicoDTO requisicaoMudancaServicoDto : requisicaoMudancaDto.getListRequisicaoMudancaServicoDTO()) { requisicaoMudancaServicoDto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); requisicaoMudancaServicoDao.create(requisicaoMudancaServicoDto); } } } // create Responsavel Collection<RequisicaoMudancaResponsavelDTO> colRequisicaoMudancaResp = null; if (requisicaoMudancaDto != null) { colRequisicaoMudancaResp = requisicaoMudancaDto.getColResponsaveis(); } if (colRequisicaoMudancaResp != null) { for (final RequisicaoMudancaResponsavelDTO mudancaResponsavelDTO : colRequisicaoMudancaResp) { mudancaResponsavelDTO.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); requisicaoMudancaResponsavelDao.create(mudancaResponsavelDTO); } } // gravar anexos de mudan�a final HistoricoMudancaDTO historicoMudancaDTO = new HistoricoMudancaDTO(); if (requisicaoMudancaDto != null && requisicaoMudancaDto.getColArquivosUpload() != null /* && liberacaoDto.getColArquivosUpload().size() > 0 */) { this.gravaInformacoesGED(requisicaoMudancaDto, tc, historicoMudancaDTO); } // gravar anexos dos planos de reversao de mudan�a if (requisicaoMudancaDto != null && requisicaoMudancaDto.getColUploadPlanoDeReversaoGED() != null /* && liberacaoDto.getColArquivosUpload().size() > 0 */) { this.gravaPlanoDeReversaoGED(requisicaoMudancaDto, tc, historicoMudancaDTO); } if (requisicaoMudancaDto != null) { execucaoMudancaService.registraMudanca(requisicaoMudancaDto, tc, requisicaoMudancaDto.getUsuarioDto()); } tc.commit(); if (requisicaoMudancaDto != null && requisicaoMudancaDto.getDataHoraInicioAgendada() != null) { RequisicaoMudanca.salvaGrupoAtvPeriodicaEAgenda(requisicaoMudancaDto); } } catch (final Exception e) { this.rollbackTransaction(tc, e); throw new ServiceException(e); } finally { try { tc.close(); } catch (final PersistenceException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return model; } public void criarOcorrenciaMudanca(final RequisicaoMudancaDTO requisicaoMudancaDto, final TransactionControler tc) throws Exception { final OcorrenciaMudancaDao ocorrenciaMudancaDao = new OcorrenciaMudancaDao(); ocorrenciaMudancaDao.setTransactionControler(tc); final OcorrenciaMudancaDTO ocorrenciaMudancaDto = new OcorrenciaMudancaDTO(); ocorrenciaMudancaDto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); ocorrenciaMudancaDto.setDataregistro(UtilDatas.getDataAtual()); ocorrenciaMudancaDto.setHoraregistro(UtilDatas.formatHoraFormatadaStr(UtilDatas.getHoraAtual())); ocorrenciaMudancaDto.setTempoGasto(0); ocorrenciaMudancaDto.setDescricao(br.com.centralit.citcorpore.util.Enumerados.CategoriaOcorrencia.Execucao.getDescricao()); ocorrenciaMudancaDto.setDataInicio(UtilDatas.getDataAtual()); ocorrenciaMudancaDto.setDataFim(UtilDatas.getDataAtual()); ocorrenciaMudancaDto.setInformacoesContato("n�o se aplica"); ocorrenciaMudancaDto.setRegistradopor(requisicaoMudancaDto.getUsuarioDto().getLogin()); try { ocorrenciaMudancaDto.setDadosMudanca(new Gson().toJson(requisicaoMudancaDto)); } catch (final Exception e) { System.out.println("Falha na grava��o de dadosMudanca - Objeto Gson"); e.printStackTrace(); } ocorrenciaMudancaDto.setOrigem(br.com.centralit.citcorpore.util.Enumerados.OrigemOcorrencia.OUTROS.getSigla().toString()); ocorrenciaMudancaDto.setCategoria(br.com.centralit.citcorpore.util.Enumerados.CategoriaOcorrencia.Criacao.getSigla()); ocorrenciaMudancaDao.create(ocorrenciaMudancaDto); } /** * PODE SER UTILIZADO PARA SETAR OS CONTATOS DA REQUISICAO MUDANCA * */ public ContatoRequisicaoMudancaDTO criarContatoRequisicaoMudanca(final RequisicaoMudancaDTO requisicaoMudancaDto, final TransactionControler tc) throws ServiceException, LogicException { final ContatoRequisicaoMudancaDao contatoRequisicaoMudancaDao = new ContatoRequisicaoMudancaDao(); ContatoRequisicaoMudancaDTO contatoRequisicaoMudancaDto = new ContatoRequisicaoMudancaDTO(); final RequisicaoMudancaDao requisicaoMudancaDao = this.getDao(); try { contatoRequisicaoMudancaDao.setTransactionControler(tc); requisicaoMudancaDao.setTransactionControler(tc); if (requisicaoMudancaDto.getIdContatoRequisicaoMudanca() != null) { contatoRequisicaoMudancaDto.setIdContatoRequisicaoMudanca(requisicaoMudancaDto.getIdContatoRequisicaoMudanca()); contatoRequisicaoMudancaDto.setNomecontato(requisicaoMudancaDto.getNomeContato()); contatoRequisicaoMudancaDto.setTelefonecontato(requisicaoMudancaDto.getTelefoneContato()); contatoRequisicaoMudancaDto.setRamal(requisicaoMudancaDto.getRamal()); if (requisicaoMudancaDto.getEmailSolicitante() != null) { contatoRequisicaoMudancaDto.setEmailcontato(requisicaoMudancaDto.getEmailSolicitante().trim()); } contatoRequisicaoMudancaDto.setObservacao(requisicaoMudancaDto.getObservacao()); contatoRequisicaoMudancaDto.setIdLocalidade(requisicaoMudancaDto.getIdLocalidade()); contatoRequisicaoMudancaDao.update(contatoRequisicaoMudancaDto); } else { contatoRequisicaoMudancaDto.setNomecontato(requisicaoMudancaDto.getNomeContato()); contatoRequisicaoMudancaDto.setTelefonecontato(requisicaoMudancaDto.getTelefoneContato()); contatoRequisicaoMudancaDto.setRamal(requisicaoMudancaDto.getRamal()); if (requisicaoMudancaDto.getEmailSolicitante() != null) { contatoRequisicaoMudancaDto.setEmailcontato(requisicaoMudancaDto.getEmailSolicitante().trim()); } contatoRequisicaoMudancaDto.setObservacao(requisicaoMudancaDto.getObservacao()); contatoRequisicaoMudancaDto.setIdLocalidade(requisicaoMudancaDto.getIdLocalidade()); contatoRequisicaoMudancaDto = (ContatoRequisicaoMudancaDTO) contatoRequisicaoMudancaDao.create(contatoRequisicaoMudancaDto); } } catch (final Exception e) { this.rollbackTransaction(tc, e); throw new ServiceException(e); } return contatoRequisicaoMudancaDto; } @SuppressWarnings("unused") private void determinaPrazo(final RequisicaoMudancaDTO 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()); } @SuppressWarnings("unused") private void determinaPrazo(final RequisicaoMudancaDTO requisicaoDto) throws Exception { if (requisicaoDto.getDataHoraTerminoAgendada() == null) { throw new LogicException(this.i18nMessage("citcorpore.comum.Data/horaTerminoNaoDefinida")); } TipoMudancaDTO tipoMudancaDto = new TipoMudancaDTO(); final TipoMudancaDAO tipoMudancaDAO = new TipoMudancaDAO(); tipoMudancaDto.setIdTipoMudanca(requisicaoDto.getIdTipoMudanca()); tipoMudancaDto = (TipoMudancaDTO) tipoMudancaDAO.restore(tipoMudancaDto); CalculoJornadaDTO calculoDto = new CalculoJornadaDTO(tipoMudancaDto.getIdCalendario(), requisicaoDto.getDataHoraInicioAgendada()); calculoDto = new CalendarioServiceEjb().calculaPrazoDecorrido(calculoDto, requisicaoDto.getDataHoraTerminoAgendada(), null); requisicaoDto.setPrazoHH(calculoDto.getTempoDecorridoHH()); requisicaoDto.setPrazoMM(calculoDto.getTempoDecorridoMM()); } /** * Lista os ics relacionados a requisi��o de mudan�a * e atribui o nome do item de configura��o para correta * restaura��o de suas informa��es na table * * @param requisicaoMudancaItemConfiguracaoDTO * @throws ServiceException * @throws Exception */ public ArrayList<RequisicaoMudancaItemConfiguracaoDTO> listItensRelacionadosRequisicaoMudanca(final RequisicaoMudancaDTO requisicaoMudancaDTO) throws ServiceException, Exception { ItemConfiguracaoDTO ic = null; final RequisicaoMudancaItemConfiguracaoDao requisicaoMudancaItemConfiguracaoDao = new RequisicaoMudancaItemConfiguracaoDao(); final ArrayList<RequisicaoMudancaItemConfiguracaoDTO> listaReqMudancaIC = (ArrayList<RequisicaoMudancaItemConfiguracaoDTO>) requisicaoMudancaItemConfiguracaoDao .findByIdMudancaEDataFim(requisicaoMudancaDTO.getIdRequisicaoMudanca()); // getRequisicaoMudancaItemConfiguracaoService().listByIdRequisicaoMudanca(requisicaoMudancaDTO.getIdRequisicaoMudanca()); // atribui nome para os itens retornados if (listaReqMudancaIC != null) { for (final RequisicaoMudancaItemConfiguracaoDTO r : listaReqMudancaIC) { ic = this.getItemConfiguracaoService().restoreByIdItemConfiguracao(r.getIdItemConfiguracao()); if (ic != null) { r.setNomeItemConfiguracao(ic.getIdentificacao()); } } } return listaReqMudancaIC; } private ItemConfiguracaoService getItemConfiguracaoService() throws ServiceException, Exception { if (itemConfiguracaoService == null) { itemConfiguracaoService = (ItemConfiguracaoService) ServiceLocator.getInstance().getService(ItemConfiguracaoService.class, null); } return itemConfiguracaoService; } /* * (non-Javadoc) * @see br.com.citframework.service.CrudServicePojoImpl#update(br.com.citframework.dto.IDto) */ @Override public void update(final IDto model, final HttpServletRequest request) throws ServiceException, LogicException { final RequisicaoMudancaDTO requisicaoMudancaDto = (RequisicaoMudancaDTO) model; final RequisicaoMudancaDao requisicaoMudancaDao = this.getDao(); LigacaoRequisicaoMudancaHistoricoResponsavelDTO ligacaoResponsavelDTO = new LigacaoRequisicaoMudancaHistoricoResponsavelDTO(); final LigacaoRequisicaoMudancaResponsavelDao ligacaoResponsavelDao = new LigacaoRequisicaoMudancaResponsavelDao(); LigacaoRequisicaoMudancaHistoricoItemConfiguracaoDTO ligacaoRequisicaoMudancaHistoricoItemConfiguracaoDTO = new LigacaoRequisicaoMudancaHistoricoItemConfiguracaoDTO(); final LigacaoRequisicaoMudancaItemConfiguracaoDao ligacaoRequisicaoMudancaItemConfiguracaoDao = new LigacaoRequisicaoMudancaItemConfiguracaoDao(); LigacaoRequisicaoMudancaHistoricoServicoDTO ligacaoRequisicaoMudancaHistoricoServicoDTO = new LigacaoRequisicaoMudancaHistoricoServicoDTO(); final LigacaoRequisicaoMudancaServicoDao ligacaoRequisicaoMudancaServicoDao = new LigacaoRequisicaoMudancaServicoDao(); LigacaoRequisicaoMudancaHistoricoProblemaDTO ligacaoRequisicaoMudancaHistoricoProblemaDTO = new LigacaoRequisicaoMudancaHistoricoProblemaDTO(); LigacaoRequisicaoMudancaHistoricoGrupoDTO ligacaoRequisicaoMudancaHistoricoGrupoDTO = new LigacaoRequisicaoMudancaHistoricoGrupoDTO(); final LigacaoRequisicaoMudancaProblemaDao ligacaoRequisicaoMudancaProblemaDao = new LigacaoRequisicaoMudancaProblemaDao(); final LigacaoRequisicaoMudancaGrupoDao ligacaoRequisicaoMudancaGrupoDao = new LigacaoRequisicaoMudancaGrupoDao(); final LigacaoRequisicaoMudancaHistoricoRiscosDTO ligaHistoricoRiscosDTO = new LigacaoRequisicaoMudancaHistoricoRiscosDTO(); final LigacaoRequisicaoLiberacaoRiscosDao ligacaoriscoDao = new LigacaoRequisicaoLiberacaoRiscosDao(); if (usuario == null) { usuario = new Usuario(); } if (usuario != null && requisicaoMudancaDto != null) { usuario.setLocale(requisicaoMudancaDto.getUsuarioDto().getLocale()); } try { requisicaoMudancaDto.setDataHoraInicio(this.getRequisicaoAtual(requisicaoMudancaDto.getIdRequisicaoMudanca()).getDataHoraInicio()); } catch (final Exception e1) { e1.printStackTrace(); } if (requisicaoMudancaDto != null && requisicaoMudancaDto.getDataHoraInicioAgendada() != null && requisicaoMudancaDto.getHoraAgendamentoInicial() != null) { final Timestamp dataHoraInicial = this.MontardataHoraAgendamentoInicial(requisicaoMudancaDto); requisicaoMudancaDto.setDataHoraInicioAgendada(dataHoraInicial); } if (requisicaoMudancaDto != null && requisicaoMudancaDto.getDataHoraTerminoAgendada() != null && requisicaoMudancaDto.getHoraAgendamentoFinal() != null) { final Timestamp dataHoraFinal = this.MontardataHoraAgendamentoFinal(requisicaoMudancaDto); requisicaoMudancaDto.setDataHoraTerminoAgendada(dataHoraFinal); requisicaoMudancaDto.setDataHoraTermino(dataHoraFinal); } ContatoRequisicaoMudancaDTO contatoRequisicaoMudancaDto = new ContatoRequisicaoMudancaDTO(); TipoMudancaDTO tipoMudancaDto = new TipoMudancaDTO(); final SolicitacaoServicoMudancaDao solicitacaoServicoMudancaDao = new SolicitacaoServicoMudancaDao(); final AprovacaoMudancaDao aprovacaoMudancaDao = new AprovacaoMudancaDao(); final AprovacaoPropostaDao aprovacaoPropostaDao = new AprovacaoPropostaDao(); final TipoMudancaDAO tipoMudancaDAO = new TipoMudancaDAO(); final ProblemaMudancaDAO problemaMudancaDao = new ProblemaMudancaDAO(); final GrupoRequisicaoMudancaDao gruporequisicaomudancaDao = new GrupoRequisicaoMudancaDao(); final TransactionControler tc = new TransactionControlerImpl(requisicaoMudancaDao.getAliasDB()); final RequisicaoMudancaServicoDao requisicaoMudancaServicoDao = new RequisicaoMudancaServicoDao(); final RequisicaoMudancaItemConfiguracaoDao requisicaoMudancaItemConfiguracaoDao = new RequisicaoMudancaItemConfiguracaoDao(); final RequisicaoMudancaRiscoDao requisicaoMudancaRiscoDao = new RequisicaoMudancaRiscoDao(); final LiberacaoMudancaDao liberacaoMudancaDao = new LiberacaoMudancaDao(); final RequisicaoMudancaResponsavelDao mudancaResponsavelDao = new RequisicaoMudancaResponsavelDao(); try { tc.start(); solicitacaoServicoMudancaDao.setTransactionControler(tc); requisicaoMudancaServicoDao.setTransactionControler(tc); requisicaoMudancaItemConfiguracaoDao.setTransactionControler(tc); tipoMudancaDAO.setTransactionControler(tc); requisicaoMudancaDao.setTransactionControler(tc); aprovacaoMudancaDao.setTransactionControler(tc); aprovacaoPropostaDao.setTransactionControler(tc); problemaMudancaDao.setTransactionControler(tc); gruporequisicaomudancaDao.setTransactionControler(tc); requisicaoMudancaRiscoDao.setTransactionControler(tc); liberacaoMudancaDao.setTransactionControler(tc); mudancaResponsavelDao.setTransactionControler(tc); ligacaoRequisicaoMudancaProblemaDao.setTransactionControler(tc); ligacaoRequisicaoMudancaGrupoDao.setTransactionControler(tc); ligacaoriscoDao.setTransactionControler(tc); if (requisicaoMudancaDto != null) { if (requisicaoMudancaDto.getIdTipoMudanca() != null) { tipoMudancaDto.setIdTipoMudanca(requisicaoMudancaDto.getIdTipoMudanca()); tipoMudancaDto = (TipoMudancaDTO) tipoMudancaDAO.restore(tipoMudancaDto); } if (requisicaoMudancaDto.getListAprovacaoPropostaDTO() != null && requisicaoMudancaDto.getFase().equalsIgnoreCase("Proposta")) { for (final AprovacaoPropostaDTO aprovacaoPropostaDto : requisicaoMudancaDto.getListAprovacaoPropostaDTO()) { aprovacaoPropostaDao.deleteLinha(requisicaoMudancaDto.getIdRequisicaoMudanca(), aprovacaoPropostaDto.getIdEmpregado()); aprovacaoPropostaDto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); aprovacaoPropostaDto.setDataHoraInicio(UtilDatas.getDataHoraAtual()); aprovacaoPropostaDao.create(aprovacaoPropostaDto); } } if (requisicaoMudancaDto.getAcaoFluxo().equalsIgnoreCase("E") && requisicaoMudancaDto.getFase().equalsIgnoreCase("Proposta")) { if (!requisicaoMudancaDto.getStatus().equalsIgnoreCase(SituacaoRequisicaoMudanca.Cancelada.name())) { if (!this.validacaoAvancaFluxoProposta(requisicaoMudancaDto, tc)) { throw new LogicException(this.i18nMessage("requisicaoMudanca.essaPropostaNaoFoiAprovada")); } } } if (requisicaoMudancaDto.getDataHoraTerminoAgendada() != null && requisicaoMudancaDto.getDataHoraInicioAgendada() != null) { this.calculaTempoAtraso(requisicaoMudancaDto); } else { requisicaoMudancaDto.setPrazoHH(00); requisicaoMudancaDto.setPrazoMM(00); } if (requisicaoMudancaDto.getStatus() != null && !requisicaoMudancaDto.getStatus().equalsIgnoreCase(SituacaoRequisicaoMudanca.Cancelada.name()) && !requisicaoMudancaDto.getStatus().equalsIgnoreCase(SituacaoRequisicaoMudanca.Rejeitada.name())) { if (requisicaoMudancaDto.getAlterarSituacao().equalsIgnoreCase("N")) { requisicaoMudancaDto.setStatus(this.getStatusAtual(requisicaoMudancaDto.getIdRequisicaoMudanca())); } } } // Gravando o historico HistoricoMudancaDTO historicoMudancaDTO = new HistoricoMudancaDTO(); final HistoricoMudancaDao historicoMudancaDao = new HistoricoMudancaDao(); historicoMudancaDao.setTransactionControler(tc); if (requisicaoMudancaDto != null && requisicaoMudancaDto.getIdRequisicaoMudanca() != null) { historicoMudancaDTO = (HistoricoMudancaDTO) historicoMudancaDao.create(this.createHistoricoMudanca(requisicaoMudancaDto)); final ControleGEDDao controleGEDDao = new ControleGEDDao(); controleGEDDao.setTransactionControler(tc); historicoMudancaDTO.setColResponsaveis(this.listarColResponsaveis(historicoMudancaDTO)); if (historicoMudancaDTO.getColResponsaveis() != null) { for (final RequisicaoMudancaResponsavelDTO requisicaoMudancaRespDTO : historicoMudancaDTO.getColResponsaveis()) { ligacaoResponsavelDTO.setIdRequisicaoMudanca(requisicaoMudancaRespDTO.getIdRequisicaoMudanca()); ligacaoResponsavelDTO.setIdRequisicaoMudancaResp(requisicaoMudancaRespDTO.getIdRequisicaoMudancaResp()); ligacaoResponsavelDTO.setIdHistoricoMudanca(historicoMudancaDTO.getIdHistoricoMudanca()); ligacaoResponsavelDao.create(ligacaoResponsavelDTO); ligacaoResponsavelDTO = new LigacaoRequisicaoMudancaHistoricoResponsavelDTO(); } } historicoMudancaDTO.setListRequisicaoMudancaItemConfiguracaoDTO(this.listarColItemConfiguracao(historicoMudancaDTO)); if (historicoMudancaDTO.getListRequisicaoMudancaItemConfiguracaoDTO() != null) { for (final RequisicaoMudancaItemConfiguracaoDTO requisicaoMudancaItemConfiguracaoDTO : historicoMudancaDTO.getListRequisicaoMudancaItemConfiguracaoDTO()) { ligacaoRequisicaoMudancaHistoricoItemConfiguracaoDTO.setIdRequisicaoMudanca(requisicaoMudancaItemConfiguracaoDTO.getIdRequisicaoMudanca()); ligacaoRequisicaoMudancaHistoricoItemConfiguracaoDTO.setIdrequisicaomudancaitemconfiguracao(requisicaoMudancaItemConfiguracaoDTO .getIdRequisicaoMudancaItemConfiguracao()); ligacaoRequisicaoMudancaHistoricoItemConfiguracaoDTO.setIdHistoricoMudanca(historicoMudancaDTO.getIdHistoricoMudanca()); ligacaoRequisicaoMudancaItemConfiguracaoDao.create(ligacaoRequisicaoMudancaHistoricoItemConfiguracaoDTO); ligacaoRequisicaoMudancaHistoricoItemConfiguracaoDTO = new LigacaoRequisicaoMudancaHistoricoItemConfiguracaoDTO(); } } historicoMudancaDTO.setListRequisicaoMudancaServicoDTO(this.listarServico(historicoMudancaDTO)); if (historicoMudancaDTO.getListRequisicaoMudancaServicoDTO() != null) { for (final RequisicaoMudancaServicoDTO requisicaoMudancaServicoDTO : historicoMudancaDTO.getListRequisicaoMudancaServicoDTO()) { ligacaoRequisicaoMudancaHistoricoServicoDTO.setIdRequisicaoMudanca(requisicaoMudancaServicoDTO.getIdRequisicaoMudanca()); ligacaoRequisicaoMudancaHistoricoServicoDTO.setIdrequisicaomudancaservico(requisicaoMudancaServicoDTO.getIdRequisicaoMudancaServico()); ligacaoRequisicaoMudancaHistoricoServicoDTO.setIdHistoricoMudanca(historicoMudancaDTO.getIdHistoricoMudanca()); ligacaoRequisicaoMudancaServicoDao.create(ligacaoRequisicaoMudancaHistoricoServicoDTO); ligacaoRequisicaoMudancaHistoricoServicoDTO = new LigacaoRequisicaoMudancaHistoricoServicoDTO(); } } historicoMudancaDTO.setListProblemaMudancaDTO(this.listarProblema(historicoMudancaDTO)); if (historicoMudancaDTO.getListProblemaMudancaDTO() != null) { for (final ProblemaMudancaDTO problemaMudancaDTO : historicoMudancaDTO.getListProblemaMudancaDTO()) { ligacaoRequisicaoMudancaHistoricoProblemaDTO.setIdRequisicaoMudanca(problemaMudancaDTO.getIdRequisicaoMudanca()); ligacaoRequisicaoMudancaHistoricoProblemaDTO.setIdProblemaMudanca(problemaMudancaDTO.getIdProblemaMudanca()); ligacaoRequisicaoMudancaHistoricoProblemaDTO.setIdHistoricoMudanca(historicoMudancaDTO.getIdHistoricoMudanca()); ligacaoRequisicaoMudancaProblemaDao.create(ligacaoRequisicaoMudancaHistoricoProblemaDTO); ligacaoRequisicaoMudancaHistoricoProblemaDTO = new LigacaoRequisicaoMudancaHistoricoProblemaDTO(); } } historicoMudancaDTO.setListGrupoRequisicaoMudancaDTO(this.listarGrupo(historicoMudancaDTO)); if (historicoMudancaDTO.getListGrupoRequisicaoMudancaDTO() != null) { for (final GrupoRequisicaoMudancaDTO gruporequisicaomudancaDTO : historicoMudancaDTO.getListGrupoRequisicaoMudancaDTO()) { ligacaoRequisicaoMudancaHistoricoGrupoDTO.setIdRequisicaoMudanca(gruporequisicaomudancaDTO.getIdRequisicaoMudanca()); ligacaoRequisicaoMudancaHistoricoGrupoDTO.setIdGrupoRequisicaoMudanca(gruporequisicaomudancaDTO.getIdGrupoRequisicaoMudanca()); ligacaoRequisicaoMudancaHistoricoGrupoDTO.setIdHistoricoMudanca(historicoMudancaDTO.getIdHistoricoMudanca()); ligacaoRequisicaoMudancaGrupoDao.create(ligacaoRequisicaoMudancaHistoricoGrupoDTO); ligacaoRequisicaoMudancaHistoricoGrupoDTO = new LigacaoRequisicaoMudancaHistoricoGrupoDTO(); } } historicoMudancaDTO.setListRequisicaoMudancaRiscoDTO(this.listarRiscos(historicoMudancaDTO)); if (historicoMudancaDTO.getListRequisicaoMudancaRiscoDTO() != null) { for (final RequisicaoMudancaRiscoDTO riscoMudancaDTO : historicoMudancaDTO.getListRequisicaoMudancaRiscoDTO()) { ligaHistoricoRiscosDTO.setIdRequisicaoMudanca(historicoMudancaDTO.getIdRequisicaoMudanca()); ligaHistoricoRiscosDTO.setIdRequisicaoMudancaRisco(riscoMudancaDTO.getIdRequisicaoMudancaRisco()); ligaHistoricoRiscosDTO.setIdHistoricoMudanca(historicoMudancaDTO.getIdHistoricoMudanca()); ligacaoriscoDao.create(ligaHistoricoRiscosDTO); ligacaoRequisicaoMudancaHistoricoProblemaDTO = new LigacaoRequisicaoMudancaHistoricoProblemaDTO(); } } historicoMudancaDTO.setListLiberacaoMudancaDTO(this.listarLiberacoes(historicoMudancaDTO)); if (historicoMudancaDTO.getListLiberacaoMudancaDTO() != null && historicoMudancaDTO.getListLiberacaoMudancaDTO().size() > 0) { this.gravarLiberacaoHistorico(historicoMudancaDTO, tc); } // gravando historico mudancaSolicitacaoServico List<RequisicaoMudancaDTO> listSolicitacaoServicosMudanca = new ArrayList<RequisicaoMudancaDTO>(); listSolicitacaoServicosMudanca = this.listarSolicitacaoServico(historicoMudancaDTO); if (listSolicitacaoServicosMudanca != null) { this.gravarSolicitacaoServicoHistoricos(historicoMudancaDTO, listSolicitacaoServicosMudanca, tc); } // gravando o historico de aprova��o de mudan�a. historicoMudancaDTO.setListAprovacaoMudancaDTO(this.listarAprovacoes(historicoMudancaDTO)); if (historicoMudancaDTO.getListAprovacaoMudancaDTO() != null) { for (final AprovacaoMudancaDTO aprovacaoMudancaDTO : historicoMudancaDTO.getListAprovacaoMudancaDTO()) { aprovacaoMudancaDTO.setIdHistoricoMudanca(historicoMudancaDTO.getIdHistoricoMudanca()); aprovacaoMudancaDao.create(aprovacaoMudancaDTO); } } } contatoRequisicaoMudancaDto = this.criarContatoRequisicaoMudanca(requisicaoMudancaDto, tc); if (contatoRequisicaoMudancaDto != null) { requisicaoMudancaDto.setIdContatoRequisicaoMudanca(contatoRequisicaoMudancaDto.getIdContatoRequisicaoMudanca()); } if (requisicaoMudancaDto != null) { if (requisicaoMudancaDto.getIdGrupoAtual() == null) { requisicaoMudancaDto.setIdGrupoAtual(tipoMudancaDto.getIdGrupoExecutor()); } if (requisicaoMudancaDto.getAcaoFluxo().equalsIgnoreCase("E")) { if (requisicaoMudancaDto.getStatus().equalsIgnoreCase(SituacaoRequisicaoMudanca.Executada.name())) { if (requisicaoMudancaDto.getFechamento() == null || requisicaoMudancaDto.getFechamento().equalsIgnoreCase("")) { throw new LogicException(this.i18nMessage("citcorpore.comum.informeFechamento")); } } } if (requisicaoMudancaDto.getStatus() != null && requisicaoMudancaDto.getStatus().equalsIgnoreCase(SituacaoRequisicaoMudanca.Cancelada.name())) { if (requisicaoMudancaDto.getFechamento() == null || requisicaoMudancaDto.getFechamento().equalsIgnoreCase("")) { throw new LogicException(this.i18nMessage("citcorpore.comum.informeFechamento")); } } solicitacaoServicoMudancaDao.deleteByIdMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); } if (requisicaoMudancaDto != null) { if (requisicaoMudancaDto.getListIdSolicitacaoServico() != null && requisicaoMudancaDto.getListIdSolicitacaoServico().size() > 0) { for (final SolicitacaoServicoDTO solicitacaoServicoDTO : requisicaoMudancaDto.getListIdSolicitacaoServico()) { final SolicitacaoServicoMudancaDTO solicitacaoServicoMudancaDTO = new SolicitacaoServicoMudancaDTO(); solicitacaoServicoMudancaDTO.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); solicitacaoServicoMudancaDTO.setIdSolicitacaoServico(solicitacaoServicoDTO.getIdSolicitacaoServico()); solicitacaoServicoMudancaDao.create(solicitacaoServicoMudancaDTO); } } } // adiciona e deleta logicamente os itens da grid de problemas if (requisicaoMudancaDto != null) { if (requisicaoMudancaDto.getListProblemaMudancaDTO() != null && requisicaoMudancaDto.getListProblemaMudancaDTO().size() > 0) { this.deleteAdicionaTabelaProblema(requisicaoMudancaDto, tc); } else { final ProblemaMudancaDAO problemadaoDao = new ProblemaMudancaDAO(); final Collection<ProblemaMudancaDTO> ListProblemaMudancaaDTO = problemadaoDao.findByIdMudancaEDataFim(requisicaoMudancaDto.getIdRequisicaoMudanca()); if (ListProblemaMudancaaDTO != null && ListProblemaMudancaaDTO.size() > 0) { for (final ProblemaMudancaDTO problemaMudancaDTO : ListProblemaMudancaaDTO) { problemaMudancaDTO.setDataFim(UtilDatas.getDataAtual()); problemaMudancaDao.update(problemaMudancaDTO); } } } if (requisicaoMudancaDto.getListGrupoRequisicaoMudancaDTO() != null && requisicaoMudancaDto.getListGrupoRequisicaoMudancaDTO().size() > 0) { this.deleteAdicionaTabelaGrupo(requisicaoMudancaDto, tc); } else { final GrupoRequisicaoMudancaDao gruporequisicaomudancaDao1 = new GrupoRequisicaoMudancaDao(); final Collection<GrupoRequisicaoMudancaDTO> ListGrupoRequisicaoMudanca = gruporequisicaomudancaDao1.findByIdMudancaEDataFim(requisicaoMudancaDto .getIdRequisicaoMudanca()); if (ListGrupoRequisicaoMudanca != null && ListGrupoRequisicaoMudanca.size() > 0) { for (final GrupoRequisicaoMudancaDTO gruporequisicaomudancaDTO : ListGrupoRequisicaoMudanca) { gruporequisicaomudancaDTO.setDataFim(UtilDatas.getDataAtual()); gruporequisicaomudancaDao1.update(gruporequisicaomudancaDTO); } } } if (requisicaoMudancaDto.getListRequisicaoMudancaRiscoDTO() != null && requisicaoMudancaDto.getListRequisicaoMudancaRiscoDTO().size() > 0) { this.deleteAdicionaTabelaRiscos(requisicaoMudancaDto, tc); } else { final RequisicaoMudancaRiscoDao riscosDao = new RequisicaoMudancaRiscoDao(); final Collection<RequisicaoMudancaRiscoDTO> ListRiscosMudancaaDTO = riscosDao.findByIdRequisicaoMudancaEDataFim(requisicaoMudancaDto.getIdRequisicaoMudanca()); if (ListRiscosMudancaaDTO != null && ListRiscosMudancaaDTO.size() > 0) { for (final RequisicaoMudancaRiscoDTO riscosMudancaDTO : ListRiscosMudancaaDTO) { riscosMudancaDTO.setDataFim(UtilDatas.getDataAtual()); riscosMudancaDTO.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); riscosDao.update(riscosMudancaDTO); } } } // geber.costa liberacaoMudancaDao.deleteByIdMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); if (requisicaoMudancaDto.getListLiberacaoMudancaDTO() != null) { for (final LiberacaoMudancaDTO dto : requisicaoMudancaDto.getListLiberacaoMudancaDTO()) { dto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); liberacaoMudancaDao.create(dto); } } } List<RequisicaoMudancaServicoDTO> servicosBanco = null; RequisicaoMudancaServicoDTO aux = null; if (requisicaoMudancaDto != null && requisicaoMudancaDto.getListRequisicaoMudancaServicoDTO() != null) { // se n�o existir no banco, cria, caso contr�rio, atualiza for (final RequisicaoMudancaServicoDTO requisicaoMudancaServicoDTO : requisicaoMudancaDto.getListRequisicaoMudancaServicoDTO()) { requisicaoMudancaServicoDTO.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); aux = requisicaoMudancaServicoDao.restoreByChaveComposta(requisicaoMudancaServicoDTO); if (aux == null) { requisicaoMudancaServicoDao.create(requisicaoMudancaServicoDTO); } else { requisicaoMudancaServicoDao.update(aux); } } } // confere se existe algo no banco que n�o est� na lista salva, e deleta if (requisicaoMudancaDto != null) { servicosBanco = requisicaoMudancaServicoDao.listByIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); } if (servicosBanco != null) { for (final RequisicaoMudancaServicoDTO i : servicosBanco) { if (!this.requisicaoMudancaServicoExisteNaLista(i, requisicaoMudancaDto.getListRequisicaoMudancaServicoDTO())) { i.setDataFim(UtilDatas.getDataAtual()); requisicaoMudancaServicoDao.update(i); } } } List<RequisicaoMudancaItemConfiguracaoDTO> icsBanco = null; RequisicaoMudancaItemConfiguracaoDTO requisicaoMudancaItemConfiguracaoDTO2 = new RequisicaoMudancaItemConfiguracaoDTO(); if (requisicaoMudancaDto != null && requisicaoMudancaDto.getListRequisicaoMudancaItemConfiguracaoDTO() != null) { // se n�o existir no banco, cria, caso contr�rio, atualiza for (final RequisicaoMudancaItemConfiguracaoDTO requisicaoMudancaItemConfiguracaoDTO : requisicaoMudancaDto.getListRequisicaoMudancaItemConfiguracaoDTO()) { requisicaoMudancaItemConfiguracaoDTO.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); requisicaoMudancaItemConfiguracaoDTO2 = requisicaoMudancaItemConfiguracaoDao.restoreByChaveComposta(requisicaoMudancaItemConfiguracaoDTO); if (requisicaoMudancaItemConfiguracaoDTO2 == null) { requisicaoMudancaItemConfiguracaoDao.create(requisicaoMudancaItemConfiguracaoDTO); } else { requisicaoMudancaItemConfiguracaoDao.update(requisicaoMudancaItemConfiguracaoDTO2); } } } // confere se existe algo no banco que n�o est� na lista salva, e deleta if (requisicaoMudancaDto != null) { icsBanco = requisicaoMudancaItemConfiguracaoDao.listByIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); } if (icsBanco != null) { for (final RequisicaoMudancaItemConfiguracaoDTO i : icsBanco) { if (!this.requisicaoMudancaICExisteNaLista(i, requisicaoMudancaDto.getListRequisicaoMudancaItemConfiguracaoDTO())) { i.setDataFim(UtilDatas.getDataAtual()); requisicaoMudancaItemConfiguracaoDao.update(i); } } } // update Responsavel if (requisicaoMudancaDto != null && requisicaoMudancaDto.getColResponsaveis() != null && requisicaoMudancaDto.getColResponsaveis().size() > 0) { this.deleteAdicionaTabelaResponsavel(requisicaoMudancaDto, tc); } else { final RequisicaoMudancaResponsavelDao requisicaoMudancaResponsavelDao = new RequisicaoMudancaResponsavelDao(); final Collection<RequisicaoMudancaResponsavelDTO> responsavel = requisicaoMudancaResponsavelDao.findByIdMudancaEDataFim(requisicaoMudancaDto .getIdRequisicaoMudanca()); if (responsavel != null && responsavel.size() > 0) { for (final RequisicaoMudancaResponsavelDTO requisicaoLiberacaoResponsavelDTO : responsavel) { requisicaoLiberacaoResponsavelDTO.setDataFim(UtilDatas.getDataAtual()); requisicaoMudancaResponsavelDao.update(requisicaoLiberacaoResponsavelDTO); } } } // gravando historico de anexos final HistoricoGEDDao historicoGEDDao = new HistoricoGEDDao(); Collection<HistoricoGEDDTO> colHistoricoGed = new ArrayList<HistoricoGEDDTO>(); colHistoricoGed = historicoGEDDao.listByIdTabelaAndIdLiberacao(ControleGEDDTO.TABELA_REQUISICAOMUDANCA, requisicaoMudancaDto.getIdRequisicaoMudanca()); if (colHistoricoGed != null && colHistoricoGed.size() > 0) { for (final HistoricoGEDDTO historicoGEDDTO : colHistoricoGed) { historicoGEDDTO.setDataFim(UtilDatas.getDataAtual()); historicoGEDDTO.setIdHistoricoMudanca(historicoMudancaDTO.getIdHistoricoMudanca()); historicoGEDDao.update(historicoGEDDTO); } } if (requisicaoMudancaDto.getColArquivosUpload() != null /* && liberacaoDto.getColArquivosUpload().size() > 0 */) { this.gravaInformacoesGED(requisicaoMudancaDto, tc, historicoMudancaDTO); } // gravando historico de anexos Collection<HistoricoGEDDTO> colHistoricoPlanoReversaoGed = new ArrayList<HistoricoGEDDTO>(); colHistoricoPlanoReversaoGed = historicoGEDDao .listByIdTabelaAndIdLiberacao(ControleGEDDTO.TABELA_PLANO_REVERSAO_MUDANCA, requisicaoMudancaDto.getIdRequisicaoMudanca()); if (colHistoricoPlanoReversaoGed != null && colHistoricoPlanoReversaoGed.size() > 0) { for (final HistoricoGEDDTO historicoGEDDTO : colHistoricoPlanoReversaoGed) { historicoGEDDTO.setDataFim(UtilDatas.getDataAtual()); historicoGEDDTO.setIdHistoricoMudanca(historicoMudancaDTO.getIdHistoricoMudanca()); historicoGEDDao.update(historicoGEDDTO); } } if (requisicaoMudancaDto.getColUploadPlanoDeReversaoGED() != null /* && liberacaoDto.getColArquivosUpload().size() > 0 */) { this.gravaPlanoDeReversaoGED(requisicaoMudancaDto, tc, historicoMudancaDTO); } if (requisicaoMudancaDto.getStatus().equalsIgnoreCase(Enumerados.SituacaoRequisicaoMudanca.Resolvida.getDescricao())) { this.fechaRelacionamentoMudanca(tc, requisicaoMudancaDto); } if (requisicaoMudancaDto.getRegistroexecucao() != null) { final Source source = new Source(requisicaoMudancaDto.getRegistroexecucao()); requisicaoMudancaDto.setRegistroexecucao(source.getTextExtractor().toString()); } final ExecucaoMudancaServiceEjb execucaoMudancaService = new ExecucaoMudancaServiceEjb(); if (requisicaoMudancaDto.getIdTarefa() == null) { requisicaoMudancaDao.update(requisicaoMudancaDto); } else { if (requisicaoMudancaDto.getFase() != null && !requisicaoMudancaDto.getFase().equalsIgnoreCase("")) { requisicaoMudancaDao.updateFase(requisicaoMudancaDto.getIdRequisicaoMudanca(), requisicaoMudancaDto.getFase()); requisicaoMudancaDao.update(requisicaoMudancaDto); } else { if (tipoMudancaDto != null) { requisicaoMudancaDao.update(model); } else { throw new LogicException(this.i18nMessage("requisicaoMudanca.categoriaMudancaNaoLocalizada")); } } if (requisicaoMudancaDto.getStatus().equalsIgnoreCase(SituacaoRequisicaoMudanca.Cancelada.name()) || requisicaoMudancaDto.getStatus().equalsIgnoreCase(SituacaoRequisicaoMudanca.Rejeitada.name())) { execucaoMudancaService.encerra(requisicaoMudancaDto.getUsuarioDto(), requisicaoMudancaDto, tc); } else { execucaoMudancaService.executa(requisicaoMudancaDto, requisicaoMudancaDto.getIdTarefa(), requisicaoMudancaDto.getAcaoFluxo(), tc); } } if (requisicaoMudancaDto.getRegistroexecucao() != null && !requisicaoMudancaDto.getRegistroexecucao().trim().equalsIgnoreCase("")) { final OcorrenciaMudancaDao ocorrenciaMudancaDao = new OcorrenciaMudancaDao(); ocorrenciaMudancaDao.setTransactionControler(tc); final OcorrenciaMudancaDTO ocorrenciaMudancaDto = new OcorrenciaMudancaDTO(); ocorrenciaMudancaDto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); ocorrenciaMudancaDto.setDataregistro(UtilDatas.getDataAtual()); ocorrenciaMudancaDto.setHoraregistro(UtilDatas.formatHoraFormatadaStr(UtilDatas.getHoraAtual())); ocorrenciaMudancaDto.setTempoGasto(0); ocorrenciaMudancaDto.setDescricao(br.com.centralit.citcorpore.util.Enumerados.CategoriaOcorrencia.Execucao.getDescricao()); ocorrenciaMudancaDto.setDataInicio(UtilDatas.getDataAtual()); ocorrenciaMudancaDto.setDataFim(UtilDatas.getDataAtual()); ocorrenciaMudancaDto.setInformacoesContato("n�o se aplica"); ocorrenciaMudancaDto.setRegistradopor(requisicaoMudancaDto.getUsuarioDto().getLogin()); ocorrenciaMudancaDto.setDadosMudanca(new Gson().toJson(requisicaoMudancaDto)); ocorrenciaMudancaDto.setOrigem(br.com.centralit.citcorpore.util.Enumerados.OrigemOcorrencia.OUTROS.getSigla().toString()); ocorrenciaMudancaDto.setCategoria(br.com.centralit.citcorpore.util.Enumerados.CategoriaOcorrencia.Criacao.getSigla()); ocorrenciaMudancaDto.setOcorrencia(requisicaoMudancaDto.getRegistroexecucao()); ocorrenciaMudancaDao.create(ocorrenciaMudancaDto); } if (requisicaoMudancaDto.getAcaoFluxo().equalsIgnoreCase("E")) { if (requisicaoMudancaDto.getStatus().equalsIgnoreCase(SituacaoRequisicaoMudanca.Executada.name()) || requisicaoMudancaDto.getStatus().equalsIgnoreCase(SituacaoRequisicaoMudanca.Concluida.name())) { this.fechaRelacionamentoMudanca(tc, requisicaoMudancaDto); } } tc.commit(); if (requisicaoMudancaDto.getDataHoraInicioAgendada() != null) { RequisicaoMudanca.salvaGrupoAtvPeriodicaEAgenda(requisicaoMudancaDto); } } catch (final Exception e) { this.rollbackTransaction(tc, e); throw new ServiceException(e); } finally { try { tc.close(); } catch (final PersistenceException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } @Override public RequisicaoMudancaDTO restoreAll(final Integer idRequisicaoMudanca) throws Exception { return this.restoreAll(idRequisicaoMudanca, null); } public RequisicaoMudancaDTO restoreAll(final Integer idRequisicaoMudanca, final TransactionControler tc) throws Exception { final RequisicaoMudancaDao requisicaoDao = this.getDao(); if (tc != null) { requisicaoDao.setTransactionControler(tc); } RequisicaoMudancaDTO requisicaoDto = new RequisicaoMudancaDTO(); requisicaoDto.setIdRequisicaoMudanca(idRequisicaoMudanca); requisicaoDto = (RequisicaoMudancaDTO) requisicaoDao.restore(requisicaoDto); 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.getDataHoraTermino() != null && requisicaoDto.getDataHoraTerminoStr() != null) { final Timestamp dataHoraTerminoAgendada = requisicaoDto.getDataHoraTerminoAgendada(); final SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm"); if (dataHoraTerminoAgendada != null) { final String horaAgendamentoFinallSTR = format.format(dataHoraTerminoAgendada); final String horaFinal = horaAgendamentoFinallSTR.substring(11, 16); requisicaoDto.setHoraAgendamentoFinal(horaFinal.trim()); } } if (requisicaoDto != null && requisicaoDto.getDescricao() != null) { final Source source = new Source(requisicaoDto.getDescricao()); requisicaoDto.setDescricao(source.getTextExtractor().toString()); } if (requisicaoDto != null) { 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); /** * Motivo: Restaura o usu�rio a partir do idProprietario gravado no banco de dados * Autor: flavio.santana * Data/Hora: 28/11/2013 17:50 */ usuarioDto = usuarioDao.restoreByIdEmpregado(requisicaoDto.getIdProprietario()); 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.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.getIdContatoRequisicaoMudanca() != null) { ContatoRequisicaoMudancaDTO contatoRequisicaoMudancaDto = new ContatoRequisicaoMudancaDTO(); final ContatoRequisicaoMudancaDao contatoRequisicaoMudancaDao = new ContatoRequisicaoMudancaDao(); if (CITCorporeUtil.SGBD_PRINCIPAL.equalsIgnoreCase("SQLSERVER")) { if (tc != null) { contatoRequisicaoMudancaDao.setTransactionControler(tc); } } contatoRequisicaoMudancaDto.setIdContatoRequisicaoMudanca(requisicaoDto.getIdContatoRequisicaoMudanca()); contatoRequisicaoMudancaDto = (ContatoRequisicaoMudancaDTO) contatoRequisicaoMudancaDao.restore(contatoRequisicaoMudancaDto); if (contatoRequisicaoMudancaDto != null) { requisicaoDto.setNomeContato(contatoRequisicaoMudancaDto.getNomecontato()); } } if (requisicaoDto.getIdTipoMudanca() != null) { TipoMudancaDTO tipoMudancaDto = new TipoMudancaDTO(); final TipoMudancaDAO tipoMudancaDao = new TipoMudancaDAO(); tipoMudancaDto.setIdTipoMudanca(requisicaoDto.getIdTipoMudanca()); tipoMudancaDto = (TipoMudancaDTO) tipoMudancaDao.restore(tipoMudancaDto); if (tipoMudancaDto != null) { requisicaoDto.setTipo(tipoMudancaDto.getNomeTipoMudanca()); } } } return this.verificaAtraso(requisicaoDto); } public RequisicaoMudancaDTO restoreAllReuniao(final Integer idRequisicaoMudanca, final Integer idReuniaoRequisicaoMudanca, final TransactionControler tc) throws Exception { final RequisicaoMudancaDao requisicaoDao = this.getDao(); if (tc != null) { requisicaoDao.setTransactionControler(tc); } RequisicaoMudancaDTO requisicaoDto = new RequisicaoMudancaDTO(); requisicaoDto.setIdRequisicaoMudanca(idRequisicaoMudanca); requisicaoDto = (RequisicaoMudancaDTO) requisicaoDao.restore(requisicaoDto); if (requisicaoDto != null && requisicaoDto.getDescricao() != null) { final Source source = new Source(requisicaoDto.getDescricao()); requisicaoDto.setDescricao(source.getTextExtractor().toString()); } if (requisicaoDto != null) { 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.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.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.getIdContatoRequisicaoMudanca() != null) { ContatoRequisicaoMudancaDTO contatoRequisicaoMudancaDto = new ContatoRequisicaoMudancaDTO(); final ContatoRequisicaoMudancaDao contatoRequisicaoMudancaDao = new ContatoRequisicaoMudancaDao(); // contatoRequisicaoMudancaDao.setTransactionControler(tc); contatoRequisicaoMudancaDto.setIdContatoRequisicaoMudanca(requisicaoDto.getIdContatoRequisicaoMudanca()); contatoRequisicaoMudancaDto = (ContatoRequisicaoMudancaDTO) contatoRequisicaoMudancaDao.restore(contatoRequisicaoMudancaDto); if (contatoRequisicaoMudancaDto != null) { requisicaoDto.setNomeContato(contatoRequisicaoMudancaDto.getNomecontato()); } } if (requisicaoDto.getIdTipoMudanca() != null) { TipoMudancaDTO tipoMudancaDto = new TipoMudancaDTO(); final TipoMudancaDAO tipoMudancaDao = new TipoMudancaDAO(); tipoMudancaDto.setIdTipoMudanca(requisicaoDto.getIdTipoMudanca()); tipoMudancaDto = (TipoMudancaDTO) tipoMudancaDao.restore(tipoMudancaDto); if (tipoMudancaDto != null) { requisicaoDto.setTipo(tipoMudancaDto.getNomeTipoMudanca()); } } final ReuniaoRequisicaoMudancaDAO reuniaoDao = new ReuniaoRequisicaoMudancaDAO(); ReuniaoRequisicaoMudancaDTO reuniaoDto = new ReuniaoRequisicaoMudancaDTO(); reuniaoDto.setIdReuniaoRequisicaoMudanca(idReuniaoRequisicaoMudanca); reuniaoDto = (ReuniaoRequisicaoMudancaDTO) reuniaoDao.restore(reuniaoDto); requisicaoDto.setLocalReuniao(reuniaoDto.getLocalReuniao()); requisicaoDto.setDataInicio(reuniaoDto.getDataInicio()); requisicaoDto.setHoraInicio(reuniaoDto.getHoraInicio()); requisicaoDto.setDuracaoEstimada(reuniaoDto.getDuracaoEstimada()); requisicaoDto.setDescricao(reuniaoDto.getDescricao()); } return this.verificaAtraso(requisicaoDto); } public RequisicaoMudancaDTO verificaAtraso(final RequisicaoMudancaDTO requisicaoDto) throws Exception { if (requisicaoDto == null) { return null; } long atrasoSLA = 0; if (requisicaoDto.getDataHoraTermino() != null) { final Timestamp dataHoraLimite = requisicaoDto.getDataHoraTermino(); Timestamp dataHoraComparacao = UtilDatas.getDataHoraAtual(); if (requisicaoDto.encerrada()) { if (requisicaoDto.getDataHoraConclusao() != null) { dataHoraComparacao = requisicaoDto.getDataHoraConclusao(); } } if (dataHoraComparacao.compareTo(dataHoraLimite) > 0) { atrasoSLA = UtilDatas.calculaDiferencaTempoEmMilisegundos(dataHoraComparacao, dataHoraLimite) / 1000; requisicaoDto.setPrazoHH(0); requisicaoDto.setPrazoMM(0); } } requisicaoDto.setAtraso(atrasoSLA); return requisicaoDto; } @Override public Collection findBySolictacaoServico(final RequisicaoMudancaDTO bean) throws ServiceException, LogicException { try { return this.getDao().listProblemaByIdSolicitacao(bean); } catch (final Exception e) { e.printStackTrace(); } return null; } public List<RequisicaoMudancaDTO> obterMudancaCriticos(final Integer idItemConfiguracao) { try { final RequisicaoMudancaDao requisicaoMudancaDao = this.getDao(); return requisicaoMudancaDao.listMudancaByIdItemConfiguracao(idItemConfiguracao); } catch (final Exception e) { e.printStackTrace(); } return null; } @Override public List<RequisicaoMudancaDTO> listMudancaByIdItemConfiguracao(final Integer idItemConfiguracao) throws Exception { final RequisicaoMudancaDao requisicaoMudancaDao = this.getDao(); return requisicaoMudancaDao.listMudancaByIdItemConfiguracao(idItemConfiguracao); } @Override public Collection<RequisicaoMudancaDTO> listaMudancaPorBaseConhecimento(final RequisicaoMudancaDTO mudanca) throws Exception { Collection<RequisicaoMudancaDTO> listaMudancaPorBaseConhecimento = null; final RequisicaoMudancaDao mudancaDao = this.getDao(); try { listaMudancaPorBaseConhecimento = mudancaDao.listaMudancasPorBaseConhecimento(mudanca); if (listaMudancaPorBaseConhecimento != null) { for (final RequisicaoMudancaDTO mudancaDTO : listaMudancaPorBaseConhecimento) { final Source source = new Source(mudancaDTO.getDescricao()); mudancaDTO.setDescricao(source.getTextExtractor().toString()); } } } catch (final Exception e) { e.printStackTrace(); } return listaMudancaPorBaseConhecimento; } @Override public Collection<RequisicaoMudancaDTO> quantidadeMudancaPorBaseConhecimento(final RequisicaoMudancaDTO mudanca) throws Exception { final RequisicaoMudancaDao mudancaDao = this.getDao(); return mudancaDao.quantidadeMudancaPorBaseConhecimento(mudanca); } @Override public Collection findByConhecimento(final BaseConhecimentoDTO baseConhecimentoDto) throws ServiceException, LogicException { final RequisicaoMudancaDao requisicaoMudancaDao = this.getDao(); try { return requisicaoMudancaDao.findByConhecimento(baseConhecimentoDto); } catch (final Exception e) { e.printStackTrace(); } return null; } @Override public ServicoContratoDTO findByIdContratoAndIdServico(final Integer idContrato, final Integer idServico) throws Exception { return null; } public Collection<RequisicaoMudancaDTO> listRequisicaoMudancaByCriterios(final RequisicaoMudancaDTO requisicaoMudancaDto) throws Exception { return null; } @Override public Collection<PesquisaRequisicaoMudancaDTO> listRequisicaoMudancaByCriterios(final PesquisaRequisicaoMudancaDTO pesquisaRequisicaoMudancaDto) throws Exception { final Collection<PesquisaRequisicaoMudancaDTO> listRequisicaoMudancaByCriterios = this.getDao().listRequisicaoMudancaByCriterios(pesquisaRequisicaoMudancaDto); if (listRequisicaoMudancaByCriterios != null) { for (final PesquisaRequisicaoMudancaDTO requisicaoMudanca : listRequisicaoMudancaByCriterios) { final Source source = new Source(requisicaoMudanca.getDescricao()); requisicaoMudanca.setDescricao(source.getTextExtractor().toString()); } } return listRequisicaoMudancaByCriterios; } @Override public boolean verificarSeRequisicaoMudancaPossuiTipoMudanca(final Integer idTipoMudanca) throws Exception { final RequisicaoMudancaDao requisicaoMudancaDao = this.getDao(); return requisicaoMudancaDao.verificarSeRequisicaoMudancaPossuiTipoMudanca(idTipoMudanca); } /** * Verifica se o item existe na lista. * * @param item * @param lista * @return */ private boolean requisicaoMudancaServicoExisteNaLista(final RequisicaoMudancaServicoDTO item, final List<RequisicaoMudancaServicoDTO> lista) { if (lista == null) { return false; } for (final RequisicaoMudancaServicoDTO l : lista) { if (l.equals(item)) { return true; } } return false; } /** * Verifica se o item existe na lista. * * @param item * @param lista * @return */ private boolean requisicaoMudancaICExisteNaLista(final RequisicaoMudancaItemConfiguracaoDTO item, final List<RequisicaoMudancaItemConfiguracaoDTO> lista) { if (lista == null) { return false; } for (final RequisicaoMudancaItemConfiguracaoDTO l : lista) { if (l.equals(item)) { return true; } } return false; } private String getStatusAtual(final Integer id) throws ServiceException, Exception { RequisicaoMudancaDTO reqMudanca = new RequisicaoMudancaDTO(); reqMudanca.setIdRequisicaoMudanca(id); reqMudanca = (RequisicaoMudancaDTO) this.getDao().restore(reqMudanca); final String res = reqMudanca.getStatus(); return res; } private RequisicaoMudancaDTO getRequisicaoAtual(final Integer id) throws ServiceException, Exception { RequisicaoMudancaDTO reqMudanca = new RequisicaoMudancaDTO(); reqMudanca.setIdRequisicaoMudanca(id); reqMudanca = (RequisicaoMudancaDTO) this.getDao().restore(reqMudanca); return reqMudanca; } @Override public void suspende(final UsuarioDTO usuarioDto, final RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception { final TransactionControler tc = new TransactionControlerImpl(this.getDao().getAliasDB()); this.suspende(usuarioDto, requisicaoMudancaDTO, tc); tc.commit(); tc.close(); } public void suspende(final UsuarioDTO usuarioDto, final RequisicaoMudancaDTO requisicaoMudancaDto, final TransactionControler tc) throws Exception { final RequisicaoMudancaDTO requisicaoMudancaAuxiliarDto = this.restoreAll(requisicaoMudancaDto.getIdRequisicaoMudanca(), tc); requisicaoMudancaAuxiliarDto.setIdJustificativa(requisicaoMudancaDto.getIdJustificativa()); requisicaoMudancaAuxiliarDto.setComplementoJustificativa(requisicaoMudancaDto.getComplementoJustificativa()); new ExecucaoMudancaServiceEjb().suspende(usuarioDto, requisicaoMudancaDto, tc); } @Override public void reativa(final UsuarioDTO usuarioDto, final RequisicaoMudancaDTO requisicaoMudancaDto) throws Exception { final TransactionControler tc = new TransactionControlerImpl(this.getDao().getAliasDB()); this.reativa(usuarioDto, requisicaoMudancaDto, tc); tc.commit(); tc.close(); } public void reativa(final UsuarioDTO usuarioDto, final RequisicaoMudancaDTO requisicaoMudancaDto, final TransactionControler tc) throws Exception { final RequisicaoMudancaDTO requisicaoMudancaAuxDto = this.restoreAll(requisicaoMudancaDto.getIdRequisicaoMudanca(), tc); new ExecucaoMudancaServiceEjb().reativa(usuarioDto, requisicaoMudancaAuxDto, tc); } @Override public List<RequisicaoMudancaDTO> listMudancaByIdSolicitacao(final RequisicaoMudancaDTO bean) throws Exception { return this.getDao().listMudancaByIdSolicitacao(bean); } @Override public boolean validacaoAvancaFluxo(final RequisicaoMudancaDTO requisicaoMudancaDto, final TransactionControler tc) throws Exception { final AprovacaoMudancaDTO aprovacaoMudancaDto = new AprovacaoMudancaDTO(); final AprovacaoMudancaDao dao = new AprovacaoMudancaDao(); dao.setTransactionControler(tc); if (requisicaoMudancaDto.getIdRequisicaoMudanca() != null) { aprovacaoMudancaDto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); aprovacaoMudancaDto.setVoto("A"); aprovacaoMudancaDto.setQuantidadeVotoAprovada(dao.quantidadeAprovacaoMudancaPorVotoAprovada(aprovacaoMudancaDto, requisicaoMudancaDto.getIdGrupoComite())); aprovacaoMudancaDto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); aprovacaoMudancaDto.setVoto("R"); aprovacaoMudancaDto.setQuantidadeVotoRejeitada(dao.quantidadeAprovacaoMudancaPorVotoRejeitada(aprovacaoMudancaDto, requisicaoMudancaDto.getIdGrupoComite())); aprovacaoMudancaDto.setQuantidadeAprovacaoMudanca(dao.quantidadeDeEmpregdosPorGrupo(requisicaoMudancaDto.getIdGrupoComite())); } if (aprovacaoMudancaDto.getQuantidadeVotoAprovada() > 0) { if (aprovacaoMudancaDto.getQuantidadeAprovacaoMudanca().intValue() == aprovacaoMudancaDto.getQuantidadeVotoAprovada()) { return true; } else { if (aprovacaoMudancaDto.getQuantidadeVotoAprovada() >= aprovacaoMudancaDto.getQuantidadeAprovacaoMudanca() / 2 + 1) { return true; } } } else if (aprovacaoMudancaDto.getQuantidadeVotoRejeitada() > 0 && aprovacaoMudancaDto.getQuantidadeVotoRejeitada() > aprovacaoMudancaDto.getQuantidadeAprovacaoMudanca() / 2) { requisicaoMudancaDto.setStatus("Rejeitada"); return true; } return false; } public boolean validacaoAvancaFluxoProposta(final RequisicaoMudancaDTO requisicaoMudancaDto, final TransactionControler tc) throws Exception { final AprovacaoPropostaDTO aprovacaoPropostaDto = new AprovacaoPropostaDTO(); final AprovacaoPropostaDao dao = new AprovacaoPropostaDao(); dao.setTransactionControler(tc); if (requisicaoMudancaDto.getIdRequisicaoMudanca() != null) { aprovacaoPropostaDto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); aprovacaoPropostaDto.setVoto("A"); aprovacaoPropostaDto.setQuantidadeVotoAprovada(dao.quantidadeAprovacaoPropostaPorVotoAprovada(aprovacaoPropostaDto, requisicaoMudancaDto.getIdGrupoComite())); aprovacaoPropostaDto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); aprovacaoPropostaDto.setVoto("R"); aprovacaoPropostaDto.setQuantidadeVotoRejeitada(dao.quantidadeAprovacaoPropostaPorVotoAprovada(aprovacaoPropostaDto, requisicaoMudancaDto.getIdGrupoComite())); aprovacaoPropostaDto.setQuantidadeAprovacaoProposta(dao.quantidadeDeEmpregdosPorGrupo(requisicaoMudancaDto.getIdGrupoComite())); } if (aprovacaoPropostaDto.getQuantidadeVotoAprovada() > 0) { if (aprovacaoPropostaDto.getQuantidadeAprovacaoProposta().intValue() == aprovacaoPropostaDto.getQuantidadeVotoAprovada()) { requisicaoMudancaDto.setVotacaoPropostaAprovadaAux("S"); requisicaoMudancaDto.setFase("Registrada"); return true; } else if (aprovacaoPropostaDto.getQuantidadeVotoAprovada() >= aprovacaoPropostaDto.getQuantidadeAprovacaoProposta() / 2 + 1) { requisicaoMudancaDto.setVotacaoPropostaAprovadaAux("S"); requisicaoMudancaDto.setFase("Registrada"); return true; } } else if (aprovacaoPropostaDto.getQuantidadeVotoRejeitada() > 0 && aprovacaoPropostaDto.getQuantidadeVotoRejeitada() >= aprovacaoPropostaDto.getQuantidadeAprovacaoProposta() / 2) { requisicaoMudancaDto.setVotacaoPropostaAprovadaAux("N"); requisicaoMudancaDto.setStatus("Rejeitada"); return true; } return false; } @Override public String verificaAprovacaoProposta(final RequisicaoMudancaDTO requisicaoMudancaDto, final TransactionControler tc) throws Exception { final String aprovado = "aprovado"; final String reprovado = "reprovado"; final String aquardando = "aquardando"; final AprovacaoPropostaDTO aprovacaoPropostaDto = new AprovacaoPropostaDTO(); final AprovacaoPropostaDao dao = new AprovacaoPropostaDao(); dao.setTransactionControler(tc); if (requisicaoMudancaDto.getIdRequisicaoMudanca() != null) { aprovacaoPropostaDto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); aprovacaoPropostaDto.setVoto("A"); aprovacaoPropostaDto.setQuantidadeVotoAprovada(dao.quantidadeAprovacaoPropostaPorVotoAprovada(aprovacaoPropostaDto, requisicaoMudancaDto.getIdGrupoComite())); aprovacaoPropostaDto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); aprovacaoPropostaDto.setVoto("R"); aprovacaoPropostaDto.setQuantidadeVotoRejeitada(dao.quantidadeAprovacaoPropostaPorVotoAprovada(aprovacaoPropostaDto, requisicaoMudancaDto.getIdGrupoComite())); aprovacaoPropostaDto.setQuantidadeAprovacaoProposta(dao.quantidadeDeEmpregdosPorGrupo(requisicaoMudancaDto.getIdGrupoComite())); } if (aprovacaoPropostaDto.getQuantidadeVotoAprovada() > 0) { if (aprovacaoPropostaDto.getQuantidadeAprovacaoProposta().intValue() == aprovacaoPropostaDto.getQuantidadeVotoAprovada()) { return aprovado; } if (aprovacaoPropostaDto.getQuantidadeVotoAprovada() >= aprovacaoPropostaDto.getQuantidadeAprovacaoProposta() / 2 + 1) { return aprovado; } if (aprovacaoPropostaDto.getQuantidadeVotoRejeitada() > aprovacaoPropostaDto.getQuantidadeAprovacaoProposta() / 2) { return reprovado; } } return aquardando; } @Override public String verificaAprovacaoMudanca(final RequisicaoMudancaDTO requisicaoMudancaDto, final TransactionControler tc) throws Exception { final String aprovado = "aprovado"; final String reprovado = "reprovado"; final String aquardando = "aquardando"; final AprovacaoMudancaDTO aprovacaoMudancaDto = new AprovacaoMudancaDTO(); final AprovacaoMudancaDao dao = new AprovacaoMudancaDao(); dao.setTransactionControler(tc); if (requisicaoMudancaDto.getIdRequisicaoMudanca() != null) { aprovacaoMudancaDto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); aprovacaoMudancaDto.setVoto("A"); aprovacaoMudancaDto.setQuantidadeVotoAprovada(dao.quantidadeAprovacaoMudancaPorVotoAprovada(aprovacaoMudancaDto, requisicaoMudancaDto.getIdGrupoComite())); aprovacaoMudancaDto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); aprovacaoMudancaDto.setVoto("R"); aprovacaoMudancaDto.setQuantidadeVotoRejeitada(dao.quantidadeAprovacaoMudancaPorVotoRejeitada(aprovacaoMudancaDto, requisicaoMudancaDto.getIdGrupoComite())); aprovacaoMudancaDto.setQuantidadeAprovacaoMudanca(dao.quantidadeDeEmpregdosPorGrupo(requisicaoMudancaDto.getIdGrupoComite())); } if (aprovacaoMudancaDto.getQuantidadeVotoAprovada() > 0) { if (aprovacaoMudancaDto.getQuantidadeAprovacaoMudanca().intValue() == aprovacaoMudancaDto.getQuantidadeVotoAprovada()) { return aprovado; } if (aprovacaoMudancaDto.getQuantidadeVotoAprovada() >= aprovacaoMudancaDto.getQuantidadeAprovacaoMudanca() / 2 + 1) { return aprovado; } if (aprovacaoMudancaDto.getQuantidadeVotoRejeitada() > aprovacaoMudancaDto.getQuantidadeAprovacaoMudanca() / 2) { return reprovado; } } return aquardando; } public void gravaInformacoesGED(final RequisicaoMudancaDTO requisicaomudacaDTO, final TransactionControler tc, final HistoricoMudancaDTO historicoMudancaDTO) throws Exception { final Collection<UploadDTO> colArquivosUpload = requisicaomudacaDTO.getColArquivosUpload(); 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_REQUISICAOMUDANCA); if (historicoMudancaDTO.getIdHistoricoMudanca() != null) { historicoGEDDTO.setIdHistoricoMudanca(null); } else { historicoGEDDTO.setIdHistoricoMudanca(-1); } historicoGEDDao.create(historicoGEDDTO); controleGEDDTO.setIdTabela(ControleGEDDTO.TABELA_REQUISICAOMUDANCA); controleGEDDTO.setId(requisicaomudacaDTO.getIdRequisicaoMudanca()); 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; } // Se utiliza GEDinterno e eh BD if (PRONTUARIO_GED_INTERNO != null && PRONTUARIO_GED_INTERNO.trim().equalsIgnoreCase("S") && "S".equalsIgnoreCase(prontuarioGedInternoBancoDados.trim())) { 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_REQUISICAOMUDANCA, 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(historicoGEDDTO.getIdLigacaoHistoricoGed()); idControleGed = controleGEDDTO.getIdControleGED(); } historicoGEDDTO.setIdControleGed(idControleGed); historicoGEDDao.update(historicoGEDDTO); // Se utiliza GED interno e nao eh BD if (PRONTUARIO_GED_INTERNO.equalsIgnoreCase("S") && !"S".equalsIgnoreCase(prontuarioGedInternoBancoDados)) { 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) { } } } } } } @Override public void gravaPlanoDeReversaoGED(final RequisicaoMudancaDTO requisicaomudacaDTO, final TransactionControler tc, final HistoricoMudancaDTO historicoMudancaDTO) throws Exception { final Collection<UploadDTO> colArquivosUpload = requisicaomudacaDTO.getColUploadPlanoDeReversaoGED(); // 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 + "/" + 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(); controleGEDDTO.setIdTabela(ControleGEDDTO.TABELA_PLANO_REVERSAO_MUDANCA); controleGEDDTO.setId(historicoMudancaDTO.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; } // Se utiliza GED interno e eh BD if (PRONTUARIO_GED_INTERNO.trim().equalsIgnoreCase("S") && "S".equalsIgnoreCase(prontuarioGedInternoBancoDados.trim())) { 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_PLANO_REVERSAO_MUDANCA, requisicaomudacaDTO.getIdRequisicaoMudanca()); if (colAux != null && colAux.size() > 0) { for (final ControleGEDDTO controleGedDTOAux : colAux) { if (idControleGed.intValue() == controleGedDTOAux.getIdControleGED().intValue()) { idControleGed = controleGedDTOAux.getIdControleGED(); existe = true; break; } } } } if (!existe) { controleGEDDTO.setId(requisicaomudacaDTO.getIdRequisicaoMudanca()); controleGEDDTO = (ControleGEDDTO) controleGEDDao.create(controleGEDDTO); idControleGed = controleGEDDTO.getIdControleGED(); } // Se utiliza GED interno e nao eh BD if (PRONTUARIO_GED_INTERNO.equalsIgnoreCase("S") && !"S".equalsIgnoreCase(prontuarioGedInternoBancoDados)) { 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) { } } } } } final Collection<ControleGEDDTO> colAnexo = controleGEDDao.listByIdTabelaAndIdBaseConhecimento(ControleGEDDTO.TABELA_PLANO_REVERSAO_MUDANCA, requisicaomudacaDTO.getIdRequisicaoMudanca()); 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); } } } } @Override public Collection listaQuantidadeMudancaPorImpacto(final RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception { final RequisicaoMudancaDao requisicaoMudancaDao = this.getDao(); return requisicaoMudancaDao.listaQuantidadeMudancaPorImpacto(requisicaoMudancaDTO); } @Override public Collection listaQuantidadeMudancaPorPeriodo(final RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception { final RequisicaoMudancaDao requisicaoMudancaDao = this.getDao(); return requisicaoMudancaDao.listaQuantidadeMudancaPorPeriodo(requisicaoMudancaDTO); } public String negritoHtml(final String string) { return "<style isBold=\"true\" pdfFontName=\"Helvetica-Bold\">" + string + "</style>"; } @Override public Collection listaIdETituloMudancasPorPeriodo(final RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception { final RequisicaoMudancaDao requisicaoMudancaDao = this.getDao(); return requisicaoMudancaDao.listaIdETituloMudancasPorPeriodo(requisicaoMudancaDTO); } @Override public Collection listaQuantidadeMudancaPorProprietario(final RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception { final RequisicaoMudancaDao requisicaoMudancaDao = this.getDao(); return requisicaoMudancaDao.listaQuantidadeMudancaPorProprietario(requisicaoMudancaDTO); } @Override public Collection listaQuantidadeMudancaPorSolicitante(final RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception { final RequisicaoMudancaDao requisicaoMudancaDao = this.getDao(); return requisicaoMudancaDao.listaQuantidadeMudancaPorSolicitante(requisicaoMudancaDTO); } @Override public Collection listaQuantidadeMudancaPorStatus(final RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception { final RequisicaoMudancaDao requisicaoMudancaDao = this.getDao(); return requisicaoMudancaDao.listaQuantidadeMudancaPorStatus(requisicaoMudancaDTO); } @Override public Collection listaQuantidadeMudancaPorUrgencia(final RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception { final RequisicaoMudancaDao requisicaoMudancaDao = this.getDao(); return requisicaoMudancaDao.listaQuantidadeMudancaPorUrgencia(requisicaoMudancaDTO); } @Override public Collection listaQuantidadeSemAprovacaoPorPeriodo(final RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception { final RequisicaoMudancaDao requisicaoMudancaDao = this.getDao(); return requisicaoMudancaDao.listaQuantidadeSemAprovacaoPorPeriodo(requisicaoMudancaDTO); } @Override public Collection listaQuantidadeERelacionamentos(final HttpServletRequest request, final RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception { final RequisicaoMudancaDao requisicaoMudancaDao = this.getDao(); final List<RequisicaoMudancaDTO> listaIdETituloMudancasPorPeriodo = new ArrayList<RequisicaoMudancaDTO>( requisicaoMudancaDao.listaIdETituloMudancasPorPeriodo(requisicaoMudancaDTO)); final Collection<RequisicaoMudancaDTO> listaMudancaIncidente = requisicaoMudancaDao.listaMudancaIncidente(requisicaoMudancaDTO); final Collection<RequisicaoMudancaDTO> listaMudancaServico = requisicaoMudancaDao.listaMudancaServico(requisicaoMudancaDTO); final Collection<RequisicaoMudancaDTO> listaMudancaProblema = requisicaoMudancaDao.listaMudancaProblema(requisicaoMudancaDTO); final Collection<RequisicaoMudancaDTO> listaMudancaGrupo = requisicaoMudancaDao.listaMudancaGrupo(requisicaoMudancaDTO); final Collection<RequisicaoMudancaDTO> listaMudancaConhecimento = requisicaoMudancaDao.listaMudancaConhecimento(requisicaoMudancaDTO); final Collection<RequisicaoMudancaDTO> listaMudancaItemConfiguracao = requisicaoMudancaDao.listaMudancaItemConfiguracao(requisicaoMudancaDTO); for (int i = 0, j; i < listaIdETituloMudancasPorPeriodo.size(); i++) { final int tamanhoInicio = listaIdETituloMudancasPorPeriodo.size(); j = i; for (final RequisicaoMudancaDTO incidente : listaMudancaIncidente) { final RequisicaoMudancaDTO aux = listaIdETituloMudancasPorPeriodo.get(j); if (aux.getIdRequisicaoMudanca() == incidente.getIdRequisicaoMudanca()) { if (aux.getIncidente() == null || aux.getIncidente().isEmpty()) { listaIdETituloMudancasPorPeriodo.get(j).setIncidente(incidente.getIncidente()); } else if (j + 1 == listaIdETituloMudancasPorPeriodo.size() || listaIdETituloMudancasPorPeriodo.get(j + 1).getIdRequisicaoMudanca() != aux.getIdRequisicaoMudanca()) { listaIdETituloMudancasPorPeriodo.add(++j, incidente); } else { listaIdETituloMudancasPorPeriodo.get(++j).setIncidente(incidente.getIncidente()); } } } j = i; for (final RequisicaoMudancaDTO servico : listaMudancaServico) { final RequisicaoMudancaDTO aux = listaIdETituloMudancasPorPeriodo.get(j); if (aux.getIdRequisicaoMudanca() == servico.getIdRequisicaoMudanca()) { if (aux.getServico() == null || aux.getServico().isEmpty()) { listaIdETituloMudancasPorPeriodo.get(j).setServico(servico.getServico()); } else if (j + 1 == listaIdETituloMudancasPorPeriodo.size() || listaIdETituloMudancasPorPeriodo.get(j + 1).getIdRequisicaoMudanca() != aux.getIdRequisicaoMudanca()) { listaIdETituloMudancasPorPeriodo.add(++j, servico); } else { listaIdETituloMudancasPorPeriodo.get(++j).setServico(servico.getIncidente()); } } } j = i; for (final RequisicaoMudancaDTO problema : listaMudancaProblema) { final RequisicaoMudancaDTO aux = listaIdETituloMudancasPorPeriodo.get(j); if (aux.getIdRequisicaoMudanca() == problema.getIdRequisicaoMudanca()) { if (aux.getProblema() == null || aux.getProblema().isEmpty()) { listaIdETituloMudancasPorPeriodo.get(j).setProblema(problema.getProblema()); } else if (j + 1 == listaIdETituloMudancasPorPeriodo.size() || listaIdETituloMudancasPorPeriodo.get(j + 1).getIdRequisicaoMudanca() != aux.getIdRequisicaoMudanca()) { listaIdETituloMudancasPorPeriodo.add(++j, problema); } else { listaIdETituloMudancasPorPeriodo.get(++j).setProblema(problema.getIncidente()); } } } j = i; for (final RequisicaoMudancaDTO grupo : listaMudancaGrupo) { final RequisicaoMudancaDTO aux = listaIdETituloMudancasPorPeriodo.get(j); if (aux.getIdRequisicaoMudanca() == grupo.getIdRequisicaoMudanca()) { if (aux.getGrupoMudanca() == null || aux.getGrupoMudanca().isEmpty()) { listaIdETituloMudancasPorPeriodo.get(j).setGrupoMudanca(grupo.getGrupoMudanca()); } else if (j + 1 == listaIdETituloMudancasPorPeriodo.size() || listaIdETituloMudancasPorPeriodo.get(j + 1).getIdRequisicaoMudanca() != aux.getIdRequisicaoMudanca()) { listaIdETituloMudancasPorPeriodo.add(++j, grupo); } else { listaIdETituloMudancasPorPeriodo.get(++j).setGrupoMudanca(grupo.getIncidente()); } } } j = i; for (final RequisicaoMudancaDTO conhecimento : listaMudancaConhecimento) { final RequisicaoMudancaDTO aux = listaIdETituloMudancasPorPeriodo.get(j); if (aux.getIdRequisicaoMudanca() == conhecimento.getIdRequisicaoMudanca()) { if (aux.getConhecimento() == null || aux.getConhecimento().isEmpty()) { listaIdETituloMudancasPorPeriodo.get(j).setConhecimento(conhecimento.getConhecimento()); } else if (j + 1 == listaIdETituloMudancasPorPeriodo.size() || listaIdETituloMudancasPorPeriodo.get(j + 1).getIdRequisicaoMudanca() != aux.getIdRequisicaoMudanca()) { listaIdETituloMudancasPorPeriodo.add(++j, conhecimento); } else { listaIdETituloMudancasPorPeriodo.get(++j).setConhecimento(conhecimento.getIncidente()); } } } j = i; for (final RequisicaoMudancaDTO itemConfiguracao : listaMudancaItemConfiguracao) { final RequisicaoMudancaDTO aux = listaIdETituloMudancasPorPeriodo.get(j); if (aux.getIdRequisicaoMudanca() == itemConfiguracao.getIdRequisicaoMudanca()) { if (aux.getItemConfiguracao() == null || aux.getItemConfiguracao().isEmpty()) { listaIdETituloMudancasPorPeriodo.get(j).setItemConfiguracao(itemConfiguracao.getItemConfiguracao()); } else if (j + 1 == listaIdETituloMudancasPorPeriodo.size() || listaIdETituloMudancasPorPeriodo.get(j + 1).getIdRequisicaoMudanca() != aux.getIdRequisicaoMudanca()) { listaIdETituloMudancasPorPeriodo.add(++j, itemConfiguracao); } else { listaIdETituloMudancasPorPeriodo.get(++j).setItemConfiguracao(itemConfiguracao.getIncidente()); } } } i += listaIdETituloMudancasPorPeriodo.size() - tamanhoInicio; } if (!listaIdETituloMudancasPorPeriodo.isEmpty()) { Integer idRequisicaoMudancaAnterior = listaIdETituloMudancasPorPeriodo.get(0).getIdRequisicaoMudanca(); Integer totalIncidente = 0; Integer totalServico = 0; Integer totalProblema = 0; Integer totalConhecimento = 0; Integer totalItemConfiguracao = 0; for (int i = 0; i < listaIdETituloMudancasPorPeriodo.size(); i++) { if (listaIdETituloMudancasPorPeriodo.get(i).getIdRequisicaoMudanca().equals(idRequisicaoMudancaAnterior)) { if (listaIdETituloMudancasPorPeriodo.get(i).getIncidente() != null && !listaIdETituloMudancasPorPeriodo.get(i).getIncidente().isEmpty()) { totalIncidente++; } if (listaIdETituloMudancasPorPeriodo.get(i).getServico() != null && !listaIdETituloMudancasPorPeriodo.get(i).getServico().isEmpty()) { totalServico++; } if (listaIdETituloMudancasPorPeriodo.get(i).getProblema() != null && !listaIdETituloMudancasPorPeriodo.get(i).getProblema().isEmpty()) { totalProblema++; } if (listaIdETituloMudancasPorPeriodo.get(i).getConhecimento() != null && !listaIdETituloMudancasPorPeriodo.get(i).getConhecimento().isEmpty()) { totalConhecimento++; } if (listaIdETituloMudancasPorPeriodo.get(i).getItemConfiguracao() != null && !listaIdETituloMudancasPorPeriodo.get(i).getItemConfiguracao().isEmpty()) { totalItemConfiguracao++; } } else { final RequisicaoMudancaDTO mudancaDTO = new RequisicaoMudancaDTO(); mudancaDTO.setTitulo(this.negritoHtml(UtilI18N.internacionaliza(request, "citcorpore.comum.totalMudanca"))); mudancaDTO.setIncidente(this.negritoHtml(totalIncidente.toString())); mudancaDTO.setServico(this.negritoHtml(totalServico.toString())); mudancaDTO.setProblema(this.negritoHtml(totalProblema.toString())); mudancaDTO.setConhecimento(this.negritoHtml(totalConhecimento.toString())); mudancaDTO.setItemConfiguracao(this.negritoHtml(totalItemConfiguracao.toString())); listaIdETituloMudancasPorPeriodo.add(i++, mudancaDTO); totalIncidente = 0; totalServico = 0; totalProblema = 0; totalConhecimento = 0; totalItemConfiguracao = 0; if (listaIdETituloMudancasPorPeriodo.get(i).getIncidente() != null && !listaIdETituloMudancasPorPeriodo.get(i).getIncidente().isEmpty()) { totalIncidente++; } if (listaIdETituloMudancasPorPeriodo.get(i).getServico() != null && !listaIdETituloMudancasPorPeriodo.get(i).getServico().isEmpty()) { totalServico++; } if (listaIdETituloMudancasPorPeriodo.get(i).getProblema() != null && !listaIdETituloMudancasPorPeriodo.get(i).getProblema().isEmpty()) { totalProblema++; } if (listaIdETituloMudancasPorPeriodo.get(i).getConhecimento() != null && !listaIdETituloMudancasPorPeriodo.get(i).getConhecimento().isEmpty()) { totalConhecimento++; } if (listaIdETituloMudancasPorPeriodo.get(i).getItemConfiguracao() != null && !listaIdETituloMudancasPorPeriodo.get(i).getItemConfiguracao().isEmpty()) { totalItemConfiguracao++; } idRequisicaoMudancaAnterior = listaIdETituloMudancasPorPeriodo.get(i).getIdRequisicaoMudanca(); } } final RequisicaoMudancaDTO mudancaDTO = new RequisicaoMudancaDTO(); mudancaDTO.setTitulo(this.negritoHtml(UtilI18N.internacionaliza(request, "citcorpore.comum.totalMudanca"))); mudancaDTO.setIncidente(this.negritoHtml(totalIncidente.toString())); mudancaDTO.setServico(this.negritoHtml(totalServico.toString())); mudancaDTO.setProblema(this.negritoHtml(totalProblema.toString())); mudancaDTO.setConhecimento(this.negritoHtml(totalConhecimento.toString())); mudancaDTO.setItemConfiguracao(this.negritoHtml(totalItemConfiguracao.toString())); listaIdETituloMudancasPorPeriodo.add(mudancaDTO); } return listaIdETituloMudancasPorPeriodo; } public Timestamp MontardataHoraAgendamentoInicial(final RequisicaoMudancaDTO requisicaoMudancaDto) { final Timestamp dataHoraInicio = requisicaoMudancaDto.getDataHoraInicioAgendada(); final SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm"); String horaAgendamentoInicialSTR = format.format(dataHoraInicio); horaAgendamentoInicialSTR = horaAgendamentoInicialSTR.substring(0, 11); final String horaAgendamentoInicial = requisicaoMudancaDto.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; } public Timestamp MontardataHoraAgendamentoFinal(final RequisicaoMudancaDTO requisicaoMudancaDto) { final Timestamp dataHoraFim = requisicaoMudancaDto.getDataHoraTerminoAgendada(); final SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm"); final String horaAgendamentoFinalSTR = format.format(dataHoraFim); final String horaAgendamentoFinal = requisicaoMudancaDto.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; } public void calculaTempoAtraso(final RequisicaoMudancaDTO requisicaoMudancaDto) throws Exception { requisicaoMudancaDto.setPrazoHH(0); requisicaoMudancaDto.setPrazoMM(0); if (requisicaoMudancaDto.getDataHoraInicioAgendada() != null && requisicaoMudancaDto.getDataHoraTerminoAgendada() != null) { final Timestamp dataHoraInicioComparacao = requisicaoMudancaDto.getDataHoraInicioAgendada(); final Timestamp dataHoraFinalComparacao = requisicaoMudancaDto.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(); requisicaoMudancaDto.setPrazoHH(new Integer(hora.substring(0, tam - 2))); requisicaoMudancaDto.setPrazoMM(new Integer(hora.substring(tam - 2, tam))); } } } public boolean seHoraInicialMenorQAtual(final RequisicaoMudancaDTO requisicaoMudancaDto) { 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 = requisicaoMudancaDto.getDataHoraInicioAgendada(); final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); final String dataAgendamentoFinalSTR = format.format(dataHoraInicio); if (dataAtualStr.equals(dataAgendamentoFinalSTR)) { String horaAgendamentoInicial = requisicaoMudancaDto.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; } public boolean seHoraFinalMenorQAtual(final RequisicaoMudancaDTO requisicaoMudancaDto) { 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 = requisicaoMudancaDto.getDataHoraTerminoAgendada(); final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); final String dataAgendamentoFinalSTR = format.format(dataHoraFim); if (dataAtualStr.equals(dataAgendamentoFinalSTR)) { String horaAgendamentoFim = requisicaoMudancaDto.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; } public boolean seHoraFinalMenorQHoraInicial(final RequisicaoMudancaDTO requisicaoMudancaDto) { 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 = requisicaoMudancaDto.getDataHoraInicioAgendada(); final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); final String dataAgendamentoInicialSTR = format.format(dataHoraInicio); final Timestamp dataHoraFim = requisicaoMudancaDto.getDataHoraTerminoAgendada(); final String dataAgendamentoFinalSTR = format.format(dataHoraFim); String horaAgendamentoFim = requisicaoMudancaDto.getHoraAgendamentoFinal(); String horaAgendamentoInicial = requisicaoMudancaDto.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 RequisicaoMudancaDTO requisicaoMudancaDto) throws Exception { boolean resultado = false; if (requisicaoMudancaDto != null && requisicaoMudancaDto.getIdGrupoAtual() != null && requisicaoMudancaDto.getIdTipoMudanca() != null) { final Integer idGrupoExecutor = requisicaoMudancaDto.getIdGrupoAtual(); final Integer idTipoMudanca = requisicaoMudancaDto.getIdTipoMudanca(); final PermissoesFluxoService permissoesFluxoService = (PermissoesFluxoService) ServiceLocator.getInstance().getService(PermissoesFluxoService.class, null); resultado = permissoesFluxoService.permissaoGrupoExecutor(idTipoMudanca, idGrupoExecutor); } return resultado; } @Override public String getUrlInformacoesComplementares(final RequisicaoMudancaDTO 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.getIdRequisicaoMudanca() != null && requisicaoLiberacaoDTO.getIdRequisicaoMudanca().intValue() > 0) { url += "idRequisicao=" + requisicaoLiberacaoDTO.getIdRequisicaoMudanca() + "&"; 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 boolean verificaPermissaoGrupoCancelar(final Integer idTipoMudan�a, final Integer idGrupo) throws ServiceException, Exception { boolean isOk = false; final TipoMudancaService tipoMudancaService = (TipoMudancaService) ServiceLocator.getInstance().getService(TipoMudancaService.class, null); TipoMudancaDTO tipoMudancaDto = new TipoMudancaDTO(); final PermissoesFluxoDao permissoesDao = new PermissoesFluxoDao(); tipoMudancaDto.setIdTipoMudanca(idTipoMudan�a); tipoMudancaDto = (TipoMudancaDTO) tipoMudancaService.restore(tipoMudancaDto); if (tipoMudancaDto != null) { final PermissoesFluxoDTO permissoesDto = permissoesDao.permissaoGrupoCancelar(idGrupo, tipoMudancaDto.getIdTipoFluxo()); if (permissoesDto != null && permissoesDto.getCancelar() != null && permissoesDto.getCancelar().equalsIgnoreCase("S")) { isOk = true; } } return isOk; } /* ################################################# HISTORICO MUDANCA ################################################# */ public HistoricoMudancaDTO createHistoricoMudanca(final RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception { final HistoricoMudancaDTO historico = new HistoricoMudancaDTO(); RequisicaoMudancaDTO requisicaoMudancaDTOAux = requisicaoMudancaDTO; final Integer idExecutormodificacao = requisicaoMudancaDTO.getUsuarioDto().getIdEmpregado(); final RequisicaoMudancaService requisicaoMudancaService = (RequisicaoMudancaService) ServiceLocator.getInstance().getService(RequisicaoMudancaService.class, null); requisicaoMudancaDTOAux = (RequisicaoMudancaDTO) requisicaoMudancaService.restore(requisicaoMudancaDTO); requisicaoMudancaDTOAux.setAlterarSituacao(requisicaoMudancaDTO.getAlterarSituacao()); requisicaoMudancaDTOAux.setAcaoFluxo(requisicaoMudancaDTO.getAcaoFluxo()); Reflexao.copyPropertyValues(requisicaoMudancaDTOAux, historico); historico.setIdExecutorModificacao(idExecutormodificacao); historico.setRegistroexecucao(requisicaoMudancaDTO.getRegistroexecucao()); // esse bloco seta as informa��es de contato. ContatoRequisicaoMudancaDTO contatoRequisicaoMudancaDTO = new ContatoRequisicaoMudancaDTO(); final ContatoRequisicaoMudancaService contatoRequisicaoMudancaService = (ContatoRequisicaoMudancaService) ServiceLocator.getInstance().getService( ContatoRequisicaoMudancaService.class, null); requisicaoMudancaDTO.setIdContatoRequisicaoMudanca(historico.getIdContatoRequisicaoMudanca()); contatoRequisicaoMudancaDTO = contatoRequisicaoMudancaService.restoreContatosById(requisicaoMudancaDTO.getIdContatoRequisicaoMudanca()); if (contatoRequisicaoMudancaDTO != null) { historico.setNomeContato(contatoRequisicaoMudancaDTO.getNomecontato()); historico.setEmailSolicitante(contatoRequisicaoMudancaDTO.getEmailcontato()); historico.setIdContatoRequisicaoMudanca(contatoRequisicaoMudancaDTO.getIdContatoRequisicaoMudanca()); historico.setIdLocalidade(contatoRequisicaoMudancaDTO.getIdLocalidade()); historico.setRamal(contatoRequisicaoMudancaDTO.getRamal()); historico.setTelefoneContato(contatoRequisicaoMudancaDTO.getTelefonecontato()); historico.setObservacao(contatoRequisicaoMudancaDTO.getObservacao()); } HistoricoMudancaDTO ultVersao = new HistoricoMudancaDTO(); ultVersao = this.getHistoricoMudancaDao().maxIdHistorico(requisicaoMudancaDTO); if (ultVersao.getIdHistoricoMudanca() != null) { ultVersao = (HistoricoMudancaDTO) this.getHistoricoMudancaDao().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; } public HistoricoMudancaDao getHistoricoMudancaDao() throws ServiceException { return (HistoricoMudancaDao) this.getHistoricoMudDao(); } protected CrudDAO getHistoricoMudDao() throws ServiceException { return new HistoricoMudancaDao(); } public Collection<RequisicaoMudancaResponsavelDTO> listarColResponsaveis(final HistoricoMudancaDTO historicoMudancaDTO) throws ServiceException, Exception { final RequisicaoMudancaResponsavelDao requisicaoMudancaResponsavelDao = new RequisicaoMudancaResponsavelDao(); final Collection<RequisicaoMudancaResponsavelDTO> requisicaoMudancaResponsavelDTOs = requisicaoMudancaResponsavelDao.findByIdMudancaEDataFim(historicoMudancaDTO .getIdRequisicaoMudanca()); return requisicaoMudancaResponsavelDTOs; } public List<RequisicaoMudancaItemConfiguracaoDTO> listarColItemConfiguracao(final HistoricoMudancaDTO historicoMudancaDTO) throws ServiceException, Exception { final RequisicaoMudancaItemConfiguracaoDao requisicaoMudancaItemConfiguracaoDao = new RequisicaoMudancaItemConfiguracaoDao(); final List<RequisicaoMudancaItemConfiguracaoDTO> requisicaoMudancaItemConfiguracaoDTOs = (List<RequisicaoMudancaItemConfiguracaoDTO>) requisicaoMudancaItemConfiguracaoDao .findByIdMudancaEDataFim(historicoMudancaDTO.getIdRequisicaoMudanca()); return requisicaoMudancaItemConfiguracaoDTOs; } public List<RequisicaoMudancaServicoDTO> listarServico(final HistoricoMudancaDTO historicoMudancaDTO) throws ServiceException, Exception { final RequisicaoMudancaServicoDao requisicaoMudancaServicoDao = new RequisicaoMudancaServicoDao(); final List<RequisicaoMudancaServicoDTO> requisicaoMudancaServicoDTOs = (List<RequisicaoMudancaServicoDTO>) requisicaoMudancaServicoDao .findByIdMudancaEDataFim(historicoMudancaDTO.getIdRequisicaoMudanca()); return requisicaoMudancaServicoDTOs; } public List<ProblemaMudancaDTO> listarProblema(final HistoricoMudancaDTO historicoMudancaDTO) throws ServiceException, Exception { final ProblemaMudancaDAO problemaMudancaDAO = new ProblemaMudancaDAO(); final List<ProblemaMudancaDTO> problemaMudancaDTOs = (List<ProblemaMudancaDTO>) problemaMudancaDAO.findByIdMudancaEDataFim(historicoMudancaDTO.getIdRequisicaoMudanca()); return problemaMudancaDTOs; } public List<GrupoRequisicaoMudancaDTO> listarGrupo(final HistoricoMudancaDTO historicoMudancaDTO) throws ServiceException, Exception { final GrupoRequisicaoMudancaDao grupoRequisicaoMudancaDAO = new GrupoRequisicaoMudancaDao(); final List<GrupoRequisicaoMudancaDTO> grupoRequisicaoMudancaDTOs = (List<GrupoRequisicaoMudancaDTO>) grupoRequisicaoMudancaDAO.findByIdMudancaEDataFim(historicoMudancaDTO .getIdRequisicaoMudanca()); return grupoRequisicaoMudancaDTOs; } public List<RequisicaoMudancaRiscoDTO> listarRiscos(final HistoricoMudancaDTO historicoMudancaDTO) throws ServiceException, Exception { final RequisicaoMudancaRiscoDao riscoDao = new RequisicaoMudancaRiscoDao(); final List<RequisicaoMudancaRiscoDTO> problemaMudancaDTOs = (List<RequisicaoMudancaRiscoDTO>) riscoDao.findByIdRequisicaoMudancaEDataFim(historicoMudancaDTO .getIdRequisicaoMudanca()); return problemaMudancaDTOs; } public List<AprovacaoMudancaDTO> listarAprovacoes(final HistoricoMudancaDTO historicoMudancaDTO) throws ServiceException, Exception { final AprovacaoMudancaDao aprovacaoDao = new AprovacaoMudancaDao(); final List<AprovacaoMudancaDTO> aprovacaoMudancaDTOs = (List<AprovacaoMudancaDTO>) aprovacaoDao.listaAprovacaoMudancaPorIdRequisicaoMudancaEHistorico( historicoMudancaDTO.getIdRequisicaoMudanca(), null, null); return aprovacaoMudancaDTOs; } public List<LiberacaoMudancaDTO> listarLiberacoes(final HistoricoMudancaDTO historicoMudancaDTO) throws ServiceException, Exception { final LiberacaoMudancaDao liberacaoMudancaDao = new LiberacaoMudancaDao(); final List<LiberacaoMudancaDTO> liberacaoMudancaDTOs = (List<LiberacaoMudancaDTO>) liberacaoMudancaDao.findByIdRequisicaoMudanca(historicoMudancaDTO.getIdLiberacao(), historicoMudancaDTO.getIdRequisicaoMudanca()); return liberacaoMudancaDTOs; } public List<RequisicaoMudancaDTO> listarSolicitacaoServico(final HistoricoMudancaDTO historicoMudancaDTO) throws ServiceException, Exception { final RequisicaoMudancaDao mudancaDao = this.getDao(); final List<RequisicaoMudancaDTO> solicitacaoMudancaDTOs = (List<RequisicaoMudancaDTO>) mudancaDao.findByIdRequisicaoMudancaEDataFim(historicoMudancaDTO .getIdRequisicaoMudanca()); return solicitacaoMudancaDTOs; } public void deleteAdicionaTabelaResponsavel(final RequisicaoMudancaDTO requisicaoMudancaDTO, final TransactionControler tc) throws Exception { Collection<RequisicaoMudancaResponsavelDTO> colResponsavelBanco = new ArrayList<RequisicaoMudancaResponsavelDTO>(); final RequisicaoMudancaResponsavelDao responsavelDao = new RequisicaoMudancaResponsavelDao(); colResponsavelBanco = responsavelDao.findByIdMudancaEDataFim(requisicaoMudancaDTO.getIdRequisicaoMudanca()); responsavelDao.setTransactionControler(tc); boolean grava = false; boolean exclui = false; int idResp1 = 0; int idResp2 = 0; if (colResponsavelBanco == null || colResponsavelBanco.size() == 0) { for (final RequisicaoMudancaResponsavelDTO requisicaoMudancaResponsavelDTO : requisicaoMudancaDTO.getColResponsaveis()) { requisicaoMudancaResponsavelDTO.setIdRequisicaoMudanca(requisicaoMudancaDTO.getIdRequisicaoMudanca()); responsavelDao.create(requisicaoMudancaResponsavelDTO); } } else { if (requisicaoMudancaDTO.getColResponsaveis() != null && requisicaoMudancaDTO.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 RequisicaoMudancaResponsavelDTO requisicaoMudancaResponsavelDTO : requisicaoMudancaDTO.getColResponsaveis()) { for (final RequisicaoMudancaResponsavelDTO requisicaoMudancaResponsavelDTO2 : colResponsavelBanco) { idResp1 = requisicaoMudancaResponsavelDTO.getIdResponsavel(); idResp2 = requisicaoMudancaResponsavelDTO2.getIdResponsavel(); if (idResp1 == idResp2) { grava = false; break; } else { grava = true; } } if (grava) { requisicaoMudancaResponsavelDTO.setIdRequisicaoMudanca(requisicaoMudancaDTO.getIdRequisicaoMudanca()); responsavelDao.create(requisicaoMudancaResponsavelDTO); } } // 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 RequisicaoMudancaResponsavelDTO requisicaoMudancaResponsavelDTO : colResponsavelBanco) { for (final RequisicaoMudancaResponsavelDTO requisicaoMudancaResponsavelDTO2 : requisicaoMudancaDTO.getColResponsaveis()) { idResp1 = requisicaoMudancaResponsavelDTO.getIdResponsavel(); idResp2 = requisicaoMudancaResponsavelDTO2.getIdResponsavel(); if (idResp1 == idResp2) { exclui = false; break; } else { exclui = true; requisicaoMudancaResponsavelDTO.setDataFim(UtilDatas.getDataAtual()); } } if (exclui) { responsavelDao.update(requisicaoMudancaResponsavelDTO); } } } } } } public void deleteAdicionaTabelaProblema(final RequisicaoMudancaDTO requisicaoMudancaDTO, final TransactionControler tc) throws Exception { Collection<ProblemaMudancaDTO> colProblemaBanco = new ArrayList<ProblemaMudancaDTO>(); final ProblemaMudancaDAO problemaDao = new ProblemaMudancaDAO(); colProblemaBanco = problemaDao.findByIdMudancaEDataFim(requisicaoMudancaDTO.getIdRequisicaoMudanca()); problemaDao.setTransactionControler(tc); boolean grava = false; boolean exclui = false; int idProblema1 = 0; int idProblema2 = 0; if (colProblemaBanco == null || colProblemaBanco.size() == 0) { for (final ProblemaMudancaDTO problemamudancaDto : requisicaoMudancaDTO.getListProblemaMudancaDTO()) { problemamudancaDto.setIdRequisicaoMudanca(requisicaoMudancaDTO.getIdRequisicaoMudanca()); problemaDao.create(problemamudancaDto); } } else { if (requisicaoMudancaDTO.getListProblemaMudancaDTO() != null && requisicaoMudancaDTO.getListProblemaMudancaDTO().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 ProblemaMudancaDTO problemaMudancaDTO : requisicaoMudancaDTO.getListProblemaMudancaDTO()) { for (final ProblemaMudancaDTO problemaMudancaDTO2 : colProblemaBanco) { idProblema1 = problemaMudancaDTO.getIdProblema(); idProblema2 = problemaMudancaDTO2.getIdProblema(); if (idProblema1 == idProblema2) { grava = false; break; } else { grava = true; } } if (grava) { problemaMudancaDTO.setIdRequisicaoMudanca(requisicaoMudancaDTO.getIdRequisicaoMudanca()); problemaDao.create(problemaMudancaDTO); } } // 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 (colProblemaBanco != null && colProblemaBanco.size() > 0) { for (final ProblemaMudancaDTO problemaMudancaDTO : colProblemaBanco) { for (final ProblemaMudancaDTO requisicaoMudancaResponsavelDTO2 : requisicaoMudancaDTO.getListProblemaMudancaDTO()) { idProblema1 = problemaMudancaDTO.getIdProblema(); idProblema2 = requisicaoMudancaResponsavelDTO2.getIdProblema(); if (idProblema1 == idProblema2) { exclui = false; break; } else { exclui = true; problemaMudancaDTO.setDataFim(UtilDatas.getDataAtual()); } } if (exclui) { problemaDao.update(problemaMudancaDTO); } } } } } } public void deleteAdicionaTabelaRiscos(final RequisicaoMudancaDTO requisicaoMudancaDTO, final TransactionControler tc) throws Exception { Collection<RequisicaoMudancaRiscoDTO> colRiscosBanco = new ArrayList<RequisicaoMudancaRiscoDTO>(); final RequisicaoMudancaRiscoDao riscosDao = new RequisicaoMudancaRiscoDao(); colRiscosBanco = riscosDao.findByIdRequisicaoMudancaEDataFim(requisicaoMudancaDTO.getIdRequisicaoMudanca()); riscosDao.setTransactionControler(tc); boolean grava = false; boolean exclui = false; int idRisco1 = 0; int idRisco2 = 0; if (colRiscosBanco == null || colRiscosBanco.size() == 0) { for (final RequisicaoMudancaRiscoDTO riscoMudancaDto : requisicaoMudancaDTO.getListRequisicaoMudancaRiscoDTO()) { riscoMudancaDto.setIdRequisicaoMudanca(requisicaoMudancaDTO.getIdRequisicaoMudanca()); riscosDao.create(riscoMudancaDto); } } else { if (requisicaoMudancaDTO.getListRequisicaoMudancaRiscoDTO() != null && requisicaoMudancaDTO.getListRequisicaoMudancaRiscoDTO().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 RequisicaoMudancaRiscoDTO riscoMudancaDTO : requisicaoMudancaDTO.getListRequisicaoMudancaRiscoDTO()) { for (final RequisicaoMudancaRiscoDTO riscoMudancaDTO2 : colRiscosBanco) { idRisco1 = riscoMudancaDTO.getIdRisco(); idRisco2 = riscoMudancaDTO2.getIdRisco(); if (idRisco1 == idRisco2) { grava = false; break; } else { grava = true; } } if (grava) { riscoMudancaDTO.setIdRequisicaoMudanca(requisicaoMudancaDTO.getIdRequisicaoMudanca()); riscosDao.create(riscoMudancaDTO); } } // 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 (colRiscosBanco != null && colRiscosBanco.size() > 0) { for (final RequisicaoMudancaRiscoDTO riscoMudancaDTO : colRiscosBanco) { for (final RequisicaoMudancaRiscoDTO riscoMudancaDTO2 : requisicaoMudancaDTO.getListRequisicaoMudancaRiscoDTO()) { idRisco1 = riscoMudancaDTO.getIdRisco(); idRisco2 = riscoMudancaDTO2.getIdRisco(); if (idRisco1 == idRisco2) { exclui = false; break; } else { exclui = true; riscoMudancaDTO.setDataFim(UtilDatas.getDataAtual()); riscoMudancaDTO.setIdRequisicaoMudanca(requisicaoMudancaDTO.getIdRequisicaoMudanca()); } } if (exclui) { riscosDao.update(riscoMudancaDTO); } } } } } } public void deleteAdicionaTabelaGrupo(final RequisicaoMudancaDTO requisicaoMudancaDTO, final TransactionControler tc) throws Exception { Collection<GrupoRequisicaoMudancaDTO> colGrupoBanco = new ArrayList<GrupoRequisicaoMudancaDTO>(); final GrupoRequisicaoMudancaDao grupoDao = new GrupoRequisicaoMudancaDao(); colGrupoBanco = grupoDao.findByIdMudancaEDataFim(requisicaoMudancaDTO.getIdRequisicaoMudanca()); grupoDao.setTransactionControler(tc); boolean grava = false; boolean exclui = false; int idGrupo1 = 0; int idGrupo2 = 0; if (colGrupoBanco == null || colGrupoBanco.size() == 0) { for (final GrupoRequisicaoMudancaDTO gruporequisicaomudancaDto : requisicaoMudancaDTO.getListGrupoRequisicaoMudancaDTO()) { gruporequisicaomudancaDto.setIdRequisicaoMudanca(requisicaoMudancaDTO.getIdRequisicaoMudanca()); grupoDao.create(gruporequisicaomudancaDto); } } else { if (requisicaoMudancaDTO.getListGrupoRequisicaoMudancaDTO() != null && requisicaoMudancaDTO.getListGrupoRequisicaoMudancaDTO().size() > 0) { for (final GrupoRequisicaoMudancaDTO gruporequisicaomudancaDto : requisicaoMudancaDTO.getListGrupoRequisicaoMudancaDTO()) { for (final GrupoRequisicaoMudancaDTO gruporequisicaomudancaDto2 : colGrupoBanco) { idGrupo1 = gruporequisicaomudancaDto.getIdGrupo(); idGrupo2 = gruporequisicaomudancaDto2.getIdGrupo(); if (idGrupo1 == idGrupo2) { grava = false; break; } else { grava = true; } } if (grava) { gruporequisicaomudancaDto.setIdRequisicaoMudanca(requisicaoMudancaDTO.getIdRequisicaoMudanca()); grupoDao.create(gruporequisicaomudancaDto); } } if (colGrupoBanco != null && colGrupoBanco.size() > 0) { for (final GrupoRequisicaoMudancaDTO gruporequisicaomudancaDto : colGrupoBanco) { for (final GrupoRequisicaoMudancaDTO gruporequisicaomudancaDto2 : requisicaoMudancaDTO.getListGrupoRequisicaoMudancaDTO()) { idGrupo1 = gruporequisicaomudancaDto.getIdGrupo(); idGrupo2 = gruporequisicaomudancaDto2.getIdGrupo(); if (idGrupo1 == idGrupo2) { exclui = false; break; } else { exclui = true; gruporequisicaomudancaDto.setDataFim(UtilDatas.getDataAtual()); } } if (exclui) { grupoDao.update(gruporequisicaomudancaDto); } } } } } } private void gravarLiberacaoHistorico(final HistoricoMudancaDTO historicoMudancaDTO, final TransactionControler tc) throws ServiceException, Exception { final LiberacaoMudancaDao liberacaoMudancaDao = new LiberacaoMudancaDao(); if (tc != null) { liberacaoMudancaDao.setTransactionControler(tc); } if (historicoMudancaDTO.getListLiberacaoMudancaDTO() != null) { // grava no banco os historicos de liberacao. for (final LiberacaoMudancaDTO liberacaoMudancaDTO : historicoMudancaDTO.getListLiberacaoMudancaDTO()) { liberacaoMudancaDTO.setIdHistoricoMudanca(historicoMudancaDTO.getIdHistoricoMudanca()); liberacaoMudancaDTO.setIdRequisicaoMudanca(historicoMudancaDTO.getIdRequisicaoMudanca()); liberacaoMudancaDao.create(liberacaoMudancaDTO); } } } // metodo que grava o historico da grid de incidentes/requisicoes private void gravarSolicitacaoServicoHistoricos(final HistoricoMudancaDTO historicoMudancaDTO, final List<RequisicaoMudancaDTO> listSolicitacaoServicosMudanca, final TransactionControler tc) throws ServiceException, Exception { final SolicitacaoServicoMudancaDao solicitacaoServicoMudancaDao = new SolicitacaoServicoMudancaDao(); if (tc != null) { solicitacaoServicoMudancaDao.setTransactionControler(tc); } if (listSolicitacaoServicosMudanca != null) { // grava no banco os historicos de liberacao. for (final RequisicaoMudancaDTO solicitacaoMudancaDTO : listSolicitacaoServicosMudanca) { final SolicitacaoServicoMudancaDTO solicitacaoServicoMudancaDTO = new SolicitacaoServicoMudancaDTO(); solicitacaoServicoMudancaDTO.setIdHistoricoMudanca(historicoMudancaDTO.getIdHistoricoMudanca()); solicitacaoServicoMudancaDTO.setIdRequisicaoMudanca(historicoMudancaDTO.getIdRequisicaoMudanca()); solicitacaoServicoMudancaDTO.setIdSolicitacaoServico(solicitacaoMudancaDTO.getIdSolicitacaoServico()); solicitacaoServicoMudancaDao.create(solicitacaoServicoMudancaDTO); } } } public void fechaRelacionamentoMudanca(final TransactionControler tc, final RequisicaoMudancaDTO requisicaoMudancaDto) { if (tc != null) { this.fecharSolicitacaoServicoVinculadaMudanca(tc, requisicaoMudancaDto); this.fecharProblemaVinculadoMudanca(requisicaoMudancaDto, tc); this.fecharItemConfiguracaoVinculadoMudanca(requisicaoMudancaDto, tc); } } public void fecharSolicitacaoServicoVinculadaMudanca(final TransactionControler tc, final RequisicaoMudancaDTO requisicaoMudancaDto) { final SolicitacaoServicoMudancaDao solicitacaoServicoMudancaDao = new SolicitacaoServicoMudancaDao(); try { solicitacaoServicoMudancaDao.setTransactionControler(tc); final List<SolicitacaoServicoDTO> listSolicitacaoServicoDTO = solicitacaoServicoMudancaDao.listSolicitacaoByIdMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); if (listSolicitacaoServicoDTO != null && listSolicitacaoServicoDTO.size() > 0) { for (final SolicitacaoServicoDTO solicitacaoServicoDTO : listSolicitacaoServicoDTO) { new SolicitacaoServicoServiceEjb().fechaSolicitacaoServicoVinculadaByProblemaOrMudanca(solicitacaoServicoDTO, tc); } } } catch (final ServiceException e) { e.printStackTrace(); } catch (final Exception e) { e.printStackTrace(); } } public void fecharProblemaVinculadoMudanca(final RequisicaoMudancaDTO requisicaoMudancaDto, final TransactionControler tc) { final ProblemaMudancaDAO problemaMudancaDAO = new ProblemaMudancaDAO(); try { problemaMudancaDAO.setTransactionControler(tc); final List<ProblemaDTO> listProblemaDto = problemaMudancaDAO.listProblemaByIdMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); if (listProblemaDto != null && listProblemaDto.size() > 0) { for (final ProblemaDTO problemaDTO : listProblemaDto) { new ProblemaServiceEjb().fechaProblemaERelacionamento(problemaDTO, tc); } } } catch (final Exception e) { e.printStackTrace(); } } public void fecharItemConfiguracaoVinculadoMudanca(final RequisicaoMudancaDTO requisicaoMudancaDto, final TransactionControler tc) { final RequisicaoMudancaItemConfiguracaoDao requisicaoMudancaIcDao = new RequisicaoMudancaItemConfiguracaoDao(); try { requisicaoMudancaIcDao.setTransactionControler(tc); final List<ItemConfiguracaoDTO> listItemCofiguracao = requisicaoMudancaIcDao.listItemConfiguracaoByIdMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); if (listItemCofiguracao != null && listItemCofiguracao.size() > 0) { for (final ItemConfiguracaoDTO itemConfiguracaoDTO : listItemCofiguracao) { new ItemConfiguracaoServiceEjb().finalizarItemConfiguracao(itemConfiguracaoDTO, tc); } } } catch (final Exception e) { e.printStackTrace(); } } @Override public boolean verificarItensRelacionados(final RequisicaoMudancaDTO requisicaoMudancaDto) throws ServiceException, Exception { final RequisicaoMudancaItemConfiguracaoDao requisicaoMudancaIcDao = new RequisicaoMudancaItemConfiguracaoDao(); final ProblemaMudancaDAO problemaMudancaDAO = new ProblemaMudancaDAO(); final SolicitacaoServicoMudancaDao solicitacaoServicoMudancaDao = new SolicitacaoServicoMudancaDao(); final List<ProblemaDTO> listProblemaDto = problemaMudancaDAO.listProblemaByIdMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); final List<SolicitacaoServicoDTO> listSolicitacaoServicoDTO = solicitacaoServicoMudancaDao.listSolicitacaoByIdMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); final List<ItemConfiguracaoDTO> listItemCofiguracao = requisicaoMudancaIcDao.listItemConfiguracaoByIdMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); if (listProblemaDto != null && listProblemaDto.size() > 0) { return true; } else if (listSolicitacaoServicoDTO != null && listSolicitacaoServicoDTO.size() > 0) { return true; } else if (listItemCofiguracao != null && listItemCofiguracao.size() > 0) { return true; } return false; } public void updateTimeAction(final Integer idGrupoRedirect, final Integer idPrioridadeRedirect, final Integer idRequisicaoMudanca) throws ServiceException, LogicException { final ExecucaoMudancaServiceEjb execucaoMudancaService = new ExecucaoMudancaServiceEjb(); final RequisicaoMudancaDao requiscaoMudancaDao = this.getDao(); final OcorrenciaMudancaDao ocorrenciaMudancaDao = new OcorrenciaMudancaDao(); final TransactionControler tc = new TransactionControlerImpl(requiscaoMudancaDao.getAliasDB()); try { tc.start(); // Faz validacao, caso exista. requiscaoMudancaDao.setTransactionControler(tc); ocorrenciaMudancaDao.setTransactionControler(tc); List<RequisicaoMudancaDTO> listaRequisicaoMudanca = new ArrayList<RequisicaoMudancaDTO>(); RequisicaoMudancaDTO mudancaAuxDto = new RequisicaoMudancaDTO(); mudancaAuxDto.setIdRequisicaoMudanca(idRequisicaoMudanca); listaRequisicaoMudanca = (List<RequisicaoMudancaDTO>) requiscaoMudancaDao.find(mudancaAuxDto); if (listaRequisicaoMudanca != null) { mudancaAuxDto = listaRequisicaoMudanca.get(0); } final RequisicaoMudancaDTO requisicaoMudancaDto = new RequisicaoMudancaDTO(); requisicaoMudancaDto.setIdGrupoAtual(idGrupoRedirect); requisicaoMudancaDto.setPrioridade(idPrioridadeRedirect); requisicaoMudancaDto.setIdRequisicaoMudanca(idRequisicaoMudanca); requiscaoMudancaDao.updateNotNull(requisicaoMudancaDto); execucaoMudancaService.direcionaAtendimentoAutomatico(requisicaoMudancaDto, tc); final String strOcorr = "\nEscala��o autom�tica."; final JustificativaRequisicaoMudancaDTO justificativaDto = new JustificativaRequisicaoMudancaDTO(); justificativaDto.setIdJustificativaMudanca(requisicaoMudancaDto.getIdJustificativa()); justificativaDto.setDescricaoJustificativa(requisicaoMudancaDto.getComplementoJustificativa()); final UsuarioDTO usuarioDTO = new UsuarioDTO(); usuarioDTO.setLogin("Autom�tico"); OcorrenciaMudancaServiceEjb.create(requisicaoMudancaDto, null, strOcorr, OrigemOcorrencia.OUTROS, CategoriaOcorrencia.Atualizacao, null, CategoriaOcorrencia.Atualizacao.getDescricao(), usuarioDTO, 0, justificativaDto, tc); tc.commit(); } catch (final Exception e) { this.rollbackTransaction(tc, e); throw new ServiceException(e); } finally { try { tc.close(); } catch (final PersistenceException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } @Override public void gravaInformacoesGED(final Collection colArquivosUpload, final int idEmpresa, final RequisicaoMudancaDTO requisicaoMudancaDto, final TransactionControler tc) throws Exception { } // Thiago Fernandes - 01/11/2013 14:06 - Sol. 121468 - Cria��o de metodo para validar se foi ninformado o anxo plano de rever��o, caso n�o tenha deve ser aberta a aba de anxo // plano de rever��o. @Override public boolean planoDeReversaoInformado(final RequisicaoMudancaDTO requisicaoMudancaDto, final HttpServletRequest request) throws Exception { boolean planoReversaoInformado = true; TipoMudancaDTO tipoMudancaDto = new TipoMudancaDTO(); final AprovacaoMudancaDao aprovacaoMudancaDao = new AprovacaoMudancaDao(); final TipoMudancaDAO tipoMudancaDAO = new TipoMudancaDAO(); final TransactionControler tc = new TransactionControlerImpl(this.getDao().getAliasDB()); try { aprovacaoMudancaDao.setTransactionControler(tc); tipoMudancaDAO.setTransactionControler(tc); tc.start(); if (requisicaoMudancaDto.getIdTipoMudanca() != null) { tipoMudancaDto.setIdTipoMudanca(requisicaoMudancaDto.getIdTipoMudanca()); tipoMudancaDto = (TipoMudancaDTO) tipoMudancaDAO.restore(tipoMudancaDto); } if (requisicaoMudancaDto != null && requisicaoMudancaDto.getDataHoraInicioAgendada() != null && requisicaoMudancaDto.getHoraAgendamentoInicial() != null && requisicaoMudancaDto != null && requisicaoMudancaDto.getDataHoraInicioAgendada() != null && requisicaoMudancaDto.getHoraAgendamentoInicial() != null) { final boolean resultado = this.seHoraFinalMenorQHoraInicial(requisicaoMudancaDto); if (resultado == true) { throw new LogicException(UtilI18N.internacionaliza(request, "requisicaoMudanca.horaFinalMenorQueInicial")); } } if (requisicaoMudancaDto != null && requisicaoMudancaDto.getDataHoraInicioAgendada() != null && requisicaoMudancaDto.getHoraAgendamentoInicial() != null) { final boolean resultado = this.seHoraInicialMenorQAtual(requisicaoMudancaDto); if (resultado == true) { throw new LogicException(UtilI18N.internacionaliza(request, "requisicaoMudanca.horaInicialMenorQueAtual")); } } if (requisicaoMudancaDto != null && requisicaoMudancaDto.getDataHoraTerminoAgendada() != null && requisicaoMudancaDto.getHoraAgendamentoFinal() != null) { final boolean resultado = this.seHoraFinalMenorQAtual(requisicaoMudancaDto); if (resultado == true) { throw new LogicException(UtilI18N.internacionaliza(request, "requisicaoMudanca.horaFinalMenorQueAtual")); } } // gravando a aprova��o de mudan�a if (requisicaoMudancaDto.getListAprovacaoMudancaDTO() != null && !requisicaoMudancaDto.getFase().equalsIgnoreCase("Proposta")) { for (final AprovacaoMudancaDTO aprovacaoMudancaDto : requisicaoMudancaDto.getListAprovacaoMudancaDTO()) { aprovacaoMudancaDao.deleteLinha(requisicaoMudancaDto.getIdRequisicaoMudanca(), aprovacaoMudancaDto.getIdEmpregado()); aprovacaoMudancaDto.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca()); aprovacaoMudancaDto.setDataHoraInicio(UtilDatas.getDataHoraAtual()); aprovacaoMudancaDao.create(aprovacaoMudancaDto); } } if (requisicaoMudancaDto.getAcaoFluxo().equalsIgnoreCase("E") && !requisicaoMudancaDto.getFase().equalsIgnoreCase("Proposta")) { if (!requisicaoMudancaDto.getStatus().equalsIgnoreCase(SituacaoRequisicaoMudanca.Cancelada.name())) { if (tipoMudancaDto.getExigeAprovacao() != null) { if (!this.validacaoAvancaFluxo(requisicaoMudancaDto, tc)) { throw new LogicException(UtilI18N.internacionaliza(request, "requisicaoMudanca.essaSolicitacaoMudancaNaoFoiAprovada")); } } if (!requisicaoMudancaDto.getStatus().equalsIgnoreCase("Rejeitada")) { final Collection<UploadDTO> arquivosUpados = (Collection<UploadDTO>) request.getSession(true).getAttribute("colUploadPlanoDeReversaoGED"); if (arquivosUpados == null || arquivosUpados.size() == 0) { planoReversaoInformado = false; } } } } tc.commit(); } catch (final Exception e) { this.rollbackTransaction(tc, e); throw new ServiceException(e); } finally { try { tc.close(); } catch (final PersistenceException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return planoReversaoInformado; } }