Dúvida! Bem chata!

Galera é o seguinte, tow com uma dúvida bastante complicada!
tenho uma tabela que me mostra os itens de uma nota fiscal ou seja uma nota pode conter vários itens, blz.
Agora é q vem o problema.
é o seguinte, eu tenho 2 modulos no meu sistema: um é industria e outro é cliente:
o cliente digita a nota fiscal e é mostrado a nota com os itens a serem devolvidos parcialmente: supondo, em uma nota contem 3 itens: 1 - cebola / 2 - tomate / 3 - batata.
o cliente escolhe, 1 - cebola e 2 - tomate e estes itens escolhidos são enviados para o banco de dados.
logo mais, o modulo industria entra em ação.
o indústria no perfil dele, vai na funcao verificar todas as notas ficais devolvidas parcialmente e escolhe a nota desejada.
só que quando vai mostrar a nota com os itens devolvidos, apenas mostra o ultimo selecionado.
o que será isso??? alguem pode me ajudar!


vou mostrar o código JSP da minha aplicação:

<table width="100%" border="0">
		<tr>
			<th bgcolor="#BBBBBB" class="style39" scope="col">C&oacute;digo	Item</th>
			<th bgcolor="#BBBBBB" class="style39" scope="col">Descri&ccedil;&atilde;o</th>
			<th bgcolor="#BBBBBB" class="style39" scope="col">Quantidade de Devolu&ccedil;&atilde;o </th>
		</tr>
	<%	
		String[] devolucao = notaDev[6].split("/");
			for(int i=0; i<itens.length; i++){
				for(int d=0; d<devolucao.length; d++){
				if( (itens[i].getCod_item().equals((devolucao[d].split("@")[0]))) ){
					if(d % 2==0){%>
						<tr bgcolor=#FFFFFF>
					<%}else{%>
						<tr bgcolor=#DDDDDD>
					<%}%>
						<td><div align="center" class="style40"><%=itens[i].getCod_item()%></div></td>
						<td><div align="center" class="style40"><%=itens[i].getDesc_item()%></div></td>
						<td><div align="center" class="style40"><%=devolucao[d].split("@")[1]%></div></td>
					</tr>
	 			<%}

// esta parte é onde estava testando e vi uma inconsistencia, onde o item é sempre o ultimo escolhido, por isso mostra apenas o ultimo e o primeiro q escolhi não mostra, pois ele é diferente.
				System.out.println("  ::::  "+ (itens[i].getCod_item().equals((devolucao[d].split("@")[0]))));
				System.out.println("  item:  "+ (itens[i].getCod_item()));
				System.out.println("  NF DEV:  "+ notaDev[0]+" - "+notaDev[1]+" - "+notaDev[2]+" - "+notaDev[3]+" - "+notaDev[4]+" - "+notaDev[5]+" - "+notaDev[6]+" - "+notaDev[7] );
				System.out.println("  item dev:  "+ ( (devolucao[d].split("@")[0]))+"\n---------------" );
			}
		}
	%>
	</table>

agora vou mostrar a saida com exemplo real:
SAIDA:

:::: false
item 016070
item dev 016072

:::: false
item 016071
item dev 016072

:::: false
item 016002
item dev 016072

:::: true
item 016072
item dev 016072


agora vou mostrar o repositorio:

REPOSITORIO

	private static final String DEVOLVER_NOTA_PARCIAL = 
		"INSERT INTO TB_NF_DEVOLVIDA(CNPJ,NUM_NF,DATA_NF,DATA_DEV,MOTIVO,NUM_NF_DEV,DEV_ITEM,SITUACAO,USUARIO,DEV_ITEM_QTD) " +
	    "VALUES(?,?,?,?,?,?,?,?,?,?);" + "UPDATE TB_NF_DEVOLVIDA SET SITUACAO = 1 WHERE NUM_NF = ?";


	@SuppressWarnings("null")
	public void devolucaoNotaParcial(NFCBC notaDev) throws ExcecaoEntidadeExistente,
	ExcecaoRepositorio, ExcecaoDadoInvalido {
		Connection con = gerCon.getConexao(true);
		PreparedStatement ps = null;
		try {
			Calendar dt = Calendar.getInstance();
			dt.set(Calendar.DAY_OF_MONTH, Integer.parseInt(notaDev.getData_nf().split("/")[0]));
			dt.set(Calendar.MONTH, Integer.parseInt(notaDev.getData_nf().split("/")[1]) - 1);
			dt.set(Calendar.YEAR, Integer.parseInt(notaDev.getData_nf().split("/")[2]));
			Date dataNota = new Date(dt.getTimeInMillis());

			Calendar dtDev = Calendar.getInstance();
			dtDev.set(Calendar.DAY_OF_MONTH, Integer.parseInt(notaDev.getDataDev().split("/")[0]));
			dtDev.set(Calendar.MONTH,Integer.parseInt(notaDev.getDataDev().split("/")[1]) - 1);
			dtDev.set(Calendar.YEAR, Integer.parseInt(notaDev.getDataDev().split("/")[2]));
			Date dataDev = new Date(dtDev.getTimeInMillis());

			/* String itensDev = "";			
			for(int x=0; x<notaDev.getItensDev().size(); x++){
				itensDev += notaDev.getItensDev().get(x)+"/";
			}*/

			ps = con.prepareStatement(DEVOLVER_NOTA_PARCIAL);
			
			for(int x=0; x<notaDev.getItensDev().size(); x++){
				String itensDev = "";
				itensDev += notaDev.getItensDev().get(x)+"/";
				
				ps.setString(1, notaDev.getCnpj());
				ps.setLong(2, notaDev.getNum_nf());
				ps.setDate(3, dataNota);
				ps.setDate(4, dataDev);
				ps.setString(5, notaDev.getMotivo_reprov1());
				ps.setLong(6, notaDev.getNum_nf_dev());
				ps.setString(7, (notaDev.getItensDev().get(x)+"").split("@")[0]);
				ps.setInt(8, 1);
				ps.setString(9, notaDev.getUsuario_dfpc());
				ps.setInt(10, Integer.parseInt((notaDev.getItensDev().get(x)+"").split("@")[1]));
				ps.setLong(11, notaDev.getNum_nf());	
				ps.executeUpdate();
			}
			
		} catch (final SQLException e) {			
			throw new ExcecaoEntidadeExistente("Nota Fiscal já devolvida!");			
		} finally {
			try {
				ps.close();
			} catch (final SQLException e) {
				throw new ExcecaoRepositorio("Erro ao fechar a conexão com o Banco de Dados!");
			}
		}
	}

[color=red]Editado por Luca para incluir as tags Code para mostrar a indentação do código. Por favor ver dicas de uso do forum [/color]