Merge branch 'develop' into feature/JDK11
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:
@@ -0,0 +1,25 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.IntegryCustomer;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20250212095152 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
executeStatement("ALTER TABLE mtb_depo_tipi ADD gestisci_colli BIT");
|
||||
executeStatement("UPDATE mtb_depo_tipi SET gestisci_colli = 1");
|
||||
|
||||
if (isCustomer(IntegryCustomer.RossoGargano)){
|
||||
executeStatement("UPDATE mtb_depo_tipi SET gestisci_colli = 0 WHERE cod_tipo_depo = 'PV'");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
}
|
||||
}
|
||||
@@ -29,6 +29,9 @@ public class MtbDepoTipi extends EntityBase {
|
||||
@SqlField(value = "descrizione", maxLength = 40, nullable = false)
|
||||
private String descrizione;
|
||||
|
||||
@SqlField(value = "gestisci_colli")
|
||||
private boolean gestisciColli;
|
||||
|
||||
public MtbDepoTipi() {
|
||||
super(logger);
|
||||
}
|
||||
@@ -37,15 +40,26 @@ public class MtbDepoTipi extends EntityBase {
|
||||
return codTipoDepo;
|
||||
}
|
||||
|
||||
public void setCodTipoDepo(String codTipoDepo) {
|
||||
public MtbDepoTipi setCodTipoDepo(String codTipoDepo) {
|
||||
this.codTipoDepo = codTipoDepo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDescrizione() {
|
||||
return descrizione;
|
||||
}
|
||||
|
||||
public void setDescrizione(String descrizione) {
|
||||
public MtbDepoTipi setDescrizione(String descrizione) {
|
||||
this.descrizione = descrizione;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean getGestisciColli() {
|
||||
return gestisciColli;
|
||||
}
|
||||
|
||||
public MtbDepoTipi setGestisciColli(boolean gestisciColli) {
|
||||
this.gestisciColli = gestisciColli;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,150 @@
|
||||
package it.integry.ems.retail.wms.Utility;
|
||||
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
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 java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class WMSUtility {
|
||||
|
||||
public static boolean isGestisciColli(MtbDepo mtbDepo,
|
||||
EntityProcessor entityProcessor,
|
||||
MultiDBTransactionManager multiDBTransactionManager) throws Exception {
|
||||
|
||||
MtbDepoTipi mtbDepoTipi = new MtbDepoTipi();
|
||||
mtbDepoTipi.setCodTipoDepo(mtbDepo.getFlagTipoNegozio())
|
||||
.setOperation(OperationType.SELECT_OBJECT);
|
||||
|
||||
entityProcessor.processEntity(mtbDepoTipi, multiDBTransactionManager);
|
||||
|
||||
return mtbDepoTipi.getGestisciColli();
|
||||
}
|
||||
|
||||
public static void createDtbDocrFromMtbColr(DtbDoct dtbDoct, MtbColr mtbColr) throws Exception {
|
||||
DtbDocr docr = dtbDoct.getDtbDocr().stream()
|
||||
.filter(row -> row.getCodMart().equalsIgnoreCase(mtbColr.getCodMart()) && row.getPartitaMag().equalsIgnoreCase(mtbColr.getPartitaMag()))
|
||||
.findFirst().orElse(null);
|
||||
|
||||
if (docr == null) {
|
||||
docr = new DtbDocr();
|
||||
docr.setCodMart(mtbColr.getCodMart())
|
||||
.setPartitaMag(mtbColr.getPartitaMag())
|
||||
.setQtaDoc(BigDecimal.ZERO)
|
||||
.setNumCnf(BigDecimal.ZERO)
|
||||
.setOperation(OperationType.INSERT);
|
||||
|
||||
dtbDoct.getDtbDocr().add(docr);
|
||||
}
|
||||
|
||||
docr.setQtaDoc(docr.getQtaDoc().add(mtbColr.getQtaCol()))
|
||||
.setNumCnf(docr.getNumCnf().add(mtbColr.getNumCnf()));
|
||||
}
|
||||
|
||||
public static void trasferisciPedane(MtbColt mtbColt, List<MtbTcol> listaPedane, DtbDoct dtbDoct) throws Exception {
|
||||
//<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 (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));
|
||||
}
|
||||
}
|
||||
//</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());
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
return listaPedane;
|
||||
}
|
||||
|
||||
public static boolean canULBeDeleted(MtbColt mtbColt, MultiDBTransactionManager multiDBTransactionManager) throws Exception {
|
||||
HashMap<String, Object> params = new HashMap<>();
|
||||
params.put("mtb_colt.gestione", mtbColt.getGestione());
|
||||
params.put("mtb_colt.ser_collo", mtbColt.getSerCollo());
|
||||
params.put("mtb_colt.num_collo", mtbColt.getNumCollo());
|
||||
params.put("mtb_colt.data_collo", mtbColt.getDataCollo());
|
||||
|
||||
String whereCond = UtilityQuery.concatFieldsInWhereCond(params);
|
||||
|
||||
String query = "SELECT mtb_colt.* " +
|
||||
"FROM mtb_colt " +
|
||||
"LEFT OUTER JOIN " +
|
||||
" (SELECT gestione, " +
|
||||
" data_collo, " +
|
||||
" num_collo, " +
|
||||
" ser_collo, " +
|
||||
" cod_mart, " +
|
||||
" cod_col, " +
|
||||
" cod_tagl, " +
|
||||
" partita_mag, " +
|
||||
" SUM(qta_col) sum_qta_col " +
|
||||
" FROM mtb_colr " +
|
||||
" GROUP BY gestione, " +
|
||||
" data_collo, " +
|
||||
" num_collo, " +
|
||||
" ser_collo, " +
|
||||
" cod_mart, " +
|
||||
" cod_col, " +
|
||||
" cod_tagl, " +
|
||||
" partita_mag) sum_mtb_colr ON mtb_colt.gestione = sum_mtb_colr.gestione " +
|
||||
"AND mtb_colt.num_collo = sum_mtb_colr.num_collo " +
|
||||
"AND mtb_colt.data_collo = sum_mtb_colr.data_collo " +
|
||||
"AND mtb_colt.ser_collo = sum_mtb_colr.ser_collo " +
|
||||
"AND sum_mtb_colr.sum_qta_col > 0 " +
|
||||
"WHERE sum_mtb_colr.num_collo IS NULL " +
|
||||
" AND " + whereCond;
|
||||
|
||||
final MtbColt result = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), query, MtbColt.class);
|
||||
|
||||
boolean canBeDeleted = result != null;
|
||||
|
||||
if (result != null && !UtilityString.isNullOrEmpty(result.getPosizione())) {
|
||||
MtbDepoPosizioni currentPosizione =
|
||||
UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(),
|
||||
Query.format("SELECT * FROM mtb_depo_posizioni WHERE cod_mdep = {} AND posizione = {}", result.getCodMdep(), result.getPosizione()),
|
||||
MtbDepoPosizioni.class);
|
||||
|
||||
|
||||
canBeDeleted = !currentPosizione.isFlagMonoCollo();
|
||||
}
|
||||
|
||||
return canBeDeleted;
|
||||
}
|
||||
|
||||
public static void deleteUL(MtbColt mtbColt, EntityProcessor entityProcessor, MultiDBTransactionManager multiDBTransactionManager) throws Exception {
|
||||
mtbColt.setOperation(OperationType.DELETE);
|
||||
entityProcessor.processEntity(mtbColt, multiDBTransactionManager);
|
||||
}
|
||||
}
|
||||
@@ -4,8 +4,8 @@ import it.integry.ems.exception.PrimaryDatabaseNotPresentException;
|
||||
import it.integry.ems.javabeans.RequestDataDTO;
|
||||
import it.integry.ems.product.importaz.service.ProductServices;
|
||||
import it.integry.ems.retail.pvmRetail.dto.OrdineInevasoDTO;
|
||||
import it.integry.ems.retail.wms.Utility.WMSUtility;
|
||||
import it.integry.ems.retail.wms.accettazione.dto.AlreadyRegisteredUDCDTO;
|
||||
import it.integry.ems.retail.wms.colli.service.WMSColliService;
|
||||
import it.integry.ems.retail.wms.dto.*;
|
||||
import it.integry.ems.retail.wms.exceptions.InvalidArticoloException;
|
||||
import it.integry.ems.retail.wms.generic.dto.MvwSitArtUdcDetInventarioDTO;
|
||||
@@ -55,9 +55,6 @@ public class WMSAccettazioneService {
|
||||
@Autowired
|
||||
private EntityProcessor entityProcessor;
|
||||
|
||||
@Autowired
|
||||
private WMSColliService wmsColliService;
|
||||
|
||||
@Autowired
|
||||
private WMSGenericService wmsGenericService;
|
||||
|
||||
@@ -174,8 +171,8 @@ public class WMSAccettazioneService {
|
||||
|
||||
MtbColt mtbColtToClose = closeUDCRequestDTO.getMtbColt();
|
||||
|
||||
if (wmsGenericService.canULBeDeleted(mtbColtToClose)) {
|
||||
wmsGenericService.deleteUL(mtbColtToClose);
|
||||
if (WMSUtility.canULBeDeleted(mtbColtToClose, multiDBTransactionManager)) {
|
||||
WMSUtility.deleteUL(mtbColtToClose, entityProcessor, multiDBTransactionManager);
|
||||
return new CloseUDCResponseDTO().setDeleted(true);
|
||||
}
|
||||
|
||||
|
||||
@@ -2,12 +2,12 @@ package it.integry.ems.retail.wms.generic.controller;
|
||||
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.Import.dto.AnomalieDTO;
|
||||
import it.integry.ems.json.ResponseJSONObjectMapper;
|
||||
import it.integry.ems.properties.EmsProperties;
|
||||
import it.integry.ems.response.ServiceRestResponse;
|
||||
import it.integry.ems.retail.dto.PrintOrderCloseDTO;
|
||||
import it.integry.ems.retail.pvmRetail.dto.GiacenzaColliInMagDTO;
|
||||
import it.integry.ems.retail.pvmRetail.dto.PickingObjectDTO;
|
||||
import it.integry.ems.retail.wms.Utility.WMSUtility;
|
||||
import it.integry.ems.retail.wms.dto.*;
|
||||
import it.integry.ems.retail.wms.generic.dto.*;
|
||||
import it.integry.ems.retail.wms.generic.dto.picking_list.GetPickingListAccettazioneDTO;
|
||||
@@ -15,8 +15,10 @@ import it.integry.ems.retail.wms.generic.dto.picking_list.GetPickingListSpedizio
|
||||
import it.integry.ems.retail.wms.generic.dto.picking_list.SitArtOrdAccettazioneDTO;
|
||||
import it.integry.ems.retail.wms.generic.dto.picking_list.SitArtOrdDTO;
|
||||
import it.integry.ems.retail.wms.generic.service.WMSGenericService;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.service.HttpRestWrapper;
|
||||
import it.integry.ems.service.LoginService;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityDirs;
|
||||
import it.integry.ems_model.config.EmsRestConstants;
|
||||
import it.integry.ems_model.entity.DtbOrdt;
|
||||
@@ -57,7 +59,10 @@ public class WMSGenericController {
|
||||
private LoginService loginService;
|
||||
|
||||
@Autowired
|
||||
private ResponseJSONObjectMapper jsonObjectMapper;
|
||||
private EntityProcessor entityProcessor;
|
||||
|
||||
@Autowired
|
||||
private MultiDBTransactionManager multiDBTransactionManager;
|
||||
|
||||
|
||||
@RequestMapping(value = EmsRestConstants.PATH_GET_AVAILABLE_COD_MDEPS_FOR_USER, method = RequestMethod.GET)
|
||||
@@ -181,7 +186,7 @@ public class WMSGenericController {
|
||||
|
||||
chiaveOrdine += String.format("%05d", numOrd);
|
||||
|
||||
List<String> chiaviOrdini = new ArrayList<String>();
|
||||
List<String> chiaviOrdini = new ArrayList<>();
|
||||
chiaviOrdini.add(chiaveOrdine);
|
||||
|
||||
List<GiacenzaColliInMagDTO> colli = wmsGenericService.getGiacenzaInMagOfOrdini(chiaviOrdini, dateCons, codMdep);
|
||||
@@ -294,7 +299,7 @@ public class WMSGenericController {
|
||||
@RequestParam String serCollo,
|
||||
@RequestParam String gestioneOrdine) throws Exception {
|
||||
|
||||
LocalDate dateCollo = null;
|
||||
LocalDate dateCollo;
|
||||
|
||||
if (!UtilityString.isNullOrEmpty(dataCollo)) {
|
||||
dateCollo = UtilityString.parseLocalDate(dataCollo);
|
||||
@@ -353,8 +358,8 @@ public class WMSGenericController {
|
||||
@RequestParam Integer numCollo,
|
||||
@RequestParam String serCollo) throws Exception {
|
||||
|
||||
LocalDate dateCollo = null;
|
||||
Date dateOrd = null;
|
||||
LocalDate dateCollo;
|
||||
Date dateOrd;
|
||||
|
||||
if (!UtilityString.isNullOrEmpty(dataCollo)) {
|
||||
dateCollo = UtilityString.parseLocalDate(dataCollo);
|
||||
@@ -609,7 +614,7 @@ public class WMSGenericController {
|
||||
ServiceRestResponse canUDSBeDeleted(@RequestParam(CommonConstants.PROFILE_DB) String profileDB,
|
||||
@RequestBody CanULBeDeletedRequestDTO canULBeDeletedRequestDTO) throws Exception {
|
||||
|
||||
boolean canBeDeleted = wmsGenericService.canULBeDeleted(canULBeDeletedRequestDTO.getMtbColt());
|
||||
boolean canBeDeleted = WMSUtility.canULBeDeleted(canULBeDeletedRequestDTO.getMtbColt(), multiDBTransactionManager);
|
||||
return ServiceRestResponse.createPositiveResponse(canBeDeleted);
|
||||
}
|
||||
|
||||
@@ -618,7 +623,7 @@ public class WMSGenericController {
|
||||
ServiceRestResponse deleteUDS(@RequestParam(CommonConstants.PROFILE_DB) String profileDB,
|
||||
@RequestBody DeleteULRequestDTO deleteULRequestDTO) throws Exception {
|
||||
|
||||
wmsGenericService.deleteUL(deleteULRequestDTO.getMtbColt());
|
||||
WMSUtility.deleteUL(deleteULRequestDTO.getMtbColt(), entityProcessor, multiDBTransactionManager);
|
||||
return ServiceRestResponse.createPositiveResponse();
|
||||
}
|
||||
|
||||
|
||||
@@ -16,8 +16,8 @@ import it.integry.ems.retail.pvmRetail.dto.GiacenzaColliInMagDTO;
|
||||
import it.integry.ems.retail.pvmRetail.dto.OrdineInevasoDTO;
|
||||
import it.integry.ems.retail.pvmRetail.dto.OrdineInevasoGroupMercDTO;
|
||||
import it.integry.ems.retail.pvmRetail.dto.PickingObjectDTO;
|
||||
import it.integry.ems.retail.wms.dto.RientroMerceRequestDTO;
|
||||
import it.integry.ems.retail.wms.dto.UpdateTipoULRequestDTO;
|
||||
import it.integry.ems.retail.wms.Utility.WMSUtility;
|
||||
import it.integry.ems.retail.wms.dto.*;
|
||||
import it.integry.ems.retail.wms.exceptions.InvalidGestioneLUException;
|
||||
import it.integry.ems.retail.wms.exceptions.InvalidQtaCnfException;
|
||||
import it.integry.ems.retail.wms.generic.dto.*;
|
||||
@@ -25,6 +25,7 @@ import it.integry.ems.retail.wms.generic.dto.ordine.SM2MtbAartDTO;
|
||||
import it.integry.ems.retail.wms.generic.dto.ordine.SM2OrdineBancaleDTO;
|
||||
import it.integry.ems.retail.wms.generic.dto.ordine.SM2OrdineSingoloDTO;
|
||||
import it.integry.ems.retail.wms.generic.dto.picking_list.*;
|
||||
import it.integry.ems.retail.wms.lavorazione.service.WMSLavorazioneService;
|
||||
import it.integry.ems.rules.completing.PackagesRules;
|
||||
import it.integry.ems.service.AziendaService;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
@@ -89,6 +90,9 @@ public class WMSGenericService {
|
||||
@Autowired
|
||||
private UserSession userSession;
|
||||
|
||||
@Autowired
|
||||
private WMSLavorazioneService wmsLavorazioneService;
|
||||
|
||||
public List<AvailableCodMdepDTO> getAvailableCodMdepsForUser() throws Exception {
|
||||
|
||||
if (!requestDataDTO.isValidUsername())
|
||||
@@ -2010,7 +2014,6 @@ public class WMSGenericService {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
List<EntityBase> entitiesToSave = new ArrayList<>();
|
||||
String codMdepPartenza = codMdeps.get(0);
|
||||
DtbDoct dtbDoct = null;
|
||||
@@ -2031,65 +2034,44 @@ public class WMSGenericService {
|
||||
dtbDoct.setOperation(OperationType.INSERT);
|
||||
entitiesToSave.add(dtbDoct);
|
||||
}
|
||||
List<String> codTcolList = mtbCotlList.stream()
|
||||
.filter(x -> !UtilityString.isNullOrEmpty(x.getCodTcol()))
|
||||
.map(x -> UtilityDB.valueToString(x.getCodTcol()))
|
||||
.distinct().collect(Collectors.toList());
|
||||
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);
|
||||
|
||||
List<MtbTcol> listaPedane = WMSUtility.getListaPedane(mtbCotlList, multiDBTransactionManager);
|
||||
boolean gestisciColli = WMSUtility.isGestisciColli(mtbDepo, entityProcessor, multiDBTransactionManager);
|
||||
MtbColt uds = null;
|
||||
|
||||
if (!gestisciColli){
|
||||
CreateUDSRequestDTO createUDSRequest = new CreateUDSRequestDTO();
|
||||
createUDSRequest.setCodMdep(mtbDepo.getCodMdep())
|
||||
.setCausaleCollo(CreateUDSRequestDTO.Causale.SCARICO);
|
||||
|
||||
uds = wmsLavorazioneService.createUDS(createUDSRequest);
|
||||
}
|
||||
|
||||
for (MtbColt mtbColtToMove : mtbCotlList) {
|
||||
if (dtbDoct != null) {
|
||||
for (MtbColr mtbColr : mtbColtToMove.getMtbColr()) {
|
||||
|
||||
DtbDocr docr = dtbDoct.getDtbDocr().stream()
|
||||
.filter(row -> row.getCodMart().equalsIgnoreCase(mtbColr.getCodMart()) && row.getPartitaMag().equalsIgnoreCase(mtbColr.getPartitaMag()))
|
||||
.findFirst().orElse(null);
|
||||
if (docr == null) {
|
||||
docr = new DtbDocr();
|
||||
docr.setCodMart(mtbColr.getCodMart())
|
||||
if(!gestisciColli){
|
||||
InsertUDSRowRequestDTO insertUDSRowRequest = new InsertUDSRowRequestDTO();
|
||||
insertUDSRowRequest
|
||||
.setSourceMtbColr(mtbColr)
|
||||
.setCodMart(mtbColr.getCodMart())
|
||||
.setQtaTot(mtbColr.getQtaCol())
|
||||
.setQtaCnf(mtbColr.getQtaCnf())
|
||||
.setNumCnf(mtbColr.getNumCnf())
|
||||
.setPartitaMag(mtbColr.getPartitaMag())
|
||||
.setQtaDoc(BigDecimal.ZERO)
|
||||
.setNumCnf(BigDecimal.ZERO)
|
||||
.setOperation(OperationType.INSERT);
|
||||
;
|
||||
dtbDoct.getDtbDocr().add(docr);
|
||||
}
|
||||
|
||||
docr
|
||||
.setQtaDoc(docr.getQtaDoc().add(mtbColr.getQtaCol()))
|
||||
.setNumCnf(docr.getNumCnf().add(mtbColr.getNumCnf()))
|
||||
;
|
||||
|
||||
|
||||
}
|
||||
|
||||
//<editor-fold desc="Trasferisco le pedane agganciate al collo se presenti e gestite a magazzino">
|
||||
if (!UtilityString.isNullOrEmpty(mtbColtToMove.getCodTcol()) && !UtilityList.isNullOrEmpty(listaPedane)) {
|
||||
MtbTcol pedana = listaPedane.stream().filter(x -> x.getCodTcol().equalsIgnoreCase(mtbColtToMove.getCodTcol())).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);
|
||||
;
|
||||
dtbDoct.getDtbDocr().add(docr);
|
||||
}
|
||||
|
||||
docr.setQtaDoc(docr.getQtaDoc().add(BigDecimal.ONE));
|
||||
.setDataScad(mtbColr.getDataScadPartita())
|
||||
.setTargetMtbColt(uds);
|
||||
|
||||
WMSUtility.createDtbDocrFromMtbColr(
|
||||
dtbDoct,
|
||||
wmsLavorazioneService.insertUDSRow(insertUDSRowRequest).getSavedMtbColr()
|
||||
);
|
||||
} else {
|
||||
WMSUtility.createDtbDocrFromMtbColr(dtbDoct, mtbColr);
|
||||
}
|
||||
}
|
||||
//</editor-fold>
|
||||
|
||||
WMSUtility.trasferisciPedane(mtbColtToMove, listaPedane, dtbDoct);
|
||||
}
|
||||
mtbColtToMove.setOperation(OperationType.UPDATE);
|
||||
mtbColtToMove
|
||||
@@ -2099,6 +2081,7 @@ public class WMSGenericService {
|
||||
|
||||
entitiesToSave.add(mtbColtToMove);
|
||||
}
|
||||
|
||||
if (dtbDoct != null && !UtilityString.isNullOrEmpty(requestDTO.getAnnotazioni())) {
|
||||
DtbDocr dtbDocr = new DtbDocr()
|
||||
.setDescrizione(UtilityString.substring(requestDTO.getAnnotazioni(), 0, 40))
|
||||
@@ -2108,7 +2091,6 @@ public class WMSGenericService {
|
||||
dtbDoct.getDtbDocr().add(dtbDocr);
|
||||
}
|
||||
|
||||
|
||||
entityProcessor.processEntityList(entitiesToSave, true);
|
||||
UtilityEntity.throwEntitiesException(entitiesToSave);
|
||||
}
|
||||
@@ -2824,66 +2806,6 @@ public class WMSGenericService {
|
||||
|
||||
}
|
||||
|
||||
public boolean canULBeDeleted(MtbColt mtbColt) throws Exception {
|
||||
HashMap<String, Object> params = new HashMap<>();
|
||||
params.put("mtb_colt.gestione", mtbColt.getGestione());
|
||||
params.put("mtb_colt.ser_collo", mtbColt.getSerCollo());
|
||||
params.put("mtb_colt.num_collo", mtbColt.getNumCollo());
|
||||
params.put("mtb_colt.data_collo", mtbColt.getDataCollo());
|
||||
|
||||
String whereCond = UtilityQuery.concatFieldsInWhereCond(params);
|
||||
|
||||
String query = "SELECT mtb_colt.* " +
|
||||
"FROM mtb_colt " +
|
||||
"LEFT OUTER JOIN " +
|
||||
" (SELECT gestione, " +
|
||||
" data_collo, " +
|
||||
" num_collo, " +
|
||||
" ser_collo, " +
|
||||
" cod_mart, " +
|
||||
" cod_col, " +
|
||||
" cod_tagl, " +
|
||||
" partita_mag, " +
|
||||
" SUM(qta_col) sum_qta_col " +
|
||||
" FROM mtb_colr " +
|
||||
" GROUP BY gestione, " +
|
||||
" data_collo, " +
|
||||
" num_collo, " +
|
||||
" ser_collo, " +
|
||||
" cod_mart, " +
|
||||
" cod_col, " +
|
||||
" cod_tagl, " +
|
||||
" partita_mag) sum_mtb_colr ON mtb_colt.gestione = sum_mtb_colr.gestione " +
|
||||
"AND mtb_colt.num_collo = sum_mtb_colr.num_collo " +
|
||||
"AND mtb_colt.data_collo = sum_mtb_colr.data_collo " +
|
||||
"AND mtb_colt.ser_collo = sum_mtb_colr.ser_collo " +
|
||||
"AND sum_mtb_colr.sum_qta_col > 0 " +
|
||||
"WHERE sum_mtb_colr.num_collo IS NULL " +
|
||||
" AND " + whereCond;
|
||||
|
||||
final MtbColt result = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), query, MtbColt.class);
|
||||
|
||||
boolean canBeDeleted = result != null;
|
||||
|
||||
if (result != null && !UtilityString.isNullOrEmpty(result.getPosizione())) {
|
||||
MtbDepoPosizioni currentPosizione =
|
||||
UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(),
|
||||
Query.format("SELECT * FROM mtb_depo_posizioni WHERE cod_mdep = {} AND posizione = {}", result.getCodMdep(), result.getPosizione()),
|
||||
MtbDepoPosizioni.class);
|
||||
|
||||
|
||||
canBeDeleted = !currentPosizione.isFlagMonoCollo();
|
||||
}
|
||||
|
||||
return canBeDeleted;
|
||||
}
|
||||
|
||||
|
||||
public void deleteUL(MtbColt mtbColt) throws Exception {
|
||||
mtbColt.setOperation(OperationType.DELETE);
|
||||
entityProcessor.processEntity(mtbColt, multiDBTransactionManager);
|
||||
}
|
||||
|
||||
public List<MvwSitArtUdcDetInventarioDTO> getGiacenzaCollo(MtbColt mtbColt) throws Exception {
|
||||
String sql = Query.format("select * from mvw_sitart_udc_det_inventario \n" +
|
||||
" where data_collo = {} and\n" +
|
||||
|
||||
@@ -6,13 +6,13 @@ import it.integry.ems.logistic.dto.sm2.FiltroDistribuzioneColloDTO;
|
||||
import it.integry.ems.product.importaz.service.ProductServices;
|
||||
import it.integry.ems.production.dto.OrdineLavorazioneDTO;
|
||||
import it.integry.ems.production.service.ProductionOrderDataHandlerService;
|
||||
import it.integry.ems.retail.wms.Utility.WMSUtility;
|
||||
import it.integry.ems.retail.wms.colli.service.WMSColliService;
|
||||
import it.integry.ems.retail.wms.dto.*;
|
||||
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.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;
|
||||
@@ -44,7 +44,6 @@ import java.util.stream.Collectors;
|
||||
@Scope("request")
|
||||
public class WMSLavorazioneService {
|
||||
|
||||
|
||||
@Autowired
|
||||
private RequestDataDTO requestDataDTO;
|
||||
|
||||
@@ -54,9 +53,6 @@ public class WMSLavorazioneService {
|
||||
@Autowired
|
||||
private EntityProcessor entityProcessor;
|
||||
|
||||
@Autowired
|
||||
private WMSGenericService wmsGenericService;
|
||||
|
||||
@Autowired
|
||||
private WMSGiacenzaULService wmsGiacenzaULService;
|
||||
|
||||
@@ -114,8 +110,6 @@ public class WMSLavorazioneService {
|
||||
.setCodVdes(createUDSRequestDTO.getCodVdes())
|
||||
.setIdLotto(createUDSRequestDTO.getIdLotto());
|
||||
|
||||
//udsMtbColt.setCodAnag(wmsGenericService.retrieveInternalCodAnagCliente());
|
||||
|
||||
switch (createUDSRequestDTO.getCausaleCollo()) {
|
||||
case SCARICO:
|
||||
final List<String> foundCodJfasList = foundDtbOrdts.stream()
|
||||
@@ -198,7 +192,6 @@ public class WMSLavorazioneService {
|
||||
return udsMtbColt;
|
||||
}
|
||||
|
||||
|
||||
public CloseUDSLavorazioneResponseDTO closeUDS(CloseUDSLavorazioneRequestDTO closeUDSRequestDTO) throws Exception {
|
||||
if (!userSession.isAttivo()) {
|
||||
throw new UsernameNotFoundException("Utente " + userSession.getUsername() + " non riconosciuto!");
|
||||
@@ -209,14 +202,12 @@ public class WMSLavorazioneService {
|
||||
try {
|
||||
MtbColt mtbColtToClose = closeUDSRequestDTO.getMtbColt();
|
||||
|
||||
if (wmsGenericService.canULBeDeleted(mtbColtToClose)) {
|
||||
wmsGenericService.deleteUL(mtbColtToClose);
|
||||
if (WMSUtility.canULBeDeleted(mtbColtToClose, multiDBTransactionManager)) {
|
||||
WMSUtility.deleteUL(mtbColtToClose, entityProcessor, multiDBTransactionManager);
|
||||
response.setDeleted(true);
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
|
||||
mtbColtToClose.getMtbColr().clear();
|
||||
mtbColtToClose.setOraFinePrep(new Date())
|
||||
.setOperation(OperationType.UPDATE);
|
||||
@@ -593,8 +584,8 @@ public class WMSLavorazioneService {
|
||||
|
||||
MtbColt mtbColtToClose = closeUDCRequestDTO.getMtbColt();
|
||||
|
||||
if (wmsGenericService.canULBeDeleted(mtbColtToClose)) {
|
||||
wmsGenericService.deleteUL(mtbColtToClose);
|
||||
if (WMSUtility.canULBeDeleted(mtbColtToClose, multiDBTransactionManager)) {
|
||||
WMSUtility.deleteUL(mtbColtToClose, entityProcessor, multiDBTransactionManager);
|
||||
return new CloseUDCResponseDTO().setDeleted(true);
|
||||
}
|
||||
|
||||
|
||||
@@ -2,8 +2,10 @@ package it.integry.ems.retail.wms.vendita.controller;
|
||||
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.response.ServiceRestResponse;
|
||||
import it.integry.ems.retail.wms.Utility.WMSUtility;
|
||||
import it.integry.ems.retail.wms.dto.*;
|
||||
import it.integry.ems.retail.wms.vendita.service.WMSSpedizioneService;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -17,10 +19,11 @@ public class WMSSpedizioneController {
|
||||
|
||||
private final Logger logger = LogManager.getLogger();
|
||||
|
||||
|
||||
@Autowired
|
||||
private WMSSpedizioneService wmsSpedizioneService;
|
||||
|
||||
@Autowired
|
||||
private MultiDBTransactionManager multiDBTransactionManager;
|
||||
|
||||
@RequestMapping(value = "createUDS", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
@@ -46,7 +49,7 @@ public class WMSSpedizioneController {
|
||||
ServiceRestResponse canUDSBeDeleted(@RequestParam(CommonConstants.PROFILE_DB) String profileDB,
|
||||
@RequestBody CanULBeDeletedRequestDTO canULBeDeletedRequestDTO) throws Exception {
|
||||
|
||||
boolean canBeDeleted = wmsSpedizioneService.canUDSBeDeleted(canULBeDeletedRequestDTO.getMtbColt());
|
||||
boolean canBeDeleted = WMSUtility.canULBeDeleted(canULBeDeletedRequestDTO.getMtbColt(), multiDBTransactionManager);
|
||||
return ServiceRestResponse.createPositiveResponse(canBeDeleted);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,17 +5,15 @@ import it.integry.ems.javabeans.RequestDataDTO;
|
||||
import it.integry.ems.logistic.dto.sm2.FiltroDistribuzioneColloDTO;
|
||||
import it.integry.ems.product.importaz.service.ProductServices;
|
||||
import it.integry.ems.retail.pvmRetail.dto.save.DocFromPickingDTO;
|
||||
import it.integry.ems.retail.pvmRetail.service.PvmService;
|
||||
import it.integry.ems.retail.pvmRetail.service.PvmServiceSave;
|
||||
import it.integry.ems.retail.wms.Utility.WMSUtility;
|
||||
import it.integry.ems.retail.wms.colli.service.WMSColliService;
|
||||
import it.integry.ems.retail.wms.dto.*;
|
||||
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.service.WMSGenericService;
|
||||
import it.integry.ems.retail.wms.generic.service.WMSGiacenzaULService;
|
||||
import it.integry.ems.service.AziendaService;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.user.UserSession;
|
||||
@@ -37,7 +35,6 @@ 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.stream.Collectors;
|
||||
|
||||
@@ -51,9 +48,6 @@ public class WMSSpedizioneService {
|
||||
@Autowired
|
||||
private MultiDBTransactionManager multiDBTransactionManager;
|
||||
|
||||
@Autowired
|
||||
private AziendaService aziendaService;
|
||||
|
||||
@Autowired
|
||||
private SetupGest setupGest;
|
||||
|
||||
@@ -63,20 +57,15 @@ public class WMSSpedizioneService {
|
||||
@Autowired
|
||||
private WMSColliService wmsColliService;
|
||||
|
||||
@Autowired
|
||||
private WMSGenericService wmsGenericService;
|
||||
|
||||
@Autowired
|
||||
private WMSGiacenzaULService wmsGiacenzaULService;
|
||||
|
||||
@Autowired
|
||||
private ProductServices productServices;
|
||||
|
||||
@Autowired
|
||||
private PvmService pvmService;
|
||||
|
||||
@Autowired
|
||||
private UserSession userSession;
|
||||
|
||||
@Autowired
|
||||
private PvmServiceSave pvmServiceSave;
|
||||
|
||||
@@ -179,7 +168,7 @@ public class WMSSpedizioneService {
|
||||
|
||||
MtbColt mtbColtToClose = closeUDSRequestDTO.getMtbColt();
|
||||
|
||||
if (canUDSBeDeleted(mtbColtToClose)) {
|
||||
if (WMSUtility.canULBeDeleted(mtbColtToClose, multiDBTransactionManager)) {
|
||||
deleteUDS(mtbColtToClose);
|
||||
return new CloseUDSResponseDTO().setDeleted(true);
|
||||
}
|
||||
@@ -234,47 +223,6 @@ public class WMSSpedizioneService {
|
||||
UtilityEntity.throwEntitiesException(entityRet);
|
||||
}
|
||||
|
||||
public boolean canUDSBeDeleted(MtbColt mtbColt) throws Exception {
|
||||
HashMap<String, Object> params = new HashMap<>();
|
||||
params.put("mtb_colt.gestione", mtbColt.getGestione());
|
||||
params.put("mtb_colt.ser_collo", mtbColt.getSerCollo());
|
||||
params.put("mtb_colt.num_collo", mtbColt.getNumCollo());
|
||||
params.put("mtb_colt.data_collo", mtbColt.getDataCollo());
|
||||
|
||||
String whereCond = UtilityQuery.concatFieldsInWhereCond(params);
|
||||
|
||||
String query = "SELECT mtb_colt.* " +
|
||||
"FROM mtb_colt " +
|
||||
"LEFT OUTER JOIN " +
|
||||
" (SELECT gestione, " +
|
||||
" data_collo, " +
|
||||
" num_collo, " +
|
||||
" ser_collo, " +
|
||||
" cod_mart, " +
|
||||
" cod_col, " +
|
||||
" cod_tagl, " +
|
||||
" partita_mag, " +
|
||||
" SUM(qta_col) sum_qta_col " +
|
||||
" FROM mtb_colr " +
|
||||
" GROUP BY gestione, " +
|
||||
" data_collo, " +
|
||||
" num_collo, " +
|
||||
" ser_collo, " +
|
||||
" cod_mart, " +
|
||||
" cod_col, " +
|
||||
" cod_tagl, " +
|
||||
" partita_mag) sum_mtb_colr ON mtb_colt.gestione = sum_mtb_colr.gestione " +
|
||||
"AND mtb_colt.num_collo = sum_mtb_colr.num_collo " +
|
||||
"AND mtb_colt.data_collo = sum_mtb_colr.data_collo " +
|
||||
"AND mtb_colt.ser_collo = sum_mtb_colr.ser_collo " +
|
||||
"AND sum_mtb_colr.sum_qta_col > 0 " +
|
||||
"WHERE sum_mtb_colr.num_collo IS NULL " +
|
||||
" AND " + whereCond;
|
||||
|
||||
final List<HashMap<String, Object>> result = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), query);
|
||||
return !result.isEmpty();
|
||||
}
|
||||
|
||||
public void deleteUDS(MtbColt mtbColt) throws Exception {
|
||||
mtbColt.setOperation(OperationType.DELETE);
|
||||
entityProcessor.processEntity(mtbColt, multiDBTransactionManager);
|
||||
|
||||
Reference in New Issue
Block a user