package br.com.centralit.citcorpore.integracao;
import java.sql.Date;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import br.com.centralit.citcorpore.bean.BaseConhecimentoDTO;
import br.com.centralit.citcorpore.bean.PesquisaRequisicaoMudancaDTO;
import br.com.centralit.citcorpore.bean.RequisicaoMudancaDTO;
import br.com.centralit.citcorpore.util.CITCorporeUtil;
import br.com.citframework.dto.IDto;
import br.com.citframework.excecao.PersistenceException;
import br.com.citframework.integracao.Condition;
import br.com.citframework.integracao.CrudDaoDefaultImpl;
import br.com.citframework.integracao.Field;
import br.com.citframework.integracao.Order;
import br.com.citframework.util.Constantes;
import br.com.citframework.util.SQLConfig;
import br.com.citframework.util.UtilDatas;
@SuppressWarnings({ "unchecked", "rawtypes" })
public class RequisicaoMudancaDao extends CrudDaoDefaultImpl {
public RequisicaoMudancaDao() {
super(Constantes.getValue("DATABASE_ALIAS"), null);
}
public Collection<Field> getFields() {
Collection<Field> listFields = new ArrayList<>();
listFields.add(new Field("idrequisicaomudanca", "idRequisicaoMudanca", true, true, false, false));
listFields.add(new Field("idproprietario", "idProprietario", false, false, false, false));
listFields.add(new Field("idsolicitante", "idSolicitante", false, false, false, false));
// /listFields.add(new Field("tipo", "tipo", false, false, false, false));
// listFields.add(new Field("idcategoriamudanca", "idCategoriaMudanca", false, false, false, false));
listFields.add(new Field("idtipomudanca", "idTipoMudanca", false, false, false, false));
listFields.add(new Field("motivo", "motivo", false, false, false, false));
listFields.add(new Field("nivelimportancianegocio", "nivelImportanciaNegocio", false, false, false, false));
listFields.add(new Field("classificacao", "classificacao", false, false, false, false));
listFields.add(new Field("nivelimpacto", "nivelImpacto", false, false, false, false));
listFields.add(new Field("analiseimpacto", "analiseImpacto", false, false, false, false));
listFields.add(new Field("razaoMudanca", "razaoMudanca", false, false, false, false));
listFields.add(new Field("datahoraconclusao", "dataHoraConclusao", false, false, false, false));
listFields.add(new Field("dataaceitacao", "dataAceitacao", false, false, false, false));
listFields.add(new Field("datavotacao", "dataVotacao", false, false, false, false));
listFields.add(new Field("datahorainicio", "dataHoraInicio", false, false, false, false));
listFields.add(new Field("datahoratermino", "dataHoraTermino", false, false, false, false));
listFields.add(new Field("titulo", "titulo", false, false, false, false));
listFields.add(new Field("descricao", "descricao", false, false, false, false));
listFields.add(new Field("risco", "risco", false, false, false, false));
listFields.add(new Field("estimativacusto", "estimativaCusto", false, false, false, false));
listFields.add(new Field("planoreversao", "planoReversao", false, false, false, false));
listFields.add(new Field("status", "status", false, false, false, false));
listFields.add(new Field("prioridade", "prioridade", false, false, false, false));
listFields.add(new Field("nomecategoriamudanca", "nomeCategoriaMudanca", false, false, false, false));
listFields.add(new Field("enviaemailcriacao", "enviaEmailCriacao", false, false, false, false));
listFields.add(new Field("enviaemailfinalizacao", "enviaEmailFinalizacao", false, false, false, false));
listFields.add(new Field("enviaemailacoes", "enviaEmailAcoes", false, false, false, false));
listFields.add(new Field("exibirquadromudancas", "exibirQuadroMudancas", false, false, false, false));
listFields.add(new Field("seqreabertura", "seqReabertura", false, false, false, false));
listFields.add(new Field("tempodecorridohh", "tempoDecorridoHH", false, false, false, false));
listFields.add(new Field("tempodecorridomm", "tempoDecorridoMM", false, false, false, false));
listFields.add(new Field("datahorasuspensao", "dataHoraSuspensao", false, false, false, false));
listFields.add(new Field("datahorareativacao", "dataHoraReativacao", false, false, false, false));
listFields.add(new Field("prazohh", "prazoHH", false, false, false, false));
listFields.add(new Field("prazomm", "prazoMM", false, false, false, false));
listFields.add(new Field("idgrupoatual", "idGrupoAtual", false, false, false, false));
listFields.add(new Field("idgruponivel1", "idGrupoNivel1", false, false, false, false));
listFields.add(new Field("idcalendario", "idCalendario", false, false, false, false));
listFields.add(new Field("datahoracaptura", "dataHoraCaptura", false, false, false, false));
listFields.add(new Field("tempocapturahh", "tempoCapturaHH", false, false, false, false));
listFields.add(new Field("tempocapturamm", "tempoCapturaMM", false, false, false, false));
listFields.add(new Field("tempoatrasohh", "tempoAtrasoHH", false, false, false, false));
listFields.add(new Field("tempoatrasomm", "tempoAtrasoMM", false, false, false, false));
listFields.add(new Field("tempoatendimentohh", "tempoAtendimentoHH", false, false, false, false));
listFields.add(new Field("tempoatendimentomm", "tempoAtendimentoMM", false, false, false, false));
listFields.add(new Field("fase", "fase", false, false, false, false));
listFields.add(new Field("nivelurgencia", "nivelUrgencia", false, false, false, false));
listFields.add(new Field("idbaseconhecimento", "idBaseConhecimento", false, false, false, false));
listFields.add(new Field("idcontrato", "idContrato", false, false, false, false));
listFields.add(new Field("idGrupoComite", "idGrupoComite", false, false, false, false));
listFields.add(new Field("idunidade", "idUnidade", false, false, false, false));
listFields.add(new Field("idcontatorequisicaomudanca", "idContatoRequisicaoMudanca", false, false, false, false));
listFields.add(new Field("enviaEmailGrupoComite", "enviaEmailGrupoComite", false, false, false, false));
listFields.add(new Field("datahorainicioagendada", "dataHoraInicioAgendada", false, false, false, false));
listFields.add(new Field("datahoraterminoagendada", "dataHoraTerminoAgendada", false, false, false, false));
listFields.add(new Field("idlocalidade", "IdLocalidade", false, false, false, false));
listFields.add(new Field("fechamento", "fechamento", false, false, false, false));
listFields.add(new Field("ehPropostaAux", "ehPropostaAux", false, false, false, false));
listFields.add(new Field("votacaoPropostaAprovadaAux", "votacaoPropostaAprovadaAux", false, false, false, false));
listFields.add(new Field("idGrupoAtvPeriodica", "idGrupoAtvPeriodica", false, false, false, false));
listFields.add(new Field("idcategoriasolucao", "idCategoriaSolucao", false, false, false, false));
listFields.add(new Field("fecharItensRelacionados", "fecharItensRelacionados", false, false, false, false));
listFields.add(new Field("vencendo", "vencendo", false, false, false, false));
return listFields;
}
public String getTableName() {
return this.getOwner() + "requisicaomudanca";
}
public Class getBean() {
return RequisicaoMudancaDTO.class;
}
public Collection find(IDto solicitacaoServicoDTO) throws PersistenceException {
List ordenacao = new ArrayList();
ordenacao.add(new Order("idRequisicaoMudanca"));
return super.find(solicitacaoServicoDTO, ordenacao);
}
@Override
public void updateNotNull(IDto obj) throws PersistenceException {
super.updateNotNull(obj);
}
@Override
public Collection list() throws PersistenceException {
return super.list("idRequisicaoMudanca");
}
public void updateFase(Integer idRequisicao, String fase) {
StringBuilder sql = new StringBuilder();
sql.append("UPDATE " + getTableName() + " SET fase = ? WHERE (idrequisicaomudanca = ?)");
Object[] params = { fase, idRequisicao };
try {
this.execUpdate(sql.toString(), params);
} catch (PersistenceException e) {
System.out.println("Problemas com atualiza��o da requisi��o de mudan�a.");
e.printStackTrace();
}
}
public List<RequisicaoMudancaDTO> listMudancaByIdSolicitacao(RequisicaoMudancaDTO bean) throws Exception {
List parametro = new ArrayList();
List fields = new ArrayList();
List list = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append(" select distinct sol.idSolicitacaoServico, ser.nomeServico from requisicaomudanca mud ");
sql.append(" inner join solicitacaoservicomudanca solmud on solmud.idrequisicaoMudanca = mud.idrequisicaoMudanca ");
sql.append(" inner join solicitacaoservico sol on sol.idsolicitacaoservico = solmud.idsolicitacaoservico ");
sql.append(" inner join servicocontrato sercont on sol.idservicocontrato = sercont.idservicocontrato ");
sql.append(" inner join servico ser on ser.idservico = sercont.idservico ");
if (bean != null) {
if (bean.getIdSolicitacaoServico() != null) {
sql.append("and sol.idSolicitacaoServico = ? ");
parametro.add(bean.getIdSolicitacaoServico());
}
}
if (bean != null) {
if (bean.getIdRequisicaoMudanca() != null) {
sql.append("and mud.idrequisicaomudanca = ? ");
parametro.add(bean.getIdRequisicaoMudanca());
}
}
list = this.execSQL(sql.toString(), parametro.toArray());
fields.add("idSolicitacaoServico");
fields.add("nomeServico");
if (list != null && !list.isEmpty()) {
return (List<RequisicaoMudancaDTO>) this.listConvertion(getBean(), list, fields);
} else {
return null;
}
}
public Collection findByIdRequisicaoMudancaEDataFim(Integer idRequisicaoMudanca) throws Exception {
List parametro = new ArrayList();
List fields = new ArrayList();
List list = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select mud.idrequisicaomudanca, sol.idSolicitacaoServico, ser.nomeServico ");
sql.append("from requisicaomudanca mud ");
sql.append("inner join solicitacaoservicomudanca solmud on solmud.idrequisicaoMudanca = mud.idrequisicaoMudanca ");
sql.append("inner join solicitacaoservico sol on sol.idsolicitacaoservico = solmud.idsolicitacaoservico ");
sql.append("inner join servicocontrato sercont on sol.idservicocontrato = sercont.idservicocontrato ");
sql.append("inner join servico ser on ser.idservico = sercont.idservico and mud.idrequisicaomudanca = ? and idhistoricomudanca is null ");
parametro.add(idRequisicaoMudanca);
list = this.execSQL(sql.toString(), parametro.toArray());
fields.add("idRequisicaoMudanca");
fields.add("idSolicitacaoServico");
fields.add("nomeServico");
if (list != null && !list.isEmpty()) {
return (List<RequisicaoMudancaDTO>) this.listConvertion(getBean(), list, fields);
} else {
return null;
}
}
public List<RequisicaoMudancaDTO> listProblemaByIdSolicitacao(RequisicaoMudancaDTO bean) throws Exception {
List parametro = new ArrayList();
List fields = new ArrayList();
List list = new ArrayList();
String sql = " select mud.idrequisicaomudanca , mud.titulo, empcriadopor.nome, empmudpri.nome, mud.status, sol.idSolicitacaoServico, ser.nomeServico from requisicaomudanca mud "
+ " inner join empregados empcriadopor on mud.idsolicitante = empcriadopor.idempregado " + " inner join empregados empmudpri on mud.idproprietario = empmudpri.idempregado "
+ " inner join solicitacaoservicomudanca solmud on solmud.idrequisicaoMudanca = mud.idrequisicaoMudanca "
+ " inner join solicitacaoservico sol on sol.idsolicitacaoservico = solmud.idsolicitacaoservico "
+ " inner join servicocontrato sercont on sol.idservicocontrato = sercont.idservicocontrato " + " inner join servico ser on ser.idservico = sercont.idservico ";
if (bean != null) {
if (bean.getIdSolicitacaoServico() != null) {
sql += "and sol.idSolicitacaoServico = ? ";
parametro.add(bean.getIdSolicitacaoServico());
}
}
if (bean != null) {
if (bean.getIdRequisicaoMudanca() != null) {
sql += "and mud.idrequisicaomudanca = ? ";
parametro.add(bean.getIdRequisicaoMudanca());
}
}
list = this.execSQL(sql, parametro.toArray());
fields.add("idRequisicaoMudanca");
fields.add("titulo");
fields.add("nomeSolicitante");
fields.add("nomeProprietario");
fields.add("status");
fields.add("idSolicitacaoServico");
fields.add("nomeServico");
if (list != null && !list.isEmpty()) {
return (List<RequisicaoMudancaDTO>) this.listConvertion(getBean(), list, fields);
} else {
return null;
}
}
public List<RequisicaoMudancaDTO> listMudancaByIdItemConfiguracao(Integer idItemConfiguracao) throws Exception {
String sql = " select mud.idrequisicaomudanca, mud.titulo, mud.descricao , mud.idproprietario, mud.idsolicitante, "
//+ " mud.nivelimpacto,mud.idCategoriaMudanca " +
+ " mud.nivelimpacto,mud.idTipoMudanca "
+ ", mud.motivo, mud.nivelImportanciaNegocio, mud.status, mud.tipo , emp.nome, us.nome , "
+ " mud.dataHoraInicio from requisicaomudancaitemconfiguracao reqconf "
+ " inner join requisicaomudanca mud on reqconf.idrequisicaomudanca = mud.idrequisicaomudanca "
+ " inner join itemconfiguracao item on item.iditemconfiguracao = reqconf.iditemconfiguracao "
+ " inner join empregados emp on emp.idempregado = mud.idsolicitante "
+ " inner join usuario us on us.idusuario = mud.idproprietario "
+ " where item.iditemconfiguracao = ? " +
" and (mud.status like 'EmExecucao' or mud.status like 'Registrada' or mud.status like 'Aprovada' or mud.status like 'Planejada')";
/**
* A regra relacionada ao status estava comentada
* @author flavio.santana
* 25/10/2013 14:00
*/
List parametro = new ArrayList();
List<String> listRetorno = new ArrayList<String>();
parametro.add(idItemConfiguracao);
listRetorno.add("idRequisicaoMudanca");
listRetorno.add("titulo");
listRetorno.add("descricao");
listRetorno.add("idProprietario");
listRetorno.add("idSolicitante");
listRetorno.add("nivelImpacto");
// listRetorno.add("idCategoriaMudanca");
listRetorno.add("idTipoMudanca");
listRetorno.add("motivo");
listRetorno.add("nivelImportanciaNegocio");
listRetorno.add("status");
listRetorno.add("tipo");
listRetorno.add("nomeSolicitante");
listRetorno.add("nomeProprietario");
listRetorno.add("dataHoraInicio");
List lista = this.execSQL(sql, parametro.toArray());
return this.engine.listConvertion(getBean(), lista, listRetorno);
}
public Collection<RequisicaoMudancaDTO> listaMudancasPorBaseConhecimento(RequisicaoMudancaDTO mudanca) throws Exception {
StringBuilder sql = new StringBuilder();
List parametro = new ArrayList();
List listRetorno = new ArrayList();
sql.append("SELECT rm.idrequisicaomudanca, rm.tipo, rm.motivo, rm.descricao, rm.risco, rm.status, ");
sql.append("rm.planoreversao, rm.datahorainicio, rm.datahoraconclusao, e.nome FROM requisicaomudanca rm, empregados e ");
sql.append("WHERE rm.idproprietario = e.idempregado AND rm.idbaseconhecimento = ? ");
parametro.add(mudanca.getIdBaseConhecimento());
listRetorno.add("idRequisicaoMudanca");
listRetorno.add("tipo");
listRetorno.add("motivo");
listRetorno.add("descricao");
listRetorno.add("risco");
listRetorno.add("status");
listRetorno.add("planoReversao");
listRetorno.add("dataHoraInicio");
listRetorno.add("dataHoraConclusao");
listRetorno.add("nomeProprietario");
List list = execSQL(sql.toString(), parametro.toArray());
if (list != null && !list.isEmpty()) {
Collection<RequisicaoMudancaDTO> listaMudancaPorBaseConhecimento = this.listConvertion(RequisicaoMudancaDTO.class, list, listRetorno);
return listaMudancaPorBaseConhecimento;
}
return null;
}
public Collection<RequisicaoMudancaDTO> quantidadeMudancaPorBaseConhecimento(RequisicaoMudancaDTO mudanca) throws Exception {
StringBuilder sql = new StringBuilder();
List parametro = new ArrayList();
List listRetorno = new ArrayList();
sql.append("select idbaseconhecimento,count(idbaseconhecimento) from requisicaomudanca where idbaseconhecimento = ? group by idbaseconhecimento");
parametro.add(mudanca.getIdBaseConhecimento());
listRetorno.add("idBaseConhecimento");
listRetorno.add("quantidade");
List list = execSQL(sql.toString(), parametro.toArray());
if (list != null && !list.isEmpty()) {
Collection<RequisicaoMudancaDTO> listaQuantidadeMudancaPorBaseConhecimento = this.listConvertion(RequisicaoMudancaDTO.class, list, listRetorno);
return listaQuantidadeMudancaPorBaseConhecimento;
}
return null;
}
/**
* Retorna Requisi��es de Mudan�a associadas a Base de Conhecimento.
*
* @param baseConhecimentoDto
* @return List<RequisicaoMudancaDTO>
* @throws Exception
* @author Vadoilo Damasceno
*/
public List<RequisicaoMudancaDTO> findByConhecimento(BaseConhecimentoDTO baseConhecimentoDto) throws Exception {
List parametro = new ArrayList();
List listRetorno = new ArrayList();
List list = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select requisicaomudanca.idRequisicaoMudanca, requisicaomudanca.titulo, requisicaomudanca.tipo, requisicaomudanca.motivo, requisicaomudanca.descricao, requisicaomudanca.risco, requisicaomudanca.status from requisicaomudanca ");
sql.append("inner join conhecimentomudanca on requisicaomudanca.idRequisicaoMudanca = conhecimentomudanca.idrequisicaomudanca ");
sql.append("where conhecimentomudanca.idbaseconhecimento = ? ");
parametro.add(baseConhecimentoDto.getIdBaseConhecimento());
list = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("idRequisicaoMudanca");
listRetorno.add("titulo");
listRetorno.add("tipo");
listRetorno.add("motivo");
listRetorno.add("descricao");
listRetorno.add("risco");
listRetorno.add("status");
if (list != null && !list.isEmpty()) {
return (List<RequisicaoMudancaDTO>) this.listConvertion(getBean(), list, listRetorno);
} else {
return null;
}
}
public List<RequisicaoMudancaDTO> findByPeriodoAndSituacao(Date dataInicial, Date dataFinal, String situacao) throws Exception {
List parametro = new ArrayList();
List listRetorno = new ArrayList();
List list = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("SELECT idRequisicaoMudanca, titulo, dataHoraInicio, dataHoraConclusao, descricao, risco, status FROM requisicaomudanca ");
sql.append("WHERE dataHoraInicio BETWEEN ? AND ? ");
if(situacao != null && !"".equals(situacao))
sql.append("AND status = ? ");
parametro.add(Timestamp.valueOf(UtilDatas.dateToSTRWithFormat(dataInicial, "yyyy-MM-dd") + " 00:00:00"));
parametro.add(Timestamp.valueOf(UtilDatas.dateToSTRWithFormat(dataFinal, "yyyy-MM-dd") + " 23:59:59"));
if(situacao != null && !"".equals(situacao))
parametro.add(situacao);
sql.append("ORDER BY idRequisicaoMudanca");
list = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("idRequisicaoMudanca");
listRetorno.add("titulo");
listRetorno.add("dataHoraInicio");
listRetorno.add("dataHoraConclusao");
listRetorno.add("descricao");
listRetorno.add("risco");
listRetorno.add("status");
if (list != null && !list.isEmpty()) {
return (List<RequisicaoMudancaDTO>) this.listConvertion(getBean(), list, listRetorno);
} else {
return null;
}
}
/**
* Retorna uma lista de requisicao mudanca de acordo com os criterios passados.
*
* @param requisicaoMudancaDto
* @return Collection<RequisicaoMudancaDTO>
* @throws Exception
* @author thays.araujo
* @author bruno.franco
*/
public Collection<PesquisaRequisicaoMudancaDTO> listRequisicaoMudancaByCriterios(PesquisaRequisicaoMudancaDTO pesquisaRequisicaoMudancaDto) throws Exception {
List parametro = new ArrayList();
List listRetorno = new ArrayList();
List list = new ArrayList();
StringBuilder sql = new StringBuilder();
if (CITCorporeUtil.SGBD_PRINCIPAL.trim().equalsIgnoreCase("ORACLE")) {
sql.append("SELECT requisicaomudanca.idrequisicaomudanca,tipomudanca.nometipomudanca,requisicaomudanca.status,requisicaomudanca.titulo, ");
sql.append("requisicaomudanca.motivo, requisicaomudanca.datahoraconclusao, requisicaomudanca.datahorainicio,requisicaomudanca.datahoratermino, ");
sql.append("requisicaomudanca.descricao, e.nome, em.nome, requisicaomudanca.nomecategoriamudanca, grupo.nome ");
sql.append("FROM " + getTableName() + " ");
sql.append("inner join empregados e on e.idempregado = requisicaomudanca.idproprietario ");
sql.append("inner join empregados em on em.idempregado = requisicaomudanca.idsolicitante ");
sql.append("inner join grupo on grupo.idgrupo = requisicaomudanca.idgrupoatual ");
sql.append("inner join tipomudanca on tipomudanca.idtipomudanca = requisicaomudanca.idtipomudanca ");
sql.append("left join requisicaomudancaitemconfigura r on r.idrequisicaomudanca = requisicaomudanca.idrequisicaomudanca ");
if (pesquisaRequisicaoMudancaDto.getDataInicio() != null) {
// Adapta��o realizada passando o timestamp concatenado no
// pr�prio sqp para poder colocar aspas simples na pesquisa
sql.append(" where requisicaomudanca.datahorainicio BETWEEN TO_DATE('" + UtilDatas.dateToSTR(pesquisaRequisicaoMudancaDto.getDataInicio()) + "', 'DD/MM/YYYY ') and TO_DATE('"
+ UtilDatas.dateToSTR(pesquisaRequisicaoMudancaDto.getDataFim()) + "', 'DD/MM/YYYY ') ");
}
if (pesquisaRequisicaoMudancaDto.getIdRequisicaoMudanca() != null) {
if (pesquisaRequisicaoMudancaDto.getDataInicio() == null) {
sql.append(" where requisicaomudanca.idrequisicaomudanca = ?");
parametro.add(pesquisaRequisicaoMudancaDto.getIdRequisicaoMudanca());
} else {
sql.append(" and requisicaomudanca.idrequisicaomudanca = ?");
parametro.add(pesquisaRequisicaoMudancaDto.getIdRequisicaoMudanca());
}
}
if (pesquisaRequisicaoMudancaDto.getStatus() != null && !pesquisaRequisicaoMudancaDto.getStatus().equalsIgnoreCase("")) {
sql.append(" and requisicaomudanca.status = ?");
parametro.add(pesquisaRequisicaoMudancaDto.getStatus());
}
if (pesquisaRequisicaoMudancaDto.getIdSolicitante() != null) {
sql.append(" and requisicaomudanca.idsolicitante = ? ");
parametro.add(pesquisaRequisicaoMudancaDto.getIdSolicitante());
}
if (pesquisaRequisicaoMudancaDto.getIdProprietario() != null) {
sql.append(" and requisicaomudanca.idproprietario = ?");
parametro.add(pesquisaRequisicaoMudancaDto.getIdProprietario());
}
if (pesquisaRequisicaoMudancaDto.getIdGrupoAtual() != null) {
sql.append(" and requisicaomudanca.idgrupoatual = ?");
parametro.add(pesquisaRequisicaoMudancaDto.getIdGrupoAtual());
}
if (pesquisaRequisicaoMudancaDto.getIdItemConfiguracao() != null) {
sql.append(" and requisicaomudancaitemconfiguracao.iditemconfiguracao = ?");
parametro.add(pesquisaRequisicaoMudancaDto.getIdItemConfiguracao());
}
if (pesquisaRequisicaoMudancaDto.getIdTipoMudanca() != null) {
sql.append(" and tipomudanca.idtipomudanca = ?");
parametro.add(pesquisaRequisicaoMudancaDto.getIdTipoMudanca());
}
if (pesquisaRequisicaoMudancaDto.getNomeCategoriaMudanca() != null && !pesquisaRequisicaoMudancaDto.getNomeCategoriaMudanca().equalsIgnoreCase("")) {
sql.append(" and requisicaomudanca.nomecategoriamudanca = ?");
parametro.add(pesquisaRequisicaoMudancaDto.getNomeCategoriaMudanca());
}
if (pesquisaRequisicaoMudancaDto.getOrdenacao() != null) {
sql.append(" ORDER BY " + pesquisaRequisicaoMudancaDto.getOrdenacao());
// parametro.add(pesquisaRequisicaoMudancaDto.getOrdenacao());
}
} else {
sql.append("SELECT requisicaomudanca.idrequisicaomudanca,tipomudanca.nometipomudanca,requisicaomudanca.status,requisicaomudanca.titulo,requisicaomudanca.motivo, requisicaomudanca.datahoraconclusao, ");
sql.append("requisicaomudanca.datahorainicio,requisicaomudanca.datahoratermino, requisicaomudanca.descricao, ");
sql.append("proprietario.nome, solicitante.nome, requisicaomudanca.nomecategoriamudanca, grupo.nome ");
sql.append("FROM " + getTableName() + " ");
sql.append("inner join empregados as proprietario on proprietario.idempregado = requisicaomudanca.idproprietario ");
sql.append("inner join empregados as solicitante on solicitante.idempregado = requisicaomudanca.idsolicitante ");
// sql.append("inner join categoriamudanca on categoriamudanca.idcategoriamudanca = requisicaomudanca.idcategoriamudanca ");categoriamudanca.nomecategoria,
sql.append("inner join grupo on grupo.idgrupo = requisicaomudanca.idgrupoatual ");
sql.append("inner join tipomudanca on tipomudanca.idtipomudanca = requisicaomudanca.idtipomudanca ");
sql.append("left join requisicaomudancaitemconfiguracao on requisicaomudancaitemconfiguracao.idrequisicaomudanca = requisicaomudanca.idrequisicaomudanca ");
if (pesquisaRequisicaoMudancaDto.getDataInicio() != null) {
// Adapta��o realizada passando o timestamp concatenado no
// pr�prio sqp para poder colocar aspas simples na pesquisa
sql.append(" where requisicaomudanca.datahorainicio BETWEEN '" + UtilDatas.dateToSTR(pesquisaRequisicaoMudancaDto.getDataInicio()) + " 00:00:00' and '"
+ UtilDatas.dateToSTR(pesquisaRequisicaoMudancaDto.getDataFim()) + " 23:59:59' ");
// parametro.add(UtilDatas.formatTimestamp();
// parametro.add(pesquisaRequisicaoMudancaDto.getDataInicio() +
// " 00:00:00 ");
// parametro.add( "'" +
// pesquisaRequisicaoMudancaDto.getDataFim() + " 23:59:59 ");
}
if (pesquisaRequisicaoMudancaDto.getIdRequisicaoMudanca() != null) {
if (pesquisaRequisicaoMudancaDto.getDataInicio() == null) {
sql.append(" where requisicaomudanca.idrequisicaomudanca = ?");
parametro.add(pesquisaRequisicaoMudancaDto.getIdRequisicaoMudanca());
} else {
sql.append(" and requisicaomudanca.idrequisicaomudanca = ?");
parametro.add(pesquisaRequisicaoMudancaDto.getIdRequisicaoMudanca());
}
}
if (pesquisaRequisicaoMudancaDto.getStatus() != null && !pesquisaRequisicaoMudancaDto.getStatus().equalsIgnoreCase("")) {
sql.append(" and requisicaomudanca.status = ?");
parametro.add(pesquisaRequisicaoMudancaDto.getStatus());
}
if (pesquisaRequisicaoMudancaDto.getIdSolicitante() != null) {
sql.append(" and requisicaomudanca.idsolicitante = ? ");
parametro.add(pesquisaRequisicaoMudancaDto.getIdSolicitante());
}
if (pesquisaRequisicaoMudancaDto.getIdProprietario() != null) {
sql.append(" and requisicaomudanca.idproprietario = ?");
parametro.add(pesquisaRequisicaoMudancaDto.getIdProprietario());
}
if (pesquisaRequisicaoMudancaDto.getIdGrupoAtual() != null) {
sql.append(" and requisicaomudanca.idgrupoatual = ?");
parametro.add(pesquisaRequisicaoMudancaDto.getIdGrupoAtual());
}
if (pesquisaRequisicaoMudancaDto.getIdItemConfiguracao() != null) {
sql.append(" and requisicaomudancaitemconfiguracao.iditemconfiguracao = ?");
parametro.add(pesquisaRequisicaoMudancaDto.getIdItemConfiguracao());
}
if (pesquisaRequisicaoMudancaDto.getIdTipoMudanca() != null) {
sql.append(" and tipomudanca.idtipomudanca = ?");
parametro.add(pesquisaRequisicaoMudancaDto.getIdTipoMudanca());
}
if (pesquisaRequisicaoMudancaDto.getNomeCategoriaMudanca() != null && !pesquisaRequisicaoMudancaDto.getNomeCategoriaMudanca().equalsIgnoreCase("")) {
sql.append(" and requisicaomudanca.nomecategoriamudanca = ?");
parametro.add(pesquisaRequisicaoMudancaDto.getNomeCategoriaMudanca());
}
if (pesquisaRequisicaoMudancaDto.getOrdenacao() != null) {
sql.append(" ORDER BY " + pesquisaRequisicaoMudancaDto.getOrdenacao());
// parametro.add(pesquisaRequisicaoMudancaDto.getOrdenacao());
}
}
list = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("idRequisicaoMudanca");
listRetorno.add("tipo");
listRetorno.add("status");
listRetorno.add("titulo");
listRetorno.add("motivo");
listRetorno.add("dataHoraConclusao");
listRetorno.add("dataHoraInicio");
listRetorno.add("dataHoraTermino");
listRetorno.add("descricao");
listRetorno.add("nomeProprietario");
listRetorno.add("nomeSolicitante");
listRetorno.add("nomeCategoriaMudanca");
listRetorno.add("nomeGrupoAtual");
if (list != null && !list.isEmpty()) {
Collection<PesquisaRequisicaoMudancaDTO> listRequisicaoMudancaByCriterios = this.listConvertion(PesquisaRequisicaoMudancaDTO.class, list, listRetorno);
return listRequisicaoMudancaByCriterios;
}
return null;
}
/**
* Retorna uma lista de requisicao mudan�a associados a um tipo mudan�a
*
* @param idCargo
* @return
* @throws Exception
* @author thays.araujo
*/
public boolean verificarSeRequisicaoMudancaPossuiTipoMudanca(Integer idTipoMudanca) throws Exception {
List parametro = new ArrayList();
String sql = "select idrequisicaomudanca from " + getTableName() + " where idtipomudanca = ? ";
parametro.add(idTipoMudanca);
List lista = this.execSQL(sql.toString(), parametro.toArray());
if (lista != null && !lista.isEmpty()) {
return true;
} else {
return false;
}
}
public RequisicaoMudancaDTO findByIdInstanciaFluxo(Integer idInstanciaFluxo) throws Exception {
List condicao = new ArrayList();
condicao.add(new Condition("idInstanciaFluxo", "=", idInstanciaFluxo));
Collection col = super.findByCondition(condicao, null);
if (col == null || col.size() == 0)
return null;
return (RequisicaoMudancaDTO) ((List) col).get(0);
}
public Collection listaIdETituloMudancasPorPeriodo(RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
List listResultado = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select requisicaomudanca.idrequisicaomudanca, ");
sql.append(" requisicaomudanca.titulo ");
sql.append("from requisicaomudanca requisicaomudanca ");
sql.append("where requisicaomudanca.datahorainicio BETWEEN ? AND ? ");
sql.append("group by requisicaomudanca.idrequisicaomudanca,requisicaomudanca.titulo ");
sql.append("order by requisicaomudanca.idrequisicaomudanca,requisicaomudanca.titulo ");
parametro.add(requisicaoMudancaDTO.getDataInicio());
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
parametro.add(requisicaoMudancaDTO.getDataFim());
} else {
parametro.add(transformaHoraFinal(requisicaoMudancaDTO.getDataFim()));
}
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("idRequisicaoMudanca");
listRetorno.add("titulo");
if (lista != null && !lista.isEmpty()) {
listResultado = this.engine.listConvertion(RequisicaoMudancaDTO.class, lista, listRetorno);
}
return listResultado;
}
public Collection listaMudancaIncidente(RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
List listResultado = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select requisicaomudanca.idrequisicaomudanca, ");
sql.append(" requisicaomudanca.titulo mudanca, ");
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.POSTGRESQL) || CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.SQLSERVER)) {
sql.append(" cast(solicitacaoservico.idsolicitacaoservico as varchar) incidente ");
} else {
sql.append(" solicitacaoservico.idsolicitacaoservico incidente ");
}
sql.append("from requisicaomudanca requisicaomudanca ");
sql.append("inner join solicitacaoservicomudanca solicitacaoservicomudanca ");
sql.append(" on solicitacaoservicomudanca.idrequisicaomudanca = requisicaomudanca.idrequisicaomudanca ");
sql.append("inner join solicitacaoservico solicitacaoservico ");
sql.append(" on solicitacaoservico.idsolicitacaoservico = solicitacaoservicomudanca.idsolicitacaoservico ");
sql.append("inner join tipodemandaservico tipodemandaservico ");
sql.append(" on tipodemandaservico.idtipodemandaservico = solicitacaoservico.idtipodemandaservico ");
sql.append(" and tipodemandaservico.classificacao = 'I' ");
sql.append("where requisicaomudanca.datahorainicio BETWEEN ? AND ? ");
sql.append("order by requisicaomudanca.idrequisicaomudanca ");
parametro.add(requisicaoMudancaDTO.getDataInicio());
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
parametro.add(requisicaoMudancaDTO.getDataFim());
} else {
parametro.add(transformaHoraFinal(requisicaoMudancaDTO.getDataFim()));
}
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("idRequisicaoMudanca");
listRetorno.add("titulo");
listRetorno.add("incidente");
if (lista != null && !lista.isEmpty()) {
listResultado = this.engine.listConvertion(RequisicaoMudancaDTO.class, lista, listRetorno);
}
return listResultado;
}
public Collection listaMudancaServico(RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
List listResultado = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select requisicaomudanca.idrequisicaomudanca, ");
sql.append(" requisicaomudanca.titulo mudanca, ");
sql.append(" servico.nomeservico servico ");
sql.append("from requisicaomudanca requisicaomudanca ");
sql.append("inner join requisicaomudancaservico requisicaomudancaservico ");
sql.append(" on requisicaomudancaservico.idrequisicaomudanca = requisicaomudanca.idrequisicaomudanca ");
sql.append("inner join servico servico ");
sql.append(" on servico.idservico = requisicaomudancaservico.idservico ");
sql.append("where requisicaomudanca.datahorainicio BETWEEN ? AND ? ");
sql.append("order by requisicaomudanca.idrequisicaomudanca ");
parametro.add(requisicaoMudancaDTO.getDataInicio());
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
parametro.add(requisicaoMudancaDTO.getDataFim());
} else {
parametro.add(transformaHoraFinal(requisicaoMudancaDTO.getDataFim()));
}
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("idRequisicaoMudanca");
listRetorno.add("titulo");
listRetorno.add("servico");
if (lista != null && !lista.isEmpty()) {
listResultado = this.engine.listConvertion(RequisicaoMudancaDTO.class, lista, listRetorno);
}
return listResultado;
}
public Collection listaMudancaProblema(RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
List listResultado = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select requisicaomudanca.idrequisicaomudanca, ");
sql.append(" requisicaomudanca.titulo mudanca, ");
sql.append(" problema.titulo problema ");
sql.append("from requisicaomudanca requisicaomudanca ");
sql.append("inner join problemamudanca problemamudanca ");
sql.append(" on problemamudanca.idrequisicaomudanca = requisicaomudanca.idrequisicaomudanca ");
sql.append("inner join problema problema ");
sql.append(" on problema.idproblema = problemamudanca.idproblema ");
sql.append("where requisicaomudanca.datahorainicio BETWEEN ? AND ? ");
parametro.add(requisicaoMudancaDTO.getDataInicio());
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
parametro.add(requisicaoMudancaDTO.getDataFim());
} else {
parametro.add(transformaHoraFinal(requisicaoMudancaDTO.getDataFim()));
}
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("idRequisicaoMudanca");
listRetorno.add("titulo");
listRetorno.add("problema");
if (lista != null && !lista.isEmpty()) {
listResultado = this.engine.listConvertion(RequisicaoMudancaDTO.class, lista, listRetorno);
}
return listResultado;
}
public Collection listaMudancaConhecimento(RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
List listResultado = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select requisicaomudanca.idrequisicaomudanca, ");
sql.append(" requisicaomudanca.titulo mudanca, ");
sql.append(" baseconhecimento.titulo conhecimento ");
sql.append("from requisicaomudanca requisicaomudanca ");
sql.append("inner join baseconhecimento baseconhecimento ");
sql.append(" on baseconhecimento.idbaseconhecimento = requisicaomudanca.idbaseconhecimento ");
sql.append("where requisicaomudanca.datahorainicio BETWEEN ? AND ? ");
parametro.add(requisicaoMudancaDTO.getDataInicio());
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
parametro.add(requisicaoMudancaDTO.getDataFim());
} else {
parametro.add(transformaHoraFinal(requisicaoMudancaDTO.getDataFim()));
}
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("idRequisicaoMudanca");
listRetorno.add("titulo");
listRetorno.add("conhecimento");
if (lista != null && !lista.isEmpty()) {
listResultado = this.engine.listConvertion(RequisicaoMudancaDTO.class, lista, listRetorno);
}
return listResultado;
}
public Collection listaMudancaItemConfiguracao(RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
List listResultado = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select requisicaomudanca.idrequisicaomudanca, ");
sql.append(" requisicaomudanca.titulo mudanca, ");
sql.append(" itemconfiguracao.identificacao itemconfigucacao ");
sql.append("from requisicaomudanca requisicaomudanca ");
sql.append("inner join requisicaomudancaitemconfiguracao requisicaomudancaitemconfiguracao ");
sql.append(" on requisicaomudancaitemconfiguracao.idrequisicaomudanca = requisicaomudanca.idrequisicaomudanca ");
sql.append("inner join itemconfiguracao itemconfiguracao ");
sql.append(" on itemconfiguracao.iditemconfiguracao = requisicaomudancaitemconfiguracao.iditemconfiguracao ");
sql.append("where requisicaomudanca.datahorainicio BETWEEN ? AND ? ");
parametro.add(requisicaoMudancaDTO.getDataInicio());
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
parametro.add(requisicaoMudancaDTO.getDataFim());
} else {
parametro.add(transformaHoraFinal(requisicaoMudancaDTO.getDataFim()));
}
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("idRequisicaoMudanca");
listRetorno.add("titulo");
listRetorno.add("itemConfiguracao");
if (lista != null && !lista.isEmpty()) {
listResultado = this.engine.listConvertion(RequisicaoMudancaDTO.class, lista, listRetorno);
}
return listResultado;
}
public Collection listaQuantidadeMudancaPorPeriodo(RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
List listaQuantidadeMudancaPorPeriodo = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select count(*) ");
sql.append("from requisicaomudanca requisicaomudanca ");
sql.append("where requisicaomudanca.datahorainicio BETWEEN ? AND ? ");
parametro.add(requisicaoMudancaDTO.getDataInicio());
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
parametro.add(requisicaoMudancaDTO.getDataFim());
} else {
parametro.add(transformaHoraFinal(requisicaoMudancaDTO.getDataFim()));
}
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("quantidadeMudancaPorPeriodo");
if (lista != null && !lista.isEmpty()) {
listaQuantidadeMudancaPorPeriodo = this.engine.listConvertion(RequisicaoMudancaDTO.class, lista, listRetorno);
}
return listaQuantidadeMudancaPorPeriodo;
}
public Collection listaQuantidadeMudancaPorSolicitante(RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
List listaQuantidadeMudancaPorSolicitante = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select empregados.nome, count(*) ");
sql.append("from requisicaomudanca requisicaomudanca ");
sql.append("inner join empregados empregados on empregados.idempregado = requisicaomudanca.idsolicitante ");
sql.append("where requisicaomudanca.datahorainicio BETWEEN ? AND ? ");
sql.append("group by empregados.nome");
parametro.add(requisicaoMudancaDTO.getDataInicio());
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
parametro.add(requisicaoMudancaDTO.getDataFim());
} else {
parametro.add(transformaHoraFinal(requisicaoMudancaDTO.getDataFim()));
}
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("nomeSolicitante");
listRetorno.add("quantidadeSolicitante");
if (lista != null && !lista.isEmpty()) {
listaQuantidadeMudancaPorSolicitante = this.engine.listConvertion(RequisicaoMudancaDTO.class, lista, listRetorno);
}
return listaQuantidadeMudancaPorSolicitante;
}
public Collection listaQuantidadeMudancaPorImpacto(RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
List listaQuantidadeMudancaPorImpacto = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select requisicaomudanca.nivelimpacto, count(*) ");
sql.append("from requisicaomudanca requisicaomudanca ");
sql.append("where requisicaomudanca.datahorainicio BETWEEN ? AND ? ");
sql.append("group by requisicaomudanca.nivelimpacto");
parametro.add(requisicaoMudancaDTO.getDataInicio());
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
parametro.add(requisicaoMudancaDTO.getDataFim());
} else {
parametro.add(transformaHoraFinal(requisicaoMudancaDTO.getDataFim()));
}
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("nivelImpacto");
listRetorno.add("quantidadeImpacto");
if (lista != null && !lista.isEmpty()) {
listaQuantidadeMudancaPorImpacto = this.engine.listConvertion(RequisicaoMudancaDTO.class, lista, listRetorno);
}
return listaQuantidadeMudancaPorImpacto;
}
public Collection listaQuantidadeMudancaPorUrgencia(RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
List listaQuantidadeMudancaPorImpacto = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select requisicaomudanca.nivelurgencia, count(*) ");
sql.append("from requisicaomudanca requisicaomudanca ");
sql.append("where requisicaomudanca.datahorainicio BETWEEN ? AND ? ");
sql.append("group by requisicaomudanca.nivelurgencia");
parametro.add(requisicaoMudancaDTO.getDataInicio());
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
parametro.add(requisicaoMudancaDTO.getDataFim());
} else {
parametro.add(transformaHoraFinal(requisicaoMudancaDTO.getDataFim()));
}
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("nivelUrgencia");
listRetorno.add("quantidadeUrgencia");
if (lista != null && !lista.isEmpty()) {
listaQuantidadeMudancaPorImpacto = this.engine.listConvertion(RequisicaoMudancaDTO.class, lista, listRetorno);
}
return listaQuantidadeMudancaPorImpacto;
}
public Collection listaQuantidadeSemAprovacaoPorPeriodo(RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
List listaQuantidadeMudancaPorImpacto = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("SELECT Count(DISTINCT requisicaomudanca.idrequisicaomudanca) ");
sql.append("FROM requisicaomudanca requisicaomudanca ");
sql.append(" INNER JOIN aprovacaomudanca aprovacaomudanca ");
sql.append(" ON aprovacaomudanca.idrequisicaomudanca = requisicaomudanca.idrequisicaomudanca ");
sql.append("WHERE (aprovacaomudanca.voto IS NULL ");
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
sql.append(" OR aprovacaomudanca.voto LIKE ' ') ");
} else {
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.SQLSERVER)) {
sql.append(" OR ltrim(rtrim(aprovacaomudanca.voto)) LIKE '') ");
} else {
sql.append(" OR trim(aprovacaomudanca.voto) LIKE '') ");
}
}
sql.append(" AND requisicaomudanca.datahorainicio BETWEEN ? AND ? ");
parametro.add(requisicaoMudancaDTO.getDataInicio());
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
parametro.add(requisicaoMudancaDTO.getDataFim());
} else {
parametro.add(transformaHoraFinal(requisicaoMudancaDTO.getDataFim()));
}
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("quantidadeMudancaSemAprovacaoPorPeriodo");
if (lista != null && !lista.isEmpty()) {
listaQuantidadeMudancaPorImpacto = this.engine.listConvertion(RequisicaoMudancaDTO.class, lista, listRetorno);
}
return listaQuantidadeMudancaPorImpacto;
}
public Collection listaQuantidadeMudancaPorProprietario(RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
List listaQuantidadeMudancaPorProprietario = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select empregados.nome, count(*) ");
sql.append("from requisicaomudanca requisicaomudanca ");
sql.append("inner join empregados empregados on empregados.idempregado = requisicaomudanca.idproprietario ");
sql.append("where requisicaomudanca.datahorainicio BETWEEN ? AND ? ");
sql.append("group by empregados.nome");
parametro.add(requisicaoMudancaDTO.getDataInicio());
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
parametro.add(requisicaoMudancaDTO.getDataFim());
} else {
parametro.add(transformaHoraFinal(requisicaoMudancaDTO.getDataFim()));
}
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("nomeProprietario");
listRetorno.add("quantidadeProprietario");
if (lista != null && !lista.isEmpty()) {
listaQuantidadeMudancaPorProprietario = this.engine.listConvertion(RequisicaoMudancaDTO.class, lista, listRetorno);
}
return listaQuantidadeMudancaPorProprietario;
}
public Collection listaQuantidadeMudancaPorStatus(RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
List listaQuantidadeMudancaPorStatus = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select requisicaomudanca.status, count(*) ");
sql.append("from requisicaomudanca requisicaomudanca ");
sql.append("where requisicaomudanca.datahorainicio BETWEEN ? AND ? ");
sql.append("group by requisicaomudanca.status");
parametro.add(requisicaoMudancaDTO.getDataInicio());
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
parametro.add(requisicaoMudancaDTO.getDataFim());
} else {
parametro.add(transformaHoraFinal(requisicaoMudancaDTO.getDataFim()));
}
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("status");
listRetorno.add("quantidadeStatus");
if (lista != null && !lista.isEmpty()) {
listaQuantidadeMudancaPorStatus = this.engine.listConvertion(RequisicaoMudancaDTO.class, lista, listRetorno);
}
return listaQuantidadeMudancaPorStatus;
}
public Collection listaMudancaGrupo(RequisicaoMudancaDTO requisicaoMudancaDTO) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
List listResultado = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select grupo.idgrupo, ");
sql.append(" grupo.nome grupo ");
sql.append(" from requisicaomudanca requisicaomudanca ");
sql.append(" inner join gruporequisicaomudanca grupomudanca ");
sql.append(" on grupomudanca.idrequisicaomudanca = requisicaomudanca.idrequisicaomudanca ");
sql.append(" inner join grupo grupo ");
sql.append(" on grupo.idgrupo = grupomudanca.idgrupo ");
sql.append(" where grupomudanca.idrequisicaomudanca=? ");
parametro.add(requisicaoMudancaDTO.getIdRequisicaoMudanca());
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("grupo");
if (lista != null && !lista.isEmpty()) {
listResultado = this.engine.listConvertion(RequisicaoMudancaDTO.class, lista, listRetorno);
}
return listResultado;
}
private Timestamp transformaHoraFinal(Date data) throws ParseException {
String dataHora = data + " 23:59:59";
String pattern = "yyyy-MM-dd hh:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
java.util.Date d = sdf.parse(dataHora);
java.sql.Timestamp sqlDate = new java.sql.Timestamp(d.getTime());
return sqlDate;
}
public Collection listSolicitacoesByRegra() throws Exception {
List listRetorno = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("SELECT distinct (s.idrequisicaomudanca), "
+ " s.prioridade, s.datahoratermino, regra1.idcontrato as idcontrato, regra3.idsolicitante as idsolicitante, "
+ " regra4.idgrupo as idgrupo, s.vencendo, s.datahorainicio, s.prazohh, s.prazomm, s.nivelimpacto, s.nivelurgencia "
+ " FROM requisicaomudanca s "
+ " INNER JOIN contratos contratos on contratos.idcontrato = s.idcontrato "
+ " INNER JOIN empregados solicitante on solicitante.idempregado = s.idsolicitante "
+ " LEFT JOIN grupo grupo on grupo.idgrupo = s.idgrupoatual "
+ " LEFT JOIN regraescalonamento regra1 on regra1.idcontrato = contratos.idcontrato "
+ " LEFT JOIN regraescalonamento regra3 on regra3.idsolicitante = solicitante.idempregado "
+ " LEFT JOIN regraescalonamento regra4 on regra4.idgrupo = grupo.idgrupo "
+ " WHERE UPPER(s.status) not in ('FECHADA', 'CANCELADA', 'RESOLVIDA', 'SUSPENSA', 'CONCLUIDA') ");
listRetorno.add("idRequisicaoMudanca");
listRetorno.add("prioridade");
listRetorno.add("dataHoraTermino");
listRetorno.add("idContrato");
listRetorno.add("idSolicitante");
listRetorno.add("idGrupo");
listRetorno.add("vencendo");
listRetorno.add("dataHoraInicio");
listRetorno.add("prazoHH");
listRetorno.add("prazoMM");
listRetorno.add("nivelImpacto");
listRetorno.add("nivelUrgencia");
List list = this.execSQL(sql.toString(), null);
if (list != null && !list.isEmpty()) {
return (Collection<RequisicaoMudancaDTO>) this.listConvertion(getBean(), list, listRetorno);
} else {
return null;
}
}
}