Salvatore La Manna 4 anni fa
parent
commit
0eec47d4b7
  1. 166
      liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/util/PuliziaDatabase.java
  2. 4
      liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/service.properties

166
liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/util/PuliziaDatabase.java

@ -5,9 +5,24 @@
*/
package it.mwg.sismica.bo.util;
import it.tref.liferay.portos.bo.model.Collaudo;
import it.tref.liferay.portos.bo.model.ControlloPratica;
import it.tref.liferay.portos.bo.model.Delega;
import it.tref.liferay.portos.bo.model.DettPratica;
import it.tref.liferay.portos.bo.model.DocAggiuntiva;
import it.tref.liferay.portos.bo.model.DocPratica;
import it.tref.liferay.portos.bo.model.FineLavori;
import it.tref.liferay.portos.bo.model.IntPratica;
import it.tref.liferay.portos.bo.model.Soggetto;
import it.tref.liferay.portos.bo.service.CollaudoLocalServiceUtil;
import it.tref.liferay.portos.bo.service.DelegaLocalServiceUtil;
import it.tref.liferay.portos.bo.service.DettPraticaLocalServiceUtil;
import it.tref.liferay.portos.bo.service.DocAggiuntivaLocalServiceUtil;
import it.tref.liferay.portos.bo.service.DocPraticaLocalServiceUtil;
import it.tref.liferay.portos.bo.service.FineLavoriLocalServiceUtil;
import it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil;
import it.tref.liferay.portos.bo.service.SoggettoLocalServiceUtil;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
@ -46,6 +61,8 @@ public class PuliziaDatabase {
public static List<String> pulisci(ServiceContext serviceContext) {
List<String> esito = new ArrayList<>();
esito.addAll(puliziaPreliminare());
esito.addAll(puliziaDocumentLibrary());
esito.addAll(svuotaDatabase(serviceContext));
@ -60,6 +77,137 @@ public class PuliziaDatabase {
return esito;
}
private static List<String> puliziaPreliminare() {
List<String> esito = new ArrayList<>();
try {
Connection connection = DataAccess.getUpgradeOptimizedConnection();
Statement s = connection.createStatement();
int rows = s.executeUpdate("DELETE FROM portos_bo_intpratica WHERE intpraticaid IN ("
+ "SELECT intpraticaid FROM portos_bo_intpratica i "
+ "LEFT JOIN group_ g ON i.groupid=g.groupid WHERE g.groupid IS NULL)");
esitoLog(esito, "Cancellate " + rows + " righe da portos_bo_intpratica");
rows = s.executeUpdate("DELETE FROM portos_bo_dettpratica WHERE dettpraticaid IN ("
+ "SELECT dettpraticaid FROM portos_bo_dettpratica d "
+ "LEFT JOIN portos_bo_intpratica i ON d.intpraticaid=i.intpraticaid "
+ "WHERE i.intpraticaid IS NULL)");
esitoLog(esito, "Cancellate " + rows + " righe da portos_bo_dettpratica");
rows = s.executeUpdate("DELETE FROM portos_bo_controllopratica WHERE controllopraticaid IN ("
+ "SELECT controllopraticaid FROM portos_bo_controllopratica c "
+ "LEFT JOIN portos_bo_intpratica i ON c.intpraticaid=i.intpraticaid "
+ "WHERE i.intpraticaid IS NULL)");
esitoLog(esito, "Cancellate " + rows + " righe da portos_bo_controllopratica");
rows = s.executeUpdate("DELETE FROM portos_bo_collaudo WHERE collaudoid IN ("
+ "SELECT collaudoid FROM portos_bo_collaudo c "
+ "LEFT JOIN portos_bo_intpratica i ON c.intpraticaid=i.intpraticaid "
+ "WHERE i.intpraticaid IS NULL)");
esitoLog(esito, "Cancellate " + rows + " righe da portos_bo_collaudo");
rows = s.executeUpdate("DELETE FROM portos_bo_delega WHERE delegaid IN ("
+ "SELECT delegaid FROM portos_bo_delega d "
+ "LEFT JOIN portos_bo_dettpratica dp ON d.dettpraticaid=dp.dettpraticaid "
+ "WHERE dp.dettpraticaid IS NULL)");
esitoLog(esito, "Cancellate " + rows + " righe da portos_bo_delega");
rows = s.executeUpdate("DELETE FROM portos_bo_finelavori WHERE finelavoriid IN ("
+ "SELECT finelavoriid FROM portos_bo_finelavori f "
+ "LEFT JOIN portos_bo_intpratica i ON f.intpraticaid=i.intpraticaid "
+ "WHERE i.intpraticaid IS NULL)");
esitoLog(esito, "Cancellate " + rows + " righe da portos_bo_finelavori");
rows = s.executeUpdate("DELETE FROM portos_bo_soggetto WHERE soggettoid IN ("
+ "SELECT soggettoid FROM portos_bo_soggetto s "
+ "LEFT JOIN portos_bo_dettpratica d ON s.dettpraticaid=d.dettpraticaid "
+ "WHERE d.dettpraticaid IS NULL)");
esitoLog(esito, "Cancellate " + rows + " righe da portos_bo_soggetto");
int cancellati = 0;
int start = 0;
int totali = 0;
List<DocAggiuntiva> docs = null;
do {
docs = DocAggiuntivaLocalServiceUtil.getDocAggiuntivas(start, start + SLICE);
int rimossi = 0;
for (DocAggiuntiva doc : docs) {
IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(doc.getIntPraticaId());
DettPratica dettPratica = DettPraticaLocalServiceUtil.getDettPratica(doc
.getDettPraticaId());
if (Validator.isNull(intPratica) || Validator.isNull(dettPratica)) {
DocAggiuntivaLocalServiceUtil.deleteDocAggiuntiva(doc);
cancellati++;
rimossi++;
}
}
totali += docs.size();
start += SLICE - rimossi;
} while (docs.size() > 0);
esitoLog(esito, "Analizzati " + totali + " DocAggiuntiva, cancellati " + cancellati);
cancellati = 0;
start = 0;
totali = 0;
List<DocPratica> docs2 = null;
do {
docs2 = DocPraticaLocalServiceUtil.getDocPraticas(start, start + SLICE);
int rimossi = 0;
for (DocPratica doc : docs2) {
boolean rimuovi = false;
if (Collaudo.class.getName().equals(doc.getClassName())) {
Collaudo collaudo = null;
try {
collaudo = CollaudoLocalServiceUtil.getCollaudo(doc.getClassPk());
} catch (PortalException e) {
}
rimuovi = Validator.isNull(collaudo);
} else if (Delega.class.getName().equals(doc.getClassName())) {
Delega delega = null;
try {
delega = DelegaLocalServiceUtil.getDelega(doc.getClassPk());
} catch (PortalException e) {
}
rimuovi = Validator.isNull(delega);
} else if (DettPratica.class.getName().equals(doc.getClassName())) {
DettPratica dettPratica = null;
try {
dettPratica = DettPraticaLocalServiceUtil.getDettPratica(doc.getClassPk());
} catch (PortalException e) {
}
rimuovi = Validator.isNull(dettPratica);
} else if (FineLavori.class.getName().equals(doc.getClassName())) {
FineLavori fineLavori = null;
try {
fineLavori = FineLavoriLocalServiceUtil.getFineLavori(doc.getClassPk());
} catch (PortalException e) {
}
rimuovi = Validator.isNull(fineLavori);
} else if (IntPratica.class.getName().equals(doc.getClassName())) {
IntPratica intPratica = null;
try {
intPratica = IntPraticaLocalServiceUtil.getIntPratica(doc.getClassPk());
} catch (PortalException e) {
}
rimuovi = Validator.isNull(intPratica);
} else if (Soggetto.class.getName().equals(doc.getClassName())) {
Soggetto soggetto = null;
try {
soggetto = SoggettoLocalServiceUtil.getSoggetto(doc.getClassPk());
} catch (PortalException e) {
}
rimuovi = Validator.isNull(soggetto);
}
if (rimuovi) {
DocPraticaLocalServiceUtil.deleteDocPratica(doc);
cancellati++;
rimossi++;
}
}
totali += docs2.size();
start += SLICE - rimossi;
_log.info("Analizzati " + totali + " DocPratica, cancellati " + cancellati);
} while (docs2.size() > 0);
esitoLog(esito, "Analizzati " + totali + " DocPratica, cancellati " + cancellati);
} catch (PortalException | SQLException | SystemException e) {
esitoLog(esito, "Interrotto per errore: " + e.getMessage());
}
return esito;
}
private static List<String> svuotaDatabase(ServiceContext serviceContext) {
List<String> esito = new ArrayList<>();
int rows = 0;
@ -239,6 +387,24 @@ public class PuliziaDatabase {
+ "ON a.classpk=b.fileentryid WHERE a.classnameid=" + dlFileEntryClassNameId
+ " AND b.fileentryid IS NULL)");
esitoLog(esito, "Cancellate " + rows + " righe da socialactivity");
rows = s.executeUpdate("DELETE FROM systemevent WHERE systemeventid IN ("
+ "SELECT systemeventid FROM systemevent a LEFT JOIN dlfileentry b "
+ "ON a.classpk=b.fileentryid WHERE a.classnameid=" + dlFileEntryClassNameId
+ " AND b.fileentryid IS NULL)");
rows += s.executeUpdate("DELETE FROM systemevent WHERE systemeventid IN ("
+ "SELECT systemeventid FROM systemevent a LEFT JOIN dlfolder b "
+ "ON a.classpk=b.folderid WHERE a.classnameid=" + dlFolderClassNameId
+ " AND b.folderid IS NULL)");
rows += s.executeUpdate("DELETE FROM systemevent WHERE systemeventid IN ("
+ "SELECT systemeventid FROM systemevent a LEFT JOIN portos_bo_controllopratica b "
+ "ON a.classpk=b.controllopraticaid WHERE a.classnameid=" + controlloPraticaClassNameId
+ " AND b.controllopraticaid IS NULL)");
rows += s.executeUpdate("DELETE FROM systemevent WHERE systemeventid IN ("
+ "SELECT systemeventid FROM systemevent a LEFT JOIN portos_bo_dettpratica b "
+ "ON a.classpk=b.dettpraticaid WHERE a.classnameid=" + dettPraticaClassNameId
+ " AND b.dettpraticaid IS NULL)");
esitoLog(esito, "Cancellate " + rows + " righe da systemevent");
} catch (SQLException | SystemException e) {
esitoLog(esito, "Interrotto per errore: " + e.getMessage());
}

4
liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/service.properties

@ -13,8 +13,8 @@
##
build.namespace=portos_bo
build.number=2413
build.date=1600421442524
build.number=2414
build.date=1600684750317
build.auto.upgrade=true
##

Caricamento…
Annulla
Salva