- @($"{getPodl(record.IdxOdl).ToString(padCodXdl)}")
+
+ @($"{getPodl(record.IdxOdl).ToString(padCodXdl)}")
}
else
@@ -83,7 +83,7 @@ else
@record.CodArticolo
- @record.ArticoloNav.DescArticolo
+ @record.DescArticolo
|
@@ -99,7 +99,7 @@ else
@record.IdxMacchina
- @record.MachineNav.Descrizione
+ @record.Nome
|
N° pezzi: @record.NumPezzi
@@ -158,11 +158,15 @@ else
@statRecord.CodArticolo
- @statRecord.ArticoloNav.DescArticolo
+
+ @(@statRecord.ArticoloNav != null ? @statRecord.ArticoloNav.DescArticolo : "N.A.")
+
@statRecord.IdxMacchina
- @statRecord.MachineNav.Descrizione
+
+ @(@statRecord.MachineNav != null ? @statRecord.MachineNav.Descrizione : "N.A.")
+
}
diff --git a/MP.SPEC/Components/ListODL.razor.cs b/MP.SPEC/Components/ListODL.razor.cs
index 7e776432..63a6533b 100644
--- a/MP.SPEC/Components/ListODL.razor.cs
+++ b/MP.SPEC/Components/ListODL.razor.cs
@@ -162,7 +162,7 @@ namespace MP.SPEC.Components
await reloadData();
}
- protected async Task selectStatRecord(ODLModel? currRec)
+ protected async Task selectStatRecord(ODLExpModel? currRec)
{
showStats = true;
await Task.Delay(1);
@@ -178,7 +178,7 @@ namespace MP.SPEC.Components
}
}
- protected async Task selRecord(ODLModel? currRec)
+ protected async Task selRecord(ODLExpModel? currRec)
{
await Task.Delay(1);
selDtFine = DateTime.Now;
@@ -210,19 +210,19 @@ namespace MP.SPEC.Components
private static Logger Log = LogManager.GetCurrentClassLogger();
- private ODLModel? currRecord = null;
+ private ODLExpModel? currRecord = null;
private List ? ListOdlStats;
private List? ListOdlStatsNetto;
- private List? ListRecords;
+ private List? ListRecords;
private List? ListStati;
- private List? SearchRecords;
+ private List? SearchRecords;
- private ODLModel? statRecord = null;
+ private ODLExpModel? statRecord = null;
#endregion Private Fields
@@ -409,7 +409,7 @@ namespace MP.SPEC.Components
private async Task reloadData()
{
isLoading = true;
- SearchRecords = await MDService.ListODLFilt(currFilter.IsActive, currFilter.SearchVal, currFilter.CodStato, currFilter.IdxMacchina, currFilter.DtStart, currFilter.DtEnd);
+ SearchRecords = await MDService.ListODLFilt(currFilter.IsActive, currFilter.SearchVal, currFilter.CodStato, currFilter.CodReparto, currFilter.IdxMacchina, currFilter.DtStart, currFilter.DtEnd);
totalCount = SearchRecords.Count;
ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList();
await Task.Delay(1);
@@ -417,7 +417,7 @@ namespace MP.SPEC.Components
isLoading = false;
}
- private async Task reloadStatsData(ODLModel? currRec)
+ private async Task reloadStatsData(ODLExpModel? currRec)
{
showStats = true;
if (currRec != null)
diff --git a/MP.SPEC/Components/SelFilterXDL.razor b/MP.SPEC/Components/SelFilterXDL.razor
new file mode 100644
index 00000000..725429e9
--- /dev/null
+++ b/MP.SPEC/Components/SelFilterXDL.razor
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+ Seleziona i filtri per:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @if (!isActive)
+ {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ }
+
+
+
diff --git a/MP.SPEC/Components/SelFilterXDL.razor.cs b/MP.SPEC/Components/SelFilterXDL.razor.cs
new file mode 100644
index 00000000..3cfd8408
--- /dev/null
+++ b/MP.SPEC/Components/SelFilterXDL.razor.cs
@@ -0,0 +1,120 @@
+using Microsoft.AspNetCore.Components;
+using MP.Data.DatabaseModels;
+using MP.SPEC.Data;
+
+namespace MP.SPEC.Components
+{
+ public partial class SelFilterXDL
+ {
+ #region Public Properties
+
+ [Parameter]
+ public SelectOdlParams currFilter { get; set; } = new SelectOdlParams();
+
+ [Parameter]
+ public EventCallback FilterChanged { get; set; }
+
+ [Parameter]
+ public List? ListGruppiFase { get; set; } = null;
+
+ [Parameter]
+ public List? ListMacchine { get; set; } = null;
+
+ [Parameter]
+ public List? ListStati { get; set; } = null;
+
+ #endregion Public Properties
+
+ #region Protected Properties
+
+ protected bool isActive
+ {
+ get => currFilter.IsActive;
+ }
+
+ protected DateTime selDtEnd
+ {
+ get => currFilter.DtEnd;
+ set
+ {
+ if (currFilter.DtEnd != value)
+ {
+ currFilter.DtEnd = value;
+ Task.Delay(1);
+ reportChange();
+ }
+ }
+ }
+
+ protected DateTime selDtStart
+ {
+ get => currFilter.DtStart;
+ set
+ {
+ if (currFilter.DtStart != value)
+ {
+ currFilter.DtStart = value;
+ Task.Delay(1);
+ reportChange();
+ }
+ }
+ }
+
+ #endregion Protected Properties
+
+ #region Private Properties
+
+ private string selMacchina
+ {
+ get => currFilter.IdxMacchina;
+ set
+ {
+ if (currFilter.IdxMacchina != value)
+ {
+ currFilter.IdxMacchina = value;
+ Task.Delay(1);
+ reportChange();
+ }
+ }
+ }
+
+ private string selReparto
+ {
+ get => currFilter.CodReparto;
+ set
+ {
+ if (currFilter.CodReparto != value)
+ {
+ currFilter.CodReparto = value;
+ Task.Delay(1);
+ reportChange();
+ }
+ }
+ }
+
+ private string selStato
+ {
+ get => currFilter.CodStato;
+ set
+ {
+ if (currFilter.CodStato != value)
+ {
+ currFilter.CodStato = value;
+ Task.Delay(1);
+ reportChange();
+ }
+ }
+ }
+
+ #endregion Private Properties
+
+ #region Private Methods
+
+ private void reportChange()
+ {
+ FilterChanged.InvokeAsync(currFilter);
+ }
+
+ #endregion Private Methods
+ }
+}
\ No newline at end of file
diff --git a/MP.SPEC/Data/MpDataService.cs b/MP.SPEC/Data/MpDataService.cs
index e76e0a6b..99265065 100644
--- a/MP.SPEC/Data/MpDataService.cs
+++ b/MP.SPEC/Data/MpDataService.cs
@@ -499,7 +499,36 @@ namespace MP.SPEC.Data
///
public Task> ElencoGruppiFase()
{
- return Task.FromResult(dbController.AnagGruppiFase());
+#if false
+ return Task.FromResult(dbController.AnagGruppiFase());
+#endif
+ List result = new List();
+ Stopwatch stopWatch = new Stopwatch();
+ stopWatch.Start();
+ string readType = "DB";
+ string currKey = $"{redisAnagGruppi}";
+ // cerco in redis dato valore sel macchina...
+ RedisValue rawData = redisDb.StringGet(currKey);
+ if (rawData.HasValue)
+ {
+ result = JsonConvert.DeserializeObject>($"{rawData}");
+ readType = "REDIS";
+ }
+ else
+ {
+ result = dbController.AnagGruppiFase();
+ // serializzo e salvo...
+ rawData = JsonConvert.SerializeObject(result);
+ redisDb.StringSet(currKey, rawData, getRandTOut(redisLongTimeCache / 5));
+ }
+ if (result == null)
+ {
+ result = new List();
+ }
+ stopWatch.Stop();
+ TimeSpan ts = stopWatch.Elapsed;
+ Log.Debug($"ElencoGruppiFase | Read from {readType}: {ts.TotalMilliseconds}ms");
+ return Task.FromResult(result);
}
public Task> ElencoLink()
@@ -622,11 +651,43 @@ namespace MP.SPEC.Data
/// Stato ODL: true=in corso/completato
/// Cod articolo
/// KeyRich (parziale) da cercare (es cod stato x yacht)
- /// id macchina da cercare
+ /// Reparto selezionato
+ /// Macchina selezionata
+ /// Data inizio
+ /// Data fine
///
- public async Task> ListODLFilt(bool inCorso, string codArt, string keyRichPart, string IdxMacchina, DateTime startDate, DateTime endDate)
+ public async Task> ListODLFilt(bool inCorso, string codArt, string keyRichPart, string Reparto, string IdxMacchina, DateTime startDate, DateTime endDate)
{
- return await Task.FromResult(dbController.ListODLFilt(inCorso, codArt, keyRichPart, IdxMacchina, startDate, endDate));
+ List? result = new List();
+ Stopwatch stopWatch = new Stopwatch();
+ stopWatch.Start();
+ string readType = "DB";
+ string currKey = $"{redisOdlList}:{inCorso}:{codArt}:{keyRichPart}:{Reparto}:{IdxMacchina}:{startDate:yyyyMMdd_HHmmss}:{endDate:yyyyMMdd_HHmmss}";
+ // cerco in redis dato valore sel macchina...
+ RedisValue rawData = redisDb.StringGet(currKey);
+ if (rawData.HasValue)
+ {
+ result = JsonConvert.DeserializeObject>($"{rawData}");
+ readType = "REDIS";
+ }
+ else
+ {
+ result = await Task.FromResult(dbController.ListODLFilt(inCorso, codArt, keyRichPart, Reparto, IdxMacchina, startDate, endDate));
+ // serializzo e salvo...
+ rawData = JsonConvert.SerializeObject(result);
+ redisDb.StringSet(currKey, rawData, TimeSpan.FromSeconds(redisShortTimeCache));
+ }
+ if (result == null)
+ {
+ result = new List();
+ }
+ stopWatch.Stop();
+ TimeSpan ts = stopWatch.Elapsed;
+ Log.Debug($"ListODLFilt | Read from {readType}: {ts.TotalMilliseconds}ms");
+ return result;
+
+
+ //return await Task.FromResult(dbController.ListODLFilt(inCorso, codArt, keyRichPart, Reparto, IdxMacchina, startDate, endDate));
}
///
@@ -654,7 +715,7 @@ namespace MP.SPEC.Data
result = await Task.FromResult(dbController.ListPODLFilt(codArt, keyRichPart));
// serializzo e salvo...
rawData = JsonConvert.SerializeObject(result);
- redisDb.StringSet(currKey, rawData, TimeSpan.FromSeconds(3));
+ redisDb.StringSet(currKey, rawData, TimeSpan.FromSeconds(redisShortTimeCache));
}
if (result == null)
{
@@ -932,7 +993,7 @@ namespace MP.SPEC.Data
}
stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
- Log.Debug($"PODL_getByKey | Read from {readType}: {ts.TotalMilliseconds}ms");
+ Log.Trace($"PODL_getByKey | Read from {readType}: {ts.TotalMilliseconds}ms");
}
else
{
@@ -975,7 +1036,7 @@ namespace MP.SPEC.Data
}
stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
- Log.Debug($"PODL_getByOdl | Read from {readType}: {ts.TotalMilliseconds}ms");
+ Log.Trace($"PODL_getByOdl | Read from {readType}: {ts.TotalMilliseconds}ms");
}
else
{
@@ -1150,6 +1211,8 @@ namespace MP.SPEC.Data
#region Private Fields
+ private const string redisAnagGruppi = redisBaseAddr + "SPEC:Cache:AnagGruppi";
+
private const string redisArtByDossier = redisBaseAddr + "SPEC:Cache:ArtByDossier";
private const string redisArtList = redisBaseAddr + "SPEC:Cache:ArtList";
@@ -1169,6 +1232,7 @@ namespace MP.SPEC.Data
private const string redisMacList = redisBaseAddr + "SPEC:Cache:MacList";
private const string redisOdlCurrByMac = redisBaseAddr + "SPEC:Cache:OdlByMac";
+ private const string redisOdlList = redisBaseAddr + "SPEC:Cache:OdlList";
private const string redisPOdlByOdl = redisBaseAddr + "SPEC:Cache:POdlByOdl";
private const string redisPOdlByPOdl = redisBaseAddr + "SPEC:Cache:POdlByPOdl";
@@ -1207,6 +1271,7 @@ namespace MP.SPEC.Data
private IDatabase redisDb = null!;
private int redisLongTimeCache = 5;
+ private int redisShortTimeCache = 4;
#endregion Private Fields
diff --git a/MP.SPEC/Data/SelectOdlParams.cs b/MP.SPEC/Data/SelectOdlParams.cs
index 87f4defe..522eba5b 100644
--- a/MP.SPEC/Data/SelectOdlParams.cs
+++ b/MP.SPEC/Data/SelectOdlParams.cs
@@ -13,16 +13,17 @@ namespace MP.SPEC.Data
#region Public Properties
+ public bool IsActive { get; set; } = true;
+ public string CodReparto { get; set; } = "*";
public string CodStato { get; set; } = "*";
public string IdxMacchina { get; set; } = "*";
- public int CurrPage { get; set; } = 1;
- public int NumRec { get; set; } = 10;
- public int TotCount { get; set; } = 0;
- public DateTime DtEnd { get; set; } = Utils.InitDatetime(DateTime.Now, 5);
- public DateTime DtStart { get; set; } = Utils.InitDatetime(DateTime.Now, 5).AddDays(-10);
public int MaxRecord { get; set; } = 100;
- public bool IsActive { get; set; } = true;
+ public int NumRec { get; set; } = 10;
+ public DateTime DtStart { get; set; } = Utils.InitDatetime(DateTime.Now, 5).AddDays(-10);
+ public DateTime DtEnd { get; set; } = Utils.InitDatetime(DateTime.Now, 5);
+ public int CurrPage { get; set; } = 1;
public string SearchVal { get; set; } = "*";
+ public int TotCount { get; set; } = 0;
#endregion Public Properties
@@ -36,6 +37,9 @@ namespace MP.SPEC.Data
if (IsActive != item.IsActive)
return false;
+ if (CodReparto != item.CodReparto)
+ return false;
+
if (CodStato != item.CodStato)
return false;
diff --git a/MP.SPEC/MP.SPEC.csproj b/MP.SPEC/MP.SPEC.csproj
index 45554cf4..4acf7c6b 100644
--- a/MP.SPEC/MP.SPEC.csproj
+++ b/MP.SPEC/MP.SPEC.csproj
@@ -5,7 +5,7 @@
enable
enable
MP.SPEC
- 6.16.2211.2410
+ 6.16.2211.2415
diff --git a/MP.SPEC/NLog.config b/MP.SPEC/NLog.config
index b32ba10a..3e4185f4 100644
--- a/MP.SPEC/NLog.config
+++ b/MP.SPEC/NLog.config
@@ -39,7 +39,7 @@
Write all events with minimal level of Debug (So Debug, Info, Warn, Error and Fatal, but not Trace) to "f"
-->
-
+
diff --git a/MP.SPEC/Pages/ODL.razor b/MP.SPEC/Pages/ODL.razor
index bd021744..406a3ea0 100644
--- a/MP.SPEC/Pages/ODL.razor
+++ b/MP.SPEC/Pages/ODL.razor
@@ -41,7 +41,8 @@
- *@
diff --git a/MP.SPEC/Pages/ODL.razor.cs b/MP.SPEC/Pages/ODL.razor.cs
index 155410dc..46dac323 100644
--- a/MP.SPEC/Pages/ODL.razor.cs
+++ b/MP.SPEC/Pages/ODL.razor.cs
@@ -1,5 +1,6 @@
using Microsoft.AspNetCore.Components;
using Microsoft.JSInterop;
+using MP.Data.DatabaseModels;
using MP.SPEC.Components;
using MP.SPEC.Data;
@@ -71,19 +72,7 @@ namespace MP.SPEC.Pages
#endregion Protected Properties
#region Protected Methods
- private bool filtActive
- {
- get => selMacchina != "*" || selStato != "*";
- }
- protected void resetMacchina()
- {
- selMacchina = "*";
- }
- protected void resetFase()
- {
- selStato = "*";
- }
protected void ForceReload(int newNum)
{
numRecord = newNum;
@@ -96,6 +85,11 @@ namespace MP.SPEC.Pages
protected override async Task OnInitializedAsync()
{
+ var allGruppiData = await MDService.ElencoGruppiFase();
+ if (allGruppiData != null)
+ {
+ ListGruppiFase = allGruppiData.Where(x => x.SelEnabled).ToList();
+ }
ListStati = await MDService.AnagStatiComm();
ListMacchine = await MDService.MacchineWithFlux(currFilter.DtStart, currFilter.DtEnd);
padCodXdl = await MDService.tryGetConfig("padCodXdl");
@@ -113,7 +107,15 @@ namespace MP.SPEC.Pages
}
}
- private string padCodXdl { get; set; } = "00000";
+ protected void resetFase()
+ {
+ selStato = "*";
+ }
+
+ protected void resetMacchina()
+ {
+ selMacchina = "*";
+ }
protected void setDtMax()
{
@@ -131,9 +133,10 @@ namespace MP.SPEC.Pages
#region Private Fields
- private List? ListStati;
private List? ListMacchine;
+ private List? ListStati;
+
#endregion Private Fields
#region Private Properties
@@ -146,6 +149,11 @@ namespace MP.SPEC.Pages
set => currFilter.CurrPage = value;
}
+ private bool filtActive
+ {
+ get => selMacchina != "*" || selStato != "*";
+ }
+
private bool isLoading { get; set; } = false;
private string leftStringCSS
@@ -153,27 +161,32 @@ namespace MP.SPEC.Pages
get => isActive ? "text-secondary" : "text-dark fw-bold";
}
+ private List? ListGruppiFase { get; set; } = null;
+
private int numRecord
{
get => currFilter.NumRec;
set => currFilter.NumRec = value;
}
+ private string padCodXdl { get; set; } = "00000";
+
private string rightStringCSS
{
get => isActive ? "text-dark fw-bold" : "text-secondary";
}
+ private string selMacchina
+ {
+ get => currFilter.IdxMacchina;
+ set => currFilter.IdxMacchina = value;
+ }
+
private string selStato
{
get => currFilter.CodStato;
set => currFilter.CodStato = value;
}
- private string selMacchina
- {
- get => currFilter.IdxMacchina;
- set => currFilter.IdxMacchina = value;
- }
private int totalCount
{
@@ -182,5 +195,20 @@ namespace MP.SPEC.Pages
}
#endregion Private Properties
+
+ #region Private Methods
+
+ private async Task updateFilter(SelectOdlParams newParams)
+ {
+ isLoading = true;
+ await Task.Delay(1);
+ currPage = 1;
+ await Task.Delay(1);
+ await InvokeAsync(() => StateHasChanged());
+ currFilter = newParams;
+ isLoading = false;
+ }
+
+ #endregion Private Methods
}
}
\ No newline at end of file
diff --git a/MP.SPEC/Resources/ChangeLog.html b/MP.SPEC/Resources/ChangeLog.html
index 5d01359d..78514638 100644
--- a/MP.SPEC/Resources/ChangeLog.html
+++ b/MP.SPEC/Resources/ChangeLog.html
@@ -1,6 +1,6 @@
Modulo MAPOSPEC
- Versione: 6.16.2211.2410
+ Versione: 6.16.2211.2415
Note di rilascio:
-
diff --git a/MP.SPEC/Resources/VersNum.txt b/MP.SPEC/Resources/VersNum.txt
index ca2c4e8f..f839c200 100644
--- a/MP.SPEC/Resources/VersNum.txt
+++ b/MP.SPEC/Resources/VersNum.txt
@@ -1 +1 @@
-6.16.2211.2410
+6.16.2211.2415
diff --git a/MP.SPEC/Resources/manifest.xml b/MP.SPEC/Resources/manifest.xml
index 96f7f037..4aa1ab20 100644
--- a/MP.SPEC/Resources/manifest.xml
+++ b/MP.SPEC/Resources/manifest.xml
@@ -1,6 +1,6 @@
-
- 6.16.2211.2410
+ 6.16.2211.2415
https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/MP.SPEC.zip
https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/ChangeLog.html
false
| |