Boa noite pessoal, estou encontrando dificuldades para setar dados no banco, para comecar estamos desenvolvendo um sistema web de demandas no local onde trabalho, j apegamos o bonde andando entao, o sistema esta apresentando alguns problemas, uns ja resolvemmos outros nao e este é que esta me deijo louco: No momento de inserir uma nova demanda, ha a possibilidade da mesma ser enviada p uma pessoa, para varias e para um setor, no caso de enviar para uma pessoa e para setor tudo certo, mas quando monto uma lista por exemplo de tres pessoa maria joao e marcos a demanda so vai para marcos, ja revisei o codigo fiz uma tentativas com arraylist mais nada… Segue abaixo os trechos de codigo se alguem encontrar onde estou errando me ajude
este é a pagina onde monto a lista de pessoal p onde irar a demanda
<p:tab id="tab2" title="Setor Destino">
<p:fieldset>
<h:panelGrid columns="2" style="margin-bottom: 15px;">
<h:graphicImage library="images" name="icon_info.gif" />
<h:outputText value="Para escolher o(s) setor(es) "
styleClass="label-info" />
</h:panelGrid>
<h:panelGrid id="gridAddSetores" columns="3" cellpadding="2"
cellspacing="5" style="margin-top:5px;">
<h:column>
<h:outputLabel for="setores" value="Enviar para qual setor?"
styleClass="label" style="margin-right: 5px;" />
<p:commandLink id="setores" value="clique aqui!"
oncomplete="setoresDialog.show()" immediate="true"
update="gridAddSetores" />
</h:column>
<p:message id="msgSetores" for="setores" />
</h:panelGrid>
<h:panelGrid columns="1" id="gridSetOuFunSelecionado"
cellpadding="2" cellspacing="5" style="margin-top:5px;">
<p:dataTable var="setor" emptyMessage="Nenhum setor adicionado!"
value="#{demandaController.nomeSetorOuFuncionario}">
<p:column headerText="Setor">
<h:outputText value="#{setor.setor}" />
</p:column>
<p:column headerText="Funcionario">
<h:outputText value="#{setor.funcionario}" />
</p:column>
<f:facet name="footer">
<h:panelGrid id="gridAguardarResposta" columns="2"
cellpadding="2" cellspacing="5">
<h:selectBooleanCheckbox id="checkbox" value="true"
title="Clique aqui para marcar ou desmarcar!" readonly="true"
rendered="#{demandaController.setorOuFuncionarioSize >= 2? true:false}" />
<h:outputLabel for="checkbox"
value="Aguardar resposta de todos os Setores?"
styleClass="label"
rendered="#{demandaController.setorOuFuncionarioSize >= 2? true:false}" />
</h:panelGrid>
</f:facet>
</p:dataTable>
</h:panelGrid>
</p:fieldset>
<p:growl id="growFaltaSetor" globalOnly="true" />
</p:tab>
aqui vai o metodo de montagem da lista
public void setorOuFuncionario(ActionEvent event) {
if (this.getSetorOuFuncionario() == null || this.getSetorOuFuncionario().isEmpty()) {
setSetorOuFuncionario(new ArrayList<Object>());
}
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);
}
e agora o metodo de salvar demanda onde pecorre-se a lista de pessoas p poder mandar p que foi escolhido mas esta enviando para a ultima pessoa escolhida
public void novaDemanda() throws Exception {
RequestContext context = RequestContext.getCurrentInstance();
Calendar dtLimite = Calendar.getInstance();
dtLimite.setTime(this.dataValidade);
Collection<DetalheDemanda> dd = new ArrayList<DetalheDemanda>();
Collection<Arquivo> listaFinalDeArquivos = new ArrayList<Arquivo>();
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()) {
this.detalheDemanda.setDataValidade(dtLimite);
this.detalheDemanda.setFuncionarioOrigem(usuarioEmSessao().getFuncionario());
this.detalheDemanda.setSetorOrigem(usuarioEmSessao().getFuncionario().getSetor());
[color=red]
if (o instanceof Funcionario) {
Funcionario ff = (Funcionario) o;
this.detalheDemanda.setSetorDestino(ff.getSetor());
this.detalheDemanda.setFuncionarioDestino(ff);
} [/color]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);
this.demandaDao.salvar(this.demanda);
demandaSalva = true;
} catch (Exception e) {
demandaSalva = false;
FacesUtils.messageInfo("Erro ao criar demanda!");
throw new Exception(e.getMessage(), e);
}
context.addCallbackParam("demandaSalva", demandaSalva);
}
ta ae galera se alguem perceber o erro me ajude…