Salvatore La Manna
3 anni fa
50 ha cambiato i file con 1188 aggiunte e 703 eliminazioni
@ -0,0 +1,68 @@
|
||||
package it.mwg.sismica.bo.bean; |
||||
|
||||
public class MappeBean { |
||||
|
||||
private String comune; |
||||
private String numeroProgetto; |
||||
private String descrizione; |
||||
private String estremiCatastali; |
||||
private Double lat; |
||||
private Double lng; |
||||
private String url; |
||||
|
||||
public String getComune() { |
||||
return comune; |
||||
} |
||||
|
||||
public String getDescrizione() { |
||||
return descrizione; |
||||
} |
||||
|
||||
public String getEstremiCatastali() { |
||||
return estremiCatastali; |
||||
} |
||||
|
||||
public Double getLat() { |
||||
return lat; |
||||
} |
||||
|
||||
public Double getLng() { |
||||
return lng; |
||||
} |
||||
|
||||
public String getNumeroProgetto() { |
||||
return numeroProgetto; |
||||
} |
||||
|
||||
public String getUrl() { |
||||
return url; |
||||
} |
||||
|
||||
public void setComune(String comune) { |
||||
this.comune = comune; |
||||
} |
||||
|
||||
public void setDescrizione(String descrizione) { |
||||
this.descrizione = descrizione; |
||||
} |
||||
|
||||
public void setEstremiCatastali(String estremiCatastali) { |
||||
this.estremiCatastali = estremiCatastali; |
||||
} |
||||
|
||||
public void setLat(Double lat) { |
||||
this.lat = lat; |
||||
} |
||||
|
||||
public void setLng(Double lng) { |
||||
this.lng = lng; |
||||
} |
||||
|
||||
public void setNumeroProgetto(String numeroProgetto) { |
||||
this.numeroProgetto = numeroProgetto; |
||||
} |
||||
|
||||
public void setUrl(String url) { |
||||
this.url = url; |
||||
} |
||||
} |
@ -0,0 +1,133 @@
|
||||
package it.mwg.sismica.bo.servlet; |
||||
|
||||
import it.mwg.sismica.bo.bean.MappeBean; |
||||
import it.tref.liferay.portos.bo.model.Comune; |
||||
import it.tref.liferay.portos.bo.model.DettPratica; |
||||
import it.tref.liferay.portos.bo.model.IntPratica; |
||||
import it.tref.liferay.portos.bo.model.Territorio; |
||||
import it.tref.liferay.portos.bo.service.ComuneLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.DettPraticaLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.TerritorioLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.shared.util.FascicoloURLUtil; |
||||
|
||||
import java.io.IOException; |
||||
import java.util.ArrayList; |
||||
import java.util.Arrays; |
||||
import java.util.Collections; |
||||
import java.util.HashSet; |
||||
import java.util.List; |
||||
import java.util.Set; |
||||
|
||||
import javax.servlet.ServletException; |
||||
import javax.servlet.http.HttpServlet; |
||||
import javax.servlet.http.HttpServletRequest; |
||||
import javax.servlet.http.HttpServletResponse; |
||||
|
||||
import org.apache.commons.lang.StringUtils; |
||||
|
||||
import com.liferay.portal.kernel.dao.orm.DynamicQuery; |
||||
import com.liferay.portal.kernel.dao.orm.QueryUtil; |
||||
import com.liferay.portal.kernel.dao.orm.RestrictionsFactoryUtil; |
||||
import com.liferay.portal.kernel.exception.PortalException; |
||||
import com.liferay.portal.kernel.exception.SystemException; |
||||
import com.liferay.portal.kernel.json.JSONFactoryUtil; |
||||
import com.liferay.portal.kernel.json.JSONSerializer; |
||||
import com.liferay.portal.kernel.log.Log; |
||||
import com.liferay.portal.kernel.log.LogFactoryUtil; |
||||
import com.liferay.portal.kernel.servlet.HttpHeaders; |
||||
import com.liferay.portal.kernel.servlet.ServletResponseUtil; |
||||
import com.liferay.portal.kernel.util.ContentTypes; |
||||
import com.liferay.portal.kernel.util.ParamUtil; |
||||
import com.liferay.portal.kernel.util.StringPool; |
||||
import com.liferay.portal.kernel.util.Validator; |
||||
import com.liferay.portal.util.PortalUtil; |
||||
|
||||
@SuppressWarnings("serial") |
||||
public class MappeServlet extends HttpServlet { |
||||
|
||||
public static final String CODICE_PROVINCIA = "p"; |
||||
public static final String COMUNE_ID = "c"; |
||||
|
||||
private static final JSONSerializer serializer = JSONFactoryUtil.createJSONSerializer().exclude("*.class"); |
||||
private static final Log _log = LogFactoryUtil.getLog(MappeServlet.class); |
||||
|
||||
@Override |
||||
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { |
||||
|
||||
switch (request.getPathInfo()) { |
||||
case "/list": |
||||
String codiceProvincia = ParamUtil.getString(request, CODICE_PROVINCIA); |
||||
long comuneId = ParamUtil.getLong(request, COMUNE_ID); |
||||
_log.info("p=" + codiceProvincia + "&c=" + comuneId); |
||||
if (Validator.isNull(codiceProvincia) && (0 == comuneId)) { |
||||
response.sendError(HttpServletResponse.SC_BAD_REQUEST, request.getRequestURI()); |
||||
} else { |
||||
long companyId = PortalUtil.getCompanyId(request); |
||||
response.setContentType(ContentTypes.APPLICATION_JSON); |
||||
response.setCharacterEncoding(StringPool.UTF8); |
||||
String filename = (0 == comuneId ? "P-" + codiceProvincia : "C-" + comuneId) + ".json"; |
||||
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "inline; filename=\"" + filename + StringPool.QUOTE); |
||||
ServletResponseUtil.write(response, |
||||
serializer.serializeDeep(getPratiche(companyId, codiceProvincia, comuneId))); |
||||
} |
||||
break; |
||||
default: |
||||
response.sendError(HttpServletResponse.SC_NOT_FOUND, request.getRequestURI()); |
||||
} |
||||
} |
||||
|
||||
private static List<MappeBean> getPratiche(long companyId, String codiceProvincia, long comuneId) { |
||||
|
||||
List<MappeBean> result = new ArrayList<>(); |
||||
try { |
||||
Set<Long> territori = new HashSet<>(); |
||||
List<Comune> comuni = Collections.<Comune> emptyList(); |
||||
if (0 == comuneId) { |
||||
comuni = ComuneLocalServiceUtil.findByC_CP(companyId, codiceProvincia); |
||||
} else { |
||||
try { |
||||
comuni = Arrays.<Comune> asList(ComuneLocalServiceUtil.getComune(comuneId)); |
||||
} catch (PortalException e) { |
||||
} |
||||
} |
||||
for (Comune comune : comuni) { |
||||
for (Territorio territorio : TerritorioLocalServiceUtil.findByComuneId(comune.getComuneId(), |
||||
QueryUtil.ALL_POS, QueryUtil.ALL_POS)) { |
||||
territori.add(territorio.getTerritorioId()); |
||||
} |
||||
} |
||||
DynamicQuery dq = IntPraticaLocalServiceUtil.dynamicQuery(); |
||||
dq.add(RestrictionsFactoryUtil.in("territorioId", territori)); |
||||
dq.add(RestrictionsFactoryUtil.ne("numeroProgetto", StringPool.BLANK)); |
||||
dq.add(RestrictionsFactoryUtil.isNotNull("numeroProgetto")); |
||||
@SuppressWarnings("unchecked") |
||||
List<IntPratica> pratiche = IntPraticaLocalServiceUtil.dynamicQuery(dq); |
||||
for (IntPratica pratica : pratiche) { |
||||
DettPratica dett = DettPraticaLocalServiceUtil.getLastCompletedByIntPratica(pratica.getIntPraticaId()); |
||||
MappeBean bean = new MappeBean(); |
||||
try { |
||||
Territorio territorio = TerritorioLocalServiceUtil.getTerritorio(pratica.getTerritorioId()); |
||||
Comune comune = ComuneLocalServiceUtil.getComune(territorio.getComuneId()); |
||||
bean.setComune(comune.getCodiceBelfiore()); |
||||
bean.setNumeroProgetto(pratica.getNumeroProgetto()); |
||||
bean.setDescrizione(dett.getDescLongIntervento()); |
||||
bean.setEstremiCatastali(dett.getEstremiCatastali()); |
||||
String[] coordinate = StringUtils.split(dett.getLocalizzazioneGeografica(), '|'); |
||||
if (coordinate.length > 1) { |
||||
bean.setLat(Double.valueOf(coordinate[0])); |
||||
bean.setLng(Double.valueOf(coordinate[1])); |
||||
} |
||||
if (Validator.isNotNull(bean.getEstremiCatastali()) || Validator.isNotNull(bean.getLng())) { |
||||
bean.setUrl(FascicoloURLUtil.getFascicoloBOViewURL(companyId, pratica.getIntPraticaId())); |
||||
result.add(bean); |
||||
} |
||||
} catch (PortalException e) { |
||||
} |
||||
} |
||||
} catch (SystemException e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return result; |
||||
} |
||||
} |
@ -1,3 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> |
||||
<servlet> |
||||
<servlet-name>MappeServlet</servlet-name> |
||||
<servlet-class>it.mwg.sismica.bo.servlet.MappeServlet</servlet-class> |
||||
</servlet> |
||||
<servlet-mapping> |
||||
<servlet-name>MappeServlet</servlet-name> |
||||
<url-pattern>/mappe/*</url-pattern> |
||||
</servlet-mapping> |
||||
</web-app> |
@ -1,14 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<web-app id="WebApp_ID" version="2.5" |
||||
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
<web-app id="WebApp_ID" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> |
||||
<servlet> |
||||
<servlet-name>SorgentiServlet</servlet-name> |
||||
<servlet-class>it.mwg.sismica.fe.servlet.SorgentiServlet</servlet-class> |
||||
</servlet> |
||||
|
||||
<servlet-mapping> |
||||
<servlet-name>SorgentiServlet</servlet-name> |
||||
<url-pattern>/sorgenti-sismica/*</url-pattern> |
||||
<url-pattern>/sorgenti-paesaggistica/*</url-pattern> |
||||
</servlet-mapping> |
||||
</web-app> |
File binario non mostrato.
@ -1,14 +0,0 @@
|
||||
package it.mwg.sicilia.sue.api.v1.bean; |
||||
|
||||
public class Description { |
||||
|
||||
private final String description; |
||||
|
||||
public Description(String description) { |
||||
this.description = description; |
||||
} |
||||
|
||||
public String getDescription() { |
||||
return description; |
||||
} |
||||
} |
@ -0,0 +1,333 @@
|
||||
package it.mwg.sicilia.sue.api.v1.command.impl; |
||||
|
||||
import it.mwg.sicilia.sue.api.v1.Parameters; |
||||
import it.mwg.sicilia.sue.api.v1.Response; |
||||
import it.mwg.sicilia.sue.api.v1.Status; |
||||
import it.mwg.sicilia.sue.api.v1.command.Command; |
||||
import it.mwg.sicilia.sue.api.v1.parameter.Parameter; |
||||
import it.mwg.sicilia.sue.api.v1.parameter.Parameter.TYPES; |
||||
import it.mwg.sicilia.sue.api.v1.util.PortosBoUtil; |
||||
import it.tref.liferay.portos.bo.model.Comune; |
||||
import it.tref.liferay.portos.bo.model.DettPratica; |
||||
import it.tref.liferay.portos.bo.model.IntPratica; |
||||
import it.tref.liferay.portos.bo.model.Provincia; |
||||
import it.tref.liferay.portos.bo.model.Soggetto; |
||||
import it.tref.liferay.portos.bo.service.ComuneLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.DettPraticaLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.ProvinciaLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.SoggettoLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.shared.util.TipoSoggettoUtil; |
||||
|
||||
import java.io.Serializable; |
||||
import java.text.SimpleDateFormat; |
||||
import java.util.ArrayList; |
||||
import java.util.Date; |
||||
import java.util.HashMap; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
import java.util.Map.Entry; |
||||
import java.util.TreeMap; |
||||
|
||||
import javax.servlet.http.HttpServletRequest; |
||||
import javax.servlet.http.HttpServletResponse; |
||||
|
||||
import com.liferay.counter.service.CounterLocalServiceUtil; |
||||
import com.liferay.portal.kernel.util.MapUtil; |
||||
import com.liferay.portal.kernel.util.StringPool; |
||||
import com.liferay.portal.kernel.util.Validator; |
||||
import com.liferay.portal.model.Group; |
||||
import com.liferay.portal.model.Organization; |
||||
import com.liferay.portal.service.GroupLocalServiceUtil; |
||||
import com.liferay.portal.service.OrganizationLocalServiceUtil; |
||||
|
||||
public class AddPerson extends Command { |
||||
|
||||
@SuppressWarnings("serial") |
||||
private static final List<Parameter> INPUT_PARAMETERS = new ArrayList<Parameter>() { |
||||
{ |
||||
Map<String, String> tipologie = new TreeMap<>(); |
||||
tipologie.putAll(SoggettoLocalServiceUtil.getTipologieSoggetti()); |
||||
Map<String, String> ambiti = SoggettoLocalServiceUtil.getAmbitiProfessionali(); |
||||
|
||||
add(new Parameter(Parameters.APPLICATION_ID, TYPES.INT, "Id dell'istanza")); |
||||
StringBuilder sb = new StringBuilder(); |
||||
sb.append("Ruolo ricoperto dal soggetto (1..").append(tipologie.size()) |
||||
.append(StringPool.CLOSE_PARENTHESIS); |
||||
for (Entry<String, String> tipo : tipologie.entrySet()) { |
||||
sb.append("<br><span style=\"margin-left:20px\">").append(Long.valueOf(tipo.getKey())).append(" - ") |
||||
.append(tipo.getValue()).append("</span>"); |
||||
} |
||||
add(new Parameter(Parameters.TYPE, TYPES.INT, sb.toString())); |
||||
add(new Parameter(Parameters.TYPE_DESCRIPTION, TYPES.STRING, |
||||
"Descrizione del ruolo ricoperto, obbligatoria se " + Parameters.TYPE + " = " |
||||
+ Long.valueOf(TipoSoggettoUtil.ALTRO_SOGGETTO), false)); |
||||
sb.setLength(0); |
||||
sb.append("Ambito professionale (<NULL>,1..").append(ambiti.size()) |
||||
.append(StringPool.CLOSE_PARENTHESIS); |
||||
int n = 0; |
||||
for (String ambito : ambiti.values()) { |
||||
sb.append("<br><span style=\"margin-left:20px\">").append(++n).append(" - ").append(ambito) |
||||
.append("</span>"); |
||||
} |
||||
add(new Parameter(Parameters.SCOPE, TYPES.INT, sb.toString(), false)); |
||||
add(new Parameter(Parameters.SCOPE_DESCRIPTION, TYPES.STRING, |
||||
"Descrizione dell'ambito professionale, obbligatoria se " + Parameters.SCOPE + " = " + n, false)); |
||||
add(new Parameter(Parameters.IS_BUSINESS, TYPES.BOOL, |
||||
"Se true il soggetto censito è un'azienda<br/>deve essere true se " + Parameters.TYPE + " = " |
||||
+ Long.valueOf(TipoSoggettoUtil.DITTA) + " (" + tipologie.get(TipoSoggettoUtil.DITTA) |
||||
+ ")<br/>può essere true se " + Parameters.TYPE + " = " |
||||
+ Long.valueOf(TipoSoggettoUtil.COMMITTENTE) + " (" |
||||
+ tipologie.get(TipoSoggettoUtil.COMMITTENTE) |
||||
+ ")<br/>deve essere false o non presente in tutti gli altri casi", false)); |
||||
add(new Parameter(Parameters.VATIN, TYPES.STRING, |
||||
"Codice fiscale del soggetto o del legale rappresentante se ditta")); |
||||
add(new Parameter(Parameters.FIRST_NAME, TYPES.STRING, |
||||
"Nome del soggetto o del legale rappresentante se ditta")); |
||||
add(new Parameter(Parameters.LAST_NAME, TYPES.STRING, |
||||
"Cognome del soggetto o del legale rappresentante se ditta")); |
||||
add(new Parameter(Parameters.PROVINCE_OF_BIRTH, TYPES.STRING, |
||||
"Nome della provincia o stato estero di nascita del soggetto o del legale rappresentante se ditta")); |
||||
add(new Parameter(Parameters.CITY_OF_BIRTH, TYPES.STRING, |
||||
"Nome del comune di nascita del soggetto o del legale rappresentante se ditta")); |
||||
add(new Parameter(Parameters.DATE_OF_BIRTH, TYPES.STRING, |
||||
"Data di nascita (AAAA-MM-GG) del soggetto o del legale rappresentante se ditta")); |
||||
add(new Parameter( |
||||
Parameters.PROVINCE_OF_RESIDENCE, |
||||
TYPES.STRING, |
||||
"Codice ISTAT, sigla o nome della provincia di nascita del soggetto o della sede legale se ditta. Può essere omesso se viene fornito il codice ISTAT o Belfiore per " |
||||
+ Parameters.CITY_OF_RESIDENCE |
||||
+ ", ignorato se viene valorizzato " |
||||
+ Parameters.STATE_OF_RESIDENCE, false)); |
||||
add(new Parameter( |
||||
Parameters.CITY_OF_RESIDENCE, |
||||
TYPES.STRING, |
||||
"Codice ISTAT, codice Belfiore o nome del comune di residenza del soggetto o della sede legale se ditta, ignorato se viene valorizzato " |
||||
+ Parameters.STATE_OF_RESIDENCE, false)); |
||||
add(new Parameter(Parameters.STATE_OF_RESIDENCE, TYPES.STRING, |
||||
"Stato estero di residenza del soggetto o della sede legale se ditta, in alternativa a " |
||||
+ Parameters.PROVINCE_OF_RESIDENCE + " e " + Parameters.CITY_OF_RESIDENCE |
||||
+ ". Se valorizzato i campi " + Parameters.PROVINCE_OF_RESIDENCE + " e " |
||||
+ Parameters.CITY_OF_RESIDENCE + " saranno ignorati", false)); |
||||
add(new Parameter(Parameters.STREET_ADDRESS_OF_RESIDENCE, TYPES.STRING, |
||||
"Indirizzo di residenza del soggetto o della sede legale se ditta")); |
||||
add(new Parameter(Parameters.STREET_NUMBER_OF_RESIDENCE, TYPES.STRING, |
||||
"Numero civico di residenza del soggetto o della sede legale se ditta")); |
||||
add(new Parameter(Parameters.POSTCODE, TYPES.STRING, |
||||
"Codice di avviamento postale di residenza del soggetto o della sede legale se ditta")); |
||||
add(new Parameter(Parameters.EMAIL, TYPES.STRING, |
||||
"Email per ricevimento comunicazioni/notifiche (non inserire PEC)")); |
||||
add(new Parameter(Parameters.TELEPHONE_NUMBER, TYPES.STRING, "Numero di telefono")); |
||||
add(new Parameter(Parameters.FAX_NUMBER, TYPES.STRING, "Numero di fax", false)); |
||||
} |
||||
}; |
||||
|
||||
@SuppressWarnings("serial") |
||||
private static final List<Parameter> OUTPUT_PARAMETERS = new ArrayList<Parameter>() { |
||||
{ |
||||
addAll(BASE_OUTPUT_PARAMETERS); |
||||
add(new Parameter(Parameters.PERSON_ID, TYPES.INT, "Identificatore del soggetto censito")); |
||||
add(new Parameter(Parameters.ADDITIONAL_INFO, TYPES.STRING, |
||||
"Eventuali informazioni aggiuntive sull'operazione o sugli errori incontrati", false)); |
||||
} |
||||
}; |
||||
|
||||
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
||||
|
||||
public AddPerson(String description, String... methods) { |
||||
super(description, methods); |
||||
} |
||||
|
||||
@Override |
||||
public void run(HttpServletRequest request, HttpServletResponse response) throws Exception { |
||||
|
||||
if (verifyAccessToken(request, response)) { |
||||
IntPratica intPratica = getSecureIntPratica(response); |
||||
if (Validator.isNotNull(intPratica)) { |
||||
List<String> additionalInfo = new ArrayList<>(); |
||||
long companyId = intPratica.getCompanyId(); |
||||
List<String> tipologie = new ArrayList<String>(new TreeMap<String, String>( |
||||
SoggettoLocalServiceUtil.getTipologieSoggetti()).keySet()); |
||||
List<String> ambiti = new ArrayList<>(SoggettoLocalServiceUtil.getAmbitiProfessionali().keySet()); |
||||
String tipologia = null; |
||||
String tipologiaAltro = null; |
||||
int type = MapUtil.getInteger(parameters, Parameters.TYPE); |
||||
if ((type > 0) && (type <= tipologie.size())) { |
||||
tipologia = tipologie.get(type - 1); |
||||
if (tipologia.equals(TipoSoggettoUtil.ALTRO_SOGGETTO)) { |
||||
tipologiaAltro = MapUtil.getString(parameters, Parameters.TYPE_DESCRIPTION); |
||||
if (Validator.isNull(tipologiaAltro)) { |
||||
additionalInfo.add("Il campo " + Parameters.TYPE_DESCRIPTION + " è obbligatorio quando " |
||||
+ Parameters.TYPE + " = " + type); |
||||
} |
||||
} |
||||
} else { |
||||
additionalInfo.add("Valore non valido " + Parameters.TYPE + " = " + type); |
||||
} |
||||
String ambito = null; |
||||
String ambitoAltro = null; |
||||
int scope = MapUtil.getInteger(parameters, Parameters.SCOPE); |
||||
if ((scope > 0) && (scope <= ambiti.size())) { |
||||
ambito = ambiti.get(scope - 1); |
||||
if (ambito.equals("ambitoProf-altro")) { |
||||
ambitoAltro = MapUtil.getString(parameters, Parameters.SCOPE_DESCRIPTION); |
||||
if (Validator.isNull(ambitoAltro)) { |
||||
additionalInfo.add("Il campo " + Parameters.SCOPE_DESCRIPTION + " è obbligatorio quando " |
||||
+ Parameters.SCOPE + " = " + scope); |
||||
} |
||||
} |
||||
} |
||||
boolean isBusiness = MapUtil.getBoolean(parameters, Parameters.IS_BUSINESS, false); |
||||
String codiceFiscale = getRequiredString(Parameters.VATIN, additionalInfo); |
||||
String nome = getRequiredString(Parameters.FIRST_NAME, additionalInfo); |
||||
String cognome = getRequiredString(Parameters.LAST_NAME, additionalInfo); |
||||
Date dataNascita = null; |
||||
try { |
||||
dataNascita = sdf.parse(MapUtil.getString(parameters, Parameters.DATE_OF_BIRTH)); |
||||
} catch (Exception e) { |
||||
additionalInfo.add("Il campo " + Parameters.DATE_OF_BIRTH + " manca o non è valido, " |
||||
+ Parameters.DATE_OF_BIRTH + " = " |
||||
+ MapUtil.getString(parameters, Parameters.DATE_OF_BIRTH)); |
||||
} |
||||
String provinciaNascita = getRequiredString(Parameters.PROVINCE_OF_BIRTH, additionalInfo); |
||||
String comuneNascita = getRequiredString(Parameters.CITY_OF_BIRTH, additionalInfo); |
||||
String comuneEstero = MapUtil.getString(parameters, Parameters.STATE_OF_RESIDENCE); |
||||
Comune comune = null; |
||||
if (Validator.isNull(comuneEstero)) { |
||||
String provinceOfResidence = MapUtil.getString(parameters, Parameters.PROVINCE_OF_RESIDENCE); |
||||
String cityOfResidence = MapUtil.getString(parameters, Parameters.CITY_OF_RESIDENCE); |
||||
comune = getComune(companyId, provinceOfResidence, cityOfResidence); |
||||
if (Validator.isNull(comune)) { |
||||
additionalInfo.add("Nessun comune trovato per " + Parameters.PROVINCE_OF_RESIDENCE + " = " |
||||
+ provinceOfResidence + ", " + Parameters.CITY_OF_RESIDENCE + " = " + cityOfResidence); |
||||
} |
||||
} |
||||
String via = getRequiredString(Parameters.STREET_ADDRESS_OF_RESIDENCE, additionalInfo); |
||||
String numeroCivico = getRequiredString(Parameters.STREET_NUMBER_OF_RESIDENCE, additionalInfo); |
||||
if (additionalInfo.isEmpty()) { |
||||
try { |
||||
Group group = GroupLocalServiceUtil.getGroup(sportello.getGroupId()); |
||||
Organization organization = OrganizationLocalServiceUtil.getOrganization(group |
||||
.getOrganizationId()); |
||||
if (0 != organization.getParentOrganizationId()) { |
||||
organization = OrganizationLocalServiceUtil.getOrganization(organization |
||||
.getParentOrganizationId()); |
||||
group = organization.getGroup(); |
||||
} |
||||
|
||||
DettPratica dettPratica = DettPraticaLocalServiceUtil.getLastEditableByIntPratica(intPratica |
||||
.getIntPraticaId()); |
||||
Date date = new Date(); |
||||
Soggetto soggetto = SoggettoLocalServiceUtil.createSoggetto(CounterLocalServiceUtil |
||||
.increment(Soggetto.class.getName())); |
||||
soggetto.setCompanyId(companyId); |
||||
soggetto.setUserId(intPratica.getUserId()); |
||||
soggetto.setUserName(intPratica.getUserName()); |
||||
soggetto.setCreateDate(date); |
||||
soggetto.setModifiedDate(date); |
||||
soggetto.setGroupId(group.getGroupId()); |
||||
soggetto.setDettPraticaId(dettPratica.getDettPraticaId()); |
||||
soggetto.setIntPraticaId(intPratica.getIntPraticaId()); |
||||
soggetto.setTipologiaSoggetto(tipologia); |
||||
soggetto.setTipoAltroSoggetto(tipologiaAltro); |
||||
soggetto.setAmbitoAttivita(ambito); |
||||
soggetto.setAmbitoProfessione(ambitoAltro); |
||||
if (isBusiness) { |
||||
soggetto.setLegaleRap(nome + StringPool.SPACE + cognome); |
||||
} else { |
||||
soggetto.setNome(nome); |
||||
soggetto.setCognome(cognome); |
||||
soggetto.setCodiceFiscale(codiceFiscale.toLowerCase()); |
||||
soggetto.setDataNascita(dataNascita); |
||||
soggetto.setProvinciaNascita(provinciaNascita); |
||||
soggetto.setComuneNascita(comuneNascita); |
||||
if (Validator.isNotNull(comune)) { |
||||
soggetto.setComune(String.valueOf(comune.getComuneId())); |
||||
soggetto.setProvincia(comune.getCodiceProvincia()); |
||||
} |
||||
if (Validator.isNotNull(comuneEstero)) { |
||||
soggetto.setComuneEstero(comuneEstero); |
||||
} |
||||
soggetto.setVia(via); |
||||
soggetto.setNumeroCivico(numeroCivico); |
||||
} |
||||
SoggettoLocalServiceUtil.updateSoggetto(soggetto); |
||||
Map<String, Serializable> result = new HashMap<>(); |
||||
result.put(Parameters.PERSON_ID, soggetto.getSoggettoId()); |
||||
Response.write(response, Status.OK, result, additionalInfo); |
||||
} catch (Exception e) { |
||||
additionalInfo.add("Errore durante la creazione del soggetto"); |
||||
Response.write(response, Status.SERVER_ERROR, additionalInfo); |
||||
} |
||||
} else { |
||||
Response.write(response, Status.INVALID_INPUT, additionalInfo); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
private String getRequiredString(String parameter, List<String> additionalInfo) { |
||||
|
||||
String result = MapUtil.getString(parameters, parameter); |
||||
if (Validator.isNull(result)) { |
||||
additionalInfo.add("Il campo " + parameter + " è obbligatorio"); |
||||
} |
||||
return result; |
||||
} |
||||
|
||||
private static Comune getComune(long companyId, String nomeProvincia, String nomeComune) { |
||||
|
||||
Provincia provincia = null; |
||||
Comune comune = null; |
||||
if (Validator.isNotNull(nomeProvincia)) { |
||||
try { |
||||
switch (nomeProvincia.length()) { |
||||
case 2: |
||||
provincia = ProvinciaLocalServiceUtil.fetchByC_S(companyId, nomeProvincia.toUpperCase()); |
||||
break; |
||||
case 3: |
||||
provincia = ProvinciaLocalServiceUtil.fetchByC_C(companyId, nomeProvincia); |
||||
break; |
||||
} |
||||
if (Validator.isNull(provincia)) { |
||||
provincia = PortosBoUtil.findProvinciaByCompanyIdDenominazione(companyId, nomeProvincia); |
||||
} |
||||
switch (nomeComune.length()) { |
||||
case 4: |
||||
comune = ComuneLocalServiceUtil.fetchByC_CB(companyId, nomeComune.toUpperCase()); |
||||
break; |
||||
case 6: |
||||
comune = ComuneLocalServiceUtil.fetchByC_CI(companyId, nomeComune); |
||||
break; |
||||
} |
||||
if (Validator.isNull(comune)) { |
||||
List<Comune> comuni = ComuneLocalServiceUtil.findByCompanyDenominazione(companyId, nomeComune); |
||||
if (comuni.size() == 1) { |
||||
comune = comuni.get(0); |
||||
} else { |
||||
if (Validator.isNotNull(provincia)) { |
||||
for (Comune c : comuni) { |
||||
if (c.getCodiceProvincia().equalsIgnoreCase(provincia.getCodiceProvincia())) { |
||||
comune = c; |
||||
break; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} catch (Exception e) { |
||||
} |
||||
} |
||||
return comune; |
||||
} |
||||
|
||||
@Override |
||||
public List<Parameter> getInputParameters() { |
||||
return INPUT_PARAMETERS; |
||||
} |
||||
|
||||
@Override |
||||
public List<Parameter> getOutputParameters() { |
||||
return OUTPUT_PARAMETERS; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,113 @@
|
||||
package it.mwg.sicilia.sue.api.v1.command.impl; |
||||
|
||||
import it.mwg.sicilia.sue.api.v1.Parameters; |
||||
import it.mwg.sicilia.sue.api.v1.Response; |
||||
import it.mwg.sicilia.sue.api.v1.Status; |
||||
import it.mwg.sicilia.sue.api.v1.command.Command; |
||||
import it.mwg.sicilia.sue.api.v1.parameter.Parameter; |
||||
import it.mwg.sicilia.sue.api.v1.parameter.Parameter.TYPES; |
||||
import it.mwg.sicilia.sue.api.v1.util.ApiUtil; |
||||
import it.mwg.sicilia.sue.service.SportelloLocalServiceUtil; |
||||
|
||||
import java.io.IOException; |
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
|
||||
import javax.servlet.http.HttpServletRequest; |
||||
import javax.servlet.http.HttpServletResponse; |
||||
|
||||
public class SetPassword extends Command { |
||||
|
||||
@SuppressWarnings("serial") |
||||
private static final List<Parameter> INPUT_PARAMETERS = new ArrayList<Parameter>() { |
||||
{ |
||||
add(new Parameter(Parameters.PASSWORD, TYPES.STRING, "La nuova password")); |
||||
} |
||||
}; |
||||
|
||||
public SetPassword(String description, String... methods) { |
||||
super(description, methods); |
||||
} |
||||
|
||||
@Override |
||||
public void run(HttpServletRequest request, HttpServletResponse response) throws Exception { |
||||
|
||||
if (verifyAccessToken(request, response)) { |
||||
List<String> additionalInfo = new ArrayList<>(); |
||||
if (!parameters.containsKey(Parameters.PASSWORD)) { |
||||
additionalInfo.add("Parametro " + Parameters.PASSWORD + " mancante"); |
||||
Response.write(response, Status.MALFORMED_REQUEST, additionalInfo); |
||||
return; |
||||
} |
||||
String password = (String) parameters.get(Parameters.PASSWORD); |
||||
if (checkPassword(response, password)) { |
||||
sportello.setEncryptedPassword(password); |
||||
SportelloLocalServiceUtil.updateSportello(sportello); |
||||
Response.write(response, Status.OK); |
||||
} |
||||
} |
||||
} |
||||
|
||||
private boolean checkPassword(HttpServletResponse response, String password) throws IOException { |
||||
|
||||
final int MIN_LENGTH = ApiUtil.isDebug() ? 1 : 8; |
||||
final boolean SPECIAL = !ApiUtil.isDebug(); |
||||
final boolean DIGIT = !ApiUtil.isDebug(); |
||||
final boolean UPPERCASE = !ApiUtil.isDebug(); |
||||
final boolean LOWERCASE = !ApiUtil.isDebug(); |
||||
if ((null != password) && (password.length() >= MIN_LENGTH)) { |
||||
boolean special = SPECIAL; |
||||
boolean digit = DIGIT; |
||||
boolean uppercase = UPPERCASE; |
||||
boolean lowercase = LOWERCASE; |
||||
for (int i = 0; i < password.length(); i++) { |
||||
char c = password.charAt(i); |
||||
if (Character.isDigit(c)) { |
||||
digit = false; |
||||
} else if (Character.isUpperCase(c)) { |
||||
uppercase = false; |
||||
} else if (Character.isLowerCase(c)) { |
||||
lowercase = false; |
||||
} else { |
||||
special = false; |
||||
} |
||||
} |
||||
if (!(special || digit || uppercase || lowercase)) { |
||||
return true; |
||||
} |
||||
} |
||||
StringBuilder sb = new StringBuilder(); |
||||
sb.append("La password deve avere una lunghezza minima di ").append(MIN_LENGTH).append(" caratteri"); |
||||
if (SPECIAL || DIGIT || UPPERCASE || LOWERCASE) { |
||||
sb.append(" e deve contenere almeno "); |
||||
if (UPPERCASE) { |
||||
sb.append("una lettera maiuscola, "); |
||||
} |
||||
if (LOWERCASE) { |
||||
sb.append("una lettera minuscola, "); |
||||
} |
||||
if (DIGIT) { |
||||
sb.append("un numero, "); |
||||
} |
||||
if (SPECIAL) { |
||||
sb.append("un carattere speciale, "); |
||||
} |
||||
sb.setLength(sb.length() - 2); |
||||
} |
||||
List<String> additionalInfo = new ArrayList<>(); |
||||
additionalInfo.add(sb.toString()); |
||||
Response.write(response, Status.INVALID_INPUT, additionalInfo); |
||||
return false; |
||||
} |
||||
|
||||
@Override |
||||
public List<Parameter> getInputParameters() { |
||||
return INPUT_PARAMETERS; |
||||
} |
||||
|
||||
@Override |
||||
public List<Parameter> getOutputParameters() { |
||||
return BASE_OUTPUT_PARAMETERS; |
||||
} |
||||
|
||||
} |
Caricamento…
Reference in new issue