Sistemato riposizionamento UL
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:
@@ -66,9 +66,9 @@ public class UtilityBarcodeEan128 {
|
||||
|
||||
switch (aiModel.AI) {
|
||||
case SSCC:
|
||||
if (!aiValue.isEmpty() && (aiValue.charAt(0) == '0' || aiValue.charAt(0) == '9')) {
|
||||
aiValue = aiValue.substring(1);
|
||||
}
|
||||
// if (!aiValue.isEmpty() && (aiValue.charAt(0) == '0' || aiValue.charAt(0) == '9')) {
|
||||
// aiValue = aiValue.substring(1);
|
||||
// }
|
||||
model.Sscc = aiValue;
|
||||
break;
|
||||
case GTIN:
|
||||
|
||||
@@ -2,6 +2,8 @@ package it.integry.ems.retail.wms.Utility;
|
||||
|
||||
import com.annimon.stream.Optional;
|
||||
import com.annimon.stream.Stream;
|
||||
import it.integry.ems._context.ApplicationContextProvider;
|
||||
import it.integry.ems.exception.MissingDataException;
|
||||
import it.integry.ems.exception.PrimaryDatabaseNotPresentException;
|
||||
import it.integry.ems.javabeans.RequestDataDTO;
|
||||
import it.integry.ems.retail.wms.dto.InsertUDCRowRequestDTO;
|
||||
@@ -9,6 +11,7 @@ import it.integry.ems.retail.wms.dto.InsertUDCRowResponseDTO;
|
||||
import it.integry.ems.retail.wms.exceptions.InvalidArticoloException;
|
||||
import it.integry.ems.retail.wms.generic.dto.MvwSitArtUdcDetInventarioDTO;
|
||||
import it.integry.ems.retail.wms.generic.dto.SpostaArtsTraULResponseDTO;
|
||||
import it.integry.ems.retail.wms.generic.service.WMSGiacenzaULService;
|
||||
import it.integry.ems.rules.businessLogic.enums.FlagSezione;
|
||||
import it.integry.ems.rules.completing.PackagesRules;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
@@ -18,8 +21,8 @@ import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems_model.entity.*;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.*;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.SQLException;
|
||||
@@ -74,45 +77,103 @@ public class WMSUtility {
|
||||
.setNumCnf(docr.getNumCnf().add(mtbColr.getNumCnf()));
|
||||
}
|
||||
|
||||
public static void trasferisciPedane(MtbColt mtbColt, List<MtbTcol> listaPedane, DtbDoct dtbDoct) throws Exception {
|
||||
public static void trasferisciPedane(MtbTcol pedana, DtbDoct dtbDoct) {
|
||||
|
||||
//<editor-fold desc="Trasferisco le pedane agganciate al collo se presenti e gestite a magazzino">
|
||||
if (!UtilityString.isNullOrEmpty(mtbColt.getCodTcol()) && !UtilityList.isNullOrEmpty(listaPedane)) {
|
||||
MtbTcol pedana = listaPedane.stream().filter(x -> x.getCodTcol().equalsIgnoreCase(mtbColt.getCodTcol())).findFirst().orElse(null);
|
||||
if (!UtilityString.isNullOrEmpty(pedana)) {
|
||||
DtbDocr docr = dtbDoct.getDtbDocr().stream()
|
||||
.filter(row -> row.getCodMart().equalsIgnoreCase(pedana.getCodMart()))
|
||||
.findFirst().orElse(null);
|
||||
if (!UtilityString.isNullOrEmpty(pedana)) {
|
||||
DtbDocr docr = dtbDoct.getDtbDocr().stream()
|
||||
.filter(row -> row.getCodMart().equalsIgnoreCase(pedana.getCodMart()))
|
||||
.findFirst().orElse(null);
|
||||
|
||||
if (docr == null) {
|
||||
docr = new DtbDocr();
|
||||
docr.setCodMart(pedana.getCodMart())
|
||||
.setQtaDoc(BigDecimal.ZERO)
|
||||
.setOperation(OperationType.INSERT);
|
||||
if (docr == null) {
|
||||
docr = new DtbDocr();
|
||||
docr.setCodMart(pedana.getCodMart())
|
||||
.setQtaDoc(BigDecimal.ZERO)
|
||||
.setOperation(OperationType.INSERT);
|
||||
|
||||
dtbDoct.getDtbDocr().add(docr);
|
||||
}
|
||||
|
||||
docr.setQtaDoc(docr.getQtaDoc().add(BigDecimal.ONE));
|
||||
dtbDoct.getDtbDocr().add(docr);
|
||||
}
|
||||
|
||||
docr.setQtaDoc(docr.getQtaDoc().add(BigDecimal.ONE));
|
||||
}
|
||||
//</editor-fold>
|
||||
}
|
||||
|
||||
public static List<MtbTcol> getListaPedane(List<MtbColt> mtbCotlList, MultiDBTransactionManager multiDBTransactionManager) throws Exception {
|
||||
List<String> codTcolList = mtbCotlList.stream()
|
||||
.filter(x -> !UtilityString.isNullOrEmpty(x.getCodTcol()))
|
||||
.map(x -> UtilityDB.valueToString(x.getCodTcol()))
|
||||
.distinct().collect(Collectors.toList());
|
||||
public static HashMap<String, MtbTcol> getListaTipiColloByBarcodeUls(List<String> barcodeUls, MultiDBTransactionManager multiDBTransactionManager) throws Exception {
|
||||
@NotNull List<HashMap<String, Object>> barcodesWithCodTcol = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(),
|
||||
"SELECT DISTINCT barcode_ul, cod_tcol FROM mtb_colt WHERE barcode_ul IN (" + UtilityQuery.concatStringFieldsWithSeparator(barcodeUls, ",") + ")");
|
||||
|
||||
List<MtbTcol> listaPedane = new ArrayList<>();
|
||||
if (!codTcolList.isEmpty()) {
|
||||
listaPedane = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), String.format(
|
||||
"SELECT cod_tcol,cod_mart from mtb_tcol where cod_tcol in (%s)",
|
||||
StringUtils.join(codTcolList, ",")
|
||||
), MtbTcol.class);
|
||||
if (barcodesWithCodTcol.isEmpty()) new HashMap<>();
|
||||
|
||||
List<String> codTcolList = barcodesWithCodTcol.stream()
|
||||
.map(x -> UtilityHashMap.<String>getValueIfExists(x, "cod_tcol"))
|
||||
.filter(x -> !UtilityString.isNullOrEmpty(x))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (codTcolList.isEmpty()) new HashMap<>();
|
||||
|
||||
final List<MtbTcol> mtbTcolList = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), String.format(
|
||||
"SELECT cod_tcol, " +
|
||||
"cod_mart " +
|
||||
"FROM mtb_tcol " +
|
||||
"WHERE cod_tcol in (%s)",
|
||||
UtilityQuery.concatStringFieldsWithSeparator(codTcolList, ",")
|
||||
), MtbTcol.class);
|
||||
|
||||
if (mtbTcolList.isEmpty()) new HashMap<>();
|
||||
|
||||
HashMap<String, MtbTcol> mtbColtMap = new HashMap<>();
|
||||
|
||||
for (HashMap<String, Object> barcodeWithCodTcol : barcodesWithCodTcol) {
|
||||
String barcodeUl = UtilityHashMap.getValueIfExists(barcodeWithCodTcol, "barcode_ul");
|
||||
String codTcol = UtilityHashMap.getValueIfExists(barcodeWithCodTcol, "cod_tcol");
|
||||
|
||||
MtbTcol mtbTcol = null;
|
||||
|
||||
if (!UtilityString.isNullOrEmpty(codTcol)) {
|
||||
mtbTcol = mtbTcolList.stream()
|
||||
.filter(x -> x.getCodTcol().equalsIgnoreCase(codTcol))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
}
|
||||
|
||||
mtbColtMap.put(barcodeUl, mtbTcol);
|
||||
}
|
||||
|
||||
return listaPedane;
|
||||
return mtbColtMap;
|
||||
}
|
||||
|
||||
public static List<MtbColr> createCambiaPosizioneUlMovement(Connection connection, String sscc, boolean changeCodMdep, String newCodMdep, String newPosizione) throws Exception {
|
||||
return createCambiaPosizioneUlMovements(connection, Collections.singletonList(sscc), changeCodMdep, newCodMdep, newPosizione);
|
||||
}
|
||||
|
||||
public static List<MtbColr> createCambiaPosizioneUlMovements(Connection connection, List<String> ssccList, boolean changeCodMdep, String newCodMdep, String newPosizione) throws Exception {
|
||||
if (UtilityString.isNullOrEmpty(ssccList))
|
||||
throw new MissingDataException("UL da aggiornare");
|
||||
|
||||
WMSGiacenzaULService wmsGiacenzaULService = ApplicationContextProvider.getApplicationContext().getBean(WMSGiacenzaULService.class);
|
||||
|
||||
final List<MvwSitArtUdcDetInventarioDTO> mvwSitArtUdcDetInventarioDTOS =
|
||||
wmsGiacenzaULService.retrieveArtsInGiacenzaByBarcodeUls(connection, ssccList);
|
||||
|
||||
if (mvwSitArtUdcDetInventarioDTOS.isEmpty())
|
||||
throw new Exception("Nessun articolo trovato per il barcode: " + ssccList);
|
||||
|
||||
|
||||
|
||||
final List<MtbColr> movementRows = mvwSitArtUdcDetInventarioDTOS.stream()
|
||||
.map(x -> {
|
||||
final MtbColr mtbColr = WMSUtility.convertMvwItemToMtbColr(x);
|
||||
mtbColr.setPosizioneIn(newPosizione);
|
||||
if(changeCodMdep) mtbColr.setCodMdepIn(newCodMdep);
|
||||
|
||||
mtbColr.setOperation(OperationType.INSERT);
|
||||
|
||||
return mtbColr;
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
|
||||
return movementRows;
|
||||
}
|
||||
|
||||
public static boolean canULBeDeleted(MtbColt mtbColt, MultiDBTransactionManager multiDBTransactionManager) throws Exception {
|
||||
@@ -451,8 +512,6 @@ public class WMSUtility {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public static List<String> retrieveBarcodesInPosizione(Connection connection, String posizione) throws SQLException, IOException, PrimaryDatabaseNotPresentException {
|
||||
String sql = "SELECT * FROM (" +
|
||||
"SELECT barcode_ul FROM mtb_colt WHERE posizione = " + UtilityDB.valueToString(posizione) +
|
||||
|
||||
@@ -35,7 +35,6 @@ import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.user.UserSession;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.config.EmsRestConstants;
|
||||
import it.integry.ems_model.db.ResultSetMapper;
|
||||
import it.integry.ems_model.entity.*;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
@@ -1992,10 +1991,19 @@ public class WMSGenericService {
|
||||
throw new Exception("Nessun deposito di arrivo selezionato");
|
||||
}
|
||||
|
||||
List<MtbColt> mtbCotlList = requestDTO.getMtbColtsToMove();
|
||||
mtbCotlList.stream().peek(x -> x.setOperation(OperationType.SELECT));
|
||||
entityProcessor.processEntityList(mtbCotlList, true);
|
||||
List<String> codMdeps = mtbCotlList.stream().map(MtbColt::getCodMdep).distinct().collect(Collectors.toList());
|
||||
List<String> ulToMove = requestDTO.getMtbColtsToMove().stream()
|
||||
.map(MtbColt::getBarcodeUl)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
|
||||
final List<MvwSitArtUdcDetInventarioDTO> currentItemSituationList =
|
||||
wmsGiacenzaULService.retrieveArtsInGiacenzaByBarcodeUls(multiDBTransactionManager.getPrimaryConnection(),
|
||||
ulToMove);
|
||||
|
||||
List<String> codMdeps = currentItemSituationList.stream()
|
||||
.map(MvwSitArtUdcDetInventarioDTO::getCodMdep)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (codMdeps.isEmpty()) {
|
||||
throw new Exception("Nessun deposito di partenza selezionato!");
|
||||
@@ -2072,7 +2080,7 @@ public class WMSGenericService {
|
||||
entitiesToSave.add(dtbDoct);
|
||||
}
|
||||
|
||||
List<MtbTcol> listaPedane = WMSUtility.getListaPedane(mtbCotlList, multiDBTransactionManager);
|
||||
HashMap<String, MtbTcol> listaPedane = WMSUtility.getListaTipiColloByBarcodeUls(ulToMove, multiDBTransactionManager);
|
||||
MtbColt uds = null;
|
||||
|
||||
if (!gestisciColli) {
|
||||
@@ -2083,42 +2091,50 @@ public class WMSGenericService {
|
||||
uds = wmsLavorazioneService.createUDS(createUDSRequest);
|
||||
}
|
||||
|
||||
for (MtbColt mtbColtToMove : mtbCotlList) {
|
||||
if (dtbDoct != null) {
|
||||
for (MtbColr mtbColr : mtbColtToMove.getMtbColr()) {
|
||||
if (!gestisciColli) {
|
||||
InsertUDSRowRequestDTO insertUDSRowRequest = new InsertUDSRowRequestDTO();
|
||||
insertUDSRowRequest
|
||||
.setSourceMtbColr(mtbColr)
|
||||
.setCodMart(mtbColr.getCodMart())
|
||||
.setQtaTot(mtbColr.getQtaCol())
|
||||
.setQtaCnf(mtbColr.getQtaCnf())
|
||||
.setNumCnf(mtbColr.getNumCnf())
|
||||
.setPartitaMag(mtbColr.getPartitaMag())
|
||||
.setDataScad(mtbColr.getDataScadPartita())
|
||||
.setTargetMtbColt(uds);
|
||||
final MtbColt internalMovement = WMSUtility.createInternalMovement(codMdepPartenza);
|
||||
entitiesToSave.add(internalMovement);
|
||||
|
||||
WMSUtility.createDtbDocrFromMtbColr(
|
||||
dtbDoct,
|
||||
wmsLavorazioneService.insertUDSRow(insertUDSRowRequest).getSavedMtbColr()
|
||||
);
|
||||
} else {
|
||||
WMSUtility.createDtbDocrFromMtbColr(dtbDoct, mtbColr);
|
||||
}
|
||||
|
||||
final List<MtbColr> cambiaPosizioneUlMovements =
|
||||
WMSUtility.createCambiaPosizioneUlMovements(multiDBTransactionManager.getPrimaryConnection(),
|
||||
ulToMove, codMdepPartenza != null && !codMdepPartenza.equalsIgnoreCase(requestDTO.getCodMdep()),
|
||||
requestDTO.getCodMdep(), requestDTO.getPosizione());
|
||||
|
||||
internalMovement.getMtbColr().addAll(cambiaPosizioneUlMovements);
|
||||
|
||||
for (MvwSitArtUdcDetInventarioDTO rowToMove : currentItemSituationList) {
|
||||
|
||||
if (dtbDoct != null) {
|
||||
|
||||
final MtbColr mtbColr = WMSUtility.convertMvwItemToMtbColr(rowToMove);
|
||||
if (!gestisciColli) {
|
||||
InsertUDSRowRequestDTO insertUDSRowRequest = new InsertUDSRowRequestDTO();
|
||||
insertUDSRowRequest
|
||||
.setSourceMtbColr(mtbColr)
|
||||
.setCodMart(rowToMove.getCodMart())
|
||||
.setQtaTot(rowToMove.getQtaCol())
|
||||
.setQtaCnf(rowToMove.getQtaCnf())
|
||||
.setNumCnf(rowToMove.getNumCnf())
|
||||
.setPartitaMag(rowToMove.getPartitaMag())
|
||||
.setDataScad(rowToMove.getDataScad())
|
||||
.setTargetMtbColt(uds);
|
||||
|
||||
WMSUtility.createDtbDocrFromMtbColr(
|
||||
dtbDoct,
|
||||
wmsLavorazioneService.insertUDSRow(insertUDSRowRequest).getSavedMtbColr()
|
||||
);
|
||||
} else {
|
||||
WMSUtility.createDtbDocrFromMtbColr(dtbDoct, mtbColr);
|
||||
}
|
||||
|
||||
WMSUtility.trasferisciPedane(mtbColtToMove, listaPedane, dtbDoct);
|
||||
if (listaPedane.getOrDefault(rowToMove.getBarcodeUl(), null) != null) {
|
||||
WMSUtility.trasferisciPedane(listaPedane.get(rowToMove.getBarcodeUl()), dtbDoct);
|
||||
}
|
||||
}
|
||||
|
||||
mtbColtToMove.setOperation(OperationType.UPDATE);
|
||||
mtbColtToMove
|
||||
.setMtbColr(new ArrayList<>())
|
||||
.setPosizione(UtilityString.isNull(requestDTO.getPosizione(), EmsRestConstants.NULL))
|
||||
.setCodMdep(requestDTO.getCodMdep());
|
||||
|
||||
entitiesToSave.add(mtbColtToMove);
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (dtbDoct != null && !UtilityString.isNullOrEmpty(requestDTO.getAnnotazioni())) {
|
||||
DtbDocr dtbDocr = new DtbDocr()
|
||||
.setDescrizione(UtilityString.substring(requestDTO.getAnnotazioni(), 0, 40))
|
||||
@@ -2965,30 +2981,14 @@ public class WMSGenericService {
|
||||
}
|
||||
|
||||
public void cambiaPosizioneUL(UpdatePosizioneULRequestDTO updatePosizioneULRequestDTO) throws Exception {
|
||||
if (updatePosizioneULRequestDTO.getSscc() == null)
|
||||
throw new MissingDataException("UL da aggiornare");
|
||||
|
||||
final List<MvwSitArtUdcDetInventarioDTO> mvwSitArtUdcDetInventarioDTOS =
|
||||
wmsGiacenzaULService.retrieveArtsInGiacenzaByBarcodeUl(multiDBTransactionManager.getPrimaryConnection(), updatePosizioneULRequestDTO.getSscc());
|
||||
final List<MtbColr> cambiaPosizioneUlMovements = WMSUtility.createCambiaPosizioneUlMovement(multiDBTransactionManager.getPrimaryConnection(),
|
||||
updatePosizioneULRequestDTO.getSscc(),
|
||||
false, null,
|
||||
updatePosizioneULRequestDTO.getPosizione());
|
||||
|
||||
if (mvwSitArtUdcDetInventarioDTOS.isEmpty())
|
||||
throw new Exception("Nessun articolo trovato per il barcode: " + updatePosizioneULRequestDTO.getSscc());
|
||||
|
||||
final MtbColt internalMovement = WMSUtility.createInternalMovement(userSession.getDefaultDepo().getCodMdep());
|
||||
|
||||
|
||||
final List<MtbColr> movementRows = mvwSitArtUdcDetInventarioDTOS.stream()
|
||||
.map(x -> {
|
||||
final MtbColr mtbColr = WMSUtility.convertMvwItemToMtbColr(x);
|
||||
mtbColr.setPosizioneIn(updatePosizioneULRequestDTO.getPosizione());
|
||||
|
||||
mtbColr.setOperation(OperationType.INSERT);
|
||||
|
||||
return mtbColr;
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
|
||||
internalMovement.setMtbColr(movementRows);
|
||||
MtbColt internalMovement = WMSUtility.createInternalMovement(userSession.getDefaultDepo().getCodMdep());
|
||||
internalMovement.setMtbColr(cambiaPosizioneUlMovements);
|
||||
|
||||
entityProcessor.processEntity(internalMovement, multiDBTransactionManager);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
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;
|
||||
@@ -9,16 +7,14 @@ import it.integry.ems.retail.wms.generic.dto.StatoArtInventarioDTO;
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
import it.integry.ems_model.entity.MtbColt;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityHashMap;
|
||||
import it.integry.ems_model.utility.UtilityQuery;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@@ -80,11 +76,23 @@ public class WMSGiacenzaULService {
|
||||
|
||||
List<MvwSitArtUdcDetInventarioDTO> mvwSitArtUdcDetInventarioList = UtilityDB.executeSimpleQueryDTO(connection, sql, MvwSitArtUdcDetInventarioDTO.class);
|
||||
|
||||
Map<String, List<MvwSitArtUdcDetInventarioDTO>> groupedByCodMartAndPartitaMag =
|
||||
mvwSitArtUdcDetInventarioList.stream()
|
||||
.collect(Collectors.groupingBy(dto -> dto.getCodMart() + dto.getPartitaMag()));
|
||||
if(mvwSitArtUdcDetInventarioList == null)
|
||||
return new ArrayList<>();
|
||||
|
||||
return Stream.of(groupedByCodMartAndPartitaMag.entrySet())
|
||||
|
||||
|
||||
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());
|
||||
}}));
|
||||
|
||||
return groupedByCodMartAndPartitaMag.entrySet().stream()
|
||||
.map(entry -> {
|
||||
List<MvwSitArtUdcDetInventarioDTO> dtoList = entry.getValue();
|
||||
|
||||
@@ -92,108 +100,96 @@ public class WMSGiacenzaULService {
|
||||
.map(MvwSitArtUdcDetInventarioDTO::getNumCnf)
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
|
||||
String codMart = dtoList.get(0).getCodMart();
|
||||
String partitaMag = dtoList.get(0).getPartitaMag();
|
||||
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" +
|
||||
" 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)-\n" +
|
||||
" SUM(CASE WHEN mtb_colr_sum.posizione = @codjfas THEN 0 ELSE 1 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";
|
||||
// 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);
|
||||
}
|
||||
// try {
|
||||
// statoArtInventarioDTO = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(connection, query, StatoArtInventarioDTO.class);
|
||||
// } catch (Exception e) {
|
||||
// throw new RuntimeException(e);
|
||||
// }
|
||||
|
||||
return new ArtsInGiacenzaDTO()
|
||||
.setCodMart(codMart)
|
||||
@@ -204,10 +200,10 @@ public class WMSGiacenzaULService {
|
||||
.setDataOrd(dataOrd)
|
||||
.setNumCnf(totalNumCnf)
|
||||
.setCount(dtoList.size())
|
||||
.setStatoArtInventario(statoArtInventarioDTO)
|
||||
// .setStatoArtInventario(statoArtInventarioDTO)
|
||||
.setMvwSitArtUdcDetInventarioDTO(dtoList);
|
||||
})
|
||||
.toList();
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public List<MvwSitArtUdcDetInventarioDTO> retrieveArtsInGiacenzaByArticolo(Connection connection, String codMart, String partitaMag, String codMdep) throws Exception {
|
||||
@@ -252,6 +248,14 @@ public class WMSGiacenzaULService {
|
||||
return UtilityDB.executeSimpleQueryDTO(connection, sql, MvwSitArtUdcDetInventarioDTO.class);
|
||||
}
|
||||
|
||||
public List<MvwSitArtUdcDetInventarioDTO> retrieveArtsInGiacenzaByBarcodeUls(Connection connection, List<String> barcodeUls) throws Exception {
|
||||
|
||||
String sql = createBaseQuery(true) +
|
||||
" AND sit_art.barcode_ul IN (" + UtilityQuery.concatStringFieldsWithSeparator(barcodeUls, ", ") + ")";
|
||||
|
||||
return UtilityDB.executeSimpleQueryDTO(connection, sql, MvwSitArtUdcDetInventarioDTO.class);
|
||||
}
|
||||
|
||||
public List<MvwSitArtUdcDetInventarioDTO> retrieveArtsInGiacenzaByArticoli(Connection connection, List<RetrieveArtsInGiacenzaByArtRequestDTO> inputData) throws Exception {
|
||||
|
||||
List<HashMap<String, Object>> whereCondMaps = inputData.stream()
|
||||
|
||||
Reference in New Issue
Block a user