Fix importazione colli Eviosys e Vebad
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
2025-02-07 15:29:00 +01:00
parent 7bd7ef9175
commit 103f6f23da
2 changed files with 61 additions and 13 deletions

View File

@@ -83,9 +83,8 @@ public class ColliEviosysImportService {
.collect(Collectors.toList());
if (rowData.size() >= 7) {
Integer numOrd = Integer.parseInt((String) rowData.get(0));
String barcodeUl = (String) rowData.get(2);
int annoDataOrd = UtilityLocalDate.localDateFromDate((Date) rowData.get(5)).getYear();
String lotto = (String) rowData.get(3);
String qta = (String) rowData.get(6);
if (barcodeUl.length() > 18) {
@@ -93,23 +92,31 @@ public class ColliEviosysImportService {
}
String sql = Query.format(
"SELECT data_ord\n" +
"SELECT TOP 1 dtb_ordt.num_ord,\n" +
" dtb_ordt.data_ord\n" +
"FROM dtb_ordt\n" +
"WHERE num_ord = %s\n" +
" AND gestione = 'A'\n" +
" AND YEAR(data_ord) = %s",
numOrd, annoDataOrd
" INNER JOIN dbo.dtb_ordr ON dtb_ordt.num_ord = dtb_ordr.num_ord AND dtb_ordr.data_ord = dtb_ordt.data_ord AND\n" +
" dtb_ordt.gestione = dtb_ordr.gestione\n" +
"WHERE cod_anag = %s\n" +
" AND dtb_ordt.gestione = 'A'\n" +
" AND flag_annulla = 'N'\n" +
" AND flag_evaso = 'I'\n" +
" AND cod_mart = %s\n" +
"GROUP BY dtb_ordt.num_ord, dtb_ordt.data_ord, data_cons\n" +
"HAVING MAX(data_cons) <= %s\n" +
"ORDER BY data_cons DESC",
codAnag, codMart, new Date()
);
Date dataOrd = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
HashMap<String, Object> returnQuery = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
DtbOrdr ordr = new DtbOrdr();
ordr.setDataOrd(dataOrd).setGestione("A").setNumOrd(numOrd);
ordr.setDataOrd((Date) returnQuery.get("data_ord")).setGestione("A").setNumOrd((Integer) returnQuery.get("num_ord"));
List<DtbOrdr> dtbOrdrs = new ArrayList<>();
dtbOrdrs.add(ordr);
MtbColr mtbColr = new MtbColr()
.setCodMart(codMart)
.setPartitaMag(lotto)
.setQtaCol(UtilityString.stringToBigDecimal(qta));
MtbColt mtbColt = new MtbColt()
@@ -141,7 +148,7 @@ public class ColliEviosysImportService {
.setNumCollo(mtbColt.getNumCollo())
.setCriterioDistribuzione("U"), true);
entityBases = entityProcessor.processEntityList(colDistributed, multiDBTransactionManager, true);
entityBases.addAll(entityProcessor.processEntityList(colDistributed, multiDBTransactionManager, true));
}
return entityBases;

View File

@@ -11,6 +11,7 @@ import it.integry.ems.logistic.dto.piegarese.VebadDesadvCorpoDTO;
import it.integry.ems.logistic.dto.piegarese.VebadDesadvDettagliLottiDTO;
import it.integry.ems.logistic.dto.piegarese.VebadDesadvEstremiDTO;
import it.integry.ems.logistic.dto.piegarese.VebadDesadvTestataDTO;
import it.integry.ems.logistic.dto.sm2.FiltroDistribuzioneColloDTO;
import it.integry.ems.rules.businessLogic.LoadColliService;
import it.integry.ems.rules.businessLogic.dto.LoadColliDTO;
import it.integry.ems.service.EntityProcessor;
@@ -20,6 +21,7 @@ import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.db.ResultSetMapper;
import it.integry.ems_model.entity.DtbDoct;
import it.integry.ems_model.entity.DtbOrdr;
import it.integry.ems_model.entity.MtbColr;
import it.integry.ems_model.entity.MtbColt;
import it.integry.ems_model.service.SetupGest;
@@ -50,7 +52,7 @@ public class ColliImportService {
private MultiDBTransactionManager multiDBTransactionManager;
@Autowired
private RequestDataDTO requestDataDTO;
private DistribuzioneColliService distribuzioneColliService;
@Autowired
private SetupGest setupGest;
@@ -378,6 +380,7 @@ public class ColliImportService {
}
public List<EntityBase> importColliVebad(String format, String type, ImportRequestDTO requestDTO, List<AnomalieDTO> anomalie) throws Exception {
List<EntityBase> entityBases = new ArrayList<>();
Connection conn = multiDBTransactionManager.getPrimaryConnection();
VebadDTO vebadDesadv = new VebadDTO().setDettagliLotti(new ArrayList<>());
@@ -500,6 +503,31 @@ public class ColliImportService {
sql = Query.format("SELECT cod_mart from mtb_lisa WHERE cod_barre_imb = %s", dettagliLotti.getGtin());
String codMart = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
sql = Query.format(
"SELECT TOP 1 dtb_ordt.num_ord,\n" +
" dtb_ordt.data_ord\n" +
"FROM dtb_ordt\n" +
" INNER JOIN dbo.dtb_ordr ON dtb_ordt.num_ord = dtb_ordr.num_ord AND dtb_ordr.data_ord = dtb_ordt.data_ord AND\n" +
" dtb_ordt.gestione = dtb_ordr.gestione\n" +
"WHERE cod_anag = %s\n" +
" AND dtb_ordt.gestione = 'A'\n" +
" AND flag_annulla = 'N'\n" +
" AND flag_evaso = 'I'\n" +
" AND cod_mart = %s\n" +
"GROUP BY dtb_ordt.num_ord, dtb_ordt.data_ord, data_cons\n" +
"HAVING MAX(data_cons) <= %s\n" +
"ORDER BY data_cons DESC",
codAnag, codMart, vebadDesadv.getTestataDoc().getDataDDT()
);
HashMap<String, Object> returnQuery = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
DtbOrdr ordr = new DtbOrdr();
ordr.setDataOrd((Date) returnQuery.get("data_ord")).setGestione("A").setNumOrd((Integer) returnQuery.get("num_ord"));
List<DtbOrdr> dtbOrdrs = new ArrayList<>();
dtbOrdrs.add(ordr);
mtbColt.setFiltroOrdini(MtbColtUtils.generaFiltroOrdini(null, dtbOrdrs));
MtbColr mtbColr = new MtbColr()
.setDataScadPartita(dettagliLotti.getDataScad())
.setPartitaMag(dettagliLotti.getLotto())
@@ -514,6 +542,19 @@ public class ColliImportService {
mtbColts.add(mtbColt);
}
return entityProcessor.processEntityList(mtbColts, true);
for (MtbColt mtbColt : mtbColts) {
entityProcessor.processEntity(mtbColt, multiDBTransactionManager);
List<MtbColt> colDistributed = distribuzioneColliService.distribuzioneRigheColloNew(new FiltroDistribuzioneColloDTO()
.setDataCollo(mtbColt.getDataCollo())
.setSerCollo(mtbColt.getSerCollo())
.setGestione(mtbColt.getGestione())
.setNumCollo(mtbColt.getNumCollo())
.setCriterioDistribuzione("U"), true);
entityBases.addAll(entityProcessor.processEntityList(colDistributed, multiDBTransactionManager, true));
}
return entityBases;
}
}