//ItemEstruturaDao itemDao = new ItemEstruturaDao(request);
//Buscando a estrutura de n�vel de projeto/atividade do PPA 2008-2011
EstruturaEtt estruturaProdutos = (EstruturaEtt) new EstruturaDao(request).buscar(EstruturaEtt.class, Long.valueOf(21));
ExercicioExe exe2008 = (ExercicioExe) buscar(ExercicioExe.class, Long.valueOf(6));
ExercicioExe exe2009 = (ExercicioExe) buscar(ExercicioExe.class, Long.valueOf(7));
ExercicioExe exe2010 = (ExercicioExe) buscar(ExercicioExe.class, Long.valueOf(8));
ExercicioExe exe2011 = (ExercicioExe) buscar(ExercicioExe.class, Long.valueOf(9));
Transaction tx = null;
try{
//UsuarioUsu usuarioLogado = ((SegurancaECAR)request.getSession().getAttribute("seguranca")).getUsuario();
List<CargaProdutosPPA> itensArquivo = new ArrayList<CargaProdutosPPA>();
msg("++++++++++++++++ [ Processo Iniciado ] ++++++++++++++++++++");
tx = session.beginTransaction();
msg("++++++++++++++++ [ Lendo Arquivo ] ++++++++++++++++++++");
BufferedReader in = new BufferedReader (new FileReader("/home/aleixo/cop/dadosProdutosOK.csv"));
String linha="";
while ((linha=in.readLine()) != null) {
//ANOEXERCICIO; CODPAT; CODPRODUTOPAT; Obra(S/N); NOMEPRODUTOORC; DESCRPRODUTOPAT; SIGLAUNIDMEDIDA; QTDEPRODPATPREV; CODREGIAO; CODMUNICIPIO
String[] campos = linha.split(";");
String anoExe = campos[0].trim();
String siglaAcao = campos[1].trim();
String siglaProduto = campos[2].trim();
String indObra = campos[3].trim();
String nomeIndicador = campos[4].trim();
String nomeProduto = campos[5].trim();
String unidadeIndicador = campos[6].trim();
String valorPrevisto = campos[7].trim();
String codRegiao = campos[8].trim();
String codMunicipio = "";
if(campos.length == 10)
codMunicipio = campos[9].trim();
CargaProdutosPPA itemArquivo = new CargaProdutosPPA();
itemArquivo.setAnoExe(anoExe);
itemArquivo.setCodMunicipio(codMunicipio);
itemArquivo.setCodRegiao(codRegiao);
itemArquivo.setIndObra(indObra);
itemArquivo.setNomeIndicador(Util.removeEspacosDuplicados(nomeIndicador));
itemArquivo.setNomeProduto(Util.removeEspacosDuplicados(nomeProduto));
itemArquivo.setSiglaAcao(siglaAcao);
itemArquivo.setSiglaProduto(siglaProduto);
itemArquivo.setUnidadeIndicador(unidadeIndicador);
itemArquivo.setValorPrevisto(valorPrevisto);
itensArquivo.add(itemArquivo);
}
Set itens = estruturaProdutos.getItemEstruturaIetts();
if(itens != null && !itens.isEmpty()){
for(Iterator it = itens.iterator(); it.hasNext();){
ItemEstruturaIett item = (ItemEstruturaIett) it.next();
String chaveItem = item.getItemEstruturaIett().getSiglaIett() + "_" + "_" + item.getNomeIett();
List<ItemEstrtIndResulIettr> indicadores = new ArrayList<ItemEstrtIndResulIettr>(item.getItemEstrtIndResulIettrs());
msg("--> Percorrendo indicadores do item " + item.getNomeIett());
for(ItemEstrtIndResulIettr indicador : indicadores){
double previsto2008 = 0;
double previsto2009 = 0;
double previsto2010 = 0;
double previsto2011 = 0;
for(CargaProdutosPPA itemArq : itensArquivo){
String chaveItemArq = itemArq.getSiglaAcao() + "_" + "_" + itemArq.getNomeProduto();
if(chaveItem.equals(chaveItemArq)){
if(indicador.getNomeIettir().equals(itemArq.getNomeIndicador())){
if("2008".equals(itemArq.getAnoExe())){
previsto2008 += Double.valueOf(itemArq.getValorPrevisto()).doubleValue();
}
if("2009".equals(itemArq.getAnoExe())){
previsto2009 += Double.valueOf(itemArq.getValorPrevisto()).doubleValue();
}
if("2010".equals(itemArq.getAnoExe())){
previsto2010 += Double.valueOf(itemArq.getValorPrevisto()).doubleValue();
}
if("2011".equals(itemArq.getAnoExe())){
previsto2011 += Double.valueOf(itemArq.getValorPrevisto()).doubleValue();
}
}
}
}
//Gravar valores previstos para cada ano do indicador
//Gravando para: 2008
if(previsto2008 > 0){
msg("-------> Gravando total para 2008: " + previsto2008);
ItemEstrutFisicoIettfPK compId2008 = new ItemEstrutFisicoIettfPK();
compId2008.setCodExe(exe2008.getCodExe());
compId2008.setCodIettir(indicador.getCodIettir());
ItemEstrutFisicoIettf iettf2008 = new ItemEstrutFisicoIettf();
//FIXME: Ajustar Carga de Itens
/* Mantis 0010128 - Qtd prevista n�o � mais informado por exerc�cio
* Mudou a pk. n�o usa mais chave composta
* */
//iettf2008.setComp_id(compId2008);
iettf2008.setDataInclusaoIettf(Data.getDataAtual());
//iettf2008.setExercicioExe(exe2008);
iettf2008.setIndAtivoIettf(Dominios.SIM);
iettf2008.setItemEstrtIndResulIettr(indicador);
iettf2008.setQtdPrevistaIettf(Double.valueOf(previsto2008));
session.save(iettf2008);
}
//Gravando para: 2009
if(previsto2009 > 0){
msg("-------> Gravando total para 2009: " + previsto2009);
ItemEstrutFisicoIettfPK compId2009 = new ItemEstrutFisicoIettfPK();
compId2009.setCodExe(exe2009.getCodExe());
compId2009.setCodIettir(indicador.getCodIettir());
ItemEstrutFisicoIettf iettf2009 = new ItemEstrutFisicoIettf();
//FIXME: Ajustar Carga de Itens
/* Mantis 0010128 - Qtd prevista n�o � mais informado por exerc�cio
* Mudou a pk. n�o usa mais chave composta
* */
//iettf2009.setComp_id(compId2009);
iettf2009.setDataInclusaoIettf(Data.getDataAtual());
//iettf2009.setExercicioExe(exe2009);
iettf2009.setIndAtivoIettf(Dominios.SIM);
iettf2009.setItemEstrtIndResulIettr(indicador);
iettf2009.setQtdPrevistaIettf(Double.valueOf(previsto2009));
session.save(iettf2009);
}
//Gravando para: 2010
if(previsto2010 > 0){
msg("-------> Gravando total para 2010: " + previsto2010);
ItemEstrutFisicoIettfPK compId2010 = new ItemEstrutFisicoIettfPK();
compId2010.setCodExe(exe2010.getCodExe());
compId2010.setCodIettir(indicador.getCodIettir());
ItemEstrutFisicoIettf iettf2010 = new ItemEstrutFisicoIettf();
//FIXME: Ajustar Carga de Itens
/* Mantis 0010128 - Qtd prevista n�o � mais informado por exerc�cio
* Mudou a pk. n�o usa mais chave composta
* */
//iettf2010.setComp_id(compId2010);
iettf2010.setDataInclusaoIettf(Data.getDataAtual());
//iettf2010.setExercicioExe(exe2010);
iettf2010.setIndAtivoIettf(Dominios.SIM);
iettf2010.setItemEstrtIndResulIettr(indicador);
iettf2010.setQtdPrevistaIettf(Double.valueOf(previsto2010));
session.save(iettf2010);
}
//Gravando para: 2011
if(previsto2011 > 0){
msg("-------> Gravando total para 2011: " + previsto2011);
ItemEstrutFisicoIettfPK compId2011 = new ItemEstrutFisicoIettfPK();
compId2011.setCodExe(exe2011.getCodExe());
compId2011.setCodIettir(indicador.getCodIettir());
ItemEstrutFisicoIettf iettf2011 = new ItemEstrutFisicoIettf();
//FIXME: Ajustar Carga de Itens
/* Mantis 0010128 - Qtd prevista n�o � mais informado por exerc�cio