package br.com.centralit.citcorpore.negocio;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import br.com.centralit.citcorpore.bean.AcordoNivelServicoDTO;
import br.com.centralit.citcorpore.bean.AcordoNivelServicoHistoricoDTO;
import br.com.centralit.citcorpore.bean.PrioridadeAcordoNivelServicoDTO;
import br.com.centralit.citcorpore.bean.PrioridadeServicoUnidadeDTO;
import br.com.centralit.citcorpore.bean.PrioridadeServicoUsuarioDTO;
import br.com.centralit.citcorpore.bean.ResultadosEsperadosDTO;
import br.com.centralit.citcorpore.bean.RevisarSlaDTO;
import br.com.centralit.citcorpore.bean.ServicoContratoDTO;
import br.com.centralit.citcorpore.bean.SlaRequisitoSlaDTO;
import br.com.centralit.citcorpore.bean.TempoAcordoNivelServicoDTO;
import br.com.centralit.citcorpore.integracao.AcordoNivelServicoDao;
import br.com.centralit.citcorpore.integracao.AcordoNivelServicoHistoricoDao;
import br.com.centralit.citcorpore.integracao.PrioridadeAcordoNivelServicoDao;
import br.com.centralit.citcorpore.integracao.PrioridadeServicoUnidadeDao;
import br.com.centralit.citcorpore.integracao.PrioridadeServicoUsuarioDao;
import br.com.centralit.citcorpore.integracao.ResultadosEsperadosDAO;
import br.com.centralit.citcorpore.integracao.RevisarSlaDao;
import br.com.centralit.citcorpore.integracao.SlaRequisitoSLADao;
import br.com.centralit.citcorpore.integracao.TempoAcordoNivelServicoDao;
import br.com.citframework.excecao.LogicException;
import br.com.citframework.excecao.PersistenceException;
import br.com.citframework.excecao.ServiceException;
import br.com.citframework.integracao.TransactionControler;
import br.com.citframework.integracao.TransactionControlerImpl;
import br.com.citframework.service.CrudServiceImpl;
import br.com.citframework.util.UtilDatas;
import br.com.citframework.util.UtilStrings;
public class AcordoNivelServicoServiceEjb extends CrudServiceImpl implements AcordoNivelServicoService {
private AcordoNivelServicoDao dao;
@Override
protected AcordoNivelServicoDao getDao() {
if (dao == null) {
dao = new AcordoNivelServicoDao();
}
return dao;
}
@Override
public AcordoNivelServicoDTO findAtivoByIdServicoContrato(final Integer idServicoContrato, final String tipo) throws Exception {
return this.getDao().findAtivoByIdServicoContrato(idServicoContrato, tipo);
}
@Override
public void copiarSLA(final Integer idAcordoNivelServico, final Integer idServicoContratoOrigem, final Integer[] idServicoCopiarPara) throws Exception {
final TempoAcordoNivelServicoDao tempoAcordoNivelServicoDao = new TempoAcordoNivelServicoDao();
final PrioridadeServicoUnidadeDao prioridadeServicoUnidadeDao = new PrioridadeServicoUnidadeDao();
final TransactionControler tc = new TransactionControlerImpl(this.getDao().getAliasDB());
try {
tc.start();
this.getDao().setTransactionControler(tc);
tempoAcordoNivelServicoDao.setTransactionControler(tc);
prioridadeServicoUnidadeDao.setTransactionControler(tc);
AcordoNivelServicoDTO acordoNivelServicoDTO = new AcordoNivelServicoDTO();
acordoNivelServicoDTO.setIdAcordoNivelServico(idAcordoNivelServico);
acordoNivelServicoDTO = (AcordoNivelServicoDTO) this.getDao().restore(acordoNivelServicoDTO);
final Collection colPrioridadesUnidades = prioridadeServicoUnidadeDao.findByIdServicoContrato(idServicoContratoOrigem);
for (final Integer element : idServicoCopiarPara) {
acordoNivelServicoDTO.setIdAcordoNivelServico(null);
acordoNivelServicoDTO.setIdServicoContrato(element);
acordoNivelServicoDTO = (AcordoNivelServicoDTO) this.getDao().create(acordoNivelServicoDTO);
if (acordoNivelServicoDTO.getTipo().equalsIgnoreCase("T")) { // TEMPO
final Collection colTempos = tempoAcordoNivelServicoDao.findByIdAcordo(idAcordoNivelServico);
if (colTempos != null) {
for (final Iterator it = colTempos.iterator(); it.hasNext();) {
final TempoAcordoNivelServicoDTO tempoAcordoNivelServicoDTO = (TempoAcordoNivelServicoDTO) it.next();
tempoAcordoNivelServicoDTO.setIdAcordoNivelServico(acordoNivelServicoDTO.getIdAcordoNivelServico());
try {
tempoAcordoNivelServicoDao.create(tempoAcordoNivelServicoDTO);
} catch (final Exception e) {
e.printStackTrace();
}
}
}
if (colPrioridadesUnidades != null) {
for (final Iterator it = colPrioridadesUnidades.iterator(); it.hasNext();) {
final PrioridadeServicoUnidadeDTO prioridadeServicoUnidadeDTO = (PrioridadeServicoUnidadeDTO) it.next();
prioridadeServicoUnidadeDTO.setIdServicoContrato(element);
try {
prioridadeServicoUnidadeDao.delete(prioridadeServicoUnidadeDTO);
} catch (final Exception e) {
e.printStackTrace(); // Deixa passar o erro, pos n�o influencia.
}
try {
prioridadeServicoUnidadeDao.create(prioridadeServicoUnidadeDTO);
} catch (final Exception e) {
e.printStackTrace(); // Deixa passar o erro, pos n�o influencia.
}
}
}
}
}
tc.commit();
} catch (final Exception e) {
this.rollbackTransaction(tc, e);
} finally {
try {
tc.close();
} catch (final PersistenceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
@Override
public Collection findByIdServicoContrato(final Integer parm) throws Exception {
try {
return this.getDao().findByIdServicoContrato(parm);
} catch (final Exception e) {
throw new ServiceException(e);
}
}
@Override
public Collection consultaPorIdServicoContrato(final Integer parm) throws Exception {
final ResultadosEsperadosDAO dao = new ResultadosEsperadosDAO();
final Collection colRetorno = new ArrayList<>();
try {
final Collection col = dao.findByIdServicoContrato(parm);
if (col != null && col.size() > 0) {
for (final Iterator it = col.iterator(); it.hasNext();) {
final ResultadosEsperadosDTO resultados = (ResultadosEsperadosDTO) it.next();
if (resultados.getDeleted() == null || resultados.getDeleted().equalsIgnoreCase("N") || resultados.getDeleted().trim().equals("")) {
if (!this.consultaAcordoNivelServicoAtivo(resultados)) {
colRetorno.add(resultados);
}
}
}
}
return colRetorno;
} catch (final Exception e) {
throw new ServiceException(e);
}
}
private boolean consultaAcordoNivelServicoAtivo(final ResultadosEsperadosDTO resultadosEsperadosDTO) throws ServiceException {
AcordoNivelServicoDTO acordoNivelServicoContratoDTO = new AcordoNivelServicoDTO();
acordoNivelServicoContratoDTO.setIdAcordoNivelServico(resultadosEsperadosDTO.getIdAcordoNivelServico());
try {
acordoNivelServicoContratoDTO = (AcordoNivelServicoDTO) this.getDao().restore(acordoNivelServicoContratoDTO);
final String situacao = acordoNivelServicoContratoDTO.getSituacao();
if (!situacao.equalsIgnoreCase("A")) {
return true;
}
return false;
} catch (final Exception e) {
throw new ServiceException(e);
}
}
@Override
public void deleteByIdServicoContrato(final Integer parm) throws Exception {
try {
this.getDao().deleteByIdServicoContrato(parm);
} catch (final Exception e) {
throw new ServiceException(e);
}
}
@Override
public Collection findByIdPrioridadePadrao(final Integer parm) throws Exception {
try {
return this.getDao().findByIdPrioridadePadrao(parm);
} catch (final Exception e) {
throw new ServiceException(e);
}
}
@Override
public void deleteByIdPrioridadePadrao(final Integer parm) throws Exception {
try {
this.getDao().deleteByIdPrioridadePadrao(parm);
} catch (final Exception e) {
throw new ServiceException(e);
}
}
/**
* M�todo para retornar os servi�os que possuem o SLA selecionado j� copiado, para ser tratado evitando duplica��o
* de SLA.
*
* @param titulo
* do SLA selecionado
* @return retorna os servi�os que possuem o SLA selecionado
* @throws Exception
* @author rodrigo.oliveira
*/
@Override
public List<ServicoContratoDTO> buscaServicosComContrato(final String tituloSla) throws Exception {
try {
return this.getDao().buscaServicosComContrato(tituloSla);
} catch (final Exception e) {
throw new ServiceException(e);
}
}
/**
* M�todo para verificar se existe cadastrado um cadastro o mesmo nome.
*
* @param HashMap
* mapFields
* @return true se o nome existir e false se n�o existir
* @throws Exception
* @author rodrigo.oliveira
*/
@Override
public boolean verificaSeNomeExiste(final HashMap mapFields) throws Exception {
final String tituloSLA = (String) mapFields.get("TITULOSLA");
try {
return this.getDao().verificaSeNomeExiste(tituloSLA);
} catch (final Exception e) {
throw new ServiceException(e);
}
}
@Override
public List<AcordoNivelServicoDTO> findAcordosSemVinculacaoDireta() throws Exception {
try {
return this.getDao().findAcordosSemVinculacaoDireta();
} catch (final Exception e) {
throw new ServiceException(e);
}
}
@Override
public AcordoNivelServicoDTO create(AcordoNivelServicoDTO acordoNivelServicoDTO, final AcordoNivelServicoHistoricoDTO acordoNivelServicoHistoricoDTO) throws ServiceException,
LogicException {
final TransactionControler transaction = new TransactionControlerImpl(this.getDao().getAliasDB());
final TempoAcordoNivelServicoDao tempoAcordoNivelServicoDao = new TempoAcordoNivelServicoDao();
final PrioridadeAcordoNivelServicoDao prioridadeAcordoNivelServicoDao = new PrioridadeAcordoNivelServicoDao();
final PrioridadeServicoUsuarioDao prioridadeServicoUsuarioDao = new PrioridadeServicoUsuarioDao();
final SlaRequisitoSLADao slaRequisitoSlaDao = new SlaRequisitoSLADao();
final AcordoNivelServicoHistoricoDao acordoNivelServicoHistoricoDao = new AcordoNivelServicoHistoricoDao();
final RevisarSlaDao revisarSlaDao = new RevisarSlaDao();
Integer idAcordoNivelServico = 0;
try {
this.getDao().setTransactionControler(transaction);
tempoAcordoNivelServicoDao.setTransactionControler(transaction);
prioridadeAcordoNivelServicoDao.setTransactionControler(transaction);
prioridadeServicoUsuarioDao.setTransactionControler(transaction);
slaRequisitoSlaDao.setTransactionControler(transaction);
acordoNivelServicoHistoricoDao.setTransactionControler(transaction);
revisarSlaDao.setTransactionControler(transaction);
transaction.start();
acordoNivelServicoDTO = (AcordoNivelServicoDTO) this.getDao().create(acordoNivelServicoDTO);
acordoNivelServicoDTO.setIdAcordoNivelServico(acordoNivelServicoDTO.getIdAcordoNivelServico());
if (acordoNivelServicoDTO.getIdAcordoNivelServico() != null) {
idAcordoNivelServico = acordoNivelServicoDTO.getIdAcordoNivelServico();
}
for (int i = 1; i <= 5; i++) {
final TempoAcordoNivelServicoDTO tempoAcordoNivelServicoDTO = new TempoAcordoNivelServicoDTO();
tempoAcordoNivelServicoDTO.setIdAcordoNivelServico(idAcordoNivelServico);
tempoAcordoNivelServicoDTO.setIdFase(1);
tempoAcordoNivelServicoDTO.setIdPrioridade(i);
tempoAcordoNivelServicoDTO.setTempoHH(acordoNivelServicoDTO.getHhCaptura()[i - 1]);
tempoAcordoNivelServicoDTO.setTempoMM(acordoNivelServicoDTO.getMmCaptura()[i - 1]);
tempoAcordoNivelServicoDao.create(tempoAcordoNivelServicoDTO);
}
for (int i = 1; i <= 5; i++) {
final TempoAcordoNivelServicoDTO tempoAcordoNivelServicoDTO = new TempoAcordoNivelServicoDTO();
tempoAcordoNivelServicoDTO.setIdAcordoNivelServico(idAcordoNivelServico);
tempoAcordoNivelServicoDTO.setIdFase(2);
tempoAcordoNivelServicoDTO.setIdPrioridade(i);
tempoAcordoNivelServicoDTO.setTempoHH(acordoNivelServicoDTO.getHhResolucao()[i - 1]);
tempoAcordoNivelServicoDTO.setTempoMM(acordoNivelServicoDTO.getMmResolucao()[i - 1]);
tempoAcordoNivelServicoDao.create(tempoAcordoNivelServicoDTO);
}
final List<PrioridadeAcordoNivelServicoDTO> colUnidades = acordoNivelServicoDTO.getListaPrioridadeUnidade();
if (colUnidades != null && colUnidades.size() > 0) {
for (final PrioridadeAcordoNivelServicoDTO prioridadeAcordoNivelServicoDTO : colUnidades) {
prioridadeAcordoNivelServicoDTO.setIdAcordoNivelServico(idAcordoNivelServico);
prioridadeAcordoNivelServicoDTO.setDataInicio(UtilDatas.getDataAtual());
prioridadeAcordoNivelServicoDao.create(prioridadeAcordoNivelServicoDTO);
}
}
final List<PrioridadeServicoUsuarioDTO> colUsuarios = acordoNivelServicoDTO.getListaPrioridadeUsuario();
if (colUsuarios != null && colUsuarios.size() > 0) {
for (final PrioridadeServicoUsuarioDTO prioridadeServicoUsuarioDTO : colUsuarios) {
prioridadeServicoUsuarioDTO.setIdAcordoNivelServico(idAcordoNivelServico);
prioridadeServicoUsuarioDTO.setDataInicio(UtilDatas.getDataAtual());
prioridadeServicoUsuarioDao.create(prioridadeServicoUsuarioDTO);
}
}
final List<SlaRequisitoSlaDTO> colSlaRequisitoSla = acordoNivelServicoDTO.getListaSlaRequisitoSlaDTO();
if (colSlaRequisitoSla != null && colSlaRequisitoSla.size() > 0) {
for (final SlaRequisitoSlaDTO slaRequisitoSlaDTO : colSlaRequisitoSla) {
slaRequisitoSlaDTO.setIdAcordoNivelServico(idAcordoNivelServico);
slaRequisitoSlaDTO.setDataUltModificacao(UtilDatas.getDataAtual());
slaRequisitoSlaDao.create(slaRequisitoSlaDTO);
}
}
final List<RevisarSlaDTO> colRevisarSla = acordoNivelServicoDTO.getListaRevisarSlaDTO();
if (colRevisarSla != null && colRevisarSla.size() > 0) {
for (final RevisarSlaDTO revisarSlaDTO : colRevisarSla) {
revisarSlaDTO.setIdAcordoNivelServico(idAcordoNivelServico);
revisarSlaDao.create(revisarSlaDTO);
}
}
final AcordoNivelServicoDTO acordoNivelServicoAux = new AcordoNivelServicoDTO();
acordoNivelServicoAux.setTempoAuto(acordoNivelServicoDTO.getTempoAuto());
acordoNivelServicoAux.setIdPrioridadeAuto1(acordoNivelServicoDTO.getIdPrioridadeAuto1());
acordoNivelServicoAux.setIdGrupo1(acordoNivelServicoDTO.getIdGrupo1());
acordoNivelServicoAux.setIdAcordoNivelServico(idAcordoNivelServico);
this.getDao().updateTemposAcoes(acordoNivelServicoAux);
acordoNivelServicoHistoricoDTO.setIdAcordoNivelServico(idAcordoNivelServico);
acordoNivelServicoHistoricoDao.create(acordoNivelServicoHistoricoDTO);
transaction.commit();
} catch (final Exception e) {
e.printStackTrace();
this.rollbackTransaction(transaction, e);
throw new ServiceException(e.getMessage());
} finally {
try {
transaction.close();
} catch (final PersistenceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return acordoNivelServicoDTO;
}
@Override
public AcordoNivelServicoDTO update(final AcordoNivelServicoDTO acordoNivelServicoDTO, final AcordoNivelServicoHistoricoDTO acordoNivelServicoHistoricoDTO)
throws ServiceException, LogicException {
final TransactionControler transaction = new TransactionControlerImpl(this.getDao().getAliasDB());
final TempoAcordoNivelServicoDao tempoAcordoNivelServicoDao = new TempoAcordoNivelServicoDao();
final PrioridadeAcordoNivelServicoDao prioridadeAcordoNivelServicoDao = new PrioridadeAcordoNivelServicoDao();
final PrioridadeServicoUsuarioDao prioridadeServicoUsuarioDao = new PrioridadeServicoUsuarioDao();
final SlaRequisitoSLADao slaRequisitoSlaDao = new SlaRequisitoSLADao();
final AcordoNivelServicoHistoricoDao acordoNivelServicoHistoricoDao = new AcordoNivelServicoHistoricoDao();
final RevisarSlaDao revisarSlaDao = new RevisarSlaDao();
final Integer idAcordoNivelServico = acordoNivelServicoDTO.getIdAcordoNivelServico();
try {
this.getDao().setTransactionControler(transaction);
tempoAcordoNivelServicoDao.setTransactionControler(transaction);
prioridadeAcordoNivelServicoDao.setTransactionControler(transaction);
prioridadeServicoUsuarioDao.setTransactionControler(transaction);
slaRequisitoSlaDao.setTransactionControler(transaction);
acordoNivelServicoHistoricoDao.setTransactionControler(transaction);
revisarSlaDao.setTransactionControler(transaction);
transaction.start();
this.getDao().updateNotNull(acordoNivelServicoDTO);
tempoAcordoNivelServicoDao.deleteByIdAcordo(idAcordoNivelServico);
for (int i = 1; i <= 5; i++) {
final TempoAcordoNivelServicoDTO tempoAcordoNivelServicoDTO = new TempoAcordoNivelServicoDTO();
tempoAcordoNivelServicoDTO.setIdAcordoNivelServico(idAcordoNivelServico);
tempoAcordoNivelServicoDTO.setIdFase(1);
tempoAcordoNivelServicoDTO.setIdPrioridade(i);
tempoAcordoNivelServicoDTO.setTempoHH(acordoNivelServicoDTO.getHhCaptura()[i - 1]);
tempoAcordoNivelServicoDTO.setTempoMM(acordoNivelServicoDTO.getMmCaptura()[i - 1]);
tempoAcordoNivelServicoDao.create(tempoAcordoNivelServicoDTO);
}
for (int i = 1; i <= 5; i++) {
final TempoAcordoNivelServicoDTO tempoAcordoNivelServicoDTO = new TempoAcordoNivelServicoDTO();
tempoAcordoNivelServicoDTO.setIdAcordoNivelServico(idAcordoNivelServico);
tempoAcordoNivelServicoDTO.setIdFase(2);
tempoAcordoNivelServicoDTO.setIdPrioridade(i);
tempoAcordoNivelServicoDTO.setTempoHH(acordoNivelServicoDTO.getHhResolucao()[i - 1]);
tempoAcordoNivelServicoDTO.setTempoMM(acordoNivelServicoDTO.getMmResolucao()[i - 1]);
tempoAcordoNivelServicoDao.create(tempoAcordoNivelServicoDTO);
}
// Atualiza prioridade unidades
final List<PrioridadeAcordoNivelServicoDTO> listaPrioridadeUnidadeAtual = (List<PrioridadeAcordoNivelServicoDTO>) prioridadeAcordoNivelServicoDao
.findByIdAcordoNivelServico(idAcordoNivelServico);
if (listaPrioridadeUnidadeAtual != null && listaPrioridadeUnidadeAtual.size() > 0) {
for (final PrioridadeAcordoNivelServicoDTO prioridadeAcordoNivelServicoDTO : listaPrioridadeUnidadeAtual) {
if (prioridadeAcordoNivelServicoDTO.getDataFim() == null) {
prioridadeAcordoNivelServicoDTO.setDataFim(UtilDatas.getDataAtual());
prioridadeAcordoNivelServicoDao.update(prioridadeAcordoNivelServicoDTO);
}
}
}
final List<PrioridadeAcordoNivelServicoDTO> colUnidades = acordoNivelServicoDTO.getListaPrioridadeUnidade();
if (colUnidades != null && colUnidades.size() > 0) {
for (final PrioridadeAcordoNivelServicoDTO prioridadeAcordoNivelServicoDTO : colUnidades) {
prioridadeAcordoNivelServicoDTO.setIdAcordoNivelServico(idAcordoNivelServico);
prioridadeAcordoNivelServicoDTO.setDataInicio(UtilDatas.getDataAtual());
prioridadeAcordoNivelServicoDTO.setDataFim(null);
final PrioridadeAcordoNivelServicoDTO prioridadeAcordoNivelServicoAux = (PrioridadeAcordoNivelServicoDTO) prioridadeAcordoNivelServicoDao
.restore(prioridadeAcordoNivelServicoDTO);
if (prioridadeAcordoNivelServicoAux != null) {
prioridadeAcordoNivelServicoDao.update(prioridadeAcordoNivelServicoDTO);
} else {
prioridadeAcordoNivelServicoDao.create(prioridadeAcordoNivelServicoDTO);
}
}
}
// Atualiza prioridade usu�rios
final List<PrioridadeServicoUsuarioDTO> listaPrioridadeServicoUsuarioAtual = (List<PrioridadeServicoUsuarioDTO>) prioridadeServicoUsuarioDao
.findByIdAcordoNivelServico(idAcordoNivelServico);
if (listaPrioridadeServicoUsuarioAtual != null && listaPrioridadeServicoUsuarioAtual.size() > 0) {
for (final PrioridadeServicoUsuarioDTO prioridadeServicoUsuarioDTO : listaPrioridadeServicoUsuarioAtual) {
if (prioridadeServicoUsuarioDTO.getDataFim() == null) {
prioridadeServicoUsuarioDTO.setDataFim(UtilDatas.getDataAtual());
prioridadeServicoUsuarioDao.update(prioridadeServicoUsuarioDTO);
}
}
}
final List<PrioridadeServicoUsuarioDTO> colUsuarios = acordoNivelServicoDTO.getListaPrioridadeUsuario();
if (colUsuarios != null && colUsuarios.size() > 0) {
for (final PrioridadeServicoUsuarioDTO prioridadeServicoUsuarioDTO : colUsuarios) {
prioridadeServicoUsuarioDTO.setIdAcordoNivelServico(idAcordoNivelServico);
prioridadeServicoUsuarioDTO.setDataInicio(UtilDatas.getDataAtual());
prioridadeServicoUsuarioDTO.setDataFim(null);
final PrioridadeServicoUsuarioDTO prioridadeServicoUsuarioAux = (PrioridadeServicoUsuarioDTO) prioridadeServicoUsuarioDao.restore(prioridadeServicoUsuarioDTO);
if (prioridadeServicoUsuarioAux != null) {
prioridadeServicoUsuarioDao.update(prioridadeServicoUsuarioDTO);
} else {
prioridadeServicoUsuarioDao.create(prioridadeServicoUsuarioDTO);
}
}
}
// Atualiza requisitoSla
slaRequisitoSlaDao.deleteByIdAcordoNivelServico(idAcordoNivelServico);
final List<SlaRequisitoSlaDTO> colSlaRequisitoSla = acordoNivelServicoDTO.getListaSlaRequisitoSlaDTO();
if (colSlaRequisitoSla != null && colSlaRequisitoSla.size() > 0) {
for (final SlaRequisitoSlaDTO slaRequisitoSlaDTO : colSlaRequisitoSla) {
slaRequisitoSlaDTO.setIdAcordoNivelServico(idAcordoNivelServico);
slaRequisitoSlaDTO.setDataUltModificacao(UtilDatas.getDataAtual());
slaRequisitoSlaDao.create(slaRequisitoSlaDTO);
}
}
// Atualiza revisarSla
revisarSlaDao.deleteByIdAcordoNivelServico(idAcordoNivelServico);
final List<RevisarSlaDTO> colRevisarSla = acordoNivelServicoDTO.getListaRevisarSlaDTO();
if (colRevisarSla != null && colRevisarSla.size() > 0) {
for (final RevisarSlaDTO revisarSlaDTO : colRevisarSla) {
revisarSlaDTO.setIdAcordoNivelServico(idAcordoNivelServico);
revisarSlaDao.create(revisarSlaDTO);
}
}
final AcordoNivelServicoDTO acordoNivelServicoAux = new AcordoNivelServicoDTO();
acordoNivelServicoAux.setTempoAuto(acordoNivelServicoDTO.getTempoAuto());
acordoNivelServicoAux.setIdPrioridadeAuto1(acordoNivelServicoDTO.getIdPrioridadeAuto1());
acordoNivelServicoAux.setIdGrupo1(acordoNivelServicoDTO.getIdGrupo1());
acordoNivelServicoAux.setIdAcordoNivelServico(idAcordoNivelServico);
this.getDao().updateTemposAcoes(acordoNivelServicoAux);
acordoNivelServicoHistoricoDTO.setIdAcordoNivelServico(idAcordoNivelServico);
acordoNivelServicoHistoricoDao.create(acordoNivelServicoHistoricoDTO);
transaction.commit();
} catch (final Exception e) {
e.printStackTrace();
this.rollbackTransaction(transaction, e);
throw new ServiceException(e.getMessage());
} finally {
try {
transaction.close();
} catch (final PersistenceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return acordoNivelServicoDTO;
}
@Override
public void excluir(final AcordoNivelServicoDTO acordoNivelServicoDTO) throws Exception {
final TransactionControler transaction = new TransactionControlerImpl(this.getDao().getAliasDB());
final TempoAcordoNivelServicoDao tempoAcordoNivelServicoDao = new TempoAcordoNivelServicoDao();
final PrioridadeAcordoNivelServicoDao prioridadeAcordoNivelServicoDao = new PrioridadeAcordoNivelServicoDao();
final PrioridadeServicoUsuarioDao prioridadeServicoUsuarioDao = new PrioridadeServicoUsuarioDao();
final SlaRequisitoSLADao slaRequisitoSlaDao = new SlaRequisitoSLADao();
final AcordoNivelServicoHistoricoDao acordoNivelServicoHistoricoDao = new AcordoNivelServicoHistoricoDao();
final RevisarSlaDao revisarSlaDao = new RevisarSlaDao();
final Integer idAcordoNivelServico = acordoNivelServicoDTO.getIdAcordoNivelServico();
try {
this.getDao().setTransactionControler(transaction);
tempoAcordoNivelServicoDao.setTransactionControler(transaction);
prioridadeAcordoNivelServicoDao.setTransactionControler(transaction);
prioridadeServicoUsuarioDao.setTransactionControler(transaction);
slaRequisitoSlaDao.setTransactionControler(transaction);
acordoNivelServicoHistoricoDao.setTransactionControler(transaction);
revisarSlaDao.setTransactionControler(transaction);
transaction.start();
acordoNivelServicoDTO.setDeleted("y");
this.getDao().updateNotNull(acordoNivelServicoDTO);
tempoAcordoNivelServicoDao.deleteByIdAcordo(idAcordoNivelServico);
final List<PrioridadeAcordoNivelServicoDTO> listaPrioridadeUnidadeAtual = (List<PrioridadeAcordoNivelServicoDTO>) prioridadeAcordoNivelServicoDao
.findByIdAcordoNivelServico(idAcordoNivelServico);
if (listaPrioridadeUnidadeAtual != null && listaPrioridadeUnidadeAtual.size() > 0) {
for (final PrioridadeAcordoNivelServicoDTO prioridadeAcordoNivelServicoDTO : listaPrioridadeUnidadeAtual) {
if (prioridadeAcordoNivelServicoDTO.getDataFim() == null) {
prioridadeAcordoNivelServicoDTO.setDataFim(UtilDatas.getDataAtual());
prioridadeAcordoNivelServicoDao.update(prioridadeAcordoNivelServicoDTO);
}
}
}
final List<PrioridadeServicoUsuarioDTO> listaPrioridadeServicoUsuarioAtual = (List<PrioridadeServicoUsuarioDTO>) prioridadeServicoUsuarioDao
.findByIdAcordoNivelServico(idAcordoNivelServico);
if (listaPrioridadeServicoUsuarioAtual != null && listaPrioridadeServicoUsuarioAtual.size() > 0) {
for (final PrioridadeServicoUsuarioDTO prioridadeServicoUsuarioDTO : listaPrioridadeServicoUsuarioAtual) {
if (prioridadeServicoUsuarioDTO.getDataFim() == null) {
prioridadeServicoUsuarioDTO.setDataFim(UtilDatas.getDataAtual());
prioridadeServicoUsuarioDao.update(prioridadeServicoUsuarioDTO);
}
}
}
slaRequisitoSlaDao.deleteByIdAcordoNivelServico(idAcordoNivelServico);
revisarSlaDao.deleteByIdAcordoNivelServico(idAcordoNivelServico);
transaction.commit();
} catch (final Exception e) {
e.printStackTrace();
this.rollbackTransaction(transaction, e);
throw new ServiceException(e.getMessage());
} finally {
try {
transaction.close();
} catch (final PersistenceException e) {
e.printStackTrace();
}
}
}
@Override
public List<AcordoNivelServicoDTO> findIdEmailByIdSolicitacaoServico(final Integer idSolicitacaoServico) throws Exception {
try {
return this.getDao().findIdEmailByIdSolicitacaoServico(idSolicitacaoServico);
} catch (final Exception e) {
throw new ServiceException(e);
}
}
@Override
public String verificaIdAcordoNivelServico(final HashMap mapFields) throws Exception {
List<AcordoNivelServicoDTO> listaAcordoNivelServicoDTO = null;
String id = mapFields.get("IDACORDONIVELSERVICO").toString().trim();
if (id == null || id.equals("")) {
id = "0";
}
if (UtilStrings.soContemNumeros(id)) {
final Integer idAcordoNivelServico = Integer.parseInt(id);
listaAcordoNivelServicoDTO = this.getDao().findByIdAcordoSemVinculacaoDireta(idAcordoNivelServico);
} else {
listaAcordoNivelServicoDTO = this.getDao().findByTituloSLA(id);
}
if (listaAcordoNivelServicoDTO != null && listaAcordoNivelServicoDTO.size() > 0) {
return String.valueOf(listaAcordoNivelServicoDTO.get(0).getIdAcordoNivelServico());
}
return "0";
}
}