Fix metodi recupero ODL da MP/IO
This commit is contained in:
Generated
+1911
-1911
File diff suppressed because it is too large
Load Diff
+51
-4
@@ -1489,18 +1489,64 @@ namespace MapoDb
|
||||
memLayer.ML.resetRCnt(mHash("COUNT:pCall:getCounterTC"));
|
||||
}
|
||||
}
|
||||
// variabile x controllo dati recuperati
|
||||
DS_ProdTempi.StatoProdDataTable datiProdAct = null;
|
||||
bool odlFound = false;
|
||||
int taSP_ms_ant = memLayer.ML.cdvi("taStatoProd_ms_anticipo");
|
||||
DateTime dataRif = DateTime.Now.AddMilliseconds(-taSP_ms_ant);
|
||||
odlFound = getStatoProd(idxMacchina, ref datiProdAct, dataRif);
|
||||
// se NON avesse recuperato --> aspetto taSP_ms_ant e poi RICHIAMO procedura...
|
||||
int maxTry = 3;
|
||||
while (!odlFound && maxTry > 0)
|
||||
{
|
||||
logger.lg.scriviLog(string.Format("[pzCounterTC] Impossibile recuperare dati ODL x idxMacchina {0}", idxMacchina), tipoLog.ERROR);
|
||||
// sleep...
|
||||
System.Threading.Thread.Sleep(taSP_ms_ant);
|
||||
// riprovo lettura...
|
||||
odlFound = getStatoProd(idxMacchina, ref datiProdAct, dataRif);
|
||||
maxTry--;
|
||||
}
|
||||
|
||||
// ora proseguo SE ho trovato i dati...
|
||||
if (odlFound)
|
||||
{
|
||||
// ...a questo punto recupero DAVVERO i dati (o almeno ci provo...)
|
||||
try
|
||||
{
|
||||
// controllo
|
||||
answ = datiProdAct[0].PzTotODL;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog(string.Format("[pzCounterTC] Eccezione in recupero PzTotODL x idxMacchina {0}{1}{2}", idxMacchina, Environment.NewLine, exc), tipoLog.EXCEPTION);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.lg.scriviLog(string.Format("[pzCounterTC] Dati ODL x idxMacchina {0} non recuperati dopo tentativi reiterati...", idxMacchina), tipoLog.ERROR);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Recupero dati stato prod da macchina...
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <param name="datiProdAct"></param>
|
||||
/// <param name="dataRif"></param>
|
||||
/// <returns></returns>
|
||||
private static bool getStatoProd(string idxMacchina, ref DS_ProdTempi.StatoProdDataTable datiProdAct, DateTime dataRif)
|
||||
{
|
||||
bool answ = false;
|
||||
try
|
||||
{
|
||||
// recupero con stored NUOVA...
|
||||
int taSP_ms_ant = memLayer.ML.cdvi("taStatoProd_ms_anticipo");
|
||||
DateTime dataRif = DateTime.Now.AddMilliseconds(-taSP_ms_ant);
|
||||
var datiProdAct = DataLayer.obj.taStatoProd.GetData(idxMacchina, dataRif);
|
||||
datiProdAct = DataLayer.obj.taStatoProd.GetData(idxMacchina, dataRif);
|
||||
if (datiProdAct.Rows.Count > 0)
|
||||
{
|
||||
// solo SE ho idxODL (altrimenti loggo errore)
|
||||
if (datiProdAct[0].IdxOdl > 0)
|
||||
{
|
||||
answ = datiProdAct[0].PzTotODL;
|
||||
answ = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1519,6 +1565,7 @@ namespace MapoDb
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce il contapezzi salvato per la macchina
|
||||
/// </summary>
|
||||
|
||||
+11
-1
@@ -423,19 +423,29 @@ namespace MapoDb
|
||||
{
|
||||
string answ = "";
|
||||
// recupero con stored NUOVA...
|
||||
var tabOdl = DataLayer.obj.taODL.getByMacchina(idxMacchina);
|
||||
DS_ProdTempi.ODLDataTable tabOdl = DataLayer.obj.taODL.getByMacchina(idxMacchina);
|
||||
if (tabOdl.Rows.Count > 0)
|
||||
{
|
||||
// solo SE ho idxODL (altrimenti loggo errore)
|
||||
if (tabOdl[0].IdxODL > 0)
|
||||
{
|
||||
answ = tabOdl[0].IdxODL.ToString();
|
||||
answ = answ == "" ? "0" : answ;
|
||||
}
|
||||
else
|
||||
{
|
||||
answ = "0";
|
||||
logger.lg.scriviLog("[currODL] Errore in currODL x idxMacchina " + idxMacchina + ": IdxODL = 0");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// se è empty --> 0!!!
|
||||
answ = "0";
|
||||
}
|
||||
// ultimo controllo su idxOdl...
|
||||
answ = answ == "" ? "0" : answ;
|
||||
// restituisco!
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user