elimiazione trigger e varie modifiche su ordini di produzione

This commit is contained in:
2024-08-06 18:18:00 +02:00
parent e5df127ee0
commit db73af8d91
2 changed files with 306 additions and 285 deletions

View File

@@ -27,6 +27,7 @@ import java.text.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class ProductionBusinessLogic { public class ProductionBusinessLogic {
@@ -505,25 +506,28 @@ public class ProductionBusinessLogic {
rapConvPRI = rapConvDist; rapConvPRI = rapConvDist;
List<JtbDistMate> jtbDistMates; List<JtbDistMate> jtbDistMates;
//lista degli articoli che hanno distinta
sql = "SELECT DISTINCT cod_mart FROM dbo.getmaterialidistinta(%s) WHERE is_foglia = 0";
List<String> articoli = UtilityDB.executeSimpleQueryOnlyFirstColumn(conn, sql);
if (((DtbOrdr) dtbOrdr).getDistinta() == null ) { if (((DtbOrdr) dtbOrdr).getDistinta() == null ) {
sql = sql =
Query.format( Query.format(
"SELECT jtb_dist_mate.cod_mart,\n" + "SELECT jtb_dist_mate.cod_mart,\n" +
" jtb_dist_mate.descrizione,\n" + " jtb_dist_mate.descrizione,\n" +
" jtb_dist_mate.descrizione_estesa,\n" + " jtb_dist_mate.descrizione_estesa,\n" +
" jtb_dist_mate.unt_mis_prod unt_mis_dist,\n" + " jtb_dist_mate.unt_mis_prod as unt_mis_dist,\n" +
" jtb_dist_mate.rap_conv_prod rap_conv_dist,\n" + " jtb_dist_mate.rap_conv_prod as rap_conv_dist,\n" +
" jtb_dist_mate.qta_prod AS qta_std,\n" + " jtb_dist_mate.qta_prod AS qta_std,\n" +
" jtb_dist_mate.num_fase,\n" + " jtb_dist_mate.num_fase,\n" +
" jtb_dist_mate.flag_pri,\n" + " jtb_dist_mate.flag_pri,\n" +
" jtb_dist_mate.perc_sfrido,\n" + " jtb_dist_mate.perc_sfrido,\n" +
" jtb_dist_mate.note\n" + " jtb_dist_mate.note\n" +
"FROM dbo.getmaterialidistinta(%s) jtb_dist_mate\n" + "FROM dbo.getmaterialidistinta(%s) jtb_dist_mate\n" +
"WHERE is_foglia = 1\n" + "WHERE is_root = 0\n" +
"ORDER BY item_id", codProd); "ORDER BY item_id", codProd);
jtbDistMates = UtilityDB.executeSimpleQueryDTO(conn, sql, JtbDistMate.class); jtbDistMates = UtilityDB.executeSimpleQueryDTO(conn, sql, JtbDistMate.class);
} else { } else {
jtbDistMates = ((DtbOrdr) dtbOrdr).getDistinta(); jtbDistMates = ((DtbOrdr) dtbOrdr).getDistinta();
} }
@@ -560,7 +564,6 @@ public class ProductionBusinessLogic {
} }
} }
Integer numFase = mp.getNumFase(); Integer numFase = mp.getNumFase();
// Calcolo data consegna materiali per fase di lavoro // Calcolo data consegna materiali per fase di lavoro
if (assPeriodoFase) { if (assPeriodoFase) {
@@ -594,7 +597,7 @@ public class ProductionBusinessLogic {
ordR.setDataCons(dataConsDist); ordR.setDataCons(dataConsDist);
} }
if (mp.getFlagPri().equalsIgnoreCase("S")) { if (UtilityString.equalsIgnoreCase(mp.getFlagPri(),"S")) {
sql = sql =
Query.format( Query.format(
"SELECT CAST(count(*) as BIT) FROM jtb_cicl WHERE cod_prod = " + UtilityDB.valueToString(mp.getCodMart()) + " WHERE IsNull(cod_jfas) <> %s", "SELECT CAST(count(*) as BIT) FROM jtb_cicl WHERE cod_prod = " + UtilityDB.valueToString(mp.getCodMart()) + " WHERE IsNull(cod_jfas) <> %s",
@@ -605,7 +608,9 @@ public class ProductionBusinessLogic {
if (isSameLav) if (isSameLav)
ordR.setNumFase(numFase + mp.getNumFase()); ordR.setNumFase(numFase + mp.getNumFase());
else else
ordR.setNumFase(numFase); ordR.setNumFase(numFase);
numFaseOld = numFase;
ordT.addDtbOrdr(ordR); ordT.addDtbOrdr(ordR);
} }
@@ -613,288 +618,298 @@ public class ProductionBusinessLogic {
// ------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------
// SE L'ORDINE E' GIà ESISTENTE E CI SONO DEI FILES ALLEGATI ALLORA VENGONO AGGANCIATI // SE L'ORDINE E' GIà ESISTENTE E CI SONO DEI FILES ALLEGATI ALLORA VENGONO AGGANCIATI
// ------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------
if (existOrd) { // if (existOrd) {
sql = "select id_attach " + // sql = "select id_attach " +
"from drl_ord_attached " + // "from drl_ord_attached " +
" where gestione = " + UtilityDB.valueToString(ordT.getGestione()) + " AND " + // " where gestione = " + UtilityDB.valueToString(ordT.getGestione()) + " AND " +
" data_ord = " + UtilityDB.valueDateToString(ordT.getDataOrd(), CommonConstants.DATE_FORMAT_YMD) + " and " + // " data_ord = " + UtilityDB.valueDateToString(ordT.getDataOrd(), CommonConstants.DATE_FORMAT_YMD) + " and " +
" num_ord = " + UtilityDB.valueToString(ordT.getNumOrd()); // " num_ord = " + UtilityDB.valueToString(ordT.getNumOrd());
ps = conn.prepareStatement(sql); // ps = conn.prepareStatement(sql);
rs = ps.executeQuery(); // rs = ps.executeQuery();
while (rs.next()) { // while (rs.next()) {
String idAttach = rs.getString(1); // String idAttach = rs.getString(1);
DrlOrdAttached ordAttacched = new DrlOrdAttached(); // DrlOrdAttached ordAttacched = new DrlOrdAttached();
ordAttacched.setOperation(OperationType.INSERT); // ordAttacched.setOperation(OperationType.INSERT);
ordAttacched.setIdAttach(idAttach); // ordAttacched.setIdAttach(idAttach);
ordT.getDrlOrdAttached().add(ordAttacched); // ordT.getDrlOrdAttached().add(ordAttacched);
} // }
rs.close(); // rs.close();
ps.close(); // ps.close();
} // }
if (!isSameLav) {
// ------------------------------------------------------------------
// ATTIVITA' ASSOCIATE ALLA DISTINTA (RISORSE o STEPS)
// ------------------------------------------------------------------
String qtaProdPRI = "", condFasi = "";
durataFasiPrec = 0;
if (!multiLavorazione) {
condFasi = "(fasParent.cod_jfas_parent IS NOT NULL OR jtb_dist_clav_dir.cod_jfas in ('" + UtilityString.replaceSubString(fasiSel, "|", "','") + "'))";
}
sql = ""; // ------------------------------------------------------------------
columnFaseCicloProdOrd = "jtb_dist_clav_dir.cod_jfas"; // ATTIVITA' ASSOCIATE ALLA DISTINTA (RISORSE o STEPS)
columnFaseParentCicloProdOrd = "cod_jfas_parent "; // ------------------------------------------------------------------
tableCicloProdOrd = ""; addSteps(ordT, conn, activityCicloProd, ordProdSetupDTO, multiLavorazione, fasiSel, cicloProdJson, fasiCicloProdOrdine, codProd, codJfasRow, visCodJfas, untMisProd, qtaProd, rapConv, untMisPRI, rapConvPRI, assPeriodoFase, dataConsDist, dataIniz, dataFine, elencoFasi, pesoInQtaLav);
if (cicloProdJson != null) {
columnFaseCicloProdOrd = "ISNULL(cicloProdOrd.cod_jfas_child, jtb_dist_clav_dir.cod_jfas)";
columnFaseParentCicloProdOrd = "case when cicloProdOrd.cod_jfas IS NULL then cod_jfas_parent else null end ";
tableCicloProdOrd = "left outer join cicloProdOrd on jtb_dist_clav_dir.cod_jfas = cicloProdOrd.cod_jfas and " +
" jtb_dist_clav_dir.num_fase = cicloProdOrd.num_fase ";
sql = " with cicloProdOrd AS (SELECT * FROM (VALUES " + fasiCicloProdOrdine + " ) fasi([num_fase],[cod_jfas],[cod_jfas_child] ))";
}
sql += " SELECT " + columnFaseCicloProdOrd + " as 'cod_jfas', " // ---------------------------------------------------------------------------
+ " jtb_dist_clav_dir.activity_description, " // CONTROLLI DI QUALITA' ASSOCIATI ALLA DISTINTA
+ " jtb_dist_clav_dir.num_fase, " // ---------------------------------------------------------------------------
+ " convert(varchar(8000), jtb_cicl.descrizione) as dati_tecnici, " addControlliQualità(ordT, conn, codProd);
+ " dbo.f_distGetValueType('DD', jtb_dist_clav_dir.duration) as durata, "
+ " " + columnFaseParentCicloProdOrd + " as 'cod_jfas_parent' "
+ " FROM jtb_dist_clav_dir left outer join (select distinct cod_jfas_parent from jtb_fasi where cod_jfas_parent is not null)fasparent ON jtb_dist_clav_dir.cod_jfas = fasParent.cod_jfas_parent " +
tableCicloProdOrd + ", "
+ " jtb_cicl, "
+ " gtb_spes, "
+ " gtb_divi "
+ " WHERE jtb_dist_clav_dir.cod_jcos_dir = gtb_spes.cod_spes AND "
+ " jtb_cicl.cod_prod = jtb_dist_clav_dir.cod_prod AND "
+ " jtb_cicl.cod_divi_cont = gtb_divi.cod_divi AND "
+ " jtb_dist_clav_dir.cod_prod = " + UtilityDB.valueToString(codProd) + " AND "
+ " jtb_dist_clav_dir.cod_jfas IS NOT NULL "
+ "ORDER BY jtb_dist_clav_dir.num_fase ";
sql = UtilityDB.addwhereCond(sql, condFasi, true); // -------------------------------------------------
ps = conn.prepareStatement(sql); // DISEGNI ORDINE DI LAVORAZIONE
rs = ps.executeQuery(); // -------------------------------------------------
BigDecimal rapConvRow = BigDecimal.ONE; // Acquisizione disegni agganciati alla distinta base
String untMisRow = null; addDisegni(ordT, conn, articoli);
while (rs.next()) { }
String codJfas = rs.getString("cod_jfas");
codJfasDist = codJfas;
String activityDescription = rs.getString("activity_description");
Integer numFaseDist = rs.getInt("num_fase");
String datiTecnici = rs.getString("dati_tecnici");
Integer durataFase = rs.getInt("durata");
String codJfasParent = rs.getString("cod_jfas_parent");
BigDecimal qtaProdRow; private static void addSteps(DtbOrdt ordT, Connection conn, List<ActivityCicloProdDTO> activityCicloProd, OrdProdSetupDTO ordProdSetupDTO, boolean multiLavorazione, String fasiSel, String cicloProdJson, String fasiCicloProdOrdine, String codProd, String codJfasRow, boolean visCodJfas, String untMisProd, BigDecimal qtaProd, BigDecimal rapConv, String untMisPRI, BigDecimal rapConvPRI, boolean assPeriodoFase, Date dataConsDist, Date dataIniz, Date dataFine, String[] elencoFasi, boolean pesoInQtaLav) throws Exception {
if (isRoot) { // String columnFaseCicloProdOrd;
// Se il codice della fase della distinta è diverso dal codice fase del ciclo produttivo allora è necessario verificare // String columnFaseParentCicloProdOrd;
// il codice fase del ciclo produttivo ha un codice di equivalenza/relazione associato alla fase specificata dall'utente // ResultSet rs;
// ed in tal caso sostituirlo // PreparedStatement ps;
// La struttura delle fasi dovrebbe essere uguale per i primi 4 caratteri e l'ultimo cambiare (Es.: LAV1 --> IMPA1, COTT1 e l'altra linea LAV2 --> IMPA2, COTT2) // String sql;
String existCodJfasEqui = ordProdSetupDTO.getExistCodJfasEqui(); // String codJfasDist;
if (UtilityString.isNullOrEmpty(existCodJfasEqui)) { // String tableCicloProdOrd;
existCodJfasEqui = "N"; // Integer durataFasiPrec;
} // String qtaProdPRI = "", condFasi = "";
if (existCodJfasEqui.compareTo("S") == 0) { // durataFasiPrec = 0;
sql = "select cod_jfas from jtb_fasi where cod_jfas like left(" + UtilityDB.valueToString(codJfas) + ", 4) + '%' and cod_jfas_parent = " + UtilityDB.valueToString(codJfasRow); //
codJfas = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql); // if (!multiLavorazione) {
} // condFasi = "(fasParent.cod_jfas_parent IS NOT NULL OR jtb_dist_clav_dir.cod_jfas in ('" + UtilityString.replaceSubString(fasiSel, "|", "','") + "'))";
if (visCodJfas) { // }
activityDescription = UtilityString.left("(" + codJfas + ") " + activityDescription, 1024); //
} else { //
activityDescription = UtilityString.left(activityDescription, 1024); // sql = "";
} // columnFaseCicloProdOrd = "jtb_dist_clav_dir.cod_jfas";
untMisRow = untMisProd; // columnFaseParentCicloProdOrd = "cod_jfas_parent ";
qtaProdRow = qtaProd; // tableCicloProdOrd = "";
rapConvRow = rapConv; // if (cicloProdJson != null) {
qtaProdPRI = ""; // columnFaseCicloProdOrd = "ISNULL(cicloProdOrd.cod_jfas_child, jtb_dist_clav_dir.cod_jfas)";
} else { // columnFaseParentCicloProdOrd = "case when cicloProdOrd.cod_jfas IS NULL then cod_jfas_parent else null end ";
untMisRow = untMisPRI; // tableCicloProdOrd = "left outer join cicloProdOrd on jtb_dist_clav_dir.cod_jfas = cicloProdOrd.cod_jfas and " +
qtaProdRow = qtaProd; // " jtb_dist_clav_dir.num_fase = cicloProdOrd.num_fase ";
rapConvRow = rapConvPRI; // sql = " with cicloProdOrd AS (SELECT * FROM (VALUES " + fasiCicloProdOrdine + " ) fasi([num_fase],[cod_jfas],[cod_jfas_child] ))";
qtaProdPRI = " " + untMisPRI + " " + qtaProd.setScale(2, RoundingMode.HALF_UP).toString(); // }
} //
// Calcolo periodo produzione per fase // sql += " SELECT " + columnFaseCicloProdOrd + " as 'cod_jfas', "
if (assPeriodoFase) { // + " jtb_dist_clav_dir.activity_description, "
Calendar cal = Calendar.getInstance(); // + " jtb_dist_clav_dir.num_fase, "
cal.setTime(dataConsDist); // + " convert(varchar(8000), jtb_cicl.descrizione) as dati_tecnici, "
cal.add(Calendar.DATE, durataFasiPrec); // + " dbo.f_distGetValueType('DD', jtb_dist_clav_dir.duration) as durata, "
dataIniz = cal.getTime(); // + " " + columnFaseParentCicloProdOrd + " as 'cod_jfas_parent' "
cal.setTime(dataIniz); // + " FROM jtb_dist_clav_dir left outer join (select distinct cod_jfas_parent from jtb_fasi where cod_jfas_parent is not null)fasparent ON jtb_dist_clav_dir.cod_jfas = fasParent.cod_jfas_parent " +
cal.add(Calendar.DATE, durataFase); // tableCicloProdOrd + ", "
dataFine = cal.getTime(); // + " jtb_cicl, "
durataFasiPrec += durataFase; // + " gtb_spes, "
} // + " gtb_divi "
// + " WHERE jtb_dist_clav_dir.cod_jcos_dir = gtb_spes.cod_spes AND "
// + " jtb_cicl.cod_prod = jtb_dist_clav_dir.cod_prod AND "
// + " jtb_cicl.cod_divi_cont = gtb_divi.cod_divi AND "
// + " jtb_dist_clav_dir.cod_prod = " + UtilityDB.valueToString(codProd) + " AND "
// + " jtb_dist_clav_dir.cod_jfas IS NOT NULL "
// + "ORDER BY jtb_dist_clav_dir.num_fase ";
//
// sql = UtilityDB.addwhereCond(sql, condFasi, true);
// ps = conn.prepareStatement(sql);
// rs = ps.executeQuery();
// BigDecimal rapConvRow = BigDecimal.ONE;
// String untMisRow = null;
// while (rs.next()) {
// String codJfas = rs.getString("cod_jfas");
// codJfasDist = codJfas;
// String activityDescription = rs.getString("activity_description");
// Integer numFaseDist = rs.getInt("num_fase");
// String datiTecnici = rs.getString("dati_tecnici");
// Integer durataFase = rs.getInt("durata");
// String codJfasParent = rs.getString("cod_jfas_parent");
//
// BigDecimal qtaProdRow;
// if (isRoot) {
// // Se il codice della fase della distinta è diverso dal codice fase del ciclo produttivo allora è necessario verificare
// // il codice fase del ciclo produttivo ha un codice di equivalenza/relazione associato alla fase specificata dall'utente
// // ed in tal caso sostituirlo
// // La struttura delle fasi dovrebbe essere uguale per i primi 4 caratteri e l'ultimo cambiare (Es.: LAV1 --> IMPA1, COTT1 e l'altra linea LAV2 --> IMPA2, COTT2)
// String existCodJfasEqui = ordProdSetupDTO.getExistCodJfasEqui();
// if (UtilityString.isNullOrEmpty(existCodJfasEqui)) {
// existCodJfasEqui = "N";
// }
// if (existCodJfasEqui.compareTo("S") == 0) {
// sql = "select cod_jfas from jtb_fasi where cod_jfas like left(" + UtilityDB.valueToString(codJfas) + ", 4) + '%' and cod_jfas_parent = " + UtilityDB.valueToString(codJfasRow);
// codJfas = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
// }
// if (visCodJfas) {
// activityDescription = UtilityString.left("(" + codJfas + ") " + activityDescription, 1024);
// } else {
// activityDescription = UtilityString.left(activityDescription, 1024);
// }
// untMisRow = untMisProd;
// qtaProdRow = qtaProd;
// rapConvRow = rapConv;
// qtaProdPRI = "";
// } else {
// untMisRow = untMisPRI;
// qtaProdRow = qtaProd;
// rapConvRow = rapConvPRI;
// qtaProdPRI = " " + untMisPRI + " " + qtaProd.setScale(2, RoundingMode.HALF_UP).toString();
// }
// // Calcolo periodo produzione per fase
// if (assPeriodoFase) {
// Calendar cal = Calendar.getInstance();
// cal.setTime(dataConsDist);
// cal.add(Calendar.DATE, durataFasiPrec);
// dataIniz = cal.getTime();
// cal.setTime(dataIniz);
// cal.add(Calendar.DATE, durataFase);
// dataFine = cal.getTime();
// durataFasiPrec += durataFase;
// }
//
// String[] elencoFasiAss = null;
// if (multiLavorazione) {
// elencoFasiAss = new String[1];
// elencoFasiAss[0] = codJfas;
// } else {
// // Verifica linee passate dall'utente rispetto a quelle di default presenti sulla distinta
// sql =
// "select count(*) " +
// " from jtb_fasi " +
// " where cod_jfas_parent = " + UtilityDB.valueToString(codJfas);
// Integer isFaseParent = (Integer) QueryRules.getSingleValue(conn, sql);
//
// if (isRoot) {
// if (codJfasParent != null || isFaseParent > 0) {
// elencoFasiAss = elencoFasi;
// } else {
// boolean existFase = false;
// for (int a = 0; a < elencoFasi.length; a++) {
// if (codJfas.compareTo(elencoFasi[a]) == 0) {
// existFase = true;
// break;
// }
// }
// if (!existFase) {
// elencoFasiAss = elencoFasi;
// continue;
// } else {
// elencoFasiAss = new String[1];
// elencoFasiAss[0] = codJfas;
// }
// }
// } else {
// elencoFasiAss = elencoFasi;
// }
// }
//
// BigDecimal qtaLav = BigDecimal.ZERO;
// for (int a = 0; a < elencoFasiAss.length; a++) {
// datiDist.setIdRigaStep(datiDist.getIdRigaStep() + 1);
//
// if (pesoInQtaLav) {
// qtaLav = qtaProd.divide(rapConv, EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP);
// }
//
// // Inserimento riga step nell'ordine di lavorazione
// DtbOrdSteps ordStep =
// new DtbOrdSteps()
// .setCodProdPri(codProd)
// .setIdRiga(datiDist.getIdRigaStep())
// .setCodJfas(elencoFasiAss[a])
// .setDescrizioneAttivita(activityDescription + qtaProdPRI)
// .setQtaProd(qtaProdRow.divide(rapConv, EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP))
// .setQtaLav(qtaLav)
// .setUntMisLav(untMisRow)
// .setRapConvLav(rapConvRow);
//
// ordStep.setOperation(OperationType.INSERT);
// if (isRoot) {
// ordStep.setNumFase(numFaseDist + datiDist.getNumFase());
// } else {
// if (datiDist.getIdRigaStep() > 1) {
// datiDist.setNumFase(datiDist.getNumFase() + 1);
// }
// ordStep.setNumFase(datiDist.getNumFase());
// }
// if (assPeriodoFase) {
// ordStep.setDataIniz(dataIniz)
// .setDataFine(dataFine);
// }
// ordStep.setNote(datiTecnici);
//
// // Acquisizione ID Attività associato al processo padre
// if (activityCicloProd.size() != 0) {
// for (int i = 0; i < activityCicloProd.size(); i++) {
// if (activityCicloProd.get(i).getNumFase() == numFaseDist) {
// ordStep.setActivityId(activityCicloProd.get(i).getActivityID());
// }
// }
// }
// ordT.getDtbOrdSteps().add(ordStep);
// }
// }
// rs.close();
// ps.close();
}
String[] elencoFasiAss = null; private static void addControlliQualità(DtbOrdt ordT, Connection conn, String codProd) throws SQLException {
if (multiLavorazione) { // PreparedStatement ps;
elencoFasiAss = new String[1]; // ResultSet rs;
elencoFasiAss[0] = codJfas; // String sql;
} else { // sql =
// Verifica linee passate dall'utente rispetto a quelle di default presenti sulla distinta // "SELECT jtb_cicl_cq.num_fase, "
sql = // + " jtb_cicl_cq.controllo, "
"select count(*) " + // + " jtb_cicl_cq.valore_rif, "
" from jtb_fasi " + // + " jtb_cicl_cq.num_rip, "
" where cod_jfas_parent = " + UtilityDB.valueToString(codJfas); // + " jtb_cicl_cq.tipologia "
Integer isFaseParent = (Integer) QueryRules.getSingleValue(conn, sql); // + "FROM jtb_cicl_cq "
// + "WHERE jtb_cicl_cq.cod_prod = " + UtilityDB.valueToString(codProd) + " "
// + "ORDER BY jtb_cicl_cq.id_riga ";
// ps = conn.prepareStatement(sql);
// rs = ps.executeQuery();
// while (rs.next()) {
// int numFase = rs.getInt("num_fase");
// String controllo = rs.getString("controllo");
// String valoreRif = rs.getString("valore_rif");
// int numRip = rs.getInt("num_rip");
// String tipologia = rs.getString("tipologia");
// datiDist.setIdRigaContrCQ(datiDist.getIdRigaContrCQ() + 1);
//
// // Inserimento controllo di qualità nell'ordine di lavorazione
// DtbOrdCq ordCQ = new DtbOrdCq();
// ordCQ.setOperation(OperationType.INSERT);
// ordCQ.setIdRiga(datiDist.getIdRigaContrCQ());
// ordCQ.setControllo(controllo);
// ordCQ.setValoreRif(valoreRif);
// ordCQ.setNumRip(numRip);
// ordCQ.setNumFase(numFase);
// ordCQ.setTipologia(tipologia);
// if (isRoot) {
// ordCQ.setNumFase(numFase + datiDist.getNumFase());
// } else {
// ordCQ.setNumFase(numFase);
// }
// if (numFase == 0) {
// ordCQ.setNumFase(numFase);
// }
// ordT.getDtbOrdCq().add(ordCQ);
// }
// rs.close();
// ps.close();
}
if (isRoot) { private static void addDisegni(DtbOrdt ordT, Connection conn, List<String> elencoArticoli) throws SQLException {
if (codJfasParent != null || isFaseParent > 0) { String sql =
elencoFasiAss = elencoFasi; " SELECT DISTINCT cod_disegno "
} else { + " FROM jrl_cicl_disegni "
boolean existFase = false; + "WHERE cod_prod IN " + UtilityDB.listValueToString(elencoArticoli) + " " + "ORDER BY cod_disegno ";
for (int a = 0; a < elencoFasi.length; a++) {
if (codJfas.compareTo(elencoFasi[a]) == 0) {
existFase = true;
break;
}
}
if (!existFase) {
elencoFasiAss = elencoFasi;
continue;
} else {
elencoFasiAss = new String[1];
elencoFasiAss[0] = codJfas;
}
}
} else {
elencoFasiAss = elencoFasi;
}
}
BigDecimal qtaLav = BigDecimal.ZERO; List<String> disegni = UtilityDB.executeSimpleQueryOnlyFirstColumn(conn, sql);
for (int a = 0; a < elencoFasiAss.length; a++) {
datiDist.setIdRigaStep(datiDist.getIdRigaStep() + 1);
if (pesoInQtaLav) { AtomicInteger index = new AtomicInteger();
qtaLav = qtaProd.divide(rapConv, EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP); List<JrlDisOrd> jrlDisOrd = disegni.stream().map(x -> {
} JrlDisOrd disOrd =
new JrlDisOrd()
.setCodDisegno(x)
.setQta(BigDecimal.ONE)
.setRigaOrd(index.getAndIncrement());
return disOrd;
}).collect(Collectors.toList());
// Inserimento riga step nell'ordine di lavorazione if (jrlDisOrd != null && jrlDisOrd.size() > 0 )
DtbOrdSteps ordStep = ordT.setJrlDisOrd(jrlDisOrd);
new DtbOrdSteps()
.setCodProdPri(codProd)
.setIdRiga(datiDist.getIdRigaStep())
.setCodJfas(elencoFasiAss[a])
.setDescrizioneAttivita(activityDescription + qtaProdPRI)
.setQtaProd(qtaProdRow.divide(rapConv, EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP))
.setQtaLav(qtaLav)
.setUntMisLav(untMisRow)
.setRapConvLav(rapConvRow);
ordStep.setOperation(OperationType.INSERT);
if (isRoot) {
ordStep.setNumFase(numFaseDist + datiDist.getNumFase());
} else {
if (datiDist.getIdRigaStep() > 1) {
datiDist.setNumFase(datiDist.getNumFase() + 1);
}
ordStep.setNumFase(datiDist.getNumFase());
}
if (assPeriodoFase) {
ordStep.setDataIniz(dataIniz)
.setDataFine(dataFine);
}
ordStep.setNote(datiTecnici);
// Acquisizione ID Attività associato al processo padre
if (activityCicloProd.size() != 0) {
for (int i = 0; i < activityCicloProd.size(); i++) {
if (activityCicloProd.get(i).getNumFase() == numFaseDist) {
ordStep.setActivityId(activityCicloProd.get(i).getActivityID());
}
}
}
ordT.getDtbOrdSteps().add(ordStep);
}
}
rs.close();
ps.close();
// ---------------------------------------------------------------------------
// CONTROLLI DI QUALITA' ASSOCIATI ALLA DISTINTA
// ---------------------------------------------------------------------------
sql =
"SELECT jtb_cicl_cq.num_fase, "
+ " jtb_cicl_cq.controllo, "
+ " jtb_cicl_cq.valore_rif, "
+ " jtb_cicl_cq.num_rip, "
+ " jtb_cicl_cq.tipologia "
+ "FROM jtb_cicl_cq "
+ "WHERE jtb_cicl_cq.cod_prod = " + UtilityDB.valueToString(codProd) + " "
+ "ORDER BY jtb_cicl_cq.id_riga ";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
int numFase = rs.getInt("num_fase");
String controllo = rs.getString("controllo");
String valoreRif = rs.getString("valore_rif");
int numRip = rs.getInt("num_rip");
String tipologia = rs.getString("tipologia");
datiDist.setIdRigaContrCQ(datiDist.getIdRigaContrCQ() + 1);
// Inserimento controllo di qualità nell'ordine di lavorazione
DtbOrdCq ordCQ = new DtbOrdCq();
ordCQ.setOperation(OperationType.INSERT);
ordCQ.setIdRiga(datiDist.getIdRigaContrCQ());
ordCQ.setControllo(controllo);
ordCQ.setValoreRif(valoreRif);
ordCQ.setNumRip(numRip);
ordCQ.setNumFase(numFase);
ordCQ.setTipologia(tipologia);
if (isRoot) {
ordCQ.setNumFase(numFase + datiDist.getNumFase());
} else {
ordCQ.setNumFase(numFase);
}
if (numFase == 0) {
ordCQ.setNumFase(numFase);
}
ordT.getDtbOrdCq().add(ordCQ);
//((DtbOrdr) dtbOrdr).getOrdLav().getDtbOrdCq().add(ordCQ);
}
rs.close();
ps.close();
// -------------------------------------------------
// DISEGNI ORDINE DI LAVORAZIONE
// -------------------------------------------------
// Acquisizione disegni agganciati alla distinta base
int index = 0;
sql =
" SELECT cod_disegno "
+ " FROM jrl_cicl_disegni "
+ "WHERE cod_prod = " + UtilityDB.valueToString(codProd) + " " + "ORDER BY cod_disegno ";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
String codDisegno = rs.getString("cod_disegno");
index++;
// Inserimento disegno nell'ordine di lavorazione se non già
// presente
boolean existDisegno = false;
for (JrlDisOrd jrlDisOrd : ordT.getJrlDisOrd()) {
if (jrlDisOrd.getCodDisegno().equals(codDisegno)) {
existDisegno = true;
}
}
if (!existDisegno) {
JrlDisOrd disOrd = new JrlDisOrd();
disOrd.setOperation(OperationType.INSERT);
disOrd.setCodDisegno(codDisegno);
disOrd.setQta(BigDecimal.ONE);
disOrd.setRigaOrd(index);
ordT.getJrlDisOrd().add(disOrd);
}
}
rs.close();
ps.close();
}
} }
private static String createTempTableProdotti(Connection conn, List<ElencoProdDTO> elencoProd) throws SQLException { private static String createTempTableProdotti(Connection conn, List<ElencoProdDTO> elencoProd) throws SQLException {

View File

@@ -52,47 +52,53 @@ public class JrlDisOrd extends EntityBase {
return codDisegno; return codDisegno;
} }
public void setCodDisegno(String codDisegno) { public JrlDisOrd setCodDisegno(String codDisegno) {
this.codDisegno = codDisegno; this.codDisegno = codDisegno;
return this;
} }
public Date getDataOrd() { public Date getDataOrd() {
return dataOrd; return dataOrd;
} }
public void setDataOrd(Date dataOrd) { public JrlDisOrd setDataOrd(Date dataOrd) {
this.dataOrd = dataOrd; this.dataOrd = dataOrd;
return this;
} }
public String getGestione() { public String getGestione() {
return gestione; return gestione;
} }
public void setGestione(String gestione) { public JrlDisOrd setGestione(String gestione) {
this.gestione = gestione; this.gestione = gestione;
return this;
} }
public Integer getNumOrd() { public Integer getNumOrd() {
return numOrd; return numOrd;
} }
public void setNumOrd(Integer numOrd) { public JrlDisOrd setNumOrd(Integer numOrd) {
this.numOrd = numOrd; this.numOrd = numOrd;
return this;
} }
public Integer getRigaOrd() { public Integer getRigaOrd() {
return rigaOrd; return rigaOrd;
} }
public void setRigaOrd(Integer rigaOrd) { public JrlDisOrd setRigaOrd(Integer rigaOrd) {
this.rigaOrd = rigaOrd; this.rigaOrd = rigaOrd;
return this;
} }
public BigDecimal getQta() { public BigDecimal getQta() {
return qta; return qta;
} }
public void setQta(BigDecimal qta) { public JrlDisOrd setQta(BigDecimal qta) {
this.qta = qta; this.qta = qta;
return this;
} }
} }