Update TAB3:
- inserita dataora forzata x chiusura ODL - ritardo 50ms prima di procedere
This commit is contained in:
@@ -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;
|
||||
|
||||
/// <summary>
|
||||
/// Tempo di delay x simulare cambio idxMaccSub
|
||||
/// </summary>
|
||||
private int delayUpd = 1000;
|
||||
|
||||
private List<string> emailAdmDest = new List<string>();
|
||||
|
||||
private bool enableAnnullaSetup = false;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>6.16.2509.917</Version>
|
||||
<Version>6.16.2509.1015</Version>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<RootNamespace>MP_TAB3</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<body>
|
||||
<i>Modulo MAPOSPEC </i>
|
||||
<h4>Versione: 6.16.2509.917</h4>
|
||||
<h4>Versione: 6.16.2509.1015</h4>
|
||||
<br /> Note di rilascio:
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
@@ -1 +1 @@
|
||||
6.16.2509.917
|
||||
6.16.2509.1015
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<item>
|
||||
<version>6.16.2509.917</version>
|
||||
<version>6.16.2509.1015</version>
|
||||
<url>https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/MP-TAB3.zip</url>
|
||||
<changelog>https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/ChangeLog.html</changelog>
|
||||
<mandatory>false</mandatory>
|
||||
|
||||
@@ -509,6 +509,27 @@ namespace MP.Data.Controllers
|
||||
_configuration = null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce elenco RC filtrato
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <param name="dataFrom"></param>
|
||||
/// <param name="dataTo"></param>
|
||||
/// <returns></returns>
|
||||
public List<ElencoConfermeProdModel> ElencoConfProdFilt(string idxMacchina, DateTime dataFrom, DateTime dataTo)
|
||||
{
|
||||
List<ElencoConfermeProdModel> dbResult = new List<ElencoConfermeProdModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
dbResult = dbCtx
|
||||
.DbSetElConfProd
|
||||
.Where(x => x.IdxMacchina == idxMacchina && (dataFrom <= x.DataOraConf && x.DataOraConf <= dataTo))
|
||||
.AsNoTracking()
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Fix ODL per Elenco Lotti
|
||||
/// </summary>
|
||||
@@ -1200,8 +1221,9 @@ namespace MP.Data.Controllers
|
||||
/// </summary>
|
||||
/// <param name="idxODL"></param>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <param name="dtRif"></param>
|
||||
/// <returns></returns>
|
||||
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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce elenco RC filtrato
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <param name="dataFrom"></param>
|
||||
/// <param name="dataTo"></param>
|
||||
/// <returns></returns>
|
||||
public List<ElencoConfermeProdModel> ElencoConfProdFilt(string idxMacchina, DateTime dataFrom, DateTime dataTo)
|
||||
{
|
||||
List<ElencoConfermeProdModel> dbResult = new List<ElencoConfermeProdModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
dbResult = dbCtx
|
||||
.DbSetElConfProd
|
||||
.Where (x => x.IdxMacchina== idxMacchina && (dataFrom <= x.DataOraConf && x.DataOraConf <= dataTo))
|
||||
.AsNoTracking()
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Registra controllo
|
||||
/// </summary>
|
||||
|
||||
@@ -653,28 +653,43 @@ namespace MP.Data.Services
|
||||
return SteamCrypto.DecryptString(encData, Constants.passPhrase);
|
||||
}
|
||||
|
||||
private bool _disposed = false;
|
||||
protected override void Dispose(bool disposing)
|
||||
/// <summary>
|
||||
/// Restituisce elenco ElencoConfermeProd filtrato e async
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <param name="dataFrom"></param>
|
||||
/// <param name="dataTo"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<List<ElencoConfermeProdModel>> ElencoConfProdFiltAsync(string idxMacchina, DateTime dataFrom, DateTime dataTo)
|
||||
{
|
||||
if (!_disposed)
|
||||
// setup parametri costanti
|
||||
string source = "DB";
|
||||
Stopwatch sw = new Stopwatch();
|
||||
sw.Start();
|
||||
List<ElencoConfermeProdModel> result = new List<ElencoConfermeProdModel>();
|
||||
// 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<List<ElencoConfermeProdModel>>($"{rawData}") ?? new List<ElencoConfermeProdModel>();
|
||||
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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1867,19 +1882,20 @@ namespace MP.Data.Services
|
||||
/// </summary>
|
||||
/// <param name="idxODL"></param>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <param name="dtRif"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> OdlFineProd(int idxODL, string idxMacchina)
|
||||
public async Task<bool> 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;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce elenco ElencoConfermeProd filtrato e async
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <param name="dataFrom"></param>
|
||||
/// <param name="dataTo"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<List<ElencoConfermeProdModel>> ElencoConfProdFiltAsync(string idxMacchina, DateTime dataFrom, DateTime dataTo)
|
||||
{
|
||||
// setup parametri costanti
|
||||
string source = "DB";
|
||||
Stopwatch sw = new Stopwatch();
|
||||
sw.Start();
|
||||
List<ElencoConfermeProdModel> result = new List<ElencoConfermeProdModel>();
|
||||
// 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<List<ElencoConfermeProdModel>>($"{rawData}")?? new List<ElencoConfermeProdModel>();
|
||||
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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Registra controllo
|
||||
/// </summary>
|
||||
@@ -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 = "";
|
||||
|
||||
Reference in New Issue
Block a user