Migliorato servizio di retrieve UL in posizione con relativo stato
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
This commit is contained in:
@@ -9,34 +9,55 @@ public class StatoArtInventarioDTO {
|
||||
|
||||
@SqlField("cod_prod")
|
||||
private String codProd;
|
||||
|
||||
@SqlField("num_ord")
|
||||
private Integer numOrd;
|
||||
|
||||
@SqlField("data_ord")
|
||||
private Date dataOrd;
|
||||
|
||||
@SqlField("gestione")
|
||||
private String gestione;
|
||||
|
||||
@SqlField("cod_jfas")
|
||||
private String codJfas;
|
||||
|
||||
@SqlField("unt_mis")
|
||||
private String untMis;
|
||||
|
||||
@SqlField("qta_prod")
|
||||
private BigDecimal qtaProd;
|
||||
|
||||
@SqlField("colli_prod")
|
||||
private BigDecimal colliProd;
|
||||
|
||||
@SqlField("ped_prod")
|
||||
private BigDecimal pedProd;
|
||||
|
||||
@SqlField("qta_in_arrivo")
|
||||
private BigDecimal qtaInArrivo;
|
||||
|
||||
@SqlField("colli_arrivo")
|
||||
private BigDecimal colliArrivo;
|
||||
|
||||
@SqlField("ped_arrivo")
|
||||
private BigDecimal pedArrivo;
|
||||
|
||||
@SqlField("qta_linea")
|
||||
private BigDecimal qtaLinea;
|
||||
|
||||
@SqlField("colli_linea")
|
||||
private BigDecimal colliLinea;
|
||||
|
||||
@SqlField("ped_linea")
|
||||
private Integer pedLinea;
|
||||
|
||||
@SqlField("qta_mag")
|
||||
private BigDecimal qtaMag;
|
||||
|
||||
@SqlField("colli_mag")
|
||||
private BigDecimal colliMag;
|
||||
|
||||
@SqlField("ped_mag")
|
||||
private Integer pedMag;
|
||||
|
||||
@@ -58,6 +79,24 @@ public class StatoArtInventarioDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getGestione() {
|
||||
return gestione;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setGestione(String gestione) {
|
||||
this.gestione = gestione;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodJfas() {
|
||||
return codJfas;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setCodJfas(String codJfas) {
|
||||
this.codJfas = codJfas;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getUntMis() {
|
||||
return untMis;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package it.integry.ems.retail.wms.generic.service;
|
||||
|
||||
import core.utility.StringUtils;
|
||||
import it.integry.ems.retail.wms.generic.dto.ArtsInGiacenzaDTO;
|
||||
import it.integry.ems.retail.wms.generic.dto.MvwSitArtUdcDetInventarioDTO;
|
||||
import it.integry.ems.retail.wms.generic.dto.RetrieveArtsInGiacenzaByArtRequestDTO;
|
||||
@@ -74,122 +75,135 @@ public class WMSGiacenzaULService {
|
||||
String sql = createBaseQuery(withTestataCollo) +
|
||||
" AND sit_art.posizione IN (" + UtilityDB.listValueToString(positions) + ")";
|
||||
|
||||
if(withTestataCollo)
|
||||
sql += " AND mtb_colt.num_ord IS NOT NULL";
|
||||
|
||||
List<MvwSitArtUdcDetInventarioDTO> mvwSitArtUdcDetInventarioList = UtilityDB.executeSimpleQueryDTO(connection, sql, MvwSitArtUdcDetInventarioDTO.class);
|
||||
|
||||
if(mvwSitArtUdcDetInventarioList == null)
|
||||
if (mvwSitArtUdcDetInventarioList == null)
|
||||
return new ArrayList<>();
|
||||
|
||||
|
||||
|
||||
Map<HashMap<String, Object>, List<MvwSitArtUdcDetInventarioDTO>> groupedByCodMartAndPartitaMag =
|
||||
mvwSitArtUdcDetInventarioList.stream()
|
||||
.collect(Collectors.groupingBy(dto -> new HashMap<String, Object>() {{
|
||||
put("cod_jfas", dto.getCodJfas());
|
||||
put("cod_prod", dto.getCodMart());
|
||||
put("partita_mag", dto.getPartitaMag());
|
||||
put("num_ord", dto.getNumOrd());
|
||||
put("gestione", dto.getGestione());
|
||||
put("data_ord", dto.getDataOrd());
|
||||
put("dtb_ordt.cod_jfas", dto.getCodJfas());
|
||||
put("dtb_ordt.cod_prod", dto.getCodMart());
|
||||
put("dtb_ordt.partita_mag", dto.getPartitaMag());
|
||||
put("dtb_ordt.num_ord", dto.getNumOrd());
|
||||
put("dtb_ordt.gestione", dto.getGestione());
|
||||
put("dtb_ordt.data_ord", dto.getDataOrd());
|
||||
}}));
|
||||
|
||||
|
||||
String whereCond = UtilityQuery.concatFieldListInWhereCond(new ArrayList<>(groupedByCodMartAndPartitaMag.keySet()));
|
||||
|
||||
String statoOrdiniSql = "WITH mtb_colr_sum AS (SELECT mtb_colt.posizione,\n" +
|
||||
" mtb_colt.gestione,\n" +
|
||||
" mtb_colt.data_collo,\n" +
|
||||
" mtb_colt.ser_collo,\n" +
|
||||
" mtb_colt.num_collo,\n" +
|
||||
" mtb_colr.cod_mart,\n" +
|
||||
" mtb_colr.data_ord,\n" +
|
||||
" mtb_colr.num_ord,\n" +
|
||||
" SUM(mtb_colr.qta_col) AS qta_col,\n" +
|
||||
" SUM(mtb_colr.num_cnf) AS num_cnf\n" +
|
||||
" FROM mtb_colr\n" +
|
||||
" INNER JOIN mtb_colt ON mtb_colt.gestione = mtb_colr.gestione\n" +
|
||||
" AND mtb_colt.data_collo = mtb_colr.data_collo\n" +
|
||||
" AND mtb_colt.ser_collo = mtb_colr.ser_collo\n" +
|
||||
" AND mtb_colt.num_collo = mtb_colr.num_collo\n" +
|
||||
" WHERE EXISTS(SELECT *\n" +
|
||||
" FROM mtb_colt\n" +
|
||||
" WHERE mtb_colr.gestione = mtb_colt.gestione\n" +
|
||||
" AND mtb_colr.data_collo = mtb_colt.data_collo\n" +
|
||||
" AND mtb_colr.ser_collo = mtb_colt.ser_collo\n" +
|
||||
" AND mtb_colr.num_collo = mtb_colt.num_collo\n" +
|
||||
" AND mtb_colt.segno = 1)\n" +
|
||||
" GROUP BY mtb_colt.posizione,\n" +
|
||||
" mtb_colt.gestione,\n" +
|
||||
" mtb_colt.gestione,\n" +
|
||||
" mtb_colt.data_collo,\n" +
|
||||
" mtb_colt.ser_collo,\n" +
|
||||
" mtb_colt.num_collo,\n" +
|
||||
" mtb_colr.cod_mart,\n" +
|
||||
" mtb_colr.data_ord,\n" +
|
||||
" mtb_colr.num_ord)\n" +
|
||||
"\n" +
|
||||
"SELECT dtb_ordt.cod_prod,\n" +
|
||||
" dtb_ordt.num_ord,\n" +
|
||||
" dtb_ordt.data_ord,\n" +
|
||||
" dtb_ordt.cod_jfas,\n" +
|
||||
" dtb_ordt.gestione,\n" +
|
||||
" mtb_aart.unt_mis,\n" +
|
||||
" ((dtb_ordt.qta_prod) * dtb_ordt.rap_conv_prod) qta_prod,\n" +
|
||||
" dtb_ordr.num_cnf AS colli_prod,\n" +
|
||||
" ROUND((dtb_ordr.num_cnf) / ISNULL(dtb_ordr.colli_pedana, mtb_aart.colli_pedana),\n" +
|
||||
" 0) AS ped_prod,\n" +
|
||||
" ((dtb_ordt.qta_prod) * dtb_ordt.rap_conv_prod) -\n" +
|
||||
" SUM(mtb_colr_sum.qta_col) AS qta_in_arrivo,\n" +
|
||||
" (dtb_ordr.num_cnf) -\n" +
|
||||
" SUM(mtb_colr_sum.num_cnf) AS colli_arrivo,\n" +
|
||||
" ROUND(((dtb_ordr.num_cnf) / ISNULL(dtb_ordr.colli_pedana, mtb_aart.colli_pedana)), 0) -\n" +
|
||||
" SUM(IIF(mtb_colr_sum.posizione = dtb_ordt.cod_jfas, 1, 0)) -\n" +
|
||||
" SUM(IIF(mtb_colr_sum.posizione = dtb_ordt.cod_jfas, 0, 1)) AS ped_arrivo,\n" +
|
||||
" SUM(IIF(mtb_colr_sum.posizione = dtb_ordt.cod_jfas, mtb_colr_sum.qta_col, 0)) AS qta_linea,\n" +
|
||||
" SUM(IIF(mtb_colr_sum.posizione = dtb_ordt.cod_jfas, mtb_colr_sum.num_cnf, 0)) AS colli_linea,\n" +
|
||||
" SUM(IIF(mtb_colr_sum.posizione = dtb_ordt.cod_jfas, 1, 0)) AS ped_linea,\n" +
|
||||
" SUM(IIF(mtb_colr_sum.posizione = dtb_ordt.cod_jfas, 0, mtb_colr_sum.qta_col)) AS qta_mag,\n" +
|
||||
" SUM(IIF(mtb_colr_sum.posizione = dtb_ordt.cod_jfas, 0, mtb_colr_sum.num_cnf)) AS colli_mag,\n" +
|
||||
" SUM(IIF(mtb_colr_sum.posizione = dtb_ordt.cod_jfas, 0, 1)) AS ped_mag\n" +
|
||||
"FROM dtb_ordt\n" +
|
||||
" INNER JOIN dtb_ordr ON dtb_ordt.gestione_rif = dtb_ordr.gestione AND\n" +
|
||||
" dtb_ordt.data_ord_rif = dtb_ordr.data_ord AND\n" +
|
||||
" dtb_ordt.num_ord_rif = dtb_ordr.num_ord AND\n" +
|
||||
" dtb_ordt.riga_ord_rif = dtb_ordr.riga_ord\n" +
|
||||
" LEFT OUTER JOIN mtb_colr_sum ON dtb_ordt.gestione = mtb_colr_sum.gestione\n" +
|
||||
" AND dtb_ordt.data_ord = mtb_colr_sum.data_ord\n" +
|
||||
" AND dtb_ordt.num_ord = mtb_colr_sum.num_ord\n" +
|
||||
" AND dtb_ordt.cod_prod = mtb_colr_sum.cod_mart\n" +
|
||||
" INNER JOIN mtb_aart ON dtb_ordt.cod_prod = mtb_aart.cod_mart\n" +
|
||||
"WHERE " + whereCond + " " +
|
||||
"GROUP BY dtb_ordt.cod_prod,\n" +
|
||||
" dtb_ordt.num_ord,\n" +
|
||||
" dtb_ordt.data_ord,\n" +
|
||||
" dtb_ordt.cod_jfas,\n" +
|
||||
" dtb_ordt.gestione,\n" +
|
||||
" mtb_aart.unt_mis,\n" +
|
||||
" dtb_ordt.qta_prod, mtb_aart.qta_cnf,\n" +
|
||||
" dtb_ordt.rap_conv_prod,\n" +
|
||||
" mtb_aart.colli_pedana, dtb_ordr.num_cnf, dtb_ordr.colli_pedana";
|
||||
|
||||
final List<StatoArtInventarioDTO> statoArtsInventario = UtilityDB.executeSimpleQueryDTO(connection, statoOrdiniSql, StatoArtInventarioDTO.class);
|
||||
|
||||
if (statoArtsInventario == null)
|
||||
return new ArrayList<>();
|
||||
|
||||
return groupedByCodMartAndPartitaMag.entrySet().stream()
|
||||
.map(entry -> {
|
||||
List<MvwSitArtUdcDetInventarioDTO> dtoList = entry.getValue();
|
||||
|
||||
String codMart = UtilityHashMap.getValueIfExists(entry.getKey(), "dtb_ordt.cod_prod");
|
||||
String partitaMag = UtilityHashMap.getValueIfExists(entry.getKey(), "dtb_ordt.partita_mag");
|
||||
String posizione = dtoList.get(0).getPosizione();
|
||||
String gestione = UtilityHashMap.getValueIfExists(entry.getKey(), "dtb_ordt.gestione");
|
||||
String descrizioneEstesa = dtoList.get(0).getDescrizioneEstesa();
|
||||
Integer numOrd = UtilityHashMap.getValueIfExists(entry.getKey(), "dtb_ordt.num_ord");
|
||||
Date dataOrd = UtilityHashMap.getValueIfExists(entry.getKey(), "dtb_ordt.data_ord");
|
||||
|
||||
BigDecimal totalNumCnf = dtoList.stream()
|
||||
.map(MvwSitArtUdcDetInventarioDTO::getNumCnf)
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
|
||||
String codMart = UtilityHashMap.getValueIfExists(entry.getKey(), "cod_prod");
|
||||
String partitaMag = UtilityHashMap.getValueIfExists(entry.getKey(), "partita_mag");
|
||||
String posizione = dtoList.get(0).getPosizione();
|
||||
String descrizioneEstesa = dtoList.get(0).getDescrizioneEstesa();
|
||||
Integer numOrd = dtoList.get(0).getNumOrd();
|
||||
Date dataOrd = dtoList.get(0).getDataOrd();
|
||||
|
||||
// String query = "DECLARE @codjfas VARCHAR(5) = " + UtilityDB.valueToString(posizione) + ";\n" +
|
||||
// "WITH mtb_colr_sum AS (SELECT mtb_colt.posizione,\n" +
|
||||
// " mtb_colt.gestione,\n" +
|
||||
// " mtb_colt.data_collo,\n" +
|
||||
// " mtb_colt.ser_collo,\n" +
|
||||
// " mtb_colt.num_collo,\n" +
|
||||
// " mtb_colr.cod_mart,\n" +
|
||||
// " mtb_colr.data_ord,\n" +
|
||||
// " mtb_colr.num_ord,\n" +
|
||||
// " SUM(mtb_colr.qta_col) AS qta_col,\n" +
|
||||
// " SUM(mtb_colr.num_cnf) AS num_cnf\n" +
|
||||
// " FROM mtb_colr\n" +
|
||||
// " INNER JOIN mtb_colt ON mtb_colt.gestione = mtb_colr.gestione\n" +
|
||||
// " AND mtb_colt.data_collo = mtb_colr.data_collo\n" +
|
||||
// " AND mtb_colt.ser_collo = mtb_colr.ser_collo\n" +
|
||||
// " AND mtb_colt.num_collo = mtb_colr.num_collo\n" +
|
||||
// " WHERE EXISTS(SELECT *\n" +
|
||||
// " FROM mtb_colt\n" +
|
||||
// " WHERE mtb_colr.gestione = mtb_colt.gestione\n" +
|
||||
// " AND mtb_colr.data_collo = mtb_colt.data_collo\n" +
|
||||
// " AND mtb_colr.ser_collo = mtb_colt.ser_collo\n" +
|
||||
// " AND mtb_colr.num_collo = mtb_colt.num_collo\n" +
|
||||
// " AND mtb_colt.segno = 1)\n" +
|
||||
// " GROUP BY mtb_colt.posizione,\n" +
|
||||
// " mtb_colt.gestione,\n" +
|
||||
// " mtb_colt.gestione,\n" +
|
||||
// " mtb_colt.data_collo,\n" +
|
||||
// " mtb_colt.ser_collo,\n" +
|
||||
// " mtb_colt.num_collo,\n" +
|
||||
// " mtb_colr.cod_mart,\n" +
|
||||
// " mtb_colr.data_ord,\n" +
|
||||
// " mtb_colr.num_ord)\n" +
|
||||
// "\n" +
|
||||
// "SELECT dtb_ordt.cod_prod,\n" +
|
||||
// " dtb_ordt.num_ord,\n" +
|
||||
// " dtb_ordt.data_ord,\n" +
|
||||
// " mtb_aart.unt_mis,\n" +
|
||||
// " ((dtb_ordt.qta_prod) * dtb_ordt.rap_conv_prod) qta_prod,\n" +
|
||||
// " dtb_ordr.num_cnf AS colli_prod,\n" +
|
||||
// " ROUND((dtb_ordr.num_cnf) / ISNULL(dtb_ordr.colli_pedana, mtb_aart.colli_pedana),\n" +
|
||||
// " 0) AS ped_prod,\n" +
|
||||
// " ((dtb_ordt.qta_prod) * dtb_ordt.rap_conv_prod) -\n" +
|
||||
// " SUM(mtb_colr_sum.qta_col) AS qta_in_arrivo,\n" +
|
||||
// " (dtb_ordr.num_cnf) -\n" +
|
||||
// " SUM(mtb_colr_sum.num_cnf) AS colli_arrivo,\n" +
|
||||
// " ROUND(((dtb_ordr.num_cnf) / ISNULL(dtb_ordr.colli_pedana, mtb_aart.colli_pedana)), 0) -\n" +
|
||||
// " SUM(IIF(mtb_colr_sum.posizione = @codjfas, 1, 0)) -\n" +
|
||||
// " SUM(IIF(mtb_colr_sum.posizione = @codjfas, 0, 1)) AS ped_arrivo,\n" +
|
||||
// " SUM(IIF(mtb_colr_sum.posizione = @codjfas, mtb_colr_sum.qta_col, 0)) AS qta_linea,\n" +
|
||||
// " SUM(IIF(mtb_colr_sum.posizione = @codjfas, mtb_colr_sum.num_cnf, 0)) AS colli_linea,\n" +
|
||||
// " SUM(IIF(mtb_colr_sum.posizione = @codjfas, 1, 0)) AS ped_linea,\n" +
|
||||
// " SUM(IIF(mtb_colr_sum.posizione = @codjfas, 0, mtb_colr_sum.qta_col)) AS qta_mag,\n" +
|
||||
// " SUM(IIF(mtb_colr_sum.posizione = @codjfas, 0, mtb_colr_sum.num_cnf)) AS colli_mag,\n" +
|
||||
// " SUM(IIF(mtb_colr_sum.posizione = @codjfas, 0, 1)) AS ped_mag\n" +
|
||||
// "FROM dtb_ordt\n" +
|
||||
// " INNER JOIN dtb_ordr ON dtb_ordt.gestione_rif = dtb_ordr.gestione AND\n" +
|
||||
// " dtb_ordt.data_ord_rif = dtb_ordr.data_ord AND\n" +
|
||||
// " dtb_ordt.num_ord_rif = dtb_ordr.num_ord AND\n" +
|
||||
// " dtb_ordt.riga_ord_rif = dtb_ordr.riga_ord\n" +
|
||||
// " LEFT OUTER JOIN mtb_colr_sum ON dtb_ordt.gestione = mtb_colr_sum.gestione\n" +
|
||||
// " AND dtb_ordt.data_ord = mtb_colr_sum.data_ord\n" +
|
||||
// " AND dtb_ordt.num_ord = mtb_colr_sum.num_ord\n" +
|
||||
// " AND dtb_ordt.cod_prod = mtb_colr_sum.cod_mart\n" +
|
||||
// " INNER JOIN mtb_aart ON dtb_ordt.cod_prod = mtb_aart.cod_mart\n" +
|
||||
// "WHERE dtb_ordt.num_ord = " + UtilityDB.valueToString(numOrd) + "\n" +
|
||||
// " AND dtb_ordt.gestione = " + UtilityDB.valueToString(dtoList.get(0).getGestione()) + "\n" +
|
||||
// " AND dtb_ordt.data_ord = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + "\n" +
|
||||
// " AND dtb_ordt.cod_prod = " + UtilityDB.valueToString(codMart) + "\n" +
|
||||
// "GROUP BY dtb_ordt.cod_prod,\n" +
|
||||
// " dtb_ordt.num_ord,\n" +
|
||||
// " dtb_ordt.data_ord,\n" +
|
||||
// " mtb_aart.unt_mis,\n" +
|
||||
// " dtb_ordt.qta_prod, mtb_aart.qta_cnf,\n" +
|
||||
// " dtb_ordt.rap_conv_prod,\n" +
|
||||
// " mtb_aart.colli_pedana, dtb_ordr.num_cnf, dtb_ordr.colli_pedana";
|
||||
|
||||
StatoArtInventarioDTO statoArtInventarioDTO;
|
||||
|
||||
// try {
|
||||
// statoArtInventarioDTO = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(connection, query, StatoArtInventarioDTO.class);
|
||||
// } catch (Exception e) {
|
||||
// throw new RuntimeException(e);
|
||||
// }
|
||||
StatoArtInventarioDTO statoArtInventario = statoArtsInventario.stream()
|
||||
.filter(x ->
|
||||
StringUtils.equalsIgnoreCase(x.getCodProd(), codMart) &&
|
||||
Objects.equals(x.getDataOrd(), dataOrd) &&
|
||||
Objects.equals(x.getNumOrd(), numOrd) &&
|
||||
StringUtils.equalsIgnoreCase(x.getCodJfas(), posizione) &&
|
||||
StringUtils.equalsIgnoreCase(x.getGestione(), gestione))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
|
||||
return new ArtsInGiacenzaDTO()
|
||||
.setCodMart(codMart)
|
||||
@@ -200,7 +214,7 @@ public class WMSGiacenzaULService {
|
||||
.setDataOrd(dataOrd)
|
||||
.setNumCnf(totalNumCnf)
|
||||
.setCount(dtoList.size())
|
||||
// .setStatoArtInventario(statoArtInventarioDTO)
|
||||
.setStatoArtInventario(statoArtInventario)
|
||||
.setMvwSitArtUdcDetInventarioDTO(dtoList);
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
|
||||
Reference in New Issue
Block a user