Merge branch 'develop' into feature/JDK11
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
jenkins
2025-06-04 18:32:54 +02:00
4 changed files with 194 additions and 6 deletions

View File

@@ -1009,11 +1009,11 @@ public class DocOrdRules extends QueryRules {
.setCodTcolUl(dtbOrdt.getCodTcolUl())
.setCodTcolUi(dtbOrdt.getCodTcolUi())
.setNumCnf(dtbOrdt.getNumCnfProd());
dtbOrdrProd.setOperation(OperationType.UPDATE);
dtbOrdrProd.setOperation(OperationType.INSERT_OR_UPDATE);
}
dtbOrdtProd.addDtbOrdr(dtbOrdrProd);
return dtbOrdtProd;
}

View File

@@ -0,0 +1,83 @@
package it.integry.ems.product.importaz.service;
import java.time.LocalDate;
import java.util.Date;
public class RipianificaOrdineLavRequestDTO {
private String gestione;
private Date dataOrd;
private Integer numOrd;
private Integer idLotto;
private String codJfasOld;
private String codJfasNew;
private Date dataPianificazione;
public String getGestione() {
return gestione;
}
public RipianificaOrdineLavRequestDTO setGestione(String gestione) {
this.gestione = gestione;
return this;
}
public Date getDataOrd() {
return dataOrd;
}
public RipianificaOrdineLavRequestDTO setDataOrd(Date dataOrd) {
this.dataOrd = dataOrd;
return this;
}
public Integer getNumOrd() {
return numOrd;
}
public RipianificaOrdineLavRequestDTO setNumOrd(Integer numOrd) {
this.numOrd = numOrd;
return this;
}
public Integer getIdLotto() {
return idLotto;
}
public RipianificaOrdineLavRequestDTO setIdLotto(Integer idLotto) {
this.idLotto = idLotto;
return this;
}
public String getCodJfasOld() {
return codJfasOld;
}
public RipianificaOrdineLavRequestDTO setCodJfasOld(String codJfasOld) {
this.codJfasOld = codJfasOld;
return this;
}
public String getCodJfasNew() {
return codJfasNew;
}
public RipianificaOrdineLavRequestDTO setCodJfasNew(String codJfasNew) {
this.codJfasNew = codJfasNew;
return this;
}
public Date getDataPianificazione() {
return dataPianificazione;
}
public RipianificaOrdineLavRequestDTO setDataPianificazione(Date dataPianificazione) {
this.dataPianificazione = dataPianificazione;
return this;
}
}

View File

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.JsonNode;
import it.integry.common.var.CommonConstants;
import it.integry.ems.document.dto.ChiusuraLavorazioneDTO;
import it.integry.ems.javabeans.RequestDataDTO;
import it.integry.ems.product.importaz.service.RipianificaOrdineLavRequestDTO;
import it.integry.ems.production.dto.*;
import it.integry.ems.production.service.MesProductionServiceV2;
import it.integry.ems.production.service.ProductionLineService;
@@ -15,6 +16,7 @@ import it.integry.ems.service.dto.production.OrdineLavorazioneDTO;
import it.integry.ems.service.production.ProductionOrderDataHandlerService;
import it.integry.ems.status.ServiceChecker;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems_model.business_logic.GeneraOrdLav;
import it.integry.ems_model.config.EmsRestConstants;
import it.integry.ems_model.entity.MtbColt;
import it.integry.ems_model.types.OperationType;
@@ -474,6 +476,13 @@ public class MesProductionControllerV2 {
ServiceRestResponse reopenOrdineLav(@RequestBody ReopenOrdineLavRequestDTO dto) throws Exception {
productionOrdersLifecycleService.reopenOrdineLav(dto);
return ServiceRestResponse.createPositiveResponse();
}
@PostMapping(value = "ordine/ripianifica")
public @ResponseBody
ServiceRestResponse ripianifica(@RequestBody RipianificaOrdineLavRequestDTO dto) throws Exception {
productionOrdersLifecycleService.ripianificaOrdLav(dto);
return ServiceRestResponse.createPositiveResponse();
}
}

View File

@@ -9,6 +9,7 @@ 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.product.importaz.service.RipianificaOrdineLavRequestDTO;
import it.integry.ems.production.dto.ReopenOrdineLavRequestDTO;
import it.integry.ems.service.AziendaService;
import it.integry.ems.service.EntityProcessor;
@@ -16,10 +17,7 @@ import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.utility.UtilityDebug;
import it.integry.ems.utility.UtilityEntity;
import it.integry.ems_model.config.EmsRestConstants;
import it.integry.ems_model.entity.DtbDoct;
import it.integry.ems_model.entity.DtbOrdt;
import it.integry.ems_model.entity.JtbLotr;
import it.integry.ems_model.entity.JtbLott;
import it.integry.ems_model.entity.*;
import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.*;
@@ -30,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -332,4 +331,101 @@ public class ProductionOrdersLifecycleService {
throw e;
}
}
public void ripianificaOrdLav(RipianificaOrdineLavRequestDTO ripianificaOrdineLavRequestDTO) throws Exception {
DtbOrdt dtbOrdtP = new DtbOrdt()
.setCodJfas(UtilityString.isNull(ripianificaOrdineLavRequestDTO.getCodJfasNew(), ripianificaOrdineLavRequestDTO.getCodJfasOld()))
.setDataOrd(ripianificaOrdineLavRequestDTO.getDataPianificazione() == null ?
ripianificaOrdineLavRequestDTO.getDataOrd() :
ripianificaOrdineLavRequestDTO.getDataPianificazione()
)
.setGestione("A")
.setGestioneRif("A")
.setGeneraOrdLavDaProd(false)
.setOrdTrasf(false);
dtbOrdtP.setOperation(OperationType.SELECT_OBJECT);
dtbOrdtP.setOnlyPkMaster(false);
entityProcessor.processEntity(dtbOrdtP, multiDBTransactionManager);
if (dtbOrdtP.getNumOrd() == null) {
String sql =
Query.format(
"SELECT * " +
" FROM dtb_ordt " +
"WHERE EXISTS (SELECT * FROM dtb_ordt orl WHERE dtb_ordt.gestione = orl.gestione_rif AND dtb_ordt.data_ord = orl.data_ord_rif AND " +
"dtb_ordt.num_ord = orl.num_ord_rif and gestione = %s and data_ord = %s and num_ord = %s)",
ripianificaOrdineLavRequestDTO.getGestione(),
ripianificaOrdineLavRequestDTO.getDataOrd(),
ripianificaOrdineLavRequestDTO.getNumOrd()
);
dtbOrdtP = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbOrdt.class);
dtbOrdtP
.setCodJfas(ripianificaOrdineLavRequestDTO.getCodJfasNew() == null ? dtbOrdtP.getCodJfas() : ripianificaOrdineLavRequestDTO.getCodJfasNew())
.setDataOrd(ripianificaOrdineLavRequestDTO.getDataPianificazione() == null ? dtbOrdtP.getDataOrd() : ripianificaOrdineLavRequestDTO.getDataPianificazione())
.setNumOrd(null)
.setGeneraOrdLavDaProd(false)
.setOrdTrasf(false);
dtbOrdtP.setOperation(OperationType.INSERT);
entityProcessor.processEntity(dtbOrdtP, true, multiDBTransactionManager);
}
String sql =
Query.format("SELECT ISNULL(MAX(riga_ord), 0) + 1 FROM dtb_ordr WHERE gestione = %s AND data_ord = %s AND num_ord = %s",
dtbOrdtP.getGestione(),
dtbOrdtP.getDataOrd(),
dtbOrdtP.getNumOrd());
Integer rigaOrdProd = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
HashMap<String, Object> oldPk = new HashMap<>();
Date dataOrd = ripianificaOrdineLavRequestDTO.getDataOrd();
if (ripianificaOrdineLavRequestDTO.getDataPianificazione() != null &&
!ripianificaOrdineLavRequestDTO.getDataOrd().equals(ripianificaOrdineLavRequestDTO.getDataPianificazione())) {
oldPk.put("dataOrd", ripianificaOrdineLavRequestDTO.getDataOrd());
dataOrd = ripianificaOrdineLavRequestDTO.getDataPianificazione();
}
DtbOrdt dtbOrdl = new DtbOrdt()
.setDataOrd(dataOrd)
.setGestione(ripianificaOrdineLavRequestDTO.getGestione())
.setNumOrd(ripianificaOrdineLavRequestDTO.getNumOrd())
.setGestioneRif(dtbOrdtP.getGestione())
.setDataOrdRif(dtbOrdtP.getDataOrd())
.setNumOrdRif(dtbOrdtP.getNumOrd())
.setRigaOrdRif(rigaOrdProd);
if (!oldPk.isEmpty()) {
dtbOrdl.setOldPk(oldPk);
dtbOrdl.setOperation(OperationType.SUBSTITUTE);
} else {
dtbOrdl.setOperation(OperationType.UPDATE);
}
if (UtilityString.equalsIgnoreCase(ripianificaOrdineLavRequestDTO.getCodJfasNew(), ripianificaOrdineLavRequestDTO.getCodJfasOld())) {
sql =
Query.format(
"SELECT * FROM dtb_ords WHERE gestione = %s AND data_ord = %s AND num_ord = %s ORDER BY data_fine desc",
ripianificaOrdineLavRequestDTO.getGestione(),
ripianificaOrdineLavRequestDTO.getDataOrd(),
ripianificaOrdineLavRequestDTO.getNumOrd());
DtbOrdSteps lastStep = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbOrdSteps.class);
lastStep.setFlagStepAttivo("N");
lastStep.setOperation(OperationType.UPDATE);
dtbOrdl.getDtbOrdSteps().add(lastStep);
DtbOrdSteps dtbOrdSteps = (DtbOrdSteps) lastStep.deepClone();
dtbOrdSteps
.setCodJfas(ripianificaOrdineLavRequestDTO.getCodJfasNew())
.setIdRiga(null)
.setDataIniz(null)
.setDataFine(null);
dtbOrdSteps.setOperation(OperationType.INSERT);
dtbOrdl.getDtbOrdSteps().add(dtbOrdSteps);
}
entityProcessor.processEntity(dtbOrdl, true, multiDBTransactionManager);
}
}