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;
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
import it.integry.ems.migration._base.BaseMigration;
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomerDB;
|
||||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
public class Migration_20250514085241 extends BaseMigration implements MigrationModelInterface {
|
public class Migration_20250514085241 extends BaseMigration implements MigrationModelInterface {
|
||||||
@@ -10,6 +11,8 @@ public class Migration_20250514085241 extends BaseMigration implements Migration
|
|||||||
if (isHistoryDB())
|
if (isHistoryDB())
|
||||||
return;
|
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" +
|
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" +
|
"RETURNS numeric(20,5) AS\n" +
|
||||||
|
|||||||
@@ -473,4 +473,12 @@ public class MesProductionControllerV2 {
|
|||||||
}
|
}
|
||||||
return ServiceRestResponse.createPositiveResponse();
|
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.ChiusuraLavorazioneDTO;
|
||||||
import it.integry.ems.document.dto.RientroLavorazioneDTO;
|
import it.integry.ems.document.dto.RientroLavorazioneDTO;
|
||||||
import it.integry.ems.document.dto.ScaricoLavorazioneDTO;
|
import it.integry.ems.document.dto.ScaricoLavorazioneDTO;
|
||||||
|
import it.integry.ems.exception.MissingDataException;
|
||||||
import it.integry.ems.javabeans.RequestDataDTO;
|
import it.integry.ems.javabeans.RequestDataDTO;
|
||||||
import it.integry.ems.production.dto.MesStopOrdineDTO;
|
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.AziendaService;
|
||||||
import it.integry.ems.service.EntityProcessor;
|
import it.integry.ems.service.EntityProcessor;
|
||||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||||
import it.integry.ems.utility.UtilityDebug;
|
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.entity.DtbOrdt;
|
||||||
import it.integry.ems_model.service.SetupGest;
|
import it.integry.ems_model.service.SetupGest;
|
||||||
import it.integry.ems_model.types.OperationType;
|
import it.integry.ems_model.types.OperationType;
|
||||||
import it.integry.ems_model.utility.*;
|
import it.integry.ems_model.utility.*;
|
||||||
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Scope;
|
import org.springframework.context.annotation.Scope;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.sql.SQLException;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@Scope("request")
|
@Scope("request")
|
||||||
public class ProductionOrdersLifecycleService {
|
public class ProductionOrdersLifecycleService {
|
||||||
|
|
||||||
private final Logger logger = LogManager.getLogger();
|
private final Logger logger = LogManager.getLogger();
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public MultiDBTransactionManager multiDBTransactionManager;
|
public MultiDBTransactionManager multiDBTransactionManager;
|
||||||
|
|
||||||
@@ -49,7 +57,6 @@ public class ProductionOrdersLifecycleService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private AziendaService aziendaService;
|
private AziendaService aziendaService;
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private MesProductionServiceV2 mesProductionServiceV2;
|
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