diff --git a/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/service/VariazioniPvService.java b/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/service/VariazioniPvService.java index 93b4693caf..1513f72811 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/service/VariazioniPvService.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/service/VariazioniPvService.java @@ -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 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 listini = getListini(variazioniPvDTO, existVariazioni); List 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 getSetupSectionDepo = setupGest.getSetupSectionDepo(multiDBTransactionManager.getPrimaryConnection(), gestName, section, codMdep); @@ -106,12 +107,11 @@ public class VariazioniPvService { datiLisv.setDataVariazione(variazioniPvDTO.getDataValidita()); - List 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 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 getListini(VariazioniPvInputDTO variazioniPvDTO, boolean existVariazioni) throws Exception { List 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 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 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 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); } }