Merge branch 'develop' into feature/JDK11
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
jenkins
2025-02-12 15:59:03 +01:00
9 changed files with 257 additions and 202 deletions

View File

@@ -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 {
}
}

View File

@@ -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;
}
}

View File

@@ -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);
}
}

View File

@@ -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);
}

View File

@@ -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();
}

View File

@@ -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" +

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);