Gestione ordini di lavorazione multipli per mes smetar
This commit is contained in:
@@ -12,6 +12,8 @@ import java.util.*
|
|||||||
import it.integry.ems_model.utility.UtilityString
|
import it.integry.ems_model.utility.UtilityString
|
||||||
import it.integry.ems_model.utility.UtilityDB
|
import it.integry.ems_model.utility.UtilityDB
|
||||||
import it.integry.ems_model.entity.MtbCols
|
import it.integry.ems_model.entity.MtbCols
|
||||||
|
import it.integry.ems_model.entity.MtbColt
|
||||||
|
import it.integry.ems_model.entity.MtbColr
|
||||||
|
|
||||||
global Connection conn
|
global Connection conn
|
||||||
global String username
|
global String username
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ public class CaricoProdFinLavDTO {
|
|||||||
private String codMdepScar;
|
private String codMdepScar;
|
||||||
private String codDtipCar;
|
private String codDtipCar;
|
||||||
private String codDtipScar;
|
private String codDtipScar;
|
||||||
|
private String codDtipRien;
|
||||||
private String terminaLavorazione;
|
private String terminaLavorazione;
|
||||||
private String serDoc;
|
private String serDoc;
|
||||||
private String aggiornaStato;
|
private String aggiornaStato;
|
||||||
@@ -27,6 +28,7 @@ public class CaricoProdFinLavDTO {
|
|||||||
private String creaCaricoDaCollo;
|
private String creaCaricoDaCollo;
|
||||||
private String creaScaricoDaCollo;
|
private String creaScaricoDaCollo;
|
||||||
private String creaColloVersDaColloCarico;
|
private String creaColloVersDaColloCarico;
|
||||||
|
private String creaRientroDaCollo;
|
||||||
private Integer numOrd;
|
private Integer numOrd;
|
||||||
private Integer idRiga;
|
private Integer idRiga;
|
||||||
private Integer idStep;
|
private Integer idStep;
|
||||||
@@ -40,6 +42,7 @@ public class CaricoProdFinLavDTO {
|
|||||||
private String codJfas;
|
private String codJfas;
|
||||||
private String terminaLavorazioneLinea;
|
private String terminaLavorazioneLinea;
|
||||||
private String activityID;
|
private String activityID;
|
||||||
|
private Integer idLotto;
|
||||||
|
|
||||||
public String getCodJfas() {
|
public String getCodJfas() {
|
||||||
return codJfas;
|
return codJfas;
|
||||||
@@ -168,6 +171,16 @@ public class CaricoProdFinLavDTO {
|
|||||||
this.codDtipScar = codDtipScar;
|
this.codDtipScar = codDtipScar;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getCodDtipRien() {
|
||||||
|
return codDtipRien;
|
||||||
|
}
|
||||||
|
|
||||||
|
@XmlElement(name = "COD_DTIP_RIEN")
|
||||||
|
public CaricoProdFinLavDTO setCodDtipRien(String codDtipRien) {
|
||||||
|
this.codDtipRien = codDtipRien;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public String getTerminaLavorazione() {
|
public String getTerminaLavorazione() {
|
||||||
return terminaLavorazione;
|
return terminaLavorazione;
|
||||||
}
|
}
|
||||||
@@ -290,6 +303,16 @@ public class CaricoProdFinLavDTO {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getCreaRientroDaCollo() {
|
||||||
|
return creaRientroDaCollo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@XmlElement(name = "CREA_RIENTRO_COLLO")
|
||||||
|
public CaricoProdFinLavDTO setCreaRientroDaCollo(String creaRientroDaCollo) {
|
||||||
|
this.creaRientroDaCollo = creaRientroDaCollo;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public String getActivityID() {
|
public String getActivityID() {
|
||||||
return activityID;
|
return activityID;
|
||||||
}
|
}
|
||||||
@@ -299,6 +322,15 @@ public class CaricoProdFinLavDTO {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer getIdLotto() {
|
||||||
|
return idLotto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CaricoProdFinLavDTO setIdLotto(Integer idLotto) {
|
||||||
|
this.idLotto = idLotto;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public String getGenerateJson() {
|
public String getGenerateJson() {
|
||||||
return generateJson;
|
return generateJson;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1135,6 +1135,138 @@ public class DocumentProdService {
|
|||||||
return entityList;
|
return entityList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<EntityBase> generateRientroDaCollo(CaricoProdFinLavDTO carico) throws Exception {
|
||||||
|
String sql, codProd = null, partitaMag = null;
|
||||||
|
String condFase = null;
|
||||||
|
List<EntityBase> entityList = new ArrayList<>();
|
||||||
|
|
||||||
|
String gestione = "L";
|
||||||
|
Date dataOrd = carico.getDataOrd();
|
||||||
|
Integer numOrd = carico.getNumOrd();
|
||||||
|
String codJfas = carico.getCodJfas();
|
||||||
|
|
||||||
|
sql = "SELECT cod_prod, partita_mag FROM dtb_ordt " +
|
||||||
|
" WHERE gestione = " + UtilityDB.valueToString(gestione) + " AND " +
|
||||||
|
" data_ord = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + " AND " +
|
||||||
|
" num_ord = " + UtilityDB.valueToString(numOrd);
|
||||||
|
HashMap<String, Object> datiOrd = UtilityDB.executeSimpleQueryOnlyFirstRow(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||||
|
if (datiOrd != null && !datiOrd.isEmpty()) {
|
||||||
|
codProd = (String) datiOrd.get("cod_prod");
|
||||||
|
partitaMag = (String) datiOrd.get("partita_mag");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (carico.getTerminaLavorazione().compareTo("N") == 0) {
|
||||||
|
if (codJfas != null) {
|
||||||
|
condFase = "mtb_colt.cod_jfas = " + UtilityDB.valueToString(codJfas);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
List<DataDocFromCollo> results;
|
||||||
|
|
||||||
|
if (carico.getDataDoc() == null) {
|
||||||
|
sql = it.integry.ems_model.utility.Query.format(
|
||||||
|
"SELECT DISTINCT mtb_colt.data_collo AS data_doc_from_collo, SUM(mtb_colr.qta_col) AS qta_col_for_date\n" +
|
||||||
|
"FROM mtb_colt\n" +
|
||||||
|
" LEFT OUTER JOIN dtb_ordt ON mtb_colt.gestione = dtb_ordt.gestione AND\n" +
|
||||||
|
" mtb_colt.data_ord = dtb_ordt.data_ord AND\n" +
|
||||||
|
" mtb_colt.num_ord = dtb_ordt.num_ord,\n" +
|
||||||
|
" mtb_colr\n" +
|
||||||
|
"WHERE ((mtb_colt.gestione = %s\n" +
|
||||||
|
" AND mtb_colt.data_ord = %s\n" +
|
||||||
|
" AND mtb_colt.num_ord = %s) OR (mtb_colt.id_lotto = %s))\n" +
|
||||||
|
" AND mtb_colt.cod_dtip IS NULL\n" +
|
||||||
|
" AND mtb_colt.segno = 1\n" +
|
||||||
|
" AND mtb_colt.gestione = mtb_colr.gestione\n" +
|
||||||
|
" AND mtb_colt.data_collo = mtb_colr.data_collo\n" +
|
||||||
|
" AND mtb_colt.ser_collo = mtb_colr.ser_collo\n" +
|
||||||
|
" AND mtb_colt.num_collo = mtb_colr.num_collo\n" +
|
||||||
|
"GROUP BY mtb_colt.data_collo\n" +
|
||||||
|
"ORDER BY 1",
|
||||||
|
gestione,
|
||||||
|
dataOrd,
|
||||||
|
numOrd,
|
||||||
|
carico.getIdLotto()
|
||||||
|
);
|
||||||
|
|
||||||
|
sql = UtilityDB.addwhereCond(sql, condFase, false);
|
||||||
|
|
||||||
|
results = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DataDocFromCollo.class);
|
||||||
|
|
||||||
|
if ((results == null || results.isEmpty()) && "S".equals(carico.getTerminaLavorazione())) {
|
||||||
|
throw new Exception("Non ci sono colli di produzione generati per la produzione in corso");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
DataDocFromCollo dataDocFromCollo = new DataDocFromCollo();
|
||||||
|
dataDocFromCollo.setDataDocFromCollo(carico.getDataDoc());
|
||||||
|
dataDocFromCollo.setQtaColForDate(carico.getProdotti().getRow().get(0).getQtaProdAna()); /*UM magazzino*/
|
||||||
|
|
||||||
|
results = new ArrayList<>();
|
||||||
|
results.add(dataDocFromCollo);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (results != null) {
|
||||||
|
for (DataDocFromCollo dataDocFromCollo : results) {
|
||||||
|
LoadColliDTO loadColli = new LoadColliDTO()
|
||||||
|
.setCodAnag(carico.getCodAnag())
|
||||||
|
.setCodDtip(carico.getCodDtipRien())
|
||||||
|
.setSerDoc(carico.getSerDoc())
|
||||||
|
.setDataDoc(dataDocFromCollo.getDataDocFromCollo())
|
||||||
|
.setCodMdep(carico.getCodMdep())
|
||||||
|
.setDataOrd(dataOrd)
|
||||||
|
.setNumOrd(numOrd);
|
||||||
|
|
||||||
|
String condDataCollo = "";
|
||||||
|
if (carico.getDataDoc() == null) {
|
||||||
|
condDataCollo = "mtb_colt.data_collo = " + UtilityDB.valueDateToString(dataDocFromCollo.getDataDocFromCollo(), CommonConstants.DATE_FORMAT_YMD);
|
||||||
|
}
|
||||||
|
|
||||||
|
sql = it.integry.ems_model.utility.Query.format(
|
||||||
|
"SELECT DISTINCT mtb_colt.gestione, mtb_colt.data_collo, mtb_colt.ser_collo, mtb_colt.num_collo\n" +
|
||||||
|
"FROM mtb_colt\n" +
|
||||||
|
" LEFT OUTER JOIN dtb_ordt ON mtb_colt.gestione = dtb_ordt.gestione AND mtb_colt.data_ord = dtb_ordt.data_ord AND\n" +
|
||||||
|
" mtb_colt.num_ord = dtb_ordt.num_ord,\n" +
|
||||||
|
" mtb_colr\n" +
|
||||||
|
"WHERE mtb_colt.gestione = 'L'\n" +
|
||||||
|
" AND mtb_colt.data_ord IS NULL\n" +
|
||||||
|
" AND mtb_colt.num_ord IS NULL\n" +
|
||||||
|
" AND mtb_colt.id_lotto = %s\n" +
|
||||||
|
" AND mtb_colt.cod_dtip IS NULL\n" +
|
||||||
|
" AND mtb_colt.segno = 1\n" +
|
||||||
|
" AND mtb_colt.gestione = mtb_colr.gestione\n" +
|
||||||
|
" AND mtb_colt.data_collo = mtb_colr.data_collo\n" +
|
||||||
|
" AND mtb_colt.ser_collo = mtb_colr.ser_collo\n" +
|
||||||
|
" AND mtb_colt.num_collo = mtb_colr.num_collo\n" +
|
||||||
|
"ORDER BY 1, 2, 3, 4",
|
||||||
|
carico.getIdLotto()
|
||||||
|
);
|
||||||
|
|
||||||
|
sql = UtilityDB.addwhereCond(sql, condDataCollo, false);
|
||||||
|
sql = UtilityDB.addwhereCond(sql, condFase, false);
|
||||||
|
|
||||||
|
List<MtbColt> colli = new ResultSetMapper().mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, MtbColt.class);
|
||||||
|
|
||||||
|
loadColli.setColli(colli);
|
||||||
|
|
||||||
|
if (loadColli.getColli() != null && !loadColli.getColli().isEmpty()) {
|
||||||
|
DtbDoct docT = loadColliService.createDocFromColli(multiDBTransactionManager, loadColli);
|
||||||
|
|
||||||
|
docT
|
||||||
|
.setActivityId(carico.getActivityID())
|
||||||
|
.setCodProd(codProd)
|
||||||
|
.setPartitaMag(partitaMag);
|
||||||
|
|
||||||
|
if (codJfas != null) {
|
||||||
|
docT.setCodJfas(codJfas);
|
||||||
|
}
|
||||||
|
|
||||||
|
entityList.add(docT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return entityList;
|
||||||
|
}
|
||||||
|
|
||||||
@Deprecated
|
@Deprecated
|
||||||
private void generateScaricoMaterialiDaColloVers(CaricoProdFinLavDTO carico, List<EntityBase> arrayEntity) throws Exception {
|
private void generateScaricoMaterialiDaColloVers(CaricoProdFinLavDTO carico, List<EntityBase> arrayEntity) throws Exception {
|
||||||
Connection conn = multiDBTransactionManager.getPrimaryConnection();
|
Connection conn = multiDBTransactionManager.getPrimaryConnection();
|
||||||
@@ -2178,6 +2310,11 @@ public class DocumentProdService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Generazione rientro prodotti da collo
|
||||||
|
if ("S".equalsIgnoreCase(UtilityString.isNull(carico.getCreaRientroDaCollo(), "N"))) {
|
||||||
|
arrayEntity.addAll(this.generateRientroDaCollo(carico));
|
||||||
|
}
|
||||||
|
|
||||||
return arrayEntity;
|
return arrayEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -403,6 +403,15 @@ public class MesProductionControllerV2 {
|
|||||||
return ServiceRestResponse.createPositiveResponse();
|
return ServiceRestResponse.createPositiveResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "cambioFaseGroup", method = RequestMethod.POST)
|
||||||
|
public @ResponseBody
|
||||||
|
ServiceRestResponse cambioFaseGroup(@RequestParam(CommonConstants.PROFILE_DB) String profileDB,
|
||||||
|
@RequestBody GroupStepDTO groupStepDTO) throws Exception {
|
||||||
|
mesProductionService.executeGroupStep(groupStepDTO, MesProductionServiceV2.Action.CAMBIO_FASE);
|
||||||
|
|
||||||
|
return ServiceRestResponse.createPositiveResponse();
|
||||||
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "createColloCaricoGroup", method = RequestMethod.POST)
|
@RequestMapping(value = "createColloCaricoGroup", method = RequestMethod.POST)
|
||||||
public @ResponseBody
|
public @ResponseBody
|
||||||
ServiceRestResponse createColloCaricoGroup(@RequestParam(CommonConstants.PROFILE_DB) String profileDB,
|
ServiceRestResponse createColloCaricoGroup(@RequestParam(CommonConstants.PROFILE_DB) String profileDB,
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ public class GroupStepDTO {
|
|||||||
String note;
|
String note;
|
||||||
String terminaLavorazione = "S";
|
String terminaLavorazione = "S";
|
||||||
String terminaLavorazioneLinea = "N";
|
String terminaLavorazioneLinea = "N";
|
||||||
|
String newCodJfas;
|
||||||
|
|
||||||
public String getCodJfas() {
|
public String getCodJfas() {
|
||||||
return codJfas;
|
return codJfas;
|
||||||
@@ -83,4 +84,13 @@ public class GroupStepDTO {
|
|||||||
this.terminaLavorazioneLinea = terminaLavorazioneLinea;
|
this.terminaLavorazioneLinea = terminaLavorazioneLinea;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getNewCodJfas() {
|
||||||
|
return newCodJfas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GroupStepDTO setNewCodJfas(String newCodJfas) {
|
||||||
|
this.newCodJfas = newCodJfas;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import it.integry.ems.document.dto.CaricoProdFinLavRowDTO;
|
|||||||
import it.integry.ems.document.service.DocumentProdService;
|
import it.integry.ems.document.service.DocumentProdService;
|
||||||
import it.integry.ems.exception.MissingDataException;
|
import it.integry.ems.exception.MissingDataException;
|
||||||
import it.integry.ems.exception.PrimaryDatabaseNotPresentException;
|
import it.integry.ems.exception.PrimaryDatabaseNotPresentException;
|
||||||
|
import it.integry.ems.object_storage.minio.sdk.errors.MinioException;
|
||||||
import it.integry.ems.production.dto.*;
|
import it.integry.ems.production.dto.*;
|
||||||
import it.integry.ems.report.dto.JasperDTO;
|
import it.integry.ems.report.dto.JasperDTO;
|
||||||
import it.integry.ems.report.dto.PairsDTO;
|
import it.integry.ems.report.dto.PairsDTO;
|
||||||
@@ -24,6 +25,7 @@ import it.integry.ems.utility.UtilityEntity;
|
|||||||
import it.integry.ems_model.base.EntityBase;
|
import it.integry.ems_model.base.EntityBase;
|
||||||
import it.integry.ems_model.db.ResultSetMapper;
|
import it.integry.ems_model.db.ResultSetMapper;
|
||||||
import it.integry.ems_model.entity.*;
|
import it.integry.ems_model.entity.*;
|
||||||
|
import it.integry.ems_model.exception.*;
|
||||||
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.*;
|
||||||
@@ -35,12 +37,16 @@ import org.apache.pdfbox.printing.Orientation;
|
|||||||
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 org.xmlpull.v1.XmlPullParserException;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.net.HttpURLConnection;
|
import java.net.HttpURLConnection;
|
||||||
|
import java.security.InvalidKeyException;
|
||||||
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
@@ -421,6 +427,55 @@ public class MesProductionServiceV2 {
|
|||||||
UtilityEntity.throwEntitiesException(UtilityEntity.toEntityBaseList(dtbOrdtList));
|
UtilityEntity.throwEntitiesException(UtilityEntity.toEntityBaseList(dtbOrdtList));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void cambioFase(Date dataOrd, Integer numOrd, String gestioneOrd, String codJfas, Integer idStep, Integer idRiga, String newCodJfas) throws SQLException, IOException, PrimaryDatabaseNotPresentException, DataConverterNotFoundException, InstantiationException, IllegalAccessException, RulesNotCompiledException, MergeEntityDBToObjectException, MinioException, XmlPullParserException, NoSuchAlgorithmException, InvalidKeyException, NoSuchFieldException, FieldMissingException, InvocationTargetException, ConverterNotConfiguredException, EntityException {
|
||||||
|
String whereCondCodJfas = "";
|
||||||
|
String whereCondIdStep = "";
|
||||||
|
|
||||||
|
if (!UtilityString.isNullOrEmpty(codJfas)) {
|
||||||
|
whereCondCodJfas = " AND cod_jfas = " + UtilityDB.valueToString(codJfas);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (idStep != null && idRiga != null) {
|
||||||
|
whereCondIdStep = " AND id_step = " + UtilityDB.valueToString(idStep) + " AND id_riga = " + UtilityDB.valueToString(idRiga);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
String sql = "SELECT * " +
|
||||||
|
" FROM dtb_ord_steps " +
|
||||||
|
" WHERE num_ord = " + UtilityDB.valueToString(numOrd) +
|
||||||
|
" AND gestione = " + UtilityDB.valueToString(gestioneOrd) +
|
||||||
|
" AND data_ord = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) +
|
||||||
|
whereCondCodJfas +
|
||||||
|
whereCondIdStep +
|
||||||
|
" AND data_fine IS NULL " +
|
||||||
|
" AND data_iniz IS NULL ";
|
||||||
|
|
||||||
|
List<DtbOrdSteps> latestSteps = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbOrdSteps.class);
|
||||||
|
|
||||||
|
ArrayList<DtbOrdt> dtbOrdtList = new ArrayList<>();
|
||||||
|
|
||||||
|
if (latestSteps != null) {
|
||||||
|
for (DtbOrdSteps dtbOrdStep : latestSteps) {
|
||||||
|
DtbOrdt dtbOrdt = new DtbOrdt();
|
||||||
|
dtbOrdt.setOperation(OperationType.NO_OP);
|
||||||
|
dtbOrdt.setGestione(dtbOrdStep.getGestione());
|
||||||
|
dtbOrdt.setDataOrd(dtbOrdStep.getDataOrd());
|
||||||
|
dtbOrdt.setNumOrd(dtbOrdStep.getNumOrd());
|
||||||
|
dtbOrdt.setDtbOrdSteps(new ArrayList<>());
|
||||||
|
dtbOrdt.getDtbOrdSteps().add(dtbOrdStep);
|
||||||
|
|
||||||
|
|
||||||
|
dtbOrdStep.setCodJfas(newCodJfas);
|
||||||
|
dtbOrdStep.setOperation(OperationType.UPDATE);
|
||||||
|
|
||||||
|
dtbOrdtList.add(dtbOrdt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
entityProcessor.processEntityList(dtbOrdtList, true);
|
||||||
|
UtilityEntity.throwEntitiesException(UtilityEntity.toEntityBaseList(dtbOrdtList));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void updateQtaImmesseStep(OrdineLavorazioneDTO ordineLavorazione, String codJfas, double qta) throws Exception {
|
public void updateQtaImmesseStep(OrdineLavorazioneDTO ordineLavorazione, String codJfas, double qta) throws Exception {
|
||||||
|
|
||||||
@@ -1041,7 +1096,8 @@ public class MesProductionServiceV2 {
|
|||||||
public enum Action {
|
public enum Action {
|
||||||
OPEN,
|
OPEN,
|
||||||
CLOSE,
|
CLOSE,
|
||||||
STOP
|
STOP,
|
||||||
|
CAMBIO_FASE
|
||||||
}
|
}
|
||||||
|
|
||||||
public void executeGroupStep(GroupStepDTO groupStepDTO, Action action) throws Exception {
|
public void executeGroupStep(GroupStepDTO groupStepDTO, Action action) throws Exception {
|
||||||
@@ -1123,6 +1179,7 @@ public class MesProductionServiceV2 {
|
|||||||
if (ordine.getNumFase() == ordine.getMaxFase()) {
|
if (ordine.getNumFase() == ordine.getMaxFase()) {
|
||||||
String codDtipScar = setupGest.getSetup("W_PORDI_RC", "SETUP_DOCUMENTI", "COD_DTIP_SCAR");
|
String codDtipScar = setupGest.getSetup("W_PORDI_RC", "SETUP_DOCUMENTI", "COD_DTIP_SCAR");
|
||||||
String codDtipCar = setupGest.getSetup("W_PORDI_RC", "SETUP_DOCUMENTI", "COD_DTIP_CAR");
|
String codDtipCar = setupGest.getSetup("W_PORDI_RC", "SETUP_DOCUMENTI", "COD_DTIP_CAR");
|
||||||
|
String codDtipRien = setupGest.getSetup("W_PORDI_RC", "SETUP_DOCUMENTI", "COD_DTIP_RIEN");
|
||||||
String codMdepCar = setupGest.getSetup("W_PORDI_RC", "SETUP_DOCUMENTI", "COD_MDEP_CAR");
|
String codMdepCar = setupGest.getSetup("W_PORDI_RC", "SETUP_DOCUMENTI", "COD_MDEP_CAR");
|
||||||
|
|
||||||
CaricoProdFinLavDTO carico = new CaricoProdFinLavDTO();
|
CaricoProdFinLavDTO carico = new CaricoProdFinLavDTO();
|
||||||
@@ -1136,12 +1193,15 @@ public class MesProductionServiceV2 {
|
|||||||
carico.setEffettuaScaricoMateriali("S");
|
carico.setEffettuaScaricoMateriali("S");
|
||||||
carico.setCodDtipScar(codDtipScar);
|
carico.setCodDtipScar(codDtipScar);
|
||||||
carico.setCodDtipCar(codDtipCar);
|
carico.setCodDtipCar(codDtipCar);
|
||||||
|
carico.setCodDtipRien(codDtipRien);
|
||||||
carico.setCodMdep(UtilityString.isNullOrEmpty(codMdepCar) ? null : codMdepCar);
|
carico.setCodMdep(UtilityString.isNullOrEmpty(codMdepCar) ? null : codMdepCar);
|
||||||
carico.setCodMdepScar(ordine.getCodMdep());
|
carico.setCodMdepScar(ordine.getCodMdep());
|
||||||
carico.setCreaCaricoDaCollo("S");
|
carico.setCreaCaricoDaCollo("S");
|
||||||
carico.setCreaScaricoDaCollo("S");
|
carico.setCreaScaricoDaCollo("S");
|
||||||
carico.setTerminaLavorazione(groupStepDTO.getTerminaLavorazione());
|
carico.setTerminaLavorazione(groupStepDTO.getTerminaLavorazione());
|
||||||
carico.setTerminaLavorazioneLinea(groupStepDTO.getTerminaLavorazioneLinea());
|
carico.setTerminaLavorazioneLinea(groupStepDTO.getTerminaLavorazioneLinea());
|
||||||
|
carico.setCreaRientroDaCollo("S");
|
||||||
|
carico.setIdLotto(ordine.getIdLotto());
|
||||||
|
|
||||||
CaricoProdFinLavProdottiDTO prodotti = new CaricoProdFinLavProdottiDTO();
|
CaricoProdFinLavProdottiDTO prodotti = new CaricoProdFinLavProdottiDTO();
|
||||||
|
|
||||||
@@ -1167,6 +1227,10 @@ public class MesProductionServiceV2 {
|
|||||||
entitiesToSave.add(ordLav);
|
entitiesToSave.add(ordLav);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case CAMBIO_FASE:
|
||||||
|
this.cambioFase(ordine.getDataOrd(), ordine.getNumOrd(), ordine.getGestione(), groupStepDTO.getCodJfas(), null, null, groupStepDTO.getNewCodJfas());
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ public class ScaricoMateriaPrimaDaColloDTO {
|
|||||||
private BigDecimal quantity;
|
private BigDecimal quantity;
|
||||||
private DtbOrdr order;
|
private DtbOrdr order;
|
||||||
private boolean createNewUl = false;
|
private boolean createNewUl = false;
|
||||||
|
private Integer idLotto;
|
||||||
|
|
||||||
public String getCodMart() {
|
public String getCodMart() {
|
||||||
return codMart;
|
return codMart;
|
||||||
@@ -77,4 +78,13 @@ public class ScaricoMateriaPrimaDaColloDTO {
|
|||||||
this.codMdep = codMdep;
|
this.codMdep = codMdep;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer getIdLotto() {
|
||||||
|
return idLotto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ScaricoMateriaPrimaDaColloDTO setIdLotto(Integer idLotto) {
|
||||||
|
this.idLotto = idLotto;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2527,14 +2527,14 @@ public class WMSGenericService {
|
|||||||
anomalieList.add(AnomalieDTO.error("Non è stato possibile scaricare la quantita per l'articolo " + codMart + ": i dati del collo di origine non cono completi"));
|
anomalieList.add(AnomalieDTO.error("Non è stato possibile scaricare la quantita per l'articolo " + codMart + ": i dati del collo di origine non cono completi"));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (order != null && (
|
// if (order != null && (
|
||||||
order.getDataOrd() == null ||
|
// order.getDataOrd() == null ||
|
||||||
order.getNumOrd() == null ||
|
// order.getNumOrd() == null ||
|
||||||
order.getGestione() == null
|
// order.getGestione() == null
|
||||||
)) {
|
// )) {
|
||||||
anomalieList.add(AnomalieDTO.error("Non è stato possibile scaricare la quantita per l'articolo " + codMart + ": i dati dell' ordine non sono completi"));
|
// anomalieList.add(AnomalieDTO.error("Non è stato possibile scaricare la quantita per l'articolo " + codMart + ": i dati dell' ordine non sono completi"));
|
||||||
continue;
|
// continue;
|
||||||
}
|
// }
|
||||||
if (order != null) {
|
if (order != null) {
|
||||||
codAnag = !UtilityString.isNullOrEmpty(order.getCodAnag()) ? order.getCodAnag() : null;
|
codAnag = !UtilityString.isNullOrEmpty(order.getCodAnag()) ? order.getCodAnag() : null;
|
||||||
if (UtilityString.isNullOrEmpty(codAnag)) {
|
if (UtilityString.isNullOrEmpty(codAnag)) {
|
||||||
@@ -2612,6 +2612,7 @@ public class WMSGenericService {
|
|||||||
.setPosizione(giacenza.getPosizione())
|
.setPosizione(giacenza.getPosizione())
|
||||||
.setDataOrd(order != null ? order.getDataOrd() : null)
|
.setDataOrd(order != null ? order.getDataOrd() : null)
|
||||||
.setNumOrd((order != null ? order.getNumOrd() : null))
|
.setNumOrd((order != null ? order.getNumOrd() : null))
|
||||||
|
.setIdLotto(scarico.getIdLotto())
|
||||||
.setCodAnag(codAnag);
|
.setCodAnag(codAnag);
|
||||||
mtbColt.setOperation(OperationType.INSERT_OR_UPDATE);
|
mtbColt.setOperation(OperationType.INSERT_OR_UPDATE);
|
||||||
mtbColtsToInsert.add(mtbColt);
|
mtbColtsToInsert.add(mtbColt);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package it.integry.ems.retail.wms.lavorazione.service;
|
package it.integry.ems.retail.wms.lavorazione.service;
|
||||||
|
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
import it.integry.ems.javabeans.RequestDataDTO;
|
import it.integry.ems.javabeans.RequestDataDTO;
|
||||||
import it.integry.ems.logistic.dto.sm2.FiltroDistribuzioneColloDTO;
|
import it.integry.ems.logistic.dto.sm2.FiltroDistribuzioneColloDTO;
|
||||||
import it.integry.ems.product.importaz.service.ProductServices;
|
import it.integry.ems.product.importaz.service.ProductServices;
|
||||||
@@ -146,10 +147,24 @@ public class WMSLavorazioneService {
|
|||||||
final List<OrdineLavorazioneDTO> ordiniLavorazioneInCorso = productionOrderDataHandlerService.getOrdiniLavorazioneInCorso(createUDSRequestDTO.getCodJfas());
|
final List<OrdineLavorazioneDTO> ordiniLavorazioneInCorso = productionOrderDataHandlerService.getOrdiniLavorazioneInCorso(createUDSRequestDTO.getCodJfas());
|
||||||
//Try to retrieve
|
//Try to retrieve
|
||||||
|
|
||||||
//TODO: Assegnare l'ordine o l'id lotto al collo appena creato
|
|
||||||
|
|
||||||
//Se non trovo niente allora eccezione
|
//Se non trovo niente allora eccezione
|
||||||
|
if (ordiniLavorazioneInCorso == null || ordiniLavorazioneInCorso.isEmpty()) {
|
||||||
|
throw new Exception("Nessun ordine in corso sulla linea " + createUDSRequestDTO.getCodJfas());
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Integer> idLotto = Stream.of(ordiniLavorazioneInCorso).map(OrdineLavorazioneDTO::getIdLotto).withoutNulls().distinct().toList();
|
||||||
|
|
||||||
|
if (idLotto.size() > 1) {
|
||||||
|
throw new Exception("Trovato più di 1 id lotto in corso.");
|
||||||
|
}
|
||||||
|
|
||||||
|
//Assegnare l'ordine o l'id lotto al collo appena creato
|
||||||
|
OrdineLavorazioneDTO ordineLavorazioneDTO = ordiniLavorazioneInCorso.get(0);
|
||||||
|
|
||||||
|
udsMtbColt
|
||||||
|
.setDataOrd(ordineLavorazioneDTO.getDataOrd())
|
||||||
|
.setNumOrd(ordineLavorazioneDTO.getNumOrd())
|
||||||
|
.setIdLotto(ordineLavorazioneDTO.getIdLotto());
|
||||||
}
|
}
|
||||||
|
|
||||||
udsMtbColt.setOperation(OperationType.INSERT);
|
udsMtbColt.setOperation(OperationType.INSERT);
|
||||||
|
|||||||
Reference in New Issue
Block a user