This commit is contained in:
2024-05-14 11:51:39 +02:00
parent f92e35ccc6
commit 66a3d9c140

View File

@@ -38,6 +38,7 @@ import java.sql.ResultSet;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@Service
@Scope("request")
@@ -87,13 +88,13 @@ public class VariazioniPvService {
HashMap<String, String> setup = setupGest.getSetupSection(multiDBTransactionManager.getPrimaryConnection(), gestName, section);
boolean existVariazioni = (variazioniPvDTO.getVariazioni() != null && variazioniPvDTO.getVariazioni().size() > 0 );
boolean existVariazioni = (variazioniPvDTO.getVariazioni() != null && variazioniPvDTO.getVariazioni().size() > 0);
List<VariazioniDTO> listini = getListini(variazioniPvDTO, existVariazioni);
List<VariazioniDettaglioDTO> variazioni = new ArrayList<>();
Date startDate = new Date();
logger.trace(VariazioniPvService.class.getSimpleName() + " - inizio : Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
for(VariazioniDTO datiLisv:listini) {
for (VariazioniDTO datiLisv : listini) {
String codMdep = UtilityString.streNull(datiLisv.getCodMdep());
HashMap<String, String> getSetupSectionDepo = setupGest.getSetupSectionDepo(multiDBTransactionManager.getPrimaryConnection(), gestName, section, codMdep);
@@ -106,12 +107,11 @@ public class VariazioniPvService {
datiLisv.setDataVariazione(variazioniPvDTO.getDataValidita());
List<VariazioniDettaglioDTO> variazioniLisv = null;
if (existVariazioni) {
variazioniLisv =
Stream.of(variazioniPvDTO.getVariazioni())
.filter(x->x.getCodVlis().equalsIgnoreCase(datiLisv.getCodVlis()))
.filter(x -> x.getCodVlis().equalsIgnoreCase(datiLisv.getCodVlis()))
.toList();
} else {
String query = getQueryVariazioni(variazioniPvDTO, setup, datiLisv.getCodVlis(), getSetupSectionDepo.get("SELEZIONA_GRIGLIE"));
@@ -129,7 +129,7 @@ public class VariazioniPvService {
}
logger.trace(VariazioniPvService.class.getSimpleName() + " - getElencoArticoli Listino " + datiLisv.getCodVlis() + ": Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
if (variazioniLisv != null && variazioniLisv.size() > 0 )
if (variazioniLisv != null && variazioniLisv.size() > 0)
variazioni.addAll(variazioniLisv);
}
logger.trace(VariazioniPvService.class.getSimpleName() + " - fine : Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
@@ -145,13 +145,13 @@ public class VariazioniPvService {
String setupDescr = setup.get("DESCRIZIONE_ESTESA");
boolean existVariazioni = (variazioniPvInputDTO.getVariazioni() != null && variazioniPvInputDTO.getVariazioni().size() > 0 );
boolean existVariazioni = (variazioniPvInputDTO.getVariazioni() != null && !variazioniPvInputDTO.getVariazioni().isEmpty());
List<VariazioniDTO> listini = getListini(variazioniPvInputDTO, existVariazioni);
ReportType fileVariazioniDTO = new ReportType();
Date startDate = new Date();
logger.debug(VariazioniPvService.class.getSimpleName() + " - inizio : Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
for(VariazioniDTO datiLisv:listini) {
for (VariazioniDTO datiLisv : listini) {
String codVlis = datiLisv.getCodVlis();
String codMdep = UtilityString.streNull(datiLisv.getCodMdep());
String elencoCasse = getElencoCasse(codMdep);
@@ -179,14 +179,14 @@ public class VariazioniPvService {
if (existVariazioni) {
elencoVar =
Stream.of(variazioniPvInputDTO.getVariazioni())
.filter(x->x.getCodVlis().equalsIgnoreCase(datiLisv.getCodVlis()))
.filter(x -> x.getCodVlis().equalsIgnoreCase(datiLisv.getCodVlis()))
.toList();
} else {
String query = getQueryVariazioni(variazioniPvInputDTO, setup, codVlis, getSetupSectionDepo.get("SELEZIONA_GRIGLIE"));
elencoVar = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), query, VariazioniDettaglioDTO.class);
}
logger.trace(VariazioniPvService.class.getSimpleName() + " - getElencoArticoli Listino " + codVlis + ": Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
if (elencoVar != null ) {
if (elencoVar != null) {
boolean getVariazioneGriglia = false;
if ((variazioniPvInputDTO.getTipoReportEnum() == VariazioniReportType.GRIGLIA ||
@@ -204,7 +204,7 @@ public class VariazioniPvService {
int i = 1;
for (VariazioniDettaglioDTO variazioni : elencoVar) {
CodMartType codMart = fillArticoloData(objectFactory, variazioni, variazioniPvInputDTO,invioIngredienti, getSetupSectionDepo, codMdep, setupDescr,
CodMartType codMart = fillArticoloData(objectFactory, variazioni, variazioniPvInputDTO, invioIngredienti, getSetupSectionDepo, codMdep, setupDescr,
setup.get("LIBERO1"),
setup.get("LIBERO2"), getVariazioneGriglia);
listinoDTO.getContent().add(objectFactory.createCodVlisTypeCodMart(codMart));
@@ -226,26 +226,23 @@ public class VariazioniPvService {
private List<VariazioniDTO> getListini(VariazioniPvInputDTO variazioniPvDTO, boolean existVariazioni) throws Exception {
List<VariazioniDTO> listini;
if (existVariazioni ) {
listini = Stream.of(variazioniPvDTO.getVariazioni())
.map(x -> {
VariazioniDTO v = new VariazioniDTO()
.setCodVlis(x.getCodVlis())
.setCodMdep(x.getCodMdep())
.setDescrizione(x.getDescrizione())
.setFlagListIvaInclusa(x.getFlagListIvaInclusa());
return v;
})
.distinct().toList();
}
else {
if (existVariazioni) {
listini = variazioniPvDTO.getVariazioni().stream()
.map(x -> new VariazioniDTO()
.setCodVlis(x.getCodVlis())
.setCodMdep(x.getCodMdep())
.setDescrizione(x.getDescrizione())
.setFlagListIvaInclusa(x.getFlagListIvaInclusa()))
.distinct()
.collect(Collectors.toList());
} else {
String sql =
"SELECT vtb_list.cod_vlis, vtb_list.descrizione, vtb_list.flag_list_iva_inclusa, mtb_depo.cod_mdep " +
" FROM vtb_list INNER JOIN mtb_depo ON mtb_depo.cod_vlis = vtb_list.cod_vlis " +
" WHERE vtb_list.flag_attivo = 'S' " +
"ORDER BY vtb_list.cod_vlis ";
" FROM vtb_list INNER JOIN mtb_depo ON mtb_depo.cod_vlis = vtb_list.cod_vlis " +
" WHERE vtb_list.flag_attivo = 'S' " +
"ORDER BY vtb_list.cod_vlis ";
if (variazioniPvDTO != null ) {
if (variazioniPvDTO != null) {
if (!UtilityString.isNullOrEmpty(variazioniPvDTO.getCodVlis()))
sql = UtilityDB.addwhereCond(sql, String.format("vtb_list.cod_vlis = '%s'", variazioniPvDTO.getCodVlis()), false);
sql = UtilityDB.addwhereCond(sql, variazioniPvDTO.getWhereCondLisv(), false);
@@ -313,21 +310,21 @@ public class VariazioniPvService {
CodMsfaType codMsfaType = getCodMsfaType(objectFactory, var);
codMartType.getContent().add(objectFactory.createCodMartTypeCodMsfa(codMsfaType));
codMartType.getContent().add(objectFactory.createCodMartTypeRepartoCassa(UtilityString.streNull(var.getRepartoCassa())));
codMartType.getContent().add(objectFactory.createCodMartTypeTipoVariazione( UtilityString.streNull(var.getTipoVariazione())));
codMartType.getContent().add(objectFactory.createCodMartTypeTipoVariazione(UtilityString.streNull(var.getTipoVariazione())));
codMartType.getContent().add(objectFactory.createCodMartTypeTipoVariazioneLisv(tipoVariazioneLisv));
codMartType.getContent().add(objectFactory.createCodMartTypePrzBase(UtilityString.bigDecimalToString(var.getPrzBase(), "###0.00###").replace(",", ".")));
codMartType.getContent().add(objectFactory.createCodMartTypePrzVend(UtilityString.bigDecimalToString(przVend, "###0.00###").replace(",", ".")));
codMartType.getContent().add(objectFactory.createCodMartTypePrzVendIva(UtilityString.bigDecimalToString(przVendIva, "###0.00").replace(",", ".")));
codMartType.getContent().add(objectFactory.createCodMartTypePosizione(UtilityString.streNull(var.getPosizione())));
codMartType.getContent().add(objectFactory.createCodMartTypeUntMisVen( UtilityString.streNull(var.getUntMisVen())));
codMartType.getContent().add(objectFactory.createCodMartTypeUntMisVen(UtilityString.streNull(var.getUntMisVen())));
codMartType.getContent().add(objectFactory.createCodMartTypeRapConvVen(UtilityString.bigDecimalToString(var.getRapConv(), "###0.00").replace(",", ".")));
codMartType.getContent().add(objectFactory.createCodMartTypePesoKg(UtilityString.bigDecimalToString(var.getPesoKg(), "###0.00").replace(",", ".")));
codMartType.getContent().add(objectFactory.createCodMartTypeFlagEsponiPrz(UtilityString.streNull(var.getFlagEsponiPrz())));
codMartType.getContent().add(objectFactory.createCodMartTypePercSfrido(UtilityString.bigDecimalToString(var.getPercSfrido(), "###0.00").replace(",", ".")));
codMartType.getContent().add(objectFactory.createCodMartTypeCodBarreImb(UtilityString.streNull(var.getCodBarreImb())));
codMartType.getContent().add(objectFactory.createCodMartTypeFlagCalcPrz( UtilityString.streNull(var.getFlagCalcPrz())));
codMartType.getContent().add(objectFactory.createCodMartTypeFlagCalcPrz(UtilityString.streNull(var.getFlagCalcPrz())));
codMartType.getContent().add(objectFactory.createCodMartTypeEsposizioneCompAcq(UtilityString.streNull(var.getEsposizioneCompAcq())));
codMartType.getContent().add(objectFactory.createCodMartTypeEsposizioneComp( UtilityString.streNull(var.getEsposizioneComp())));
codMartType.getContent().add(objectFactory.createCodMartTypeEsposizioneComp(UtilityString.streNull(var.getEsposizioneComp())));
codMartType.getContent().add(objectFactory.createCodMartTypeFlagCalcPrzAcq(UtilityString.streNull(var.getFlagCalcPrzAcq())));
BigDecimal colliPedane = var.getColliPedana();
codMartType.getContent().add(objectFactory.createCodMartTypeColliPedane(UtilityString.bigDecimalToString(colliPedane == null ? BigDecimal.ZERO : colliPedane, "###0.00").replace(",", ".")));
@@ -493,7 +490,7 @@ public class VariazioniPvService {
private String getQueryVariazioni(VariazioniPvInputDTO variazioniPvDTO,
HashMap<String, String> setup,
String codVlis,
String selezionaGriglie) throws Exception{
String selezionaGriglie) throws Exception {
String queryAssortimento = getQueryAssortimento(variazioniPvDTO, setup, codVlis, selezionaGriglie);
String query =
@@ -631,9 +628,9 @@ public class VariazioniPvService {
private String getElencoCasse(String codMdep) throws Exception {
String sql =
"SELECT mtb_depo_casse.cod_cassa\n" +
" FROM mtb_depo_casse\n" +
" WHERE mtb_depo_casse.cod_mdep = " + UtilityDB.valueToString(codMdep);
"SELECT mtb_depo_casse.cod_cassa\n" +
" FROM mtb_depo_casse\n" +
" WHERE mtb_depo_casse.cod_mdep = " + UtilityDB.valueToString(codMdep);
List<Object> casse = UtilityDB.executeSimpleQueryOnlyFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
@@ -812,7 +809,7 @@ public class VariazioniPvService {
" vtb_promo_articoli.cod_mart = '" + codMart + "' AND " +
" vtb_promo.flag_tipo_promo = 'F'";
BigDecimal punti = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), query);
if ( punti == null ) punti = BigDecimal.ZERO;
if (punti == null) punti = BigDecimal.ZERO;
return punti;
}
@@ -877,7 +874,7 @@ public class VariazioniPvService {
List<String> ingredienti = UtilityDB.executeSimpleQueryOnlyFirstColumn(multiDBTransactionManager.getPrimaryConnection(), query);
int contatore = 1;
for(String i: ingredienti) {
for (String i : ingredienti) {
IngredientiArticoloType ingredientiArticoloType = objectFactory.createIngredientiArticoloType();
String descrIngr = UtilityString.streNull(i);
ingredientiArticoloType.setIdRiga(String.valueOf(contatore));
@@ -988,7 +985,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, Date dataValidita, CodMartType codMartType, boolean getVariazioneGriglia) throws Exception {
CodAlisType codAlisType = objectFactory.createCodAlisType();
String tipoAssortimento = "",
tipoVariazioneGriglia = "",
@@ -1081,11 +1078,11 @@ public class VariazioniPvService {
tipiReport.add("V");//Variazioni
tipiReport.add("P");//Promozioni
if (!UtilityString.isNullOrEmpty(tipoReport)) {
tipiReport = Stream.of(tipiReport).filter(x-> x.equalsIgnoreCase(tipoReport)).toList();
tipiReport = Stream.of(tipiReport).filter(x -> x.equalsIgnoreCase(tipoReport)).toList();
}
boolean existVariazioni = false;
if (variazioniPvInputDTO != null )
existVariazioni = (variazioniPvInputDTO.getVariazioni() != null && variazioniPvInputDTO.getVariazioni().size() > 0 );
if (variazioniPvInputDTO != null)
existVariazioni = (variazioniPvInputDTO.getVariazioni() != null && variazioniPvInputDTO.getVariazioni().size() > 0);
if (dataValidita == null)
dataValidita = UtilityDate.RelativeDateTime(new Date(), 1);
@@ -1128,17 +1125,17 @@ public class VariazioniPvService {
VariazioniPvInputDTO v =
new VariazioniPvInputDTO()
.setCodVlis(codVlis)
.setTipoReport(tipoReport)
.setDataValidita(dataValidita)
.setWhereCondArt(variazioniPvInputDTO!=null?variazioniPvInputDTO.getWhereCondArt():null)
.setWhereCondLisv(variazioniPvInputDTO!=null?variazioniPvInputDTO.getWhereCondLisv():null)
.setWhereCondDoc(variazioniPvInputDTO!=null?variazioniPvInputDTO.getWhereCondDoc():null)
.setInviaIngredienti(variazioniPvInputDTO!=null?variazioniPvInputDTO.getInviaIngredienti():"S")
.setFileXml(variazioniPvInputDTO!=null?variazioniPvInputDTO.getFileXml():null)
.setInviaDisattivazioni(variazioniPvInputDTO!=null?variazioniPvInputDTO.getInviaDisattivazioni():"N")
.setUserName(variazioniPvInputDTO !=null?variazioniPvInputDTO.getUserName():null)
.setVariazioni(variazioniPvInputDTO!=null?variazioniPvInputDTO.getVariazioni():new ArrayList<>());
.setCodVlis(codVlis)
.setTipoReport(tipoReport)
.setDataValidita(dataValidita)
.setWhereCondArt(variazioniPvInputDTO != null ? variazioniPvInputDTO.getWhereCondArt() : null)
.setWhereCondLisv(variazioniPvInputDTO != null ? variazioniPvInputDTO.getWhereCondLisv() : null)
.setWhereCondDoc(variazioniPvInputDTO != null ? variazioniPvInputDTO.getWhereCondDoc() : null)
.setInviaIngredienti(variazioniPvInputDTO != null ? variazioniPvInputDTO.getInviaIngredienti() : "S")
.setFileXml(variazioniPvInputDTO != null ? variazioniPvInputDTO.getFileXml() : null)
.setInviaDisattivazioni(variazioniPvInputDTO != null ? variazioniPvInputDTO.getInviaDisattivazioni() : "N")
.setUserName(variazioniPvInputDTO != null ? variazioniPvInputDTO.getUserName() : null)
.setVariazioni(variazioniPvInputDTO != null ? variazioniPvInputDTO.getVariazioni() : new ArrayList<>());
if (v == null)
v = new VariazioniPvInputDTO();
@@ -1154,7 +1151,7 @@ public class VariazioniPvService {
}
boolean existVariazioni = (variazioniPvInputDTO.getVariazioni() != null && variazioniPvInputDTO.getVariazioni().size() > 0);
if (existVariazioni){
if (existVariazioni) {
final String exportType = "VARIAZIONE PV";
String sql =
Query.format(
@@ -1235,19 +1232,19 @@ public class VariazioniPvService {
}
String emailForLog = setupGest.getExportSetup(multiDBTransactionManager.getPrimaryConnection(), exportType, formatFile, "EMAIL_FOR_LOG");
int numVariazioni = variazioniPvInputDTO.getVariazioni().size();
if (!UtilityString.isNullOrEmpty(emailForLog) && numVariazioni > 0 ) {
if (!UtilityString.isNullOrEmpty(emailForLog) && numVariazioni > 0) {
String oggetto =
"Esportazione " +
variazioniPvInputDTO.getTipoReportEnum().toString() +
" punto vendita " +
userName;
variazioniPvInputDTO.getTipoReportEnum().toString() +
" punto vendita " +
userName;
String messaggio = oggetto +
" avvenuta con successo."+CommonConstants.A_CAPO +
" Sono stati esportati n. " + numVariazioni + " articoli";
" avvenuta con successo." + CommonConstants.A_CAPO +
" Sono stati esportati n. " + numVariazioni + " articoli";
mailService.sendMailPrimary(multiDBTransactionManager, null, null,emailForLog, null, null, oggetto, messaggio, false, false, null, null, null, false, null);
mailService.sendMailPrimary(multiDBTransactionManager, null, null, emailForLog, null, null, oggetto, messaggio, false, false, null, null, null, false, null);
}
}