crm
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
2025-06-18 17:21:49 +02:00
parent 9d7f95a3c6
commit d428ab467b
3 changed files with 73 additions and 52 deletions

View File

@@ -1,6 +1,8 @@
package it.integry.ems.order.crm.dto; package it.integry.ems.order.crm.dto;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List;
public class CRMActivityDTO { public class CRMActivityDTO {
@@ -25,6 +27,8 @@ public class CRMActivityDTO {
private Date effectiveTime; private Date effectiveTime;
private Date effectiveEndtime; private Date effectiveEndtime;
private List<String> userNameList;
public String getActivityId() { public String getActivityId() {
return activityId; return activityId;
} }
@@ -124,6 +128,15 @@ public class CRMActivityDTO {
return this; return this;
} }
public List<String> getUserNameList() {
return userNameList;
}
public CRMActivityDTO setUserNameList(List<String> userNameList) {
this.userNameList = userNameList;
return this;
}
public String getUserCreator() { public String getUserCreator() {
return userCreator; return userCreator;
} }

View File

@@ -18,6 +18,7 @@ import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.user.service.UserService; import it.integry.ems.user.service.UserService;
import it.integry.ems.utility.UtilityEntity; import it.integry.ems.utility.UtilityEntity;
import it.integry.ems.utility.UtilityFile; import it.integry.ems.utility.UtilityFile;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.entity.*; import it.integry.ems_model.entity.*;
import it.integry.ems_model.service.SetupGest; import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.types.OperationType; import it.integry.ems_model.types.OperationType;
@@ -31,6 +32,7 @@ import org.springframework.stereotype.Service;
import java.io.File; import java.io.File;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@@ -178,75 +180,81 @@ public class CrmService {
return response; return response;
} }
public StbActivity saveActivity(CRMActivityDTO activity) throws Exception { public List<StbActivity> saveActivity(CRMActivityDTO activity) throws Exception {
Connection conn = multiDBTransactionManager.getPrimaryConnection(); Connection conn = multiDBTransactionManager.getPrimaryConnection();
String codJcomInterno = setupGest.getSetup(conn, "PVM", "CONTATTI_COMMESSE", "CODJCOM_INTERNO"); String codJcomInterno = setupGest.getSetup(conn, "PVM", "CONTATTI_COMMESSE", "CODJCOM_INTERNO");
if (activity != null) { if (activity != null) {
StbActivity stbActivity; List<StbActivity> entityList = new ArrayList<>();
for ( String userName:activity.getUserNameList()) {
StbActivity stbActivity;
activity.setUserName(userName);
if (UtilityString.isNullOrEmpty(activity.getActivityId())) { if (UtilityString.isNullOrEmpty(activity.getActivityId())) {
if (activity.getParentActivityId() != null) { if (activity.getParentActivityId() != null) {
String sql = Query.format( String sql = Query.format(
"SELECT tipo_anag, cod_anag\n" + "SELECT tipo_anag, cod_anag\n" +
"FROM jtb_comt\n" + "FROM jtb_comt\n" +
"WHERE cod_jcom = %s", "WHERE cod_jcom = %s",
activity.getCodJcom() activity.getCodJcom()
); );
HashMap<String, Object> result = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql); HashMap<String, Object> result = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
if (result == null) throw new Exception("Commessa non valida"); if (result == null) throw new Exception("Commessa non valida");
if (activity.getUserName().equalsIgnoreCase(requestDataDTO.getUsername())) if (userName.equalsIgnoreCase(requestDataDTO.getUsername()))
activity.setOraViewAct(new Date()); activity.setOraViewAct(new Date());
activity.setTipoAnag((String) result.get("tipo_anag")) activity.setTipoAnag((String) result.get("tipo_anag"))
.setCodAnag((String) result.get("cod_anag")) .setCodAnag((String) result.get("cod_anag"))
.setFlagTipologia("A"); .setFlagTipologia("A");
stbActivity = createNewActivity(activity, null); stbActivity = createNewActivity(activity, null);
} else if (activity.getCodJcom().equals(codJcomInterno)) { } else if (activity.getCodJcom().equals(codJcomInterno)) {
activity.setFlagTipologia("A"); activity.setFlagTipologia("A");
if (activity.getUserName().equalsIgnoreCase(requestDataDTO.getUsername())) if (userName.equalsIgnoreCase(requestDataDTO.getUsername()))
activity.setOraViewAct(new Date()); activity.setOraViewAct(new Date());
stbActivity = createNewActivity(activity, null); stbActivity = createNewActivity(activity, null);
} else {
throw new Exception("Processo non valido");
}
} else { } else {
throw new Exception("Processo non valido"); stbActivity = CRMUtility.buildStbActivity(activity);
} stbActivity.setOperation(OperationType.UPDATE);
} else { stbActivity.setActivityId(activity.getActivityId());
stbActivity = CRMUtility.buildStbActivity(activity);
stbActivity.setOperation(OperationType.UPDATE);
stbActivity.setActivityId(activity.getActivityId());
if (activity.getUserName().equalsIgnoreCase(requestDataDTO.getUsername())) { if (userName.equalsIgnoreCase(requestDataDTO.getUsername())) {
String sql = Query.format( String sql = Query.format(
"SELECT ora_view_act\n" + "SELECT ora_view_act\n" +
"FROM stb_activity\n" + "FROM stb_activity\n" +
"WHERE activity_id = %s", "WHERE activity_id = %s",
activity.getActivityId() activity.getActivityId()
); );
Object oraViewAct = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql); Object oraViewAct = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
if (oraViewAct == null) { if (oraViewAct == null) {
stbActivity.setOraViewAct(new Date()); stbActivity.setOraViewAct(new Date());
}
} }
} }
boolean flag_creaRapportino = activity.getActivityResultId() != null &&
(activity.getEffectiveTime() != null || !activity.getEffectiveTime().equals(DATE_NULL)) &&
(activity.getEffectiveEndtime() != null || !activity.getEffectiveEndtime().equals(DATE_NULL));
if (flag_creaRapportino) {
stbActivity.setOreRapportino(UtilityDate.timeDiff(activity.getEffectiveEndtime(), activity.getEffectiveTime()));
}
entityList.add(stbActivity);
} }
List<EntityBase> entityRet = entityProcessor.processEntityList(entityList, multiDBTransactionManager, true);
UtilityEntity.throwEntitiesException(entityRet);
entityRet.stream().forEach(x->x.setOperation(OperationType.SELECT_OBJECT));
boolean flag_creaRapportino = activity.getActivityResultId() != null && return UtilityEntity.toCustomEntity(entityRet);
(activity.getEffectiveTime() != null || !activity.getEffectiveTime().equals(DATE_NULL)) &&
(activity.getEffectiveEndtime() != null || !activity.getEffectiveEndtime().equals(DATE_NULL));
if (flag_creaRapportino) {
stbActivity.setOreRapportino(UtilityDate.timeDiff(activity.getEffectiveEndtime(), activity.getEffectiveTime()));
}
entityProcessor.processEntity(stbActivity, multiDBTransactionManager);
stbActivity.setOperation(OperationType.SELECT_OBJECT);
return stbActivity;
} }
throw new Exception("Lista attivita vuota"); throw new Exception("Lista attivita vuota");

View File

@@ -193,7 +193,7 @@ public class CRMUtility {
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql); return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
} }
public static StbActivity buildStbActivity(CRMActivityDTO activityRequest) { public static StbActivity buildStbActivity(CRMActivityDTO activityRequest ) {
return new StbActivity() return new StbActivity()
.setTipoAnag(activityRequest.getTipoAnag()) .setTipoAnag(activityRequest.getTipoAnag())
.setCodAnag(activityRequest.getCodAnag()) .setCodAnag(activityRequest.getCodAnag())