From 1d0234f9edc6eb29ce2fb223e4dbedbf85d03776 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Fri, 19 Apr 2024 17:30:48 +0200 Subject: [PATCH] Registrazione imballi WMS --- .idea/jenkinsSettings.xml | 6 ++ .../model/Migration_20240419120149.java | 25 ++++++ .../generic/service/WMSImballiService.java | 39 -------- .../controller/WMSImballiController.java | 27 ++++-- .../wms/imballi/dto/ImballoQuantityDTO.java | 25 ++++++ .../dto/RegistraCaricoImballiRequestDTO.java | 17 ++++ .../imballi/service/WMSImballiService.java | 89 +++++++++++++++++++ 7 files changed, 180 insertions(+), 48 deletions(-) create mode 100644 .idea/jenkinsSettings.xml create mode 100644 ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240419120149.java delete mode 100644 ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSImballiService.java rename ems-engine/src/main/java/it/integry/ems/retail/wms/{generic => imballi}/controller/WMSImballiController.java (56%) create mode 100644 ems-engine/src/main/java/it/integry/ems/retail/wms/imballi/dto/ImballoQuantityDTO.java create mode 100644 ems-engine/src/main/java/it/integry/ems/retail/wms/imballi/dto/RegistraCaricoImballiRequestDTO.java create mode 100644 ems-engine/src/main/java/it/integry/ems/retail/wms/imballi/service/WMSImballiService.java diff --git a/.idea/jenkinsSettings.xml b/.idea/jenkinsSettings.xml new file mode 100644 index 0000000000..53b279ca7d --- /dev/null +++ b/.idea/jenkinsSettings.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240419120149.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240419120149.java new file mode 100644 index 0000000000..5e1fc00751 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240419120149.java @@ -0,0 +1,25 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.MigrationModelInterface; + +public class Migration_20240419120149 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + + createSetupQuery("COD_DTIP", "COD_DTIP", "SELECT COD_DTIP FROM DTB_TIPI ORDER BY 1", false); + createSetup("PICKING", "IMBALLI", "COD_DTIP_CARICO", null, "Codice documento che identifica il carico degli imballi", false, "COD_DTIP", false, false, false, false, false, null, false, "SELECT COD_DTIP FROM DTB_TIPI ORDER BY 1"); + createSetupQuery("COD_DTIP", "COD_DTIP", "SELECT COD_DTIP FROM DTB_TIPI ORDER BY 1", false); + createSetup("PICKING", "IMBALLI", "COD_DTIP_SCARICO", null, "Codice documento che identifica lo scarico degli imballi", false, "COD_DTIP", false, false, false, false, false, null, false, "SELECT COD_DTIP FROM DTB_TIPI ORDER BY 1"); + } + + @Override + public void down() throws Exception { + + } + +} diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSImballiService.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSImballiService.java deleted file mode 100644 index 12434d78ed..0000000000 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSImballiService.java +++ /dev/null @@ -1,39 +0,0 @@ -package it.integry.ems.retail.wms.generic.service; - - -import it.integry.ems.retail.wms.generic.dto.AvailableCodMdepDTO; -import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; -import it.integry.ems_model.entity.MtbTcol; -import it.integry.ems_model.utility.UtilityDB; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Scope; -import org.springframework.security.core.userdetails.UsernameNotFoundException; -import org.springframework.stereotype.Service; - -import java.util.List; - -@Service -@Scope("request") -public class WMSImballiService { - - - private final Logger logger = LogManager.getLogger(); - - @Autowired - private MultiDBTransactionManager multiDBTransactionManager; - - public List retrieveAvailableTipiCollo() throws Exception { - String query = "SELECT * FROM " + MtbTcol.ENTITY + " WHERE flag_UI_UL = 'UL'"; - - return UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), query, MtbTcol.class); - } - - public List retrieveAvailableTipiImballi() throws Exception { - String query = "SELECT * FROM " + MtbTcol.ENTITY + " WHERE flag_UI_UL = 'UI'"; - - return UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), query, MtbTcol.class); - } - -} diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/controller/WMSImballiController.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/imballi/controller/WMSImballiController.java similarity index 56% rename from ems-engine/src/main/java/it/integry/ems/retail/wms/generic/controller/WMSImballiController.java rename to ems-engine/src/main/java/it/integry/ems/retail/wms/imballi/controller/WMSImballiController.java index 1879a1bdb9..9dc3e3f2f2 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/controller/WMSImballiController.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/imballi/controller/WMSImballiController.java @@ -1,9 +1,10 @@ -package it.integry.ems.retail.wms.generic.controller; +package it.integry.ems.retail.wms.imballi.controller; import it.integry.common.var.CommonConstants; import it.integry.ems.response.ServiceRestResponse; -import it.integry.ems.retail.wms.generic.service.WMSImballiService; +import it.integry.ems.retail.wms.imballi.dto.RegistraCaricoImballiRequestDTO; +import it.integry.ems.retail.wms.imballi.service.WMSImballiService; import it.integry.ems_model.utility.UtilityString; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; @@ -11,31 +12,39 @@ import org.springframework.web.bind.annotation.*; @RestController @Scope("request") -@RequestMapping("wms/tipo-collo") +@RequestMapping("wms/imballi") public class WMSImballiController { - @Autowired private WMSImballiService wmsImballiService; - - @RequestMapping(value = "retrieve/{tipo}", method = RequestMethod.GET) public @ResponseBody ServiceRestResponse retrieve(@RequestParam(CommonConstants.PROFILE_DB) String profileDB, @PathVariable String tipo) throws Exception { - if(UtilityString.isNullOrEmpty(tipo)) + if (UtilityString.isNullOrEmpty(tipo)) throw new Exception("Tipo non riconosciuto"); - if(tipo.equalsIgnoreCase("UI")) + if (tipo.equalsIgnoreCase("UI")) return ServiceRestResponse.createPositiveResponse(wmsImballiService.retrieveAvailableTipiImballi()); - else if(tipo.equalsIgnoreCase("UL")) + else if (tipo.equalsIgnoreCase("UL")) return ServiceRestResponse.createPositiveResponse(wmsImballiService.retrieveAvailableTipiCollo()); return ServiceRestResponse.createPositiveResponse(); } + + @RequestMapping(value = "registraCarico", method = RequestMethod.POST) + public @ResponseBody + ServiceRestResponse registraCarico(@RequestParam(CommonConstants.PROFILE_DB) String profileDB, + @RequestBody RegistraCaricoImballiRequestDTO registraUsageImballiRequest) throws Exception { + + wmsImballiService.registraCarico(registraUsageImballiRequest.getUsedImballi()); + return ServiceRestResponse.createPositiveResponse(); + } + + } diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/imballi/dto/ImballoQuantityDTO.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/imballi/dto/ImballoQuantityDTO.java new file mode 100644 index 0000000000..13ae5fbcdf --- /dev/null +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/imballi/dto/ImballoQuantityDTO.java @@ -0,0 +1,25 @@ +package it.integry.ems.retail.wms.imballi.dto; + +public class ImballoQuantityDTO { + + private String codMart; + private Integer qta; + + public String getCodMart() { + return codMart; + } + + public ImballoQuantityDTO setCodMart(String codMart) { + this.codMart = codMart; + return this; + } + + public Integer getQta() { + return qta; + } + + public ImballoQuantityDTO setQta(Integer qta) { + this.qta = qta; + return this; + } +} diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/imballi/dto/RegistraCaricoImballiRequestDTO.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/imballi/dto/RegistraCaricoImballiRequestDTO.java new file mode 100644 index 0000000000..9a6ad60511 --- /dev/null +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/imballi/dto/RegistraCaricoImballiRequestDTO.java @@ -0,0 +1,17 @@ +package it.integry.ems.retail.wms.imballi.dto; + +import java.util.List; + +public class RegistraCaricoImballiRequestDTO { + + private List usedImballi; + + public List getUsedImballi() { + return usedImballi; + } + + public RegistraCaricoImballiRequestDTO setUsedImballi(List usedImballi) { + this.usedImballi = usedImballi; + return this; + } +} diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/imballi/service/WMSImballiService.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/imballi/service/WMSImballiService.java new file mode 100644 index 0000000000..cd7821f037 --- /dev/null +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/imballi/service/WMSImballiService.java @@ -0,0 +1,89 @@ +package it.integry.ems.retail.wms.imballi.service; + + +import it.integry.ems.retail.wms.imballi.dto.ImballoQuantityDTO; +import it.integry.ems.service.EntityProcessor; +import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; +import it.integry.ems.user.UserSession; +import it.integry.ems_model.entity.DtbDocr; +import it.integry.ems_model.entity.DtbDoct; +import it.integry.ems_model.entity.MtbDepo; +import it.integry.ems_model.entity.MtbTcol; +import it.integry.ems_model.service.SetupGest; +import it.integry.ems_model.types.OperationType; +import it.integry.ems_model.utility.UtilityDB; +import it.integry.ems_model.utility.UtilityString; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +@Service +@Scope("request") +public class WMSImballiService { + + + private final Logger logger = LogManager.getLogger(); + + @Autowired + private SetupGest setupGest; + + @Autowired + private EntityProcessor entityProcessor; + + @Autowired + private MultiDBTransactionManager multiDBTransactionManager; + + @Autowired + private UserSession userSession; + + public List retrieveAvailableTipiCollo() throws Exception { + String query = "SELECT * FROM " + MtbTcol.ENTITY + " WHERE flag_UI_UL = 'UL'"; + + return UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), query, MtbTcol.class); + } + + public List retrieveAvailableTipiImballi() throws Exception { + String query = "SELECT * FROM " + MtbTcol.ENTITY + " WHERE flag_UI_UL = 'UI'"; + + return UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), query, MtbTcol.class); + } + + + public void registraCarico(List imballiToRegister) throws Exception { + + final String codDtip = setupGest.getSetup("PICKING", "IMBALLI", "COD_DTIP_CARICO"); + + if(UtilityString.isNullOrEmpty(codDtip)) + throw new Exception("E' necessario specificare un codice documento nelle configurazioni per poter procedere"); + + MtbDepo userDepo = userSession.getDefaultDepo(); + + DtbDoct documentoCarico = new DtbDoct() + .setCodAnag(userDepo.getCodAnag()) + .setCodDtip(codDtip) + .setCodMdep(userDepo.getCodMdep()) + .setDataDoc(new Date()); + + documentoCarico.setOperation(OperationType.INSERT); + + for (ImballoQuantityDTO imballoQuantity : imballiToRegister) { + DtbDocr documentRow = new DtbDocr() + .setCodMart(imballoQuantity.getCodMart()) + .setQtaDoc(BigDecimal.valueOf(imballoQuantity.getQta())); + + documentRow.setOperation(OperationType.INSERT); + + documentoCarico.getDtbDocr().add(documentRow); + } + + entityProcessor.processEntity(documentoCarico, multiDBTransactionManager); + } + + +}