Registrazione imballi WMS

This commit is contained in:
2024-04-19 17:30:48 +02:00
parent 7048d0a4d9
commit 1d0234f9ed
7 changed files with 180 additions and 48 deletions

6
.idea/jenkinsSettings.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Jenkins.Application.Settings">
<option name="serverUrl" value="https://ci.studioml.it" />
</component>
</project>

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

View File

@@ -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<MtbTcol> retrieveAvailableTipiCollo() throws Exception {
String query = "SELECT * FROM " + MtbTcol.ENTITY + " WHERE flag_UI_UL = 'UL'";
return UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), query, MtbTcol.class);
}
public List<MtbTcol> retrieveAvailableTipiImballi() throws Exception {
String query = "SELECT * FROM " + MtbTcol.ENTITY + " WHERE flag_UI_UL = 'UI'";
return UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), query, MtbTcol.class);
}
}

View File

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

View File

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

View File

@@ -0,0 +1,17 @@
package it.integry.ems.retail.wms.imballi.dto;
import java.util.List;
public class RegistraCaricoImballiRequestDTO {
private List<ImballoQuantityDTO> usedImballi;
public List<ImballoQuantityDTO> getUsedImballi() {
return usedImballi;
}
public RegistraCaricoImballiRequestDTO setUsedImballi(List<ImballoQuantityDTO> usedImballi) {
this.usedImballi = usedImballi;
return this;
}
}

View File

@@ -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<MtbTcol> retrieveAvailableTipiCollo() throws Exception {
String query = "SELECT * FROM " + MtbTcol.ENTITY + " WHERE flag_UI_UL = 'UL'";
return UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), query, MtbTcol.class);
}
public List<MtbTcol> 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<ImballoQuantityDTO> 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);
}
}