Update refresh pagine in conferma prod + fix status map TAB3
This commit is contained in:
@@ -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 });
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -300,6 +300,7 @@ namespace MP_TAB3.Components
|
||||
await DoUpdate();
|
||||
await Task.Delay(1);
|
||||
await RefreshData();
|
||||
TabDServ.NotifyDataInvalidated(IdxMaccSel);
|
||||
isProcessing = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -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,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 @@
|
||||
6.16.2503.716
|
||||
6.16.2503.719
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;",
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user