[WMS] Implementati documenti scarico in CloseUDS lavorazione
This commit is contained in:
@@ -58,8 +58,8 @@ public class LoadColliService {
|
||||
|
||||
for (MtbColt mtbColt : loadColli.getColli()) {
|
||||
mtbColt.setOperation(OperationType.SELECT_OBJECT);
|
||||
Stream.of(mtbColt.getMtbColr()).forEach(mtbColr -> mtbColr.setOperation(OperationType.SELECT_OBJECT));
|
||||
Stream.of(mtbColt.getMtbCols()).forEach(mtbCols -> mtbCols.setOperation(OperationType.SELECT_OBJECT));
|
||||
mtbColt.getMtbColr().forEach(mtbColr -> mtbColr.setOperation(OperationType.SELECT_OBJECT));
|
||||
mtbColt.getMtbCols().forEach(mtbCols -> mtbCols.setOperation(OperationType.SELECT_OBJECT));
|
||||
}
|
||||
|
||||
if (UtilityString.isNullOrEmpty(loadColli.getGestione()) && !UtilityString.isNullOrEmpty(loadColli.getCodDtip())) {
|
||||
@@ -179,11 +179,6 @@ public class LoadColliService {
|
||||
" gtb_divi.cod_divi = dtb_ordt.cod_divi ";
|
||||
|
||||
dtbDoct = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), query, DtbDoct.class);
|
||||
// PreparedStatement ps = multiDBTransactionManager.prepareStatement(query);
|
||||
// ResultSet rs = ps.executeQuery();
|
||||
// dtbDoct = new ResultSetMapper().mapResultSetToList(rs, DtbDoct.class).get(0);
|
||||
// rs.close();
|
||||
// ps.close();
|
||||
} else {
|
||||
if (UtilityString.isNullOrEmpty(loadColli.getCodMdep())) {
|
||||
throw new Exception("Codice Deposito obbligatorio");
|
||||
@@ -198,12 +193,6 @@ public class LoadColliService {
|
||||
" mtb_colr.ser_collo = mtb_colt.ser_collo AND " +
|
||||
" mtb_colr.num_collo = mtb_colt.num_collo ";
|
||||
query = UtilityDB.addwhereCond(query, whereCond, false);
|
||||
//
|
||||
// PreparedStatement ps = multiDBTransactionManager.prepareStatement(query);
|
||||
// ResultSet rs = ps.executeQuery();
|
||||
// dtbDoct = new ResultSetMapper().mapResultSetToList(rs, DtbDoct.class).get(0);
|
||||
// rs.close();
|
||||
// ps.close();
|
||||
dtbDoct = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), query, DtbDoct.class);
|
||||
} else {
|
||||
dtbDoct = new DtbDoct();
|
||||
@@ -273,7 +262,8 @@ public class LoadColliService {
|
||||
}
|
||||
}
|
||||
|
||||
Stream.of(loadColli.getColli()).forEach(x -> x.setUpdateColliFromDoc(true));
|
||||
loadColli.getColli()
|
||||
.forEach(x -> x.setUpdateColliFromDoc(true));
|
||||
|
||||
//AGGIUNGERE CAMPI CHE PASSIAMO DA FUORI
|
||||
dtbDoct.setGestione(loadColli.getGestione())
|
||||
@@ -312,12 +302,12 @@ public class LoadColliService {
|
||||
List<DtbDocr> dtbDocr = loadRigheCollo(whereCond, loadColli);
|
||||
|
||||
if (!dtbDocr.isEmpty()) {
|
||||
com.annimon.stream.Optional<DtbDocr> firstRow = Stream.of(dtbDocr).filter(x -> x.getDataOrd() != null && x.getNumOrd() != null).findFirst();
|
||||
if (firstRow.isPresent()) {
|
||||
dtbDoct
|
||||
.setDataOrd(firstRow.get().getDataOrd())
|
||||
.setNumOrd(firstRow.get().getNumOrd());
|
||||
}
|
||||
dtbDocr.stream()
|
||||
.filter(x -> x.getDataOrd() != null && x.getNumOrd() != null)
|
||||
.findFirst()
|
||||
.ifPresent(docr -> dtbDoct
|
||||
.setDataOrd(docr.getDataOrd())
|
||||
.setNumOrd(docr.getNumOrd()));
|
||||
}
|
||||
|
||||
if (!loadColli.isSaveDoc()) {
|
||||
|
||||
@@ -64,18 +64,10 @@ public class EntityProcessor {
|
||||
private SettingsModel settingsModel;
|
||||
|
||||
public <T> T processEntity(EntityInterface entity, MultiDBTransactionManager multiDBTransactionManager) throws Exception {
|
||||
final RequestDataDTO requestDataDTO = ContextLoader.getCurrentWebApplicationContext().getBean(RequestDataDTO.class);
|
||||
|
||||
String username = "";
|
||||
|
||||
if (requestDataDTO != null && requestDataDTO.isValidUsername()) {
|
||||
username = requestDataDTO.getUsername();
|
||||
}
|
||||
|
||||
return (T) processEntity(entity, true, false, username, multiDBTransactionManager, requestDataDTO, true, false);
|
||||
return processEntity(entity, false, multiDBTransactionManager);
|
||||
}
|
||||
|
||||
public EntityBase processEntity(EntityInterface entity, boolean skipCommit, MultiDBTransactionManager multiDBTransactionManager) throws Exception {
|
||||
public <T> T processEntity(EntityInterface entity, boolean skipCommit, MultiDBTransactionManager multiDBTransactionManager) throws Exception {
|
||||
|
||||
final RequestDataDTO requestDataDTO = ContextLoader.getCurrentWebApplicationContext().getBean(RequestDataDTO.class);
|
||||
String username = "";
|
||||
@@ -84,7 +76,7 @@ public class EntityProcessor {
|
||||
username = requestDataDTO.getUsername();
|
||||
}
|
||||
|
||||
return (EntityBase) processEntity(entity, true, skipCommit, username, multiDBTransactionManager, requestDataDTO, true, false);
|
||||
return (T) processEntity(entity, true, skipCommit, username, multiDBTransactionManager, requestDataDTO, true, false);
|
||||
}
|
||||
|
||||
public EntityBase processEntity(EntityInterface entity, Boolean isSync,
|
||||
@@ -507,8 +499,6 @@ public class EntityProcessor {
|
||||
}
|
||||
}
|
||||
|
||||
multiDBTransactionManager.commitAll();
|
||||
|
||||
return entityList;
|
||||
}
|
||||
|
||||
|
||||
@@ -366,7 +366,7 @@ public class ICONImportService {
|
||||
filtro.setSerCollo(collo.getSerCollo());
|
||||
filtro.setNumCollo(collo.getNumCollo());
|
||||
filtro.setCriterioDistribuzione("U");
|
||||
colTDistr = distrCollo.distribuzioneRigheColloNew(filtro);
|
||||
colTDistr = distrCollo.distribuzioneRigheColloNew(filtro, true);
|
||||
colTDistributed.addAll(colTDistr);
|
||||
|
||||
entityProcessor.processEntityList(colTDistr, multiDBTransactionManager, true);
|
||||
|
||||
@@ -541,7 +541,7 @@ public class MetalSistemImportService {
|
||||
filtro.setSerCollo(colT.getSerCollo());
|
||||
filtro.setNumCollo(colT.getNumCollo());
|
||||
filtro.setCriterioDistribuzione("U");
|
||||
List<MtbColt> colTDistr = distrCollo.distribuzioneRigheColloNew(filtro);
|
||||
List<MtbColt> colTDistr = distrCollo.distribuzioneRigheColloNew(filtro, true);
|
||||
|
||||
index = 0;
|
||||
colliCommessa = new ArrayList<>();
|
||||
|
||||
@@ -7,6 +7,7 @@ import it.integry.ems.response.EsitoType;
|
||||
import it.integry.ems.response.ServiceRestResponse;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems_model.config.EmsRestConstants;
|
||||
import it.integry.ems_model.utility.UtilityLocalDate;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -15,7 +16,6 @@ import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@@ -63,15 +63,9 @@ public class PackageImportController {
|
||||
public @ResponseBody
|
||||
ServiceRestResponse importColloDaProduzioneJson(HttpServletRequest request,
|
||||
@RequestParam(CommonConstants.PROFILE_DB) String configuration,
|
||||
@RequestBody ImportColliDaProduzioneDTO colloToImport) {
|
||||
@RequestBody ImportColliDaProduzioneDTO colloToImport) throws Exception {
|
||||
|
||||
try {
|
||||
Date dataVers = new Date();
|
||||
return ServiceRestResponse.createPositiveResponse(packagesImportService.importColloDaProduzione(colloToImport, dataVers));
|
||||
} catch (Exception e) {
|
||||
logger.error(request.getRequestURI(), e);
|
||||
return ServiceRestResponse.createNegativeResponse(configuration, e);
|
||||
}
|
||||
return ServiceRestResponse.createPositiveResponse(packagesImportService.importColloDaProduzione(colloToImport, UtilityLocalDate.getNowTime()));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package it.integry.ems.logistic.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
public class ImportColliDaProduzioneDTO {
|
||||
@@ -15,7 +16,7 @@ public class ImportColliDaProduzioneDTO {
|
||||
|
||||
private int colliBancale;
|
||||
private BigDecimal qtaCnf;
|
||||
private Date dataCollo;
|
||||
private LocalDate dataCollo;
|
||||
|
||||
private String preparatoDa;
|
||||
private Date dataOrd;
|
||||
@@ -108,11 +109,11 @@ public class ImportColliDaProduzioneDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataCollo() {
|
||||
public LocalDate getDataCollo() {
|
||||
return dataCollo;
|
||||
}
|
||||
|
||||
public ImportColliDaProduzioneDTO setDataCollo(Date dataCollo) {
|
||||
public ImportColliDaProduzioneDTO setDataCollo(LocalDate dataCollo) {
|
||||
this.dataCollo = dataCollo;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -67,9 +67,10 @@ public class FiltroDistribuzioneColloDTO {
|
||||
U("U"), //AGGIORNA IL COLLO ESISTENTE
|
||||
O("O"), //DIVIDE IL COLLO INIZIALE PER ORDINE
|
||||
G("G"), //DIVIDE IL COLLO INIZIALE PER IL GRUPPO BOLLA DEGLI ARTICOLI
|
||||
UP("UP"); //SI TRATTA DI UN COLLO DI LAVORAZIONE CHE HA SULLE RIGHE I RIFERIMENTI DELL'ORDINE DI PRODUZIONE (GESTIONE_RIF = 'A')
|
||||
UP("UP"), //SI TRATTA DI UN COLLO DI LAVORAZIONE CHE HA SULLE RIGHE I RIFERIMENTI DELL'ORDINE DI PRODUZIONE (GESTIONE_RIF = 'A')
|
||||
//E VIENE LANCIATA LA NORMALE DISTRIBUZIONE MA NELL'AGGIORNARE IL COLLO VENGONO LETTI I RIFERIMENTI DELL'ORDINE DI LAVORAZIOKNE
|
||||
// A CUI LA CHIAVE DATA,NUMERO E RIGA ORDINE FANNO RIFERIMENTO
|
||||
FASE("FASE");
|
||||
|
||||
|
||||
private String text;
|
||||
|
||||
@@ -24,6 +24,9 @@ import java.math.RoundingMode;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static java.util.stream.Collectors.groupingBy;
|
||||
|
||||
@Component
|
||||
public class DistribuzioneColliService {
|
||||
@@ -32,7 +35,7 @@ public class DistribuzioneColliService {
|
||||
private final List<MtbColt> mCurrentlyDistributingMtbColt = new ArrayList<>();
|
||||
|
||||
|
||||
public List<MtbColt> distribuzioneRigheColloNew(final FiltroDistribuzioneColloDTO filtroDistribuzioneColloDTO) throws Exception {
|
||||
public List<MtbColt> distribuzioneRigheColloNew(final FiltroDistribuzioneColloDTO filtroDistribuzioneColloDTO, boolean skipCommit) throws Exception {
|
||||
|
||||
MultiDBTransactionManager multiDBTransactionManager = ContextLoader.getCurrentWebApplicationContext().getBean(MultiDBTransactionManager.class);
|
||||
EntityProcessor entityProcessor = ContextLoader.getCurrentWebApplicationContext().getBean(EntityProcessor.class);
|
||||
@@ -81,7 +84,7 @@ public class DistribuzioneColliService {
|
||||
psRemoveOrdRifsFromMtbColrs.executeUpdate();
|
||||
psRemoveOrdRifsFromMtbColrs.close();
|
||||
|
||||
List<EntityBase> result = entityProcessor.processEntity(sourceMtbColt, multiDBTransactionManager);
|
||||
List<EntityBase> result = entityProcessor.processEntity(sourceMtbColt, skipCommit, multiDBTransactionManager);
|
||||
|
||||
if (result == null || result.isEmpty())
|
||||
throw new EntityNotFoundException(String.format("Il collo numero %d del %s non esiste",
|
||||
@@ -130,7 +133,7 @@ public class DistribuzioneColliService {
|
||||
String filtroOrdini = sourceMtbColt.getFiltroOrdini();
|
||||
String whereCondOrd = null;
|
||||
|
||||
if (UtilityString.isNullOrEmpty(filtroOrdini)){
|
||||
if (UtilityString.isNullOrEmpty(filtroOrdini)) {
|
||||
return Collections.singletonList(sourceMtbColt.setMtbColr(sourceMtbColrs));
|
||||
}
|
||||
|
||||
@@ -154,7 +157,7 @@ public class DistribuzioneColliService {
|
||||
whereCondOrd = UtilityXML.XML2WhereCond(xmlFilter.toString());
|
||||
}
|
||||
|
||||
if (UtilityString.isNullOrEmpty(whereCondOrd)){
|
||||
if (UtilityString.isNullOrEmpty(whereCondOrd)) {
|
||||
return Collections.singletonList(sourceMtbColt.setMtbColr(sourceMtbColrs));
|
||||
}
|
||||
|
||||
@@ -230,15 +233,21 @@ public class DistribuzioneColliService {
|
||||
" cod_kit, " +
|
||||
" num_cnf_evasa, " +
|
||||
" id_viaggio, " +
|
||||
" data_cons_anag " +
|
||||
" data_cons_anag," +
|
||||
" dtb_ordt.cod_jfas AS cod_jfas " +
|
||||
" FROM ovw_ordini_inevasi dtb_ordr " +
|
||||
" INNER JOIN dtb_ordt ON dtb_ordr.gestione = dtb_ordt.gestione AND " +
|
||||
" dtb_ordr.data_ord = dtb_ordt.data_ord AND " +
|
||||
" dtb_ordr.num_ord = dtb_ordt.num_ord " +
|
||||
" WHERE " + whereCondOrd;
|
||||
|
||||
List<DtbOrdt> orderTestate = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), dtbOrdrSql, DtbOrdt.class, 30);
|
||||
List<DtbOrdr> orderRows = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), dtbOrdrSql, DtbOrdr.class, 30);
|
||||
if(orderRows == null) orderRows = new ArrayList<>();
|
||||
if (orderRows == null) orderRows = new ArrayList<>();
|
||||
|
||||
orderTestate = Stream.of(orderTestate)
|
||||
.distinct()
|
||||
.toList();
|
||||
|
||||
List<MtbColr> mtbColrsToSave = new ArrayList<>();
|
||||
|
||||
@@ -251,13 +260,13 @@ public class DistribuzioneColliService {
|
||||
List<MtbColr> found;
|
||||
Predicate<MtbColr> qtaCnfPredicate;
|
||||
|
||||
if (sourceMtbColr.getFlagQtaCnfFissa().equalsIgnoreCase("N") && flagRaggXQtaCnf.equalsIgnoreCase("S")){
|
||||
if (sourceMtbColr.getFlagQtaCnfFissa().equalsIgnoreCase("N") && flagRaggXQtaCnf.equalsIgnoreCase("S")) {
|
||||
qtaCnfPredicate = mtbColr -> Objects.equals(mtbColr.getQtaCnf().setScale(5, RoundingMode.HALF_UP), sourceMtbColr.getQtaCnf().setScale(5, RoundingMode.HALF_UP));
|
||||
} else {
|
||||
qtaCnfPredicate = mtbColr -> true;
|
||||
}
|
||||
|
||||
found = Stream.of(groupedMtbColrs)
|
||||
found = groupedMtbColrs.stream()
|
||||
.filter(mtbColr -> Objects.equals(mtbColr.getPartitaMag(), sourceMtbColr.getPartitaMag()) &&
|
||||
Objects.equals(mtbColr.getCodMart(), sourceMtbColr.getCodMart()) &&
|
||||
Objects.equals(mtbColr.getCodTagl(), sourceMtbColr.getCodTagl()) &&
|
||||
@@ -269,9 +278,9 @@ public class DistribuzioneColliService {
|
||||
Objects.equals(mtbColr.getSerColloRif(), sourceMtbColr.getSerColloRif()) &&
|
||||
qtaCnfPredicate.test(mtbColr)
|
||||
)
|
||||
.toList();
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (found != null && found.size() > 0) {
|
||||
if (found != null && !found.isEmpty()) {
|
||||
found.get(0).setQtaCol(found.get(0).getQtaCol().add(sourceMtbColr.getQtaCol()));
|
||||
found.get(0).setNumCnf(found.get(0).getNumCnf().add(sourceMtbColr.getNumCnf()));
|
||||
} else {
|
||||
@@ -312,7 +321,7 @@ public class DistribuzioneColliService {
|
||||
sourceMtbColr.setQtaCnf(currentMtbAart.getQtaCnf());
|
||||
} else {
|
||||
if (sourceMtbColr.getQtaCol().compareTo(BigDecimal.ZERO) > 0 && sourceMtbColr.getNumCnf().compareTo(BigDecimal.ZERO) > 0) {
|
||||
if (flagRaggXQtaCnf.equalsIgnoreCase("N")){
|
||||
if (flagRaggXQtaCnf.equalsIgnoreCase("N")) {
|
||||
sourceMtbColr.setQtaCnf(sourceMtbColr.getQtaCol().divide(sourceMtbColr.getNumCnf(), RoundingMode.HALF_UP));
|
||||
} else {
|
||||
//Se la qta_cnf + variabile ed il DISTRIBUISCI_X_QTA_CNF = S allora la qta_cnf deve essere quella presente nel collo
|
||||
@@ -325,7 +334,7 @@ public class DistribuzioneColliService {
|
||||
//Prendo tutte le righe d'ordine con quest'articolo / partita
|
||||
//solo se la partita non è NULL sull'ordine ed è uguale su collo e ordine
|
||||
List<DtbOrdr> artOrderRowsWithPart = null;
|
||||
if (flagRaggXQtaCnf.equalsIgnoreCase("S") && "N".equalsIgnoreCase(currentMtbAart.getFlagQtaCnfFissa())){
|
||||
if (flagRaggXQtaCnf.equalsIgnoreCase("S") && "N".equalsIgnoreCase(currentMtbAart.getFlagQtaCnfFissa())) {
|
||||
artOrderRowsWithPart = Stream.of(orderRows)
|
||||
.filter(dtbOrdr -> UtilityString.equalsIgnoreCase(dtbOrdr.getCodMart(), finalSourceMtbColr.getCodMart()) &&
|
||||
UtilityString.equalsIgnoreCase(dtbOrdr.getPartitaMag(), finalSourceMtbColr.getPartitaMag()) &&
|
||||
@@ -333,7 +342,7 @@ public class DistribuzioneColliService {
|
||||
UtilityString.equalsIgnoreCase(dtbOrdr.getCodCol(), finalSourceMtbColr.getCodCol()) &&
|
||||
Objects.equals(dtbOrdr.getQtaCnf().setScale(5, RoundingMode.HALF_UP), finalSourceMtbColr.getQtaCnf().setScale(5, RoundingMode.HALF_UP)))
|
||||
.toList();
|
||||
}else {
|
||||
} else {
|
||||
artOrderRowsWithPart = Stream.of(orderRows)
|
||||
.filter(dtbOrdr -> UtilityString.equalsIgnoreCase(dtbOrdr.getCodMart(), finalSourceMtbColr.getCodMart()) &&
|
||||
UtilityString.equalsIgnoreCase(dtbOrdr.getPartitaMag(), finalSourceMtbColr.getPartitaMag()) &&
|
||||
@@ -392,12 +401,12 @@ public class DistribuzioneColliService {
|
||||
//Prendo tutte le righe d'ordine con quest'articolo / partita
|
||||
//solo se la partita è NULL sull'ordine
|
||||
List<DtbOrdr> artOrderRowsNoPart = null;
|
||||
if (flagRaggXQtaCnf.equalsIgnoreCase("S") && "N".equalsIgnoreCase(currentMtbAart.getFlagQtaCnfFissa())){
|
||||
if (flagRaggXQtaCnf.equalsIgnoreCase("S") && "N".equalsIgnoreCase(currentMtbAart.getFlagQtaCnfFissa())) {
|
||||
artOrderRowsNoPart = Stream.of(orderRows)
|
||||
.filter(dtbOrdr -> UtilityString.equalsIgnoreCase(dtbOrdr.getCodMart(), finalSourceMtbColr.getCodMart()) &&
|
||||
(dtbOrdr.getPartitaMag() == null) &&
|
||||
UtilityString.equalsIgnoreCase(dtbOrdr.getCodTagl(), finalSourceMtbColr.getCodTagl()) &&
|
||||
UtilityString.equalsIgnoreCase(dtbOrdr.getCodCol(), finalSourceMtbColr.getCodCol()) &&
|
||||
UtilityString.equalsIgnoreCase(dtbOrdr.getCodCol(), finalSourceMtbColr.getCodCol()) &&
|
||||
Objects.equals(dtbOrdr.getQtaCnf().setScale(5, RoundingMode.HALF_UP), finalSourceMtbColr.getQtaCnf().setScale(5, RoundingMode.HALF_UP)))
|
||||
.toList();
|
||||
} else {
|
||||
@@ -459,7 +468,8 @@ public class DistribuzioneColliService {
|
||||
|
||||
}
|
||||
|
||||
if (criterioDistribuzione == FiltroDistribuzioneColloDTO.CriterioDistribuzioneEnum.U) {
|
||||
if (criterioDistribuzione == FiltroDistribuzioneColloDTO.CriterioDistribuzioneEnum.U ||
|
||||
criterioDistribuzione == FiltroDistribuzioneColloDTO.CriterioDistribuzioneEnum.FASE) {
|
||||
|
||||
// Aggiornamento riga ordine: viene impostata la parola chiave USED per indicare che la riga è stata processata
|
||||
// da un disponsitivo esterno e quindi verrà scaricata successivamente con la chiusura della produzione
|
||||
@@ -467,7 +477,7 @@ public class DistribuzioneColliService {
|
||||
|
||||
|
||||
//Leggo tutte le righe d'orine interessate e ne modifico il campo SYSTEM_NOTE
|
||||
final List<DtbOrdr> dtbOrdrToUpdate = Stream.of(mtbColrsToSave)
|
||||
final List<DtbOrdr> dtbOrdrToUpdate = mtbColrsToSave.stream()
|
||||
.map(mtbColr -> {
|
||||
DtbOrdr dtbOrdr = new DtbOrdr();
|
||||
dtbOrdr.setGestione(filtroDistribuzioneColloDTO.getGestione());
|
||||
@@ -479,10 +489,10 @@ public class DistribuzioneColliService {
|
||||
return dtbOrdr;
|
||||
})
|
||||
.distinct()
|
||||
.toList();
|
||||
.collect(Collectors.toList());
|
||||
|
||||
|
||||
if (dtbOrdrToUpdate != null && dtbOrdrToUpdate.size() > 0) {
|
||||
if (dtbOrdrToUpdate != null && !dtbOrdrToUpdate.isEmpty()) {
|
||||
|
||||
//Creo le testate per ogni ordine trovato nelle righe
|
||||
List<DtbOrdt> dtbOrdtToUpdate = Stream.of(dtbOrdrToUpdate)
|
||||
@@ -499,18 +509,19 @@ public class DistribuzioneColliService {
|
||||
.toList();
|
||||
|
||||
|
||||
if (dtbOrdtToUpdate != null && dtbOrdtToUpdate.size() > 0) {
|
||||
if (dtbOrdtToUpdate != null && !dtbOrdtToUpdate.isEmpty()) {
|
||||
|
||||
//Associo le righe alla testata
|
||||
Stream.of(dtbOrdtToUpdate)
|
||||
dtbOrdtToUpdate
|
||||
.forEach(dtbOrdt -> {
|
||||
List<DtbOrdr> dtbOrdrs = Stream.of(dtbOrdrToUpdate)
|
||||
List<DtbOrdr> dtbOrdrs = dtbOrdrToUpdate.stream()
|
||||
.filter(dtbOrdr -> dtbOrdr.getGestione().equals(dtbOrdt.getGestione()) &&
|
||||
dtbOrdr.getNumOrd().equals(dtbOrdt.getNumOrd()) &&
|
||||
dtbOrdr.getDataOrd().equals(dtbOrdt.getDataOrd())).toList();
|
||||
dtbOrdr.getDataOrd().equals(dtbOrdt.getDataOrd()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
|
||||
if (dtbOrdrs != null && dtbOrdrs.size() > 0)
|
||||
if (dtbOrdrs != null && !dtbOrdrs.isEmpty())
|
||||
dtbOrdt.getDtbOrdr().addAll(dtbOrdrs);
|
||||
|
||||
|
||||
@@ -564,16 +575,27 @@ public class DistribuzioneColliService {
|
||||
|
||||
MtbColt finalSourceMtbColt = sourceMtbColt;
|
||||
List<DtbOrdr> finalOrderRows = orderRows;
|
||||
Stream.of(mtbColtByOrders)
|
||||
List<DtbOrdt> finalOrderTestate = orderTestate;
|
||||
|
||||
mtbColtByOrders
|
||||
.forEach(mtbColt -> {
|
||||
|
||||
DtbOrdr dtbOrdr = Stream.of(finalOrderRows)
|
||||
DtbOrdt dtbOrdt = finalOrderTestate.stream()
|
||||
.filter(dtbOrdt1 -> dtbOrdt1.getNumOrd().equals(mtbColt.getNumOrd()) &&
|
||||
dtbOrdt1.getDataOrd().equals(mtbColt.getDataOrd()) &&
|
||||
dtbOrdt1.getGestione().equals(mtbColt.getGestione()))
|
||||
.findFirst()
|
||||
.get();
|
||||
|
||||
DtbOrdr dtbOrdr = finalOrderRows.stream()
|
||||
.filter(dtbOrdr1 -> dtbOrdr1.getNumOrd().equals(mtbColt.getNumOrd()) &&
|
||||
dtbOrdr1.getDataOrd().equals(mtbColt.getDataOrd()) &&
|
||||
dtbOrdr1.getGestione().equals(mtbColt.getGestione()))
|
||||
.findFirst()
|
||||
.get();
|
||||
|
||||
mtbColt.setCodJfas(dtbOrdt.getCodJfas());
|
||||
|
||||
mtbColt.setCodMdep(dtbOrdr.getCodMdep());
|
||||
mtbColt.setCodAnag(dtbOrdr.getCodAnag());
|
||||
mtbColt.setRifOrd(finalSourceMtbColt.getRifOrd());
|
||||
@@ -605,6 +627,13 @@ public class DistribuzioneColliService {
|
||||
entityToSave.addAll(mtbColtByOrders);
|
||||
break;
|
||||
|
||||
case FASE:
|
||||
List<MtbColt> mtbColtByCodJfas = splitMtbColrsByCodJfas(sourceMtbColt, orderTestate, mtbColrsToSave);
|
||||
|
||||
mtbColrsToSave.clear();
|
||||
entityToSave.addAll(mtbColtByCodJfas);
|
||||
break;
|
||||
|
||||
case U:
|
||||
case G:
|
||||
case UP:
|
||||
@@ -670,10 +699,10 @@ public class DistribuzioneColliService {
|
||||
entityToSave.add(sourceMtbColt);
|
||||
|
||||
|
||||
List<EntityBase> saveResponse = entityProcessor.processEntityList(entityToSave, true);
|
||||
List<EntityBase> saveResponse = entityProcessor.processEntityList(entityToSave, skipCommit);
|
||||
|
||||
|
||||
if (saveResponse != null && saveResponse.size() > 0) {
|
||||
if (saveResponse != null && !saveResponse.isEmpty()) {
|
||||
for (EntityBase responseEntity : saveResponse) {
|
||||
if (responseEntity.getException() != null) throw responseEntity.getException();
|
||||
|
||||
@@ -734,20 +763,20 @@ public class DistribuzioneColliService {
|
||||
|
||||
if (mtbColtSplitted == null) return null;
|
||||
|
||||
if (mtbColtSplitted.size() > 0) {
|
||||
if (!mtbColtSplitted.isEmpty()) {
|
||||
|
||||
for (final MtbColt mtbColt : mtbColtSplitted) {
|
||||
|
||||
mtbColt.setMtbColr(new ArrayList<>());
|
||||
|
||||
List<MtbColr> mtbColrsToAdd = Stream.of(inputMtbColrs)
|
||||
List<MtbColr> mtbColrsToAdd = inputMtbColrs.stream()
|
||||
.filter(mtbColr -> mtbColt.getDataOrd().equals(mtbColr.getDataOrd()) &&
|
||||
mtbColt.getNumOrd().equals(mtbColr.getNumOrd()) &&
|
||||
mtbColr.getQtaCol().compareTo(BigDecimal.ZERO) > 0)
|
||||
.toList();
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (mtbColrsToAdd != null && mtbColrsToAdd.size() > 0) {
|
||||
Stream.of(mtbColrsToAdd)
|
||||
if (mtbColrsToAdd != null && !mtbColrsToAdd.isEmpty()) {
|
||||
mtbColrsToAdd
|
||||
.forEach(mtbColr -> {
|
||||
mtbColr.setOperation(OperationType.INSERT_OR_UPDATE);
|
||||
mtbColt.getMtbColr().add(mtbColr);
|
||||
@@ -756,8 +785,95 @@ public class DistribuzioneColliService {
|
||||
}
|
||||
}
|
||||
|
||||
return Stream.of(mtbColtSplitted)
|
||||
.filter(mtbColt -> mtbColt.getMtbColr().size() > 0).toList();
|
||||
return mtbColtSplitted.stream()
|
||||
.filter(mtbColt -> !mtbColt.getMtbColr().isEmpty())
|
||||
.collect(Collectors.toList());
|
||||
|
||||
}
|
||||
|
||||
private List<MtbColt> splitMtbColrsByCodJfas(MtbColt inputMtbColt, List<DtbOrdt> inputOrders, List<MtbColr> inputMtbColrs) {
|
||||
final Map<Object, List<HashMap<String, Object>>> ordersByCodJfas = inputOrders.stream()
|
||||
.map(x -> new HashMap<String, Object>() {{
|
||||
put("data_ord", x.getDataOrd());
|
||||
put("num_ord", x.getNumOrd());
|
||||
put("gestione", x.getGestione());
|
||||
put("cod_jfas", x.getCodJfas());
|
||||
}})
|
||||
.distinct()
|
||||
.collect(groupingBy(x -> x.get("cod_jfas")));
|
||||
|
||||
List<MtbColt> mtbColts = new ArrayList<>();
|
||||
|
||||
for (List<HashMap<String, Object>> orders : ordersByCodJfas.values()) {
|
||||
|
||||
|
||||
final List<MtbColr> collect = orders.stream()
|
||||
.map(x -> inputMtbColrs.stream()
|
||||
.filter(y -> y.getGestione().equalsIgnoreCase((String) x.get("gestione")) &&
|
||||
y.getNumOrd().equals(x.get("num_ord")) &&
|
||||
y.getDataOrd().equals(x.get("data_ord")))
|
||||
.collect(Collectors.toList()))
|
||||
.flatMap(Collection::stream)
|
||||
.peek(x -> x.setNumCollo(null))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (!collect.isEmpty()) {
|
||||
|
||||
MtbColt clonedMtbColt = (MtbColt) inputMtbColt.clone();
|
||||
clonedMtbColt.setNumCollo(null);
|
||||
clonedMtbColt.setMtbColr(collect);
|
||||
clonedMtbColt.setCodJfas((String) orders.get(0).get("cod_jfas"));
|
||||
clonedMtbColt.setOperation(OperationType.INSERT_OR_UPDATE);
|
||||
|
||||
mtbColts.add(clonedMtbColt);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
return mtbColts;
|
||||
|
||||
// List<MtbColt> mtbColtSplitted = Stream.of(inputMtbColrs)
|
||||
// .distinctBy(mtbColr -> UtilityDate.formatDate(mtbColr.getDataOrd(), CommonConstants.DATE_FORMAT_YMD) + mtbColr.getNumOrd() + mtbColr.getGestione())
|
||||
// .map(mtbColr -> {
|
||||
// MtbColt mtbColt = new MtbColt();
|
||||
//
|
||||
// mtbColt.setDataOrd(mtbColr.getDataOrd());
|
||||
// mtbColt.setNumOrd(mtbColr.getNumOrd());
|
||||
// mtbColt.setGestione(mtbColr.getGestione());
|
||||
//
|
||||
// mtbColt.setOperation(OperationType.INSERT_OR_UPDATE);
|
||||
//
|
||||
// return mtbColt;
|
||||
// })
|
||||
// .toList();
|
||||
//
|
||||
// if (mtbColtSplitted == null) return null;
|
||||
//
|
||||
// if (!mtbColtSplitted.isEmpty()) {
|
||||
//
|
||||
// for (final MtbColt mtbColt : mtbColtSplitted) {
|
||||
//
|
||||
// mtbColt.setMtbColr(new ArrayList<>());
|
||||
//
|
||||
// List<MtbColr> mtbColrsToAdd = inputMtbColrs.stream()
|
||||
// .filter(mtbColr -> mtbColt.getDataOrd().equals(mtbColr.getDataOrd()) &&
|
||||
// mtbColt.getNumOrd().equals(mtbColr.getNumOrd()) &&
|
||||
// mtbColr.getQtaCol().compareTo(BigDecimal.ZERO) > 0)
|
||||
// .collect(Collectors.toList());
|
||||
//
|
||||
// if (mtbColrsToAdd != null && !mtbColrsToAdd.isEmpty()) {
|
||||
// mtbColrsToAdd
|
||||
// .forEach(mtbColr -> {
|
||||
// mtbColr.setOperation(OperationType.INSERT_OR_UPDATE);
|
||||
// mtbColt.getMtbColr().add(mtbColr);
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// return mtbColtSplitted.stream()
|
||||
// .filter(mtbColt -> !mtbColt.getMtbColr().isEmpty())
|
||||
// .collect(Collectors.toList());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
|
||||
@Service
|
||||
@@ -319,7 +320,7 @@ public class PackagesImportService {
|
||||
.setCodTcol(details[5])
|
||||
.setFornitore(details[6])
|
||||
.setColliBancale(new Integer(details[7]))
|
||||
.setDataCollo(UtilityString.parseDate(details[8]))
|
||||
.setDataCollo(UtilityString.parseLocalDate(details[8]))
|
||||
.setDataOrd(UtilityString.parseDate(details[10]))
|
||||
.setNumOrd(new Integer(details[11]))
|
||||
.setCodJfas(details[12])
|
||||
@@ -340,7 +341,7 @@ public class PackagesImportService {
|
||||
public List<MtbColt> importColliDaProduzione(List<ImportColliDaProduzioneDTO> importColliList) throws Exception {
|
||||
List<MtbColt> savedMtbColt = new ArrayList<>();
|
||||
|
||||
Date dataVers = new Date();
|
||||
LocalDateTime dataVers = UtilityLocalDate.getNowTime();
|
||||
|
||||
for (ImportColliDaProduzioneDTO importColliProd : importColliList) {
|
||||
savedMtbColt.addAll(importColloDaProduzione(importColliProd, dataVers));
|
||||
@@ -348,7 +349,7 @@ public class PackagesImportService {
|
||||
|
||||
|
||||
//CHIAMATA A PROCESS ENTITY LIST
|
||||
if (savedMtbColt.size() == 0) {
|
||||
if (savedMtbColt.isEmpty()) {
|
||||
throw new Exception("Non ci sono colli creati");
|
||||
}
|
||||
|
||||
@@ -356,14 +357,14 @@ public class PackagesImportService {
|
||||
}
|
||||
|
||||
|
||||
public List<MtbColt> importColloDaProduzione(ImportColliDaProduzioneDTO importColliProd, Date dataVers) throws Exception {
|
||||
public List<MtbColt> importColloDaProduzione(ImportColliDaProduzioneDTO importColliProd, LocalDateTime dataVers) throws Exception {
|
||||
Connection connection = multiDBTransactionManager.getPrimaryConnection();
|
||||
|
||||
String serCollo = setupGest.getImportSetup(connection, "COLLI", "COLLI_DA_PRODUZIONE", "SER_COLLO");
|
||||
String flagStart = UtilityString.streNull(setupGest.getImportSetup(connection, "COLLI", "COLLI_DA_PRODUZIONE", "AUTO_START"));
|
||||
String flagStop = UtilityString.streNull(setupGest.getImportSetup(connection, "COLLI", "COLLI_DA_PRODUZIONE", "AUTO_STOP"));
|
||||
|
||||
dataVers = UtilityDate.RelativeDateTime(dataVers, UtilityDate.DaysAfter(dataVers, importColliProd.getDataCollo()));
|
||||
dataVers = importColliProd.getDataCollo().atTime(dataVers.getHour(), dataVers.getMinute(), dataVers.getSecond());
|
||||
|
||||
String query = null;
|
||||
if (importColliProd.getGestione().equalsIgnoreCase("L")) {
|
||||
@@ -404,7 +405,7 @@ public class PackagesImportService {
|
||||
}
|
||||
mtbColt.setCodMdep(codMdep)
|
||||
.setPreparatoDa(requestDataDTO.getUsername())
|
||||
.setDataCollo(UtilityLocalDate.localDateFromDate(importColliProd.getDataCollo()))
|
||||
.setDataCollo(importColliProd.getDataCollo())
|
||||
.setSerCollo(serCollo)
|
||||
.setCodTcol(importColliProd.getCodTcol())
|
||||
.setPesoKg(importColliProd.getPesoLordo())
|
||||
@@ -413,7 +414,7 @@ public class PackagesImportService {
|
||||
.setNumOrd(importColliProd.getNumOrd())
|
||||
.setGestione(importColliProd.getGestione())
|
||||
.setSegno(1)
|
||||
.setDataVers(UtilityLocalDate.localDateTimeFromDate(dataVers))
|
||||
.setDataVers(dataVers)
|
||||
.setCodJfas(importColliProd.getCodJfas())
|
||||
.setAnnotazioni(importColliProd.getAnnotazioni());
|
||||
|
||||
@@ -448,7 +449,7 @@ public class PackagesImportService {
|
||||
MtbColt mtbColtV = new MtbColt()
|
||||
.setGestione("V")
|
||||
.setCodMdep(codMdep)
|
||||
.setDataCollo(UtilityLocalDate.localDateFromDate(importColliProd.getDataCollo()))
|
||||
.setDataCollo(importColliProd.getDataCollo())
|
||||
.setSerCollo(serCollo)
|
||||
.setSegno(-1)
|
||||
.setPesoKg(importColliProd.getPesoLordo())
|
||||
@@ -456,7 +457,7 @@ public class PackagesImportService {
|
||||
.setCodTcol(importColliProd.getCodTcol())
|
||||
.setPreparatoDa(requestDataDTO.getUsername())
|
||||
.setAnnotazioni(importColliProd.getFornitore())
|
||||
.setDataVers(UtilityLocalDate.localDateTimeFromDate(dataVers))
|
||||
.setDataVers(dataVers)
|
||||
.setMtbColr(new ArrayList<>());
|
||||
mtbColtV.setOperation(OperationType.INSERT);
|
||||
entityBases.add(mtbColtV);
|
||||
@@ -565,7 +566,7 @@ public class PackagesImportService {
|
||||
|
||||
ordSteps = new DtbOrdSteps()
|
||||
.setDataIniz(dataIniz)
|
||||
.setDataFine(dataVers)
|
||||
.setDataFine(UtilityLocalDate.localDateTimeToDate(dataVers))
|
||||
.setCodJfas(importColliProd.getCodJfas())
|
||||
.setIdRiga(idRiga)
|
||||
.setIdStep(maxStep);
|
||||
@@ -576,7 +577,7 @@ public class PackagesImportService {
|
||||
entityBases.add(ordT);
|
||||
} else if (maxStep > 0 && dataFineStep != null) {
|
||||
ordSteps = new DtbOrdSteps()
|
||||
.setDataFine(dataVers)
|
||||
.setDataFine(UtilityLocalDate.localDateTimeToDate(dataVers))
|
||||
.setCodJfas(importColliProd.getCodJfas())
|
||||
.setIdRiga(idRiga)
|
||||
.setIdStep(maxStep);
|
||||
|
||||
@@ -5,7 +5,6 @@ import it.integry.annotations.PostContextConstruct;
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.looper.service.LooperService;
|
||||
import it.integry.ems.production.dto.OrdineLavorazioneDTO;
|
||||
import it.integry.ems.retail.pvmRetail.dto.OrdineInevasoDTO;
|
||||
import it.integry.ems.retail.pvmRetail.dto.OrdineInevasoGroupMercDTO;
|
||||
import it.integry.ems.settings.Model.AvailableConnectionsModel;
|
||||
import it.integry.ems.settings.Model.SettingsModel;
|
||||
@@ -489,7 +488,7 @@ public class ProductionOrderDataHandlerService {
|
||||
" jtb_cicl.unt_mis_prod, " +
|
||||
" mtb_tcol.descrizione," +
|
||||
" mtb_aart.flag_tracciabilita," +
|
||||
" setupCaricoImmediato.flag_carico_scarico_immediato " +
|
||||
" setupCaricoImmediato.flag_carico_scarico_immediato, dtb_ordt.data_cons_prod_max " +
|
||||
" ORDER BY dtb_ordr.data_ord, dtb_ordr.num_ord, dtb_ordr.pos_riga, dtb_ordt.num_ord";
|
||||
}
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ public class WMSColliController {
|
||||
|
||||
|
||||
if (useNewDistribution)
|
||||
response.setEntityList(wmsColliService.distribuisciUL(filtroDistribuzioneColloDTO));
|
||||
response.setEntityList(wmsColliService.distribuisciUL(filtroDistribuzioneColloDTO, false));
|
||||
else
|
||||
response.setEntityList(logisticService.distribuzioneRigheCollo(filtroDistribuzioneColloDTO));
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ public class WMSColliService {
|
||||
@Autowired
|
||||
private DistribuzioneColliService distribuzioneColliService;
|
||||
|
||||
public List<MtbColt> distribuisciUL(FiltroDistribuzioneColloDTO filtroDistribuzioneColloDTO) throws Exception {
|
||||
public List<MtbColt> distribuisciUL(FiltroDistribuzioneColloDTO filtroDistribuzioneColloDTO, boolean skipCommit) throws Exception {
|
||||
MtbColt sourceMtbColt = new MtbColt()
|
||||
.setNumCollo(filtroDistribuzioneColloDTO.getNumCollo())
|
||||
.setGestione(filtroDistribuzioneColloDTO.getGestione())
|
||||
@@ -54,7 +54,7 @@ public class WMSColliService {
|
||||
sourceMtbColt.setOperation(OperationType.SELECT_OBJECT);
|
||||
entityProcessor.processEntity(sourceMtbColt, multiDBTransactionManager);
|
||||
|
||||
return distribuzioneColliService.distribuzioneRigheColloNew(filtroDistribuzioneColloDTO);
|
||||
return distribuzioneColliService.distribuzioneRigheColloNew(filtroDistribuzioneColloDTO, skipCommit);
|
||||
}
|
||||
|
||||
public MtbColt assegnaLottoSuColloScarico(MtbColt sourceMtbColt) throws Exception {
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package it.integry.ems.retail.wms.dto;
|
||||
|
||||
public class CloseUDCLavorazioneRequestDTO extends CloseUDCRequestDTO {
|
||||
private boolean createDocuments;
|
||||
private String documentCodDtip;
|
||||
|
||||
public boolean isCreateDocuments() {
|
||||
return createDocuments;
|
||||
}
|
||||
|
||||
public String getDocumentCodDtip() {
|
||||
return documentCodDtip;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package it.integry.ems.retail.wms.dto;
|
||||
|
||||
public class CloseUDSLavorazioneRequestDTO extends CloseUDSRequestDTO {
|
||||
|
||||
private boolean createDocument;
|
||||
private String documentCodDtip;
|
||||
private String documentCodAnag;
|
||||
|
||||
public boolean isCreateDocument() {
|
||||
return createDocument;
|
||||
}
|
||||
|
||||
public String getDocumentCodDtip() {
|
||||
return documentCodDtip;
|
||||
}
|
||||
|
||||
public String getDocumentCodAnag() {
|
||||
return documentCodAnag;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package it.integry.ems.retail.wms.dto;
|
||||
|
||||
import it.integry.ems_model.entity.DtbDoct;
|
||||
|
||||
public class CloseUDSLavorazioneResponseDTO extends CloseUDSResponseDTO {
|
||||
|
||||
private DtbDoct generatedDocument;
|
||||
|
||||
public DtbDoct getGeneratedDocument() {
|
||||
return generatedDocument;
|
||||
}
|
||||
|
||||
public CloseUDSLavorazioneResponseDTO setGeneratedDocument(DtbDoct generatedDocument) {
|
||||
this.generatedDocument = generatedDocument;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package it.integry.ems.retail.wms.dto;
|
||||
|
||||
import it.integry.ems.logistic.dto.sm2.FiltroDistribuzioneColloDTO;
|
||||
import it.integry.ems_model.entity.MtbColt;
|
||||
|
||||
public class CloseUDSRequestDTO {
|
||||
@@ -7,6 +8,7 @@ public class CloseUDSRequestDTO {
|
||||
private String orderCodMdep;
|
||||
private MtbColt mtbColt;
|
||||
|
||||
private FiltroDistribuzioneColloDTO.CriterioDistribuzioneEnum criterioDistribuzione = FiltroDistribuzioneColloDTO.CriterioDistribuzioneEnum.U;
|
||||
|
||||
public String getOrderCodMdep() {
|
||||
return orderCodMdep;
|
||||
@@ -15,4 +17,8 @@ public class CloseUDSRequestDTO {
|
||||
public MtbColt getMtbColt() {
|
||||
return mtbColt;
|
||||
}
|
||||
|
||||
public FiltroDistribuzioneColloDTO.CriterioDistribuzioneEnum getCriterioDistribuzione() {
|
||||
return criterioDistribuzione;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,14 +50,14 @@ public class WMSLavorazioneController {
|
||||
@RequestMapping(value = "closeUDC", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
ServiceRestResponse closeUDC(@RequestParam(CommonConstants.PROFILE_DB) String profileDB,
|
||||
@RequestBody CloseUDCRequestDTO closeUDCRequestDTO) throws Exception {
|
||||
@RequestBody CloseUDCLavorazioneRequestDTO closeUDCRequestDTO) throws Exception {
|
||||
return ServiceRestResponse.createPositiveResponse(wmsLavorazioneService.closeUDC(closeUDCRequestDTO));
|
||||
}
|
||||
|
||||
@RequestMapping(value = "closeUDS", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
ServiceRestResponse closeUDS(@RequestParam(CommonConstants.PROFILE_DB) String profileDB,
|
||||
@RequestBody CloseUDSRequestDTO closeUDSRequestDTO) throws Exception {
|
||||
@RequestBody CloseUDSLavorazioneRequestDTO closeUDSRequestDTO) throws Exception {
|
||||
return ServiceRestResponse.createPositiveResponse(wmsLavorazioneService.closeUDS(closeUDSRequestDTO));
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,8 @@ import it.integry.ems.retail.wms.exceptions.UDSQuantityOverflowException;
|
||||
import it.integry.ems.retail.wms.generic.dto.MvwSitArtUdcDetInventarioDTO;
|
||||
import it.integry.ems.retail.wms.generic.service.WMSGenericService;
|
||||
import it.integry.ems.retail.wms.generic.service.WMSGiacenzaULService;
|
||||
import it.integry.ems.rules.businessLogic.LoadColliService;
|
||||
import it.integry.ems.rules.businessLogic.dto.LoadColliDTO;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.user.UserSession;
|
||||
@@ -72,6 +74,9 @@ public class WMSLavorazioneService {
|
||||
@Autowired
|
||||
private SetupGest setupGest;
|
||||
|
||||
@Autowired
|
||||
private LoadColliService loadColliService;
|
||||
|
||||
public MtbColt createUDS(CreateUDSRequestDTO createUDSRequestDTO) throws Exception {
|
||||
|
||||
if (!userSession.isAttivo()) {
|
||||
@@ -191,36 +196,62 @@ public class WMSLavorazioneService {
|
||||
}
|
||||
|
||||
|
||||
public CloseUDSResponseDTO closeUDS(CloseUDSRequestDTO closeUDSRequestDTO) throws Exception {
|
||||
public CloseUDSLavorazioneResponseDTO closeUDS(CloseUDSLavorazioneRequestDTO closeUDSRequestDTO) throws Exception {
|
||||
if (!userSession.isAttivo()) {
|
||||
throw new UsernameNotFoundException("Utente " + userSession.getUsername() + " non riconoscuto!");
|
||||
}
|
||||
|
||||
MtbColt mtbColtToClose = closeUDSRequestDTO.getMtbColt();
|
||||
CloseUDSLavorazioneResponseDTO response = new CloseUDSLavorazioneResponseDTO();
|
||||
|
||||
if (wmsGenericService.canULBeDeleted(mtbColtToClose)) {
|
||||
wmsGenericService.deleteUL(mtbColtToClose);
|
||||
return new CloseUDSResponseDTO().setDeleted(true);
|
||||
try {
|
||||
MtbColt mtbColtToClose = closeUDSRequestDTO.getMtbColt();
|
||||
|
||||
if (wmsGenericService.canULBeDeleted(mtbColtToClose)) {
|
||||
wmsGenericService.deleteUL(mtbColtToClose);
|
||||
response.setDeleted(true);
|
||||
return response;
|
||||
}
|
||||
|
||||
mtbColtToClose.getMtbColr().clear();
|
||||
mtbColtToClose.setOraFinePrep(new Date())
|
||||
.setOperation(OperationType.UPDATE);
|
||||
|
||||
entityProcessor.processEntity(mtbColtToClose, multiDBTransactionManager);
|
||||
|
||||
List<MtbColt> distributedUDS = wmsColliService.distribuisciUL(new FiltroDistribuzioneColloDTO()
|
||||
.setDataCollo(mtbColtToClose.getDataCollo())
|
||||
.setSerCollo(mtbColtToClose.getSerCollo())
|
||||
.setGestione(mtbColtToClose.getGestione())
|
||||
.setNumCollo(mtbColtToClose.getNumCollo())
|
||||
.setCriterioDistribuzione(closeUDSRequestDTO.getCriterioDistribuzione().getText()), true);
|
||||
|
||||
response.setSaved(true)
|
||||
.setGeneratedMtbColts(distributedUDS);
|
||||
|
||||
if (closeUDSRequestDTO.isCreateDocument()) {
|
||||
LoadColliDTO loadColliDTO = new LoadColliDTO();
|
||||
loadColliDTO
|
||||
.setColli(distributedUDS)
|
||||
.setCodAnag(closeUDSRequestDTO.getDocumentCodAnag())
|
||||
.setCodDtip(closeUDSRequestDTO.getDocumentCodDtip())
|
||||
.setGestione(GestioneEnum.LAVORAZIONE.getText())
|
||||
.setFlagLeggiDatiOrd(false)
|
||||
.setCodMdep(closeUDSRequestDTO.getMtbColt().getCodMdep());
|
||||
|
||||
DtbDoct documentToSave = loadColliService.createDocFromColli(multiDBTransactionManager, loadColliDTO);
|
||||
entityProcessor.processEntity(documentToSave, true, multiDBTransactionManager);
|
||||
|
||||
UtilityEntity.throwEntityException(documentToSave);
|
||||
|
||||
response.setGeneratedDocument(documentToSave);
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
multiDBTransactionManager.rollbackAll();
|
||||
throw e;
|
||||
}
|
||||
|
||||
mtbColtToClose.getMtbColr().clear();
|
||||
mtbColtToClose.setOraFinePrep(new Date())
|
||||
.setOperation(OperationType.UPDATE);
|
||||
|
||||
entityProcessor.processEntity(mtbColtToClose, multiDBTransactionManager);
|
||||
|
||||
FiltroDistribuzioneColloDTO.CriterioDistribuzioneEnum criterioDistribuzione = FiltroDistribuzioneColloDTO.CriterioDistribuzioneEnum.U;
|
||||
|
||||
List<MtbColt> distributedUDS = wmsColliService.distribuisciUL(new FiltroDistribuzioneColloDTO()
|
||||
.setDataCollo(mtbColtToClose.getDataCollo())
|
||||
.setSerCollo(mtbColtToClose.getSerCollo())
|
||||
.setGestione(mtbColtToClose.getGestione())
|
||||
.setNumCollo(mtbColtToClose.getNumCollo())
|
||||
.setCriterioDistribuzione(criterioDistribuzione.getText()));
|
||||
|
||||
return new CloseUDSResponseDTO()
|
||||
.setSaved(true)
|
||||
.setGeneratedMtbColts(distributedUDS);
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
@@ -544,7 +575,7 @@ public class WMSLavorazioneService {
|
||||
}
|
||||
|
||||
|
||||
public CloseUDCResponseDTO closeUDC(CloseUDCRequestDTO closeUDCRequestDTO) throws Exception {
|
||||
public CloseUDCResponseDTO closeUDC(CloseUDCLavorazioneRequestDTO closeUDCRequestDTO) throws Exception {
|
||||
if (!userSession.isAttivo()) {
|
||||
throw new UsernameNotFoundException("Utente " + userSession.getUsername() + " non riconoscuto!");
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@ public class WMSSpedizioneService {
|
||||
.setSerCollo(mtbColtToClose.getSerCollo())
|
||||
.setGestione(mtbColtToClose.getGestione())
|
||||
.setNumCollo(mtbColtToClose.getNumCollo())
|
||||
.setCriterioDistribuzione(criterioDistribuzione.getText()));
|
||||
.setCriterioDistribuzione(criterioDistribuzione.getText()), false);
|
||||
|
||||
boolean generaDoc = setupGest.getSetupBoolean("PICKING", "SPEDIZIONE", "GENERA_DOC");
|
||||
|
||||
@@ -526,7 +526,7 @@ public class WMSSpedizioneService {
|
||||
.setSerCollo(mtbColt.getSerCollo())
|
||||
.setGestione(mtbColt.getGestione())
|
||||
.setNumCollo(mtbColt.getNumCollo())
|
||||
.setCriterioDistribuzione(FiltroDistribuzioneColloDTO.CriterioDistribuzioneEnum.U.getText()));
|
||||
.setCriterioDistribuzione(FiltroDistribuzioneColloDTO.CriterioDistribuzioneEnum.U.getText()), false);
|
||||
|
||||
mtbColtListToReturn.addAll(distributedUDS);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user