Sistemato getActivity per i clienti
This commit is contained in:
@@ -148,6 +148,8 @@ public class ActivityDTO {
|
||||
@SqlField(value = "flag_risolto")
|
||||
private String flagRisolto;
|
||||
|
||||
private String emailRichiedente;
|
||||
|
||||
|
||||
public StbActivity getStbActivity() {
|
||||
return stbActivity;
|
||||
@@ -614,6 +616,15 @@ public class ActivityDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getEmailRichiedente() {
|
||||
return emailRichiedente;
|
||||
}
|
||||
|
||||
public ActivityDTO setEmailRichiedente(String emailRichiedente) {
|
||||
this.emailRichiedente = emailRichiedente;
|
||||
return this;
|
||||
}
|
||||
|
||||
public static class WorkedHours {
|
||||
@SqlField("parent_activity_id")
|
||||
private String parentActivityId;
|
||||
|
||||
@@ -524,7 +524,7 @@ public class ActivityService {
|
||||
//Date startDate = UtilityDate.getWeekStartDate(planActivityDTO.getData());
|
||||
|
||||
if ("S".equalsIgnoreCase(planActivityDTO.getCreaAttivita())) {
|
||||
boolean modifyUser = planActivityDTO.getUsers().size() > 0 ;
|
||||
boolean modifyUser = planActivityDTO.getUsers().size() > 0;
|
||||
if (modifyUser) parentStbActivity.setUserName(planActivityDTO.getUsers().get(0).getUsername());
|
||||
for (PlanActivityDTO.User user : planActivityDTO.getUsers()) {
|
||||
for (PlanActivityDTO.Agenda agenda : planActivityDTO.getAgenda()) {
|
||||
@@ -767,16 +767,19 @@ public class ActivityService {
|
||||
public List<ActivityDTO> getActivity(boolean isTable, boolean daInstallare, String activityId) throws Exception {
|
||||
String username = requestDataDTO.getUsername();
|
||||
|
||||
String sql = Query.format( "SELECT case when key_group = 3 THEN IsNull(user_name_rif, user_name) ELSE user_name END, CAST( case when key_group = 3 and user_name_rif is not null THEN 1 ELSE 0 END as BIT) as isCliente FROM stb_user WHERE user_name = %s" , username);
|
||||
String sql = Query.format("SELECT case when key_group = 3 THEN IsNull(user_name_rif, user_name) ELSE user_name END AS user_name, \n" +
|
||||
"CAST( case when key_group = 3 THEN 1 ELSE 0 END as BIT) as isCliente,\n" +
|
||||
"CAST( case when key_group = 3 and user_name_rif is not null THEN 1 ELSE 0 END as BIT) as isPersonaRif FROM stb_user WHERE user_name = %s", username);
|
||||
|
||||
HashMap<String, Object> datiUtente = UtilityDB.executeSimpleQueryOnlyFirstRow(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
boolean isPersonaRif = false;
|
||||
boolean isCliente = false;
|
||||
if ( !datiUtente.isEmpty()) {
|
||||
if (!datiUtente.isEmpty()) {
|
||||
username = UtilityHashMap.getValueIfExists(datiUtente, "user_name");
|
||||
isCliente = UtilityHashMap.getValueIfExists(datiUtente, "isCliente");
|
||||
isPersonaRif = UtilityHashMap.getValueIfExists(datiUtente, "isPersonaRif");
|
||||
}
|
||||
|
||||
|
||||
sql = "WITH escludi_commesse AS (SELECT value_string cod_jcom\n" +
|
||||
" FROM dbo.parsestringintoarray((SELECT value\n" +
|
||||
" FROM stb_gest_setup\n" +
|
||||
@@ -960,25 +963,27 @@ public class ActivityService {
|
||||
" LEFT OUTER JOIN sottoattivita ON processi.activity_id = sottoattivita.parent_activity_id\n";
|
||||
|
||||
if (!isTable) {
|
||||
sql += " where processi.effective_endtime IS NULL AND processi.tipo_attivita <> 'AGGIORNAMENTI SOFTWARE' ";
|
||||
sql += " WHERE processi.effective_endtime IS NULL " +
|
||||
" AND processi.tipo_attivita <> 'AGGIORNAMENTI SOFTWARE'";
|
||||
|
||||
if (daInstallare) {
|
||||
sql += " AND esito = 'DA INSTALLARE' AND cod_jcom not like 'INTEGRY%'";
|
||||
}
|
||||
} else if (activityId != null) {
|
||||
sql += " where processi.activity_id = " + UtilityDB.valueToString(activityId);
|
||||
}
|
||||
sql += " WHERE processi.activity_id = " + UtilityDB.valueToString(activityId);
|
||||
} else if (isCliente) {
|
||||
sql += " WHERE esito NOT IN ('ANNULLATA', 'SOSPESA')";
|
||||
|
||||
if ( isCliente ) {
|
||||
String whereCondPersRif =
|
||||
Query.format("EXISTS( SELECT *\n" +
|
||||
" from stb_user s inner join vtb_clie_pers_rif on s.e_mail = vtb_clie_pers_rif.e_mail\n" +
|
||||
" where S.USER_NAME = %s and vtb_clie_pers_rif.persona_rif = processi.richiedente )",
|
||||
username);
|
||||
sql = UtilityDB.addwhereCond(sql, whereCondPersRif, true);
|
||||
if (isPersonaRif) {
|
||||
String whereCondPersRif =
|
||||
Query.format(" AND EXISTS( SELECT *\n" +
|
||||
" from stb_user s inner join vtb_clie_pers_rif on s.e_mail = vtb_clie_pers_rif.e_mail\n" +
|
||||
" where S.USER_NAME = %s and vtb_clie_pers_rif.persona_rif = processi.richiedente )",
|
||||
requestDataDTO.getUsername());
|
||||
sql += whereCondPersRif;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
List<ActivityDTO> activityDTOS = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, ActivityDTO.class);
|
||||
List<String> elencoId = Stream.of(activityDTOS).map(ActivityDTO::getIdAttivita).toList();
|
||||
|
||||
@@ -988,9 +993,6 @@ public class ActivityService {
|
||||
"where stb_activity.parent_activity_id in (" + UtilityDB.listValueToString(elencoId) + ")\n" +
|
||||
"group by parent_activity_id, stb_activity.user_name, full_name";
|
||||
|
||||
// if (!isTable)
|
||||
// sql = UtilityDB.addwhereCond(sql, "not exists (select * from stb_activity_result where flag_stato_attivita = 4 and stb_activity_result.activity_result_id = stb_activity.activity_result_id )", true);
|
||||
|
||||
List<ActivityDTO.WorkedHours> activityResponseDtoWorkedHours = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, ActivityDTO.WorkedHours.class);
|
||||
|
||||
if (activityResponseDtoWorkedHours != null) {
|
||||
@@ -1137,6 +1139,38 @@ public class ActivityService {
|
||||
}
|
||||
|
||||
public void insertOrUpdateActivity(ActivityDTO activity) throws Exception {
|
||||
String codAnagPersRif, codAnag;
|
||||
if (!UtilityString.isNullOrEmpty(activity.getEmailRichiedente())) {
|
||||
String query = "SELECT vtb_clie_pers_rif.cod_anag FROM vtb_clie_pers_rif, vtb_clie "
|
||||
+ "WHERE vtb_clie_pers_rif.cod_anag = vtb_clie.cod_anag AND "
|
||||
+ "vtb_clie.flag_stato = 'A' AND vtb_clie_pers_rif.e_mail = "
|
||||
+ UtilityDB.valueToString(activity.getEmailRichiedente());
|
||||
|
||||
codAnagPersRif = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), query);
|
||||
|
||||
if (UtilityString.isNullOrEmpty(codAnagPersRif)) {
|
||||
query = "SELECT cod_anag FROM jtb_comt WHERE cod_jcom = "
|
||||
+ UtilityDB.valueToString(activity.getCommessa());
|
||||
|
||||
codAnag = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), query);
|
||||
|
||||
String domainIntegry = "integry.it";
|
||||
if (!UtilityString.isNullOrEmpty(codAnag) && !activity.getEmailRichiedente().toUpperCase().contains(domainIntegry.toUpperCase())) {
|
||||
GtbAnag gtbAnag = new GtbAnag()
|
||||
.setCodAnag(codAnag);
|
||||
|
||||
VtbCliePersRif persRif = new VtbCliePersRif()
|
||||
.setCodAnag(codAnag)
|
||||
.setPersonaRif(activity.getRichiedente())
|
||||
.seteMail(activity.getEmailRichiedente());
|
||||
persRif.setOperation(OperationType.INSERT);
|
||||
|
||||
gtbAnag.getVtbCliePersRif().add(persRif);
|
||||
entityProcessor.processEntity(gtbAnag, multiDBTransactionManager);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StbActivity stbActivity = new StbActivity();
|
||||
stbActivity.setOperation(OperationType.INSERT_OR_UPDATE);
|
||||
|
||||
@@ -1149,6 +1183,7 @@ public class ActivityService {
|
||||
.setPersonaRif(activity.getRichiedente())
|
||||
.setUserName(activity.getUserName())
|
||||
.setEffectiveEndtime(activity.getDataFineEffettiva())
|
||||
.setEffectiveEnddate(activity.getDataFineEffettiva())
|
||||
.setEstimatedTime(activity.getDataInizioPrev())
|
||||
.setEstimatedEndtime(activity.getDataFinePrev())
|
||||
.setPriorita(activity.getPriorita())
|
||||
|
||||
Reference in New Issue
Block a user