Gestito controllo data scadenza multipla in openStep MES
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
(cherry picked from commit 4656fbb61b)
This commit is contained in:
@@ -377,6 +377,45 @@ public class MesProductionServiceV2 {
|
||||
order.setDtbOrdSteps(new ArrayList<>());
|
||||
order.getDtbOrdSteps().add(lastStep);
|
||||
|
||||
// Se l'ordine è di una linea con controllo scadenza multipla, crea una nuova partita se la partita non è quella odierna
|
||||
StbGestSetupDet configControlloScadenzaMultipla = productionService.getConfigControlloScadenzaMultipla(codJfas);
|
||||
|
||||
if (configControlloScadenzaMultipla != null && configControlloScadenzaMultipla.getValue().equalsIgnoreCase("S")) {
|
||||
sql = Query.format(
|
||||
"SELECT data_ins\n" +
|
||||
"FROM dtb_ordt\n" +
|
||||
" INNER JOIN mtb_partita_mag mpm ON dtb_ordt.cod_prod = mpm.cod_mart AND dtb_ordt.partita_mag = mpm.partita_mag\n" +
|
||||
"WHERE gestione = %s\n" +
|
||||
" AND data_ord = %s\n" +
|
||||
" and num_ord = %s",
|
||||
gestioneOrd,
|
||||
dataOrd,
|
||||
numOrd
|
||||
);
|
||||
|
||||
Date dataIns = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
|
||||
if (dataIns != null && !UtilityDate.isSameDay(dataIns, new Date())) {
|
||||
// La partita dell'ordine è stata inserita in un giorno diverso da oggi, genera quella nuova
|
||||
|
||||
sql = Query.format(
|
||||
"SELECT gestione, data_ord, num_ord, cod_prod, data_scad, note_lav\n" +
|
||||
"FROM MES_GetWorkOrders(%s, DATEADD(DAY, -30, GETDATE()), NULL, NULL, NULL) ordini\n" +
|
||||
"WHERE gestione = %s\n" +
|
||||
" AND data_ord = %s\n" +
|
||||
" AND num_ord = %s",
|
||||
codJfas,
|
||||
gestioneOrd,
|
||||
dataOrd,
|
||||
numOrd
|
||||
);
|
||||
|
||||
OrdineLavorazioneDTO ordine = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, OrdineLavorazioneDTO.class);
|
||||
|
||||
this.generaNuovoLottoPerOrdine(ordine, !skipCommit);
|
||||
}
|
||||
}
|
||||
|
||||
entityProcessor.processEntity(order, skipCommit, multiDBTransactionManager);
|
||||
|
||||
//Incremento pos_riga per spostare l'ordine in coda
|
||||
@@ -2180,37 +2219,37 @@ public class MesProductionServiceV2 {
|
||||
);
|
||||
|
||||
List<OrdineLavorazioneDTO> ordini = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, OrdineLavorazioneDTO.class);
|
||||
|
||||
if (ordini == null || ordini.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
for (OrdineLavorazioneDTO dto : ordini) {
|
||||
Date dataOrd = UtilityDate.getTodayWithoutTime();
|
||||
|
||||
String partitaMag = PartitaMagRules.suggestCodePartitaMag(multiDBTransactionManager.getPrimaryConnection(),
|
||||
new DatiPartitaMagDTO()
|
||||
.setCodMart(dto.getCodProd())
|
||||
.setDataOrd(dataOrd)
|
||||
.setGestione("L")
|
||||
.setCodJfas(dto.getCodJfas()));
|
||||
|
||||
List<EntityBase> listPartitaMag = productionService.insertPartitaMag(new InsertPartitaMagRequestDTO()
|
||||
.setCodMart(dto.getCodProd())
|
||||
.setPartitaMag(partitaMag)
|
||||
.setDataScad(dto.getDataScad())
|
||||
.setDataOrd(dto.getDataOrd())
|
||||
.setNumOrd(dto.getNumOrd())
|
||||
.setGestione(dto.getGestione())
|
||||
.setCodJfas(dto.getCodJfas())
|
||||
.setNote(dto.getNoteLav()), true);
|
||||
|
||||
this.generaNuovoLottoPerOrdine(dto, true);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
multiDBTransactionManager.rollbackAll();
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
public void generaNuovoLottoPerOrdine(OrdineLavorazioneDTO ordine, boolean saveEntity) throws Exception {
|
||||
String partitaMag = PartitaMagRules.suggestCodePartitaMag(multiDBTransactionManager.getPrimaryConnection(),
|
||||
new DatiPartitaMagDTO()
|
||||
.setCodMart(ordine.getCodProd())
|
||||
.setDataOrd(UtilityDate.getTodayWithoutTime())
|
||||
.setGestione("L")
|
||||
.setCodJfas(ordine.getCodJfas()));
|
||||
|
||||
productionService.insertPartitaMag(new InsertPartitaMagRequestDTO()
|
||||
.setCodMart(ordine.getCodProd())
|
||||
.setPartitaMag(partitaMag)
|
||||
.setDataScad(ordine.getDataScad())
|
||||
.setDataOrd(ordine.getDataOrd())
|
||||
.setNumOrd(ordine.getNumOrd())
|
||||
.setGestione(ordine.getGestione())
|
||||
.setCodJfas(ordine.getCodJfas())
|
||||
.setNote(ordine.getNoteLav()), saveEntity);
|
||||
}
|
||||
|
||||
public void duplicaOrdiniGiornoDopo(String codJfas) throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user