[ROSSOGARGANO]

- raggruppate righe documento di trasferimento per articolo partita e spostate  annotazioni in riga documento
[BIOLEVANTE]
  - servizio aggiornamento peso articolo
This commit is contained in:
2025-01-09 10:18:54 +01:00
parent 6313991e96
commit bb39d76649
4 changed files with 138 additions and 38 deletions

View File

@@ -2,10 +2,10 @@ package it.integry.ems.product.controller;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import it.integry.common.var.CommonConstants; import it.integry.common.var.CommonConstants;
import it.integry.ems.Import.dto.ImportRequestDTO;
import it.integry.ems.download.DownloadFileHandlerService; import it.integry.ems.download.DownloadFileHandlerService;
import it.integry.ems.product.dto.CategorieCostoProdottoDTO; import it.integry.ems.product.dto.CategorieCostoProdottoDTO;
import it.integry.ems.product.dto.ImportMtbLisvDataDTO; import it.integry.ems.product.dto.ImportMtbLisvDataDTO;
import it.integry.ems.product.dto.UpdatePesoArticoloRequestDTO;
import it.integry.ems.product.importaz.dto.AggiornaLisvDTO; import it.integry.ems.product.importaz.dto.AggiornaLisvDTO;
import it.integry.ems.product.importaz.dto.ContrattiVenditaDTO; import it.integry.ems.product.importaz.dto.ContrattiVenditaDTO;
import it.integry.ems.product.importaz.dto.ImportCaratteristicheDTO; import it.integry.ems.product.importaz.dto.ImportCaratteristicheDTO;
@@ -29,11 +29,9 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope; import org.springframework.context.annotation.Scope;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@@ -84,7 +82,7 @@ public class ProductController {
ServiceRestResponse confirmTempListino( ServiceRestResponse confirmTempListino(
HttpServletRequest request, HttpServletRequest request,
@RequestParam(CommonConstants.PROFILE_DB) String configuration) throws Exception { @RequestParam(CommonConstants.PROFILE_DB) String configuration) throws Exception {
ServiceRestResponse response = ServiceRestResponse.createEntityPositiveResponse(importAnagListiniService.confirmTempListino()); ServiceRestResponse response = ServiceRestResponse.createEntityPositiveResponse(importAnagListiniService.confirmTempListino());
return response; return response;
} }
@@ -149,6 +147,7 @@ public class ProductController {
return ServiceRestResponse.createNegativeResponse(e); return ServiceRestResponse.createNegativeResponse(e);
} }
} }
@RequestMapping(value = EmsRestConstants.PATH_IMPORT_LISV, method = RequestMethod.POST) @RequestMapping(value = EmsRestConstants.PATH_IMPORT_LISV, method = RequestMethod.POST)
public @ResponseBody public @ResponseBody
List<ServiceRestResponse> importListiniVendita( List<ServiceRestResponse> importListiniVendita(
@@ -284,13 +283,13 @@ public class ProductController {
@RequestMapping(value = "saveArtDialogo", method = RequestMethod.POST) @RequestMapping(value = "saveArtDialogo", method = RequestMethod.POST)
public @ResponseBody public @ResponseBody
List<ServiceRestResponse> saveArtDialogo(HttpServletRequest request, List<ServiceRestResponse> saveArtDialogo(HttpServletRequest request,
@RequestParam(CommonConstants.PROFILE_DB) String configuration, @RequestParam(CommonConstants.PROFILE_DB) String configuration,
@RequestBody MtbAart mtbAart ) throws Exception { @RequestBody MtbAart mtbAart) throws Exception {
List<ServiceRestResponse> serviceRestResponseList = new ArrayList<>(); List<ServiceRestResponse> serviceRestResponseList = new ArrayList<>();
try { try {
serviceRestResponseList.add(ServiceRestResponse.createPositiveResponse(productServices.saveArtDialogo(mtbAart))); serviceRestResponseList.add(ServiceRestResponse.createPositiveResponse(productServices.saveArtDialogo(mtbAart)));
} catch (Exception e ) { } catch (Exception e) {
logger.error(e); logger.error(e);
serviceRestResponseList.add(ServiceRestResponse.createNegativeResponse(e)); serviceRestResponseList.add(ServiceRestResponse.createNegativeResponse(e));
} }
@@ -304,7 +303,6 @@ public class ProductController {
@RequestParam("barcode") String barcode) throws Exception { @RequestParam("barcode") String barcode) throws Exception {
List<MtbAart> mtbAartList = productServices.searchArticoliByBarcode(barcode, false); List<MtbAart> mtbAartList = productServices.searchArticoliByBarcode(barcode, false);
return ServiceRestResponse.createPositiveResponse(mtbAartList); return ServiceRestResponse.createPositiveResponse(mtbAartList);
} }
@@ -422,5 +420,19 @@ public class ProductController {
return ServiceRestResponse.createNegativeResponse(e); return ServiceRestResponse.createNegativeResponse(e);
} }
} }
@RequestMapping(value = "updatePesoArticolo", method = RequestMethod.POST)
public @ResponseBody ServiceRestResponse updatePesoArticolo(HttpServletRequest request,
@RequestParam(CommonConstants.PROFILE_DB) String profileDb,
@RequestBody UpdatePesoArticoloRequestDTO dto) {
try {
return ServiceRestResponse.createPositiveResponse(productServices.updatePesoArticolo(dto));
} catch (Exception e) {
logger.error(request.getRequestURI(), e);
return ServiceRestResponse.createNegativeResponse(e);
}
}
} }

View File

@@ -0,0 +1,40 @@
package it.integry.ems.product.dto;
import it.integry.ems_model.entity.DtbOrdt;
import java.math.BigDecimal;
import java.util.List;
public class UpdatePesoArticoloRequestDTO {
private String codMart;
private BigDecimal taraKg;
private List<DtbOrdt> ordersToUpdate;
public String getCodMart() {
return codMart;
}
public UpdatePesoArticoloRequestDTO setCodMart(String codMart) {
this.codMart = codMart;
return this;
}
public BigDecimal getTaraKg() {
return taraKg;
}
public UpdatePesoArticoloRequestDTO setTaraKg(BigDecimal taraKg) {
this.taraKg = taraKg;
return this;
}
public List<DtbOrdt> getOrdersToUpdate() {
return ordersToUpdate;
}
public UpdatePesoArticoloRequestDTO setOrdersToUpdate(List<DtbOrdt> ordersToUpdate) {
this.ordersToUpdate = ordersToUpdate;
return this;
}
}

View File

@@ -4,10 +4,10 @@ import com.annimon.stream.Optional;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.common.var.CommonConstants; import it.integry.common.var.CommonConstants;
import it.integry.ems.Import.dto.ImportRequestDTO; import it.integry.ems.Import.dto.ImportRequestDTO;
import it.integry.ems.datasource.DataSource; import it.integry.ems.datasource.DataSource;
import it.integry.ems.product.dto.UpdatePesoArticoloRequestDTO;
import it.integry.ems.product.importaz.dto.ArticoliMorganteDTO; import it.integry.ems.product.importaz.dto.ArticoliMorganteDTO;
import it.integry.ems.product.importaz.dto.ContrattiVenditaDTO; import it.integry.ems.product.importaz.dto.ContrattiVenditaDTO;
import it.integry.ems.product.importaz.dto.StatoArticoloDTO; import it.integry.ems.product.importaz.dto.StatoArticoloDTO;
@@ -15,6 +15,7 @@ import it.integry.ems.properties.EmsProperties;
import it.integry.ems.response.FileItem; import it.integry.ems.response.FileItem;
import it.integry.ems.rules.completing.QueryRules; import it.integry.ems.rules.completing.QueryRules;
import it.integry.ems.service.EntityProcessor; import it.integry.ems.service.EntityProcessor;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.utility.UtilityEntity; import it.integry.ems.utility.UtilityEntity;
import it.integry.ems_model.base.EntityBase; import it.integry.ems_model.base.EntityBase;
@@ -26,7 +27,6 @@ import it.integry.ems_model.types.TypeDbObject;
import it.integry.ems_model.utility.*; import it.integry.ems_model.utility.*;
import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.Base64;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
@@ -37,14 +37,12 @@ import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.File; import java.io.File;
import java.io.FileInputStream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.sql.CallableStatement;
import it.integry.ems.sync.MultiDBTransaction.Connection; import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.*; import java.sql.Statement;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -1316,4 +1314,36 @@ public class ProductServices {
return barcode; return barcode;
} }
public List<EntityBase> updatePesoArticolo(UpdatePesoArticoloRequestDTO dto) throws Exception {
List<EntityBase> entities = new ArrayList<>();
try {
MtbAart mtbAart = new MtbAart();
mtbAart.setCodMart(dto.getCodMart())
.setTaraKg(dto.getTaraKg())
.setOperation(OperationType.UPDATE);
entities.add(mtbAart);
if (!UtilityList.isNullOrEmpty(dto.getOrdersToUpdate())) {
for (DtbOrdt ordLav : dto.getOrdersToUpdate()) {
String sql = it.integry.ems_model.utility.Query.format("SELECT * from mtb_colt where data_ord = {} and gestione = {} and num_ord = {}",
ordLav.getDataOrd(), ordLav.getGestione(), ordLav.getNumOrd());
List<MtbColt> coltsToUpdate = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, MtbColt.class);
if (UtilityList.isNullOrEmpty(coltsToUpdate)) {
continue;
}
entities.addAll(coltsToUpdate.stream().map(ul -> {
ul.setCalcPeso(true).setOperation(OperationType.UPDATE);
return ul;
}).collect(Collectors.toList()));
}
}
entityProcessor.processEntityList(entities, true);
} catch (Exception e) {
multiDBTransactionManager.rollbackAll();
throw e;
}
return entities;
}
} }

View File

@@ -1949,7 +1949,7 @@ public class WMSGenericService {
entityProcessor.processEntity(mtbDepoPosizioni, multiDBTransactionManager); entityProcessor.processEntity(mtbDepoPosizioni, multiDBTransactionManager);
if(mtbDepoPosizioni.getCodMdep() == null || mtbDepoPosizioni.getPosizione() == null) { if (mtbDepoPosizioni.getCodMdep() == null || mtbDepoPosizioni.getPosizione() == null) {
throw new Exception("La posizione " + requestDTO.getPosizione() + " non esiste nel deposito " + requestDTO.getCodMdep()); throw new Exception("La posizione " + requestDTO.getPosizione() + " non esiste nel deposito " + requestDTO.getCodMdep());
} }
} }
@@ -1957,7 +1957,7 @@ public class WMSGenericService {
List<EntityBase> entitiesToSave = new ArrayList<>(); List<EntityBase> entitiesToSave = new ArrayList<>();
String codMdepPartenza = codMdeps.get(0); String codMdepPartenza = codMdeps.get(0);
DtbDoct dtbDoct = null;
if (!UtilityString.equalsIgnoreCase(codMdepPartenza, requestDTO.getCodMdep())) { if (!UtilityString.equalsIgnoreCase(codMdepPartenza, requestDTO.getCodMdep())) {
String codDtipToUse = setupGest.getSetupDepo(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "LOGISTICA", "COD_DTIP_DOC_TRASF_INTERNI", requestDTO.getCodMdep()); String codDtipToUse = setupGest.getSetupDepo(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "LOGISTICA", "COD_DTIP_DOC_TRASF_INTERNI", requestDTO.getCodMdep());
@@ -1965,7 +1965,7 @@ public class WMSGenericService {
if (UtilityString.isNullOrEmpty(codDtipToUse)) if (UtilityString.isNullOrEmpty(codDtipToUse))
throw new Exception("La configurazione della setup gest non è completa per gestire gli spostamenti tra depositi"); throw new Exception("La configurazione della setup gest non è completa per gestire gli spostamenti tra depositi");
DtbDoct dtbDoct = new DtbDoct() dtbDoct = new DtbDoct()
.setCodMdep(codMdepPartenza) .setCodMdep(codMdepPartenza)
.setCodVdes(mtbDepo.getCodVdes()) .setCodVdes(mtbDepo.getCodVdes())
.setCodAnag(mtbDepo.getCodAnag()) .setCodAnag(mtbDepo.getCodAnag())
@@ -1973,36 +1973,54 @@ public class WMSGenericService {
.setCodDtip(codDtipToUse); .setCodDtip(codDtipToUse);
dtbDoct.setOperation(OperationType.INSERT); dtbDoct.setOperation(OperationType.INSERT);
for (MtbColt mtbColtToMove : mtbCotlList) { entitiesToSave.add(dtbDoct);
}
for (MtbColt mtbColtToMove : mtbCotlList) {
if (dtbDoct != null) {
for (MtbColr mtbColr : mtbColtToMove.getMtbColr()) { for (MtbColr mtbColr : mtbColtToMove.getMtbColr()) {
DtbDocr dtbDocr = new DtbDocr() DtbDocr docr = dtbDoct.getDtbDocr().stream()
.setCodMart(mtbColr.getCodMart()) .filter(row -> row.getCodMart().equalsIgnoreCase(mtbColr.getCodMart()) && row.getPartitaMag().equalsIgnoreCase(mtbColr.getPartitaMag()))
.setPartitaMag(mtbColr.getPartitaMag()) .findFirst().orElse(null);
.setQtaDoc(mtbColr.getQtaCol()) if (docr == null) {
.setQtaCnf(mtbColr.getQtaCnf()); docr = new DtbDocr();
dtbDocr.setOperation(OperationType.INSERT); docr.setCodMart(mtbColr.getCodMart())
.setPartitaMag(mtbColr.getPartitaMag())
.setQtaDoc(BigDecimal.ZERO)
.setQtaCnf(BigDecimal.ZERO)
.setOperation(OperationType.INSERT);
;
dtbDoct.getDtbDocr().add(docr);
}
docr
.setQtaDoc(docr.getQtaDoc().add(mtbColr.getQtaCol()))
.setQtaCnf(docr.getQtaCnf().add(mtbColr.getQtaCnf()))
;
dtbDoct.getDtbDocr().add(dtbDocr);
} }
mtbColtToMove.setOperation(OperationType.UPDATE);
mtbColtToMove
.setMtbColr(new ArrayList<>())
.setPosizione(UtilityString.isNull(requestDTO.getPosizione(), EmsRestConstants.NULL))
.setCodMdep(requestDTO.getCodMdep());
entitiesToSave.add(mtbColtToMove);
} }
mtbColtToMove.setOperation(OperationType.UPDATE);
mtbColtToMove
.setMtbColr(new ArrayList<>())
.setPosizione(UtilityString.isNull(requestDTO.getPosizione(), EmsRestConstants.NULL))
.setCodMdep(requestDTO.getCodMdep());
entitiesToSave.add(dtbDoct); entitiesToSave.add(mtbColtToMove);
}
if (!UtilityString.isNullOrEmpty(requestDTO.getAnnotazioni()) && dtbDoct != null) {
DtbDocr dtbDocr = new DtbDocr()
.setDescrizione(UtilityString.substring(requestDTO.getAnnotazioni(), 0, 40))
.setDescrizioneEstesa(requestDTO.getAnnotazioni());
dtbDocr.setOperation(OperationType.INSERT);
dtbDoct.getDtbDocr().add(dtbDocr);
} }
entityProcessor.processEntityList(entitiesToSave, true); entityProcessor.processEntityList(entitiesToSave, true);
UtilityEntity.throwEntitiesException(entitiesToSave); UtilityEntity.throwEntitiesException(entitiesToSave);
} }
public void spostaULInPosizione(MtbColt mtbColtToMove, MtbDepoPosizioni mtbDepoPosizioni) throws Exception { public void spostaULInPosizione(MtbColt mtbColtToMove, MtbDepoPosizioni mtbDepoPosizioni) throws Exception {