From 5a2e7b75b4aa8bb95639d6121b178f76a1872005 Mon Sep 17 00:00:00 2001 From: MinaR Date: Tue, 21 May 2024 15:51:43 +0200 Subject: [PATCH] Aggiunto nuovo campo nella lista degli articoli --- .../integry/ems/ordikids/dto/ArticoliDTO.java | 11 ++ .../ems/ordikids/service/OrdikidsService.java | 104 ++++++------------ 2 files changed, 47 insertions(+), 68 deletions(-) diff --git a/ems-engine/src/main/java/it/integry/ems/ordikids/dto/ArticoliDTO.java b/ems-engine/src/main/java/it/integry/ems/ordikids/dto/ArticoliDTO.java index 65803a4245..e07b299b13 100644 --- a/ems-engine/src/main/java/it/integry/ems/ordikids/dto/ArticoliDTO.java +++ b/ems-engine/src/main/java/it/integry/ems/ordikids/dto/ArticoliDTO.java @@ -30,6 +30,8 @@ public class ArticoliDTO implements Serializable { private BigDecimal prezzo_base; @SqlField private BigDecimal val_scatto; + @SqlField + private short num_min_art_col; private List colori = new ArrayList(); @@ -141,4 +143,13 @@ public class ArticoliDTO implements Serializable { public void setVal_scatto(BigDecimal val_scatto) { this.val_scatto = val_scatto; } + + public short getNum_min_art_col() { + return num_min_art_col; + } + + public ArticoliDTO setNum_min_art_col(short num_min_art_col) { + this.num_min_art_col = num_min_art_col; + return this; + } } \ No newline at end of file diff --git a/ems-engine/src/main/java/it/integry/ems/ordikids/service/OrdikidsService.java b/ems-engine/src/main/java/it/integry/ems/ordikids/service/OrdikidsService.java index c52d8191ef..f59956889b 100644 --- a/ems-engine/src/main/java/it/integry/ems/ordikids/service/OrdikidsService.java +++ b/ems-engine/src/main/java/it/integry/ems/ordikids/service/OrdikidsService.java @@ -46,6 +46,7 @@ import java.sql.ResultSet; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; @Service @Scope("request") @@ -394,9 +395,6 @@ public class OrdikidsService { private List getListArticoli(String codVage, String tableName) throws Exception { boolean overProduction = setupGest.getSetupBoolean(multiDBTransactionManager.getPrimaryConnection(), "ORDIKIDS", "SETUP", "VEND_OVER_PRODUCTION"); - List articoli = null; - PreparedStatement ps, psArt; - String sql = "SELECT ttb_style.cod_style, " + " mtb_aart.descrizione, " + @@ -406,9 +404,11 @@ public class OrdikidsService { " 'N' AS chiedi_disp, " + " mtb_aart.cod_sco_art, " + " ttb_style.prezzo_base, " + - " ttb_style.val_scatto " + + " ttb_style.val_scatto, " + + " ttb_line.num_min_art_col " + "FROM tvvw_agen_line INNER JOIN ttb_style ON tvvw_agen_line.cod_line = ttb_style.cod_line and ttb_style.anno_stag = tvvw_agen_line.anno_stag " + " INNER JOIN mtb_aart ON ttb_style.cod_style = mtb_aart.cod_mart " + + " INNER JOIN ttb_line ON ttb_style.cod_line = ttb_line.cod_line " + "WHERE tvvw_agen_line.cod_vage =" + UtilityDB.valueToString(codVage) + " AND " + " CONVERT(VARCHAR, GETDATE(), 111) BETWEEN tvvw_agen_line.data_iniz_ord AND tvvw_agen_line.data_fine_ord AND " + " tvvw_agen_line.data_iniz_ord >= tvvw_agen_line.first_data_iniz_ord AND " + @@ -435,39 +435,37 @@ public class OrdikidsService { " CASE WHEN qta_ord_prod > 0 THEN 'S' ELSE 'N'END AS chiedi_disp, " + " art.cod_sco_art, " + " art.prezzo_base, " + - " art.val_scatto " + + " art.val_scatto, " + + " art.num_min_art_col " + " FROM art left outer join ordP on art.cod_style = ordP.cod_mart "; } - ps = multiDBTransactionManager.prepareStatement(sql); - articoli = new ResultSetMapper() - .mapResultSetToList(ps.executeQuery(), ArticoliDTO.class); + List articoli = new ResultSetMapper() + .mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, ArticoliDTO.class); if (articoli == null) articoli = new ArrayList<>(); - ps.close(); sql = "SELECT ttb_style.cod_style, mtb_aart.descrizione, ttb_style.des_estera, " + " ttb_style.flag_asso, 'S' chiedi_disp, " + - " mtb_aart.cod_sco_art, ttb_style.prezzo_base, ttb_style.val_scatto " + + " mtb_aart.cod_sco_art, ttb_style.prezzo_base, ttb_style.val_scatto, " + + " ttb_line.num_min_art_col " + "FROM tvvw_agen_line INNER JOIN ttb_style ON tvvw_agen_line.cod_line = ttb_style.cod_line and tvvw_agen_line.anno_stag = ttb_style.anno_stag " + " INNER JOIN mtb_aart ON ttb_style.cod_style = mtb_aart.cod_mart " + + " INNER JOIN ttb_line ON ttb_style.cod_line = ttb_line.cod_line " + " INNER JOIN (Select cod_style " + - " from dbo.ftx_getDisponibilitaArticoli( CONVERT(varchar, GETDATE(), 111), null, null, null, null, null, null)tab " + + " from dbo.ftx_getDisponibilitaArticoli( CAST(GETDATE() as DATE), null, null, null, null, null, null)tab " + " Where tab.qta_disp > 0 " + " Group by cod_style ) disponib ON ttb_style.cod_style = disponib.cod_style " + " WHERE tvvw_agen_line.cod_vage =" + UtilityDB.valueToString(codVage) + " AND " + - " CONVERT(VARCHAR, GETDATE(), 111) BETWEEN tvvw_agen_line.data_iniz_riord AND tvvw_agen_line.data_fine_riord AND " + + " CAST(GETDATE() as DATE) BETWEEN tvvw_agen_line.data_iniz_riord AND tvvw_agen_line.data_fine_riord AND " + " tvvw_agen_line.data_iniz_riord >= tvvw_agen_line.first_data_iniz_riord AND " + " ttb_style.flag_listino = 'S' "; - psArt = multiDBTransactionManager.prepareStatement(sql); - List articoliPronto = new ResultSetMapper() - .mapResultSetToList(psArt.executeQuery(), ArticoliDTO.class); + .mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, ArticoliDTO.class); if (articoliPronto == null) articoliPronto = new ArrayList<>(); articoli.addAll(articoliPronto); - psArt.close(); //CREAZIONE TABELLA TEMPORANEA CHE DOVRA' CONTENERE TUTTE LE ISTANZE DELLA CLASSE ArticoliDTO if (!UtilityString.isNullOrEmpty(tableName)) { @@ -479,7 +477,8 @@ public class OrdikidsService { + " chiedi_disp varchar(1)," + " cod_sco_art varchar(5)," + " prezzo_base decimal(20, 5), " - + " val_scatto decimal(20, 5)) "; + + " val_scatto decimal(20, 5), " + + " num_min_art_col tinyint) "; PreparedStatement info = multiDBTransactionManager.prepareStatement(sql); info.executeUpdate(); @@ -505,52 +504,37 @@ public class OrdikidsService { List codBarre = null; List articoli = null; - Map DatiAgente = new HashMap(); - DatiAgente = getCond_vvwClientiAgenti(md5User); + Map DatiAgente = getCond_vvwClientiAgenti(md5User); if (DatiAgente.size() > 0) { - PreparedStatement ps; - String sql; - String codVage = DatiAgente.get("cod_vage"); //ACQUISIZIONE ELENCO ARTICOLI - String tableName = UtilityDB.defTmpTabName("t1_"); - articoli = this.getListArticoli(codVage, tableName); + articoli = this.getListArticoli(codVage); - List articoliCodStyles = new ArrayList(); - - for (ArticoliDTO articoliDTO : articoli) { - articoliCodStyles.add(articoliDTO.getCod_style()); - } + List articoliCodStyles = articoli.stream().map(x -> x.getCod_style()).collect(Collectors.toList()); String articoliInVector = "'" + Joiner.on("','").skipNulls().join(articoliCodStyles) + "'"; - sql = "SELECT ttb_style_colori.cod_col, ttb_style_colori.descrizione, ttb_style_colori.cod_style, " + String sql = "SELECT ttb_style_colori.cod_col, ttb_style_colori.descrizione, ttb_style_colori.cod_style, " + "CASE WHEN ttb_style_colori.cod_col = ttb_style.cod_col_camp THEN 'S' ELSE 'N' end as flag_campione " + "FROM ttb_style_colori " + "left outer join ttb_style ON ttb_style.cod_style = ttb_style_colori.cod_style " + "WHERE ttb_style_colori.flag_attivo = 'S' AND ttb_style_colori.cod_style IN(" + articoliInVector + ")"; - ps = multiDBTransactionManager.prepareStatement(sql); + List coloriFull = new ResultSetMapper() - .mapResultSetToList(ps.executeQuery(), ColoriDTO.class); - if (coloriFull == null) coloriFull = new ArrayList(); - ps.close(); + .mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, ColoriDTO.class); + if (coloriFull == null) coloriFull = new ArrayList<>(); sql = "SELECT cod_tagl, num_scatto, costo, cod_style, pos FROM ttb_style_taglie WHERE flag_attivo = 'S' AND cod_style IN(" + articoliInVector + ") ORDER BY cod_style, pos"; - - ps = multiDBTransactionManager.prepareStatement(sql); List taglieFull = new ResultSetMapper() - .mapResultSetToList(ps.executeQuery(), TaglieDTO.class); - if (taglieFull == null) taglieFull = new ArrayList(); - ps.close(); + .mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, TaglieDTO.class); + if (taglieFull == null) taglieFull = new ArrayList<>(); for (ArticoliDTO articoloDTO : articoli) { - List coloriOLDStyle = new ArrayList(); - for (ColoriDTO colore : coloriFull) { - if (colore.getCodStyle().equalsIgnoreCase(articoloDTO.getCod_style())) coloriOLDStyle.add(colore); - } + List coloriOLDStyle = + coloriFull.stream().filter(x->x.getCodStyle().equalsIgnoreCase(articoloDTO.getCod_style())).collect(Collectors.toList()); articoloDTO.setColori(coloriOLDStyle); @@ -573,22 +557,7 @@ public class OrdikidsService { + " mtb_lisv.cod_mart = ttb_lisv_taglie.cod_style AND " + " ttb_lisv_taglie.cod_style + ttb_lisv_taglie.cod_tagl IN(" + codStyleTaglInVector + ")"; - List listiniFull = new ArrayList(); - - ps = multiDBTransactionManager.prepareStatement(sql); - ResultSet rs = ps.executeQuery(); - - while (rs.next()) { - ListiniTaglieDTO dto = new ListiniTaglieDTO(); - dto.setCod_vlis(rs.getString("cod_vlis")); - dto.setPrz_vend(rs.getBigDecimal("prz_vend")); - dto.setRicarica(rs.getBigDecimal("ricarica")); - dto.setCodStyleTagl(rs.getString("style_tagl")); - listiniFull.add(dto); - } - - rs.close(); - ps.close(); + List listiniFull = new ResultSetMapper().mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, ListiniTaglieDTO.class); for (TaglieDTO tagliaDTO : articoloDTO.getTaglie()) { List listiniOLDStyle = new ArrayList(); @@ -608,23 +577,22 @@ public class OrdikidsService { sql = "SELECT isNull(mtb_aart.cod_mart_stat, mtb_aart.cod_mart) as cod_style, " + " null as cod_asso," + " cod_barre " - + " FROM " + tableName + " as TabArt, ttb_bar_code, mtb_aart " - + " WHERE isNull(mtb_aart.cod_mart_stat, mtb_aart.cod_mart) = TabArt.cod_style AND " + + " FROM ttb_bar_code, mtb_aart " + + " WHERE isNull(mtb_aart.cod_mart_stat, mtb_aart.cod_mart)IN (" + articoliInVector + ") AND " + " mtb_aart.cod_mart = ttb_bar_code.cod_style" + " UNION " + " SELECT isNull(mtb_aart.cod_mart_stat, mtb_aart.cod_mart) as cod_style, " + " ttb_style_ass.cod_asso, " + " ttb_style_ass.cod_barre " - + " FROM " + tableName + " as TabArt, ttb_style_ass, mtb_aart " - + " WHERE isNull(mtb_aart.cod_mart_stat, mtb_aart.cod_mart) = TabArt.cod_style AND " + + " FROM ttb_style_ass, mtb_aart " + + " WHERE isNull(mtb_aart.cod_mart_stat, mtb_aart.cod_mart) IN (" + articoliInVector + ") AND " + " mtb_aart.cod_mart = ttb_style_ass.cod_style " + "ORDER BY 1, 2"; - ps = multiDBTransactionManager.prepareStatement(sql); - codBarre = new ResultSetMapper().mapResultSetToList(ps.executeQuery(), CodBarreDTO.class); - if (codBarre == null) codBarre = new ArrayList(); - ps.close(); + codBarre = new ResultSetMapper().mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, CodBarreDTO.class); + if (codBarre == null) codBarre = new ArrayList<>(); + } if (articoli == null) { @@ -632,7 +600,7 @@ public class OrdikidsService { } if (codBarre == null) { - codBarre = new ArrayList(); + codBarre = new ArrayList<>(); } return new ArticoliCodbarreDTO(articoli, codBarre);