Update refresh pagine in conferma prod + fix status map TAB3

This commit is contained in:
Samuele E. Locatelli
2025-03-07 19:16:33 +01:00
parent 6765e70a76
commit 5fc45f056a
9 changed files with 103 additions and 38 deletions
+74 -33
View File
@@ -9,15 +9,15 @@ using System;
namespace MP_TAB3.Components
{
public partial class MachineBlock
public partial class MachineBlock : IDisposable
{
#region Protected Fields
protected string baseCss = "sem";
protected int currMaxVal = 1000;
protected int currMaxVal = 888;
protected List<CircleGaugeMulti.CircSegm> innerCircleVals = new List<CircleGaugeMulti.CircSegm>();
protected int kaFactor = 60 / 2;
protected int maxVal = 1000;
protected int maxVal = 999;
protected List<CircleGaugeMulti.CircSegm> outerCircleVals = new List<CircleGaugeMulti.CircSegm>();
#endregion Protected Fields
@@ -45,10 +45,6 @@ namespace MP_TAB3.Components
#region Public Properties
#if false
public string currIpv4 { get; set; } = "";
#endif
[Parameter]
public bool doBlink { get; set; } = false;
@@ -368,10 +364,12 @@ namespace MP_TAB3.Components
imgBasePath = $"{Environment.CurrentDirectory}/images/";
}
await loadDetails();
detailLoaded = true;
}
protected override async Task OnParametersSetAsync()
{
TabDServ.DataInvalidated += TabDServ_DataInvalidated;
// controllo variazione parametri...
string lastIMS = LastIdxMacchSub;
if (paramsChanged())
@@ -389,68 +387,111 @@ namespace MP_TAB3.Components
{
RecMSESub = RecMSE;
}
// verificare
if (!FullMode || true)
{
await loadDetails();
}
// carico dettagli
await loadDetails();
}
setGaugeVals();
}
private async void TabDServ_DataInvalidated(object? sender, EventArgs e)
{
ReloadEventArgs rea = (ReloadEventArgs)e;
if (rea.ReloadMessage == IdxMaccCur)
{
// se riceve evento relativo a questo impianto --> ricarico dati prod...
detailLoaded = false;
// carico dettagli
await loadDetails();
setGaugeVals();
}
}
public void Dispose()
{
TabDServ.DataInvalidated -= TabDServ_DataInvalidated;
}
private async Task loadDetails()
{
if (CRecMSE != null)
{
DateTime adesso = DateTime.Now;
bool doForce = false;
if (SDService.MachNumPzGet(IdxMaccCur) != CRecMSE.PezziProd || SDService.MachProdStGet(IdxMaccCur).IdxOdl != CRecMSE.IdxOdl || (datiProdAct != null && datiProdAct.PzTotODL != CRecMSE.PezziProd))
{
datiProdAct = await TabDServ.StatoProdMacchina(IdxMaccCur, adesso);
datiProdAct = await TabDServ.StatoProdMacchina(IdxMaccCur, DateTime.Now);
SDService.MachProdStSet(IdxMaccCur, datiProdAct);
SDService.MachNumPzSet(IdxMaccCur, CRecMSE.PezziProd);
doForce = true;
}
else
{
datiProdAct = SDService.MachProdStGet(IdxMaccCur);
}
isMulti = SMServ.DictMacchMulti[IdxMaccMain] == 1;
#if false
if (!string.IsNullOrEmpty(IdxMacchSub))
{
isMulti = SMServ.DictMacchMulti[IdxMaccMain] == 1;
}
else
{
isMulti = false;
//isMulti = false;
isMulti = SMServ.DictMacchMulti[IdxMaccMain] == 1;
}
#endif
// verificare
if (!FullMode || !detailLoaded || doForce)
{
await ReloadXDL(true);
}
await ReloadXDL(true);
}
}
protected void setGaugeVals()
{
if (CRecMSE != null)
if (string.IsNullOrEmpty(IdxMacchSub) && isMulti)
{
innerCircleVals.Clear();
outerCircleVals.Clear();
currMaxVal = int.Parse(CRecMSE.NumPezzi.ToString()!);
innerCircleVals.Add(new CircleGaugeMulti.CircSegm() { Color = "#FFC107", Value = CRecMSE.PezziProd });
if (CRecMSE.PezziConf > 0)
if (CRecMSE != null)
{
innerCircleVals.Add(new CircleGaugeMulti.CircSegm() { Color = "#198754", Value = CRecMSE.PezziConf });
// se ho scarti aggiungo all'inizio
if (datiProdAct != null && datiProdAct.PzConfScarto > 0)
innerCircleVals.Clear();
outerCircleVals.Clear();
currMaxVal = CRecMSE.NumPezzi;
// int.Parse(CRecMSE.NumPezzi.ToString()!);
innerCircleVals.Add(new CircleGaugeMulti.CircSegm() { Color = "#FFC107", Value = CRecMSE.PezziProd });
if (CRecMSE.PezziConf > 0)
{
innerCircleVals.Add(new CircleGaugeMulti.CircSegm() { Color = "#CD1916", Value = datiProdAct.PzConfScarto });
innerCircleVals.Add(new CircleGaugeMulti.CircSegm() { Color = "#198754", Value = CRecMSE.PezziConf });
// se ho scarti aggiungo all'inizio
if (datiProdAct != null && datiProdAct.PzConfScarto > 0)
{
innerCircleVals.Add(new CircleGaugeMulti.CircSegm() { Color = "#CD1916", Value = datiProdAct.PzConfScarto });
}
}
if (CRecMSE.extraVal > 0)
{
outerCircleVals.Add(new CircleGaugeMulti.CircSegm() { Color = "#1367FD", Value = CRecMSE.extraVal });
}
}
if (CRecMSE.extraVal > 0)
{
outerCircleVals.Add(new CircleGaugeMulti.CircSegm() { Color = "#1367FD", Value = CRecMSE.extraVal });
}
//Log.Trace($"MBlock | {RecMSE.IdxMacchina} | 03");
}
else
{
Log.Info("MBlock NO DATA");
if (datiProdAct != null)
{
innerCircleVals.Clear();
outerCircleVals.Clear();
currMaxVal = datiProdAct.PzRichODL;
innerCircleVals.Add(new CircleGaugeMulti.CircSegm() { Color = "#FFC107", Value = datiProdAct.PzTotODL });
innerCircleVals.Add(new CircleGaugeMulti.CircSegm() { Color = "#198754", Value = datiProdAct.PzConfAll });
// se ho scarti aggiungo all'inizio
if (datiProdAct.PzConfScarto > 0)
{
innerCircleVals.Add(new CircleGaugeMulti.CircSegm() { Color = "#CD1916", Value = datiProdAct.PzConfScarto });
}
if (CRecMSE.extraVal > 0)
{
outerCircleVals.Add(new CircleGaugeMulti.CircSegm() { Color = "#1367FD", Value = CRecMSE.extraVal });
}
}
}
}
+1
View File
@@ -300,6 +300,7 @@ namespace MP_TAB3.Components
await DoUpdate();
await Task.Delay(1);
await RefreshData();
TabDServ.NotifyDataInvalidated(IdxMaccSel);
isProcessing = false;
}
+1 -1
View File
@@ -3,7 +3,7 @@
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<Version>6.16.2503.716</Version>
<Version>6.16.2503.719</Version>
<ImplicitUsings>enable</ImplicitUsings>
<RootNamespace>MP_TAB3</RootNamespace>
</PropertyGroup>
+1 -1
View File
@@ -1,6 +1,6 @@
<body>
<i>Modulo MAPOSPEC </i>
<h4>Versione: 6.16.2503.716</h4>
<h4>Versione: 6.16.2503.719</h4>
<br /> Note di rilascio:
<ul>
<li>
+1 -1
View File
@@ -1 +1 @@
6.16.2503.716
6.16.2503.719
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<item>
<version>6.16.2503.716</version>
<version>6.16.2503.719</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>
+1 -1
View File
@@ -8,7 +8,7 @@
"AllowedHosts": "*",
"CodApp": "MP.TAB",
"ConnectionStrings": {
"Redis": "localhost:26379,serviceName=devel,DefaultDatabase=5,connectTimeout=5000,syncTimeout=5000,asyncTimeout=5000,abortConnect=false,ssl=false,allowAdmin=true",
"Redis": "localhost:26379,serviceName=devel,DefaultDatabase=5,connectTimeout=15000,syncTimeout=15000,asyncTimeout=15000,abortConnect=false,ssl=false,allowAdmin=true",
"MP.All": "Server=SQL2016DEV;Database=MoonPro; User ID=sa;Password=keyhammer16; integrated security=False; MultipleActiveResultSets=True; App=MP.TAB3;",
"MP.Mon": "Server=SQL2016DEV;Database=MoonPro; User ID=sa;Password=keyhammer16; integrated security=False; MultipleActiveResultSets=True; App=MP.TAB3;",
"MP.IS": "Server=SQL2016DEV;Database=MoonPro_IS_EdilChim; User ID=sa;Password=keyhammer16; integrated security=False; MultipleActiveResultSets=True; App=MP.INVE;",
+6
View File
@@ -24,5 +24,11 @@ namespace MP.Data.DatabaseModels
public DateTime DataTo { get; set; } = DateTime.Now;
public int PzConfRilav { get; set; } = 0;
public int Pz2RecRilav { get; set; } = 0;
[NotMapped]
public int PzConfAll
{
get => PzConfBuoni + PzConfRilav + PzConfScarto;
}
}
}
+17
View File
@@ -82,6 +82,10 @@ namespace MP.Data.Services
/// Evento richiesta rilettura dati pagina (x refresh pagine aperte)
/// </summary>
public event EventHandler ReloadRequest = delegate { };
/// <summary>
/// Evento report dati invalidati x rilettura
/// </summary>
public event EventHandler DataInvalidated = delegate { };
#endregion Public Events
@@ -1310,6 +1314,19 @@ namespace MP.Data.Services
ReloadRequest.Invoke(this, rea);
}
}
/// <summary>
/// Invio notifica dati invalidati x impianto
/// </summary>
/// <param name="idxMacchina"></param>
public void NotifyDataInvalidated(string idxMacchina)
{
if (ReloadRequest != null)
{
// messaggio
ReloadEventArgs rea = new ReloadEventArgs(idxMacchina);
DataInvalidated.Invoke(this, rea);
}
}
/// <summary>
/// ODL da key