diff --git a/MP-TAB-SERV/Components/OdlMan.razor b/MP-TAB-SERV/Components/OdlMan.razor
index af703efc..e7f4f399 100644
--- a/MP-TAB-SERV/Components/OdlMan.razor
+++ b/MP-TAB-SERV/Components/OdlMan.razor
@@ -6,15 +6,17 @@
@if (isProcessing)
{
-
+
}
else
{
@if (needConfProd)
{
-
-
@lblWarnHead
-
@lblWarnBody @numPz2Conf.ToString("N0") pz NC
+
+
+
@lblWarnHead
+
@lblWarnBody @numPz2Conf.ToString("N0") pz NC
+
@if (!odlOk)
{
@@ -41,7 +43,7 @@
@if (!inAttr && !showOdlDetail)
{
-
+
}
@@ -56,7 +58,7 @@
@if (idxPOdlSel == 0 && !inAttr)
{
-
+
}
@@ -220,15 +222,18 @@
}
else
{
-
-
+ }
}
-
+
diff --git a/MP-TAB-SERV/Components/OdlMan.razor.cs b/MP-TAB-SERV/Components/OdlMan.razor.cs
index 3e2cf2d3..c08f2941 100644
--- a/MP-TAB-SERV/Components/OdlMan.razor.cs
+++ b/MP-TAB-SERV/Components/OdlMan.razor.cs
@@ -5,6 +5,7 @@ using MP.Data.DatabaseModels;
using MP.Data.Objects;
using MP.Data.Services;
using NLog;
+using System;
using System.Text;
using static MP.Data.Objects.Enums;
@@ -281,12 +282,19 @@ namespace MP_TAB_SERV.Components
checkAll();
// imposto odl...
idxOdl = idxODLStart;
+ IdxPOdlSel = 0;
+ inAttr = false;
+ IdxPOdlSel = 0;
+ RecMSE = null;
await advStep(currStep++);
// faccio refresh e riporto
await RefreshData();
await CheckAttr();
// chiudo update...
isProcessing = false;
+ //await InvokeAsync(StateHasChanged);
+ // qui rimando a pag principale...
+ NavMan.NavigateTo("/", true);
}
///
@@ -312,22 +320,7 @@ namespace MP_TAB_SERV.Components
int currStep = 0;
await advStep(currStep);
isProcessing = true;
-
DateTime adesso = DateTime.Now;
-#if false
- // se fosse multi mi chiedo se sia DAVVERO in attrezzaggio...
- if (isMulti)
- {
- try
- {
- // controllo se NON SONO gia in attrezzaggio...
- var rigaStato = TabDServ.StatoMacchina(IdxMaccParent);
- inAttr = (rigaStato.IdxStato == 2);
- }
- catch
- { }
- }
-#endif
await advStep(currStep++);
// proseguo
int idxODL_curr = 0;
@@ -340,7 +333,7 @@ namespace MP_TAB_SERV.Components
{
tcRichAttr = currPodl.Tcassegnato;
}
- if (enableSplitODL)
+ if (enableSplitODL && !forceCloseOdl)
{
// splitto VECCHIO ODL (se fosse rimasto qualcosa da produrre e ne sia rimasto uno.......)
try
@@ -480,8 +473,6 @@ namespace MP_TAB_SERV.Components
await TabDServ.saveCounter(IdxMaccSel, "0");
// imposto ODL su redis...
TabDServ.saveCurrODL(IdxMaccSel, idxODL_curr);
- // salvo odl selezionato
- idxOdl = idxODL_curr;
await advStep(currStep++);
}
else
@@ -490,12 +481,19 @@ namespace MP_TAB_SERV.Components
}
// refresh finale
+ var tmpTCR = tcRichAttr;
checkBtnStatus();
fixSplitBtn(false);
// faccio refresh e riporto
+ idxOdl = idxODL_curr;
+ IdxPOdlSel = 0;
+ RecMSE = null;
await RefreshData();
await CheckAttr();
+ inAttr = true;
+ tcRichAttr = tmpTCR;
isProcessing = false;
+ await InvokeAsync(StateHasChanged);
}
protected override async Task OnInitializedAsync()
@@ -530,6 +528,7 @@ namespace MP_TAB_SERV.Components
{
if (!await JSRuntime.InvokeAsync("confirm", $"Confermi fine produzione?"))
return;
+
// preparo gestione progress display
MaxVal = 7;
isProcessing = true;
@@ -626,18 +625,27 @@ namespace MP_TAB_SERV.Components
}
await advStep(currStep++);
// faccio refresh e riporto
+ IdxPOdlSel = 0;
+ RecMSE = null;
+ currOdl = new ODLExpModel();
+ inAttr = false;
+ IdxPOdlSel = 0;
+ forceCloseOdl = true;
+ //await Task.Delay(250);
await RefreshData();
await CheckAttr();
await advStep(currStep++);
isProcessing = false;
+ await InvokeAsync(StateHasChanged);
+ //NavMan.NavigateTo(NavMan.Uri, true);
}
protected async Task RefreshData()
{
// refresh tabella dati tablet...
- TabDServ.RicalcMse(IdxMaccSel, 0);
+ RecMSE = null;
// rileggo e salvo..
- var ListMSE = await MDataService.MseGetAll();
+ var ListMSE = await MDataService.MseGetAll(true);
if (ListMSE != null)
{
// salvo in LocalStorage...
@@ -699,20 +707,44 @@ namespace MP_TAB_SERV.Components
{
showOdlDetail = !showOdlDetail;
// se devo mostrare, carico dati ODL!
- if (showOdlDetail && RecMSE != null)
+ if (showOdlDetail)
{
await ReloadXDL(true);
}
}
+ private string txtForceCloseOdl
+ {
+ get => forceCloseOdl ? Traduci("ForceCloseODL") : Traduci("SplitCurrODL");
+ }
+
private async Task ReloadXDL(bool reloadFromOdl)
{
int currIdxPOdl = IdxPOdlSel;
- if (reloadFromOdl)
+ if (RecMSE != null)
{
- currIdxPOdl = RecMSE != null ? RecMSE.IdxPOdl ?? 0 : 0;
+ if (reloadFromOdl)
+ {
+ currIdxPOdl = RecMSE.IdxPOdl ?? 0;
+ }
+ // se ho PODL valido...
+ if (currIdxPOdl > 0)
+ {
+ currPodl = await TabDServ.PODLExp_getByKey(currIdxPOdl);
+ }
+ else
+ {
+ currPodl = new PODLExpModel()
+ {
+ IdxOdl = RecMSE.IdxOdl ?? 0,
+ KeyRichiesta = "-",
+ CodArticolo = RecMSE.CodArticolo,
+ DescArticolo = RecMSE.CodArticolo,
+ NumPezzi = RecMSE.NumPezzi,
+ Tcassegnato = RecMSE.TCAssegnato
+ };
+ }
}
- currPodl = await TabDServ.PODLExp_getByKey(currIdxPOdl);
// update a runtime dati ODL se assegnato
if (currPodl.IdxOdl > 0)
{
@@ -1193,7 +1225,7 @@ namespace MP_TAB_SERV.Components
inCmd2 = await TabDServ.EvListInsert(newRecParent, Enums.tipoInputEvento.barcode);
}
// chiamo refresh MSE
- TabDServ.RicalcMse(idxMaccCurr, 0);
+ await TabDServ.RicalcMse(idxMaccCurr, 0);
lblOut = userMsg;
// loggo USR MSG
Log.Info(userMsg);
@@ -1225,7 +1257,15 @@ namespace MP_TAB_SERV.Components
// imposto tcRichAttr in base allo stato...
if (odlOk)
{
- tcRichAttr = currPodl.Tcassegnato; ;
+ // prendo TCRich da ODL...
+ if (IdxOdl > 0)
+ {
+ tcRichAttr = currOdl.TCRichAttr;
+ }
+ else
+ {
+ tcRichAttr = currPodl.Tcassegnato;
+ }
}
}
diff --git a/MP-TAB-SERV/Components/ProdConfirm.razor.cs b/MP-TAB-SERV/Components/ProdConfirm.razor.cs
index 0206570d..b9867dc0 100644
--- a/MP-TAB-SERV/Components/ProdConfirm.razor.cs
+++ b/MP-TAB-SERV/Components/ProdConfirm.razor.cs
@@ -165,9 +165,9 @@ namespace MP_TAB_SERV.Components
// effettua conferma con conf da DB del tipo (giorni / turni / periodo
bool fatto = effettuaConfermaProd();
// refresh tabella dati tablet...
- TabDServ.RicalcMse(IdxMaccSel, 0);
+ await TabDServ.RicalcMse(IdxMaccSel, 0);
// rileggo e salvo..
- var ListMSE = await MDataService.MseGetAll();
+ var ListMSE = await MDataService.MseGetAll(true);
if (ListMSE != null)
{
// salvo in LocalStorage...
diff --git a/MP-TAB-SERV/MP-TAB-SERV.csproj b/MP-TAB-SERV/MP-TAB-SERV.csproj
index 56514f72..85516259 100644
--- a/MP-TAB-SERV/MP-TAB-SERV.csproj
+++ b/MP-TAB-SERV/MP-TAB-SERV.csproj
@@ -3,7 +3,7 @@
net6.0
enable
- 6.16.2311.915
+ 6.16.2311.918
enable
MP_TAB_SERV
diff --git a/MP-TAB-SERV/Pages/ProdStop.razor.cs b/MP-TAB-SERV/Pages/ProdStop.razor.cs
index 3715eb4f..e76ce62c 100644
--- a/MP-TAB-SERV/Pages/ProdStop.razor.cs
+++ b/MP-TAB-SERV/Pages/ProdStop.razor.cs
@@ -66,7 +66,7 @@ namespace MP_TAB_SERV.Pages
protected SharedMemService SMServ { get; set; } = null!;
[Inject]
- protected TabDataService TabServ { get; set; } = null!;
+ protected TabDataService TabDServ { get; set; } = null!;
#endregion Protected Properties
@@ -87,7 +87,7 @@ namespace MP_TAB_SERV.Pages
var rigaEvento = SMServ.GetEventRow(IdxEv);
if (rigaEvento != null)
{
- var rigaStato = TabServ.StatoMacchina(IdxMacc);
+ var rigaStato = TabDServ.StatoMacchina(IdxMacc);
// processo evento...
if (insRealtime)
{
@@ -103,14 +103,14 @@ namespace MP_TAB_SERV.Pages
pallet = rigaStato.pallet
};
// se realtime
- await TabServ.EvListInsert(newRec, MP.Data.Objects.Enums.tipoInputEvento.barcode);
+ await TabDServ.EvListInsert(newRec, MP.Data.Objects.Enums.tipoInputEvento.barcode);
// resetta il microstato in modo da ricevere successive info HW
- TabServ.resetMicrostatoMacchina(IdxMacc);
+ TabDServ.resetMicrostatoMacchina(IdxMacc);
}
else
{
// in primis disabilito insert...
- TabServ.MacchinaSetInsEnab(IdxMacc, false);
+ TabDServ.MacchinaSetInsEnab(IdxMacc, false);
// calcolo evento
string evento = $"{IdxEv}";
@@ -128,7 +128,7 @@ namespace MP_TAB_SERV.Pages
try
{
// cerco da 1 sec DOPO evento...
- var tabNext = TabServ.DDB_getNext(IdxMacc, DtRif.AddSeconds(1));
+ var tabNext = TabDServ.DDB_getNext(IdxMacc, DtRif.AddSeconds(1));
DateTime nextEvDT = tabNext != null ? tabNext.InizioStato : DateTime.Now.AddMinutes(-1);
@@ -145,7 +145,7 @@ namespace MP_TAB_SERV.Pages
MatrOpr = MatrOpr,
pallet = rigaStato.pallet
};
- await TabServ.EvListInsert(newRec, MP.Data.Objects.Enums.tipoInputEvento.barcode);
+ await TabDServ.EvListInsert(newRec, MP.Data.Objects.Enums.tipoInputEvento.barcode);
// update commento apertura!
commento = $"999 - Dich StartEvt: {evento} [{codRich}]";
@@ -159,11 +159,11 @@ namespace MP_TAB_SERV.Pages
MatrOpr = MatrOpr,
pallet = rigaStato.pallet
};
- await TabServ.EvListInsert(newRec, MP.Data.Objects.Enums.tipoInputEvento.barcode);
+ await TabDServ.EvListInsert(newRec, MP.Data.Objects.Enums.tipoInputEvento.barcode);
// eseguo ricalcolo!
DateTime startRicalcolo = DtRif.AddMinutes(minAnticipoRicalcolo);
// eseguo ricalcolo periodo..
- await TabServ.DDB_DoRecalc(IdxMacc, startRicalcolo, 1, rdm_nEvStep, rdm_nEvCheck, rdm_ChkOnly);
+ await TabDServ.DDB_DoRecalc(IdxMacc, startRicalcolo, 1, rdm_nEvStep, rdm_nEvCheck, rdm_ChkOnly);
// chiamo registrazione commento...
if (noteEdit != null)
{
@@ -177,7 +177,7 @@ namespace MP_TAB_SERV.Pages
}
// riabilito insert... anche se non dovrebbe servire x stored ricalcolo precedente...
- TabServ.MacchinaSetInsEnab(IdxMacc, true);
+ TabDServ.MacchinaSetInsEnab(IdxMacc, true);
}
// mostro esito
alertCss = "alert-succes";
@@ -190,9 +190,9 @@ namespace MP_TAB_SERV.Pages
}
}
// faccio refresh x singola macchina 2019.03.26
- TabServ.RicalcMse(IdxMacc, 0);
+ await TabDServ.RicalcMse(IdxMacc, 0);
// rileggo e salvo..
- var ListMSE = await MDataService.MseGetAll();
+ var ListMSE = await MDataService.MseGetAll(true);
if (ListMSE != null)
{
// salvo in LocalStorage...
@@ -268,7 +268,7 @@ namespace MP_TAB_SERV.Pages
{
CurrMSE = await MServ.GetMachineMse(IdxMacc);
}
- var eventsAll = await TabServ.AnagEventiGetByMacch(IdxMacc);
+ var eventsAll = await TabDServ.AnagEventiGetByMacch(IdxMacc);
if (eventsAll != null)
{
events2show = eventsAll.Where(x => x.EventoTablet).OrderBy(x => x.Label).ToList();
diff --git a/MP-TAB-SERV/Pages/StatusMap.razor.cs b/MP-TAB-SERV/Pages/StatusMap.razor.cs
index 49cfeb7b..cbc1c392 100644
--- a/MP-TAB-SERV/Pages/StatusMap.razor.cs
+++ b/MP-TAB-SERV/Pages/StatusMap.razor.cs
@@ -96,7 +96,7 @@ namespace MP_TAB_SERV.Pages
{
await getWDim();
isCalcSize = false;
- ListMSE = await MDataService.MseGetAll();
+ ListMSE = await MDataService.MseGetAll(true);
await InvokeAsync(StateHasChanged);
}
if (ListMSE != null)
diff --git a/MP-TAB-SERV/Resources/ChangeLog.html b/MP-TAB-SERV/Resources/ChangeLog.html
index ffefa68b..02639326 100644
--- a/MP-TAB-SERV/Resources/ChangeLog.html
+++ b/MP-TAB-SERV/Resources/ChangeLog.html
@@ -1,6 +1,6 @@
Modulo MAPOSPEC
- Versione: 6.16.2311.915
+ Versione: 6.16.2311.918
Note di rilascio:
-
diff --git a/MP-TAB-SERV/Resources/VersNum.txt b/MP-TAB-SERV/Resources/VersNum.txt
index 8fd925f8..98e1300d 100644
--- a/MP-TAB-SERV/Resources/VersNum.txt
+++ b/MP-TAB-SERV/Resources/VersNum.txt
@@ -1 +1 @@
-6.16.2311.915
+6.16.2311.918
diff --git a/MP-TAB-SERV/Resources/manifest.xml b/MP-TAB-SERV/Resources/manifest.xml
index cb13f8ba..70263c9f 100644
--- a/MP-TAB-SERV/Resources/manifest.xml
+++ b/MP-TAB-SERV/Resources/manifest.xml
@@ -1,6 +1,6 @@
-
- 6.16.2311.915
+ 6.16.2311.918
https://nexus.steamware.net/repository/SWS/MP-TAB-SERV/stable/LAST/MP-TAB-SERV.zip
https://nexus.steamware.net/repository/SWS/MP-TAB-SERV/stable/LAST/ChangeLog.html
false
diff --git a/MP.Data/Constants.cs b/MP.Data/Constants.cs
index 0fde3879..9f43bd5b 100644
--- a/MP.Data/Constants.cs
+++ b/MP.Data/Constants.cs
@@ -17,6 +17,10 @@
// REDIS KEY Dati correnti
public static readonly string CONF_MON_KEY = $"{BASE_HASH}:Conf:MonDispData";
+
+
+ public static string redisMseKey = "MP:MON:Cache:MSE";
+
#endregion Public Fields
}
}
\ No newline at end of file
diff --git a/MP.Data/Controllers/MpTabController.cs b/MP.Data/Controllers/MpTabController.cs
index 58d01c22..a3190441 100644
--- a/MP.Data/Controllers/MpTabController.cs
+++ b/MP.Data/Controllers/MpTabController.cs
@@ -504,7 +504,7 @@ namespace MP.Data.Controllers
var FlgStorico = new SqlParameter("@flgStorico", flgStorico);
var result = dbCtx
.Database
- .ExecuteSqlRaw("EXEC stp_EL_UpsertByOdl @IdxMacchina, @flgStorico, @DoInsert", IdxOdl, FlgStorico);
+ .ExecuteSqlRaw("EXEC stp_EL_UpsertByOdl @IdxODL, @flgStorico", IdxOdl, FlgStorico);
fatto = result != 0;
}
catch (Exception exc)
diff --git a/MP.Data/DatabaseModels/ODLExpModel.cs b/MP.Data/DatabaseModels/ODLExpModel.cs
index dbfd429e..e2ed9a4b 100644
--- a/MP.Data/DatabaseModels/ODLExpModel.cs
+++ b/MP.Data/DatabaseModels/ODLExpModel.cs
@@ -21,6 +21,7 @@ namespace MP.Data.DatabaseModels
public string IdxMacchina { get; set; }
public int NumPezzi { get; set; }
public decimal Tcassegnato { get; set; }
+ public decimal TCRichAttr { get; set; }
public DateTime? DataInizio { get; set; }
public DateTime? DataFine { get; set; }
[MaxLength(2500)]
diff --git a/MP.Data/Services/StatusData.cs b/MP.Data/Services/StatusData.cs
index 5eb81cec..3c1782c9 100644
--- a/MP.Data/Services/StatusData.cs
+++ b/MP.Data/Services/StatusData.cs
@@ -118,7 +118,7 @@ namespace MP.Data.Services
stopWatch.Start();
List? result = new List();
// cerco in redis...
- RedisValue rawData = redisDb.StringGet(redisMseKey);
+ RedisValue rawData = redisDb.StringGet(Constants.redisMseKey);
if (rawData.HasValue && !forceDb)
{
result = JsonConvert.DeserializeObject
>($"{rawData}");
@@ -131,7 +131,7 @@ namespace MP.Data.Services
result = await Task.FromResult(dbController.MseGetAll(maxAge));
// serializzp e salvo...
rawData = JsonConvert.SerializeObject(result);
- await redisDb.StringSetAsync(redisMseKey, rawData, TimeSpan.FromMilliseconds(maxAge));
+ await redisDb.StringSetAsync(Constants.redisMseKey, rawData, TimeSpan.FromMilliseconds(maxAge));
stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
Log.Debug($"Read from DB: {ts.TotalMilliseconds}ms");
@@ -165,7 +165,9 @@ namespace MP.Data.Services
private static IConfiguration _configuration = null!;
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
private int maxAge = 2000;
- private string redisMseKey = "MP:MON:Cache:MSE";
+#if false
+ private string redisMseKey = "MP:MON:Cache:MSE";
+#endif
#endregion Private Fields
diff --git a/MP.Data/Services/TabDataService.cs b/MP.Data/Services/TabDataService.cs
index 8489419e..191de962 100644
--- a/MP.Data/Services/TabDataService.cs
+++ b/MP.Data/Services/TabDataService.cs
@@ -1199,7 +1199,7 @@ namespace MP.Data.Services
answ = dbTabController.OdlInizioSetup(idxODL, matrOpr, idxMacchina, tcRich, pzPallet, note);
await FlushCache("ODL");
await FlushCache("PODL");
- await FlushCache("VSODL");
+ await FlushCache("VSODL");
}
catch (Exception exc)
{
@@ -1893,10 +1893,11 @@ namespace MP.Data.Services
/// idx macchina da confermare
/// Num massimo secondi di "vecchiaia" del dato
///
- public bool RicalcMse(string idxMacchina, int maxAgeSec)
+ public async Task RicalcMse(string idxMacchina, int maxAgeSec)
{
bool answ = false;
answ = dbTabController.RicalcMse(idxMacchina, maxAgeSec);
+ await FlushCache(Constants.redisMseKey);
return answ;
}