|
|
|
@ -6,11 +6,10 @@
|
|
|
|
|
package it.mwg.sismica.bo.util; |
|
|
|
|
|
|
|
|
|
import it.tref.liferay.portos.bo.model.Avviso; |
|
|
|
|
import it.tref.liferay.portos.bo.model.Collaudo; |
|
|
|
|
import it.tref.liferay.portos.bo.model.ControlloPratica; |
|
|
|
|
import it.tref.liferay.portos.bo.model.DettPratica; |
|
|
|
|
import it.tref.liferay.portos.bo.model.FineLavori; |
|
|
|
|
import it.tref.liferay.portos.bo.model.IntPratica; |
|
|
|
|
import it.tref.liferay.portos.bo.model.impl.AvvisoImpl; |
|
|
|
|
import it.tref.liferay.portos.bo.service.AvvisoLocalServiceUtil; |
|
|
|
|
import it.tref.liferay.portos.bo.service.ConfigurazioneLocalServiceUtil; |
|
|
|
|
import it.tref.liferay.portos.bo.service.ControlloPraticaLocalServiceUtil; |
|
|
|
@ -19,21 +18,23 @@ import it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil;
|
|
|
|
|
import it.tref.liferay.portos.bo.service.TerritorioLocalServiceUtil; |
|
|
|
|
import it.tref.liferay.portos.bo.shared.util.ConfigurazioneConstants; |
|
|
|
|
import it.tref.liferay.portos.bo.shared.util.StatoPraticaConstants; |
|
|
|
|
import it.tref.liferay.portos.bo.shared.util.TipoIntegrazioneUtil; |
|
|
|
|
import it.tref.liferay.portos.bo.util.AvvisoUtil; |
|
|
|
|
import it.tref.liferay.portos.bo.util.Constants; |
|
|
|
|
import it.tref.liferay.portos.bo.util.WorkflowConstants; |
|
|
|
|
|
|
|
|
|
import java.io.Serializable; |
|
|
|
|
import java.text.ParseException; |
|
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.Calendar; |
|
|
|
|
import java.util.Collection; |
|
|
|
|
import java.util.Date; |
|
|
|
|
import java.util.HashMap; |
|
|
|
|
import java.util.LinkedHashMap; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Map; |
|
|
|
|
import java.util.Map.Entry; |
|
|
|
|
import java.util.TreeMap; |
|
|
|
|
|
|
|
|
|
import com.liferay.portal.kernel.dao.orm.QueryUtil; |
|
|
|
|
import com.liferay.portal.kernel.exception.PortalException; |
|
|
|
@ -45,8 +46,8 @@ import com.liferay.portal.kernel.repository.model.FileEntry;
|
|
|
|
|
import com.liferay.portal.kernel.util.GetterUtil; |
|
|
|
|
import com.liferay.portal.kernel.util.LocaleUtil; |
|
|
|
|
import com.liferay.portal.kernel.util.OrderByComparatorFactoryUtil; |
|
|
|
|
import com.liferay.portal.kernel.util.StringPool; |
|
|
|
|
import com.liferay.portal.kernel.util.Validator; |
|
|
|
|
import com.liferay.portal.kernel.workflow.WorkflowConstants; |
|
|
|
|
import com.liferay.portal.kernel.workflow.WorkflowException; |
|
|
|
|
import com.liferay.portal.kernel.workflow.WorkflowHandlerRegistryUtil; |
|
|
|
|
import com.liferay.portal.kernel.workflow.WorkflowInstance; |
|
|
|
@ -56,10 +57,17 @@ import com.liferay.portal.kernel.workflow.WorkflowTaskManagerUtil;
|
|
|
|
|
import com.liferay.portal.model.User; |
|
|
|
|
import com.liferay.portal.service.ServiceContext; |
|
|
|
|
import com.liferay.portal.service.UserLocalServiceUtil; |
|
|
|
|
import com.liferay.portal.workflow.kaleo.model.KaleoInstance; |
|
|
|
|
import com.liferay.portal.workflow.kaleo.model.KaleoInstanceToken; |
|
|
|
|
import com.liferay.portal.workflow.kaleo.model.KaleoTaskAssignmentInstance; |
|
|
|
|
import com.liferay.portal.workflow.kaleo.model.KaleoTaskInstanceToken; |
|
|
|
|
import com.liferay.portal.workflow.kaleo.service.KaleoInstanceLocalServiceUtil; |
|
|
|
|
import com.liferay.portal.workflow.kaleo.service.KaleoInstanceTokenLocalService; |
|
|
|
|
import com.liferay.portal.workflow.kaleo.service.KaleoInstanceTokenLocalServiceUtil; |
|
|
|
|
import com.liferay.portal.workflow.kaleo.service.KaleoTaskAssignmentInstanceLocalServiceUtil; |
|
|
|
|
import com.liferay.portal.workflow.kaleo.service.KaleoTaskInstanceTokenLocalServiceUtil; |
|
|
|
|
import com.liferay.portal.workflow.kaleo.service.persistence.KaleoInstanceTokenUtil; |
|
|
|
|
import com.liferay.portlet.documentlibrary.model.DLFileEntry; |
|
|
|
|
import com.liferay.portlet.documentlibrary.service.DLAppLocalServiceUtil; |
|
|
|
|
import com.liferay.portlet.documentlibrary.service.DLAppServiceUtil; |
|
|
|
|
import com.liferay.portlet.documentlibrary.service.DLFileEntryLocalServiceUtil; |
|
|
|
|
|
|
|
|
@ -841,106 +849,270 @@ public class SismicaUtil {
|
|
|
|
|
return esito; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static List<String> inviaComunicazione(long companyId) throws SystemException, PortalException { |
|
|
|
|
public static List<String> resetFirme(long companyId, String numeroProgetto) throws SystemException, |
|
|
|
|
PortalException { |
|
|
|
|
List<String> esito = new ArrayList<>(); |
|
|
|
|
if (Validator.isNull(numeroProgetto)) { |
|
|
|
|
esito.addAll(firmeBloccate(companyId)); |
|
|
|
|
} else { |
|
|
|
|
IntPratica pratica = IntPraticaLocalServiceUtil.findByNumeroProgetto(numeroProgetto); |
|
|
|
|
ControlloPratica controllo = getLastControlloPratica(pratica.getIntPraticaId()); |
|
|
|
|
KaleoInstanceToken instanceToken = findInstanceToken(controllo.getControlloPraticaId()); |
|
|
|
|
if (Validator.isNotNull(instanceToken)) { |
|
|
|
|
esito.add("Trovato KaleoInstanceToken " + instanceToken.getKaleoInstanceTokenId() |
|
|
|
|
+ ", currentKaleoNodeName = \"" + instanceToken.getCurrentKaleoNodeName() + "\""); |
|
|
|
|
if (instanceToken.getCurrentKaleoNodeName().equalsIgnoreCase("signal_ff")) { |
|
|
|
|
List<KaleoTaskInstanceToken> taskInstanceTokens = findTaskInstanceTokens(instanceToken |
|
|
|
|
.getKaleoInstanceTokenId()); |
|
|
|
|
esito.add("Trovati " + taskInstanceTokens.size() + " KaleoTaskInstanceToken"); |
|
|
|
|
List<KaleoTaskAssignmentInstance> taskAssignmentInstances = findTaskAssignmentInstances(instanceToken |
|
|
|
|
.getKaleoInstanceId()); |
|
|
|
|
esito.add("Trovati " + taskAssignmentInstances.size() + " KaleoTaskAssignmentInstance"); |
|
|
|
|
|
|
|
|
|
KaleoTaskInstanceToken taskInstanceToken = taskInstanceTokens.get(taskInstanceTokens |
|
|
|
|
.size() - 1); |
|
|
|
|
KaleoTaskAssignmentInstance taskAssignmentInstance = taskAssignmentInstances |
|
|
|
|
.get(taskAssignmentInstances.size() - 1); |
|
|
|
|
|
|
|
|
|
esito.add("Cancello KaleoTaskInstanceToken " |
|
|
|
|
+ taskInstanceToken.getKaleoTaskInstanceTokenId()); |
|
|
|
|
KaleoTaskInstanceTokenLocalServiceUtil.deleteKaleoTaskInstanceToken(taskInstanceToken); |
|
|
|
|
esito.add("Cancello KaleoTaskAssignmentInstance " |
|
|
|
|
+ taskAssignmentInstance.getKaleoTaskAssignmentInstanceId()); |
|
|
|
|
KaleoTaskAssignmentInstanceLocalServiceUtil |
|
|
|
|
.deleteKaleoTaskAssignmentInstance(taskAssignmentInstance); |
|
|
|
|
|
|
|
|
|
taskInstanceToken = taskInstanceTokens.get(taskInstanceTokens.size() - 2); |
|
|
|
|
esito.add("Aggiorno KaleoTaskInstanceToken " |
|
|
|
|
+ taskInstanceToken.getKaleoTaskInstanceTokenId()); |
|
|
|
|
taskInstanceToken.setCompleted(false); |
|
|
|
|
taskInstanceToken.setCompletionUserId(0); |
|
|
|
|
taskInstanceToken.setCompletionDate(null); |
|
|
|
|
KaleoTaskInstanceTokenLocalServiceUtil.updateKaleoTaskInstanceToken(taskInstanceToken); |
|
|
|
|
|
|
|
|
|
esito.add("Aggiorno KaleoInstanceToken " + instanceToken.getKaleoInstanceTokenId()); |
|
|
|
|
instanceToken.setCurrentKaleoNodeId(21639); |
|
|
|
|
instanceToken.setCurrentKaleoNodeName("Esito"); |
|
|
|
|
KaleoInstanceTokenLocalServiceUtil.updateKaleoInstanceToken(instanceToken); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return esito; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static List<String> firmeBloccate(long companyId) throws SystemException, PortalException { |
|
|
|
|
List<String> esito = new ArrayList<>(); |
|
|
|
|
int start = 0; |
|
|
|
|
int totali = 0; |
|
|
|
|
List<KaleoInstanceToken> instanceTokens = null; |
|
|
|
|
do { |
|
|
|
|
instanceTokens = KaleoInstanceTokenLocalServiceUtil.getKaleoInstanceTokens(start, start + SLICE); |
|
|
|
|
for (KaleoInstanceToken instanceToken : instanceTokens) { |
|
|
|
|
if (!instanceToken.getCompleted() |
|
|
|
|
&& instanceToken.getCurrentKaleoNodeName().equalsIgnoreCase( |
|
|
|
|
WorkflowConstants.WORKFLOW_SIGNAL_INVIO)) { |
|
|
|
|
if (ControlloPratica.class.getName().equals(instanceToken.getClassName())) { |
|
|
|
|
ControlloPratica controllo = ControlloPraticaLocalServiceUtil |
|
|
|
|
.getControlloPratica(instanceToken.getClassPK()); |
|
|
|
|
boolean firmaInviata = false; |
|
|
|
|
for (Avviso avviso : AvvisoLocalServiceUtil.findByIntPratica( |
|
|
|
|
controllo.getIntPraticaId(), QueryUtil.ALL_POS, QueryUtil.ALL_POS, null)) { |
|
|
|
|
if (avviso.getInviato().equalsIgnoreCase(AvvisoUtil.DOCUMENTO_NON_INVIATO) |
|
|
|
|
&& avviso.getTipoAvviso().equalsIgnoreCase(AvvisoUtil.TIPO_AVVISO_FIRMA) |
|
|
|
|
&& !avviso.getRifiutato()) { |
|
|
|
|
firmaInviata = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
IntPratica pratica = IntPraticaLocalServiceUtil.getIntPratica(controllo |
|
|
|
|
.getIntPraticaId()); |
|
|
|
|
if (!firmaInviata) { |
|
|
|
|
esito.add(" fermo " + pratica.getNumeroProgetto() + " (" |
|
|
|
|
+ pratica.getIntPraticaId() + ")"); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
esito.add("Classe non gestita " + instanceToken.getClassName() + ", id " |
|
|
|
|
+ instanceToken.getKaleoInstanceTokenId()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
start += SLICE; |
|
|
|
|
if (instanceTokens.size() > 0) { |
|
|
|
|
totali += instanceTokens.size(); |
|
|
|
|
} |
|
|
|
|
} while (instanceTokens.size() > 0); |
|
|
|
|
esito.add("Esaminati " + totali + " KaleoInstanceToken"); |
|
|
|
|
return esito; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
long templateId = ConfigurazioneLocalServiceUtil.findByC_ChiaveLong(companyId, AvvisoUtil |
|
|
|
|
.getAllTipoDocumentoFileTemplateProps().get("DPVNS")); |
|
|
|
|
FileEntry fileEntry = DLAppLocalServiceUtil.getFileEntry(templateId); |
|
|
|
|
String templateTitle = fileEntry.getTitle(); |
|
|
|
|
private static KaleoInstanceToken findInstanceToken(long controlloPraticaId) throws SystemException { |
|
|
|
|
for (KaleoInstanceToken instanceToken : KaleoInstanceTokenLocalServiceUtil.getKaleoInstanceTokens( |
|
|
|
|
QueryUtil.ALL_POS, QueryUtil.ALL_POS)) { |
|
|
|
|
if ((instanceToken.getClassPK() == controlloPraticaId) |
|
|
|
|
&& instanceToken.getClassName().equals(ControlloPratica.class.getName())) { |
|
|
|
|
return instanceToken; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static List<KaleoTaskInstanceToken> findTaskInstanceTokens(long instanceTokenId) |
|
|
|
|
throws SystemException { |
|
|
|
|
Map<Long, KaleoTaskInstanceToken> sorted = new TreeMap<>(); |
|
|
|
|
for (KaleoTaskInstanceToken taskInstanceToken : KaleoTaskInstanceTokenLocalServiceUtil |
|
|
|
|
.getKaleoTaskInstanceTokens(QueryUtil.ALL_POS, QueryUtil.ALL_POS)) { |
|
|
|
|
if (taskInstanceToken.getKaleoInstanceTokenId() == instanceTokenId) { |
|
|
|
|
sorted.put(taskInstanceToken.getKaleoTaskInstanceTokenId(), taskInstanceToken); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return new ArrayList<>(sorted.values()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static List<KaleoTaskAssignmentInstance> findTaskAssignmentInstances(long instanceId) |
|
|
|
|
throws SystemException { |
|
|
|
|
Map<Long, KaleoTaskAssignmentInstance> sorted = new TreeMap<>(); |
|
|
|
|
for (KaleoTaskAssignmentInstance taskAssignmentInstance : KaleoTaskAssignmentInstanceLocalServiceUtil |
|
|
|
|
.getKaleoTaskAssignmentInstances(QueryUtil.ALL_POS, QueryUtil.ALL_POS)) { |
|
|
|
|
if (taskAssignmentInstance.getKaleoInstanceId() == instanceId) { |
|
|
|
|
sorted.put(taskAssignmentInstance.getKaleoTaskAssignmentInstanceId(), taskAssignmentInstance); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return new ArrayList<>(sorted.values()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static List<String> generaDocumenti(long companyId) throws SystemException, PortalException { |
|
|
|
|
List<String> esito = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
long templateConforme = ConfigurazioneLocalServiceUtil.findByC_ChiaveLong(companyId, AvvisoUtil |
|
|
|
|
.getAllTipoDocumentoFileTemplateProps().get(StatoPraticaConstants.CONFORME)); |
|
|
|
|
long templateVidimata = ConfigurazioneLocalServiceUtil.findByC_ChiaveLong(companyId, AvvisoUtil |
|
|
|
|
.getAllTipoDocumentoFileTemplateProps().get(StatoPraticaConstants.VIDIMATA)); |
|
|
|
|
|
|
|
|
|
int inizio = 0; |
|
|
|
|
int totali = 0; |
|
|
|
|
int conformita = 0; |
|
|
|
|
int vidimazioni = 0; |
|
|
|
|
List<IntPratica> pratiche = null; |
|
|
|
|
do { |
|
|
|
|
pratiche = IntPraticaLocalServiceUtil.getIntPraticas(inizio, inizio + SLICE); |
|
|
|
|
for (IntPratica pratica : pratiche) { |
|
|
|
|
if (!pratica.getStatoPratica().equalsIgnoreCase(StatoPraticaConstants.SOTTOPOSTA_A_PARERE)) { |
|
|
|
|
List<Avviso> avvisi = AvvisoLocalServiceUtil.findByIntPratica_Inviato( |
|
|
|
|
pratica.getIntPraticaId(), AvvisoUtil.DOCUMENTO_INVIATO, QueryUtil.ALL_POS, |
|
|
|
|
QueryUtil.ALL_POS, |
|
|
|
|
OrderByComparatorFactoryUtil.create("portos_bo_avviso", "createDate", false)); |
|
|
|
|
List<Avviso> varianti = new ArrayList<>(); |
|
|
|
|
int inviate = 0; |
|
|
|
|
boolean autorizzata = false; |
|
|
|
|
boolean annullata = false; |
|
|
|
|
boolean conforme = false; |
|
|
|
|
boolean collaudo = false; |
|
|
|
|
boolean fineLavori = false; |
|
|
|
|
boolean primoAvviso = true; |
|
|
|
|
boolean ultimo = false; |
|
|
|
|
for (Avviso avviso : avvisi) { |
|
|
|
|
if (!avviso.getAnnullato()) { |
|
|
|
|
if (avviso.getTipoDocumento().equalsIgnoreCase(StatoPraticaConstants.VIDIMATA) |
|
|
|
|
&& avviso.getClassName().equals(DettPratica.class.getName())) { |
|
|
|
|
DettPratica dettPratica = DettPraticaLocalServiceUtil.getDettPratica(avviso |
|
|
|
|
.getClassPk()); |
|
|
|
|
if (dettPratica.getTipoIntegrazione().equals(TipoIntegrazioneUtil.VARIANTE) |
|
|
|
|
&& !dettPratica.getVarianteSostanziale()) { |
|
|
|
|
String title = DLAppLocalServiceUtil.getFileEntry( |
|
|
|
|
avviso.getFileEntryIdTemplate()).getTitle(); |
|
|
|
|
if (primoAvviso && !title.equals(templateTitle)) { |
|
|
|
|
ultimo = true; |
|
|
|
|
} |
|
|
|
|
if (!autorizzata && !conforme) { |
|
|
|
|
if (!title.equals(templateTitle)) { |
|
|
|
|
varianti.add(avviso); |
|
|
|
|
} else { |
|
|
|
|
inviate++; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} else if (avviso.getTipoDocumento().equalsIgnoreCase( |
|
|
|
|
StatoPraticaConstants.ANNULLA_ISTANZA)) { |
|
|
|
|
annullata = true; |
|
|
|
|
} else if (avviso.getTipoDocumento().equalsIgnoreCase( |
|
|
|
|
StatoPraticaConstants.CONFORME)) { |
|
|
|
|
conforme = true; |
|
|
|
|
} else if (avviso.getTipoDocumento().equalsIgnoreCase( |
|
|
|
|
StatoPraticaConstants.AUTORIZZATA)) { |
|
|
|
|
autorizzata = true; |
|
|
|
|
} else if (avviso.getClassName().equals(Collaudo.class.getName())) { |
|
|
|
|
collaudo = true; |
|
|
|
|
} else if (avviso.getClassName().equals(FineLavori.class.getName())) { |
|
|
|
|
fineLavori = true; |
|
|
|
|
List<String> avvisi = getTipologieDocumentiAvvisi(pratica.getIntPraticaId()); |
|
|
|
|
DettPratica dettPratica = DettPraticaLocalServiceUtil.getLastCompletedByIntPratica(pratica |
|
|
|
|
.getIntPraticaId()); |
|
|
|
|
ControlloPratica controllo = getLastControlloPratica(pratica.getIntPraticaId()); |
|
|
|
|
|
|
|
|
|
switch (pratica.getStatoPratica()) { |
|
|
|
|
case StringPool.BLANK: |
|
|
|
|
case StatoPraticaConstants.ANNULLATA: |
|
|
|
|
break; |
|
|
|
|
case StatoPraticaConstants.AUTORIZZATA: |
|
|
|
|
break; |
|
|
|
|
case StatoPraticaConstants.CONFORME: |
|
|
|
|
if (Validator.isNotNull(dettPratica) && Validator.isNotNull(controllo)) { |
|
|
|
|
switch (avvisi.size()) { |
|
|
|
|
case 0: |
|
|
|
|
_log.info("Pratica " + pratica.getNumeroProgetto() + ", invio vidimazione"); |
|
|
|
|
inviaVidimazione(dettPratica, controllo, templateVidimata); |
|
|
|
|
vidimazioni++; |
|
|
|
|
// Fall through
|
|
|
|
|
case 1: |
|
|
|
|
if (!avvisi.contains(StatoPraticaConstants.CONFORME)) { |
|
|
|
|
_log.info("Pratica " + pratica.getNumeroProgetto() + ", invio conformità"); |
|
|
|
|
inviaConformita(dettPratica, controllo, templateConforme); |
|
|
|
|
conformita++; |
|
|
|
|
} else { |
|
|
|
|
_log.info("Pratica " + pratica.getNumeroProgetto() |
|
|
|
|
+ " contiene già la conformità"); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
primoAvviso = false; |
|
|
|
|
} |
|
|
|
|
if (((varianti.size() > 0) && (varianti.size() != inviate) && !annullata && !collaudo |
|
|
|
|
&& !fineLavori && (pratica.getTipoPratica().equalsIgnoreCase( |
|
|
|
|
Constants.TIPO_PRATICA_DEPOSITO) || autorizzata)) |
|
|
|
|
|| (ultimo && pratica.getStatoPratica().equalsIgnoreCase( |
|
|
|
|
StatoPraticaConstants.AUTORIZZATA))) { |
|
|
|
|
String tipoPratica = LanguageUtil.get(LocaleUtil.ITALIAN, |
|
|
|
|
"tipo-pratica-" + pratica.getTipoPratica()); |
|
|
|
|
List<ControlloPratica> controlli = ControlloPraticaLocalServiceUtil |
|
|
|
|
.findByIntPratica(pratica.getIntPraticaId()); |
|
|
|
|
if (controlli.size() > 0) { |
|
|
|
|
esito.add("Pratica " + tipoPratica + " " + pratica.getNumeroProgetto() + " (" |
|
|
|
|
+ pratica.getIntPraticaId() + ") invio vidimazione per " |
|
|
|
|
+ varianti.size() + " varianti non sostanziali, già inviate " + inviate); |
|
|
|
|
for (Avviso avviso : varianti) { |
|
|
|
|
DettPratica dettPratica = DettPraticaLocalServiceUtil.getDettPratica(avviso |
|
|
|
|
.getClassPk()); |
|
|
|
|
|
|
|
|
|
ServiceContext serviceContext = new ServiceContext(); |
|
|
|
|
serviceContext.setCompanyId(companyId); |
|
|
|
|
serviceContext.setScopeGroupId(dettPratica.getGroupId()); |
|
|
|
|
serviceContext.setUserId(dettPratica.getUserId()); |
|
|
|
|
|
|
|
|
|
AvvisoLocalServiceUtil.addAvviso(pratica.getIntPraticaId(), |
|
|
|
|
"Attestazione di deposito variante", new Date(), |
|
|
|
|
AvvisoUtil.TIPO_AVVISO_DIRETTO, StatoPraticaConstants.VIDIMATA, |
|
|
|
|
templateId, avviso.getClassPk(), avviso.getClassName(), controlli |
|
|
|
|
.get(controlli.size() - 1).getControlloPraticaId(), |
|
|
|
|
serviceContext); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case StatoPraticaConstants.INTEGRAZIONE: |
|
|
|
|
break; |
|
|
|
|
case StatoPraticaConstants.NON_AUTORIZZATA: |
|
|
|
|
break; |
|
|
|
|
case StatoPraticaConstants.NON_CONFORME: |
|
|
|
|
break; |
|
|
|
|
case StatoPraticaConstants.SOTTOPOSTA_A_PARERE: |
|
|
|
|
break; |
|
|
|
|
case StatoPraticaConstants.VIDIMATA: |
|
|
|
|
if (avvisi.size() == 0) { |
|
|
|
|
_log.info("Pratica " + pratica.getNumeroProgetto() + ", invio Vidimazione"); |
|
|
|
|
inviaVidimazione(dettPratica, controllo, templateVidimata); |
|
|
|
|
vidimazioni++; |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
_log.info("Sconosciuto '" + pratica.getStatoPratica() + "'"); |
|
|
|
|
return esito; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
inizio += SLICE; |
|
|
|
|
if (pratiche.size() > 0) { |
|
|
|
|
totali += pratiche.size(); |
|
|
|
|
_log.info(totali + " pratiche"); |
|
|
|
|
} |
|
|
|
|
} while (pratiche.size() > 0); |
|
|
|
|
esito.add("Analizzate " + totali + " pratiche"); |
|
|
|
|
if (vidimazioni > 0) { |
|
|
|
|
esito.add("Inviate " + vidimazioni + " vidimazioni"); |
|
|
|
|
} |
|
|
|
|
if (conformita > 0) { |
|
|
|
|
esito.add("Inviate " + conformita + " conformità"); |
|
|
|
|
} |
|
|
|
|
return esito; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static List<String> getTipologieDocumentiAvvisi(long intPraticaId) throws SystemException { |
|
|
|
|
List<String> result = new ArrayList<>(); |
|
|
|
|
List<Avviso> avvisi = AvvisoLocalServiceUtil.findByIntPratica(intPraticaId, QueryUtil.ALL_POS, |
|
|
|
|
QueryUtil.ALL_POS, null); |
|
|
|
|
for (Avviso avviso : avvisi) { |
|
|
|
|
result.add(avviso.getTipoDocumento()); |
|
|
|
|
} |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static void inviaConformita(DettPratica dettPratica, ControlloPratica controllo, long template) |
|
|
|
|
throws PortalException, SystemException { |
|
|
|
|
ServiceContext serviceContext = getServiceContext(dettPratica); |
|
|
|
|
AvvisoLocalServiceUtil.addAvviso(dettPratica.getIntPraticaId(), "Avviso di Conformità", new Date(), |
|
|
|
|
AvvisoUtil.TIPO_AVVISO_DIRETTO, StatoPraticaConstants.CONFORME, template, |
|
|
|
|
dettPratica.getDettPraticaId(), DettPratica.class.getName(), |
|
|
|
|
controllo.getControlloPraticaId(), serviceContext); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static void inviaVidimazione(DettPratica dettPratica, ControlloPratica controllo, long template) |
|
|
|
|
throws PortalException, SystemException { |
|
|
|
|
ServiceContext serviceContext = getServiceContext(dettPratica); |
|
|
|
|
AvvisoLocalServiceUtil.addAvviso(dettPratica.getIntPraticaId(), "Avviso di Vidimazione", new Date(), |
|
|
|
|
AvvisoUtil.TIPO_AVVISO_DIRETTO, StatoPraticaConstants.VIDIMATA, template, |
|
|
|
|
dettPratica.getDettPraticaId(), DettPratica.class.getName(), |
|
|
|
|
controllo.getControlloPraticaId(), serviceContext); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static ControlloPratica getLastControlloPratica(long intPraticaId) { |
|
|
|
|
ControlloPratica result = null; |
|
|
|
|
try { |
|
|
|
|
List<ControlloPratica> controlli = ControlloPraticaLocalServiceUtil |
|
|
|
|
.findByIntPratica(intPraticaId); |
|
|
|
|
long id = 0; |
|
|
|
|
for (ControlloPratica controllo : controlli) { |
|
|
|
|
if (controllo.getControlloPraticaId() > id) { |
|
|
|
|
id = controllo.getControlloPraticaId(); |
|
|
|
|
result = controllo; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} catch (SystemException e) { |
|
|
|
|
} |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static ServiceContext getServiceContext(DettPratica dettPratica) { |
|
|
|
|
ServiceContext serviceContext = new ServiceContext(); |
|
|
|
|
serviceContext.setCompanyId(dettPratica.getCompanyId()); |
|
|
|
|
serviceContext.setScopeGroupId(dettPratica.getGroupId()); |
|
|
|
|
serviceContext.setUserId(dettPratica.getUserId()); |
|
|
|
|
return serviceContext; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|