[ROSSOGARGANO]
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

- servizio inserimento articolo in listino di acquisto
- corretta gestione barcode_ul in colli
This commit is contained in:
2024-12-06 12:53:55 +01:00
parent 2e2f6c20d9
commit 567bc2289f
7 changed files with 291 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Tomcat (FAST)" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local" APPLICATION_SERVER_NAME="Tomcat" ALTERNATIVE_JRE_ENABLED="false">
<option name="COMMON_VM_ARGUMENTS" value="-DDISABLE_DROOLS_COMPILE=TRUE -Xms1G -Xmx6G" />
<option name="UPDATING_POLICY" value="restart-server" />
<deployment>
<artifact name="ems-engine:war exploded">
<settings>

View File

@@ -0,0 +1,113 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.IntegryCustomerDB;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20241202164441 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
if (!isCustomerDb(IntegryCustomerDB.RossoGargano_RossoGargano))
return;
createOrUpdateProcedure("NextIdBarcodeUl","CREATE PROCEDURE [dbo].[NextIdBarcodeUl](\n" +
" @gestione VARCHAR(1), @dataCollo DATETIME, @serCollo VARCHAR(2), @numCollo INT, @codJfas VARCHAR(5),\n" +
" @numBarcode INTEGER OUTPUT) AS\n" +
"BEGIN\n" +
" DECLARE @dbError INTEGER;\n" +
"\n" +
" IF @codJfas IS NULL\n" +
" BEGIN\n" +
"\n" +
" UPDATE azienda\n" +
" SET progressivo_sscc = progressivo_sscc + 1\n" +
" SELECT @dbError = @@ERROR\n" +
" IF @dbError <> 0 RETURN\n" +
"\n" +
" SELECT @numBarcode = progressivo_sscc\n" +
" FROM azienda;\n" +
"\n" +
" RETURN;\n" +
" END\n" +
" ELSE\n" +
" BEGIN\n" +
" UPDATE jtb_fasi\n" +
" SET progressivo_sscc = progressivo_sscc + 1\n" +
" WHERE cod_jfas = @codJfas\n" +
" SELECT @dbError = @@ERROR\n" +
" IF @dbError <> 0 RETURN\n" +
"\n" +
" SELECT @numBarcode = progressivo_sscc\n" +
" FROM jtb_fasi\n" +
" WHERE cod_jfas = @codJfas\n" +
" END\n" +
"END\n" +
"\n");
createOrUpdateFunction("f_suggestBarcodeUl","CREATE FUNCTION [dbo].[f_suggestBarcodeUl](@gestione VARCHAR,\n" +
" @dataCollo DATE,\n" +
" @serCollo VARCHAR(2),\n" +
" @codJfas VARCHAR(5),\n" +
" @numCollo INT,\n" +
" @customPrefissoEan VARCHAR(9),\n" +
" @idCollo BIGINT\n" +
")\n" +
" RETURNS VARCHAR(20)\n" +
"AS\n" +
"BEGIN\n" +
"\n" +
" DECLARE @barcode VARCHAR(20);\n" +
"\n" +
" IF @codJfas IS NULL\n" +
" BEGIN\n" +
" SELECT @barcode = CONCAT(prefisso_ean,\n" +
" RIGHT(FORMAT(@idCollo, REPLICATE('0', 17)), (17 - LEN(prefisso_ean))))\n" +
" FROM azienda\n" +
"\n" +
" SELECT @barcode = CONCAT(@barcode, dbo.getCheckDigitSSCC(@barcode))\n" +
"\n" +
" RETURN @barcode;\n" +
"\n" +
" END;\n" +
" ELSE\n" +
" BEGIN\n" +
" WITH dati AS (SELECT ISNULL(@customPrefissoEan, azienda.prefisso_ean) AS prefisso_ean,\n" +
" jtb_fasi.id_jfas AS id_variabile,\n" +
" ISNULL(@idCollo, @numCollo) AS idCollo\n" +
"\n" +
" FROM jtb_fasi\n" +
" , azienda\n" +
" WHERE jtb_fasi.cod_jfas = @codJfas)\n" +
"\n" +
" SELECT @barcode =\n" +
" CASE\n" +
" WHEN @codJfas = 'RACC' THEN CONCAT(FORMAT(@dataCollo, 'yy'),\n" +
" RIGHT(FORMAT(@idCollo, REPLICATE('0', 6)), 6))\n" +
" ELSE\n" +
" CONCAT(prefisso_ean,\n" +
" id_variabile,\n" +
" RIGHT(FORMAT(idCollo, REPLICATE('0', 17)),\n" +
" (17 - LEN(prefisso_ean) - LEN(id_variabile)))) END\n" +
" FROM dati\n" +
"\n" +
" IF @codJFas <> 'RACC'\n" +
" SELECT @barcode = CONCAT(@barcode, dbo.getCheckDigitSSCC(@barcode))\n" +
"\n" +
"\n" +
" RETURN @barcode;\n" +
" END\n" +
" RETURN @barcode\n" +
"END\n" +
"\n");
}
@Override
public void down() throws Exception {
}
}

View File

@@ -81,6 +81,11 @@ public class AtbList extends EntityBase {
super(logger);
}
public AtbList(String codAlis) {
super(logger);
this.codAlis = codAlis;
}
public String getCodAlis() {
return codAlis;
}

View File

@@ -22,7 +22,7 @@ public class CreateUDSRequestDTO {
private Integer idLotto;
private String rifOrd;
private String barcodeUl;
private boolean orderRequired;
private List<CreateUDSRequestOrderDTO> orders;
@@ -163,6 +163,15 @@ public class CreateUDSRequestDTO {
return this;
}
public String getBarcodeUl() {
return barcodeUl;
}
public CreateUDSRequestDTO setBarcodeUl(String barcodeUl) {
this.barcodeUl = barcodeUl;
return this;
}
public enum Causale implements IBaseEnum<Causale> {
SCARICO(0),
POSIZIONAMENTO(1);

View File

@@ -0,0 +1,27 @@
package it.integry.ems.system.controller;
import it.integry.common.var.CommonConstants;
import it.integry.ems.response.ServiceRestResponse;
import it.integry.ems.system.dto.AddArtToLisaRequestDTO;
import it.integry.ems.system.service.ListiniAcquistoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@Scope("request")
@RequestMapping("listini/acquisto")
public class ListiniAcquistoController {
@Autowired
private ListiniAcquistoService listiniAcquistoService;
@RequestMapping(value = "/addArts", method = RequestMethod.POST)
public @ResponseBody ServiceRestResponse addArtToLisa(@RequestParam(CommonConstants.PROFILE_DB) String profileDb,
@RequestBody() List<AddArtToLisaRequestDTO> artLisaDto) throws Exception {
return ServiceRestResponse.createEntityPositiveResponse(listiniAcquistoService.addArtsToLisa(artLisaDto));
}
}

View File

@@ -0,0 +1,77 @@
package it.integry.ems.system.dto;
import java.math.BigDecimal;
public class AddArtToLisaRequestDTO {
private String codAlis;
private String codMart;
private String codArtFor;
private String untMisAcq;
private BigDecimal przAcq;
private BigDecimal ggApprovig;
private BigDecimal qtaMinOrd;
public String getCodAlis() {
return codAlis;
}
public AddArtToLisaRequestDTO setCodAlis(String codAlis) {
this.codAlis = codAlis;
return this;
}
public String getCodMart() {
return codMart;
}
public AddArtToLisaRequestDTO setCodMart(String codMart) {
this.codMart = codMart;
return this;
}
public String getCodArtFor() {
return codArtFor;
}
public AddArtToLisaRequestDTO setCodArtFor(String codArtFor) {
this.codArtFor = codArtFor;
return this;
}
public String getUntMisAcq() {
return untMisAcq;
}
public AddArtToLisaRequestDTO setUntMisAcq(String untMisAcq) {
this.untMisAcq = untMisAcq;
return this;
}
public BigDecimal getPrzAcq() {
return przAcq;
}
public AddArtToLisaRequestDTO setPrzAcq(BigDecimal przAcq) {
this.przAcq = przAcq;
return this;
}
public BigDecimal getGgApprovig() {
return ggApprovig;
}
public AddArtToLisaRequestDTO setGgApprovig(BigDecimal ggApprovig) {
this.ggApprovig = ggApprovig;
return this;
}
public BigDecimal getQtaMinOrd() {
return qtaMinOrd;
}
public AddArtToLisaRequestDTO setQtaMinOrd(BigDecimal qtaMinOrd) {
this.qtaMinOrd = qtaMinOrd;
return this;
}
}

View File

@@ -0,0 +1,58 @@
package it.integry.ems.system.service;
import it.integry.ems.service.EntityProcessor;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.system.dto.AddArtToLisaRequestDTO;
import it.integry.ems_model.entity.AtbList;
import it.integry.ems_model.entity.MtbLisa;
import it.integry.ems_model.types.OperationType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
@Service
@Scope("request")
public class ListiniAcquistoService {
@Autowired
private MultiDBTransactionManager multiDBTransactionManager;
@Autowired
private EntityProcessor entityProcessor;
public List<AtbList> addArtsToLisa(List<AddArtToLisaRequestDTO> artLisaDtoList) throws Exception {
try {
List<MtbLisa> articoliListino = artLisaDtoList.stream().map(dto -> {
MtbLisa lisa = new MtbLisa();
lisa
.setCodAlis(dto.getCodAlis())
.setCodMart(dto.getCodMart())
.setCodArtFor(dto.getCodArtFor())
.setUntMisAcq(dto.getUntMisAcq())
.setPrzAcq(dto.getPrzAcq())
.setGgApprovig(dto.getGgApprovig())
.setQtaMinOrd(dto.getQtaMinOrd())
.setOperation(OperationType.INSERT_OR_UPDATE);
return lisa;
}).collect(Collectors.toList());
List<AtbList> listini = artLisaDtoList.stream().map(AddArtToLisaRequestDTO::getCodAlis).distinct().map(codAlis->{
AtbList atbList = new AtbList(codAlis);
atbList.setMtbLisa(articoliListino.stream().filter(x->x.getCodAlis().equalsIgnoreCase(codAlis)).collect(Collectors.toList()));
atbList.setOperation(OperationType.NO_OP);
return atbList;
}).collect(Collectors.toList());
entityProcessor.processEntityList(listini,true);
return listini;
} catch (Exception e) {
multiDBTransactionManager.rollbackAll();
throw e;
}
}
}