Merge remote-tracking branch 'origin/develop' into develop
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
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_20250514085241 extends BaseMigration implements MigrationModelInterface {
|
||||
@@ -10,6 +11,8 @@ public class Migration_20250514085241 extends BaseMigration implements Migration
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
if (isCustomerDb(IntegryCustomerDB.Siciliani_DMS))
|
||||
return;
|
||||
|
||||
createOrUpdateFunction("f_GetCostoUltArt_depo", "CREATE FUNCTION [dbo].[f_GetCostoUltArt_depo](@dataReg datetime, @codMdep varchar(5), @codMart varchar(15))\n" +
|
||||
"RETURNS numeric(20,5) AS\n" +
|
||||
|
||||
@@ -473,4 +473,12 @@ public class MesProductionControllerV2 {
|
||||
}
|
||||
return ServiceRestResponse.createPositiveResponse();
|
||||
}
|
||||
|
||||
@PostMapping(value = "ordine/reopen")
|
||||
public @ResponseBody
|
||||
ServiceRestResponse reopenOrdineLav(@RequestBody ReopenOrdineLavRequestDTO dto) throws Exception {
|
||||
productionOrdersLifecycleService.reopenOrdineLav(dto);
|
||||
|
||||
return ServiceRestResponse.createPositiveResponse();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
package it.integry.ems.production.dto;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
public class ReopenOrdineLavRequestDTO {
|
||||
private String gestione;
|
||||
|
||||
private Date dataOrd;
|
||||
|
||||
private Integer numOrd;
|
||||
|
||||
public String getGestione() {
|
||||
return gestione;
|
||||
}
|
||||
|
||||
public ReopenOrdineLavRequestDTO setGestione(String gestione) {
|
||||
this.gestione = gestione;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public ReopenOrdineLavRequestDTO setDataOrd(Date dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Integer getNumOrd() {
|
||||
return numOrd;
|
||||
}
|
||||
|
||||
public ReopenOrdineLavRequestDTO setNumOrd(Integer numOrd) {
|
||||
this.numOrd = numOrd;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -7,30 +7,38 @@ import it.integry.ems.document.dto.CaricoLavorazioneDTO;
|
||||
import it.integry.ems.document.dto.ChiusuraLavorazioneDTO;
|
||||
import it.integry.ems.document.dto.RientroLavorazioneDTO;
|
||||
import it.integry.ems.document.dto.ScaricoLavorazioneDTO;
|
||||
import it.integry.ems.exception.MissingDataException;
|
||||
import it.integry.ems.javabeans.RequestDataDTO;
|
||||
import it.integry.ems.production.dto.MesStopOrdineDTO;
|
||||
import it.integry.ems.production.dto.ReopenOrdineLavRequestDTO;
|
||||
import it.integry.ems.service.AziendaService;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityDebug;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems_model.entity.DtbDoct;
|
||||
import it.integry.ems_model.entity.DtbOrdt;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.*;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
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.io.IOException;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@Scope("request")
|
||||
public class ProductionOrdersLifecycleService {
|
||||
|
||||
private final Logger logger = LogManager.getLogger();
|
||||
|
||||
@Autowired
|
||||
public MultiDBTransactionManager multiDBTransactionManager;
|
||||
|
||||
@@ -49,7 +57,6 @@ public class ProductionOrdersLifecycleService {
|
||||
@Autowired
|
||||
private AziendaService aziendaService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private MesProductionServiceV2 mesProductionServiceV2;
|
||||
|
||||
@@ -193,4 +200,78 @@ public class ProductionOrdersLifecycleService {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void reopenOrdineLav(ReopenOrdineLavRequestDTO reopenOrdineLavRequestDTO) throws SQLException, IOException, MissingDataException {
|
||||
if (ObjectUtils.anyNull(
|
||||
reopenOrdineLavRequestDTO,
|
||||
reopenOrdineLavRequestDTO.getGestione(),
|
||||
reopenOrdineLavRequestDTO.getDataOrd(),
|
||||
reopenOrdineLavRequestDTO.getNumOrd())) {
|
||||
throw new MissingDataException("Ordine di lavorazione incompleto");
|
||||
}
|
||||
|
||||
try {
|
||||
String sql = Query.format(
|
||||
"SELECT cod_mdep\n" +
|
||||
"FROM dtb_ordt\n" +
|
||||
"WHERE gestione = %s\n" +
|
||||
" AND data_ord = %s\n" +
|
||||
" AND num_ord = %s",
|
||||
reopenOrdineLavRequestDTO.getGestione(),
|
||||
reopenOrdineLavRequestDTO.getDataOrd(),
|
||||
reopenOrdineLavRequestDTO.getNumOrd()
|
||||
);
|
||||
|
||||
String codMdep = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
|
||||
boolean flagCaricoImmediato = setupGest.getSetupDepoBoolean("CARICO_SCARICO_PF", "SETUP", "GENERA_CARICO_SCARICO_IMMEDIATO", codMdep);
|
||||
|
||||
if (!flagCaricoImmediato) {
|
||||
String codDtipCar = setupGest.getSetup("W_PORDI_RC", "SETUP_DOCUMENTI", "COD_DTIP_CAR");
|
||||
String codDtipScar = setupGest.getSetup("W_PORDI_RC", "SETUP_DOCUMENTI", "COD_DTIP_SCAR");
|
||||
String codDtipRien = setupGest.getSetup("W_PORDI_RC", "SETUP_DOCUMENTI", "COD_DTIP_RIEN");
|
||||
|
||||
sql = Query.format(
|
||||
"SELECT cod_anag, cod_dtip, data_doc, ser_doc, num_doc\n" +
|
||||
"FROM dtb_doct\n" +
|
||||
"WHERE gestione = %s\n" +
|
||||
" AND data_ord = %s\n" +
|
||||
" AND num_ord = %s\n" +
|
||||
" AND cod_dtip IN (%s, %s, %s)",
|
||||
reopenOrdineLavRequestDTO.getGestione(),
|
||||
reopenOrdineLavRequestDTO.getDataOrd(),
|
||||
reopenOrdineLavRequestDTO.getNumOrd(),
|
||||
codDtipCar,
|
||||
codDtipScar,
|
||||
codDtipRien
|
||||
);
|
||||
|
||||
List<DtbDoct> docDaCancellare = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbDoct.class);
|
||||
|
||||
if (!UtilityList.isNullOrEmpty(docDaCancellare)) {
|
||||
docDaCancellare.forEach(dtbDoct -> dtbDoct.setOperation(OperationType.DELETE));
|
||||
|
||||
entityProcessor.processEntityList(docDaCancellare, false);
|
||||
|
||||
UtilityEntity.throwEntitiesException(docDaCancellare);
|
||||
}
|
||||
}
|
||||
|
||||
DtbOrdt ordDaRiaprire = new DtbOrdt()
|
||||
.setGestione(reopenOrdineLavRequestDTO.getGestione())
|
||||
.setDataOrd(reopenOrdineLavRequestDTO.getDataOrd())
|
||||
.setNumOrd(reopenOrdineLavRequestDTO.getNumOrd())
|
||||
.setFlagEvasoProd("I")
|
||||
.setFlagEvasoForzato("N");
|
||||
|
||||
ordDaRiaprire.setOperation(OperationType.UPDATE);
|
||||
|
||||
entityProcessor.processEntity(ordDaRiaprire, true, multiDBTransactionManager);
|
||||
|
||||
multiDBTransactionManager.commitAll();
|
||||
} catch (Exception e) {
|
||||
logger.error(e);
|
||||
multiDBTransactionManager.rollbackAll();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user