@ModelAttribute("navigaProgetti") public NavigaProgetti modelAttrNavigaProgetti() { NavigaProgetti navigaProgetti = new NavigaProgetti(); String idNatura = (aggregataFacade.findNaturaByCod(codiNaturaOpenCUP) == null) ? "0" : aggregataFacade.findNaturaByCod(codiNaturaOpenCUP).getId().toString(); navigaProgetti.setIdNatura(idNatura); return navigaProgetti; }
@RenderMapping public String handleRenderRequest( RenderRequest renderRequest, RenderResponse renderResponse, Model model, @ModelAttribute("navigaProgetti") NavigaProgetti navigaProgetti, @RequestParam(required = false, value = "jsonnavigaaggregata") String jsonnavigaaggregata) { if (!StringUtils.isEmpty(jsonnavigaaggregata)) { NavigaAggregata navigaAggregata = createModelAggregataFromJsonString(jsonnavigaaggregata); navigaProgetti.importa(navigaAggregata); } navigaProgetti.setCurrentAction("elencoProgetti"); return elencoProgettiRenderRequest(renderRequest, renderResponse, model, navigaProgetti); }
@ActionMapping(params = "action=dettaglio") public void actionDettaglio( ActionRequest aRequest, ActionResponse aResponse, Model model, @ModelAttribute("navigaProgetti") NavigaProgetti navigaProgetti, @RequestParam(value = "idProgettoDettaglio") String idProgettoDettaglio, @RequestParam(value = "currentAction") String currentAction, @RequestParam(required = false, value = "cercaPerKeyword") String cercaPerKeyword) { navigaProgetti.setIdProgetto(idProgettoDettaglio); LiferayPortletURL renderURL = createLiferayPortletURL(aRequest, paginaDettaglioProgetto, dettaglioProgettoInstanceId); renderURL.setParameter("idPj", idProgettoDettaglio); try { ThemeDisplay themeDisplay = (ThemeDisplay) aRequest.getAttribute(WebKeys.THEME_DISPLAY); PortletURL returnURL = PortletURLFactoryUtil.create( aRequest, (String) aRequest.getAttribute(WebKeys.PORTLET_ID), themeDisplay.getLayout().getPlid(), PortletRequest.RENDER_PHASE); returnURL.setWindowState(WindowState.NORMAL); returnURL.setPortletMode(PortletMode.VIEW); // returnURL.setParameter("jsonnavigaprogetti", // createJsonStringFromModelAttribute(navigaProgetti)); returnURL.setParameter("action", currentAction); if (!StringUtils.isEmpty(cercaPerKeyword)) { returnURL.setParameter("cercaPerKeyword", cercaPerKeyword); } renderURL.setParameter("returnUrl", returnURL.toString()); } catch (Exception e) { e.printStackTrace(); } try { aResponse.sendRedirect( HttpUtil.encodeParameters( renderURL.toString())); // + "&idPj="+navigaProgetti.getIdProgetto() ) ); return; } catch (Exception e) { e.printStackTrace(); } }
@RenderMapping(params = "action=ricercaAvanzata") public String effettuaRicercaAvanzata( RenderRequest renderRequest, RenderResponse renderResponse, Model model, @ModelAttribute("navigaProgetti") NavigaProgetti navigaProgetti, @RequestParam("cercaPerKeyword") String cercaPerKeyword) { model.addAttribute("currentAction", "ricercaAvanzata"); navigaProgetti.setCurrentAction("ricercaAvanzata"); model.addAttribute("paginate", "false"); model.addAttribute("navigaProgetti", navigaProgetti); model.addAttribute("valoreRicercaValido", "NO"); // MASCHERA RICERCA PROGETTI // initInModelMascheraRicerca(model, navigaProgetti); model.addAttribute("navigaProgetti", navigaProgetti); // FINE RICERCA PROGETTI // return "elenco-progetti-view"; }
private void initInModelMascheraRicerca(Model model, NavigaProgetti filtro) { // Carico la lista delle regioni List<AreaGeografica> listAreaGeografica = aggregataFacade.findAreaGeografica(); model.addAttribute("listAreaGeografica", listAreaGeografica); if ((!"-1".equals(filtro.getIdAreaGeografica())) && (!"0".equals(filtro.getIdAreaGeografica()))) { // Regione selezionata carico le Province List<Regione> listRegione = aggregataFacade.findRegioniByIdAreaGeografica( Integer.valueOf(filtro.getIdAreaGeografica())); model.addAttribute("listRegione", listRegione); } if ((!"-1".equals(filtro.getIdRegione())) && (!"0".equals(filtro.getIdRegione()))) { // Regione selezionata carico le Province List<Provincia> listProvincia = aggregataFacade.findProvinciaByIdRegione(Integer.valueOf(filtro.getIdRegione())); model.addAttribute("listProvincia", listProvincia); } if ((!"-1".equals(filtro.getIdProvincia())) && (!"0".equals(filtro.getIdProvincia()))) { // Provincia selezionata carico i Comuni List<Comune> listComune = aggregataFacade.findComuneByIdProvincia(Integer.valueOf(filtro.getIdProvincia())); model.addAttribute("listComune", listComune); } // Carico la lista degli Anni Decisione List<AnnoDecisione> listaAnnoDecisione = aggregataFacade.findAnniDecisione(); model.addAttribute("listaAnnoDecisione", listaAnnoDecisione); // Carico la lista delle Tipologia Intervento List<TipologiaIntervento> listaTipologiaIntervento = aggregataFacade.findTipologiaIntervento(); model.addAttribute("listaTipologiaIntervento", listaTipologiaIntervento); // Carico la lista degli Stato Progetto List<StatoProgetto> listaStatoProgetto = aggregataFacade.findStatoProgetto(); model.addAttribute("listaStatoProgetto", listaStatoProgetto); // Carico la lista della Aree Soggetto List<AreaSoggetto> listAreaSoggetto = aggregataFacade.findAreaSoggetto(); model.addAttribute("listAreaSoggetto", listAreaSoggetto); if ((!"-1".equals(filtro.getIdAreaSoggetto())) && (!"0".equals(filtro.getIdAreaSoggetto()))) { // Carico la lista della Categoria Soggetto List<CategoriaSoggetto> listCategoriaSoggetto = aggregataFacade .findCategoriaSoggettoByIdAreaSoggetto(); // Integer.valueOf( // filtro.getIdAreaSoggetto() )); model.addAttribute("listCategoriaSoggetto", listCategoriaSoggetto); } if ((!"-1".equals(filtro.getIdCategoriaSoggetto())) && (!"0".equals(filtro.getIdCategoriaSoggetto()))) { // Carico la lista della Sottocategoria Soggetto List<SottocategoriaSoggetto> listSottoCategoriaSoggetto = aggregataFacade.findSottocategoriaSoggetto( Integer.valueOf(filtro.getIdCategoriaSoggetto())); model.addAttribute("listSottoCategoriaSoggetto", listSottoCategoriaSoggetto); } // Carico le Aree d'intervednto List<AreaIntervento> listAreaIntervento = aggregataFacade.findAreaIntervento(); model.addAttribute("listAreaIntervento", listAreaIntervento); if ((!"-1".equals(filtro.getIdAreaIntervento())) && (!"0".equals(filtro.getIdAreaIntervento()))) { // Settore intervento selezionata carico i sottosettori List<SottosettoreIntervento> listSottosettoreIntervento = aggregataFacade.findSottosettoreByArea(Integer.valueOf(filtro.getIdAreaIntervento())); model.addAttribute("listSottosettoreIntervento", listSottosettoreIntervento); } if (((!"-1".equals(filtro.getIdAreaIntervento())) && (!"-1".equals(filtro.getIdSottosettoreIntervento()))) && ((!"0".equals(filtro.getIdAreaIntervento())) && (!"0".equals(filtro.getIdSottosettoreIntervento())))) { // Settore intervento e sottosettore intervento selezionati carico le categorie List<CategoriaIntervento> listaCategoriaIntervento = aggregataFacade.findCategoriaInterventoByAreaSottosettore( Integer.valueOf(filtro.getIdAreaIntervento()), Integer.valueOf(filtro.getIdSottosettoreIntervento())); model.addAttribute("listaCategoriaIntervento", listaCategoriaIntervento); } }
@RenderMapping(params = "action=ricercaLibera") public String effettuaRicerca( RenderRequest renderRequest, RenderResponse renderResponse, Model model, @ModelAttribute("navigaProgetti") NavigaProgetti navigaProgetti, @RequestParam("cercaPerKeyword") String cercaPerKeyword) { model.addAttribute("currentAction", "ricercaLibera"); navigaProgetti.setCurrentAction("ricercaLibera"); model.addAttribute("cercaPerKeyword", cercaPerKeyword); model.addAttribute("navigaProgetti", navigaProgetti); logger.info("effettuaRicerca.cercaPerKeyword: " + cercaPerKeyword); try { Document[] documents = null; List<DocumentoDTO> risultatiGenerici = new ArrayList<DocumentoDTO>(); List<Progetto> risultatiProgetti = new ArrayList<Progetto>(); if (cercaPerKeyword != null && cercaPerKeyword.length() > 3) { Query query = StringQueryFactoryUtil.create( Field.TITLE + ":" + cercaPerKeyword + " or " + Field.CONTENT + ":" + cercaPerKeyword + " or " + Constants.RICERCALIBERA_FIELD_SEARCH + ":" + cercaPerKeyword + " or " + Constants.RICERCALIBERA_FIELD_LOCALIZZAZIONE + ":" + cercaPerKeyword + " or " + Constants.RICERCALIBERA_FIELD_CODICE_CUP + ":" + cercaPerKeyword); logger.debug("query = " + query.toString()); Hits hits = SearchEngineUtil.search( SearchEngineUtil.SYSTEM_ENGINE_ID, PortalUtil.getDefaultCompanyId(), query, -1, -1); logger.info("hits = " + hits.getLength()); documents = hits.getDocs(); model.addAttribute("valoreRicercaValido", "SI"); } else { SessionMessages.add(renderRequest, "valore-ricerca-non-valido"); model.addAttribute("valoreRicercaValido", "NO"); } if (documents != null) { DocumentoDTO documento = null; Progetto progetto = null; int contaDoc = 0; for (Document document : documents) { logger.debug("Document: " + document.getUID()); // for (Map.Entry<String, Field> entry : document.getFields().entrySet() ) { // logger.debug("-- " + entry.getKey() + ": " + entry.getValue().getValue() ); // } if (document.get(Field.ENTRY_CLASS_NAME).equals(Progetto.class.getName())) { progetto = getProgettoFromDocument(document); risultatiProgetti.add(progetto); } else { documento = new DocumentoDTO(); documento.setTitolo(document.getField(Field.TITLE).getValue()); String testo = "non disponibile"; if (document.getField(Field.CONTENT) != null) { testo = trunc(document.getField(Field.CONTENT).getValue(), 37); } documento.setTesto(testo); documento.setId(contaDoc++); AssetEntry assetEntry = AssetEntryLocalServiceUtil.getEntry( document.get(Field.ENTRY_CLASS_NAME), Long.parseLong(document.get(Field.ENTRY_CLASS_PK))); documento.setUrl( getAssetViewURL(renderRequest, renderResponse, assetEntry, cercaPerKeyword)); risultatiGenerici.add(documento); } } } // model.addAttribute("risultatiGenerici", risultatiGenerici); model.addAttribute("risultatiGenericiSize", risultatiGenerici.size()); SearchContainer<DocumentoDTO> searchContainerElencoDoc = new SearchContainer<DocumentoDTO>( renderRequest, renderResponse.createRenderURL(), null, "Nessun dato trovato per la selezione fatta"); searchContainerElencoDoc.setDelta(risultatiGenerici.size()); searchContainerElencoDoc.setTotal(risultatiGenerici.size()); searchContainerElencoDoc.setResults(risultatiGenerici); model.addAttribute("searchContainerElencoDoc", searchContainerElencoDoc); // model.addAttribute("risultatiProgetti", risultatiProgetti); SearchContainer<Progetto> searchContainerElencoPro = new SearchContainer<Progetto>( renderRequest, renderResponse.createRenderURL(), null, "Nessun dato trovato per la selezione fatta"); searchContainerElencoPro.setDelta(risultatiProgetti.size()); searchContainerElencoPro.setTotal(risultatiProgetti.size()); searchContainerElencoPro.setResults(risultatiProgetti); model.addAttribute("searchContainerElenco", searchContainerElencoPro); } catch (SearchException e) { logger.error("SearchException: ", e); } catch (NumberFormatException e) { logger.error("NumberFormatException: ", e); } catch (PortalException e) { logger.error("PortalException: ", e); } catch (SystemException e) { logger.error("SystemException: ", e); } return "elenco-progetti-view"; }
@RenderMapping(params = "action=elencoProgetti") public String elencoProgettiRenderRequest( RenderRequest renderRequest, RenderResponse renderResponse, Model model, @ModelAttribute("navigaProgetti") NavigaProgetti navigaProgetti) { // ,@RequestParam(required=false, value="jsonnavigaprogetti") String jsonnavigaprogetti){ // if(!StringUtils.isEmpty(jsonnavigaprogetti)){ // navigaProgetti = createModelProgettiFromJsonString(jsonnavigaprogetti); // } if (StringUtils.isEmpty(navigaProgetti.getCurrentAction())) { navigaProgetti.setCurrentAction("elencoProgetti"); } model.addAttribute("currentAction", navigaProgetti.getCurrentAction()); model.addAttribute("paginate", "true"); // LISTA PROGETTI // // orderByCol is the column name passed in the request while sorting String orderByCol = ParamUtil.getString(renderRequest, "orderByCol"); if (Validator.isNull(orderByCol) || Validator.equals("", orderByCol)) { orderByCol = "impoCostoProgetto"; } // orderByType is passed in the request while sorting. It can be either asc or desc String orderByType = ParamUtil.getString(renderRequest, "orderByType"); if (Validator.isNull(orderByType) || Validator.equals("", orderByType)) { orderByType = "desc"; } // delta String sDelta = ParamUtil.getString(renderRequest, "delta"); int delta = maxResult; if (!(Validator.isNull(sDelta) || Validator.equals("", sDelta))) { delta = Integer.parseInt(sDelta); } SearchContainer<Progetto> searchContainerElenco = new SearchContainer<Progetto>( renderRequest, renderResponse.createRenderURL(), null, "Nessun dato trovato per la selezione fatta"); searchContainerElenco.setDelta(delta); searchContainerElenco.setOrderByCol(orderByCol); searchContainerElenco.setOrderByType(orderByType); // int size = progettoFacade.sizeElencoProgetti( navigaProgetti ).getSize(); navigaProgetti.setOrderByCol(searchContainerElenco.getOrderByCol()); navigaProgetti.setOrderByType(searchContainerElenco.getOrderByType()); navigaProgetti.setStart(searchContainerElenco.getStart()); navigaProgetti.setDelta(delta); List<Progetto> elencoProgetti4Pag = progettoFacade.findElencoProgetti(navigaProgetti); // int size = elencoProgetti.size(); /* searchContainerElenco.setTotal(size); int fromIndex = searchContainerElenco.getStart(); int toIndex = (((searchContainerElenco.getStart() + delta) > size)?size:(searchContainerElenco.getStart() + delta)) - 1; System.out.println( fromIndex ); System.out.println( toIndex ); List<Progetto> elencoProgetti4Pag = new ArrayList<Progetto>(); for( Progetto tmp : elencoProgetti.subList(fromIndex, toIndex) ){ if( tmp.getAnagraficaCup().getFkDcupDcupIdMaster() != null ){ tmp.getAnagraficaCup().setAnagraficaCup( progettoFacade.findAnagraficaCupById( tmp.getAnagraficaCup().getFkDcupDcupIdMaster() ) ); } elencoProgetti4Pag.add(tmp); } */ searchContainerElenco.setResults(elencoProgetti4Pag); model.addAttribute("pagDettaglioProgetto", paginaDettaglioProgetto); // FINE LISTA PROGETTI // // MASCHERA RICERCA PROGETTI // initInModelMascheraRicerca(model, navigaProgetti); model.addAttribute("navigaProgetti", navigaProgetti); // FINE RICERCA PROGETTI // // RIEPILOGO // // DATI TOTALI NavigaAggregata navigaAggregata = new NavigaAggregata(); String idNatura = (aggregataFacade.findNaturaByCod(codiNaturaOpenCUP) == null) ? "0" : aggregataFacade.findNaturaByCod(codiNaturaOpenCUP).getId().toString(); navigaAggregata.setIdNatura(idNatura); List<AggregataDTO> listaAggregataDTO = aggregataFacade.findAggregataByNatura(navigaAggregata); NavigaProgetti navigaProgettitot = new NavigaProgetti(); navigaProgettitot.setIdNatura(idNatura); Double impoCostoProgetti = 0.0; Double impoImportoFinanziato = 0.0; long sizetot = 0; // progettoFacade.sizeElencoProgetti( navigaProgettitot ).getSize(); for (AggregataDTO aggregataDTO : listaAggregataDTO) { impoCostoProgetti = impoCostoProgetti + aggregataDTO.getImpoCostoProgetti(); impoImportoFinanziato = impoImportoFinanziato + aggregataDTO.getImpoImportoFinanziato(); sizetot = sizetot + aggregataDTO.getNumeProgetti(); } model.addAttribute("volumeDeiProgetti", sizetot); model.addAttribute("costoDeiProgetti", impoCostoProgetti); model.addAttribute("importoFinanziamenti", impoImportoFinanziato); // if( size > (delta*2)){ // navigaAggregata = new NavigaAggregata(); // navigaAggregata.setIdNatura(idNatura); // navigaAggregata.importa( navigaProgetti ); // //Gestione ANNI // if( navigaProgetti.getIdAnnoDecisiones() != null && // navigaProgetti.getIdAnnoDecisiones().size() > 0){ // if( navigaProgetti.getIdAnnoDecisiones().contains("-1") ){ // List<String> idAnnoAggregatos = new ArrayList<String>(); // idAnnoAggregatos.add("0"); // navigaAggregata.setIdAnnoAggregatos( idAnnoAggregatos ); // }else{ // List<String> idAnnoAggregatos = new ArrayList<String>(); // for( String tmp : navigaProgetti.getIdAnnoDecisiones() ){ // // idAnnoAggregatos.add((aggregataFacade.findAnniDecisione(Integer.valueOf(tmp))).getAnnoAggregato().getId().toString()); // } // navigaAggregata.setIdAnnoAggregatos( idAnnoAggregatos ); // } // } // //FINE Gestione ANNI // // listaAggregataDTO = aggregataFacade.findAggregataByNatura(navigaAggregata); // // Double impoCostoProgettiProg = 0.0; // Double impoImportoFinanziatoProg = 0.0; // // for(AggregataDTO aggregataDTO : listaAggregataDTO){ // impoCostoProgettiProg = impoCostoProgettiProg + aggregataDTO.getImpoCostoProgetti(); // impoImportoFinanziatoProg = impoImportoFinanziatoProg + // aggregataDTO.getImpoImportoFinanziato(); // } // model.addAttribute("costoDeiProgettiProg", impoCostoProgettiProg); // model.addAttribute("importoFinanziamentiProg", impoImportoFinanziatoProg); // }else{ TotaliDTO totali = progettoFacade.sommaImpElencoProgetti(navigaProgetti); model.addAttribute("costoDeiProgettiProg", totali.getImpoCostoProgetto()); model.addAttribute("importoFinanziamentiProg", totali.getImpoImportoFinanziato()); model.addAttribute("volumeDeiProgettiProg", totali.getContaProgetti().intValue()); // } searchContainerElenco.setTotal(totali.getContaProgetti().intValue()); model.addAttribute("searchContainerElenco", searchContainerElenco); /* System.out.println("STEP 4"); Double impoCostoProgettiProg = 0.0; Double impoImportoFinanziatoProg = 0.0; for( Progetto p : elencoProgetti ){ impoCostoProgettiProg = impoCostoProgettiProg + p.getImpoCostoProgetto(); impoImportoFinanziatoProg = impoImportoFinanziatoProg + p.getImpoImportoFinanziato(); } model.addAttribute("volumeDeiProgettiProg", size); model.addAttribute("costoDeiProgettiProg", impoCostoProgettiProg); model.addAttribute("importoFinanziamentiProg", impoImportoFinanziatoProg); */ // FINE RIEPILOGO // model.addAttribute("valoreRicercaValido", "SI"); return "elenco-progetti-view"; }