added a method

This commit is contained in:
Francesco Mangiacrapa 2021-08-02 12:52:30 +02:00
parent a134c87b6d
commit 5fbb0fa8a7
3 changed files with 169 additions and 92 deletions

View File

@ -3,27 +3,36 @@
<wb-module deploy-name="geoportal-data-entry-app-1.3.0-SNAPSHOT">
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
<dependent-module archiveName="geoportal-data-common-1.1.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/geoportal-data-common/geoportal-data-common">
<dependency-type>uses</dependency-type>
</dependent-module>
@ -33,14 +42,17 @@
<property name="java-output-path" value="/geoportal-data-entry-app/target/geoportal-data-entry-app-1.0.0-SNAPSHOT/WEB-INF/classes"/>
</wb-module>
</project-modules>

View File

@ -97,9 +97,8 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
Concessione concessione = ConvertToServiceModel.toConcessione(idp, user);
LOG.debug("Built " + ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO + " as server obj: " + concessione);
//Register New Concessione
concessioneNew=clientMongo.createNew(concessione);
// Register New Concessione
concessioneNew = clientMongo.createNew(concessione);
// ABSTRACT_RELAZIONE_DI_SCAVO
list = toMap.get(ConcessioniFormCardTitle.ABSTRACT_RELAZIONE_DI_SCAVO);
@ -126,10 +125,9 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
RelazioneScavo relazioneDiScavo = ConvertToServiceModel.toRelazioneScavo(abstractRelazioneDiScavo, rds);
LOG.debug("Built " + ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO + " as server obj: " + relazioneDiScavo);
//Setting Relazione
// Setting Relazione
concessioneNew.setRelazioneScavo(relazioneDiScavo);
// IMMAGINI_RAPPRESENTATIVE
list = toMap.get(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE);
if (list == null || list.isEmpty() || list.get(0) == null || list.get(0).getListGDB() == null)
@ -138,19 +136,20 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
List<GenericDatasetBean> imgRaprsLst = list.get(0).getListGDB();
List<UploadedImage> immaginiRappresentativeService = null;
if(imgRaprsLst.size()>0) {
if (imgRaprsLst.size() > 0) {
immaginiRappresentativeService = new ArrayList<UploadedImage>(imgRaprsLst.size());
for (GenericDatasetBean imgRapr : imgRaprsLst) {
LOG.debug("\n\n");
LOG.debug(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE + " building with client obj: " + imgRapr);
LOG.debug(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE + " building with client obj: "
+ imgRapr);
UploadedImage img = ConvertToServiceModel.toImmaginiRappresentative(imgRapr);
LOG.debug("Built " + ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE + " as server obj: " + img);
immaginiRappresentativeService.add(img);
}
}
//Setting Immagini Rappresentative
if(immaginiRappresentativeService!=null) {
// Setting Immagini Rappresentative
if (immaginiRappresentativeService != null) {
concessioneNew.setImmaginiRappresentative(immaginiRappresentativeService);
}
@ -163,7 +162,7 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
listGDB = list.get(0).getListGDB();
GenericDatasetBean pad = listGDB.get(0);
LayerConcessione layerPad = null;
if(pad!=null) {
if (pad != null) {
LOG.debug("\n\n");
LOG.debug(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE + " building with client obj: "
+ pad);
@ -172,8 +171,8 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
+ layerPad);
}
//Setting Posizionamento Di Scavo
if(layerPad!=null) {
// Setting Posizionamento Di Scavo
if (layerPad != null) {
concessioneNew.setPosizionamentoScavo(layerPad);
}
@ -185,9 +184,9 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
listGDB = list.get(0).getListGDB();
List<GenericDatasetBean> listPfs = listGDB;
//Managing N:N
// Managing N:N
List<LayerConcessione> pianteFineScavo = null;
if(listPfs.size()>0) {
if (listPfs.size() > 0) {
pianteFineScavo = new ArrayList<LayerConcessione>(listPfs.size());
for (GenericDatasetBean pfs : listPfs) {
LOG.debug("\n\n");
@ -199,82 +198,92 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
}
}
//Setting Piante fine Scavo
if(pianteFineScavo!=null) {
// Setting Piante fine Scavo
if (pianteFineScavo != null) {
concessioneNew.setPianteFineScavo(pianteFineScavo);
}
//Registering Meta
// Registering Meta
clientMongo.replace(concessioneNew);
mongoId = concessioneNew.getMongo_id();
LOG.info("Registered the meta. Called mongo.replace for: "+concessioneNew);
LOG.info("Registered the meta. Called mongo.replace for: " + concessioneNew);
//UPLOADING FILES
// UPLOADING FILES
LOG.info("Now uploading the files...");
//Building TempFile for ABSTRACT DELLA RELAZIONE DI SCAVO
// Building TempFile for ABSTRACT DELLA RELAZIONE DI SCAVO
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
List<TempFile> ardsFiles = serviceUtil.toTemFiles(ards.getFilesUploaded());
//TODO MUST BE UNIFIED WITH RELAZIONE OPPURE BISOGNA PREVEDERE UN ABSTRACT_RELAZIONE???
if (ardsFiles!=null && ardsFiles.size() > 0) {
// TODO MUST BE UNIFIED WITH RELAZIONE OPPURE BISOGNA PREVEDERE UN
// ABSTRACT_RELAZIONE???
if (ardsFiles != null && ardsFiles.size() > 0) {
// saving into back-end
AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.RELAZIONE, ardsFiles);
clientMongo.registerFile(mongoId, request);
LOG.info("Registered the mongoId "+mongoId+" request " + Paths.RELAZIONE + "with "+ardsFiles.size()+" file/s");
LOG.info("Registered the mongoId " + mongoId + " request " + Paths.RELAZIONE + "with "
+ ardsFiles.size() + " file/s");
}
// Building TempFile for RELAZIONE DI SCAVO
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
List<TempFile> files = serviceUtil.toTemFiles(rds.getFilesUploaded());
// Upload file to Concessione. Should be one file.
if (files!=null && files.size() > 0) {
if (files != null && files.size() > 0) {
// saving into back-end
AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.RELAZIONE, files);
clientMongo.registerFile(mongoId, request);
LOG.info("Registered the mongoId "+mongoId+" request " + Paths.RELAZIONE + "with "+files.size()+" file/s");
LOG.info("Registered the mongoId " + mongoId + " request " + Paths.RELAZIONE + "with " + files.size()
+ " file/s");
}
//IMMAGINI RAPPRESENTATIVE
for (int i=0; i<imgRaprsLst.size(); i++) {
// IMMAGINI RAPPRESENTATIVE
for (int i = 0; i < imgRaprsLst.size(); i++) {
LOG.debug("\n\n");
GenericDatasetBean imgRapr = imgRaprsLst.get(i);
// Building TempFile for Immagini
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
files = serviceUtil.toTemFiles(imgRapr.getFilesUploaded());
// Upload file to Concessione. The size is always 1 so it is consistent with the 'for' index
if (files!=null && files.size() > 0) {
// Upload file to Concessione. The size is always 1 so it is consistent with the
// 'for' index
if (files != null && files.size() > 0) {
// saving into back-end
AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.imgByIndex(i), files);
AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.imgByIndex(i),
files);
clientMongo.registerFile(mongoId, request);
LOG.info("Registered the mongoId "+mongoId+" request " + Paths.IMMAGINI + "with "+files.size()+" file/s");
LOG.info("Registered the mongoId " + mongoId + " request " + Paths.IMMAGINI + "with " + files.size()
+ " file/s");
}
}
//POSIZIONAMENTO
// POSIZIONAMENTO
// Building TempFile for POSIZIONAMENTO
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
files = serviceUtil.toTemFiles(pad.getFilesUploaded());
// Upload file to Concessione
if (files!=null && files.size() > 0) {
if (files != null && files.size() > 0) {
// saving into back-end
AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.POSIZIONAMENTO, files);
AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.POSIZIONAMENTO,
files);
clientMongo.registerFile(mongoId, request);
LOG.info("Registered the mongoId "+mongoId+" request " + Paths.POSIZIONAMENTO + "with "+files.size()+" file/s");
LOG.info("Registered the mongoId " + mongoId + " request " + Paths.POSIZIONAMENTO + "with "
+ files.size() + " file/s");
}
//PIANTE FINE SCAVO
if(listPfs.size()>0) {
for (int i=0; i<listPfs.size(); i++) {
// PIANTE FINE SCAVO
if (listPfs.size() > 0) {
for (int i = 0; i < listPfs.size(); i++) {
// Building TempFile for PIANTA_DI_FINE_SCAVO
GenericDatasetBean pfs = listPfs.get(i);
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
files = serviceUtil.toTemFiles(pfs.getFilesUploaded());
// Upload file to Concessione Section by Path 'Relazione'
if (files!=null && files.size() > 0) {
if (files != null && files.size() > 0) {
// saving into back-end
AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.piantaByIndex(i), files);
AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(
Paths.piantaByIndex(i), files);
clientMongo.registerFile(mongoId, request);
LOG.info("Registered the mongoId "+mongoId+" request " + Paths.PIANTE + "with "+files.size()+" file/s");
LOG.info("Registered the mongoId " + mongoId + " request " + Paths.PIANTE + "with "
+ files.size() + " file/s");
}
}
@ -289,15 +298,15 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
try {
Concessione concessione;
if(clientMongo!=null && mongoId!=null) {
if (clientMongo != null && mongoId != null) {
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
concessione = clientMongo.publish(mongoId);
//server report
// server report
ValidationReport report = concessione.getReport();
LOG.info("ValidationReport: " + report);
//to client
// to client
CommitReport cRep = new CommitReport();
//cRep.setRecordId(concessione.getId());
// cRep.setRecordId(concessione.getId());
cRep.setMongoId(concessione.getMongo_id());
String theJSON = serviceUtil.toJSON(report);
cRep.setReport(theJSON);
@ -305,7 +314,7 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
switch (report.getStatus()) {
case PASSED:
cRep.setState(STATE.OK);
if(cRep.getMongoId()==null) {
if (cRep.getMongoId() == null) {
LOG.error("The mongo id is null!!!");
throw new Exception("Invalid identifier (mongoId is null) for the concessione");
}
@ -325,13 +334,12 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
}
return cRep;
}else
} else
throw new Exception("MongoId or Client not found");
} catch (Exception e) {
LOG.error("Error on commiting data: ", e);
throw new Exception(
"Error occurred on saving data. Error: " + e.getMessage());
throw new Exception("Error occurred on saving data. Error: " + e.getMessage());
} finally {
// if(manager!=null) {
// try {
@ -399,20 +407,38 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
* @return the links for
* @throws Exception the exception
*/
//@Override
public void getListConcessioni(Integer startIdx, Integer limit) throws Exception {
// @Override
public void getListConcessioni(Integer start, Integer offset) throws Exception {
LOG.info("getListConcessioni called");
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
ServiceUtil serviceUtil = new ServiceUtil();
MongoConcessioni clientMongo = serviceUtil.getInstanceMongoConcessioni();
Iterable<Concessione> concessioni = clientMongo.getList();
try {
List<Concessione> listOfConcessioni = SessionUtil.getListOfConcessioni(getThreadLocalRequest());
int maxOffset = listOfConcessioni.size();
List<Concessione> toReturn = new ArrayList<Concessione>();
if(start==null && offset==null) {
toReturn.addAll(listOfConcessioni);
}
if(start<0)
start=0;
if(offset>maxOffset)
offset = maxOffset;
toReturn.subList(start, offset);
for (Concessione concessione : toReturn) {
}
// TODO
//LOG.info("Returning: " + concessioni);
}catch (Exception e) {
LOG.error("Error on loading list of concessioni: ", e);
throw new Exception("Error occurred on loading list of Concessioni. Error: " + e.getMessage());
}
//TODO
LOG.info("Returning: " + concessioni);
}
/**
* Pretty print client data entry map.
*

View File

@ -3,8 +3,14 @@
*/
package org.gcube.portlets.user.geoportaldataentry.server;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.gcube.application.geoportal.common.model.legacy.Concessione;
import org.gcube.application.geoportal.common.rest.MongoConcessioni;
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
import org.gcube.common.portal.PortalContext;
import org.gcube.common.scope.api.ScopeProvider;
@ -29,6 +35,7 @@ import com.liferay.portal.service.UserLocalServiceUtil;
*/
public class SessionUtil {
private static final String LIST_OF_CONCESSIONI = "LIST_OF_CONCESSIONI";
/** The log. */
private static Logger LOG = LoggerFactory.getLogger(SessionUtil.class);
@ -111,4 +118,36 @@ public class SessionUtil {
return gm.getGroup(groupId);
}
/**
* Gets the list of concessioni.
*
* @param httpServletRequest the http servlet request
* @return the list of concessioni
* @throws Exception the exception
*/
public static List<Concessione> getListOfConcessioni(HttpServletRequest httpServletRequest) throws Exception {
HttpSession session = httpServletRequest.getSession();
List<Concessione> listOfConcessioni = (List<Concessione>) session.getAttribute(LIST_OF_CONCESSIONI);
List<Concessione> result = new ArrayList<Concessione>();
if (listOfConcessioni == null) {
LOG.info("Loading list of concessione from client mongo");
SessionUtil.getCurrentContext(httpServletRequest, true);
ServiceUtil serviceUtil = new ServiceUtil();
MongoConcessioni clientMongo = serviceUtil.getInstanceMongoConcessioni();
Iterable<Concessione> concessioni = clientMongo.getList();
if (concessioni != null) {
for (Concessione conc : concessioni) {
result.add(conc);
}
}
LOG.debug("Got list of concessione from client mongo: "+result);
session.setAttribute(LIST_OF_CONCESSIONI, result);
LOG.info("Saved in session list of concessione from client mongo with size: "+result.size());
}
LOG.info("returning list of concessioni with size: "+result.size());
return result;
}
}