aggiunto inserimento attività per la trasferta
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
2025-05-30 13:34:41 +02:00
parent d5af8cae77
commit 850c9465e3
2 changed files with 46 additions and 6 deletions

View File

@@ -12,6 +12,7 @@ public class UserAbsenceRequestDTO {
private String note;
private String fullname;
private BigDecimal oreAssenza;
private String codJcom;
public String getCodJflav() {
return codJflav;
@@ -75,4 +76,13 @@ public class UserAbsenceRequestDTO {
this.oreAssenza = oreAssenza;
return this;
}
public String getCodJcom() {
return codJcom;
}
public UserAbsenceRequestDTO setCodJcom(String codJcom) {
this.codJcom = codJcom;
return this;
}
}

View File

@@ -11,8 +11,10 @@ import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.user.service.UserService;
import it.integry.ems.utility.UtilityDebug;
import it.integry.ems.utility.UtilityEntity;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.entity.JtbGiustifica;
import it.integry.ems_model.entity.JtbRLavt;
import it.integry.ems_model.entity.StbActivity;
import it.integry.ems_model.exception.DataConverterNotFoundException;
import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.types.OperationType;
@@ -83,7 +85,7 @@ public class UserAbsenceService {
public void registerAbsence(List<UserAbsenceRequestDTO> assenzeList) throws Exception {
boolean sendEmail = sendEmail();
List<JtbRLavt> jtbRLavtList = new ArrayList<>();
List<EntityBase> entityList = new ArrayList<>();
for (UserAbsenceRequestDTO assenzaItem : assenzeList) {
@@ -109,18 +111,46 @@ public class UserAbsenceService {
JtbRLavt jtbRLavt = new JtbRLavt()
.setGiustificativo(assenzaItem.getGiustificativo())
.setDataLav(UtilityLocalDate.localDateToDate(currentDate))
.setCodJflav(codJflav).
setOreAssenza(assenzaItem.getOreAssenza())
.setCodJflav(codJflav)
.setOreAssenza(assenzaItem.getOreAssenza())
.setNote(assenzaItem.getNote());
jtbRLavt
.setOperation(OperationType.INSERT_OR_UPDATE);
jtbRLavtList.add(jtbRLavt);
entityList.add(jtbRLavt);
if (assenzaItem.getCodJcom() != null) {
String sql = Query.format(
"SELECT parent_activity_id\n" +
"FROM stb_activity\n" +
" INNER JOIN (SELECT activity_type_id, flag_tipologia\n" +
" FROM srl_activity_type\n" +
" WHERE activity_type_id_next = %s\n" +
" AND flag_tipologia_next = 'A') s ON stb_activity.flag_tipologia = s.flag_tipologia\n" +
" AND stb_activity.activity_type_id = s.activity_type_id\n" +
" AND cod_jcom = %s",
assenzaItem.getGiustificativo(),
assenzaItem.getCodJcom()
);
String parentActivityId = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
if (parentActivityId != null) {
StbActivity stbActivity = new StbActivity()
.setCodJcom(assenzaItem.getCodJcom())
.setUserName(requestDataDTO.getUsername())
.setParentActivityId(parentActivityId)
.setActivityDescription(assenzaItem.getGiustificativo())
.setActivityTypeId(assenzaItem.getGiustificativo())
.setFlagTipologia("A")
.setEstimatedDate(UtilityLocalDate.localDateToDate(currentDate))
.setEstimatedEnddate(UtilityLocalDate.localDateToDate(currentDate));
stbActivity.setOperation(OperationType.INSERT);
}
}
}
if (jtbRLavtList.isEmpty()) return;
if (entityList.isEmpty()) return;
UtilityEntity.throwEntitiesException(entityProcessor.processEntityList(jtbRLavtList, multiDBTransactionManager, true));
UtilityEntity.throwEntitiesException(entityProcessor.processEntityList(entityList, multiDBTransactionManager, true));
if (sendEmail) {
String startDate = CommonConstants.DATE_DMY_SLASHED_FORMATTER.format(assenzaItem.getDataInizio());