|
|
@ -5,15 +5,20 @@ |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
package it.mwg.sismica.bo.util; |
|
|
|
package it.mwg.sismica.bo.util; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import it.tref.liferay.portos.bo.model.Asseverazione; |
|
|
|
import it.tref.liferay.portos.bo.model.Avviso; |
|
|
|
import it.tref.liferay.portos.bo.model.Avviso; |
|
|
|
import it.tref.liferay.portos.bo.model.ControlloPratica; |
|
|
|
import it.tref.liferay.portos.bo.model.ControlloPratica; |
|
|
|
import it.tref.liferay.portos.bo.model.DettPratica; |
|
|
|
import it.tref.liferay.portos.bo.model.DettPratica; |
|
|
|
|
|
|
|
import it.tref.liferay.portos.bo.model.DocPratica; |
|
|
|
import it.tref.liferay.portos.bo.model.IntPratica; |
|
|
|
import it.tref.liferay.portos.bo.model.IntPratica; |
|
|
|
|
|
|
|
import it.tref.liferay.portos.bo.model.Territorio; |
|
|
|
import it.tref.liferay.portos.bo.model.impl.AvvisoImpl; |
|
|
|
import it.tref.liferay.portos.bo.model.impl.AvvisoImpl; |
|
|
|
|
|
|
|
import it.tref.liferay.portos.bo.service.AsseverazioneLocalServiceUtil; |
|
|
|
import it.tref.liferay.portos.bo.service.AvvisoLocalServiceUtil; |
|
|
|
import it.tref.liferay.portos.bo.service.AvvisoLocalServiceUtil; |
|
|
|
import it.tref.liferay.portos.bo.service.ConfigurazioneLocalServiceUtil; |
|
|
|
import it.tref.liferay.portos.bo.service.ConfigurazioneLocalServiceUtil; |
|
|
|
import it.tref.liferay.portos.bo.service.ControlloPraticaLocalServiceUtil; |
|
|
|
import it.tref.liferay.portos.bo.service.ControlloPraticaLocalServiceUtil; |
|
|
|
import it.tref.liferay.portos.bo.service.DettPraticaLocalServiceUtil; |
|
|
|
import it.tref.liferay.portos.bo.service.DettPraticaLocalServiceUtil; |
|
|
|
|
|
|
|
import it.tref.liferay.portos.bo.service.DocPraticaLocalServiceUtil; |
|
|
|
import it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil; |
|
|
|
import it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil; |
|
|
|
import it.tref.liferay.portos.bo.service.TerritorioLocalServiceUtil; |
|
|
|
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.ConfigurazioneConstants; |
|
|
@ -22,7 +27,11 @@ import it.tref.liferay.portos.bo.util.AvvisoUtil; |
|
|
|
import it.tref.liferay.portos.bo.util.Constants; |
|
|
|
import it.tref.liferay.portos.bo.util.Constants; |
|
|
|
import it.tref.liferay.portos.bo.util.WorkflowConstants; |
|
|
|
import it.tref.liferay.portos.bo.util.WorkflowConstants; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
|
import java.io.Serializable; |
|
|
|
import java.io.Serializable; |
|
|
|
|
|
|
|
import java.sql.Connection; |
|
|
|
|
|
|
|
import java.sql.SQLException; |
|
|
|
|
|
|
|
import java.sql.Statement; |
|
|
|
import java.text.ParseException; |
|
|
|
import java.text.ParseException; |
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.ArrayList; |
|
|
@ -36,6 +45,11 @@ import java.util.Map; |
|
|
|
import java.util.Map.Entry; |
|
|
|
import java.util.Map.Entry; |
|
|
|
import java.util.TreeMap; |
|
|
|
import java.util.TreeMap; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import org.apache.commons.io.IOUtils; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.itextpdf.text.pdf.codec.Base64.InputStream; |
|
|
|
|
|
|
|
import com.liferay.portal.NoSuchRepositoryEntryException; |
|
|
|
|
|
|
|
import com.liferay.portal.kernel.dao.jdbc.DataAccess; |
|
|
|
import com.liferay.portal.kernel.dao.orm.QueryUtil; |
|
|
|
import com.liferay.portal.kernel.dao.orm.QueryUtil; |
|
|
|
import com.liferay.portal.kernel.exception.PortalException; |
|
|
|
import com.liferay.portal.kernel.exception.PortalException; |
|
|
|
import com.liferay.portal.kernel.exception.SystemException; |
|
|
|
import com.liferay.portal.kernel.exception.SystemException; |
|
|
@ -43,6 +57,7 @@ import com.liferay.portal.kernel.language.LanguageUtil; |
|
|
|
import com.liferay.portal.kernel.log.Log; |
|
|
|
import com.liferay.portal.kernel.log.Log; |
|
|
|
import com.liferay.portal.kernel.log.LogFactoryUtil; |
|
|
|
import com.liferay.portal.kernel.log.LogFactoryUtil; |
|
|
|
import com.liferay.portal.kernel.repository.model.FileEntry; |
|
|
|
import com.liferay.portal.kernel.repository.model.FileEntry; |
|
|
|
|
|
|
|
import com.liferay.portal.kernel.repository.model.Folder; |
|
|
|
import com.liferay.portal.kernel.util.GetterUtil; |
|
|
|
import com.liferay.portal.kernel.util.GetterUtil; |
|
|
|
import com.liferay.portal.kernel.util.LocaleUtil; |
|
|
|
import com.liferay.portal.kernel.util.LocaleUtil; |
|
|
|
import com.liferay.portal.kernel.util.OrderByComparatorFactoryUtil; |
|
|
|
import com.liferay.portal.kernel.util.OrderByComparatorFactoryUtil; |
|
|
@ -54,7 +69,25 @@ import com.liferay.portal.kernel.workflow.WorkflowInstance; |
|
|
|
import com.liferay.portal.kernel.workflow.WorkflowInstanceManagerUtil; |
|
|
|
import com.liferay.portal.kernel.workflow.WorkflowInstanceManagerUtil; |
|
|
|
import com.liferay.portal.kernel.workflow.WorkflowTask; |
|
|
|
import com.liferay.portal.kernel.workflow.WorkflowTask; |
|
|
|
import com.liferay.portal.kernel.workflow.WorkflowTaskManagerUtil; |
|
|
|
import com.liferay.portal.kernel.workflow.WorkflowTaskManagerUtil; |
|
|
|
|
|
|
|
import com.liferay.portal.model.Group; |
|
|
|
|
|
|
|
import com.liferay.portal.model.Organization; |
|
|
|
|
|
|
|
import com.liferay.portal.model.ResourceAction; |
|
|
|
|
|
|
|
import com.liferay.portal.model.ResourceConstants; |
|
|
|
|
|
|
|
import com.liferay.portal.model.ResourcePermission; |
|
|
|
|
|
|
|
import com.liferay.portal.model.Role; |
|
|
|
|
|
|
|
import com.liferay.portal.model.RoleConstants; |
|
|
|
import com.liferay.portal.model.User; |
|
|
|
import com.liferay.portal.model.User; |
|
|
|
|
|
|
|
import com.liferay.portal.security.auth.PrincipalException; |
|
|
|
|
|
|
|
import com.liferay.portal.security.auth.PrincipalThreadLocal; |
|
|
|
|
|
|
|
import com.liferay.portal.security.permission.ActionKeys; |
|
|
|
|
|
|
|
import com.liferay.portal.security.permission.PermissionChecker; |
|
|
|
|
|
|
|
import com.liferay.portal.security.permission.PermissionCheckerFactoryUtil; |
|
|
|
|
|
|
|
import com.liferay.portal.security.permission.PermissionThreadLocal; |
|
|
|
|
|
|
|
import com.liferay.portal.service.GroupLocalServiceUtil; |
|
|
|
|
|
|
|
import com.liferay.portal.service.OrganizationLocalServiceUtil; |
|
|
|
|
|
|
|
import com.liferay.portal.service.ResourceActionLocalServiceUtil; |
|
|
|
|
|
|
|
import com.liferay.portal.service.ResourcePermissionLocalServiceUtil; |
|
|
|
|
|
|
|
import com.liferay.portal.service.RoleLocalServiceUtil; |
|
|
|
import com.liferay.portal.service.ServiceContext; |
|
|
|
import com.liferay.portal.service.ServiceContext; |
|
|
|
import com.liferay.portal.service.UserLocalServiceUtil; |
|
|
|
import com.liferay.portal.service.UserLocalServiceUtil; |
|
|
|
import com.liferay.portal.workflow.kaleo.model.KaleoInstance; |
|
|
|
import com.liferay.portal.workflow.kaleo.model.KaleoInstance; |
|
|
@ -67,16 +100,20 @@ import com.liferay.portal.workflow.kaleo.service.KaleoInstanceTokenLocalServiceU |
|
|
|
import com.liferay.portal.workflow.kaleo.service.KaleoTaskAssignmentInstanceLocalServiceUtil; |
|
|
|
import com.liferay.portal.workflow.kaleo.service.KaleoTaskAssignmentInstanceLocalServiceUtil; |
|
|
|
import com.liferay.portal.workflow.kaleo.service.KaleoTaskInstanceTokenLocalServiceUtil; |
|
|
|
import com.liferay.portal.workflow.kaleo.service.KaleoTaskInstanceTokenLocalServiceUtil; |
|
|
|
import com.liferay.portal.workflow.kaleo.service.persistence.KaleoInstanceTokenUtil; |
|
|
|
import com.liferay.portal.workflow.kaleo.service.persistence.KaleoInstanceTokenUtil; |
|
|
|
|
|
|
|
import com.liferay.portlet.documentlibrary.NoSuchFileEntryException; |
|
|
|
import com.liferay.portlet.documentlibrary.model.DLFileEntry; |
|
|
|
import com.liferay.portlet.documentlibrary.model.DLFileEntry; |
|
|
|
|
|
|
|
import com.liferay.portlet.documentlibrary.model.DLFolder; |
|
|
|
|
|
|
|
import com.liferay.portlet.documentlibrary.service.DLAppLocalServiceUtil; |
|
|
|
import com.liferay.portlet.documentlibrary.service.DLAppServiceUtil; |
|
|
|
import com.liferay.portlet.documentlibrary.service.DLAppServiceUtil; |
|
|
|
import com.liferay.portlet.documentlibrary.service.DLFileEntryLocalServiceUtil; |
|
|
|
import com.liferay.portlet.documentlibrary.service.DLFileEntryLocalServiceUtil; |
|
|
|
|
|
|
|
import com.liferay.portlet.documentlibrary.service.DLFolderLocalServiceUtil; |
|
|
|
|
|
|
|
|
|
|
|
public class SismicaUtil { |
|
|
|
public class SismicaUtil { |
|
|
|
private final static Log _log = LogFactoryUtil.getLog(SismicaUtil.class); |
|
|
|
private final static Log _log = LogFactoryUtil.getLog(SismicaUtil.class); |
|
|
|
|
|
|
|
|
|
|
|
private static final SimpleDateFormat dfmt = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss"); |
|
|
|
private static final SimpleDateFormat dfmt = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss"); |
|
|
|
private static final SimpleDateFormat sdfGiornoDB = new SimpleDateFormat("yyyy-MM-dd"); |
|
|
|
private static final SimpleDateFormat sdfGiornoDB = new SimpleDateFormat("yyyy-MM-dd"); |
|
|
|
private final static int SLICE = 200; |
|
|
|
private final static int SLICE = 1000; |
|
|
|
|
|
|
|
|
|
|
|
public static Date[] getWeekInterval(int dow) { |
|
|
|
public static Date[] getWeekInterval(int dow) { |
|
|
|
return getWeekInterval(dow, Calendar.getInstance().getTime()); |
|
|
|
return getWeekInterval(dow, Calendar.getInstance().getTime()); |
|
|
@ -980,7 +1017,93 @@ public class SismicaUtil { |
|
|
|
return new ArrayList<>(sorted.values()); |
|
|
|
return new ArrayList<>(sorted.values()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static List<String> generaDocumenti(long companyId) throws SystemException, PortalException { |
|
|
|
public static List<String> generaDocumenti(long companyId) throws PortalException, SystemException { |
|
|
|
|
|
|
|
List<String> esito = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<Long, PermissionChecker> orgPc = new HashMap<>(); |
|
|
|
|
|
|
|
for (Organization org : OrganizationLocalServiceUtil.getOrganizations(QueryUtil.ALL_POS, |
|
|
|
|
|
|
|
QueryUtil.ALL_POS)) { |
|
|
|
|
|
|
|
if (0 == org.getSuborganizationsSize()) { |
|
|
|
|
|
|
|
List<User> users = UserLocalServiceUtil.getOrganizationUsers(org.getOrganizationId()); |
|
|
|
|
|
|
|
User user = users.get(users.size() * 2 / 3); |
|
|
|
|
|
|
|
PermissionChecker pc = null; |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
pc = PermissionCheckerFactoryUtil.create(user); |
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
|
|
_log.info("PC non funziona: " + e.getMessage()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
orgPc.put(org.getGroupId(), pc); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
long userRoleId = RoleLocalServiceUtil.getRole(companyId, RoleConstants.USER).getRoleId(); |
|
|
|
|
|
|
|
ResourceAction resourceAction = ResourceActionLocalServiceUtil.getResourceAction( |
|
|
|
|
|
|
|
DLFileEntry.class.getName(), ActionKeys.VIEW); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<Long> mancanti = new ArrayList<>(); |
|
|
|
|
|
|
|
int inizio = 0; |
|
|
|
|
|
|
|
int totali = 0; |
|
|
|
|
|
|
|
List<Asseverazione> asseverazioni = null; |
|
|
|
|
|
|
|
do { |
|
|
|
|
|
|
|
asseverazioni = AsseverazioneLocalServiceUtil.getAsseveraziones(inizio, inizio + SLICE); |
|
|
|
|
|
|
|
for (Asseverazione asseverazione : asseverazioni) { |
|
|
|
|
|
|
|
IntPratica pratica = null; |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
pratica = IntPraticaLocalServiceUtil.getIntPratica(asseverazione.getIntPraticaId()); |
|
|
|
|
|
|
|
} catch (PortalException e) { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (Validator.isNotNull(pratica)) { |
|
|
|
|
|
|
|
Territorio territorio = TerritorioLocalServiceUtil.getTerritorio(pratica |
|
|
|
|
|
|
|
.getTerritorioId()); |
|
|
|
|
|
|
|
PermissionChecker pc = orgPc.get(territorio.getGroupId()); |
|
|
|
|
|
|
|
FileEntry fileEntry = null; |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
fileEntry = DLAppServiceUtil.getFileEntry(asseverazione.getFileEntryId()); |
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
|
|
_log.info(e.getClass() + ": " + e.getMessage()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (Validator.isNotNull(fileEntry)) { |
|
|
|
|
|
|
|
if (!fileEntry.containsPermission(pc, ActionKeys.VIEW)) { |
|
|
|
|
|
|
|
_log.info("Pratica " + pratica.getNumeroProgetto() + " (" |
|
|
|
|
|
|
|
+ pratica.getIntPraticaId() + "), asseverazione " |
|
|
|
|
|
|
|
+ asseverazione.getAsseverazioneId() + " non ha i permessi"); |
|
|
|
|
|
|
|
ResourcePermission resourcePermission = null; |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
resourcePermission = ResourcePermissionLocalServiceUtil |
|
|
|
|
|
|
|
.getResourcePermission(companyId, DLFileEntry.class.getName(), |
|
|
|
|
|
|
|
ResourceConstants.SCOPE_INDIVIDUAL, |
|
|
|
|
|
|
|
String.valueOf(fileEntry.getPrimaryKey()), userRoleId); |
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
|
|
_log.info(e.getClass() + ": " + e.getMessage()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
resourcePermission.setActionIds(resourceAction.getBitwiseValue()); |
|
|
|
|
|
|
|
ResourcePermissionLocalServiceUtil.updateResourcePermission(resourcePermission); |
|
|
|
|
|
|
|
Folder folder = fileEntry.getFolder(); |
|
|
|
|
|
|
|
while (Validator.isNotNull(folder)) { |
|
|
|
|
|
|
|
if (!folder.containsPermission(pc, ActionKeys.VIEW)) { |
|
|
|
|
|
|
|
_log.info("folder " + folder.getName() + " non ha i permessi"); |
|
|
|
|
|
|
|
resourcePermission = ResourcePermissionLocalServiceUtil |
|
|
|
|
|
|
|
.getResourcePermission(companyId, DLFolder.class.getName(), |
|
|
|
|
|
|
|
ResourceConstants.SCOPE_INDIVIDUAL, |
|
|
|
|
|
|
|
String.valueOf(folder.getPrimaryKey()), userRoleId); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
folder = folder.getParentFolder(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
inizio += SLICE; |
|
|
|
|
|
|
|
if (asseverazioni.size() > 0) { |
|
|
|
|
|
|
|
totali += asseverazioni.size(); |
|
|
|
|
|
|
|
_log.info(totali + " DocPratica"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} while (asseverazioni.size() > 0); |
|
|
|
|
|
|
|
_log.info("Mancanti " + mancanti.size()); |
|
|
|
|
|
|
|
return esito; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static List<String> generaDocumenti2(long companyId) throws SystemException, PortalException { |
|
|
|
List<String> esito = new ArrayList<>(); |
|
|
|
List<String> esito = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
long templateConforme = ConfigurazioneLocalServiceUtil.findByC_ChiaveLong(companyId, AvvisoUtil |
|
|
|
long templateConforme = ConfigurazioneLocalServiceUtil.findByC_ChiaveLong(companyId, AvvisoUtil |
|
|
|