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"?> |
<?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"> |
<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> |
</web-app> |
@ -1,14 +1,12 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8"?> |
<?xml version="1.0" encoding="UTF-8"?> |
||||||
<web-app id="WebApp_ID" version="2.5" |
<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" |
||||||
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"> |
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> |
||||||
<servlet> |
<servlet> |
||||||
<servlet-name>SorgentiServlet</servlet-name> |
<servlet-name>SorgentiServlet</servlet-name> |
||||||
<servlet-class>it.mwg.sismica.fe.servlet.SorgentiServlet</servlet-class> |
<servlet-class>it.mwg.sismica.fe.servlet.SorgentiServlet</servlet-class> |
||||||
</servlet> |
</servlet> |
||||||
|
|
||||||
<servlet-mapping> |
<servlet-mapping> |
||||||
<servlet-name>SorgentiServlet</servlet-name> |
<servlet-name>SorgentiServlet</servlet-name> |
||||||
<url-pattern>/sorgenti-sismica/*</url-pattern> |
<url-pattern>/sorgenti-paesaggistica/*</url-pattern> |
||||||
</servlet-mapping> |
</servlet-mapping> |
||||||
</web-app> |
</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