public List<MarshGruppoCommerciale> listGruppiComercialiWithAchieved() { List<MarshGruppoCommerciale> result = new ArrayList<MarshGruppoCommerciale>(); Session session = (Session) this.connection.getSessionFactory().openSession(); Transaction tx = session.beginTransaction(); try { Query query = session.createQuery( "from MAchieved where netRevenues > 0"); // where id.ebtProdotto <> '' and // id.ebtProdotto <> 'Out of scope' List<MAchieved> collections = query.list(); Map<String, MarshGruppoCommerciale> grupCommMap = new HashMap< String, MarshGruppoCommerciale>(); // mappa dei Gruppi commerciali recuperati da MAchieved con // chiave il proprio codice eys for (MAchieved mAchieved : collections) { // Per tutti i record della tabella derivata dal file PRODUZIONE (Estrattre // ebt) che Marsh ci invia // //GESTIONE DEL CLIENT EXECUTIVE // // check if the CE already exists // MarshCE clientExec = ceMap.get(mAchieved.getIdAeCgruppo()); // if(null == clientExec) { // clientExec = new MarshCE(); // ceMap.put(mAchieved.getIdAeCgruppo(), clientExec); // clientExec.setEysCode(mAchieved.getIdAeCgruppo()); // clientExec.setNominativo(mAchieved.getAeCgruppo()); // // clientExec.setUsername(username) qui non ce l'ho e comunque in information owners // non serve // result.add(clientExec); // } MarshGruppoCommerciale gruppoCommerciale = grupCommMap.get(mAchieved.getCodiceCapogruppo()); if (null == gruppoCommerciale) { gruppoCommerciale = new MarshGruppoCommerciale(); grupCommMap.put(mAchieved.getCodiceCapogruppo(), gruppoCommerciale); gruppoCommerciale.setCodiceCapoGruppo(mAchieved.getCodiceCapogruppo()); gruppoCommerciale.setDenominazione(mAchieved.getCapogruppo()); result.add(gruppoCommerciale); } // GESTIONE DEL PRODOTTO // trovo il codice prodotto usato in ebt relativo al codice eurosys indicato nel record di // M_achieved Query queryProduct = session.createQuery( "from MEbtMapping where eysCode = '" + mAchieved.getCodGaranzia() + "'"); MEbtMapping lobProduct = (MEbtMapping) queryProduct.uniqueResult(); if (lobProduct == null) { log.debug( "ATTENTION: eysCode " + mAchieved.getCodGaranzia() + " not found in MLobProduct"); continue; } String ebtProduct = lobProduct.getProdotto(); // nome del prodotto ebt MarshProduct product = gruppoCommerciale.getProductMap().get(ebtProduct); if (product == null) { product = new MarshProduct(); gruppoCommerciale.getProductMap().put(ebtProduct, product); product.setName(ebtProduct); product.setYear(mAchieved.getAnnoContabile()); } if (mAchieved.getNetRevenues() > 0) product.setAchieved(product.getAchieved() + mAchieved.getNetRevenues().longValue()); } tx.commit(); } catch (HibernateException ex) { log.error("Exception in listClientExecutives", ex); ex.printStackTrace(); tx.rollback(); } finally { session.close(); } return result; }
/* (non-Javadoc) * @see com.kp.marsh.ebt.server.importer.dao.impl.ImportController#listClientExecutivesWithFinalBalance() */ @Override public List<MarshCE> listClientExecutivesWithFinalBalance() { List<MarshCE> result = new ArrayList<MarshCE>(); Session session = (Session) this.connection.getSessionFactory().openSession(); Transaction tx = session.beginTransaction(); try { Query query = session.createQuery( "from MActuals"); // where id.ebtProdotto <> '' and id.ebtProdotto <> 'Out of scope' List<MActuals> collections = query.list(); Map<String, MarshCE> ceMap = new HashMap<String, MarshCE>(); // mappa dei CE con chiave il proprio codice eys for (MActuals mActual : collections) { // Per tutti i record della tabella derivata dal file PRODUZIONE che marsh // ci invia // check if the CE already exists MarshCE clientExec = ceMap.get(mActual.getIdAeCgruppo()); if (null == clientExec) { clientExec = new MarshCE(); ceMap.put(mActual.getIdAeCgruppo(), clientExec); clientExec.setEysCode(mActual.getIdAeCgruppo()); clientExec.setNominativo(mActual.getAeCgruppo()); // clientExec.setUsername(username) qui non ce l'ho e comunque in information owners non // serve result.add(clientExec); } MarshGruppoCommerciale mGC = clientExec.getGruppoCommercialeMap().get(mActual.getCodiceCapogruppo()); if (null == mGC) { mGC = new MarshGruppoCommerciale(); clientExec.getGruppoCommercialeMap().put(mActual.getCodiceCapogruppo(), mGC); mGC.setCodiceCapoGruppo(mActual.getCodiceCapogruppo()); mGC.setDenominazione(mActual.getCapogruppo()); } Query queryProduct = session.createQuery( "from MEbtMapping where eysCode = '" + mActual.getCodGaranzia() + "'"); MEbtMapping lobProduct = (MEbtMapping) queryProduct.uniqueResult(); if (lobProduct == null) { log.debug("ATTENTION: eysCode not found in MLobProduct"); continue; } String ebtProduct = lobProduct.getProdotto(); // nome del prodotto ebt MarshProduct product = mGC.getProductMap().get(ebtProduct); if (product == null) { product = new MarshProduct(); mGC.getProductMap().put(ebtProduct, product); product.setName(ebtProduct); product.setYear(mActual.getAnnoContabile()); } if (mActual.getNetRevenues() > 0) product.setActual(product.getActual() + mActual.getNetRevenues().longValue()); } tx.commit(); } catch (HibernateException ex) { log.error("Exception in listClientExecutives", ex); ex.printStackTrace(); tx.rollback(); } finally { session.close(); } return result; }