Merge branch 'Release/UpdateTabletAndMonRefresh01'

This commit is contained in:
Samuele Locatelli
2024-03-01 10:33:31 +01:00
29 changed files with 452 additions and 157 deletions
+10 -1
View File
@@ -101,7 +101,6 @@ namespace MP_TAB3.Components
DateTime fine = DateTime.Today.AddDays(1);
DateTime inizio = fine.AddDays(-8);
CurrPeriodo = new Periodo(inizio, fine);
await doUpdate();
}
var rawDest = config.GetValue<string>("AlarmDest");
if (!string.IsNullOrEmpty(rawDest))
@@ -114,6 +113,15 @@ namespace MP_TAB3.Components
}
}
protected override async Task OnParametersSetAsync()
{
if (RecMSE != null && !RecMSE.MostlyEquals(lastRecMSE))
{
lastRecMSE = RecMSE;
await doUpdate();
}
}
protected void SaveNumRec(int newNum)
{
NumRecPage = newNum;
@@ -208,6 +216,7 @@ namespace MP_TAB3.Components
private Periodo CurrPeriodo { get; set; } = new Periodo();
private string IdxMaccSel { get; set; } = "";
private MappaStatoExpl? lastRecMSE { get; set; } = null;
#endregion Private Properties
}
+1 -2
View File
@@ -132,9 +132,8 @@ namespace MP_TAB3.Components
await Task.Delay(1);
if (!NavMan.Uri.Contains("reg-new-device"))
{
await MsgServ.IdxMaccSet("");
NavMan.NavigateTo("status-map");
NavMan.NavigateTo("status-map", true);
}
}
+12 -12
View File
@@ -4,15 +4,15 @@
<div class="card-body">
<div class="placeholder-glow">
<span class="placeholder col-4"></span>
<span class="placeholder col-7"></span>
<span class="placeholder col-12 pholderHeight"></span>
<span class="placeholder col-12"></span>
<span class="placeholder col-3"></span>
<span class="placeholder col-7 mb-1"></span>
<span class="placeholder col-12 mb-1 pholderHeight"></span>
<span class="placeholder col-12 mb-1"></span>
<span class="placeholder col-3 mb-1"></span>
<span class="placeholder col-8"></span>
<span class="placeholder col-3"></span>
<span class="placeholder col-7"></span>
<span class="placeholder col-7 mb-1"></span>
<span class="placeholder col-3"></span>
<span class="placeholder col-8"></span>
<span class="placeholder col-8 mb-1"></span>
</div>
</div>
@@ -27,15 +27,15 @@ else
<div class="alert alert-info w-100 fs-3">No data</div>
<div class="placeholder-glow">
<span class="placeholder col-4"></span>
<span class="placeholder col-7"></span>
<span class="placeholder col-12 pholderHeight"></span>
<span class="placeholder col-12"></span>
<span class="placeholder col-3"></span>
<span class="placeholder col-7 mb-1"></span>
<span class="placeholder col-12 mb-1 pholderHeight"></span>
<span class="placeholder col-12 mb-1"></span>
<span class="placeholder col-3 mb-1"></span>
<span class="placeholder col-8"></span>
<span class="placeholder col-3"></span>
<span class="placeholder col-7"></span>
<span class="placeholder col-7 mb-1"></span>
<span class="placeholder col-3"></span>
<span class="placeholder col-8"></span>
<span class="placeholder col-8 mb-1"></span>
</div>
</div>
</div>
+3 -3
View File
@@ -82,9 +82,9 @@
</div>
</div>
}
<div class="col-12">
@* <div class="col-12">
Check articolo in revisione
</div>
</div> *@
@if (cancelSetupEnabled && RecMSE != null && RecMSE.PezziConf == 0)
{
<div class="col-12 col-md-6 p-2">
@@ -307,7 +307,7 @@
Pz Pallet
</div>
<select class="form-select" @bind="PzPallet">
@for (int i = 1; i <= 20; i++)
@for (int i = 1; i <= 30; i++)
{
<option value="@i">@i</option>
}
+46 -39
View File
@@ -646,8 +646,8 @@ namespace MP_TAB3.Components
// se fosse multi CHIUDO ODL x altra tavola...
if (isMulti)
{
// se NON sono in attrezzaggio...
if (!inAttr)
// se NON sono in attrezzaggio// riattrezzaggio...
if (!inAttr && !showSplitOdlRiattr)
{
int idxOdlAltra = 0;
try
@@ -733,7 +733,7 @@ namespace MP_TAB3.Components
{
if (!setupActive)
{
if (RecMSE != null)
if (RecMSE != null && !RecMSE.MostlyEquals(lastRecMSE))
{
if (string.IsNullOrEmpty(IdxMaccSel))
{
@@ -749,11 +749,13 @@ namespace MP_TAB3.Components
}
}
IdxMaccParent = getIdxMaccParent();
checkAll();
// verifica stato inAttr
await CheckAttr();
//salvo lastRec...
lastRecMSE = RecMSE;
await ReloadData(true);
}
checkAll();
// verifica stato inAttr
await CheckAttr();
await ReloadData(true);
}
// verifica conferma produzione
datiProdAct = await TabDServ.StatoProdMacchina(IdxMaccSel, DateTime.Now);
@@ -993,7 +995,10 @@ namespace MP_TAB3.Components
protected async Task ShowRiattrezzaggio()
{
showSplitOdlRiattr = !showSplitOdlRiattr;
await ReloadXDL(true);
if (showSplitOdlRiattr)
{
await ReloadXDL(true);
}
}
protected async Task SplitOdl()
@@ -1103,7 +1108,7 @@ namespace MP_TAB3.Components
private double nextVal = 0;
private string noteAttr = "";
private int numDayOdl = 5;
private int PzPallet = 1;
private int PzPallet = 0;
private string searchPodl = "";
private bool showAll = false;
private bool showChkCloseOdlVal = false;
@@ -1174,6 +1179,7 @@ namespace MP_TAB3.Components
private int IdxOdlAltra { get; set; } = 0;
private bool isLoading { get; set; } = false;
private MappaStatoExpl? lastRecMSE { get; set; } = null;
private string lblWarnBody
{
@@ -1210,9 +1216,6 @@ namespace MP_TAB3.Components
}
private bool setupActive { get; set; } = false;
#if false
private string IdxMaccSelLast = "";
#endif
/// <summary>
/// Verifica visibilità btn riprendi ODL su 2° tavola SE:
@@ -1288,7 +1291,7 @@ namespace MP_TAB3.Components
}
}
private decimal tcRichAttr { get; set; } = 1;
private decimal tcRichAttr { get; set; } = 0;
private string titleOdlDetail
{
@@ -1445,17 +1448,14 @@ namespace MP_TAB3.Components
}
}
private void fixTcNotePzPallet()
private void fixTcNotePzPallet(bool reloadFromOdl)
{
if (tcRichAttr == 0)
if (tcRichAttr == 0 || string.IsNullOrEmpty(noteAttr) || PzPallet == 0)
{
tcRichAttr = IdxPOdlSel == 0 ? currOdl.Tcassegnato : currPodl.Tcassegnato;
tcRichAttr = reloadFromOdl || IdxPOdlSel == 0 ? currOdl.TCRichAttr : currPodl.Tcassegnato;
noteAttr = reloadFromOdl || IdxPOdlSel == 0 ? currOdl.Note : currPodl.Note;
PzPallet = reloadFromOdl || IdxPOdlSel == 0 ? currOdl.PzPallet : currPodl.PzPallet;
}
if (string.IsNullOrEmpty(noteAttr))
{
noteAttr = IdxPOdlSel == 0 ? currOdl.Note : currPodl.Note;
}
PzPallet = IdxPOdlSel == 0 ? currOdl.PzPallet : currPodl.PzPallet;
}
/// <summary>
@@ -1543,21 +1543,25 @@ namespace MP_TAB3.Components
}
}
await updateIdxOdl();
// imposto tcRichAttr in base allo stato...
if (odlOk)
// aggiorno questi dati SOLO SE non sono in attrezzaggio
if (!inAttr && !showSplitOdlRiattr)
{
// prendo TCRich da PODL...
if (IdxPOdlSel > 0)
// imposto tcRichAttr in base allo stato...
if (odlOk)
{
tcRichAttr = currPodl.Tcassegnato;
noteAttr = currPodl.Note;
PzPallet = currPodl.PzPallet;
}
else
{
tcRichAttr = currOdl.TCRichAttr;
noteAttr = currOdl.Note;
PzPallet = currOdl.PzPallet;
// prendo TCRich da PODL...
if (IdxPOdlSel > 0)
{
tcRichAttr = currPodl.Tcassegnato;
noteAttr = currPodl.Note;
PzPallet = currPodl.PzPallet;
}
else if (IdxOdl > 0)
{
tcRichAttr = currOdl.TCRichAttr;
noteAttr = currOdl.Note;
PzPallet = currOdl.PzPallet;
}
}
}
}
@@ -1570,13 +1574,16 @@ namespace MP_TAB3.Components
if (IdxPOdlSel > 0)
{
await ReloadXDL(false);
// controllo se sia cambiato PODL
// solo se NON sno in attrezzaggio controllo se sia cambiato PODL
if (IdxPOdlSel != lastIdxPOdl)
{
lastIdxPOdl = IdxPOdlSel;
tcRichAttr = currPodl.Tcassegnato;
noteAttr = currPodl.Note;
PzPallet = currPodl.PzPallet;
if (!inAttr && !showSplitOdlRiattr)
{
tcRichAttr = currPodl.Tcassegnato;
noteAttr = currPodl.Note;
PzPallet = currPodl.PzPallet;
}
}
}
}
@@ -1615,7 +1622,7 @@ namespace MP_TAB3.Components
}
await updateIdxOdl();
// sistemo TCiclo, note, pzPallet..
fixTcNotePzPallet();
fixTcNotePzPallet(reloadFromOdl);
}
private async Task updateIdxOdl()
+7 -2
View File
@@ -95,9 +95,14 @@ namespace MP_TAB3.Components
setupConf();
StartTimer();
currItem = null;
if (RecMSE != null)
}
protected override async Task OnParametersSetAsync()
{
if (RecMSE != null && !RecMSE.MostlyEquals(lastRecMSE))
{
IdxMaccSel = RecMSE.IdxMacchina;
lastRecMSE = RecMSE;
await ReloadData();
}
await Task.Delay(1);
@@ -153,8 +158,8 @@ namespace MP_TAB3.Components
#region Private Properties
private ObjItemDTO? currItem { get; set; } = null;
private string IdxMaccSel { get; set; } = "";
private MappaStatoExpl? lastRecMSE { get; set; } = null;
#endregion Private Properties
+6 -4
View File
@@ -174,8 +174,9 @@ namespace MP_TAB3.Components
protected override async Task OnParametersSetAsync()
{
lblOut = "";
if (RecMSE != null && string.IsNullOrEmpty(IdxMaccSel))
if (RecMSE != null && (string.IsNullOrEmpty(IdxMaccSel) || !RecMSE.MostlyEquals(lastRecMSE)))
{
await TabDServ.FlushCache("StatoProd");
if (!confProdActive)
{
numPzLasciati = 0;
@@ -196,6 +197,9 @@ namespace MP_TAB3.Components
IdxMaccSel = idxMSel;
}
}
//salvo lastRec...
lastRecMSE = RecMSE;
dtReqUpdate = DateTime.Now.AddMilliseconds(100);
await DoUpdate();
}
}
@@ -261,7 +265,6 @@ namespace MP_TAB3.Components
}
dtReqUpdate = DateTime.Now;
await DoUpdate();
//await InvokeAsync(StateHasChanged);
}
#endregion Protected Methods
@@ -282,10 +285,9 @@ namespace MP_TAB3.Components
private bool confProdActive { get; set; } = false;
private MappaStatoExpl? currRecMSE { get; set; } = null;
private DateTime dtReqUpdate { get; set; } = DateTime.Now;
private string IdxMaccSel { get; set; } = "";
private bool isProcessing { get; set; } = false;
private MappaStatoExpl? lastRecMSE { get; set; } = null;
private int MatrOpr
{
+23 -11
View File
@@ -1,12 +1,6 @@
<div class="row align-items-center flex-wrap">
@*<div class="col-12 text-end">
<div class="form-check form-switch fs-3">
<input class="form-check-input" type="checkbox" @bind="@ShowMS">
<label class="form-check-label">@txtSelMS</label>
</div>
</div>*@
<div class="col-8">
<div class="row align-items-center flex-wrap my-3">
<div class="col-12 col-md-8">
@if (tcMode == "mc")
{
<div class="input-group">
@@ -16,13 +10,31 @@
}
else
{
<div class="input-group my-3">
<div class="input-group">
<span class="input-group-text">@labelTempoIN</span>
<input type="time" class="form-control" @bind="@selTempoMS" step="1">
<select @bind="@selOre" class="form-select">
@for (int i = 0; i < 24; i++)
{
<option value="@i">@i.ToString("00")</option>
}
</select>
<select @bind="@selMin" class="form-select">
@for (int i = 0; i < 60; i++)
{
<option value="@i">@i.ToString("00")</option>
}
</select>
<select @bind="@selSec" class="form-select">
@for (int i = 0; i < 60; i++)
{
<option value="@i">@i.ToString("00")</option>
}
</select>
@* <input type="time" class="form-control" @bind="@selTempoMS" step="1"> *@
</div>
}
</div>
<div class="col-4">
<div class="col-12 col-md-4">
&rarr; @lblTempo
</div>
</div>
+33 -8
View File
@@ -1,5 +1,7 @@
using global::Microsoft.AspNetCore.Components;
using MP.Data.Services;
using System.Globalization;
using System.Text.RegularExpressions;
namespace MP_TAB3.Components
{
@@ -83,11 +85,6 @@ namespace MP_TAB3.Components
/// </summary>
protected decimal _tempoMC { get; set; } = 0;
//protected timeMode modoTempo
//{
// get => ShowMS ? timeMode.MS : timeMode.MC;
//}
[Inject]
protected MessageService MsgServ { get; set; } = null!;
@@ -104,6 +101,34 @@ namespace MP_TAB3.Components
}
}
protected int selOre
{
get => TempoMS.Hours;
set
{
TempoMS = new TimeSpan(value, selMin, selSec);
E_TCRich.InvokeAsync(TempoMC);
}
}
protected int selMin
{
get => TempoMS.Minutes;
set
{
TempoMS = new TimeSpan(selOre,value, selSec);
E_TCRich.InvokeAsync(TempoMC);
}
}
protected int selSec
{
get => TempoMS.Seconds;
set
{
TempoMS = new TimeSpan(selOre, selMin, value);
E_TCRich.InvokeAsync(TempoMC);
}
}
protected bool ShowMS { get; set; } = true;
[Inject]
@@ -146,7 +171,7 @@ namespace MP_TAB3.Components
/// <returns></returns>
protected TimeSpan minCent2Sec(decimal valore)
{
TimeSpan answ = TimeSpan.FromSeconds((double)valore * 60);
TimeSpan answ = TimeSpan.FromSeconds(Math.Round((double)(valore * 60)));
return answ;
}
@@ -186,7 +211,7 @@ namespace MP_TAB3.Components
/// <summary>
/// tempo min:sec
/// </summary>
private TimeSpan _tempoMS { get; set; } = TimeSpan.FromSeconds(1);
private TimeSpan _tempoMS { get; set; } = TimeSpan.FromSeconds(3599);
private string baseLang
{
@@ -208,7 +233,7 @@ namespace MP_TAB3.Components
}
else
{
answ = "ore:min:sec";
answ = "h:m:s";
}
return answ;
}
+6 -10
View File
@@ -49,14 +49,15 @@ namespace MP_TAB3.Components
protected override async Task OnParametersSetAsync()
{
if (RecMSE != null)
if (RecMSE != null && !RecMSE.MostlyEquals(lastRecMSE))
{
CodArticolo = RecMSE.CodArticolo;
IdxMaccSel = RecMSE.IdxMacchina;
IdxOdl = RecMSE.IdxOdl ?? 0;
lastRecMSE = RecMSE;
await ReloadData();
checkReset();
}
await ReloadData();
checkReset();
}
#endregion Protected Methods
@@ -64,9 +65,7 @@ namespace MP_TAB3.Components
#region Private Fields
private string CodArticolo = "";
private bool inAttr = false;
private bool isProcessing = false;
#endregion Private Fields
@@ -74,8 +73,8 @@ namespace MP_TAB3.Components
#region Private Properties
private string IdxMaccSel { get; set; } = "";
private int IdxOdl { get; set; } = 0;
private MappaStatoExpl? lastRecMSE { get; set; } = null;
#endregion Private Properties
@@ -91,16 +90,13 @@ namespace MP_TAB3.Components
// SOLO SE ho articolo senn niente reset...
if (!string.IsNullOrEmpty(CodArticolo))
{
// controllo se la macchina in attrezzaggio...
// controllo se la macchina sia in attrezzaggio...
var rigaStato = TabDServ.StatoMacchina(IdxMaccSel);
if (rigaStato != null)
{
inAttr = (rigaStato.IdxStato == 2);
}
}
#if false
cmp_ST_objCheck.checkInputData();
#endif
}
private async Task ReloadData()
@@ -44,9 +44,18 @@ namespace MP_TAB3.Components
{
if (IdxOdl > 0 && !string.IsNullOrEmpty(CodGruppo))
{
await ReloadData();
if (CodArticolo != codArticoloLast || IdxOdl != idxOdlLast || CodGruppo!=codGruppoLast)
{
codArticoloLast = CodArticolo;
idxOdlLast = IdxOdl;
codGruppoLast = CodGruppo;
await ReloadData();
}
}
}
private int idxOdlLast = 0;
private string codArticoloLast = "";
private string codGruppoLast = "";
[Inject]
protected TabDataService TabServ { get; set; } = null!;
@@ -26,8 +26,8 @@ namespace MP_TAB3.Components
{
if (IdxOdl > 0)
{
var rawData = TabDServ.STAR_pendByOdl(IdxOdl);
showChecks = rawData.Count > 0;
var rawData = TabDServ.STAR_pendByOdl(IdxOdl);
showChecks = rawData.Count > 0;
}
else
{
@@ -52,7 +52,6 @@ namespace MP_TAB3.Components
var pUpd = Task.Run(async () =>
{
await processInput();
//await InvokeAsync(() => StateHasChanged());
});
pUpd.Wait();
}
@@ -70,13 +69,20 @@ namespace MP_TAB3.Components
protected override void OnParametersSet()
{
checkInputData();
if (CodArticolo != codArticoloLast || IdxOdl != idxOdlLast)
{
codArticoloLast = CodArticolo;
idxOdlLast = IdxOdl;
checkInputData();
}
}
#endregion Protected Methods
#region Private Fields
private string codArticoloLast = "";
private int idxOdlLast = 0;
private string lastBCodeVal = "";
private string MessageCss = "";
private string MessageText = "";
+1 -1
View File
@@ -3,7 +3,7 @@
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<Version>6.16.2402.2716</Version>
<Version>6.16.2403.109</Version>
<ImplicitUsings>enable</ImplicitUsings>
<RootNamespace>MP_TAB3</RootNamespace>
</PropertyGroup>
+5 -1
View File
@@ -56,11 +56,15 @@ namespace MP_TAB3.Pages
protected override async Task OnInitializedAsync()
{
await base.OnInitializedAsync();
await ReloadData();
TDFeeder.dataPipe.EA_NewMessage += DataPipe_EA_NewMessage;
TDFeeder.blinkPipe.EA_NewMessage += BlinkPipe_EA_NewMessage;
}
protected override async Task OnParametersSetAsync()
{
await ReloadData();
}
/// <summary>
/// Metodo refresh con controllo salvataggio in LocalStorage ogni 5 sec
/// </summary>
+11 -4
View File
@@ -16,13 +16,20 @@ else
<div class="d-flex justify-content-between flex-wrap align-items-center mb-3">
@if (!string.IsNullOrEmpty(lblOut))
{
<div class="alert @alertCss fs-5 w-100">
@lblOut
<div class="alert @alertCss shadow-lg fs-1 text-center p-5 w-100">
<b>@titleOut</b>
<div>
@lblOut
</div>
<button class="btn btn-success" @onclick="ForceReloadPage"><i class="fa-solid fa-rotate-right"></i> Reload page</button>
</div>
}
@foreach (var item in events2show)
else
{
<ProdStopMan objCss="@item.CssClass" objIcon="@item.Icon" objTxt="@(item.label)" IdxEvento="@item.value" E_EventSelected="EventRecord"></ProdStopMan>
@foreach (var item in events2show)
{
<ProdStopMan objCss="@item.CssClass" objIcon="@item.Icon" objTxt="@(item.label)" IdxEvento="@item.value" E_EventSelected="EventRecord"></ProdStopMan>
}
}
</div>
}
+36 -40
View File
@@ -1,4 +1,5 @@
using global::Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Routing;
using MP.Data;
using MP.Data.DatabaseModels;
using MP.Data.Services;
@@ -9,16 +10,13 @@ namespace MP_TAB3.Pages
{
public partial class ProdStop
{
#region Public Methods
#endregion Public Methods
#region Protected Fields
protected int dltMinRealtime = 1;
protected bool isProcessing = false;
protected string lblOut = "";
protected int minAnticipoRicalcolo = 1;
protected bool rdm_ChkOnly = false;
@@ -33,12 +31,10 @@ namespace MP_TAB3.Pages
protected string alertCss { get; set; } = "alert-danger";
protected DateTime DtRif { get; set; } = DateTime.Now;
protected List<vSelEventiBCodeModel> events2show { get; set; } = new List<vSelEventiBCodeModel>();
/// <summary>
/// Determina se insert sia Realtime o batch con DataOra (in base a diff tra DataOra
/// selezionata e realtime, se superiore ad X minuti NON realtime)
@@ -56,8 +52,6 @@ namespace MP_TAB3.Pages
}
}
protected string lblOut { get; set; } = "";
[Inject]
protected StatusData MDataService { get; set; } = null!;
@@ -186,12 +180,13 @@ namespace MP_TAB3.Pages
TabDServ.MacchinaSetInsEnab(IdxMacc, true);
}
// mostro esito
alertCss = "alert-succes";
lblOut = $"Registrata dichiarazione fermata [{rigaEvento.Nome}] alle {DateTime.Now:HH:mm:ss}";
alertCss = "alert-primary";
titleOut = rigaEvento.Nome;
lblOut = $"Registrata dichiarazione fermata alle {DateTime.Now:HH:mm:ss}";
}
else
{
alertCss = "alert-danger";
alertCss = "alert-warning";
lblOut = $"Codice evento non valido! {IdxEv}";
}
}
@@ -215,6 +210,11 @@ namespace MP_TAB3.Pages
}
}
protected void ForceReloadPage()
{
NavMan.NavigateTo(NavMan.Uri, true);
}
protected override async Task OnInitializedAsync()
{
await base.OnInitializedAsync();
@@ -223,38 +223,13 @@ namespace MP_TAB3.Pages
rdm_nEvStep = SMServ.GetConfInt("rdm_nEvStep");
rdm_nEvCheck = SMServ.GetConfInt("rdm_nEvCheck");
rdm_ChkOnly = SMServ.GetConfBool("rdm_ChkOnly");
}
protected override async Task OnParametersSetAsync()
{
// leggo gli altri dati
await ReloadData();
}
protected void SetDate(DateTime newDate)
{
DtRif = newDate;
}
#endregion Protected Methods
#region Private Fields
private static Logger Log = LogManager.GetCurrentClassLogger();
#endregion Private Fields
#region Private Properties
private int MatrOpr
{
get => MsgServ.MatrOpr;
}
#endregion Private Properties
#region Private Methods
protected override async Task ReloadData()
{
if (string.IsNullOrEmpty(IdxMacc))
@@ -277,6 +252,27 @@ namespace MP_TAB3.Pages
}
}
#endregion Private Methods
protected void SetDate(DateTime newDate)
{
DtRif = newDate;
}
#endregion Protected Methods
#region Private Fields
private static Logger Log = LogManager.GetCurrentClassLogger();
private string titleOut = "";
#endregion Private Fields
#region Private Properties
private int MatrOpr
{
get => MsgServ.MatrOpr;
}
#endregion Private Properties
}
}
+1
View File
@@ -10,6 +10,7 @@ namespace MP_TAB3.Pages
await ReloadData();
}
protected void SetMacc(string selIdxMacc)
{
IdxMaccSubSel = selIdxMacc;
+11 -3
View File
@@ -71,12 +71,20 @@
<script>
Blazor.start({
reconnectionOptions: {
maxRetries: 600,
maxRetries: Infinity,
retryIntervalMilliseconds: 1000
},
reconnectionHandler: {
onConnectionDown: (options, error) => console.error(error),
onConnectionUp: () => console.log("Client reconnected!")
onConnectionDown: (options, error) => {
Blazor.defaultReconnectionHandler.onConnectionDown(options, error);
Blazor.defaultReconnectionHandler._reconnectionDisplay.rejected = function () {
window.location.reload();
}
},
onConnectionUp: () => {
console.log("Client reconnected!");
document.location.reload();
}
}
}).then(() => {
Blazor.defaultReconnectionHandler._reconnectCallback = function (d) {
+1 -1
View File
@@ -1,6 +1,6 @@
<body>
<i>Modulo MAPOSPEC </i>
<h4>Versione: 6.16.2402.2716</h4>
<h4>Versione: 6.16.2403.109</h4>
<br /> Note di rilascio:
<ul>
<li>
+1 -1
View File
@@ -1 +1 @@
6.16.2402.2716
6.16.2403.109
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<item>
<version>6.16.2402.2716</version>
<version>6.16.2403.109</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>
+191
View File
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data;
#nullable disable
// <Auto-Generated>
@@ -159,5 +160,195 @@ namespace MP.Data.DatabaseModels
return PezziProd >= NumPezzi;
}
}
public override bool Equals(object obj)
{
if (!(obj is MappaStatoExpl item))
return false;
if (RowNum != item.RowNum)
return false;
if (LastUpdate != item.LastUpdate)
return false;
if (IdxMacchina != item.IdxMacchina)
return false;
if (CodMacchina != item.CodMacchina)
return false;
if (Nome != item.Nome)
return false;
if (Url != item.Url)
return false;
if (IdxOdl != item.IdxOdl)
return false;
if (IdxPOdl != item.IdxPOdl)
return false;
if (CodArticolo != item.CodArticolo)
return false;
if (Disegno != item.Disegno)
return false;
if (NumPezzi != item.NumPezzi)
return false;
if (TCAssegnato != item.TCAssegnato)
return false;
if (DataInizioOdl != item.DataInizioOdl)
return false;
if (Semaforo != item.Semaforo)
return false;
if (IdxStato != item.IdxStato)
return false;
if (DescrizioneStato != item.DescrizioneStato)
return false;
if (Durata != item.Durata)
return false;
if (PezziProd != item.PezziProd)
return false;
if (PezziConf != item.PezziConf)
return false;
if (TempoOn != item.TempoOn)
return false;
if (TempoAuto != item.TempoAuto)
return false;
if (TempoRun != item.TempoRun)
return false;
if (TCMedio != item.TCMedio)
return false;
if (TCLav != item.TCLav)
return false;
if (TCEff != item.TCEff)
return false;
if (TCMedioRt != item.TCMedioRt)
return false;
if (TCLavRT != item.TCLavRT)
return false;
if (TCEffRT != item.TCEffRT)
return false;
return true;
}
public bool MostlyEquals(object obj)
{
if (!(obj is MappaStatoExpl item))
return false;
if (RowNum != item.RowNum)
return false;
//if (LastUpdate != item.LastUpdate)
// return false;
if (IdxMacchina != item.IdxMacchina)
return false;
if (CodMacchina != item.CodMacchina)
return false;
if (Nome != item.Nome)
return false;
if (Url != item.Url)
return false;
if (IdxOdl != item.IdxOdl)
return false;
if (IdxPOdl != item.IdxPOdl)
return false;
if (CodArticolo != item.CodArticolo)
return false;
if (Disegno != item.Disegno)
return false;
if (NumPezzi != item.NumPezzi)
return false;
if (TCAssegnato != item.TCAssegnato)
return false;
if (DataInizioOdl != item.DataInizioOdl)
return false;
if (Semaforo != item.Semaforo)
return false;
if (IdxStato != item.IdxStato)
return false;
//if (DescrizioneStato != item.DescrizioneStato)
// return false;
//if (Durata != item.Durata)
// return false;
if (PezziProd != item.PezziProd)
return false;
if (PezziConf != item.PezziConf)
return false;
//if (TempoOn != item.TempoOn)
// return false;
//if (TempoAuto != item.TempoAuto)
// return false;
//if (TempoRun != item.TempoRun)
// return false;
//if (TCMedio != item.TCMedio)
// return false;
//if (TCLav != item.TCLav)
// return false;
//if (TCEff != item.TCEff)
// return false;
//if (TCMedioRt != item.TCMedioRt)
// return false;
//if (TCLavRT != item.TCLavRT)
// return false;
//if (TCEffRT != item.TCEffRT)
// return false;
return true;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
}
}
+3 -1
View File
@@ -900,6 +900,8 @@ namespace MP.Data.Services
else
{
Log.Error($"Errore: non trovato valore <IOB_data> valido in REDIS | key: {currKey}");
Log.Info($"REDIS | conf: {redisConn.Configuration}");
Log.Info($" --> Valore trovato:{Environment.NewLine}{rawData}");
}
if (result == null)
{
@@ -3162,7 +3164,7 @@ namespace MP.Data.Services
result = await Task.FromResult(dbTabController.VSOdlGetUnused(idxMacchina, showAll, numDayAdd));
// serializzp e salvo...
rawData = JsonConvert.SerializeObject(result);
await redisDb.StringSetAsync(currKey, rawData, UltraFastCache);
await redisDb.StringSetAsync(currKey, rawData, FastCache);
}
if (result == null)
{
+2 -2
View File
@@ -2,7 +2,7 @@ using NLog;
namespace MP.Mon.Components
{
public partial class CmpFooter
public partial class CmpFooter:IDisposable
{
#region Public Methods
@@ -26,7 +26,7 @@ namespace MP.Mon.Components
public void StartTimer()
{
int tOutPeriod = 5000;
int tOutPeriod = 1000;
//int.TryParse(Configuration["ReloadStatusTimer"], out tOutPeriod);
aTimer = new System.Timers.Timer(tOutPeriod);
aTimer.Elapsed += ElapsedTimer;
+1 -1
View File
@@ -4,7 +4,7 @@
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<Version>6.16.2402.2709</Version>
<Version>6.16.2403.110</Version>
</PropertyGroup>
<ItemGroup>
+17 -1
View File
@@ -32,7 +32,7 @@
<script src="_framework/blazor.server.js" autostart="false"></script>
@*Gestione autoriconnessione: https://github.com/dotnet/aspnetcore/issues/38305 (vedere anche https://docs.microsoft.com/it-it/aspnet/core/blazor/fundamentals/signalr?view=aspnetcore-6.0#modify-the-reconnection-handler-blazor-server)*@
<script>
@* <script>
Blazor.start({
reconnectionOptions: {
maxRetries: 600,
@@ -56,6 +56,22 @@
}
});
});
</script> *@
<script>
Blazor.start({
reconnectionOptions: {
maxRetries: 3000,
retryIntervalMilliseconds: 2000
},
reconnectionHandler: {
onConnectionDown: (options, error) => console.error(error),
onConnectionUp: () => console.log("Client reconnected!")
}
}).then(() => {
Blazor.defaultReconnectionHandler._reconnectCallback = function (d) {
document.location.reload();
}
});
</script>
</body>
+1 -1
View File
@@ -1,6 +1,6 @@
<body>
<i>Modulo MON MAPO</i>
<h4>Versione: 6.16.2402.2709</h4>
<h4>Versione: 6.16.2403.110</h4>
<br /> Note di rilascio:
<ul>
<li>
+1 -1
View File
@@ -1 +1 @@
6.16.2402.2709
6.16.2403.110
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<item>
<version>6.16.2402.2709</version>
<version>6.16.2403.110</version>
<url>https://nexus.steamware.net/repository/SWS/MP-MON/stable/LAST/MP.Mon.zip</url>
<changelog>https://nexus.steamware.net/repository/SWS/MP-MON/stable/LAST/ChangeLog.html</changelog>
<mandatory>false</mandatory>