Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
2024-03-14 13:21:03 +01:00
4 changed files with 337 additions and 5 deletions

View File

@@ -1,6 +1,7 @@
package it.integry.ems.retail.wms.generic.dto;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
public class ArtsInGiacenzaDTO {
@@ -11,7 +12,9 @@ public class ArtsInGiacenzaDTO {
private String posizione;
private BigDecimal numCnf;
private Integer numOrd;
private Date dataOrd;
private Integer count;
private StatoArtInventarioDTO statoArtInventario;
private List<MvwSitArtUdcDetInventarioDTO> MvwSitArtUdcDetInventarioDTO;
public String getCodMart() {
@@ -85,4 +88,22 @@ public class ArtsInGiacenzaDTO {
this.numOrd = numOrd;
return this;
}
public StatoArtInventarioDTO getStatoArtInventario() {
return statoArtInventario;
}
public ArtsInGiacenzaDTO setStatoArtInventario(StatoArtInventarioDTO statoArtInventario) {
this.statoArtInventario = statoArtInventario;
return this;
}
public Date getDataOrd() {
return dataOrd;
}
public ArtsInGiacenzaDTO setDataOrd(Date dataOrd) {
this.dataOrd = dataOrd;
return this;
}
}

View File

@@ -101,6 +101,9 @@ public class MvwSitArtUdcDetInventarioDTO {
@SqlField("num_ord")
private Integer numOrd;
@SqlField("data_ord")
private Date dataOrd;
public BigDecimal getQtaOrd() {
return qtaOrd;
}
@@ -379,4 +382,13 @@ public class MvwSitArtUdcDetInventarioDTO {
this.numOrd = numOrd;
return this;
}
public Date getDataOrd() {
return dataOrd;
}
public MvwSitArtUdcDetInventarioDTO setDataOrd(Date dataOrd) {
this.dataOrd = dataOrd;
return this;
}
}

View File

@@ -0,0 +1,186 @@
package it.integry.ems.retail.wms.generic.dto;
import it.integry.ems_model.annotation.SqlField;
import java.math.BigDecimal;
import java.util.Date;
public class StatoArtInventarioDTO {
@SqlField("cod_prod")
private String codProd;
@SqlField("num_ord")
private Integer numOrd;
@SqlField("data_ord")
private Date dataOrd;
@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;
public String getCodProd() {
return codProd;
}
public StatoArtInventarioDTO setCodProd(String codProd) {
this.codProd = codProd;
return this;
}
public Integer getNumOrd() {
return numOrd;
}
public StatoArtInventarioDTO setNumOrd(Integer numOrd) {
this.numOrd = numOrd;
return this;
}
public String getUntMis() {
return untMis;
}
public StatoArtInventarioDTO setUntMis(String untMis) {
this.untMis = untMis;
return this;
}
public BigDecimal getQtaProd() {
return qtaProd;
}
public StatoArtInventarioDTO setQtaProd(BigDecimal qtaProd) {
this.qtaProd = qtaProd;
return this;
}
public BigDecimal getColliProd() {
return colliProd;
}
public StatoArtInventarioDTO setColliProd(BigDecimal colliProd) {
this.colliProd = colliProd;
return this;
}
public BigDecimal getPedProd() {
return pedProd;
}
public StatoArtInventarioDTO setPedProd(BigDecimal pedProd) {
this.pedProd = pedProd;
return this;
}
public BigDecimal getQtaInArrivo() {
return qtaInArrivo;
}
public StatoArtInventarioDTO setQtaInArrivo(BigDecimal qtaInArrivo) {
this.qtaInArrivo = qtaInArrivo;
return this;
}
public BigDecimal getColliArrivo() {
return colliArrivo;
}
public StatoArtInventarioDTO setColliArrivo(BigDecimal colliArrivo) {
this.colliArrivo = colliArrivo;
return this;
}
public BigDecimal getPedArrivo() {
return pedArrivo;
}
public StatoArtInventarioDTO setPedArrivo(BigDecimal pedArrivo) {
this.pedArrivo = pedArrivo;
return this;
}
public BigDecimal getQtaLinea() {
return qtaLinea;
}
public StatoArtInventarioDTO setQtaLinea(BigDecimal qtaLinea) {
this.qtaLinea = qtaLinea;
return this;
}
public BigDecimal getColliLinea() {
return colliLinea;
}
public StatoArtInventarioDTO setColliLinea(BigDecimal colliLinea) {
this.colliLinea = colliLinea;
return this;
}
public Integer getPedLinea() {
return pedLinea;
}
public StatoArtInventarioDTO setPedLinea(Integer pedLinea) {
this.pedLinea = pedLinea;
return this;
}
public BigDecimal getQtaMag() {
return qtaMag;
}
public StatoArtInventarioDTO setQtaMag(BigDecimal qtaMag) {
this.qtaMag = qtaMag;
return this;
}
public BigDecimal getColliMag() {
return colliMag;
}
public StatoArtInventarioDTO setColliMag(BigDecimal colliMag) {
this.colliMag = colliMag;
return this;
}
public Integer getPedMag() {
return pedMag;
}
public StatoArtInventarioDTO setPedMag(Integer pedMag) {
this.pedMag = pedMag;
return this;
}
public Date getDataOrd() {
return dataOrd;
}
public StatoArtInventarioDTO setDataOrd(Date dataOrd) {
this.dataOrd = dataOrd;
return this;
}
}

View File

@@ -1,10 +1,13 @@
package it.integry.ems.retail.wms.generic.service;
import com.annimon.stream.Stream;
import it.integry.common.var.CommonConstants;
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;
import it.integry.ems.retail.wms.generic.dto.StatoArtInventarioDTO;
import it.integry.ems_model.entity.MtbColt;
import it.integry.ems_model.exception.DataConverterNotFoundException;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityQuery;
import it.integry.ems_model.utility.UtilityString;
@@ -12,6 +15,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.*;
import java.util.stream.Collectors;
@@ -46,6 +50,7 @@ public class WMSGiacenzaULService {
" sit_art.cod_jfas,\n" +
" sit_art.cod_jfas,\n" +
(withTestataCollo ? "mtb_colt.num_ord,\n" : "") +
(withTestataCollo ? "mtb_colt.data_ord,\n" : "") +
" mtb_partita_mag.data_scad\n" +
" FROM mvw_sitart_udc_det_inventario sit_art\n" +
" LEFT OUTER JOIN mtb_partita_mag ON sit_art.cod_mart = mtb_partita_mag.cod_mart AND\n" +
@@ -84,14 +89,122 @@ public class WMSGiacenzaULService {
.map(MvwSitArtUdcDetInventarioDTO::getNumCnf)
.reduce(BigDecimal.ZERO, BigDecimal::add);
String codMart = dtoList.get(0).getCodMart();
String partitaMag = dtoList.get(0).getPartitaMag();
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 mtb_colr.gestione_rif IS NULL\n" +
" AND mtb_colr.data_collo_rif IS NULL\n" +
" AND mtb_colr.ser_collo_rif IS NULL\n" +
" AND mtb_colr.num_collo_rif IS NULL\n" +
" AND 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" +
" AND mtb_colt.num_ord = " + UtilityDB.valueToString(numOrd) + "\n" +
" AND mtb_colt.gestione = " + UtilityDB.valueToString(dtoList.get(0).getGestione()) + "\n" +
" AND mtb_colt.data_ord = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + "\n" +
" AND mtb_colr.cod_mart = " + UtilityDB.valueToString(codMart) + "\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(CASE WHEN mtb_colr_sum.posizione = @codjfas THEN 1 ELSE 0 END) AS ped_arrivo,\n" +
" SUM(CASE\n" +
" WHEN mtb_colr_sum.posizione = @codjfas THEN mtb_colr_sum.qta_col\n" +
" ELSE 0 END) AS qta_linea,\n" +
" SUM(CASE\n" +
" WHEN mtb_colr_sum.posizione = @codjfas THEN mtb_colr_sum.num_cnf\n" +
" ELSE 0 END) AS colli_linea,\n" +
" SUM(CASE WHEN mtb_colr_sum.posizione = @codjfas THEN 1 ELSE 0 END) AS ped_linea,\n" +
" SUM(CASE\n" +
" WHEN mtb_colr_sum.posizione = @codjfas THEN 0\n" +
" ELSE mtb_colr_sum.qta_col END) AS qta_mag,\n" +
" SUM(CASE\n" +
" WHEN mtb_colr_sum.posizione = @codjfas THEN 0\n" +
" ELSE mtb_colr_sum.num_cnf END) AS colli_mag,\n" +
" SUM(CASE WHEN mtb_colr_sum.posizione = @codjfas THEN 0 ELSE 1 END) 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);
}
return new ArtsInGiacenzaDTO()
.setCodMart(dtoList.get(0).getCodMart())
.setPartitaMag(dtoList.get(0).getPartitaMag())
.setPosizione(dtoList.get(0).getPosizione())
.setDescrizione(dtoList.get(0).getDescrizioneEstesa())
.setNumOrd(dtoList.get(0).getNumOrd())
.setCodMart(codMart)
.setPartitaMag(partitaMag)
.setPosizione(posizione)
.setDescrizione(descrizioneEstesa)
.setNumOrd(numOrd)
.setDataOrd(dataOrd)
.setNumCnf(totalNumCnf)
.setCount(dtoList.size())
.setStatoArtInventario(statoArtInventarioDTO)
.setMvwSitArtUdcDetInventarioDTO(dtoList);
})
.toList();