Merge remote-tracking branch 'origin/feature/RefactoringGestioneColli' into feature/RefactoringGestioneColli
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:
@@ -535,7 +535,7 @@ public class EmsRestConstants {
|
||||
public static final String PATH_WOO_SYNC_IMMAGINI = PATH + "syncImmagini";
|
||||
// PRODUCTION WAREHOUSE SERVICES
|
||||
public static final String PATH_WAREHOUSE_PRODUCTION_RETTIFICA = PATH + "rettificaMagazzinoProduzione";
|
||||
public static final String PATH_WAREHOUSE_PRODUCTION_DELETE_COLLO = PATH + "cancellaColloDaProduzione";
|
||||
public static final String PATH_WAREHOUSE_PRODUCTION_DELETE_CARICO = PATH + "cancellaCaricoDaProduzione";
|
||||
|
||||
// NOTIFICATION SERVICES
|
||||
public static final String GROUP_NOTIF = PATH + "notification";
|
||||
|
||||
@@ -8,6 +8,7 @@ import it.integry.ems_model.annotation.*;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.base.EquatableEntityInterface;
|
||||
import it.integry.ems_model.entity._enum.IBaseEnum;
|
||||
import it.integry.ems_model.entity.key.MtbColrKey;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
@@ -204,6 +205,12 @@ public class MtbColr extends EntityBase implements EquatableEntityInterface<MtbC
|
||||
super(logger);
|
||||
}
|
||||
|
||||
|
||||
public MtbColrKey getKey() {
|
||||
return new MtbColrKey(gestione, serCollo, getDataCollo(), numCollo, riga);
|
||||
}
|
||||
|
||||
|
||||
public LocalDate getDataCollo() {
|
||||
return dataCollo;
|
||||
}
|
||||
|
||||
@@ -9,9 +9,9 @@ import it.integry.ems_model.annotation.SqlField;
|
||||
import it.integry.ems_model.annotation.Table;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.entity._enum.IBaseEnum;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
@PropertyReactive
|
||||
@Table(WtbJreptSetup.ENTITY)
|
||||
@@ -171,7 +171,7 @@ public class WtbJreptSetup extends EntityBase {
|
||||
|
||||
@JsonCreator
|
||||
public static Tipo from(Object value) {
|
||||
int castValue = (int) value;
|
||||
int castValue = value instanceof String ? Integer.parseInt((String) value) : (int) value;
|
||||
for (Tipo b : Tipo.values()) {
|
||||
if (b.value == castValue)
|
||||
return b;
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
package it.integry.ems_model.entity.key;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
public class MtbColrKey extends MtbColtKey {
|
||||
|
||||
private int riga;
|
||||
|
||||
public MtbColrKey() {
|
||||
}
|
||||
|
||||
public MtbColrKey(String gestione, String serCollo, LocalDate dataCollo, int numCollo, int riga) {
|
||||
super(gestione, serCollo, dataCollo, numCollo);
|
||||
this.riga = riga;
|
||||
}
|
||||
|
||||
public Integer getRiga() {
|
||||
return riga;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
if (!super.equals(o)) return false;
|
||||
|
||||
MtbColrKey that = (MtbColrKey) o;
|
||||
return getRiga().equals(that.getRiga());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = super.hashCode();
|
||||
result = 31 * result + getRiga().hashCode();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -15,9 +15,14 @@ public class UtilityException {
|
||||
if(e.getStackTrace().length > 0)
|
||||
errorMessage = "Null value at " + e.getStackTrace()[0].toString();
|
||||
else errorMessage = "Empty stacktrace\n" + e;
|
||||
|
||||
} else if (e instanceof BaseSystemException) {
|
||||
errorCode = ((BaseSystemException) e).getCode();
|
||||
errorMessage = ((BaseSystemException) e).getCustomMessage();
|
||||
|
||||
} else if (e instanceof IllegalArgumentException) {
|
||||
errorMessage = e.getMessage();
|
||||
|
||||
} else if (e instanceof EntityException) {
|
||||
EntityException entityException = (EntityException) e;
|
||||
|
||||
@@ -49,6 +54,7 @@ public class UtilityException {
|
||||
}
|
||||
|
||||
errorMessage = message;
|
||||
|
||||
} else if (e instanceof RuntimeException || e instanceof JRException) {
|
||||
String message = e.getCause() != null && e.getCause().getMessage() != null ? e.getCause().getMessage() : e.toString();
|
||||
|
||||
|
||||
@@ -118,14 +118,9 @@ public class EmsEngineController {
|
||||
public @ResponseBody
|
||||
ServiceRestResponse printReportTypeList(HttpServletRequest request,
|
||||
@RequestParam(CommonConstants.PROFILE_DB) String configuration,
|
||||
@RequestBody ReportTypeDTO reportTypeDTO) {
|
||||
try {
|
||||
@RequestBody ReportTypeDTO reportTypeDTO) throws Exception {
|
||||
printerService.printReportType(reportTypeDTO);
|
||||
return ServiceRestResponse.createPositiveResponse();
|
||||
} catch (Exception e) {
|
||||
logger.error(request.getRequestURI(), e);
|
||||
return ServiceRestResponse.createNegativeResponse(configuration, e);
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(value = EmsRestConstants.PATH_GET_SETUP_REPORT_TYPE, method = RequestMethod.POST)
|
||||
|
||||
@@ -193,7 +193,7 @@ public class LicorProductionService {
|
||||
.setPartitaMag(scarico.getPartitaMag())
|
||||
.setTargetMtbColt(scaricoMaterialiAgg)
|
||||
.setQtaCnf(scarico.getQtaCnf())
|
||||
.setDataOrd(chiusuraLavorazioneDTO.getOrdine().getDataOrd())
|
||||
.setDataOrd(UtilityLocalDate.localDateFromDate(chiusuraLavorazioneDTO.getOrdine().getDataOrd()))
|
||||
.setRigaOrd(rigaOrd)
|
||||
.setNumOrd(chiusuraLavorazioneDTO.getOrdine().getNumOrd());
|
||||
wmsLavorazioneService.insertUDSRow(insertRequestDto);
|
||||
@@ -419,7 +419,7 @@ public class LicorProductionService {
|
||||
requestDTO.setQtaCnf(rigaOrdine.getQtaCnf());
|
||||
requestDTO.setNumCnf(UtilityBigDecimal.divide(inventarioDTO.getQtaCol(), rigaOrdine.getQtaCnf()));
|
||||
|
||||
requestDTO.setDataOrd(rigaOrdine.getDataOrd());
|
||||
requestDTO.setDataOrd(UtilityLocalDate.localDateFromDate(rigaOrdine.getDataOrd()));
|
||||
requestDTO.setNumOrd(rigaOrdine.getNumOrd());
|
||||
requestDTO.setRigaOrd(rigaOrdine.getRigaOrd());
|
||||
|
||||
@@ -443,7 +443,7 @@ public class LicorProductionService {
|
||||
requestDTO.setQtaCnf(rigaOrdine.getQtaCnf());
|
||||
requestDTO.setNumCnf(UtilityBigDecimal.divide(disp.getQta(), rigaOrdine.getQtaCnf()));
|
||||
|
||||
requestDTO.setDataOrd(rigaOrdine.getDataOrd());
|
||||
requestDTO.setDataOrd(UtilityLocalDate.localDateFromDate(rigaOrdine.getDataOrd()));
|
||||
requestDTO.setNumOrd(rigaOrdine.getNumOrd());
|
||||
requestDTO.setRigaOrd(rigaOrdine.getRigaOrd());
|
||||
|
||||
|
||||
@@ -727,7 +727,7 @@ public class DocumentiDirettiService {
|
||||
.setCodMart(ulRowDTO.getCodMart())
|
||||
.setPartitaMag(ulRowDTO.getPartitaMag())
|
||||
.setQtaTot(ulRowDTO.getQtaCol())
|
||||
.setDataOrd(ulRowDTO.getDataOrd() != null ? UtilityLocalDate.localDateToDate(ulRowDTO.getDataOrd()) : null)
|
||||
.setDataOrd(ulRowDTO.getDataOrd())
|
||||
.setNumOrd(ulRowDTO.getNumOrd())
|
||||
.setRigaOrd(ulRowDTO.getRigaOrd())
|
||||
.setTargetMtbColt(uds)
|
||||
@@ -740,7 +740,7 @@ public class DocumentiDirettiService {
|
||||
.setCodMart(ulRowDTO.getCodMart())
|
||||
.setPartitaMag(ulRowDTO.getPartitaMag())
|
||||
.setQtaTot(ulRowDTO.getQtaCol())
|
||||
.setDataOrd(ulRowDTO.getDataOrd() != null ? UtilityLocalDate.localDateToDate(ulRowDTO.getDataOrd()) : null)
|
||||
.setDataOrd(ulRowDTO.getDataOrd())
|
||||
.setNumOrd(ulRowDTO.getNumOrd())
|
||||
.setRigaOrd(ulRowDTO.getRigaOrd())
|
||||
.setTargetMtbColt(uds)
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
package it.integry.ems.logistic.service;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import it.integry.ems.javabeans.RequestDataDTO;
|
||||
import it.integry.ems.logistic.dto.ImportColliDaProduzioneDTO;
|
||||
import it.integry.ems.retail.wms.accettazione.service.WMSAccettazioneService;
|
||||
import it.integry.ems.retail.wms.dto.*;
|
||||
import it.integry.ems.retail.wms.lavorazione.service.WMSLavorazioneService;
|
||||
import it.integry.ems.retail.wms.vendita.service.WMSSpedizioneService;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
@@ -44,6 +47,15 @@ public class PackagesImportService {
|
||||
@Autowired
|
||||
private RequestDataDTO requestDataDTO;
|
||||
|
||||
@Autowired
|
||||
private WMSAccettazioneService wmsAccettazioneService;
|
||||
|
||||
@Autowired
|
||||
private WMSSpedizioneService wmsSpedizioneService;
|
||||
|
||||
@Autowired
|
||||
private WMSLavorazioneService wmsLavorazioneService;
|
||||
|
||||
public Map<String, Object> resultSetToHashMap(ResultSet rs, String... keyValues) throws Exception {
|
||||
|
||||
if (keyValues.length < 2)
|
||||
@@ -355,88 +367,79 @@ public class PackagesImportService {
|
||||
String codVdes = UtilityHashMap.getValueIfExists(result, "cod_vdes");
|
||||
|
||||
|
||||
MtbColt mtbColt = new MtbColt()
|
||||
.setMtbColr(new ArrayList<>());
|
||||
mtbColt.setOperation(OperationType.INSERT);
|
||||
|
||||
if (importColliProd.getGestione().equalsIgnoreCase("A")) {
|
||||
mtbColt
|
||||
.setCodAnag(codAnag)
|
||||
.setCodVdes(codVdes);
|
||||
}
|
||||
mtbColt.setCodMdep(codMdep)
|
||||
.setPreparatoDa(requestDataDTO.getUsername())
|
||||
CreateUDCRequestDTO createUDCRequest = new CreateUDCRequestDTO()
|
||||
.setCodMdep(codMdep)
|
||||
.setDataCollo(importColliProd.getDataCollo())
|
||||
.setSerCollo(serCollo)
|
||||
.setCodTcol(importColliProd.getCodTcol())
|
||||
.setPesoKg(importColliProd.getPesoLordo())
|
||||
.setPesoNettoKg(importColliProd.getPesoNetto())
|
||||
.setDataOrd(importColliProd.getDataOrd())
|
||||
.setNumOrd(importColliProd.getNumOrd())
|
||||
.setGestione(importColliProd.getGestione())
|
||||
.setSegno(1)
|
||||
.setDataVers(dataVers)
|
||||
.setOrders(Collections.singletonList(new CreateUDCRequestOrderDTO()
|
||||
.setDataOrd(importColliProd.getDataOrd())
|
||||
.setNumOrd(importColliProd.getNumOrd())
|
||||
.setGestione(importColliProd.getGestione())))
|
||||
.setCodJfas(importColliProd.getCodJfas())
|
||||
.setAnnotazioni(importColliProd.getAnnotazioni());
|
||||
|
||||
if (importColliProd.getGestione().equalsIgnoreCase("A")) {
|
||||
createUDCRequest
|
||||
.setCodAnag(codAnag)
|
||||
.setCodVdes(codVdes);
|
||||
}
|
||||
|
||||
MtbColt udc = wmsLavorazioneService.createUDC(createUDCRequest);
|
||||
|
||||
udc
|
||||
.setPesoKg(importColliProd.getPesoLordo())
|
||||
.setPesoNettoKg(importColliProd.getPesoNetto())
|
||||
.setDataVers(dataVers)
|
||||
.setOperation(OperationType.UPDATE);
|
||||
|
||||
|
||||
BigDecimal qtaCnf = importColliProd.getQtaCnf() == null ?
|
||||
importColliProd.getQtaCol().divide(new BigDecimal(importColliProd.getColliBancale()), EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP) :
|
||||
importColliProd.getQtaCnf();
|
||||
|
||||
MtbColr mtbColr = new MtbColr()
|
||||
InsertUDCRowRequestDTO insertUDCRowRequestDTO = new InsertUDCRowRequestDTO()
|
||||
.setTargetMtbColt(udc)
|
||||
.setCodMart(importColliProd.getCodMart())
|
||||
.setQtaCnf(qtaCnf)
|
||||
.setQtaCol(importColliProd.getQtaCol())
|
||||
.setQtaTot(importColliProd.getQtaCol())
|
||||
.setNumCnf(new BigDecimal(importColliProd.getColliBancale()))
|
||||
.setPartitaMag(importColliProd.getPartitaMag())
|
||||
.setDataOrd(importColliProd.getDataOrd())
|
||||
.setNumOrd(importColliProd.getNumOrd())
|
||||
.setPesoLordoKg(importColliProd.getPesoLordo())
|
||||
.setPesoNettoKg(importColliProd.getPesoNetto())
|
||||
.setCodJcom(importColliProd.getCodJcom());
|
||||
|
||||
|
||||
if (importColliProd.getGestione().equalsIgnoreCase("A")) {
|
||||
mtbColr.setRigaOrd(importColliProd.getRigaOrd());
|
||||
insertUDCRowRequestDTO.setRigaOrd(importColliProd.getRigaOrd());
|
||||
} else {
|
||||
mtbColr.setRigaOrd(0);
|
||||
insertUDCRowRequestDTO.setRigaOrd(0);
|
||||
}
|
||||
|
||||
mtbColt.getMtbColr().add(mtbColr);
|
||||
entityProcessor.processEntity(mtbColt, true, multiDBTransactionManager);
|
||||
final MtbColr savedMtbColr = wmsAccettazioneService.insertUDCRow(insertUDCRowRequestDTO)
|
||||
.getSavedMtbColr();
|
||||
|
||||
savedMtbColr
|
||||
.setPesoLordoKg(importColliProd.getPesoLordo())
|
||||
.setPesoNettoKg(importColliProd.getPesoNetto())
|
||||
.setOperation(OperationType.UPDATE);
|
||||
|
||||
udc.setMtbColr(new ArrayList<MtbColr>(1) {{
|
||||
add(savedMtbColr);
|
||||
}});
|
||||
|
||||
entityProcessor.processEntity(udc, true, multiDBTransactionManager);
|
||||
|
||||
|
||||
List<MtbColt> colliRet = new ArrayList<>();
|
||||
colliRet.add(mtbColt);
|
||||
colliRet.add(udc);
|
||||
|
||||
List<EntityBase> entityBases = new ArrayList<>();
|
||||
if (!UtilityString.isNullOrEmpty(importColliProd.getCodJcom()) && importColliProd.isAutoGeneraVendita()) {
|
||||
MtbColt mtbColtV = new MtbColt()
|
||||
.setGestione("V")
|
||||
.setCodMdep(codMdep)
|
||||
.setDataCollo(importColliProd.getDataCollo())
|
||||
.setSerCollo(serCollo)
|
||||
.setSegno(-1)
|
||||
.setPesoKg(importColliProd.getPesoLordo())
|
||||
.setPesoNettoKg(importColliProd.getPesoNetto())
|
||||
.setCodTcol(importColliProd.getCodTcol())
|
||||
.setPreparatoDa(requestDataDTO.getUsername())
|
||||
.setAnnotazioni(importColliProd.getFornitore())
|
||||
.setDataVers(dataVers)
|
||||
.setMtbColr(new ArrayList<>());
|
||||
mtbColtV.setOperation(OperationType.INSERT);
|
||||
entityBases.add(mtbColtV);
|
||||
|
||||
MtbColr mtbColrV = new MtbColr()
|
||||
.setCodMart(importColliProd.getCodMart())
|
||||
.setQtaCnf(qtaCnf)
|
||||
.setQtaCol(importColliProd.getQtaCol())
|
||||
.setNumCnf(new BigDecimal(importColliProd.getColliBancale()))
|
||||
.setPartitaMag(importColliProd.getPartitaMag())
|
||||
.setGestioneRif(mtbColt.getGestione())
|
||||
.setNumColloRif(mtbColt.getNumCollo())
|
||||
.setDataColloRif(mtbColt.getDataCollo())
|
||||
.setSerColloRif(mtbColt.getSerCollo());
|
||||
mtbColtV.getMtbColr().add(mtbColrV);
|
||||
|
||||
query = "SELECT dtb_ordt.cod_anag," +
|
||||
" dtb_ordt.gestione," +
|
||||
" dtb_ordt.data_ord," +
|
||||
" dtb_ordt.num_ord, " +
|
||||
" dtb_ordt.cod_vdes, " +
|
||||
@@ -452,13 +455,34 @@ public class PackagesImportService {
|
||||
|
||||
result = UtilityDB.executeSimpleQueryOnlyFirstRow(connection, query);
|
||||
|
||||
|
||||
CreateUDSRequestDTO createUDSRequest = new CreateUDSRequestDTO()
|
||||
.setCodMdep(codMdep)
|
||||
.setDataCollo(importColliProd.getDataCollo())
|
||||
.setSerCollo(serCollo)
|
||||
.setCodTcol(importColliProd.getCodTcol())
|
||||
.setAnnotazioni(importColliProd.getFornitore());
|
||||
|
||||
|
||||
InsertUDSRowRequestDTO insertUDSRowRequest = new InsertUDSRowRequestDTO()
|
||||
.setCodMart(importColliProd.getCodMart())
|
||||
.setQtaCnf(qtaCnf)
|
||||
.setQtaTot(importColliProd.getQtaCol())
|
||||
.setNumCnf(new BigDecimal(importColliProd.getColliBancale()))
|
||||
.setPartitaMag(importColliProd.getPartitaMag())
|
||||
.setSourceMtbColr(savedMtbColr);
|
||||
|
||||
if (result != null) {
|
||||
mtbColtV.setCodAnag(UtilityHashMap.getValueIfExists(result, "cod_anag"))
|
||||
.setDataOrd(UtilityLocalDate.localDateFromDate(UtilityHashMap.getValueIfExists(result, "data_ord")))
|
||||
.setNumOrd(UtilityHashMap.getValueIfExists(result, "num_ord"))
|
||||
createUDSRequest.setCodAnag(UtilityHashMap.getValueIfExists(result, "cod_anag"))
|
||||
.setOrders(Collections.singletonList(new CreateUDSRequestOrderDTO()
|
||||
.setDataOrd(UtilityLocalDate.localDateFromDate(UtilityHashMap.getValueIfExists(result, "data_ord")))
|
||||
.setNumOrd(UtilityHashMap.getValueIfExists(result, "num_ord"))
|
||||
.setGestione(UtilityHashMap.getValueIfExists(result, "gestione"))
|
||||
))
|
||||
.setCodVdes(UtilityHashMap.getValueIfExists(result, "cod_vdes"))
|
||||
.setRifOrd(UtilityHashMap.getValueIfExists(result, "rif_ord"));
|
||||
mtbColrV.setDataOrd(UtilityLocalDate.localDateFromDate(UtilityHashMap.getValueIfExists(result, "data_ord")))
|
||||
|
||||
insertUDSRowRequest.setDataOrd(UtilityLocalDate.localDateFromDate(UtilityHashMap.getValueIfExists(result, "data_ord")))
|
||||
.setNumOrd(UtilityHashMap.getValueIfExists(result, "num_ord"))
|
||||
.setRigaOrd(UtilityHashMap.getValueIfExists(result, "riga_ord"));
|
||||
|
||||
@@ -467,8 +491,23 @@ public class PackagesImportService {
|
||||
"FROM jtb_comt WHERE cod_jcom = " + UtilityDB.valueToString(importColliProd.getCodJcom());
|
||||
|
||||
String codAnagV = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, query);
|
||||
mtbColtV.setCodAnag(codAnagV);
|
||||
createUDSRequest.setCodAnag(codAnagV);
|
||||
}
|
||||
|
||||
final MtbColt uds = wmsSpedizioneService.createUDS(createUDSRequest);
|
||||
|
||||
uds
|
||||
.setPesoKg(importColliProd.getPesoLordo())
|
||||
.setPesoNettoKg(importColliProd.getPesoNetto())
|
||||
.setDataVers(dataVers)
|
||||
.setOperation(OperationType.UPDATE);
|
||||
|
||||
entityProcessor.processEntity(uds, true, multiDBTransactionManager);
|
||||
|
||||
|
||||
insertUDSRowRequest
|
||||
.setTargetMtbColt(uds);
|
||||
wmsSpedizioneService.insertUDSRow(insertUDSRowRequest);
|
||||
}
|
||||
|
||||
if (!UtilityString.isNullOrEmpty(importColliProd.getCodJfas()) && flagStart.equalsIgnoreCase("S")) {
|
||||
@@ -579,17 +618,14 @@ public class PackagesImportService {
|
||||
}*/
|
||||
}
|
||||
|
||||
List<EntityBase> entityRet = entityProcessor.processEntityList(entityBases, true);
|
||||
entityProcessor.processEntityList(entityBases, true);
|
||||
|
||||
List<MtbColt> mtbColtRet =
|
||||
Stream.of(entityRet)
|
||||
.filter(x -> x instanceof MtbColt)
|
||||
.map(x -> (MtbColt) x)
|
||||
.toList();
|
||||
colliRet.forEach(x -> {
|
||||
x.setOperation(OperationType.SELECT_OBJECT);
|
||||
|
||||
x.getMtbColr().forEach(y -> y.setOperation(OperationType.SELECT_OBJECT));
|
||||
});
|
||||
|
||||
if (mtbColtRet != null && !mtbColtRet.isEmpty()) {
|
||||
colliRet.addAll(mtbColtRet);
|
||||
}
|
||||
return colliRet;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package it.integry.ems.production.controller;
|
||||
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.production.dto.DeleteCaricoDaProduzioneRequestDTO;
|
||||
import it.integry.ems.production.dto.RettificaProdDTO;
|
||||
import it.integry.ems.production.service.ProductionWarehouseService;
|
||||
import it.integry.ems.response.EsitoType;
|
||||
import it.integry.ems.response.ServiceRestResponse;
|
||||
import it.integry.ems_model.config.EmsRestConstants;
|
||||
import it.integry.ems_model.entity.MtbColt;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -51,19 +51,13 @@ public class ProductionWarehouseController {
|
||||
}
|
||||
|
||||
|
||||
@RequestMapping(value = EmsRestConstants.PATH_WAREHOUSE_PRODUCTION_DELETE_COLLO, method = RequestMethod.POST)
|
||||
@RequestMapping(value = EmsRestConstants.PATH_WAREHOUSE_PRODUCTION_DELETE_CARICO, method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
ServiceRestResponse deleteColloDaProduzione(HttpServletRequest request,
|
||||
@RequestParam(CommonConstants.PROFILE_DB) String profileDB,
|
||||
@RequestBody MtbColt mtbColtToDelete) {
|
||||
|
||||
try {
|
||||
warehouseService.deleteColloDaProduzione(mtbColtToDelete);
|
||||
return ServiceRestResponse.createPositiveResponse();
|
||||
} catch (Exception e) {
|
||||
logger.error(request.getRequestURI(), e);
|
||||
return ServiceRestResponse.createNegativeResponse(profileDB, e);
|
||||
}
|
||||
@RequestBody DeleteCaricoDaProduzioneRequestDTO caricoToDelete) throws Exception {
|
||||
warehouseService.deleteCaricoDaProduzione(caricoToDelete);
|
||||
return ServiceRestResponse.createPositiveResponse();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
package it.integry.ems.production.dto;
|
||||
|
||||
public class DeleteCaricoDaProduzioneRequestDTO {
|
||||
|
||||
private String barcodeUl;
|
||||
private String codMart;
|
||||
private String partitaMag;
|
||||
private String codJcom;
|
||||
private String codCol;
|
||||
private String codTagl;
|
||||
|
||||
public String getBarcodeUl() {
|
||||
return barcodeUl;
|
||||
}
|
||||
|
||||
public DeleteCaricoDaProduzioneRequestDTO setBarcodeUl(String barcodeUl) {
|
||||
this.barcodeUl = barcodeUl;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodMart() {
|
||||
return codMart;
|
||||
}
|
||||
|
||||
public DeleteCaricoDaProduzioneRequestDTO setCodMart(String codMart) {
|
||||
this.codMart = codMart;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getPartitaMag() {
|
||||
return partitaMag;
|
||||
}
|
||||
|
||||
public DeleteCaricoDaProduzioneRequestDTO setPartitaMag(String partitaMag) {
|
||||
this.partitaMag = partitaMag;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodJcom() {
|
||||
return codJcom;
|
||||
}
|
||||
|
||||
public DeleteCaricoDaProduzioneRequestDTO setCodJcom(String codJcom) {
|
||||
this.codJcom = codJcom;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodCol() {
|
||||
return codCol;
|
||||
}
|
||||
|
||||
public DeleteCaricoDaProduzioneRequestDTO setCodCol(String codCol) {
|
||||
this.codCol = codCol;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodTagl() {
|
||||
return codTagl;
|
||||
}
|
||||
|
||||
public DeleteCaricoDaProduzioneRequestDTO setCodTagl(String codTagl) {
|
||||
this.codTagl = codTagl;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -1660,7 +1660,7 @@ public class MesProductionServiceV2 {
|
||||
.setSourceMtbColr(sourceMtbColr)
|
||||
.setTargetMtbColt(uds)
|
||||
.setQtaCnf(scarico.getQtaCnf())
|
||||
.setDataOrd(ordine.getDataOrd())
|
||||
.setDataOrd(UtilityLocalDate.localDateFromDate(ordine.getDataOrd()))
|
||||
.setRigaOrd(rigaOrd)
|
||||
.setNumOrd(ordine.getNumOrd());
|
||||
wmsLavorazioneService.insertUDSRow(insertRequestDto);
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package it.integry.ems.production.service;
|
||||
|
||||
import it.integry.ems.production.dto.DeleteCaricoDaProduzioneRequestDTO;
|
||||
import it.integry.ems.production.dto.RettificaProdDTO;
|
||||
import it.integry.ems.retail.wms.Utility.WMSUtility;
|
||||
import it.integry.ems.retail.wms.generic.dto.RettificaULDTO;
|
||||
import it.integry.ems.retail.wms.generic.service.WMSGenericService;
|
||||
import it.integry.ems.rules.businessLogic.LoadColliService;
|
||||
@@ -9,12 +11,15 @@ import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.service.PrinterService;
|
||||
import it.integry.ems.service.ReportProcessor;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems_model.entity.DtbDoct;
|
||||
import it.integry.ems_model.entity.MtbColr;
|
||||
import it.integry.ems_model.entity.MtbColt;
|
||||
import it.integry.ems_model.entity.key.MtbColtKey;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -24,6 +29,7 @@ import org.springframework.stereotype.Service;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@Scope("request")
|
||||
@@ -93,31 +99,53 @@ public class ProductionWarehouseService {
|
||||
}
|
||||
|
||||
|
||||
public void deleteColloDaProduzione(MtbColt mtbColt) throws Exception {
|
||||
public void deleteCaricoDaProduzione(DeleteCaricoDaProduzioneRequestDTO caricoToDelete) throws Exception {
|
||||
|
||||
List<MtbColt> mtbColtsToDelete = new ArrayList<>();
|
||||
if (UtilityString.isNullOrEmpty(caricoToDelete.getBarcodeUl()) || UtilityString.isNullOrEmpty(caricoToDelete.getCodMart()))
|
||||
throw new IllegalArgumentException("Il barcode_ul_out e il cod_mart sono obbligatori per la cancellazione del carico da produzione");
|
||||
|
||||
String query = "SELECT num_collo, data_collo, ser_collo, gestione " +
|
||||
"FROM " + MtbColr.ENTITY + " " +
|
||||
"WHERE num_collo_rif = " + UtilityDB.valueToString(mtbColt.getNumCollo()) + " " +
|
||||
" AND data_collo_rif = " + UtilityDB.valueToString(mtbColt.getDataCollo()) + " " +
|
||||
" AND ser_collo_rif = " + UtilityDB.valueToString(mtbColt.getSerCollo()) + " " +
|
||||
" AND gestione_rif = " + UtilityDB.valueToString(mtbColt.getGestione());
|
||||
|
||||
List<MtbColt> mtbColtsRefs = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), query, MtbColt.class);
|
||||
String sql = "SELECT * \n" +
|
||||
"FROM " + MtbColr.ENTITY + "\n " +
|
||||
"WHERE (barcode_ul_out = " + UtilityDB.valueToString(caricoToDelete.getBarcodeUl()) + " OR barcode_ul_in = " + UtilityDB.valueToString(caricoToDelete.getBarcodeUl()) + ") \n " +
|
||||
" AND cod_mart = " + UtilityDB.valueToString(caricoToDelete.getCodMart()) + "\n " +
|
||||
(!UtilityString.isNullOrEmpty(caricoToDelete.getPartitaMag()) ? " AND partita_mag = " + UtilityDB.valueToString(caricoToDelete.getPartitaMag()) : "") + "\n " +
|
||||
(!UtilityString.isNullOrEmpty(caricoToDelete.getCodJcom()) ? " AND cod_jcom = " + UtilityDB.valueToString(caricoToDelete.getCodJcom()) : "") + "\n " +
|
||||
(!UtilityString.isNullOrEmpty(caricoToDelete.getCodCol()) ? " AND cod_col = " + UtilityDB.valueToString(caricoToDelete.getCodCol()) : "") + "\n " +
|
||||
(!UtilityString.isNullOrEmpty(caricoToDelete.getCodTagl()) ? " AND cod_tagl = " + UtilityDB.valueToString(caricoToDelete.getCodTagl()) : "");
|
||||
|
||||
if (mtbColtsRefs != null && !mtbColtsRefs.isEmpty()) {
|
||||
for (MtbColt mtbColtRef :
|
||||
mtbColtsRefs) {
|
||||
mtbColtRef.setOperation(OperationType.DELETE);
|
||||
List<MtbColr> mtbColrsToBeDeleted = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, MtbColr.class);
|
||||
|
||||
|
||||
if(mtbColrsToBeDeleted != null && !mtbColrsToBeDeleted.isEmpty()) {
|
||||
mtbColrsToBeDeleted.forEach(x -> x.setOperation(OperationType.DELETE));
|
||||
|
||||
final List<MtbColt> mtbColtsToDelete = mtbColrsToBeDeleted.stream()
|
||||
.map(mtbColr -> (MtbColtKey) mtbColr.getKey())
|
||||
.distinct()
|
||||
.map(x -> {
|
||||
MtbColt mtbColt = new MtbColt(x);
|
||||
mtbColt.setMtbColr(mtbColrsToBeDeleted.stream()
|
||||
.filter(y -> y.getKey().equals(x))
|
||||
.collect(Collectors.toList()));
|
||||
mtbColt.setOperation(OperationType.UPDATE);
|
||||
return mtbColt;
|
||||
}
|
||||
)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
entityProcessor.processEntityList(mtbColtsToDelete, multiDBTransactionManager, true);
|
||||
UtilityEntity.throwEntitiesException(mtbColtsToDelete);
|
||||
|
||||
for (MtbColt mtbColt : mtbColtsToDelete) {
|
||||
if (WMSUtility.canULBeDeleted(mtbColt, multiDBTransactionManager)) {
|
||||
WMSUtility.deleteUL(mtbColt, entityProcessor, multiDBTransactionManager);
|
||||
}
|
||||
}
|
||||
|
||||
mtbColtsToDelete.addAll(mtbColtsRefs);
|
||||
}
|
||||
|
||||
mtbColt.setOperation(OperationType.DELETE);
|
||||
mtbColtsToDelete.add(mtbColt);
|
||||
|
||||
entityProcessor.processEntityList(mtbColtsToDelete, true);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -259,9 +259,9 @@ public class WMSUtility {
|
||||
|
||||
boolean destroyMtbColrReferences = false;
|
||||
|
||||
//Se le gestioni sono uguali faccio uno storno sulla sorgente e non lavoro con i riferimenti (solo se non volontariamente forzata)
|
||||
if (!flagForceUseRefs && (UtilityString.equalsIgnoreCase(sourceMtbColt.getGestione(), "V") && UtilityString.equalsIgnoreCase(destinationMtbColt.getGestione(), "V")) ||
|
||||
(UtilityString.equalsIgnoreCase(sourceMtbColt.getGestione(), "V") && sourceMtbColt.getSegno() == -1 && UtilityString.equalsIgnoreCase(destinationMtbColt.getGestione(), "L"))) {
|
||||
//Se la sorgente è un collo di scarico allora faccio lo storno sulla sorgente e aggiungo le qta a quella di destinazione
|
||||
if (!flagForceUseRefs &&
|
||||
(sourceMtbColt.getSegno() == -1 && UtilityString.equalsIgnoreCase(destinationMtbColt.getGestione(), "L"))) {
|
||||
destroyMtbColrReferences = true;
|
||||
|
||||
MtbColr stornoSourceMtbColr = (MtbColr) mtbColr.clone();
|
||||
@@ -271,6 +271,7 @@ public class WMSUtility {
|
||||
.setNumCollo(null)
|
||||
.setSerCollo(null)
|
||||
.setDataCollo(null)
|
||||
.setRiga(null)
|
||||
.setGestioneRif(cloneMtbColr.getGestioneRif())
|
||||
.setNumColloRif(cloneMtbColr.getNumColloRif())
|
||||
.setSerColloRif(cloneMtbColr.getSerColloRif())
|
||||
@@ -282,7 +283,13 @@ public class WMSUtility {
|
||||
.setNumCnf(stornoSourceMtbColr.getNumCnf().multiply(new BigDecimal(-1)))
|
||||
|
||||
//Lavoro al contrario per compatibilità
|
||||
.setBarcodeUlOut(cloneMtbColr.getBarcodeUlIn());
|
||||
.setBarcodeUlOut(cloneMtbColr.getBarcodeUlIn())
|
||||
.setCodMdepOut(cloneMtbColr.getCodMdepOut())
|
||||
.setPosizioneOut(cloneMtbColr.getPosizioneOut())
|
||||
|
||||
.setBarcodeUlIn(destinationMtbColt.getBarcodeUl())
|
||||
.setCodMdepIn(destinationMtbColt.getCodMdep())
|
||||
.setPosizioneIn(destinationMtbColt.getPosizione());
|
||||
|
||||
mtbColrSourceList.add(stornoSourceMtbColr);
|
||||
}
|
||||
@@ -314,6 +321,9 @@ public class WMSUtility {
|
||||
.setNumCollo(null)
|
||||
.setDataCollo(null)
|
||||
.setRiga(null)
|
||||
.setBarcodeUlIn(destinationMtbColt.getBarcodeUl())
|
||||
.setCodMdepIn(destinationMtbColt.getCodMdep())
|
||||
.setPosizioneIn(destinationMtbColt.getPosizione())
|
||||
.setUtente(requestDataDTO.getUsername());
|
||||
|
||||
if (!StringUtils.equalsIgnoreCase(destinationMtbColt.getGestione(), "V")) {
|
||||
|
||||
@@ -161,7 +161,9 @@ public class WMSAccettazioneService {
|
||||
udcMtbColt.setOperation(OperationType.INSERT);
|
||||
entityProcessor.processEntity(udcMtbColt, multiDBTransactionManager);
|
||||
|
||||
udcMtbColt.setOnlyPkMaster(false);
|
||||
udcMtbColt
|
||||
.setMtbCols(new ArrayList<>())
|
||||
.setOnlyPkMaster(false);
|
||||
return udcMtbColt;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ public class CreateUDSRequestDTO {
|
||||
private String codJfas;
|
||||
private String codAnag;
|
||||
private String codVdes;
|
||||
private String codTcol;
|
||||
|
||||
private Integer idLotto;
|
||||
private String rifOrd;
|
||||
@@ -138,6 +139,15 @@ public class CreateUDSRequestDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodTcol() {
|
||||
return codTcol;
|
||||
}
|
||||
|
||||
public CreateUDSRequestDTO setCodTcol(String codTcol) {
|
||||
this.codTcol = codTcol;
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<CreateUDSRequestOrderDTO> getOrders() {
|
||||
return orders;
|
||||
}
|
||||
|
||||
@@ -4,8 +4,8 @@ import it.integry.ems_model.entity.MtbColr;
|
||||
import it.integry.ems_model.entity.MtbColt;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
public class InsertUDSRowRequestDTO {
|
||||
|
||||
@@ -17,9 +17,9 @@ public class InsertUDSRowRequestDTO {
|
||||
private BigDecimal qtaCnf;
|
||||
private BigDecimal numCnf;
|
||||
private String partitaMag;
|
||||
private Date dataScad;
|
||||
private LocalDate dataScad;
|
||||
|
||||
private Date dataOrd;
|
||||
private LocalDate dataOrd;
|
||||
private Integer numOrd;
|
||||
private Integer rigaOrd;
|
||||
private LocalDateTime datetimeRow;
|
||||
@@ -57,7 +57,7 @@ public class InsertUDSRowRequestDTO {
|
||||
return partitaMag;
|
||||
}
|
||||
|
||||
public Date getDataScad() {
|
||||
public LocalDate getDataScad() {
|
||||
return dataScad;
|
||||
}
|
||||
|
||||
@@ -97,16 +97,16 @@ public class InsertUDSRowRequestDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public InsertUDSRowRequestDTO setDataScad(Date dataScad) {
|
||||
public InsertUDSRowRequestDTO setDataScad(LocalDate dataScad) {
|
||||
this.dataScad = dataScad;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
public LocalDate getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public InsertUDSRowRequestDTO setDataOrd(Date dataOrd) {
|
||||
public InsertUDSRowRequestDTO setDataOrd(LocalDate dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -2216,7 +2216,7 @@ public class WMSGenericService {
|
||||
.setQtaCnf(rowToMove.getQtaCnf())
|
||||
.setNumCnf(rowToMove.getNumCnf())
|
||||
.setPartitaMag(rowToMove.getPartitaMag())
|
||||
.setDataScad(rowToMove.getDataScad())
|
||||
.setDataScad(UtilityLocalDate.localDateFromDate(rowToMove.getDataScad()))
|
||||
.setTargetMtbColt(movimento)
|
||||
.setDatetimeRow(requestDTO.getDataTrasf());
|
||||
movimento.getMtbColr().add(wmsLavorazioneService.insertUDSRow(insertUDSRowRequest).getSavedMtbColr());
|
||||
|
||||
@@ -13,6 +13,7 @@ import it.integry.ems.retail.wms.exceptions.InvalidArticoloException;
|
||||
import it.integry.ems.retail.wms.exceptions.InvalidUDSQuantityException;
|
||||
import it.integry.ems.retail.wms.exceptions.UDSQuantityOverflowException;
|
||||
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.LoadColliService;
|
||||
import it.integry.ems.rules.businessLogic.dto.LoadColliDTO;
|
||||
@@ -23,7 +24,6 @@ import it.integry.ems.service.production.ProductionOrderDataHandlerService;
|
||||
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.entity.*;
|
||||
import it.integry.ems_model.entity._enum.GestioneEnum;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
@@ -109,6 +109,7 @@ public class WMSLavorazioneService {
|
||||
.setCodJfas(createUDSRequestDTO.getCodJfas())
|
||||
.setRifOrd(createUDSRequestDTO.getRifOrd())
|
||||
.setCodVdes(createUDSRequestDTO.getCodVdes())
|
||||
.setCodTcol(createUDSRequestDTO.getCodTcol())
|
||||
.setIdLotto(createUDSRequestDTO.getIdLotto());
|
||||
|
||||
switch (createUDSRequestDTO.getCausaleCollo()) {
|
||||
@@ -281,13 +282,13 @@ public class WMSLavorazioneService {
|
||||
.setCausale(MtbColr.Causale.DEFAULT)
|
||||
.setCodMart(mtbAart.getCodMart())
|
||||
.setPartitaMag(insertUDSRowRequestDTO.getPartitaMag())
|
||||
.setDataScadPartita(insertUDSRowRequestDTO.getDataScad())
|
||||
.setDataScadPartita(UtilityLocalDate.localDateToDate(insertUDSRowRequestDTO.getDataScad()))
|
||||
.setQtaCol(insertUDSRowRequestDTO.getQtaTot())
|
||||
.setQtaCnf(insertUDSRowRequestDTO.getQtaCnf())
|
||||
.setNumCnf(insertUDSRowRequestDTO.getNumCnf())
|
||||
.setDescrizione(mtbAart.getDescrizioneEstesa())
|
||||
.setUtente(userSession.getFullname())
|
||||
.setDataOrd(UtilityLocalDate.localDateFromDate(insertUDSRowRequestDTO.getDataOrd()))
|
||||
.setDataOrd(insertUDSRowRequestDTO.getDataOrd())
|
||||
.setNumOrd(insertUDSRowRequestDTO.getNumOrd())
|
||||
.setRigaOrd(insertUDSRowRequestDTO.getRigaOrd())
|
||||
.setDatetimeRow(UtilityLocalDate.isNull(insertUDSRowRequestDTO.getDatetimeRow(), UtilityLocalDate.getNowTime()))
|
||||
@@ -392,13 +393,13 @@ public class WMSLavorazioneService {
|
||||
.setCausale(MtbColr.Causale.DEFAULT)
|
||||
.setCodMart(mtbAart.getCodMart())
|
||||
.setPartitaMag(row.getPartitaMag())
|
||||
.setDataScadPartita(row.getDataScad())
|
||||
.setDataScadPartita(UtilityLocalDate.localDateToDate(row.getDataScad()))
|
||||
.setQtaCol(row.getQtaTot())
|
||||
.setQtaCnf(row.getQtaCnf())
|
||||
.setNumCnf(row.getNumCnf())
|
||||
.setDescrizione(mtbAart.getDescrizioneEstesa())
|
||||
.setUtente(userSession.getFullname())
|
||||
.setDataOrd(UtilityLocalDate.localDateFromDate(row.getDataOrd()))
|
||||
.setDataOrd(row.getDataOrd())
|
||||
.setNumOrd(row.getNumOrd())
|
||||
.setRigaOrd(row.getRigaOrd())
|
||||
.setDatetimeRow(UtilityLocalDate.getNowTime())
|
||||
@@ -823,17 +824,17 @@ public class WMSLavorazioneService {
|
||||
produzioniOrdine.get(0).setScarichiProduzione(scarichi);
|
||||
return produzioniOrdine;
|
||||
}
|
||||
List<EntityBase> entititesToSave = new ArrayList<>();
|
||||
HashMap<String, ScarichiArticoloDTO> scarichiArticoli = new HashMap<>();
|
||||
for (MtbColt uds : scarichi) {
|
||||
|
||||
HashMap<String, ScarichiArticoloDTO> scarichiMateriaPrima = new HashMap<>();
|
||||
for (MtbColt scarico : scarichi) {
|
||||
String sql = "SELECT * from mtb_colr where gestione = {} AND data_collo = {} and ser_collo = {} and num_collo = {}";
|
||||
List<MtbColr> rows = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), Query.format(sql, uds.getGestione(), uds.getDataCollo(), uds.getSerCollo(), uds.getNumCollo()), MtbColr.class);
|
||||
List<MtbColr> rows = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), Query.format(sql, scarico.getGestione(), scarico.getDataCollo(), scarico.getSerCollo(), scarico.getNumCollo()), MtbColr.class);
|
||||
if (UtilityList.isNullOrEmpty(rows)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for (MtbColr row : rows) {
|
||||
ScarichiArticoloDTO dtoScarico = scarichiArticoli.get(row.getCodMart());
|
||||
ScarichiArticoloDTO dtoScarico = scarichiMateriaPrima.get(row.getCodMart());
|
||||
if (dtoScarico == null) {
|
||||
dtoScarico = new ScarichiArticoloDTO();
|
||||
dtoScarico.setCodMart(row.getCodMart())
|
||||
@@ -843,14 +844,17 @@ public class WMSLavorazioneService {
|
||||
|
||||
dtoScarico.setQtaScaricata(dtoScarico.getQtaScaricata().add(row.getQtaCol()));
|
||||
dtoScarico.getScarichi().add(row);
|
||||
scarichiArticoli.put(row.getCodMart(), dtoScarico);
|
||||
scarichiMateriaPrima.put(row.getCodMart(), dtoScarico);
|
||||
}
|
||||
uds.setOperation(OperationType.DELETE);
|
||||
entititesToSave.add(uds);
|
||||
|
||||
}
|
||||
|
||||
Iterator<ProduzioneOrdineDTO> iteratorProduzioni = produzioniOrdine.iterator();
|
||||
|
||||
final List<String> codMarts = new ArrayList<>(scarichiMateriaPrima.keySet());
|
||||
|
||||
final List<MtbAart> mtbAarts = WMSUtility.getArticoliByCodMarts(codMarts, multiDBTransactionManager.getPrimaryConnection());
|
||||
|
||||
while (iteratorProduzioni.hasNext()) {
|
||||
ProduzioneOrdineDTO produzione = iteratorProduzioni.next();
|
||||
boolean isLastProduzione = !iteratorProduzioni.hasNext();
|
||||
@@ -877,44 +881,64 @@ public class WMSLavorazioneService {
|
||||
MtbColt uds = createUDS(requestDTO);
|
||||
//</editor-fold>
|
||||
//<editor-fold desc="per ogni articolo ripartisco gli scarichi">
|
||||
for (ScarichiArticoloDTO scarichiMp : scarichiArticoli.values()) {
|
||||
for (ScarichiArticoloDTO scarichiMp : scarichiMateriaPrima.values()) {
|
||||
String codMart = scarichiMp.getCodMart();
|
||||
BigDecimal cifreDec = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(),
|
||||
Query.format("select mtb_unt_mis.cifre_dec from mtb_unt_mis inner join mtb_aart on mtb_unt_mis.unt_mis = mtb_aart.unt_mis and cod_mart = {}", codMart)
|
||||
);
|
||||
BigDecimal qtaDaScaricare = UtilityBigDecimal.calculatePercentage(scarichiMp.getQtaScaricata(), produzione.getPesoProduzione().doubleValue(), cifreDec.intValue());
|
||||
MtbAart mtbAart = mtbAarts.stream()
|
||||
.filter(x -> x.getCodMart().equalsIgnoreCase(codMart))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
|
||||
if(mtbAart == null || UtilityList.isNullOrEmpty(mtbAart.getMtbUntMis())) {
|
||||
throw new InvalidArticoloException(codMart);
|
||||
}
|
||||
|
||||
BigDecimal cifreDecPrimaUntMis = mtbAart.getMtbUntMis().get(0).getCifreDec();
|
||||
|
||||
BigDecimal qtaDaScaricare = UtilityBigDecimal.calculatePercentage(scarichiMp.getQtaScaricata(), produzione.getPesoProduzione().doubleValue(), cifreDecPrimaUntMis.intValue());
|
||||
|
||||
if (UtilityBigDecimal.equalsTo(qtaDaScaricare, BigDecimal.ZERO)) {
|
||||
continue;
|
||||
}
|
||||
scarichiMp.getScarichi().sort(Comparator.comparing(MtbColr::getDatetimeRow));
|
||||
|
||||
scarichiMp.getScarichi()
|
||||
.sort(Comparator.comparing(MtbColr::getDatetimeRow));
|
||||
|
||||
Iterator<MtbColr> rowsIterator = scarichiMp.getScarichi().iterator();
|
||||
do {
|
||||
MtbColr nextScar = rowsIterator.next();
|
||||
if (UtilityBigDecimal.equalsTo(nextScar.getQtaCol(), BigDecimal.ZERO))
|
||||
MtbColr mtbColrToMove = (MtbColr) nextScar.clone();
|
||||
if (UtilityBigDecimal.equalsTo(mtbColrToMove.getQtaCol(), BigDecimal.ZERO))
|
||||
continue;
|
||||
MtbColr newRow = (MtbColr) nextScar.clone();
|
||||
newRow
|
||||
.setDataCollo(null)
|
||||
.setSerCollo(null)
|
||||
.setNumCollo(null)
|
||||
.setGestione(null)
|
||||
.setRiga(null)
|
||||
.setNumCnf(null)
|
||||
.setOperation(OperationType.INSERT);
|
||||
BigDecimal qtaPrelevata = isLastProduzione ? nextScar.getQtaCol() : UtilityBigDecimal.getLowerBetween(nextScar.getQtaCol(), qtaDaScaricare);
|
||||
newRow.setQtaCol(qtaPrelevata);
|
||||
|
||||
MtbColt mtbColtToMove = new MtbColt(mtbColrToMove.getKey());
|
||||
mtbColtToMove.setOperation(OperationType.SELECT_OBJECT);
|
||||
entityProcessor.processEntity(mtbColtToMove, true, multiDBTransactionManager);
|
||||
mtbColtToMove.getMtbColr().add(mtbColrToMove);
|
||||
|
||||
|
||||
BigDecimal qtaPrelevata = isLastProduzione ? mtbColrToMove.getQtaCol() : UtilityBigDecimal.getLowerBetween(mtbColrToMove.getQtaCol(), qtaDaScaricare);
|
||||
mtbColrToMove.setQtaCol(qtaPrelevata);
|
||||
|
||||
final SpostaArtsTraULResponseDTO spostaArtsTraULResponseDTO = WMSUtility.spostaArtsTraUL(multiDBTransactionManager.getPrimaryConnection(),
|
||||
mtbColtToMove, uds.getBarcodeUl(), false, entityProcessor, requestDataDTO);
|
||||
|
||||
qtaDaScaricare = qtaDaScaricare.subtract(qtaPrelevata);
|
||||
nextScar.setQtaCol(nextScar.getQtaCol().subtract(qtaPrelevata));
|
||||
uds.getMtbColr().add(newRow);
|
||||
nextScar.setQtaCol(mtbColrToMove.getQtaCol().subtract(qtaPrelevata));
|
||||
|
||||
uds.getMtbColr()
|
||||
.addAll(spostaArtsTraULResponseDTO.getGeneratedMtbColr());
|
||||
}
|
||||
while ((UtilityBigDecimal.greaterThan(qtaDaScaricare, BigDecimal.ZERO) || isLastProduzione) && rowsIterator.hasNext());
|
||||
}
|
||||
entititesToSave.add(uds);
|
||||
produzione.getScarichiProduzione().add(uds);
|
||||
//</editor-fold>
|
||||
}
|
||||
entityProcessor.processEntityList(entititesToSave, multiDBTransactionManager, true);
|
||||
UtilityEntity.throwEntitiesException(entititesToSave);
|
||||
|
||||
for (MtbColt originalScarico : scarichi) {
|
||||
if(!WMSUtility.canULBeDeleted(originalScarico, multiDBTransactionManager))
|
||||
throw new Exception("Impossibile eliminare lo scarico " + originalScarico.getSerCollo() + " " + originalScarico.getNumCollo() + " " + originalScarico.getDataCollo() + " in quanto è stato utilizzato per la ripartizione della produzione!");
|
||||
WMSUtility.deleteUL(originalScarico, entityProcessor, multiDBTransactionManager);
|
||||
}
|
||||
|
||||
return produzioniOrdine;
|
||||
}
|
||||
|
||||
@@ -34,11 +34,7 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@@ -85,7 +81,8 @@ public class WMSSpedizioneService {
|
||||
.setSegno(-1)
|
||||
.setRifOrd(createUDSRequestDTO.getRifOrd())
|
||||
.setCodAnag(createUDSRequestDTO.getCodAnag())
|
||||
.setCodVdes(createUDSRequestDTO.getCodVdes());
|
||||
.setCodVdes(createUDSRequestDTO.getCodVdes())
|
||||
.setCodTcol(createUDSRequestDTO.getCodTcol());
|
||||
|
||||
|
||||
//udsMtbColt.setCodAnag(wmsGenericService.retrieveInternalCodAnagCliente());
|
||||
@@ -152,7 +149,9 @@ public class WMSSpedizioneService {
|
||||
udsMtbColt.setOperation(OperationType.INSERT);
|
||||
entityProcessor.processEntity(udsMtbColt, multiDBTransactionManager);
|
||||
|
||||
udsMtbColt.setOnlyPkMaster(false);
|
||||
udsMtbColt
|
||||
.setMtbCols(new ArrayList<>())
|
||||
.setOnlyPkMaster(false);
|
||||
|
||||
return udsMtbColt;
|
||||
}
|
||||
@@ -249,7 +248,7 @@ public class WMSSpedizioneService {
|
||||
.setCausale(MtbColr.Causale.DEFAULT)
|
||||
.setCodMart(mtbAart.getCodMart())
|
||||
.setPartitaMag(insertUDSRowRequestDTO.getPartitaMag())
|
||||
.setDataScadPartita(insertUDSRowRequestDTO.getDataScad())
|
||||
.setDataScadPartita(UtilityLocalDate.localDateToDate(insertUDSRowRequestDTO.getDataScad()))
|
||||
.setQtaCol(insertUDSRowRequestDTO.getQtaTot())
|
||||
.setQtaCnf(insertUDSRowRequestDTO.getQtaCnf())
|
||||
.setNumCnf(insertUDSRowRequestDTO.getNumCnf())
|
||||
|
||||
Reference in New Issue
Block a user