modificato date con LocalDate
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
2025-08-26 13:15:45 +02:00
parent 87461ce43a
commit 1111093b38
9 changed files with 55 additions and 44 deletions

View File

@@ -39,13 +39,8 @@ public class UtilityDate {
public static Date prossimoGiornoSettimana(Date dataInizio, int giornoSettimana) {
// Conversione da Date a LocalDate
LocalDate localDate = dataInizio.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
// Conversione a DayOfWeek (Java usa 1 = lunedì, 7 = domenica)
DayOfWeek targetDay = DayOfWeek.of(giornoSettimana % 7 + 1);
// Trova la prossima data con quel giorno della settimana
LocalDate prossimaData = localDate.with(TemporalAdjusters.next(targetDay));
LocalDate prossimaData = UtilityLocalDate.prossimoGiornoSettimana(localDate, giornoSettimana);
// Riconversione da LocalDate a Date
return Date.from(prossimaData.atStartOfDay(ZoneId.systemDefault()).toInstant());
}

View File

@@ -3,6 +3,7 @@ package it.integry.ems_model.utility;
import javax.annotation.Nullable;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
import java.util.Date;
import java.util.concurrent.TimeUnit;
@@ -210,4 +211,15 @@ public class UtilityLocalDate {
}
return nextDate;
}
public static LocalDate prossimoGiornoSettimana(LocalDate dataInizio, int giornoSettimana) {
// Conversione a DayOfWeek (Java usa 1 = lunedì, 7 = domenica)
DayOfWeek targetDay = DayOfWeek.of(giornoSettimana % 7 + 1);
// Trova la prossima data con quel giorno della settimana
LocalDate prossimaData = dataInizio.with(TemporalAdjusters.next(targetDay));
// Riconversione da LocalDate a Date
return prossimaData;
}
}

View File

@@ -566,7 +566,7 @@ public class ListiniVenditaServices {
VariazioniPvInputDTO variazioniPvDTO = new VariazioniPvInputDTO();
variazioniPvDTO.setTipoReportEnum(VariazioniReportType.PROMOZIONI);
variazioniPvDTO.setCodVlis(codVlis);
variazioniPvDTO.setDataValidita(UtilityLocalDate.localDateToDate(dataValidita));
variazioniPvDTO.setDataValidita(dataValidita);
variazioniPvDTO.setWhereCondArt("mtb_aart.cod_mart IN ('" + StringUtils.join(listaArticoli, "','") + "')");
variazioniPvDTO.setUserName(requestDataDTO.getUsername());

View File

@@ -2,12 +2,13 @@ package it.integry.ems.retail.ReportVariazioni.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.time.LocalDate;
import java.util.Date;
import java.util.Objects;
public class VariazioniDTO {
@JsonProperty("data_variazione")
private Date dataVariazione;
private LocalDate dataVariazione;
@JsonProperty("cod_vlis")
private String codVlis;
@JsonProperty("descrizione")
@@ -19,11 +20,11 @@ public class VariazioniDTO {
@JsonProperty("elenco_casse")
private String elencoCasse;
public Date getDataVariazione() {
public LocalDate getDataVariazione() {
return dataVariazione;
}
public VariazioniDTO setDataVariazione(Date dataVariazione) {
public VariazioniDTO setDataVariazione(LocalDate dataVariazione) {
this.dataVariazione = dataVariazione;
return this;
}

View File

@@ -4,11 +4,12 @@ package it.integry.ems.retail.ReportVariazioni.dto;
import it.integry.ems_model.annotation.MapToTable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
public class VariazioniDettaglioDTO {
@MapToTable("data_variazione")
private Date dataVariazione;
private LocalDate dataVariazione;
@MapToTable("cod_vlis")
private String codVlis;
@MapToTable("descrizione")
@@ -158,11 +159,11 @@ public class VariazioniDettaglioDTO {
@MapToTable (value = "partita_mag")
private String partitaMag;
public Date getDataVariazione() {
public LocalDate getDataVariazione() {
return dataVariazione;
}
public VariazioniDettaglioDTO setDataVariazione(Date dataVariazione) {
public VariazioniDettaglioDTO setDataVariazione(LocalDate dataVariazione) {
this.dataVariazione = dataVariazione;
return this;
}

View File

@@ -1,12 +1,14 @@
package it.integry.ems.retail.ReportVariazioni.dto;
import it.integry.ems_model.utility.UtilityDate;
import it.integry.ems_model.utility.UtilityLocalDate;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;
public class VariazioniPvInputDTO {
private Date dataValidita;
private LocalDate dataValidita;
private String codVlis;
private String whereCondArt;
private String whereCondLisv;
@@ -20,20 +22,21 @@ public class VariazioniPvInputDTO {
private String giornoVariazione;
private List<VariazioniDettaglioDTO> variazioni;
public Date getDataValidita() {
public LocalDate getDataValidita() {
if (dataValidita == null){
LocalDate today = UtilityLocalDate.getNow();
if (getGiornoVariazione() != null) {
Date dataValiditaCalc = UtilityDate.prossimoGiornoSettimana(new Date(),
LocalDate dataValiditaCalc = UtilityLocalDate.prossimoGiornoSettimana(today,
VariazioniReportGiornoSettimana.fromString(getGiornoVariazione()));
setDataValidita(dataValiditaCalc);
} else {
setDataValidita( UtilityDate.RelativeDateTime(new Date(), 1));
setDataValidita( today.plusDays(1));
}
}
return dataValidita;
}
public VariazioniPvInputDTO setDataValidita(Date dataValidita) {
public VariazioniPvInputDTO setDataValidita(LocalDate dataValidita) {
this.dataValidita = dataValidita;
return this;
}

View File

@@ -192,7 +192,7 @@ public class VariazioniPvService {
}
listinoDTO.setDescrizione(datiLisv.getDescrizione());
listinoDTO.setFlagListIvaInclusa(datiLisv.getFlagListIvaInclusa());
listinoDTO.setDataVariazione(new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(variazioniPvInputDTO.getDataValidita()));
listinoDTO.setDataVariazione(UtilityLocalDate.formatDate(variazioniPvInputDTO.getDataValidita(), CommonConstants.DATE_FORMAT_DMY));
listinoDTO.setCodMdep(codMdep);
listinoDTO.getContent().add(objectFactory.createCodVlisTypeElencoCasse(elencoCasse));
fileVariazioniDTO.getCodVlis().add(listinoDTO);
@@ -647,7 +647,7 @@ public class VariazioniPvService {
"ORDER BY listino.cod_mart ";
query = query
.replace("'[DATA_VARIAZIONE]'", UtilityDB.valueDateToString(variazioniPvDTO.getDataValidita(), CommonConstants.DATE_FORMAT_YMD))
.replace("'[DATA_VARIAZIONE]'", UtilityDB.valueToString(variazioniPvDTO.getDataValidita()))
.replace("'[COD_VLIS]'", UtilityDB.valueToString(codVlis))
.replace("'[CLASSIFICAZIONE_MERCEOLOGICA]'", UtilityDB.valueToString(setup.get("CLASSIFICAZIONE_MERCEOLOGICA")))
.replace("'[INVIA_DESC_CASSA]'", UtilityDB.valueToString(setup.get("INVIA_DESC_CASSA")))
@@ -769,7 +769,7 @@ public class VariazioniPvService {
queryAssortimento =
queryAssortimento
.replace("'[COD_VLIS]'", UtilityDB.valueToString(codVlis))
.replace("'[DATA_VALIDITA]'", UtilityDB.valueDateToString(variazioniPvDTO.getDataValidita(), CommonConstants.DATE_FORMAT_YMD));
.replace("'[DATA_VALIDITA]'", UtilityDB.valueToString(variazioniPvDTO.getDataValidita()));
break;
case GRIGLIA:
queryAssortimento =
@@ -786,7 +786,7 @@ public class VariazioniPvService {
queryAssortimento =
queryAssortimento
.replace("'[COD_VLIS]'", UtilityDB.valueToString(codVlis))
.replace("'[DATA_VALIDITA]'", UtilityDB.valueDateToString(variazioniPvDTO.getDataValidita(), CommonConstants.DATE_FORMAT_YMD));
.replace("'[DATA_VALIDITA]'", UtilityDB.valueToString(variazioniPvDTO.getDataValidita()));
break;
case PROMOZIONI:
String filtroPromoOrto = setup.get("FILTRO_ART_ORTOFRUTTA");
@@ -817,7 +817,7 @@ public class VariazioniPvService {
queryAssortimento =
queryAssortimento
.replace("'[COD_VLIS]'", UtilityDB.valueToString(codVlis))
.replace("'[DATA_VALIDITA]'", UtilityDB.valueDateToString(variazioniPvDTO.getDataValidita(), CommonConstants.DATE_FORMAT_YMD));
.replace("'[DATA_VALIDITA]'", UtilityDB.valueToString(variazioniPvDTO.getDataValidita()));
if (!UtilityString.isNullOrEmpty(filtroPromoOrto)) {
String queryArt = " SELECT mtb_aart.cod_mart FROM mtb_aart inner join mvw_barcode on mtb_aart.cod_mart = mvw_barcode.cod_mart ";
queryArt = UtilityDB.addwhereCond(queryArt, filtroPromoOrto, false);
@@ -887,7 +887,7 @@ public class VariazioniPvService {
queryAssortimento =
queryAssortimento
.replace("'[COD_VLIS]'", UtilityDB.valueToString(codVlis))
.replace("'[DATA_VALIDITA]'", UtilityDB.valueDateToString(variazioniPvDTO.getDataValidita(), CommonConstants.DATE_FORMAT_YMD));
.replace("'[DATA_VALIDITA]'", UtilityDB.valueToString(variazioniPvDTO.getDataValidita()));
break;
}
}
@@ -919,14 +919,14 @@ public class VariazioniPvService {
return query;
}
private BigDecimal getPuntiArt(String codMart, Date dataValidita) throws Exception {
private BigDecimal getPuntiArt(String codMart, LocalDate dataValidita) throws Exception {
String query =
"SELECT count_fidelity " +
" FROM vtb_promo, " +
" vtb_promo_articoli " +
" WHERE vtb_promo.cod_promo = vtb_promo_articoli.cod_promo AND " +
UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + " between vtb_promo.data_iniz_sell_in and vtb_promo.data_fine_sell_in AND " +
UtilityDB.valueToString(dataValidita) + " between vtb_promo.data_iniz_sell_in and vtb_promo.data_fine_sell_in AND " +
" vtb_promo_articoli.cod_mart = '" + codMart + "' AND " +
" vtb_promo.flag_tipo_promo = 'F'";
BigDecimal punti = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), query);
@@ -934,7 +934,7 @@ public class VariazioniPvService {
return punti;
}
private FlagMxnType getScontoMerce(ObjectFactory objectFactory, String codMart, Date dataValidita, HashMap<String, Object> datipromo) throws Exception {
private FlagMxnType getScontoMerce(ObjectFactory objectFactory, String codMart, LocalDate dataValidita, HashMap<String, Object> datipromo) throws Exception {
FlagMxnType flagMxnType = objectFactory.createFlagMxnType();
String query =
"SELECT qta_vend," +
@@ -947,8 +947,8 @@ public class VariazioniPvService {
" mtb_lisv_data, " +
" vtb_list_data " +
" WHERE vtb_promo.cod_promo = vtb_list_data.cod_promo AND " +
"( " + UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + " between vtb_list_data.data_iniz and vtb_list_data.data_fine OR " +
"DateAdd(day, -1, " + UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + ") = vtb_list_data.data_fine ) AND " +
"( " + UtilityDB.valueToString(dataValidita) + " between vtb_list_data.data_iniz and vtb_list_data.data_fine OR " +
"DateAdd(day, -1, " + UtilityDB.valueToString(dataValidita) + ") = vtb_list_data.data_fine ) AND " +
" mtb_lisv_data.cod_mart = " + UtilityDB.valueToString(codMart) + " AND " +
" vtb_list_data.cod_vlis = mtb_lisv_data.cod_vlis AND " +
" vtb_list_data.versione = mtb_lisv_data.versione AND " +
@@ -973,7 +973,7 @@ public class VariazioniPvService {
return flagMxnType;
}
private IngredientiType getIngredienti(ObjectFactory objectFactory, String codMart, Date dataVariazioni,
private IngredientiType getIngredienti(ObjectFactory objectFactory, String codMart, LocalDate dataVariazioni,
VariazioniReportType tipoReport, String tipoVariazioneLisv, String invioIngOpz,
String ingredientiArt) throws Exception {
IngredientiType ingredientiType = objectFactory.createIngredientiType();
@@ -992,7 +992,7 @@ public class VariazioniPvService {
if (tipoReport.compareTo(VariazioniReportType.LISTINO) != 0 &&
tipoReport.compareTo(VariazioniReportType.TRACCIABILITA) != 0 &&
!"I".equalsIgnoreCase(tipoVariazioneLisv)) {
whereCond = "jtb_cicl.data_ult_var = " + UtilityDB.valueDateToString(dataVariazioni, CommonConstants.DATE_FORMAT_YMD);
whereCond = "jtb_cicl.data_ult_var = " + UtilityDB.valueToString(dataVariazioni);
query = UtilityDB.addwhereCond(query, whereCond, false);
}
}
@@ -1060,14 +1060,14 @@ public class VariazioniPvService {
return componentiType;
}
private PremioType getPuntiPremi(ObjectFactory objectFactory, String codMart, Date dataValidita) throws Exception {
private PremioType getPuntiPremi(ObjectFactory objectFactory, String codMart, LocalDate dataValidita) throws Exception {
String query =
"SELECT count_fidelity," +
" amount_fidelity " +
" FROM vtb_promo, " +
" vtb_promo_articoli " +
" WHERE vtb_promo.cod_promo = vtb_promo_articoli.cod_promo AND " +
UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + " between vtb_promo.data_iniz_sell_in and vtb_promo.data_fine_sell_in AND " +
UtilityDB.valueToString(dataValidita) + " between vtb_promo.data_iniz_sell_in and vtb_promo.data_fine_sell_in AND " +
" vtb_promo_articoli.cod_mart = " + UtilityDB.valueToString(codMart) + " AND " +
" vtb_promo.flag_tipo_promo = 'R'";
PreparedStatement ps = multiDBTransactionManager.prepareStatement(query);
@@ -1110,7 +1110,7 @@ public class VariazioniPvService {
return codiciABarreType;
}
private void getDatiGriglia(ObjectFactory objectFactory, String codMart, String codMdep, Date dataValidita, CodMartType codMartType, boolean getVariazioneGriglia) throws Exception {
private void getDatiGriglia(ObjectFactory objectFactory, String codMart, String codMdep, LocalDate dataValidita, CodMartType codMartType, boolean getVariazioneGriglia) throws Exception {
CodAlisType codAlisType = objectFactory.createCodAlisType();
String tipoAssortimento = "",
tipoVariazioneGriglia = "",
@@ -1158,7 +1158,7 @@ public class VariazioniPvService {
" griglia.cod_alis, " +
" atb_list.descrizione AS descr_list " +
" FROM atb_list\n" +
"INNER JOIN dbo.getGrigliaAcquisto(" + UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + ", NULL, " +
"INNER JOIN dbo.getGrigliaAcquisto(" + UtilityDB.valueToString(dataValidita) + ", NULL, " +
UtilityDB.valueToString(codMdep) + ", NULL, NULL) griglia ON atb_list.cod_alis = griglia.cod_alis\n" +
" WHERE griglia.tipo_variazione <> 'D' AND " +
" griglia.cod_mart IN (" + UtilityDB.listValueToString(kits) + ")\n " +
@@ -1212,14 +1212,14 @@ public class VariazioniPvService {
}
boolean existVariazioni = false;
Date dataValidita = null;
LocalDate dataValidita = null;
if (variazioniPvInputDTO != null) {
existVariazioni = (variazioniPvInputDTO.getVariazioni() != null && !variazioniPvInputDTO.getVariazioni().isEmpty());
dataValidita = variazioniPvInputDTO.getDataValidita();
}
if (dataValidita == null) {
dataValidita = UtilityDate.RelativeDateTime(UtilityDate.getTodayWithoutTime(), 1);
dataValidita = UtilityLocalDate.getNow().plusDays(1);
}
List<VariazioniDTO> listini = getListini(variazioniPvInputDTO, existVariazioni);
@@ -1228,7 +1228,7 @@ public class VariazioniPvService {
for (VariazioniDTO pv : listini) {
for (String report : tipiReport) {
final Date finalDataValidita = dataValidita;
final LocalDate finalDataValidita = dataValidita;
final String finalProfileDb = multiDBTransactionManager.getPrimaryConnection().getProfileName();
calls.add(() -> {
@@ -1239,7 +1239,7 @@ public class VariazioniPvService {
String.format("Variazioni: Export [CodListino: %s, TipoReport: %s, Validità: %s]",
codVlis,
report,
new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(finalDataValidita)));
UtilityLocalDate.formatDate(finalDataValidita, CommonConstants.DATE_FORMAT_DMY)));
return new Triple<>(codVlis, report, exportVariazioni(mdb, codVlis, finalDataValidita, report, variazioniPvInputDTO));
}
@@ -1315,7 +1315,7 @@ public class VariazioniPvService {
}
private List<VariazioniDettaglioDTO> exportVariazioni(MultiDBTransactionManager multiDBTransactionManager, String codVlis, Date dataValidita, String tipoReport, VariazioniPvInputDTO variazioniPvInputDTO) throws Exception {
private List<VariazioniDettaglioDTO> exportVariazioni(MultiDBTransactionManager multiDBTransactionManager, String codVlis, LocalDate dataValidita, String tipoReport, VariazioniPvInputDTO variazioniPvInputDTO) throws Exception {
VariazioniPvInputDTO v =
new VariazioniPvInputDTO()
.setCodVlis(codVlis)

View File

@@ -20,6 +20,7 @@ import it.integry.ems.status.ServiceChecker;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.config.EmsRestConstants;
import it.integry.ems_model.utility.UtilityDate;
import it.integry.ems_model.utility.UtilityLocalDate;
import org.apache.commons.io.FileUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -140,7 +141,7 @@ public class RetailController {
VariazioniPvInputDTO variazioniPvDTO = new VariazioniPvInputDTO();
variazioniPvDTO.setTipoReport(tipoReport);
variazioniPvDTO.setFileXml(inputXML);
variazioniPvDTO.setDataValidita(UtilityDate.RecognizeDate(dataValidita));
variazioniPvDTO.setDataValidita(UtilityLocalDate.localDateFromDate(UtilityDate.RecognizeDate(dataValidita)));
variazioniPvDTO.setUserName(requestDataDTO.getUsername());
JsonNode node = jsonObjectMapper.valueToTree(variazioniPvDTO);

View File

@@ -257,9 +257,7 @@ public class VariazioniPvExportServices {
if (jsonBody != null) {
variazioniPvDTO = jsonObjectMapper.readValue(jsonBody.toString(), VariazioniPvInputDTO.class);
}
if (variazioniPvDTO.getDataValidita() == null) {
variazioniPvDTO.setDataValidita(UtilityDate.RelativeDateTime(new Date(), 1));
}
if (variazioniPvDTO.getTipoReportEnum() == null) {
variazioniPvDTO.setTipoReportEnum(VariazioniReportType.VARIAZIONI);
}