From 163f58fec98fb2cd9770d2070fbb4236f89969ea Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Tue, 12 Jul 2016 18:36:55 +0200 Subject: [PATCH] altri avanzamenti x gestione file prod NON completo, non va ma appuntato codice come DOVREBBE ragionare... --- MTC_Sim/MTC_Sim/AdapterESA.cs | 65 ++++++++++++++++++++++++++---- MTC_Sim/MTC_Sim/MTC-Adapter.csproj | 4 +- MTC_Sim/MTC_Sim/utils.cs | 35 ++++++++++++---- 3 files changed, 88 insertions(+), 16 deletions(-) diff --git a/MTC_Sim/MTC_Sim/AdapterESA.cs b/MTC_Sim/MTC_Sim/AdapterESA.cs index 360439c..7086f24 100644 --- a/MTC_Sim/MTC_Sim/AdapterESA.cs +++ b/MTC_Sim/MTC_Sim/AdapterESA.cs @@ -242,15 +242,66 @@ namespace MTC_Adapter // ora trimmo vettore al solo numero VERO degli allarmi caricati... Array.Resize(ref elencoDatiProdNew, rumRiga); - // ora devo verificare il contenuto rispetto ai "vecchi" valori... + // !!!FARE!!! (ri-fare) + + // ora devo verificare il contenuto rispetto ai "vecchi" valori... conto numero righe (devono essere diverse o uguali e ultima riga con qta differente e pari cod PRG...) + int nRecCur = 0; + if (elencoDatiProd != null) + { + try + { + nRecCur = elencoDatiProd.Length; + } + catch + { } + } + int nRecIst = 0; + if (elencoDatiProdNew != null) + { + try + { + nRecCur = elencoDatiProdNew.Length; + } + catch + { } + } + // in primis devo verificare che sia > 0 num oggetti su entrambi i vettori + + // se vett curr è nullo --> devo inizializzare + + // se NONE' nullo devo confrontare ULTIMO record Curr con equivalente record NEW x verificare se sia variato + + // se ultimo curr === corrispondente new DEVO aggiungere 1 riga + + // riporto comunque ultima riga del vettore CURR (sia perché variato sia perché aggiunto) +#if false + + + + bool checkNumRow = nRecCur != nRecIst; + bool checkPart = elencoDatiProd[nRecCur - 1].fileName != elencoDatiProdNew[nRecIst - 1].fileName; + bool checkQta = elencoDatiProd[nRecCur - 1].qta != elencoDatiProdNew[nRecIst - 1].qta; // se differiscono processo - - // CARICO IN ARCHIVIO il primo dei NUOVI particolari coi suoi pezzi prodotti - - // lo invio tramite adapter - - // al prossimo giro caricherà altro particolare... + if (checkNumRow || checkPart || (!checkPart && checkQta)) + { + // CARICO IN vettore IST il primo dei NUOVI particolari coi suoi pezzi prodotti + istPathPartId[0] = elencoDatiProdNew[nRecIst - 1].fileName; + istPathPartCount[0] = Convert.ToUInt32(elencoDatiProdNew[nRecIst - 1].qta); + // aggiorno ultima riga (son diverse x numeri righe...) + if (checkNumRow) + { + Array.Resize(ref elencoDatiProd, nRecCur + 1); + elencoDatiProd[nRecCur + 1] = elencoDatiProdNew[nRecCur + 1]; + } + //... aggiorno ultima riga dati... + else + { + elencoDatiProd[nRecCur] = elencoDatiProdNew[nRecCur]; + } + // al prossimo giro caricherà altro particolare... + } +#endif } /// /// Processo stti macchina... diff --git a/MTC_Sim/MTC_Sim/MTC-Adapter.csproj b/MTC_Sim/MTC_Sim/MTC-Adapter.csproj index f7e6751..8d7385c 100644 --- a/MTC_Sim/MTC_Sim/MTC-Adapter.csproj +++ b/MTC_Sim/MTC_Sim/MTC-Adapter.csproj @@ -199,7 +199,9 @@ Always - + + Always + diff --git a/MTC_Sim/MTC_Sim/utils.cs b/MTC_Sim/MTC_Sim/utils.cs index a482e7c..87a3f89 100644 --- a/MTC_Sim/MTC_Sim/utils.cs +++ b/MTC_Sim/MTC_Sim/utils.cs @@ -270,7 +270,7 @@ namespace MTC_Adapter for (int i = 0; i < results.Count; i++) { // se il codice è quello cercato... - if(results[i].codCall==codice) indice = i; + if (results[i].codCall == codice) indice = i; } // se c'è aggiorno... if (indice >= 0) @@ -457,7 +457,6 @@ namespace MTC_Adapter public TimeSpan tTot; public int qta; public TimeSpan tMed; - public string descrizione; public datiProdSCM() { area = ""; @@ -469,14 +468,34 @@ namespace MTC_Adapter tTot = new TimeSpan(0); qta = 0; tMed = new TimeSpan(0); - descrizione = ""; } - public datiProdSCM(string[] valoriRow) + /// + /// crea un nuovo oggetto a partire da un array di stringhe + /// + /// + public datiProdSCM(string[] valori) { - area = _codNum; - fileName = _gruppo; - dimensioni = _livello; - descrizione = _descrizione; + try + { + area = valori[0]; + fileName = valori[1]; + dimensioni = string.Format("{0}x{1}x{2}", valori[3], valori[4], valori[5]); + start = DateTime.Today.AddHours(Convert.ToInt16(valori[6])).AddMinutes(Convert.ToInt16(valori[7])).AddSeconds(Convert.ToInt16(valori[8])); + + stop = DateTime.Today.AddHours(Convert.ToInt16(valori[9])).AddMinutes(Convert.ToInt16(valori[10])).AddSeconds(Convert.ToInt16(valori[11])); + // se ore == 0 --> aggiungo 1 gg!!! + if (Convert.ToInt16(valori[9]) == 0) stop.AddDays(1); + + tEff = new TimeSpan(Convert.ToInt16(valori[12]), Convert.ToInt16(valori[13]), Convert.ToInt16(valori[14])); + + tTot = new TimeSpan(Convert.ToInt16(valori[15]), Convert.ToInt16(valori[16]), Convert.ToInt16(valori[17])); + + qta = Convert.ToInt16(valori[18]); + + tMed = new TimeSpan(Convert.ToInt16(valori[19]), Convert.ToInt16(valori[20]), Convert.ToInt16(valori[22]), Convert.ToInt16(valori[23])); + } + catch + { } } } ///