Sfoglia il codice sorgente

aggiunta funzionalità per fix user ID su AOP

feature/fix_soggetti
marcoalderighi 2 anni fa
parent
commit
3e2c74784b
  1. 20
      liferay-plugins-sdk-6.2/portlets/portos-advanced-operation-portlet/docroot/WEB-INF/src/it/nextmind/liferay/portos/advanced/operation/portlet/AdvancedOperationPortlet.java
  2. 210
      liferay-plugins-sdk-6.2/portlets/portos-advanced-operation-portlet/docroot/WEB-INF/src/it/nextmind/liferay/portos/advanced/operation/util/AdvancedOperationUtil.java
  3. 27
      liferay-plugins-sdk-6.2/portlets/portos-advanced-operation-portlet/docroot/html/view.jsp

20
liferay-plugins-sdk-6.2/portlets/portos-advanced-operation-portlet/docroot/WEB-INF/src/it/nextmind/liferay/portos/advanced/operation/portlet/AdvancedOperationPortlet.java

@ -12,6 +12,7 @@ import com.liferay.portal.kernel.util.Validator;
import com.liferay.portal.kernel.util.WebKeys;
import com.liferay.portal.kernel.workflow.WorkflowConstants;
import com.liferay.portal.kernel.workflow.WorkflowTask;
import com.liferay.portal.service.UserLocalServiceUtil;
import com.liferay.portal.theme.ThemeDisplay;
import com.liferay.portal.util.PortalUtil;
import com.liferay.util.bridges.mvc.MVCPortlet;
@ -192,6 +193,25 @@ public class AdvancedOperationPortlet extends MVCPortlet {
actionResponse.setRenderParameter("intPraticaId", String.valueOf(intPraticaId));
}
public void fixUserID(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception{
_checkIfUserIsCompanyAdmin(actionRequest);
long intPraticaId = ParamUtil.getLong(actionRequest, "intPraticaId", -1L);
IntPratica intPratica = IntPraticaLocalServiceUtil.fetchIntPratica(intPraticaId);
if(!AdvancedOperationUtil.evalInt_Dett_UserID(intPratica)){
DettPratica dettPratica = DettPraticaLocalServiceUtil.getLastEditableByIntPratica(intPratica.getIntPraticaId());
if(Validator.isNotNull(dettPratica)){
long userId = intPratica.getUserId();
dettPratica.setUserId(userId);
dettPratica.setUserName(UserLocalServiceUtil.getUser(userId).getScreenName());
DettPraticaLocalServiceUtil.updateDettPratica(dettPratica);
}
}
actionResponse.setRenderParameter("intPraticaId", String.valueOf(intPraticaId));
}
public void ripristinaPraticaConforme(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception{
_checkIfUserIsCompanyAdmin(actionRequest);

210
liferay-plugins-sdk-6.2/portlets/portos-advanced-operation-portlet/docroot/WEB-INF/src/it/nextmind/liferay/portos/advanced/operation/util/AdvancedOperationUtil.java

@ -32,12 +32,12 @@ import java.util.List;
public class AdvancedOperationUtil {
public static final int[] STATUS_ARRAY =
{WorkflowConstants.STATUS_DRAFT, WorkflowConstants.STATUS_INACTIVE, WorkflowConstants.STATUS_PENDING};
public static final int[] STATUS_ARRAY = { WorkflowConstants.STATUS_DRAFT,
WorkflowConstants.STATUS_INACTIVE, WorkflowConstants.STATUS_PENDING };
public static boolean isNotWorkflowManuallyStarted(IntPratica intPratica){
public static boolean isNotWorkflowManuallyStarted(IntPratica intPratica) {
switch (intPratica.getStatoPratica()) {
case StatoPraticaConstants.VIDIMATA :
case StatoPraticaConstants.VIDIMATA:
case StatoPraticaConstants.AUTORIZZATA:
case StatoPraticaConstants.CONFORME:
return true;
@ -46,19 +46,20 @@ public class AdvancedOperationUtil {
}
}
public static boolean hasControlloPratica_ProceduraC(IntPratica intPratica){
if(Constants.PROCEDURA_C.equalsIgnoreCase(intPratica.getTipoProcedura())){
try{
public static boolean hasControlloPratica_ProceduraC(IntPratica intPratica) {
if (Constants.PROCEDURA_C.equalsIgnoreCase(intPratica
.getTipoProcedura())) {
try {
long intPraticaId = intPratica.getIntPraticaId();
for(int i : STATUS_ARRAY){
List<ControlloPratica> controlloPraticas =
ControlloPraticaLocalServiceUtil.findByIntPraticaId_Status(intPraticaId, i);
if(!controlloPraticas.isEmpty()){
for (int i : STATUS_ARRAY) {
List<ControlloPratica> controlloPraticas = ControlloPraticaLocalServiceUtil
.findByIntPraticaId_Status(intPraticaId, i);
if (!controlloPraticas.isEmpty()) {
return true;
}
}
} catch (SystemException e){
_log.error(e,e);
} catch (SystemException e) {
_log.error(e, e);
return false;
}
}
@ -66,182 +67,229 @@ public class AdvancedOperationUtil {
}
public static List<WorkflowTask> getListaTask(IntPratica intPratica) {
if(Validator.isNull(intPratica)){
if (Validator.isNull(intPratica)) {
return null;
}
try {
ControlloPratica controlloPratica = null;
List<ControlloPratica> controlloPraticaList =
ControlloPraticaLocalServiceUtil.findByIntPraticaId_Status(intPratica.getIntPraticaId(), intPratica.getStatus());
if(controlloPraticaList.size() > 1){
for(ControlloPratica cp : controlloPraticaList){
if(Validator.isNull(controlloPratica) || cp.getCreateDate().after(controlloPratica.getCreateDate())) {
List<ControlloPratica> controlloPraticaList = ControlloPraticaLocalServiceUtil
.findByIntPraticaId_Status(intPratica.getIntPraticaId(),
intPratica.getStatus());
if (controlloPraticaList.size() > 1) {
for (ControlloPratica cp : controlloPraticaList) {
if (Validator.isNull(controlloPratica)
|| cp.getCreateDate().after(
controlloPratica.getCreateDate())) {
controlloPratica = cp;
}
}
} else if(controlloPraticaList.size() == 1){
} else if (controlloPraticaList.size() == 1) {
controlloPratica = controlloPraticaList.get(0);
} else {
return null;
}
WorkflowInstanceLink workflowInstanceLink = WorkflowInstanceLinkLocalServiceUtil.fetchWorkflowInstanceLink(
controlloPratica.getCompanyId(),controlloPratica.getGroupId(), ControlloPratica.class.getName(),
WorkflowInstanceLink workflowInstanceLink = WorkflowInstanceLinkLocalServiceUtil
.fetchWorkflowInstanceLink(controlloPratica.getCompanyId(),
controlloPratica.getGroupId(),
ControlloPratica.class.getName(),
controlloPratica.getPrimaryKey());
List<WorkflowTask> listaTask = null;
if (workflowInstanceLink == null) {
return null;
} else {
return listaTask = WorkflowTaskManagerUtil.getWorkflowTasksByWorkflowInstance(controlloPratica.getCompanyId(), null,
workflowInstanceLink.getWorkflowInstanceId(), false, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
}
} catch (SystemException | PortalException e){
_log.error(e,e);
return listaTask = WorkflowTaskManagerUtil
.getWorkflowTasksByWorkflowInstance(
controlloPratica.getCompanyId(), null,
workflowInstanceLink.getWorkflowInstanceId(),
false, QueryUtil.ALL_POS, QueryUtil.ALL_POS,
null);
}
} catch (SystemException | PortalException e) {
_log.error(e, e);
return null;
}
}
public static boolean isPraticaAnnullata(IntPratica intPratica){
if(Validator.isNotNull(intPratica)){
public static boolean isPraticaAnnullata(IntPratica intPratica) {
if (Validator.isNotNull(intPratica)) {
return WorkflowConstants.STATUS_INACTIVE == intPratica.getStatus();
}
return false;
}
public static List<DocPratica> getDocPraticaOrfani(long intPraticaId){
public static List<DocPratica> getDocPraticaOrfani(long intPraticaId) {
List<DocPratica> docPraticaOrfaniList = new ArrayList<DocPratica>();
try {
List<DocPratica> docPraticaList = DocPraticaLocalServiceUtil.findByIntPratica(intPraticaId);
for(DocPratica docPratica : docPraticaList){
if(Validator.isNull(DettPraticaLocalServiceUtil.fetchDettPratica(docPratica.getClassPk()))
&& DettPratica.class.getName().equals(docPratica.getClassName())){
List<DocPratica> docPraticaList = DocPraticaLocalServiceUtil
.findByIntPratica(intPraticaId);
for (DocPratica docPratica : docPraticaList) {
if (Validator.isNull(DettPraticaLocalServiceUtil
.fetchDettPratica(docPratica.getClassPk()))
&& DettPratica.class.getName().equals(
docPratica.getClassName())) {
docPraticaOrfaniList.add(docPratica);
}
}
} catch (SystemException e) {
_log.error(e,e);
_log.error(e, e);
}
return docPraticaOrfaniList;
}
public static boolean hasDettPratica(long intPraticaId){
public static boolean hasDettPratica(long intPraticaId) {
return !_getDettPraticaList(intPraticaId).isEmpty();
}
public static boolean getNormLavoriInProprioFlag(long intPraticaId){
public static boolean getNormLavoriInProprioFlag(long intPraticaId) {
List<DettPratica> dettPraticaList = _getDettPraticaList(intPraticaId);
if(!dettPraticaList.isEmpty()){
if (!dettPraticaList.isEmpty()) {
return dettPraticaList.get(0).getNormLavoriInProprio();
}
return false;
}
public static boolean getCollaudoStaticoFlag(long intPraticaId){
public static boolean getCollaudoStaticoFlag(long intPraticaId) {
List<DettPratica> dettPraticaList = _getDettPraticaList(intPraticaId);
if(!dettPraticaList.isEmpty()){
if (!dettPraticaList.isEmpty()) {
return dettPraticaList.get(0).getCollaudoStatico();
}
return false;
}
public static String getLavoriInEconomiaBtnLabel(boolean normLavoriInProprioFlag){
return normLavoriInProprioFlag ? "Rimuovi flag normLavoriInProprio" : "Aggiungi flag normLavoriInProprio";
public static String getLavoriInEconomiaBtnLabel(
boolean normLavoriInProprioFlag) {
return normLavoriInProprioFlag ? "Rimuovi flag normLavoriInProprio"
: "Aggiungi flag normLavoriInProprio";
}
public static String getCollaudoStaticoBtnLabel(boolean collaudoStaticoFlag){
return collaudoStaticoFlag ? "Rimuovi flag collaudoStatico" : "Aggiungi flag collaudoStatico";
public static String getCollaudoStaticoBtnLabel(boolean collaudoStaticoFlag) {
return collaudoStaticoFlag ? "Rimuovi flag collaudoStatico"
: "Aggiungi flag collaudoStatico";
}
public static boolean isStatoPraticaIN(IntPratica intPratica){
if(Validator.isNotNull(intPratica)){
public static boolean isStatoPraticaIN(IntPratica intPratica) {
if (Validator.isNotNull(intPratica)) {
return "IN".equals(intPratica.getStatoPratica());
}
return false;
}
public static long getCurrentAssignee(IntPratica intPratica){
public static long getCurrentAssignee(IntPratica intPratica) {
long currentAssignee = 0;
WorkflowTask lastTask = getLastTask(intPratica);
if(Validator.isNotNull(lastTask)){
if(it.tref.liferay.portos.bo.util.WorkflowConstants.WORKFLOW_TASKNAME_ESITO.equalsIgnoreCase(lastTask.getName())){
if (Validator.isNotNull(lastTask)) {
if (it.tref.liferay.portos.bo.util.WorkflowConstants.WORKFLOW_TASKNAME_ESITO
.equalsIgnoreCase(lastTask.getName())) {
currentAssignee = lastTask.getAssigneeUserId();
}
}
return currentAssignee;
}
public static WorkflowTask getLastTask(IntPratica intPratica){
if(Validator.isNotNull(intPratica)){
public static WorkflowTask getLastTask(IntPratica intPratica) {
if (Validator.isNotNull(intPratica)) {
try {
List<ControlloPratica> controlloPraticas = ControlloPraticaLocalServiceUtil.findByIntPratica(intPratica.getIntPraticaId());
if(!controlloPraticas.isEmpty()){
for(ControlloPratica controlloPratica : controlloPraticas){
if(controlloPratica.getStatus() == WorkflowConstants.STATUS_PENDING){
return WorkflowUtil.getLastTask(controlloPratica.getCompanyId(),
controlloPratica.getGroupId(), null, controlloPratica);
List<ControlloPratica> controlloPraticas = ControlloPraticaLocalServiceUtil
.findByIntPratica(intPratica.getIntPraticaId());
if (!controlloPraticas.isEmpty()) {
for (ControlloPratica controlloPratica : controlloPraticas) {
if (controlloPratica.getStatus() == WorkflowConstants.STATUS_PENDING) {
return WorkflowUtil.getLastTask(
controlloPratica.getCompanyId(),
controlloPratica.getGroupId(), null,
controlloPratica);
}
}
}
}catch (SystemException | PortalException e){
_log.error(e,e);
} catch (SystemException | PortalException e) {
_log.error(e, e);
}
}
return null;
}
public static boolean evalCurrentAssignee(IntPratica intPratica, User tecnico){
public static boolean evalCurrentAssignee(IntPratica intPratica,
User tecnico) {
WorkflowTask lastTask = getLastTask(intPratica);
if(Validator.isNotNull(lastTask) && lastTask.getName().equalsIgnoreCase("Esito")){
return tecnico.getUserId() != lastTask.getAssigneeUserId() || lastTask.getAssigneeUserId() == 0;
if (Validator.isNotNull(lastTask)
&& lastTask.getName().equalsIgnoreCase("Esito")) {
return tecnico.getUserId() != lastTask.getAssigneeUserId()
|| lastTask.getAssigneeUserId() == 0;
}
return false;
}
public static boolean isWorkFlowCompleted(ControlloPratica controlloPratica){
public static boolean isWorkFlowCompleted(ControlloPratica controlloPratica) {
try {
WorkflowTask task = WorkflowUtil.getLastTask(controlloPratica.getCompanyId(),
WorkflowTask task = WorkflowUtil.getLastTask(
controlloPratica.getCompanyId(),
controlloPratica.getGroupId(), null, controlloPratica);
return task.isCompleted();
} catch (PortalException | SystemException e) {
_log.error(e,e);
_log.error(e, e);
}
return false;
}
public static List<DettPratica> fetchDettPraticaListWithInizioLavori(IntPratica intPratica){
if(Validator.isNotNull(intPratica)){
DynamicQuery dynamicQuery = DettPraticaLocalServiceUtil.dynamicQuery();
dynamicQuery.add(RestrictionsFactoryUtil.eq("intPraticaId", intPratica.getIntPraticaId()));
dynamicQuery.add(RestrictionsFactoryUtil.isNotNull("dataInizioLavoriOpera"));
try{
return (List<DettPratica>) DettPraticaLocalServiceUtil.dynamicQuery(dynamicQuery);
} catch (SystemException e){
_log.error(e,e);
public static List<DettPratica> fetchDettPraticaListWithInizioLavori(
IntPratica intPratica) {
if (Validator.isNotNull(intPratica)) {
DynamicQuery dynamicQuery = DettPraticaLocalServiceUtil
.dynamicQuery();
dynamicQuery.add(RestrictionsFactoryUtil.eq("intPraticaId",
intPratica.getIntPraticaId()));
dynamicQuery.add(RestrictionsFactoryUtil
.isNotNull("dataInizioLavoriOpera"));
try {
return (List<DettPratica>) DettPraticaLocalServiceUtil
.dynamicQuery(dynamicQuery);
} catch (SystemException e) {
_log.error(e, e);
return null;
}
}
return null;
}
public static Date fetchDataInizioLavoriOpera(IntPratica intPratica){
public static Date fetchDataInizioLavoriOpera(IntPratica intPratica) {
List<DettPratica> dettPraticaListWithInizioLavori = fetchDettPraticaListWithInizioLavori(intPratica);
if(!dettPraticaListWithInizioLavori.isEmpty()){
return dettPraticaListWithInizioLavori.get(0).getDataInizioLavoriOpera();
if (!dettPraticaListWithInizioLavori.isEmpty()) {
return dettPraticaListWithInizioLavori.get(0)
.getDataInizioLavoriOpera();
}
return null;
}
private static List<DettPratica> _getDettPraticaList(long intPraticaId){
public static boolean evalInt_Dett_UserID(IntPratica intPratica){
return getLastDettPraticaUserID(intPratica) == intPratica.getUserId();
}
public static long getLastDettPraticaUserID(IntPratica intPratica){
try {
DettPratica dettPratica = DettPraticaLocalServiceUtil.getLastEditableByIntPratica(intPratica.getIntPraticaId());
if(Validator.isNotNull(dettPratica)){
return dettPratica.getUserId();
}
} catch (SystemException e){
_log.error(e,e);
}
return -1;
}
private static List<DettPratica> _getDettPraticaList(long intPraticaId) {
List<DettPratica> dettPraticaList = new ArrayList<DettPratica>();
try {
dettPraticaList = DettPraticaLocalServiceUtil.findByIntPraticaId(intPraticaId);
dettPraticaList = DettPraticaLocalServiceUtil
.findByIntPraticaId(intPraticaId);
} catch (SystemException e) {
_log.error(e,e);
_log.error(e, e);
}
return dettPraticaList;
}
private static final Log _log = LogFactoryUtil.getLog(AdvancedOperationUtil.class);
private static final Log _log = LogFactoryUtil
.getLog(AdvancedOperationUtil.class);
}

27
liferay-plugins-sdk-6.2/portlets/portos-advanced-operation-portlet/docroot/html/view.jsp

@ -245,6 +245,30 @@
</div>
<% } %>
<% if(AdvancedOperationUtil.hasDettPratica(intPraticaId)
&& !AdvancedOperationUtil.evalInt_Dett_UserID(intPratica)){
%>
<div style="margin-right: 50px;">
<liferay-portlet:actionURL
name="fixUserID"
var="fixUserIDURL" >
<liferay-portlet:param name="intPraticaId" value="<%= String.valueOf(intPraticaId) %>"/>
<liferay-portlet:param name="mvcPath" value="/html/view.jsp"/>
</liferay-portlet:actionURL>
<%
String functionFixUserID = "javascript:"+renderResponse.getNamespace()+"openConfirmationDialog('"+renderResponse.getNamespace()+"fixUserID','Sei sicuro di voler cambiare lo User dell'ultimo dettPratica?')";
%>
<aui:form action="<%= fixUserIDURL %>" method="post" name="fixCollaudoStatico">
<aui:button
name="fixUserIDBtn"
cssClass="btn-primary"
type="button"
value="FIXA User ID"
onClick='<%= functionFixUserID %>'/>
</aui:form>
</div>
<% } %>
<% if(AdvancedOperationUtil.isStatoPraticaIN(intPratica)){ %>
<div style="margin-right: 50px;">
<liferay-portlet:actionURL
@ -639,7 +663,8 @@
}
%>
</aui:row>
<c:if test="<%= ControlloPraticaLocalServiceUtil.countByIntPratica(intPraticaId) > 1 %>">
<c:if test="<%= !ControlloPraticaLocalServiceUtil.findByIntPratica(intPraticaId).isEmpty() &&
ControlloPraticaLocalServiceUtil.findByIntPratica(intPraticaId).size() > 1 %>">
<aui:row id="controlloPraticaDiv">
<div class="module-group">
<liferay-ui:panel title="CONTROLLO PRATICA" collapsible="false" extended="true">

Caricamento…
Annulla
Salva