This commit is contained in:
zaccaria.majid
2023-10-09 12:54:33 +02:00
5 changed files with 127 additions and 1 deletions
+4
View File
@@ -1,6 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<item>
<<<<<<< HEAD
<version>6.16.2310.912</version>
=======
<version>6.16.2310.911</version>
>>>>>>> 760efc57d30b34a76030b4c0c336e1d6a44e420d
<url>https://nexus.steamware.net/repository/SWS/MP-TAB-SERV/stable/LAST/MP-TAB-SERV.zip</url>
<changelog>https://nexus.steamware.net/repository/SWS/MP-TAB-SERV/stable/LAST/ChangeLog.html</changelog>
<mandatory>false</mandatory>
+50
View File
@@ -165,6 +165,30 @@ namespace MP.Data.Controllers
}
}
/// <summary>
/// Recupera elenco ultimi commenti x macchina
/// </summary>
/// <param name="idxMacchina">Idx macchina, "*" = tutte</param>
/// <param name="maxRec">Num massimo di record da recuperare</param>
/// <returns></returns>
public List<CommentiModel> CommentiGetLastByMacc(string idxMacchina, int maxRec)
{
List<CommentiModel> dbResult = new List<CommentiModel>();
using (var dbCtx = new MoonProContext(_configuration))
{
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
var MaxRec = new SqlParameter("@MaxRec", maxRec);
dbResult = dbCtx
.DbSetCommenti
.FromSqlRaw("exec dbo.stp_Comm_getLastByMacchina @IdxMacchina, @MaxRec", IdxMacchina, MaxRec)
.AsNoTracking()
.AsEnumerable()
.ToList();
}
return dbResult;
}
/// <summary>
/// Effettua conferma prod macchina dell'intero periodo da confermare (ultima conferma
/// --&gt; dtEvent)
@@ -434,6 +458,32 @@ namespace MP.Data.Controllers
return fatto;
}
/// <summary>
/// Recupera elenco fermi non qualificati da filtro
/// </summary>
/// <param name="idxMacchina">Idx macchina, "*" = tutte</param>
/// <param name="gg">Num massimo di giorni antecedenti</param>
/// <param name="durataMin">Durata minima (in minuti)</param>
/// <returns></returns>
public List<FermiNonQualModel> FermiNonQualificatiFilt(string idxMacchina, int gg, double durataMin)
{
List<FermiNonQualModel> dbResult = new List<FermiNonQualModel>();
using (var dbCtx = new MoonProContext(_configuration))
{
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
var GG = new SqlParameter("@MaxRec", gg);
var DurataMin = new SqlParameter("@MaxRec", durataMin);
dbResult = dbCtx
.DbSetFNQ
.FromSqlRaw("exec dbo.stp_FNQ_getFilt @IdxMacchina, @gg, @durataMin", IdxMacchina, GG, DurataMin)
.AsNoTracking()
.AsEnumerable()
.ToList();
}
return dbResult;
}
/// <summary>
/// MicroStato macchina (da key)
/// </summary>
@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
#nullable disable
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace MP.Data.DatabaseModels
{
public partial class FermiNonQualModel
{
#region Public Properties
public string IdxMacchina { get; set; } = "NA";
public DateTime InizioStato { get; set; } = DateTime.Now;
public string Macchina { get; set; } = "";
public int IdxStato { get; set; } = 0;
public string Semaforo { get; set; } = "";
public double DurataMinuti { get; set; } = 0;
public string Value { get; set; } = "";
public string CodArticolo { get; set; } = "";
#endregion Public Properties
}
}
+7 -1
View File
@@ -83,7 +83,8 @@ namespace MP.Data
public virtual DbSet<vSelEventiBCodeModel> DbSetVSEB { get; set; }
public virtual DbSet<CommentiModel> DbSetCommenti { get; set; }
public virtual DbSet<FermiNonQualModel> DbSetFNQ { get; set; }
#endregion Public Properties
@@ -535,6 +536,11 @@ namespace MP.Data
entity.HasKey(e => new { e.IdxMacchina, e.InizioStato });
});
modelBuilder.Entity<FermiNonQualModel>(entity =>
{
entity.HasKey(e => new { e.IdxMacchina, e.InizioStato });
});
OnModelCreatingPartial(modelBuilder);
}
+38
View File
@@ -445,6 +445,44 @@ namespace MP.Data.Services
return answ;
}
/// <summary>
/// Recupera elenco fermi non qualificati da filtro
/// </summary>
/// <param name="idxMacchina">Idx macchina, "*" = tutte</param>
/// <param name="gg">Num massimo di giorni antecedenti</param>
/// <param name="durataMin">Durata minima (in minuti)</param>
/// <returns></returns>
public async Task<List<FermiNonQualModel>> FermiNonQualificatiFilt(string idxMacchina, int gg, double durataMin)
{
// setup parametri costanti
string source = "DB";
Stopwatch sw = new Stopwatch();
sw.Start();
List<FermiNonQualModel> result = new List<FermiNonQualModel>();
// cerco in redis...
string currKey = $"{redisBaseKey}:FNQ:{idxMacchina}:{gg}:{durataMin:N0}";
RedisValue rawData = await redisDb.StringGetAsync(currKey);
if (rawData.HasValue)
{
result = JsonConvert.DeserializeObject<List<FermiNonQualModel>>($"{rawData}");
source = "REDIS";
}
else
{
result = dbTabController.FermiNonQualificatiFilt(idxMacchina, gg, durataMin);
// serializzp e salvo...
rawData = JsonConvert.SerializeObject(result);
await redisDb.StringSetAsync(currKey, rawData, FastCache);
}
if (result == null)
{
result = new List<FermiNonQualModel>();
}
sw.Stop();
Log.Debug($"FermiNonQualificatiFilt | {source} | {sw.Elapsed.TotalMilliseconds}ms");
return result;
}
/// <summary>
/// Pulizia cache Redis (tutta)
/// </summary>