Sfoglia il codice sorgente

embellisha and overhaul logic - report dashboard

develop
E-A 2 anni fa
parent
commit
d0b5623811
  1. 57
      liferay-plugins-sdk-6.2/portlets/portos-reportistica-portlet/docroot/WEB-INF/src/content/Language.properties
  2. 57
      liferay-plugins-sdk-6.2/portlets/portos-reportistica-portlet/docroot/WEB-INF/src/reportistica/Reportistica.java
  3. 1
      liferay-plugins-sdk-6.2/portlets/portos-reportistica-portlet/docroot/html/init.jsp
  4. 429
      liferay-plugins-sdk-6.2/portlets/portos-reportistica-portlet/docroot/html/view.jsp

57
liferay-plugins-sdk-6.2/portlets/portos-reportistica-portlet/docroot/WEB-INF/src/content/Language.properties

@ -1,21 +1,36 @@
regione_sicilia_paesaggistica=Portale Paesaggistica
portale_liferay_tooltip=liferay-portal-6.2-ce-ga6-6.2.5
pagina_reportistica=Pagina di reportistica
filtra_pratiche_tooltip=Date per limitare la ricerca
date_picker_inizio=Data iniziale:
date_picker_fine=Data finale:
pulsante_filtra_submit=Applica range
titolo_pagina_reportistica=Dashboard di Reportistica
titolo_campi_filtro=Range date di filtro:
titolo_tabella_risultati_stato=Filtra Pratiche per Stato
titolo_tabella_risultati_integrazioni=Filtra Pratiche per Integrazioni
titolo_tabella_risultati_autorizzazioni=Filtra Pratiche Autorizzate e non Autorizzate
titolo_tabella_risultati_stato=Filtro Pratiche per Stato e Tipo
titolo_tabella_risultati_integrazioni=Filtro Pratiche per Integrazioni
titolo_tabella_risultati_autorizzazioni=Filtro Pratiche Autorizzate e non Autorizzate
titolo_period=nel periodo
titolo_risultati_aggregati_stato=Report Stati
titolo_risultati_aggregati_integrazioni=Report Integrazioni
titolo_risultati_aggregati_autorizzazioni=Report Autorizzazioni
pulsante_scarica_report_1=CSV Stati
pulsante_scarica_report_2=CSV Integraioni
pulsante_scarica_report_3=CSV Autorizzazioni
stringa_csv_vuoto_stato=CSV stati vuoto
stringa_csv_vuoto_integrazioni=CSV integrazioni vuoto
stringa_csv_vuoto_autorizzazioni=CSV autorizzazioni vuoto
titolo_report_aggreg=Aggregazione Reportistica
pulsante_scarica_report_1=Scarica CSV Stati
pulsante_scarica_report_2=Scarica CSV Integrazioni
pulsante_scarica_report_3=Scarica CSV Autorizzazioni
stringa_csv_vuoto_stato=Filtro stati senza risultati
stringa_csv_vuoto_integrazioni=Filtro integrazioni senza risultati
stringa_csv_vuoto_autorizzazioni=Filtro autorizzazioni senza risultati
report_stato_vuoto=Report stati senza risultati
report_integra_vuoto=Report integrazioni senza risultati
report_autor_vuoto=Report autorizzazioni senza risultati
tipo_procedura=Tipo procedura
traduzione_tipo_procedura=Traduzione Tipo procedura
stato_pratica=Stato pratica
traduzione_stato_pratica=Traduzione Stato pratica
numero_pratiche=Numero pratiche
label_procedura_P0 = 1
tipo_procedura_P0 = Autorizzazione per interventi su Beni Culturali (D.Lgs. 42/2004 art. 21, 31, 48, 49, 50)
@ -24,19 +39,19 @@ tipo_procedura_P1 = Interventi su Beni Culturali mobili
label_procedura_P2 = 1.2
tipo_procedura_P2 = Interventi su Beni Culturali immobili
label_procedura_P3 = 2
tipo_procedura_P3 = Verifica preventiva dell’interesse archeologico (D.Lgs. 25/2016, art. 25)
tipo_procedura_P3 = Verifica preventiva dell'interesse archeologico (D.Lgs. 25/2016, art. 25)
label_procedura_P4 = 3
tipo_procedura_P4 = Autorizzazione per interventi di edilizia su Beni Culturali (D.Lgs. 42/2004 artt. 21, 22)
label_procedura_P5 = 4
tipo_procedura_P5 = Autorizzazione paesaggistica per interventi e/o opere di grande impegno territoriale (D.Lgs. 42/2004 art. 146)
label_procedura_P6 = 5
tipo_procedura_P6 = Autorizzazione paesaggistica per opere il cui impatto è valutato mediante documentazione semplificata (D.Lgs. 42/2004 art. 146)
tipo_procedura_P6 = Autorizzazione paesaggistica per opere il cui impatto è valutato mediante documentazione semplificata (D.Lgs. 42/2004 art. 146)
label_procedura_P7 = 6
tipo_procedura_P7 = Autorizzazione paesaggistica per interventi di lieve entità (L.R. 5/2019 artt. 3, 5)
tipo_procedura_P7 = Autorizzazione paesaggistica per interventi di lieve entità (L.R. 5/2019 artt. 3, 5)
label_procedura_P8 = 7
tipo_procedura_P8 = Accertamento di compatibilità paesaggistica (D.Lgs. 42/2004 art. 146, 167)
tipo_procedura_P8 = Accertamento di compatibilità paesaggistica (D.Lgs. 42/2004 art. 146, 167)
label_procedura_P9 = 8
tipo_procedura_P9 = Accertamento di compatibilità paesaggistica per Sanatorie Edilizie (L. 47/1985 e L.R. 37/1985 – L. 724/1994 – L. 326/2003 e L.R. 15/2004)
tipo_procedura_P9 = Accertamento di compatibilità paesaggistica per Sanatorie Edilizie (L. 47/1985 e L.R. 37/1985 - L. 724/1994 - L. 326/2003 e L.R. 15/2004)
label_procedura_P10 = 9
tipo_procedura_P10 = Certificazione di sussistenza vincoli
@ -45,7 +60,7 @@ tipo_procedura_Q1 = Autorizzazione per interventi su Beni Culturali mobili, appa
label_procedura_Q2 = 2
tipo_procedura_Q2 = Autorizzazione per interventi su Beni Culturali immobili
label_procedura_Q3 = 3
tipo_procedura_Q3 = Verifica preventiva dell’interesse archeologico
tipo_procedura_Q3 = Verifica preventiva dell'interesse archeologico
label_procedura_Q4 = 4
tipo_procedura_Q4 = Autorizzazione prevista dagli strumenti urbanistici per interventi in aree e immobili non assoggettati a tutela ai sensi del D.Lgs. 42/2004
label_procedura_Q5 = 5
@ -53,11 +68,11 @@ tipo_procedura_Q5 = Autorizzazione per "Settori Speciali"
label_procedura_Q6 = 6
tipo_procedura_Q6 = Autorizzazione paesaggistica
label_procedura_Q7 = 7
tipo_procedura_Q7 = Autorizzazione paesaggistica per interventi di lieve entità
tipo_procedura_Q7 = Autorizzazione paesaggistica per interventi di lieve entità
label_procedura_Q8 = 8
tipo_procedura_Q8 = Accertamento di compatibilità paesaggistica
tipo_procedura_Q8 = Accertamento di compatibilità paesaggistica
label_procedura_Q9 = 9
tipo_procedura_Q9 = Accertamento di compatibilità paesaggistica per istanze di Condono Edilizio
tipo_procedura_Q9 = Accertamento di compatibilità paesaggistica per istanze di Condono Edilizio
label_procedura_Q10 = 10
tipo_procedura_Q10 = Certificazione di sussistenza vincoli

57
liferay-plugins-sdk-6.2/portlets/portos-reportistica-portlet/docroot/WEB-INF/src/reportistica/Reportistica.java

@ -2,8 +2,6 @@ package reportistica;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.language.LanguageUtil;
import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;
import com.liferay.portal.kernel.portlet.PortletResponseUtil;
import com.liferay.portal.kernel.util.ContentTypes;
import com.liferay.portal.kernel.util.DateFormatFactoryUtil;
@ -15,8 +13,11 @@ import it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil;
import java.io.IOException;
import java.io.StringWriter;
import java.math.BigInteger;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import javax.portlet.PortletException;
import javax.portlet.ResourceRequest;
@ -26,24 +27,29 @@ import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
public class Reportistica extends MVCPortlet {
private Log _log = LogFactoryUtil.getLog(Reportistica.class);
@Override
public void serveResource(ResourceRequest req, ResourceResponse rep) throws IOException,
PortletException {
public void serveResource(ResourceRequest req, ResourceResponse rep) throws IOException, PortletException {
String idAzione = req.getResourceID();
Date dataInizioLavori = ParamUtil.getDate(req, "dataInizioInput", DateFormatFactoryUtil.getSimpleDateFormat("yyyy-MM-dd"));
Date dataFineLavori = ParamUtil.getDate(req, "dataFineInput", DateFormatFactoryUtil.getSimpleDateFormat("yyyy-MM-dd"));
String contentType = ContentTypes.APPLICATION_TEXT;
Locale loc = req.getLocale();
String tipo_procedura = LanguageUtil.get(loc, "tipo_procedura");
String stato_pratica = LanguageUtil.get(loc, "stato_pratica");
String numero_pratiche = LanguageUtil.get(loc, "numero_pratiche");
DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
String nel_periodo =formatter.format(dataInizioLavori) +"-"+formatter.format(dataFineLavori);
if ("azioneScarica1".equals(idAzione)) {
String fileName = "report-stati1.csv";
String fileName = "report_stati"+nel_periodo+".csv";
try(
StringWriter sw = new StringWriter();
CSVPrinter csvPrinter = new CSVPrinter(sw, CSVFormat.DEFAULT.
withHeader("TipoProcedura", "StatoPratica", "QuantePratiche")
withHeader(
tipo_procedura,
stato_pratica,
numero_pratiche)
);
){
List<Object[]> i = IntPraticaLocalServiceUtil.filtraPraticheStato(dataInizioLavori, dataFineLavori);
@ -51,9 +57,9 @@ public class Reportistica extends MVCPortlet {
for(Object[] record : i){
String tipoprocedura = (String)record[0];
tipoprocedura+= ":"+LanguageUtil.get(req.getLocale(), "tipo_procedura_"+tipoprocedura);
tipoprocedura+= ":"+LanguageUtil.get(loc, "tipo_procedura_"+tipoprocedura);
String statopratica = (String)record[1];
statopratica+= ":"+LanguageUtil.get(req.getLocale(), "stato-pratica-"+statopratica);
statopratica+= ":"+LanguageUtil.get(loc, "stato-pratica-"+statopratica);
BigInteger countStati = (BigInteger)record[2];
csvPrinter.printRecord(tipoprocedura, statopratica, countStati);
}
@ -61,19 +67,21 @@ public class Reportistica extends MVCPortlet {
PortletResponseUtil.sendFile(req, rep,
fileName, sw.toString().getBytes(), contentType);
return;
} catch (SystemException e) {
} catch (SystemException | IOException e) {
e.printStackTrace();
return;
}
}
if ("azioneScarica2".equals(idAzione)) {
String fileName = "report-integra2.csv";
String fileName = "report_integ"+nel_periodo+".csv";
try(
StringWriter sw = new StringWriter();
CSVPrinter csvPrinter = new CSVPrinter(sw, CSVFormat.DEFAULT.
withHeader("TipoProcedura", "QuantePratiche")
withHeader(
tipo_procedura,
numero_pratiche)
);
){
@ -81,7 +89,7 @@ public class Reportistica extends MVCPortlet {
for(Object[] record : j){
String tipoprocedura = (String)record[0];
tipoprocedura+= ":"+LanguageUtil.get(req.getLocale(), "tipo_procedura_"+tipoprocedura);
tipoprocedura+= ":"+LanguageUtil.get(loc, "tipo_procedura_"+tipoprocedura);
BigInteger countIntegrazioni = (BigInteger)record[1];
csvPrinter.printRecord(tipoprocedura, countIntegrazioni);
}
@ -89,29 +97,32 @@ public class Reportistica extends MVCPortlet {
PortletResponseUtil.sendFile(req, rep,
fileName, sw.toString().getBytes(), contentType);
return;
} catch (SystemException e) {
} catch (SystemException | IOException e) {
e.printStackTrace();
return;
}
}
if ("azioneScarica3".equals(idAzione)) {
String fileName = "report-autori3.csv";
String fileName = "report_autor"+nel_periodo+".csv";
try(
StringWriter sw = new StringWriter();
CSVPrinter csvPrinter = new CSVPrinter(sw, CSVFormat.DEFAULT.
withHeader("TipoProcedura", "StatoPratica", "QuantePratiche")
withHeader(
tipo_procedura,
stato_pratica,
numero_pratiche)
);
){
List<Object[]> i = IntPraticaLocalServiceUtil.filtraPraticheStato(dataInizioLavori, dataFineLavori);
List<Object[]> k = IntPraticaLocalServiceUtil.filtraPraticheAutorizzate(dataInizioLavori, dataFineLavori);
for(Object[] record : i){
for(Object[] record : k){
String tipoprocedura = (String)record[0];
tipoprocedura+= ":"+LanguageUtil.get(req.getLocale(), "tipo_procedura_"+tipoprocedura);
tipoprocedura+= ":"+LanguageUtil.get(loc, "tipo_procedura_"+tipoprocedura);
String statopratica = (String)record[1];
statopratica+= ":"+LanguageUtil.get(req.getLocale(), "stato-pratica-"+statopratica);
statopratica+= ":"+LanguageUtil.get(loc, "stato-pratica-"+statopratica);
BigInteger countStati = (BigInteger)record[2];
csvPrinter.printRecord(tipoprocedura, statopratica, countStati);
}
@ -119,7 +130,7 @@ public class Reportistica extends MVCPortlet {
PortletResponseUtil.sendFile(req, rep,
fileName, sw.toString().getBytes(), contentType);
return;
} catch (SystemException e) {
} catch (SystemException | IOException e) {
e.printStackTrace();
return;
}

1
liferay-plugins-sdk-6.2/portlets/portos-reportistica-portlet/docroot/html/init.jsp

@ -14,6 +14,7 @@
<%@taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>
<%@taglib uri="http://liferay.com/tld/util" prefix="liferay-util" %>
<liferay-theme:defineObjects />
<portlet:defineObjects />

429
liferay-plugins-sdk-6.2/portlets/portos-reportistica-portlet/docroot/html/view.jsp

@ -1,3 +1,5 @@
<%@page import="java.util.Map.Entry"%>
<%@page import="java.text.DateFormat"%>
<%@page import="reportistica.Reportistica"%>
<%@page import="com.liferay.portal.kernel.language.LanguageUtil"%>
<%@page import="java.util.TreeMap"%>
@ -20,214 +22,285 @@
<%@page import="com.liferay.portal.kernel.util.ParamUtil"%>
<%@page import="com.liferay.portal.kernel.util.DateFormatFactoryUtil"%>
<%@page import="com.liferay.portlet.PortletURLFactoryUtil"%>
<%@page import="com.liferay.portal.kernel.util.ListUtil"%>
<%@ include file="/html/init.jsp"%>
<%
Date dataInizioLavori = ParamUtil.getDate(request, "dataInizioInput", DateFormatFactoryUtil.getSimpleDateFormat("yyyy-MM-dd"));
Date dataFineLavori = ParamUtil.getDate(request, "dataFineInput", DateFormatFactoryUtil.getSimpleDateFormat("yyyy-MM-dd"));
%>
<aui:row>
<h1>
<%= LanguageUtil.get(pageContext, "titolo_pagina_reportistica") %>
</h1>
</aui:row>
<div style="padding-bottom: 10px; padding-top: 15px;">
<aui:field-wrapper label="regione_sicilia_paesaggistica" helpMessage="portale_liferay_tooltip"> <aui:fieldset label="pagina_reportistica" helpMessage="filtra_pratiche_tooltip" column="true">
<aui:row>
<h1><%= LanguageUtil.get(pageContext, "titolo_pagina_reportistica") %></h1>
</aui:row>
<aui:row style="padding-bottom: 10px; padding-top: 15px;">
<h4>
<%= LanguageUtil.get(pageContext, "titolo_campi_filtro") %>
</h4>
</aui:row>
</div>
<aui:row>
<liferay-portlet:renderURL var="filtraPerRangeDataURL" >
<liferay-portlet:param name="mvcPath" value="/html/view.jsp"/>
</liferay-portlet:renderURL>
<aui:form action="<%= filtraPerRangeDataURL %>" method="post">
<div style="display:flex;">
<aui:row>
<aui:column>
<aui:input
name="dataInizioInput"
inlineLabel="left"
label="date_picker_inizio"
type="date"
value='<%= DateFormatFactoryUtil.getSimpleDateFormat("yyyy-MM-dd").format(dataInizioLavori) %>'>
</aui:input>
</aui:column>
<aui:column>
<aui:input
name="dataFineInput"
inlineLabel="left"
label="date_picker_fine"
type="date"
value='<%= DateFormatFactoryUtil.getSimpleDateFormat("yyyy-MM-dd").format(dataFineLavori) %>'>
</aui:input>
</aui:column>
<aui:column>
<aui:button
value="pulsante_filtra_submit"
cssClass="btn-primary"
type="submit"
/>
</aui:column>
</aui:row>
</div>
</aui:form>
</aui:row>
<aui:row>
<liferay-portlet:renderURL var="filtraPerRangeDataURL" >
<liferay-portlet:param name="mvcPath" value="/html/view.jsp"/>
</liferay-portlet:renderURL>
<aui:form action="<%= filtraPerRangeDataURL %>" method="post">
<div style="display:flex;">
<aui:row>
<aui:column>
<aui:input
name="dataInizioInput"
inlineLabel="left"
label="date_picker_inizio"
type="date"
value='<%= DateFormatFactoryUtil.getSimpleDateFormat("yyyy-MM-dd").format(dataInizioLavori) %>'>
</aui:input>
</aui:column>
<aui:column>
<aui:input
name="dataFineInput"
inlineLabel="left"
label="date_picker_fine"
type="date"
value='<%= DateFormatFactoryUtil.getSimpleDateFormat("yyyy-MM-dd").format(dataFineLavori) %>'>
</aui:input>
</aui:column>
<aui:column>
<aui:button style="margin-top: 25px;"
value="pulsante_filtra_submit"
cssClass="btn-primary"
type="submit"
/>
</aui:column>
</aui:row>
</div>
</aui:form>
</aui:row>
</aui:fieldset></aui:field-wrapper>
<hr>
<%
Map<String, BigInteger> stati = new TreeMap<String, BigInteger>();
Map<String, BigInteger> integrazioni = new TreeMap<String, BigInteger>();
Map<String, BigInteger> autorizzazioni = new TreeMap<String, BigInteger>();
for(int p=1;p<=10;p++){
stati.put("P"+p, BigInteger.valueOf(0));
stati.put("Q"+p, BigInteger.valueOf(0));
integrazioni.put("P"+p, BigInteger.valueOf(0));
integrazioni.put("Q"+p, BigInteger.valueOf(0));
autorizzazioni.put("P"+p, BigInteger.valueOf(0));
autorizzazioni.put("Q"+p, BigInteger.valueOf(0));
}
List<Object[]> i = IntPraticaLocalServiceUtil.filtraPraticheStato(dataInizioLavori, dataFineLavori);
List<Object[]> j = IntPraticaLocalServiceUtil.filtraPraticheIntegrazioni(dataInizioLavori, dataFineLavori);
List<Object[]> k = IntPraticaLocalServiceUtil.filtraPraticheAutorizzate(dataInizioLavori, dataFineLavori);
DateFormat formatter = DateFormat.getDateInstance(DateFormat.SHORT);
String nel_periodo = LanguageUtil.get(pageContext, "titolo_period") +
" " +
formatter.format(dataInizioLavori) +
"-" +
formatter.format(dataFineLavori);
%>
<div>
<aui:row>
<h2><%= LanguageUtil.get(pageContext, "titolo_tabella_risultati_stato") %> <%= LanguageUtil.get(pageContext, "titolo_period") %>
</h2>
<% if(Validator.isNotNull(i)&&!i.isEmpty()){
for(Object[] record : i){
String tipoprocedura = (String)record[0];
String statopratica = (String)record[1];
BigInteger countStati = (BigInteger)record[2];
BigInteger rigaCountMappa = stati.get(tipoprocedura);
if(Validator.isNotNull(countStati)&&Validator.isNotNull(rigaCountMappa))
stati.put(tipoprocedura, countStati.add(rigaCountMappa));
%>
<aui:row>
<% if(null!=record){%>
<aui:column><%=tipoprocedura %></aui:column>
<aui:column><%=statopratica %></aui:column>
<aui:column><%=countStati %></aui:column>
<%}%>
</aui:row>
<%}%>
<aui:row>
<aui:col span="3">
<portlet:resourceURL var="azioneScarica1URL" id="azioneScarica1">
</portlet:resourceURL>
<aui:button
cssClass="btn-primary"
value="pulsante_scarica_report_1"
href="<%= azioneScarica1URL %>"
>
</aui:button>
</aui:col>
</aui:row>
<%}else{
%><p style="color: #007bff;"><%=LanguageUtil.get(pageContext, "stringa_csv_vuoto_stato") %></p>
<%} %>
<aui:row>
<h3><%= LanguageUtil.get(pageContext, "titolo_risultati_aggregati_stato") %>
</h3>
<p><%=stati.toString()%></p>
</aui:row>
</aui:row>
<aui:field-wrapper>
<aui:fieldset label="titolo_tabella_risultati_stato">
<aui:row>
<aui:col width="80">
<liferay-ui:search-container total="<%=i.size()%>" var="searchContainer" emptyResultsMessage="stringa_csv_vuoto_stato" >
<aui:row>
<h2><%= LanguageUtil.get(pageContext, "titolo_tabella_risultati_integrazioni") %> <%= LanguageUtil.get(pageContext, "titolo_period") %>
</h2>
<% if(Validator.isNotNull(j)&&!j.isEmpty()){
for(Object[] record : j){
String tipoprocedura = (String)record[0];
BigInteger countIntegrazioni = (BigInteger)record[1];
BigInteger rigaCountMappa = integrazioni.get(tipoprocedura);
if(Validator.isNotNull(countIntegrazioni)&&Validator.isNotNull(rigaCountMappa))
integrazioni.put(tipoprocedura, countIntegrazioni.add(rigaCountMappa));
%>
<aui:row>
<% if(null!=record){%>
<aui:column><%=tipoprocedura %></aui:column>
<aui:column><%=countIntegrazioni %></aui:column>
<%}%>
</aui:row>
<%}%>
<liferay-ui:search-container-results results="<%=i %>" />
<liferay-ui:search-container-row modelVar="o" className="java.lang.Object" >
<aui:row>
<aui:col span="3">
<portlet:resourceURL var="azioneScarica2URL" id="azioneScarica2">
<liferay-ui:search-container-column-text name="tipo_procedura" value="${o[0]}"/>
<liferay-ui:search-container-column-text name="traduzione_tipo_procedura" translate="true" value="tipo_procedura_${o[0]}"/>
</portlet:resourceURL>
<aui:button
cssClass="btn-primary"
value="pulsante_scarica_report_2"
href="<%= azioneScarica2URL %>"
>
</aui:button>
</aui:col>
</aui:row>
<%}else{
%><p style="color: #007bff;"><%=LanguageUtil.get(pageContext, "stringa_csv_vuoto_integrazioni") %></p><%}%>
<liferay-ui:search-container-column-text name="stato_pratica" value="${o[1]}"/>
<liferay-ui:search-container-column-text name="traduzione_stato_pratica" translate="true" value="stato-pratica-${o[1]}"/>
<liferay-ui:search-container-column-text name="numero_pratiche" value="${o[2]}"/>
</liferay-ui:search-container-row>
<liferay-ui:search-iterator paginate="false"/>
</liferay-ui:search-container>
</aui:col>
<aui:col width="20" style="margin-top: 25px;">
<portlet:resourceURL var="azioneScarica1URL" id="azioneScarica1">
</portlet:resourceURL>
<c:if test="<%= null!=i&&!i.isEmpty()%>">
<aui:button
cssClass="btn-primary"
value="pulsante_scarica_report_1"
href="<%= azioneScarica1URL %>"
>
</aui:button>
</c:if>
</aui:col>
</aui:row>
<h3><%= LanguageUtil.get(pageContext, "titolo_tabella_risultati_stato") %> | <%= LanguageUtil.get(pageContext, "titolo_report_aggreg") %> </h3>
<aui:row>
<h3>
<%= LanguageUtil.get(pageContext, "titolo_risultati_aggregati_integrazioni") %>
</h3>
<p>
<%= integrazioni.toString() %>
</p>
<%for(Object[] record : i)
{String tipoprocedura = (String)record[0];
BigInteger countStati = (BigInteger)record[2];
BigInteger rigaCountMappa = stati.get(tipoprocedura);
if(null!=countStati&null!=tipoprocedura)
{if(null!=rigaCountMappa)
{stati.put(tipoprocedura, countStati.add(rigaCountMappa));
}
else
{stati.put(tipoprocedura,countStati);
}
}
}
List<Entry<String, BigInteger>> statiEntryList=new ArrayList<Entry<String, BigInteger>>(stati.entrySet());
%>
<aui:col width="30">
<liferay-ui:search-container total="<%=statiEntryList.size()%>" var="searchContainer" emptyResultsMessage="report_stato_vuoto" >
<liferay-ui:search-container-results results="<%=statiEntryList %>" />
<liferay-ui:search-container-row modelVar="e" className="java.util.Map.Entry" >
<liferay-ui:search-container-column-text name="tipo_procedura" value="${e.getKey()}"/>
<liferay-ui:search-container-column-text name="numero_pratiche" value="${e.getValue()}"/>
</liferay-ui:search-container-row>
<liferay-ui:search-iterator paginate="false"/>
</liferay-ui:search-container>
</aui:col>
</aui:row>
</aui:row>
</aui:fieldset>
</aui:field-wrapper>
<aui:field-wrapper>
<aui:fieldset label="titolo_tabella_risultati_integrazioni">
<aui:row>
<aui:col width="80">
<liferay-ui:search-container total="<%=j.size()%>" var="searchContainer" emptyResultsMessage="stringa_csv_vuoto_integrazioni" >
<liferay-ui:search-container-results results="<%=j %>" />
<liferay-ui:search-container-row modelVar="o" className="java.lang.Object" >
<liferay-ui:search-container-column-text name="tipo_procedura" value="${o[0]}"/>
<liferay-ui:search-container-column-text name="traduzione_tipo_procedura" translate="true" value="tipo_procedura_${o[0]}"/>
<liferay-ui:search-container-column-text name="numero_pratiche" value="${o[1]}"/>
</liferay-ui:search-container-row>
<liferay-ui:search-iterator paginate="false"/>
</liferay-ui:search-container>
</aui:col>
<aui:col width="20" style="margin-top: 25px;">
<portlet:resourceURL var="azioneScarica2URL" id="azioneScarica2">
</portlet:resourceURL>
<c:if test="<%= null!=j&&!j.isEmpty()%>">
<aui:button
cssClass="btn-primary"
value="pulsante_scarica_report_2"
href="<%= azioneScarica2URL %>"
>
</aui:button>
</c:if>
</aui:col>
</aui:row>
<h3><%= LanguageUtil.get(pageContext, "titolo_tabella_risultati_integrazioni") %> | <%= LanguageUtil.get(pageContext, "titolo_report_aggreg") %></h3>
<aui:row>
<h2><%= LanguageUtil.get(pageContext, "titolo_tabella_risultati_autorizzazioni") %> <%= LanguageUtil.get(pageContext, "titolo_period") %>
</h2>
<% if(Validator.isNotNull(k)&&!k.isEmpty()){
for(Object[] record : k){
String tipoprocedura = (String)record[0];
String statopratica = (String)record[1];
BigInteger countAutori = (BigInteger)record[2];
BigInteger rigaCountMappa = autorizzazioni.get(tipoprocedura);
if(Validator.isNotNull(countAutori)&&Validator.isNotNull(rigaCountMappa))
autorizzazioni.put(tipoprocedura, countAutori.add(rigaCountMappa));
%>
<aui:row>
<% if(null!=record){%>
<aui:column><%=tipoprocedura %></aui:column>
<aui:column><%=statopratica %></aui:column>
<aui:column><%=countAutori %></aui:column>
<%}%>
</aui:row>
<%}%>
<aui:row>
<aui:col span="3">
<portlet:resourceURL var="azioneScarica3URL" id="azioneScarica3">
<%for(Object[] record : j)
{String tipoprocedura = (String)record[0];
BigInteger countInt = (BigInteger)record[1];
BigInteger rigaCountMappa = integrazioni.get(tipoprocedura);
if(null!=countInt&null!=tipoprocedura)
{if(null!=rigaCountMappa)
{integrazioni.put(tipoprocedura, countInt.add(rigaCountMappa));
}
else
{integrazioni.put(tipoprocedura,countInt);
}
}
}
List<Entry<String, BigInteger>> intEntryList=new ArrayList<Entry<String, BigInteger>>(integrazioni.entrySet());
%>
<aui:col width="30">
<liferay-ui:search-container total="<%=intEntryList.size()%>" var="searchContainer" emptyResultsMessage="report_integra_vuoto" >
</portlet:resourceURL>
<aui:button
cssClass="btn-primary"
value="pulsante_scarica_report_3"
href="<%= azioneScarica3URL %>"
>
</aui:button>
</aui:col>
</aui:row>
<%}else{
%><p style="color: #007bff;"><%=LanguageUtil.get(pageContext, "stringa_csv_vuoto_autorizzazioni") %></p><%}%>
<aui:row>
<h3><%= LanguageUtil.get(pageContext, "titolo_risultati_aggregati_autorizzazioni") %>
</h3>
<p><%=autorizzazioni.toString()%></p>
<liferay-ui:search-container-results results="<%=intEntryList %>" />
<liferay-ui:search-container-row modelVar="e" className="java.util.Map.Entry" >
<liferay-ui:search-container-column-text name="tipo_procedura" value="${e.getKey()}"/>
<liferay-ui:search-container-column-text name="numero_pratiche" value="${e.getValue()}"/>
</liferay-ui:search-container-row>
<liferay-ui:search-iterator paginate="false"/>
</liferay-ui:search-container>
</aui:col>
</aui:row>
</aui:fieldset>
</aui:field-wrapper>
<aui:field-wrapper>
<aui:fieldset label="titolo_tabella_risultati_autorizzazioni">
<aui:row>
<aui:col width="80">
<liferay-ui:search-container total="<%=k.size()%>" var="searchContainer" emptyResultsMessage="stringa_csv_vuoto_autorizzazioni" >
<liferay-ui:search-container-results results="<%=k %>" />
<liferay-ui:search-container-row modelVar="o" className="java.lang.Object" >
<liferay-ui:search-container-column-text name="tipo_procedura" value="${o[0]}"/>
<liferay-ui:search-container-column-text name="traduzione_tipo_procedura" translate="true" value="tipo_procedura_${o[0]}"/>
<liferay-ui:search-container-column-text name="stato_pratica" value="${o[1]}"/>
<liferay-ui:search-container-column-text name="traduzione_stato_pratica" translate="true" value="stato-pratica-${o[1]}"/>
<liferay-ui:search-container-column-text name="numero_pratiche" value="${o[2]}"/>
</liferay-ui:search-container-row>
<liferay-ui:search-iterator paginate="false"/>
</liferay-ui:search-container>
</aui:col>
<aui:col width="20" style="margin-top: 25px;">
<portlet:resourceURL var="azioneScarica3URL" id="azioneScarica3">
</portlet:resourceURL>
<c:if test="<%= null!=k&&!k.isEmpty()%>">
<aui:button
cssClass="btn-primary"
value="pulsante_scarica_report_3"
href="<%= azioneScarica3URL %>"
>
</aui:button>
</c:if>
</aui:col>
</aui:row>
</aui:row>
</div>
<h3><%= LanguageUtil.get(pageContext, "titolo_tabella_risultati_autorizzazioni") %> | <%= LanguageUtil.get(pageContext, "titolo_report_aggreg") %> </h3>
<aui:row>
<%for(Object[] record : k)
{String tipoprocedura = (String)record[0];
BigInteger countAuto = (BigInteger)record[2];
BigInteger rigaCountMappa = autorizzazioni.get(tipoprocedura);
if(null!=countAuto&null!=tipoprocedura)
{if(null!=rigaCountMappa)
{autorizzazioni.put(tipoprocedura, countAuto.add(rigaCountMappa));
}
else
{autorizzazioni.put(tipoprocedura,countAuto);
}
}
}
List<Entry<String, BigInteger>> autoEntryList=new ArrayList<Entry<String, BigInteger>>(autorizzazioni.entrySet());
%>
<aui:col width="30">
<liferay-ui:search-container total="<%=autoEntryList.size()%>" var="searchContainer" emptyResultsMessage="report_autor_vuoto" >
<liferay-ui:search-container-results results="<%=autoEntryList %>" />
<liferay-ui:search-container-row modelVar="e" className="java.util.Map.Entry" >
<liferay-ui:search-container-column-text name="tipo_procedura" value="${e.getKey()}"/>
<liferay-ui:search-container-column-text name="numero_pratiche" value="${e.getValue()}"/>
</liferay-ui:search-container-row>
<liferay-ui:search-iterator paginate="false"/>
</liferay-ui:search-container>
</aui:col>
</aui:row>
</aui:fieldset>
</aui:field-wrapper>

Caricamento…
Annulla
Salva