Fix recupero dossier: limite a last 1000

This commit is contained in:
Samuele Locatelli
2026-02-25 10:13:28 +01:00
parent 259dd14062
commit bf2dbfcc65
10 changed files with 31 additions and 18 deletions
+5 -4
View File
@@ -635,21 +635,22 @@ namespace MP.Data.Controllers
/// <param name="CodArticolo">* = tutti, altrimenti solo x un dato articolo</param>
/// <param name="DtStart">Data minima per estrazione records</param>
/// <param name="DtEnd">Data Massima per estrazione records</param>
/// <param name="MaxRec">Num max record recuperati</param>
/// <returns></returns>
public List<DossierModel> DossiersGetLastFilt(string IdxMacchina, string CodArticolo, DateTime DtStart, DateTime DtEnd)
public async Task<List<DossierModel>> DossiersGetLastFiltAsync(string IdxMacchina, string CodArticolo, DateTime DtStart, DateTime DtEnd, int MaxRec)
{
List<DossierModel> dbResult = new List<DossierModel>();
using (var dbCtx = new MoonPro_FluxContext(_configuration))
{
dbResult = dbCtx
dbResult = await dbCtx
.DbSetDossiers
.AsNoTracking()
.Where(x => (IdxMacchina == "*" || x.IdxMacchina == IdxMacchina) && (CodArticolo == "*" || x.CodArticolo == CodArticolo) && (x.DtRif >= DtStart && x.DtRif <= DtEnd))
.Include(m => m.MachineNav)
.Include(a => a.ArticoloNav)
////.Include(o => o.OdlNav)
.OrderByDescending(x => x.DtRif)
.ToList();
.Take(MaxRec)
.ToListAsync();
}
return dbResult;
}
+8
View File
@@ -76,6 +76,14 @@
<label class="input-group-text" for="dtMax" title="Selezionare fine periodo"><i class="fa-regular fa-calendar-plus"></i></label>
<input class="form-control" @bind="@selDtMax" id="dtMax" type="datetime-local" title="Selezionare fine periodo">
</div>
<div class="small mt-2">
<label class="px-2" for="dtMax" title="Selezionare fine periodo">Max record</label>
</div>
<div class="px-2 input-group">
<label class="input-group-text" for="maxRec" title="Numero Max Record"><i class="fa-solid fa-list-numeric"></i></label>
<input class="form-control" @bind="@selMaxRecord" id="maxRec" type="number" title="Max Record recuperati">
</div>
</div>
</div>
</div>
@@ -129,6 +129,7 @@ namespace MP.SPEC.Components
protected override async Task OnInitializedAsync()
{
SelFilterDossier = new SelectDossierParams();
SelFilterDossier.MaxRecord = 1000;
DateTime dtEnd = SelFilterDossier.DtEnd;
DateTime dtStart = dtEnd.Subtract(SelFilterDossier.DtStart).TotalDays < 15 ? SelFilterDossier.DtStart : dtEnd.AddDays(-14);
ListMacchine = await MDService.MacchineWithFlux(dtStart, dtEnd);
+5 -1
View File
@@ -379,6 +379,10 @@ namespace MP.SPEC.Components
{
get => SelFilter.IdxMacchina;
}
private int MaxRec
{
get => SelFilter.MaxRecord;
}
private int totalCount
{
@@ -432,7 +436,7 @@ namespace MP.SPEC.Components
private async Task ReloadData(bool setChanged)
{
isLoading = true;
SearchRecords = await MDService.DossiersGetLastFilt(SelMacchina, SelArticolo, SelDtStart, SelDtEnd);
SearchRecords = await MDService.DossiersGetLastFilt(SelMacchina, SelArticolo, SelDtStart, SelDtEnd, MaxRec);
totalCount = SearchRecords.Count;
ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList();
await Task.Delay(1);
+8 -8
View File
@@ -832,14 +832,14 @@ namespace MP.SPEC.Data
/// <param name="DtStart">Data minima per estrazione records</param>
/// <param name="DtEnd">Data Massima per estrazione records</param>
/// <returns></returns>
public async Task<List<DossierModel>> DossiersGetLastFilt(string IdxMacchina, string CodArticolo, DateTime DtStart, DateTime DtEnd)
public async Task<List<DossierModel>> DossiersGetLastFilt(string IdxMacchina, string CodArticolo, DateTime DtStart, DateTime DtEnd, int maxRec)
{
using var activity = ActivitySource.StartActivity("DossiersGetLastFilt");
using var activity = ActivitySource.StartActivity("DossiersGetLastFiltAsync");
List<DossierModel>? result = new List<DossierModel>();
string source = "DB";
string currKey = $"{Utils.redisDossByMac}:{IdxMacchina}:{CodArticolo}:{DtStart:yyyyMMddHHmm}:{DtEnd:yyyyMMddHHmm}";
string currKey = $"{Utils.redisDossByMac}:{IdxMacchina}:{CodArticolo}:{DtStart:yyyyMMddHHmm}:{DtEnd:yyyyMMddHHmm}:{maxRec}";
// cerco in redis dato valore sel idxMaccSel...
RedisValue rawData = redisDb.StringGet(currKey);
RedisValue rawData = await redisDb.StringGetAsync(currKey);
if (rawData.HasValue)
{
result = JsonConvert.DeserializeObject<List<DossierModel>>($"{rawData}");
@@ -847,10 +847,10 @@ namespace MP.SPEC.Data
}
else
{
result = await Task.FromResult(dbController.DossiersGetLastFilt(IdxMacchina, CodArticolo, DtStart, DtEnd));
result = await dbController.DossiersGetLastFiltAsync(IdxMacchina, CodArticolo, DtStart, DtEnd, maxRec);
// serializzo e salvo...
rawData = JsonConvert.SerializeObject(result);
redisDb.StringSet(currKey, rawData, getRandTOut(redisLongTimeCache / 5));
await redisDb.StringSetAsync(currKey, rawData, getRandTOut(redisLongTimeCache / 5));
}
if (result == null)
{
@@ -859,7 +859,7 @@ namespace MP.SPEC.Data
activity?.SetTag("data.source", source);
activity?.SetTag("result.count", result.Count);
activity?.Stop();
LogTrace($"DossiersGetLastFilt | Read from {source}: {activity?.Duration.TotalMilliseconds}ms");
LogTrace($"DossiersGetLastFiltAsync | Read from {source}: {activity?.Duration.TotalMilliseconds}ms");
return result;
}
@@ -2771,7 +2771,7 @@ namespace MP.SPEC.Data
{
using var activity = ActivitySource.StartActivity("StatOdl");
string source = "DB";
var result= dbController.OdlStart(IdxOdl);
var result = dbController.OdlStart(IdxOdl);
activity?.SetTag("data.source", source);
activity?.Stop();
LogTrace($"StatOdl | {source} | {activity?.Duration.TotalMilliseconds}ms");
+1 -1
View File
@@ -5,7 +5,7 @@
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<RootNamespace>MP.SPEC</RootNamespace>
<Version>6.16.2602.2509</Version>
<Version>6.16.2602.2510</Version>
<UserSecretsId>1800a78a-6ff1-40f9-b490-87fb8bfc1394</UserSecretsId>
<SatelliteResourceLanguages>en</SatelliteResourceLanguages>
</PropertyGroup>
-1
View File
@@ -14,7 +14,6 @@
}
else
{
<DossiersFilter FilterChanged="updateFilter"></DossiersFilter>
}
</div>
+1 -1
View File
@@ -1,6 +1,6 @@
<body>
<i>Modulo MAPOSPEC </i>
<h4>Versione: 6.16.2602.2509</h4>
<h4>Versione: 6.16.2602.2510</h4>
<br /> Note di rilascio:
<ul>
<li>
+1 -1
View File
@@ -1 +1 @@
6.16.2602.2509
6.16.2602.2510
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<item>
<version>6.16.2602.2509</version>
<version>6.16.2602.2510</version>
<url>https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/MP.SPEC.zip</url>
<changelog>https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/ChangeLog.html</changelog>
<mandatory>false</mandatory>