Boa tarde galera…
peguei um projeto em andamento, um projeto de demandas, e ele ja estava funcionando so que encontramos alguns erros
um deles é que na pagina de inserir uma nova demanda tem como vc enviar p uma pessoa, para um setor todo e para varias pessoas,
neste ultimo caso quando salvamos ele envia para ultima pessoa selecioana, ja tou p ficar doido atras deste erro e naoo acho abaixo tem o codigo
do controller:
este metodo add a uma array os funcionarios selecionados ate aki tudo bem
public void setorOuFuncionario(ActionEvent event) {
if (this.getSetorOuFuncionario() == null || this.getSetorOuFuncionario().isEmpty()) {
setSetorOuFuncionario(new ArrayList());
}
if (!this.funcionarioSelecionado1.equals("")) {
Funcionario f = (Funcionario) this.funcionariosPorSetor.get(this.funcionarioSelecionado1);
getSetorOuFuncionario().add(f);
SetorOuFuncionario sf = new SetorOuFuncionario();
sf.setSetor(f.getSetor().getSigla());
sf.setFuncionario(f.getPessoa1().getNome());
sf.setInstanceOfSetor(false);
sf.setObject(f);
this.nomeSetorOuFuncionario.add(sf);
} else {
if (!this.setorSelecionado1.equals("")) {
Setor s = this.setorDao.buscarSetorPeloNome(this.setorSelecionado1);
getSetorOuFuncionario().add(s);
SetorOuFuncionario sf = new SetorOuFuncionario();
sf.setSetor(s.getSigla());
sf.setFuncionario("Todos");
sf.setInstanceOfSetor(true);
sf.setObject(s);
this.nomeSetorOuFuncionario.add(sf);
} else {
FacesUtils.messageError("Selecione um setor!");
}
}
this.funcionarioSelecionado1 = "";
this.setorSelecionado1 = "";
System.out.println("LISTA DE servidores: " + nomeSetorOuFuncionario);
}
este metodo salva a nova demanda e envia para as pessoas selecionadas
public void novaDemanda() throws Exception {
RequestContext context = RequestContext.getCurrentInstance();
Calendar dtLimite = Calendar.getInstance();
dtLimite.setTime(this.dataValidade);
Collection dd = new ArrayList();
Collection listaFinalDeArquivos = new ArrayList();
boolean demandaSalva = false;
try {
AuxPrioridade ap = (AuxPrioridade) this.prioridadeSelecionada.get(this.prioridade.getDescricao());
AuxCategoria ac = (AuxCategoria) this.categoriaSelecionada.get(this.categoria.getDescricao());
AuxStatus s = this.statusDao.buscarStatusPorDescricao(DemandaStatus.EM_ANDAMENTO.getNome());
this.demanda.setPrioridade(ap);
this.demanda.setCategoria(ac);
this.demanda.setDataAbertura(DateUtils.returnToday());
this.demanda.setStatus(s);
for (Object o : getSetorOuFuncionario()) {
System.out.println(“chegou aqui”);
this.detalheDemanda.setDataValidade(dtLimite);
this.detalheDemanda.setFuncionarioOrigem(usuarioEmSessao().getFuncionario());
this.detalheDemanda.setSetorOrigem(usuarioEmSessao().getFuncionario().getSetor());
if (o instanceof Funcionario) {
Funcionario ff = (Funcionario) o;
this.detalheDemanda.setSetorDestino(ff.getSetor());
this.detalheDemanda.setFuncionarioDestino(ff);
System.out.println("funcionarios: " + ff);
} else if (o instanceof Setor) {
Setor ss = (Setor) o;
this.detalheDemanda.setSetorDestino(ss);
System.out.println("setores: " + ss);
}
this.detalheDemanda.setDemanda(this.demanda);
dd.add(this.detalheDemanda);
System.out.println("LISTA DE DETALHE DEMANDA: " + dd);
if (this.arquivoSetadoParaUpload) {
nomeArquivoAnexado = alteraCaracter(a.getNome());
tipoArquivoAnexado = a.getTipo();
caminhoArquivoAnexado = alteraCaracter(a.getCaminho());
System.out.println("nome do arquivoparaupload: " + nomeArquivoAnexado + "." + tipoArquivoAnexado + " Caminho: " + caminhoArquivoAnexado);
a.setNome(nomeArquivoAnexado);
a.setTipo(tipoArquivoAnexado);
a.setCaminho(caminhoArquivoAnexado);
a.setDemanda(this.detalheDemanda);
listaFinalDeArquivos.add(a);
}
this.detalheDemanda.setArquivoCollection(new ArrayList<Arquivo>());
this.detalheDemanda.getArquivoCollection().addAll(listaFinalDeArquivos);
System.out.println("LISTA DE ARQUIVOS PARA UPLOAD: " + listaFinalDeArquivos);
}
}
this.demanda.setDetalheDemandaCollection(new ArrayList<DetalheDemanda>());
this.demanda.getDetalheDemandaCollection().addAll(dd);
this.demandaDao.salvar(this.demanda);
init();
demandaSalva = true;
} catch (Exception e) {
demandaSalva = false;
FacesUtils.messageInfo("Erro ao criar demanda!");
throw new Exception(e.getMessage(), e);
}
context.addCallbackParam("demandaSalva", demandaSalva);
}
se alguem detectar o erro a ajuda vai ser bem aceita!!!