From 065e6af637041cf21566cdaf3cdae0f8dc04d45c Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 9 Apr 2025 09:11:20 +0200 Subject: [PATCH 1/8] Iniziato refactoring servizi di versamento materiali --- ...RetrieveArtsInGiacenzaByArtRequestDTO.java | 10 ++ .../generic/service/WMSGiacenzaService.java | 2 +- .../generic/service/WMSGiacenzaULService.java | 15 ++- .../controller/WMSMaterialiController.java | 20 ++-- .../dto/RecuperaMaterialiResponseDTO.java | 10 +- .../dto/VersaMaterialiRequestDTO.java | 110 ++++++++++++++++++ .../dto/VersaMaterialiResponseDTO.java | 4 + .../service/WMSMaterialiService.java | 47 +++++++- 8 files changed, 197 insertions(+), 21 deletions(-) create mode 100644 ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/dto/VersaMaterialiRequestDTO.java create mode 100644 ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/dto/VersaMaterialiResponseDTO.java diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/dto/RetrieveArtsInGiacenzaByArtRequestDTO.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/dto/RetrieveArtsInGiacenzaByArtRequestDTO.java index 78750b0ddb..acca0317f0 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/dto/RetrieveArtsInGiacenzaByArtRequestDTO.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/dto/RetrieveArtsInGiacenzaByArtRequestDTO.java @@ -6,6 +6,7 @@ public class RetrieveArtsInGiacenzaByArtRequestDTO { private String codMart; private String partitaMag; + private String barcodeUl; private String posizione; public String getCodMdep() { @@ -35,6 +36,15 @@ public class RetrieveArtsInGiacenzaByArtRequestDTO { return this; } + public String getBarcodeUl() { + return barcodeUl; + } + + public RetrieveArtsInGiacenzaByArtRequestDTO setBarcodeUl(String barcodeUl) { + this.barcodeUl = barcodeUl; + return this; + } + public String getPosizione() { return posizione; } diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGiacenzaService.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGiacenzaService.java index 10fb3f09b0..39f780bfa3 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGiacenzaService.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGiacenzaService.java @@ -39,7 +39,7 @@ public class WMSGiacenzaService { .setCodMdep(x.getCodMdep())) .collect(Collectors.toList()); - final List availableItems = wmsGiacenzaULService.retrieveArtsInGiacenzaByArticoli(multiDBTransactionManager.getPrimaryConnection(), + final List availableItems = wmsGiacenzaULService.retrieveArtsInGiacenzaByArticolo(multiDBTransactionManager.getPrimaryConnection(), retrieveArtsInGiacenzaByArtRequestDTOList); diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGiacenzaULService.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGiacenzaULService.java index 9b25d8fab6..03b242a9df 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGiacenzaULService.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGiacenzaULService.java @@ -15,10 +15,7 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.time.LocalDate; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; @Service @@ -49,6 +46,7 @@ public class WMSGiacenzaULService { " sit_art.peso_netto_kg,\n" + " sit_art.peso_lordo_kg,\n" + " sit_art.cod_jfas,\n" + + " sit_art.barcode_ul,\n" + (withTestataCollo ? "mtb_colt.num_ord,\n" : "") + (withTestataCollo ? "mtb_colt.data_ord,\n" : "") + (withTestataCollo ? "mtb_colt.barcode_ul,\n" : "") + @@ -252,7 +250,11 @@ public class WMSGiacenzaULService { return UtilityDB.executeSimpleQueryDTO(connection, sql, MvwSitArtUdcDetInventarioDTO.class); } - public List retrieveArtsInGiacenzaByArticoli(Connection connection, List inputData) throws Exception { + public List retrieveArtsInGiacenzaByArticolo(Connection connection, RetrieveArtsInGiacenzaByArtRequestDTO inputData) throws Exception { + return retrieveArtsInGiacenzaByArticolo(connection, Collections.singletonList(inputData)); + } + + public List retrieveArtsInGiacenzaByArticolo(Connection connection, List inputData) throws Exception { List> whereCondMaps = inputData.stream() .map(x -> { @@ -269,6 +271,9 @@ public class WMSGiacenzaULService { if (!UtilityString.isNullOrEmpty(x.getCodMdep())) map.put("sit_art.cod_mdep", x.getCodMdep()); + if (!UtilityString.isNullOrEmpty(x.getBarcodeUl())) + map.put("sit_art.barcode_ul", x.getBarcodeUl()); + return map; }).collect(Collectors.toList()); diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/controller/WMSMaterialiController.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/controller/WMSMaterialiController.java index 2722fb9eae..81aae269dc 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/controller/WMSMaterialiController.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/controller/WMSMaterialiController.java @@ -3,7 +3,7 @@ package it.integry.ems.retail.wms.lavorazione.controller; import it.integry.common.var.CommonConstants; import it.integry.ems.response.ServiceRestResponse; import it.integry.ems.retail.wms.lavorazione.dto.RecuperaMaterialiRequestDTO; -import it.integry.ems.retail.wms.lavorazione.dto.RecuperaMaterialiResponseDTO; +import it.integry.ems.retail.wms.lavorazione.dto.VersaMaterialiRequestDTO; import it.integry.ems.retail.wms.lavorazione.service.WMSMaterialiService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; @@ -20,13 +20,17 @@ public class WMSMaterialiController { - @RequestMapping(value = "recupera", method = RequestMethod.POST) - public @ResponseBody - ServiceRestResponse recupera(@RequestParam(CommonConstants.PROFILE_DB) String profileDB, - @RequestBody RecuperaMaterialiRequestDTO recuperaMaterialiRequestDTO) throws Exception { - RecuperaMaterialiResponseDTO responseDto = new RecuperaMaterialiResponseDTO() - .setUpdatedMtbColtScarico(wmsMaterialiService.recupera(recuperaMaterialiRequestDTO)); + @PostMapping(value = "versa") + public @ResponseBody ServiceRestResponse versa(@RequestParam(CommonConstants.PROFILE_DB) String profileDB, + @RequestBody VersaMaterialiRequestDTO versaMaterialiRequestDTO) throws Exception { + return ServiceRestResponse.createPositiveResponse(wmsMaterialiService.versa(versaMaterialiRequestDTO)); + } - return ServiceRestResponse.createPositiveResponse(responseDto); + + @PostMapping(value = "recupera") + public @ResponseBody ServiceRestResponse recupera(@RequestParam(CommonConstants.PROFILE_DB) String profileDB, + @RequestBody RecuperaMaterialiRequestDTO recuperaMaterialiRequestDTO) throws Exception { + + return ServiceRestResponse.createPositiveResponse(wmsMaterialiService.recupera(recuperaMaterialiRequestDTO)); } } diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/dto/RecuperaMaterialiResponseDTO.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/dto/RecuperaMaterialiResponseDTO.java index edbb392e17..133c97cb5a 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/dto/RecuperaMaterialiResponseDTO.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/dto/RecuperaMaterialiResponseDTO.java @@ -4,14 +4,14 @@ import it.integry.ems_model.entity.MtbColt; public class RecuperaMaterialiResponseDTO { - private MtbColt updatedMtbColtScarico; + private final MtbColt updatedMtbColtScarico; + + public RecuperaMaterialiResponseDTO(MtbColt updatedMtbColtScarico) { + this.updatedMtbColtScarico = updatedMtbColtScarico; + } public MtbColt getUpdatedMtbColtScarico() { return updatedMtbColtScarico; } - public RecuperaMaterialiResponseDTO setUpdatedMtbColtScarico(MtbColt updatedMtbColtScarico) { - this.updatedMtbColtScarico = updatedMtbColtScarico; - return this; - } } diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/dto/VersaMaterialiRequestDTO.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/dto/VersaMaterialiRequestDTO.java new file mode 100644 index 0000000000..91d07aecf4 --- /dev/null +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/dto/VersaMaterialiRequestDTO.java @@ -0,0 +1,110 @@ +package it.integry.ems.retail.wms.lavorazione.dto; + +import java.math.BigDecimal; +import java.time.LocalDate; + +public class VersaMaterialiRequestDTO { + + private String codMart; + private String partitaMag; + private BigDecimal numCnf; + private BigDecimal qtaCnf; + private BigDecimal qtaTot; + + private Integer numCollo; + private LocalDate dataCollo; + private String gestione; + private String serCollo; + private String barcodeUl; + + + public String getCodMart() { + return codMart; + } + + public VersaMaterialiRequestDTO setCodMart(String codMart) { + this.codMart = codMart; + return this; + } + + public String getPartitaMag() { + return partitaMag; + } + + public VersaMaterialiRequestDTO setPartitaMag(String partitaMag) { + this.partitaMag = partitaMag; + return this; + } + + public BigDecimal getNumCnf() { + return numCnf; + } + + public VersaMaterialiRequestDTO setNumCnf(BigDecimal numCnf) { + this.numCnf = numCnf; + return this; + } + + public BigDecimal getQtaCnf() { + return qtaCnf; + } + + public VersaMaterialiRequestDTO setQtaCnf(BigDecimal qtaCnf) { + this.qtaCnf = qtaCnf; + return this; + } + + public BigDecimal getQtaTot() { + return qtaTot; + } + + public VersaMaterialiRequestDTO setQtaTot(BigDecimal qtaTot) { + this.qtaTot = qtaTot; + return this; + } + + public Integer getNumCollo() { + return numCollo; + } + + public VersaMaterialiRequestDTO setNumCollo(Integer numCollo) { + this.numCollo = numCollo; + return this; + } + + public LocalDate getDataCollo() { + return dataCollo; + } + + public VersaMaterialiRequestDTO setDataCollo(LocalDate dataCollo) { + this.dataCollo = dataCollo; + return this; + } + + public String getGestione() { + return gestione; + } + + public VersaMaterialiRequestDTO setGestione(String gestione) { + this.gestione = gestione; + return this; + } + + public String getSerCollo() { + return serCollo; + } + + public VersaMaterialiRequestDTO setSerCollo(String serCollo) { + this.serCollo = serCollo; + return this; + } + + public String getBarcodeUl() { + return barcodeUl; + } + + public VersaMaterialiRequestDTO setBarcodeUl(String barcodeUl) { + this.barcodeUl = barcodeUl; + return this; + } +} diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/dto/VersaMaterialiResponseDTO.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/dto/VersaMaterialiResponseDTO.java new file mode 100644 index 0000000000..e17830ba2f --- /dev/null +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/dto/VersaMaterialiResponseDTO.java @@ -0,0 +1,4 @@ +package it.integry.ems.retail.wms.lavorazione.dto; + +public class VersaMaterialiResponseDTO { +} diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/service/WMSMaterialiService.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/service/WMSMaterialiService.java index 395a9a8542..9ebbb67455 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/service/WMSMaterialiService.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/service/WMSMaterialiService.java @@ -3,7 +3,11 @@ package it.integry.ems.retail.wms.lavorazione.service; import it.integry.ems.product.importaz.service.ProductServices; import it.integry.ems.retail.wms.Utility.WMSUtility; import it.integry.ems.retail.wms.exceptions.InvalidArticoloException; +import it.integry.ems.retail.wms.generic.service.WMSGiacenzaULService; import it.integry.ems.retail.wms.lavorazione.dto.RecuperaMaterialiRequestDTO; +import it.integry.ems.retail.wms.lavorazione.dto.RecuperaMaterialiResponseDTO; +import it.integry.ems.retail.wms.lavorazione.dto.VersaMaterialiRequestDTO; +import it.integry.ems.retail.wms.lavorazione.dto.VersaMaterialiResponseDTO; import it.integry.ems.service.EntityProcessor; import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; import it.integry.ems.utility.UtilityEntity; @@ -14,6 +18,7 @@ import it.integry.ems_model.types.OperationType; import it.integry.ems_model.utility.UtilityBigDecimal; import it.integry.ems_model.utility.UtilityLocalDate; import it.integry.ems_model.utility.UtilityString; +import org.apache.commons.lang3.NotImplementedException; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; @@ -41,9 +46,47 @@ public class WMSMaterialiService { @Autowired private EntityProcessor entityProcessor; + @Autowired + private WMSGiacenzaULService wmsGiacenzaULService; + private final Logger logger = LogManager.getLogger(); - public MtbColt recupera(RecuperaMaterialiRequestDTO request) throws Exception { + public VersaMaterialiResponseDTO versa(VersaMaterialiRequestDTO request) throws Exception { + throw new NotImplementedException(); + + /* + final boolean versamentoDirettoEnabled = setupGest.getSetupBoolean(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "PRODUZIONE", "FLAG_VERSAMENTO_DIRETTO"); + final boolean forceAllToColli = setupGest.getSetupBoolean(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "SETUP", "FLAG_FORCE_ALL_TO_COLLI"); + + MtbAart mtbAart = WMSUtility.getArticoloByCodMart(request.getCodMart(),multiDBTransactionManager); + if (mtbAart == null) + throw new InvalidArticoloException(request.getCodMart()); + + if (request.getBarcodeUl() == null ) + throw new Exception("Indicare una UL in cui effettuare il carico del materiale"); + + + List artsInGiacenza = + wmsGiacenzaULService.retrieveArtsInGiacenzaByArticolo(multiDBTransactionManager.getPrimaryConnection(), new RetrieveArtsInGiacenzaByArtRequestDTO() + .setCodMart(request.getCodMart()) + .setPartitaMag(request.getPartitaMag()) + .setBarcodeUl(request.getBarcodeUl())); + + if(artsInGiacenza == null || artsInGiacenza.isEmpty()) + throw new Exception("L'UL non contiene articoli (" + request.getBarcodeUl() + ")"); + + if (!versamentoDirettoEnabled) { +// createColloScarico(mtbDepoPosizione); + } else { + + } + + + return new VersaMaterialiResponseDTO(); + */ + } + + public RecuperaMaterialiResponseDTO recupera(RecuperaMaterialiRequestDTO request) throws Exception { final boolean versamentoDirettoEnabled = setupGest.getSetupBoolean(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "PRODUZIONE", "FLAG_VERSAMENTO_DIRETTO"); final boolean forceAllToColli = setupGest.getSetupBoolean(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "SETUP", "FLAG_FORCE_ALL_TO_COLLI"); @@ -267,7 +310,7 @@ public class WMSMaterialiService { final List savedEntities = entityProcessor.processEntityList(entitiesToSave, true); UtilityEntity.throwEntitiesException(savedEntities); - return mtbColtScarico; + return new RecuperaMaterialiResponseDTO(mtbColtScarico); } From fdcf4a5f408e35a137023d8cd9e5ed1d56be8128 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 9 Apr 2025 11:20:20 +0200 Subject: [PATCH 2/8] Fix fonts in docker --- .../docker_compose_yml__Compose_Deployment.xml | 12 ++++++++++++ Dockerfile | 5 +++++ docker/FontTest.class | Bin 0 -> 938 bytes docker/FontTest.java | 14 ++++++++++++++ 4 files changed, 31 insertions(+) create mode 100644 .idea/runConfigurations/docker_compose_yml__Compose_Deployment.xml create mode 100644 docker/FontTest.class create mode 100644 docker/FontTest.java diff --git a/.idea/runConfigurations/docker_compose_yml__Compose_Deployment.xml b/.idea/runConfigurations/docker_compose_yml__Compose_Deployment.xml new file mode 100644 index 0000000000..31c1e6f24f --- /dev/null +++ b/.idea/runConfigurations/docker_compose_yml__Compose_Deployment.xml @@ -0,0 +1,12 @@ + + + + + + + + + \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 43b6a7f037..20909b7333 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,7 @@ FROM tomcat:9-jre8-alpine +RUN apk add --no-cache fontconfig ttf-dejavu + ENV TZ="Europe/Rome" ENV JAVA_OPTS="-DDISABLE_DROOLS_COMPILE=TRUE -Xms512M -Xmx1G -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005" ENV USERDOMAIN="STUDIO-ML" @@ -9,5 +11,8 @@ COPY docker/tomcat/conf/integry/ems_automated_operations.json /usr/local/tomcat/ COPY docker/tomcat/conf/integry/ems_settings.json /usr/local/tomcat/conf/integry/ COPY ems-engine/target/ems-api.war /usr/local/tomcat/webapps/ +#COPY docker/FontTest.class . +#ENTRYPOINT ["java","FontTest"] + EXPOSE 8080 EXPOSE 5005 \ No newline at end of file diff --git a/docker/FontTest.class b/docker/FontTest.class new file mode 100644 index 0000000000000000000000000000000000000000..1a46b1afa5429f0f685aba9570d25c18912081e8 GIT binary patch literal 938 zcmZ`%-EI;=6#fPl7PgB;C`DST)StQ(3R-JbYMR(av~SV|wchK_kD%plrG=!7y1f9kJ858=||* z8x}GIBNv)Oy>49u?U*utTr z*|zX%Zj)PMPjg0oG?)L>uZ;j64Y+B^fl7W=ZkyJ@4!1>*A!X#pvN}hS{kM{+YvonH1_ zA^{}*0scvd6zWKN7QLO+I6`}vM~q&u`~skthd9}b^fyPIkq<2%f_vF7sqYb_II#5vfgysm&rrT0^x_cVggQi|a5O|Tq0w%Li6QjDcJXLExT>U-xerJe zQ_6BBL?xLJoxM}o$KxNeUBGWQ;{%7GB7y~Is9*vc Date: Wed, 9 Apr 2025 12:05:38 +0200 Subject: [PATCH 3/8] Aggiornato looper in UserCacheService --- .../ems/user/service/UserCacheService.java | 25 +++++++++++-------- .../cache/JwtTokenCacheComponent.java | 2 +- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/ems-core/src/main/java/it/integry/ems/user/service/UserCacheService.java b/ems-core/src/main/java/it/integry/ems/user/service/UserCacheService.java index 64a3f9ee9e..12930bd628 100644 --- a/ems-core/src/main/java/it/integry/ems/user/service/UserCacheService.java +++ b/ems-core/src/main/java/it/integry/ems/user/service/UserCacheService.java @@ -1,7 +1,6 @@ package it.integry.ems.user.service; import it.integry.annotations.PostContextConstruct; -import it.integry.ems.looper.service.LooperService; import it.integry.ems.model.IntegryApplicationEnum; import it.integry.ems.settings.Model.AvailableConnectionsModel; import it.integry.ems.settings.Model.SettingsModel; @@ -18,20 +17,18 @@ import it.integry.ems_model.utility.UtilityHash; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import javax.annotation.Nullable; import java.util.*; import java.util.concurrent.Callable; +import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; -import java.util.stream.Collectors; @Service public class UserCacheService { - @Autowired - private LooperService looperService; - @Autowired private SettingsModel settingsModel; @@ -47,14 +44,22 @@ public class UserCacheService { private final ReentrantLock cacheLock = new ReentrantLock(); + boolean canStart = false; + @PostContextConstruct(priority = 10) private void init() { - if (!UtilityDebug.isDebugExecution()) - looperService.add(this::internalCheck, 5 * 60 * 1000, UserCacheService.class.getName()); //Ogni 5 minuti - else this.internalCheck(); + if(UtilityDebug.isDebugExecution()) internalCacheUpdate(true); + canStart = !UtilityDebug.isDebugExecution(); } - private void internalCheck() { + @Scheduled(fixedDelay = 5, timeUnit = TimeUnit.MINUTES) + private void internalCacheUpdate() { + internalCacheUpdate(false); + } + + private void internalCacheUpdate(boolean forceStart) { + if(!forceStart && !canStart) return; + String historyProfileDb; try { historyProfileDb = settingsController.getHistoryProfileDb(); @@ -226,6 +231,6 @@ public class UserCacheService { this.cachedUsers.clear(); cacheLock.unlock(); - this.internalCheck(); + this.internalCacheUpdate(); } } diff --git a/ems-core/src/main/java/it/integry/security/cache/JwtTokenCacheComponent.java b/ems-core/src/main/java/it/integry/security/cache/JwtTokenCacheComponent.java index 1d676fd2a1..2e905d53d5 100644 --- a/ems-core/src/main/java/it/integry/security/cache/JwtTokenCacheComponent.java +++ b/ems-core/src/main/java/it/integry/security/cache/JwtTokenCacheComponent.java @@ -55,7 +55,7 @@ public class JwtTokenCacheComponent implements ApplicationListener { @Scheduled(fixedDelay = 5, timeUnit = TimeUnit.MINUTES) private void updateCacheScheduled() { - if (!settingsModel.isEnableTokenCaching()) return; + if (!canStart || !settingsModel.isEnableTokenCaching()) return; List availableConnectionsModels = settingsModel.getAvailableConnections(true); From ea208c9534f0ab0b79a120add555cd5f641366b0 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 9 Apr 2025 12:09:25 +0200 Subject: [PATCH 4/8] Aggiornato timing in WMSBarcodeOrdiniAcquistoHandlerService --- ...MSBarcodeOrdiniAcquistoHandlerService.java | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/ordini_acquisto/service/WMSBarcodeOrdiniAcquistoHandlerService.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/ordini_acquisto/service/WMSBarcodeOrdiniAcquistoHandlerService.java index 97302a7990..2b9aa756a1 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/ordini_acquisto/service/WMSBarcodeOrdiniAcquistoHandlerService.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/ordini_acquisto/service/WMSBarcodeOrdiniAcquistoHandlerService.java @@ -10,17 +10,15 @@ import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; import it.integry.ems.utility.UtilityDebug; import it.integry.ems_model.service.SetupGest; import it.integry.ems_model.utility.UtilityDB; +import it.integry.ems_model.utility.UtilityTiming; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.context.ContextLoader; -import java.util.Date; import java.util.HashMap; import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; @Component public class WMSBarcodeOrdiniAcquistoHandlerService { @@ -68,25 +66,21 @@ public class WMSBarcodeOrdiniAcquistoHandlerService { try { String historyProfileDb = settingsController.getHistoryProfileDb(); - Map> databases = settingsModel.getAvailableConnections() - .stream() - .filter(AvailableConnectionsModel::getInternalDb) - .filter(x -> !historyProfileDb.equalsIgnoreCase(x.getProfileName())) - .collect(Collectors.groupingBy(AvailableConnectionsModel::getDbName)); + List availableConnections = settingsModel.getAvailableConnectionsWithoutDuplicatedProfiles(true, historyProfileDb); - for (String dbName : databases.keySet()) { - String profileName = databases.get(dbName).get(0).getProfileName(); + for (AvailableConnectionsModel availableConnection : availableConnections) { + String profileName = availableConnection.getProfileName(); - Date startDate = new Date(); + final int timingId = UtilityTiming.startNewTiming(WMSBarcodeOrdiniAcquistoHandlerService.class.getSimpleName() + " - Barcode (" + profileName + ")"); MultiDBTransactionManager multiDBTransactionManager = new MultiDBTransactionManager(profileName, false); boolean gestioneAbilitata = isGestioneAbilitata(multiDBTransactionManager); if ( gestioneAbilitata ) { List Barcode = getBarcode(multiDBTransactionManager); - barcodeCachedData.put(dbName, Barcode); + barcodeCachedData.put(availableConnection.getDbName(), Barcode); } - logger.trace(WMSBarcodeOrdiniAcquistoHandlerService.class.getSimpleName() + " - Barcode: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs"); + UtilityTiming.endTiming(timingId, true); multiDBTransactionManager.closeAll(); } From 14e9b043a5450abdfed3822154c666583e111d3c Mon Sep 17 00:00:00 2001 From: AnthonyS Date: Wed, 9 Apr 2025 12:21:21 +0200 Subject: [PATCH 5/8] Adattato metodo getAuthorization a modifiche PvmAuthorizationDTO --- .../retail/pvmRetail/service/PvmService.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/ems-engine/src/main/java/it/integry/ems/retail/pvmRetail/service/PvmService.java b/ems-engine/src/main/java/it/integry/ems/retail/pvmRetail/service/PvmService.java index 6ae9cd9023..dc8fb04c6e 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/pvmRetail/service/PvmService.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/pvmRetail/service/PvmService.java @@ -2694,12 +2694,21 @@ public class PvmService { public PvmAuthorizationDTO getAuthorization(String section, String authName) throws Exception { String username = requestDataDTO.getUsername(); - String sql = "SELECT dw_name AS module, dw_colname AS authorization_name, display_only as editable, enabled, visible\n" + + String sql = Query.format( + "SELECT dw_name AS module,\n" + + " dw_colname AS authorization_name,\n" + + " CAST(IIF(enabled IS NULL, 1, IIF(enabled = 'S', 1, 0)) AS BIT) AS enabled,\n" + + " CAST(IIF(visible IS NULL, 1, IIF(visible = 'S', 1, 0)) AS BIT) AS visible,\n" + + " CAST(IIF(required IS NULL, 0, IIF(required = 'S', 1, 0)) AS BIT) AS required\n" + "FROM stb_edit_limit\n" + "WHERE gest_name = 'PVM'\n" + - " AND dw_name = " + UtilityDB.valueToString(section) + "\n" + - " AND dw_colname = " + UtilityDB.valueToString(authName) + "\n" + - " AND user_name = " + UtilityDB.valueToString(username) + " "; + " AND dw_name = %s\n" + + " AND dw_colname = %s\n" + + " AND user_name = %s", + section, + authName, + username + ); return UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, PvmAuthorizationDTO.class); From 2b4e98ca80b25e15080e6a15dc4dc4b0e4f8ed20 Mon Sep 17 00:00:00 2001 From: FabioN Date: Wed, 9 Apr 2025 12:59:45 +0200 Subject: [PATCH 6/8] Funzione relativeWorkDate --- .../model/Migration_20250409125908.java | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250409125908.java diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250409125908.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250409125908.java new file mode 100644 index 0000000000..812a36b0b1 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250409125908.java @@ -0,0 +1,61 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.MigrationModelInterface; + +public class Migration_20250409125908 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + + createOrUpdateFunction("relativeWorkDateConsLav", "CREATE FUNCTION [dbo].[relativeWorkDateConsLav] (@StartDate DATE, @DaysToAdd INT)\n" + + "RETURNS DATETIME\n" + + "AS\n" + + "BEGIN\n" + + " DECLARE @CurrentDate DATE = @StartDate;\n" + + " DECLARE @Counter INT = 0;\n" + + " DECLARE @gg INT = 0;\n" + + "\n" + + " IF @DaysToAdd < 0 \n" + + " BEGIN\n" + + " SELECT @gg = -1 -- Per sottrarre giorni\n" + + " SELECT @DaysToAdd = ABS(@DaysToAdd) -- Rendi il numero di giorni positivo\n" + + " END\n" + + " ELSE\n" + + " SELECT @gg = 1 -- Per aggiungere giorni\n" + + "\n" + + " -- Inizia a contare i giorni lavorativi, considerando weekend e festività\n" + + " WHILE @Counter < @DaysToAdd\n" + + " BEGIN\n" + + " SET @CurrentDate = DATEADD(DAY, @gg, @CurrentDate); -- Aggiungi o sottrai un giorno\n" + + "\n" + + " -- Verifica se la data corrente è un sabato, una domenica o una festività\n" + + " IF (DATEPART(WEEKDAY, @CurrentDate) NOT IN (SELECT dayweek.rowId \n" + + " FROM getTableRowByNumber(1, 7) dayweek \n" + + " LEFT OUTER JOIN (SELECT CONVERT(INTEGER, value_string) AS rowid\n" + + " FROM ParseStringIntoArray((SELECT dbo.getGestSetup('DATI_AZIENDA','DOCU_ORD','GG_CONSEGNA')), '|') \n" + + " WHERE LEN(value_string) <> 0) dayLav \n" + + " ON dayweek.rowid = dayLav.rowid\n" + + " WHERE dayLav.rowid IS NULL) OR (SELECT COUNT(*)\n" + + " FROM ParseStringIntoArray((SELECT dbo.getGestSetup('DATI_AZIENDA','DOCU_ORD','GG_CONSEGNA')), '|') \n" + + " WHERE LEN(value_string) <> 0\n" + + " ) = 0)\n" + + " AND @CurrentDate NOT IN (SELECT data FROM jtb_ricorrenze WHERE DATEPART(YEAR, @CurrentDate) = anno) -- Verifica che non sia una festività\n" + + " BEGIN\n" + + " SET @Counter = @Counter + 1; -- Incrementa il contatore se è un giorno lavorativo\n" + + " END\n" + + " END\n" + + "\n" + + " RETURN @CurrentDate; -- Restituisce la data finale\n" + + "END"); + } + + @Override + public void down() throws Exception { + + } + +} From ab4ef7b20b96360725b1a6caddb15d3a502e06a8 Mon Sep 17 00:00:00 2001 From: MinaR Date: Wed, 9 Apr 2025 14:46:05 +0200 Subject: [PATCH 7/8] sistemata query --- .../java/it/integry/ems/activity/service/ActivityService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ems-engine/src/main/java/it/integry/ems/activity/service/ActivityService.java b/ems-engine/src/main/java/it/integry/ems/activity/service/ActivityService.java index f57aa1c0b4..bce479986e 100644 --- a/ems-engine/src/main/java/it/integry/ems/activity/service/ActivityService.java +++ b/ems-engine/src/main/java/it/integry/ems/activity/service/ActivityService.java @@ -1548,7 +1548,7 @@ public class ActivityService { public List getOldUpdate() throws Exception { String sql = "WITH commesse AS (SELECT cod_jcom,\n" + " jtb_comt.cod_anag,\n" + - " ROW_NUMBER() OVER (PARTITION BY jtb_comt.cod_anag ORDER BY cod_jcom DESC, servers.updated_at DESC, , vtb_clie.flag_stato) AS conta,\n" + + " ROW_NUMBER() OVER (PARTITION BY jtb_comt.cod_anag ORDER BY cod_jcom DESC, servers.updated_at DESC, vtb_clie.flag_stato) AS conta,\n" + " servers.last_update,\n" + " gtb_anag.rag_soc\n" + " FROM jtb_comt\n" + From 0a6c30218cd669084f18dc551d3183422cd0e787 Mon Sep 17 00:00:00 2001 From: MinaR Date: Wed, 9 Apr 2025 15:33:05 +0200 Subject: [PATCH 8/8] sistemata regola --- ems-core/src/main/resources/rules/vendite.drl | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/ems-core/src/main/resources/rules/vendite.drl b/ems-core/src/main/resources/rules/vendite.drl index 0d104816b3..d63b8f40c2 100644 --- a/ems-core/src/main/resources/rules/vendite.drl +++ b/ems-core/src/main/resources/rules/vendite.drl @@ -16,6 +16,28 @@ global Boolean postRulesEnabled global Boolean checkRulesEnabled global Boolean completeRulesEnabled +rule "completeIdRilPrz" +when + eval(completeRulesEnabled) + $entity : VtbRilPrzt(idRil == null || idRil == 0) +then + Integer idRil = CommonRules.completeIdRilPrz(conn, $entity.getDataRil()); + modify ( $entity ) { setIdRil(idRil) } +end + +rule "completeDataInsRilPrz" +when + eval(completeRulesEnabled) + $entity : VtbRilPrzt(dataIns == null) +then + modify ( $entity ) { + setDataIns(new Date()), + setCompilatoDa(username), + setDataUltMod(new Date()), + setModificatoDa(username) + } +end + rule "completeDataUltModRilPrz" no-loop when