diff --git a/MP-TAB3/Components/OdlMan.razor.cs b/MP-TAB3/Components/OdlMan.razor.cs
index 2535685a..35b6523e 100644
--- a/MP-TAB3/Components/OdlMan.razor.cs
+++ b/MP-TAB3/Components/OdlMan.razor.cs
@@ -277,7 +277,8 @@ namespace MP_TAB3.Components
await advStep(currStep++);
// processo x macchina selezionata
- await TabDServ.OdlFineProd(idxODLCurr, IdxMaccSel);
+ await TabDServ.OdlFineProd(idxODLCurr, IdxMaccSel, DateTime.Now);
+ await Task.Delay(50);
await advStep(currStep++);
string evText = "Registrata ANNULLAMENTO ATTREZZAGGIO per ODL {0}";
@@ -296,7 +297,8 @@ namespace MP_TAB3.Components
sb.AppendLine("---");
var tabOdlAltra = await TabDServ.OdlCurrByMacc(idxMaccAltraTav, true);
int idxOdlAltra = tabOdlAltra.IdxOdl;
- await TabDServ.OdlFineProd(idxOdlAltra, idxMaccAltraTav);
+ await Task.Delay(50);
+ await TabDServ.OdlFineProd(idxOdlAltra, idxMaccAltraTav, DateTime.Now);
sb.AppendLine(String.Format(evText, idxOdlAltra));
await processaEvento(idxMaccAltraTav, idxEvento, String.Format(evText, idxOdlAltra), idxOdlAltra);
@@ -706,7 +708,8 @@ namespace MP_TAB3.Components
if (idxOdlAltra > 0)
{
sb.AppendLine("---");
- await TabDServ.OdlFineProd(idxOdlAltra, idxMaccAltraTav);
+ await TabDServ.OdlFineProd(idxOdlAltra, idxMaccAltraTav, DateTime.Now);
+ await Task.Delay(50);
evText = $"Registrato inizio attrezzaggio per ODL {idxOdlAltra} (setup seconda tavola)";
sb.AppendLine(evText);
await processaEvento(idxMaccAltraTav, idxEvento, evText, idxOdlAltra);
@@ -849,7 +852,8 @@ namespace MP_TAB3.Components
try
{
// processo x macchina selezionata
- await TabDServ.OdlFineProd(idxODLCurr, IdxMaccSel);
+ await TabDServ.OdlFineProd(idxODLCurr, IdxMaccSel, DateTime.Now);
+ await Task.Delay(50);
string evText = "Registrata fine produzione per ODL {0}";
StringBuilder sb = new StringBuilder();
sb.AppendLine(String.Format(evText, idxODLCurr));
@@ -861,7 +865,8 @@ namespace MP_TAB3.Components
sb.AppendLine("---");
var tabOdlAltra = await TabDServ.OdlCurrByMacc(idxMaccAltraTav, true);
int idxOdlAltra = tabOdlAltra.IdxOdl;
- await TabDServ.OdlFineProd(idxOdlAltra, idxMaccAltraTav);
+ await TabDServ.OdlFineProd(idxOdlAltra, idxMaccAltraTav, DateTime.Now);
+ await Task.Delay(50);
sb.AppendLine(String.Format(evText, idxOdlAltra));
await processaEvento(idxMaccAltraTav, idxEvento, String.Format(evText, idxOdlAltra), idxOdlAltra);
}
@@ -1202,10 +1207,12 @@ namespace MP_TAB3.Components
private bool approvTCEnabled = false;
private bool confRett = true;
private double currVal = 0;
+
///
/// Tempo di delay x simulare cambio idxMaccSub
///
private int delayUpd = 1000;
+
private List emailAdmDest = new List();
private bool enableAnnullaSetup = false;
diff --git a/MP-TAB3/MP-TAB3.csproj b/MP-TAB3/MP-TAB3.csproj
index db9146d1..a7305a47 100644
--- a/MP-TAB3/MP-TAB3.csproj
+++ b/MP-TAB3/MP-TAB3.csproj
@@ -3,7 +3,7 @@
net6.0
enable
- 6.16.2509.917
+ 6.16.2509.1015
enable
MP_TAB3
diff --git a/MP-TAB3/Resources/ChangeLog.html b/MP-TAB3/Resources/ChangeLog.html
index 5853e646..b1b9f217 100644
--- a/MP-TAB3/Resources/ChangeLog.html
+++ b/MP-TAB3/Resources/ChangeLog.html
@@ -1,6 +1,6 @@
Modulo MAPOSPEC
- Versione: 6.16.2509.917
+ Versione: 6.16.2509.1015
Note di rilascio:
-
diff --git a/MP-TAB3/Resources/VersNum.txt b/MP-TAB3/Resources/VersNum.txt
index f8cbadf0..a8436916 100644
--- a/MP-TAB3/Resources/VersNum.txt
+++ b/MP-TAB3/Resources/VersNum.txt
@@ -1 +1 @@
-6.16.2509.917
+6.16.2509.1015
diff --git a/MP-TAB3/Resources/manifest.xml b/MP-TAB3/Resources/manifest.xml
index 1134051c..046ec27d 100644
--- a/MP-TAB3/Resources/manifest.xml
+++ b/MP-TAB3/Resources/manifest.xml
@@ -1,6 +1,6 @@
-
- 6.16.2509.917
+ 6.16.2509.1015
https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/MP-TAB3.zip
https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/ChangeLog.html
false
diff --git a/MP.Data/Controllers/MpTabController.cs b/MP.Data/Controllers/MpTabController.cs
index 3624e8e2..4975a126 100644
--- a/MP.Data/Controllers/MpTabController.cs
+++ b/MP.Data/Controllers/MpTabController.cs
@@ -509,6 +509,27 @@ namespace MP.Data.Controllers
_configuration = null;
}
+ ///
+ /// Restituisce elenco RC filtrato
+ ///
+ ///
+ ///
+ ///
+ ///
+ public List ElencoConfProdFilt(string idxMacchina, DateTime dataFrom, DateTime dataTo)
+ {
+ List dbResult = new List();
+ using (var dbCtx = new MoonProContext(_configuration))
+ {
+ dbResult = dbCtx
+ .DbSetElConfProd
+ .Where(x => x.IdxMacchina == idxMacchina && (dataFrom <= x.DataOraConf && x.DataOraConf <= dataTo))
+ .AsNoTracking()
+ .ToList();
+ }
+ return dbResult;
+ }
+
///
/// Fix ODL per Elenco Lotti
///
@@ -1200,8 +1221,9 @@ namespace MP.Data.Controllers
///
///
///
+ ///
///
- public bool OdlFineProd(int idxODL, string idxMacchina)
+ public bool OdlFineProd(int idxODL, string idxMacchina, DateTime dtRif)
{
bool fatto = false;
using (var dbCtx = new MoonProContext(_configuration))
@@ -1210,9 +1232,10 @@ namespace MP.Data.Controllers
{
var IdxODL = new SqlParameter("@IdxODL", idxODL);
var IdxMacc = new SqlParameter("@IdxMacchina", idxMacchina);
+ var DataChiusura = new SqlParameter("@DataChiusura", dtRif);
var result = dbCtx
.Database
- .ExecuteSqlRaw("EXEC stp_ODL_fineProd @IdxODL, @IdxMacchina", IdxODL, IdxMacc);
+ .ExecuteSqlRaw("EXEC stp_ODL_fineProd @IdxODL, @IdxMacchina, @DataChiusura", IdxODL, IdxMacc, DataChiusura);
fatto = result != 0;
}
catch (Exception exc)
@@ -1717,29 +1740,6 @@ namespace MP.Data.Controllers
return dbResult;
}
- ///
- /// Restituisce elenco RC filtrato
- ///
- ///
- ///
- ///
- ///
- public List ElencoConfProdFilt(string idxMacchina, DateTime dataFrom, DateTime dataTo)
- {
- List dbResult = new List();
- using (var dbCtx = new MoonProContext(_configuration))
- {
- dbResult = dbCtx
- .DbSetElConfProd
- .Where (x => x.IdxMacchina== idxMacchina && (dataFrom <= x.DataOraConf && x.DataOraConf <= dataTo))
- .AsNoTracking()
- .ToList();
- }
- return dbResult;
- }
-
-
-
///
/// Registra controllo
///
diff --git a/MP.Data/Services/TabDataService.cs b/MP.Data/Services/TabDataService.cs
index 54c445b5..e344431a 100644
--- a/MP.Data/Services/TabDataService.cs
+++ b/MP.Data/Services/TabDataService.cs
@@ -653,28 +653,43 @@ namespace MP.Data.Services
return SteamCrypto.DecryptString(encData, Constants.passPhrase);
}
- private bool _disposed = false;
- protected override void Dispose(bool disposing)
+ ///
+ /// Restituisce elenco ElencoConfermeProd filtrato e async
+ ///
+ ///
+ ///
+ ///
+ ///
+ public async Task
> ElencoConfProdFiltAsync(string idxMacchina, DateTime dataFrom, DateTime dataTo)
{
- if (!_disposed)
+ // setup parametri costanti
+ string source = "DB";
+ Stopwatch sw = new Stopwatch();
+ sw.Start();
+ List result = new List();
+ // cerco in redisConn...
+ string currKey = $"{redisBaseKey}:ElConfProd:{idxMacchina}:{dataFrom:yyyyyMMdd-HHmm}:{dataFrom:yyyyyMMdd-HHmm}";
+ RedisValue rawData = await redisDb.StringGetAsync(currKey);
+ if (rawData.HasValue)
{
- if (disposing)
- {
- // Free managed resources here
- dbTabController.Dispose();
- dbIocController.Dispose();
- dbInveController.Dispose();
- CurrConfig.Clear();
- connStrParams.Clear();
- esCollect.Dispose();
- }
-
- // Free unmanaged resources here
- _disposed = true;
+ result = JsonConvert.DeserializeObject>($"{rawData}") ?? new List();
+ source = "REDIS";
}
-
- // Call base class implementation.
- base.Dispose(disposing);
+ else
+ {
+ result = dbTabController.ElencoConfProdFilt(idxMacchina, dataFrom, dataTo);
+ // serializzo e salvo...
+ rawData = JsonConvert.SerializeObject(result);
+ await redisDb.StringSetAsync(currKey, rawData, UltraLongCache);
+ }
+ sw.Stop();
+ string callName = $"ElencoConfProdFiltAsync.{source}";
+ int numRec = esCollect.RecordCall(callName, sw.Elapsed.TotalMilliseconds);
+ if (numRec >= nRecLog)
+ {
+ Log.Debug(esCollect.GetCallSum(callName, true));
+ }
+ return result;
}
///
@@ -1867,19 +1882,20 @@ namespace MP.Data.Services
///
///
///
+ ///
///
- public async Task OdlFineProd(int idxODL, string idxMacchina)
+ public async Task OdlFineProd(int idxODL, string idxMacchina, DateTime dtRif)
{
bool answ = false;
try
{
// inserisco evento
- answ = dbTabController.OdlFineProd(idxODL, idxMacchina);
+ answ = dbTabController.OdlFineProd(idxODL, idxMacchina, dtRif);
await FlushOdlCache();
}
catch (Exception exc)
{
- string logMsg = $"Eccezione in OdlFineProd | idxODL: {idxODL} | idxMacchina: {idxMacchina}{Environment.NewLine}{exc}";
+ string logMsg = $"Eccezione in OdlFineProd | idxODL: {idxODL} | idxMacchina: {idxMacchina} | dtRif: {dtRif}{Environment.NewLine}{exc}";
Log.Error(logMsg);
}
return answ;
@@ -2595,46 +2611,6 @@ namespace MP.Data.Services
return result;
}
-
- ///
- /// Restituisce elenco ElencoConfermeProd filtrato e async
- ///
- ///
- ///
- ///
- ///
- public async Task> ElencoConfProdFiltAsync(string idxMacchina, DateTime dataFrom, DateTime dataTo)
- {
- // setup parametri costanti
- string source = "DB";
- Stopwatch sw = new Stopwatch();
- sw.Start();
- List result = new List();
- // cerco in redisConn...
- string currKey = $"{redisBaseKey}:ElConfProd:{idxMacchina}:{dataFrom:yyyyyMMdd-HHmm}:{dataFrom:yyyyyMMdd-HHmm}";
- RedisValue rawData = await redisDb.StringGetAsync(currKey);
- if (rawData.HasValue)
- {
- result = JsonConvert.DeserializeObject>($"{rawData}")?? new List();
- source = "REDIS";
- }
- else
- {
- result = dbTabController.ElencoConfProdFilt(idxMacchina, dataFrom, dataTo);
- // serializzo e salvo...
- rawData = JsonConvert.SerializeObject(result);
- await redisDb.StringSetAsync(currKey, rawData, UltraLongCache);
- }
- sw.Stop();
- string callName = $"ElencoConfProdFiltAsync.{source}";
- int numRec = esCollect.RecordCall(callName, sw.Elapsed.TotalMilliseconds);
- if (numRec >= nRecLog)
- {
- Log.Debug(esCollect.GetCallSum(callName, true));
- }
- return result;
- }
-
///
/// Registra controllo
///
@@ -3927,6 +3903,29 @@ namespace MP.Data.Services
#region Protected Methods
+ protected override void Dispose(bool disposing)
+ {
+ if (!_disposed)
+ {
+ if (disposing)
+ {
+ // Free managed resources here
+ dbTabController.Dispose();
+ dbIocController.Dispose();
+ dbInveController.Dispose();
+ CurrConfig.Clear();
+ connStrParams.Clear();
+ esCollect.Dispose();
+ }
+
+ // Free unmanaged resources here
+ _disposed = true;
+ }
+
+ // Call base class implementation.
+ base.Dispose(disposing);
+ }
+
protected void setExpDays()
{
ConfigGetVal("TAB_dtTimerScadLogin", ref expMinutes);
@@ -3937,7 +3936,7 @@ namespace MP.Data.Services
#region Private Fields
private static Logger Log = LogManager.GetCurrentClassLogger();
-
+ private bool _disposed = false;
private string CodModulo = "";
private string CodModuloParam = "";