diff --git a/MP-TAB3/Components/CurrOdlDetail.razor b/MP-TAB3/Components/CurrOdlDetail.razor index 366988e0..a9195b0b 100644 --- a/MP-TAB3/Components/CurrOdlDetail.razor +++ b/MP-TAB3/Components/CurrOdlDetail.razor @@ -168,8 +168,14 @@ }
- @if (!showPOdlData) + @if (CurrOdl != null && !showPOdlData) { +
+ Inizio: +
+
+ @($"{CurrOdl.DataInizio:ddd yyyy.MM.dd HH:mm:ss}") +
} else { diff --git a/MP-TAB3/Components/OdlMan.razor.cs b/MP-TAB3/Components/OdlMan.razor.cs index a3c1352d..ecf8fd17 100644 --- a/MP-TAB3/Components/OdlMan.razor.cs +++ b/MP-TAB3/Components/OdlMan.razor.cs @@ -328,6 +328,17 @@ namespace MP_TAB3.Components await CheckAttr(); await advStep(currStep++); await FlushMpIoOdlCache(); + // notifica... + if (isMulti) + { + await E_MachSel.InvokeAsync(idxMaccAltraTav); + await Task.Delay(100); + } + else + { + TabDServ.NotifyDataInvalidated(IdxMaccSel); + } + await E_MachSel.InvokeAsync(IdxMaccSel); isProcessing = false; await InvokeAsync(StateHasChanged); } @@ -369,6 +380,17 @@ namespace MP_TAB3.Components await CheckAttr(); await advStep(currStep++); await FlushMpIoOdlCache(); + // notifica... + if (isMulti) + { + await E_MachSel.InvokeAsync(idxMaccAltraTav); + await Task.Delay(100); + } + else + { + TabDServ.NotifyDataInvalidated(IdxMaccSel); + } + await E_MachSel.InvokeAsync(IdxMaccSel); // chiudo update... isProcessing = false; await InvokeAsync(StateHasChanged); @@ -410,6 +432,18 @@ namespace MP_TAB3.Components await RefreshData(); await CheckAttr(); await advStep(currStep++); + await FlushMpIoOdlCache(); + // notifica... + if (isMulti) + { + await E_MachSel.InvokeAsync(idxMaccAltraTav); + await Task.Delay(100); + } + else + { + TabDServ.NotifyDataInvalidated(IdxMaccSel); + } + await E_MachSel.InvokeAsync(IdxMaccSel); // chiudo update... isProcessing = false; await InvokeAsync(StateHasChanged); @@ -523,6 +557,17 @@ namespace MP_TAB3.Components await CheckAttr(); await advStep(currStep++); await FlushMpIoOdlCache(); + // notifica... + if (isMulti) + { + await E_MachSel.InvokeAsync(idxMaccAltraTav); + await Task.Delay(100); + } + else + { + TabDServ.NotifyDataInvalidated(IdxMaccSel); + } + await E_MachSel.InvokeAsync(IdxMaccSel); // chiudo update... isProcessing = false; await InvokeAsync(StateHasChanged); @@ -546,7 +591,7 @@ namespace MP_TAB3.Components ***************************************************/ // preparo gestione progress display - MaxVal = 11; + MaxVal = 10; int currStep = 0; // elimino dati status... isProcessing = true; @@ -630,47 +675,10 @@ namespace MP_TAB3.Components sb.AppendLine(String.Format(evText, idxODL_curr)); await processaEvento(IdxMaccSel, idxEvento, sb.ToString(), idxODL_curr); await advStep(currStep++); - // indico INIZIO SETUP su REDIS come EXE della macchina... - string ts = string.Format("{0:yyMMdd}T{0:HHmmss.fff}Z", DateTime.Now); - string outData = $"TS:{ts}|MATR:{MatrOpr}|ODL:{idxODL_curr}"; // aggiungo articolo, commessa, richiesta pezzi... try { - var datiODL = await TabDServ.OdlCurrByMacc(IdxMaccSel, true); - string setArtVal = $"{datiODL.CodArticolo}"; - string setPzCommVal = $"{datiODL.NumPezzi}"; - string setCommVal = $"ODL{datiODL.IdxOdl:00000000}"; - // FIXME TODO: scrivere come sotto? testare valvital x linea LASCO - TabDServ.addTask4Machine(IdxMaccSel, taskType.startSetup, outData); - TabDServ.addTask4Machine(IdxMaccSel, taskType.setArt, setArtVal); - TabDServ.addTask4Machine(IdxMaccSel, taskType.setComm, setCommVal); - TabDServ.addTask4Machine(IdxMaccSel, taskType.setPzComm, setPzCommVal); - TabDServ.MachineParamUpdate(IdxMaccSel, "setArt", setArtVal); - TabDServ.MachineParamUpdate(IdxMaccSel, "setComm", setCommVal); - TabDServ.MachineParamUpdate(IdxMaccSel, "setPzComm", setPzCommVal); - TabDServ.addTask4Machine(IdxMaccSel, taskType.setParameter, "ForceUpdate"); - await advStep(currStep++); - // li aggiungo ANCHE sui PLC slave se ci sono... - if (isMaster) - { - // calcolo gli slave... - var slaveList = SMServ.ListM2S - .Where(x => x.IdxMacchina.Equals(IdxMaccSel, StringComparison.InvariantCultureIgnoreCase)) - .ToList(); - foreach (var machine in slaveList) - { - outData = $"TS:{ts}|MATR:{MatrOpr}|Master Machine: {IdxMaccSel}"; - // invio chiusura attrezzaggio - TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.startSetup, outData); - TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.setArt, setArtVal); - TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.setComm, setCommVal); - TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.setPzComm, setPzCommVal); - TabDServ.MachineParamUpdate(machine.IdxMacchinaSlave, "setArt", setArtVal); - TabDServ.MachineParamUpdate(machine.IdxMacchinaSlave, "setComm", setCommVal); - TabDServ.MachineParamUpdate(machine.IdxMacchinaSlave, "setPzComm", setPzCommVal); - TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.setParameter, "ForceUpdate"); - } - } + await DoSendTaskOdl(idxODL_curr); await advStep(currStep++); } catch (Exception exc) @@ -739,6 +747,17 @@ namespace MP_TAB3.Components await CheckAttr(); inAttr = true; tcRichAttr = tmpTCR; + // notifica... + if (isMulti) + { + await E_MachSel.InvokeAsync(idxMaccAltraTav); + await Task.Delay(100); + } + else + { + TabDServ.NotifyDataInvalidated(IdxMaccSel); + } + await E_MachSel.InvokeAsync(IdxMaccSel); isProcessing = false; await InvokeAsync(StateHasChanged); } @@ -797,7 +816,7 @@ namespace MP_TAB3.Components } // verifica conferma produzione datiProdAct = await TabDServ.StatoProdMacchina(IdxMaccSel, DateTime.Now); - checkConfProd(); + await checkConfProd(); } protected async Task ProdEnd() @@ -929,6 +948,17 @@ namespace MP_TAB3.Components await RefreshData(); await CheckAttr(); await advStep(currStep++); + // notifica... + if (isMulti) + { + await E_MachSel.InvokeAsync(idxMaccAltraTav); + await Task.Delay(100); + } + else + { + TabDServ.NotifyDataInvalidated(IdxMaccSel); + } + await E_MachSel.InvokeAsync(IdxMaccSel); isProcessing = false; await InvokeAsync(StateHasChanged); } @@ -1065,6 +1095,10 @@ namespace MP_TAB3.Components } } + /// + /// Esegue split ODL corrente + /// + /// protected async Task SplitOdl() { if (!await JSRuntime.InvokeAsync("confirm", $"Confermi richiesta riattrezzaggio ODL, con conseguente chiusura ODL corrente + split nuovo ODL con TC {tcRichAttr:N3}?")) @@ -1075,7 +1109,7 @@ namespace MP_TAB3.Components SDService.MachProdStRem(IdxMaccSel); // preparo gestione progress display - MaxVal = 9; + MaxVal = 10; int currStep = 0; await advStep(currStep); @@ -1123,6 +1157,23 @@ namespace MP_TAB3.Components await advStep(currStep++); showSplitOdlRiattr = false; await ReloadXDL(true); + // invio richiesta reset NUOVO ODL... + if (IdxOdl > 0) + { + await DoSendTaskOdl(IdxOdl); + } + await advStep(currStep++); + // notifica... + if (isMulti) + { + await E_MachSel.InvokeAsync(idxMaccAltraTav); + await Task.Delay(100); + } + else + { + TabDServ.NotifyDataInvalidated(IdxMaccSel); + } + await E_MachSel.InvokeAsync(IdxMaccSel); // chiudo update... isProcessing = false; await InvokeAsync(StateHasChanged); @@ -1480,13 +1531,20 @@ namespace MP_TAB3.Components } } - private void checkConfProd() + private async Task checkConfProd() { // calcolo conferma prod... needConfProd = RecMSE != null && datiProdAct != null; if (datiProdAct != null) { - needConfProd = (datiProdAct.Pz2RecTot > 0 || datiProdAct.Pz2RecScarto != 0) && !isSlave; + needConfProd = (datiProdAct.Pz2RecTot > 0 || datiProdAct.Pz2RecScarto > 0 || datiProdAct.Pz2RecRilav > 0) && !isSlave; + // se รจ multi controllo anche altra tavola... + if (isMulti && !needConfProd) + { + // verifica conferma produzione + var datiProdAltra = await TabDServ.StatoProdMacchina(idxMaccAltraTav, DateTime.Now); + needConfProd = (datiProdAltra.Pz2RecTot > 0 || datiProdAltra.Pz2RecScarto > 0 || datiProdAltra.Pz2RecRilav > 0) && !isSlave; + } if (needConfProd) { StateHasChanged(); @@ -1523,7 +1581,7 @@ namespace MP_TAB3.Components // recupero pz da confermare datiProdAct = await TabDServ.StatoProdMacchina(IdxMaccSel, adesso); - checkConfProd(); + await checkConfProd(); if (datiProdAct.Pz2RecTot > 0) { @@ -1578,6 +1636,57 @@ namespace MP_TAB3.Components } } + /// + /// Invio set informazioni x segnalare setupODL + /// + /// + /// + private async Task DoSendTaskOdl(int idxODL_curr) + { + // indico INIZIO SETUP su REDIS come EXE della macchina... + string ts = string.Format("{0:yyMMdd}T{0:HHmmss.fff}Z", DateTime.Now); + string outData = $"TS:{ts}|MATR:{MatrOpr}|ODL:{idxODL_curr}"; + var datiODL = await TabDServ.OdlCurrByMacc(IdxMaccSel, true); + string setArtVal = $"{datiODL.CodArticolo}"; + string setPzCommVal = $"{datiODL.NumPezzi}"; + string setCommVal = $"ODL{datiODL.IdxOdl:00000000}"; + // FIXME TODO: scrivere come sotto? testare valvital x linea LASCO + TabDServ.addTask4Machine(IdxMaccSel, taskType.startSetup, outData); + TabDServ.addTask4Machine(IdxMaccSel, taskType.setArt, setArtVal); + TabDServ.addTask4Machine(IdxMaccSel, taskType.setComm, setCommVal); + TabDServ.addTask4Machine(IdxMaccSel, taskType.setPzComm, setPzCommVal); + TabDServ.addTask4Machine(IdxMaccSel, taskType.forceResetPzCount, "0"); + TabDServ.MachineParamUpdate(IdxMaccSel, "setArt", setArtVal); + TabDServ.MachineParamUpdate(IdxMaccSel, "setComm", setCommVal); + TabDServ.MachineParamUpdate(IdxMaccSel, "setPzComm", setPzCommVal); + TabDServ.MachineParamUpdate(IdxMaccSel, "forceResetPzCount", "0"); + TabDServ.addTask4Machine(IdxMaccSel, taskType.setParameter, "ForceUpdate"); + //await advStep(currStep++); + // li aggiungo ANCHE sui PLC slave se ci sono... + if (isMaster) + { + // calcolo gli slave... + var slaveList = SMServ.ListM2S + .Where(x => x.IdxMacchina.Equals(IdxMaccSel, StringComparison.InvariantCultureIgnoreCase)) + .ToList(); + foreach (var machine in slaveList) + { + outData = $"TS:{ts}|MATR:{MatrOpr}|Master Machine:{IdxMaccSel}"; + // invio chiusura attrezzaggio + TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.startSetup, outData); + TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.setArt, setArtVal); + TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.setComm, setCommVal); + TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.setPzComm, setPzCommVal); + TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.forceResetPzCount, "0"); + TabDServ.MachineParamUpdate(machine.IdxMacchinaSlave, "setArt", setArtVal); + TabDServ.MachineParamUpdate(machine.IdxMacchinaSlave, "setComm", setCommVal); + TabDServ.MachineParamUpdate(machine.IdxMacchinaSlave, "setPzComm", setPzCommVal); + TabDServ.MachineParamUpdate(machine.IdxMacchinaSlave, "forceResetPzCount", "0"); + TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.setParameter, "ForceUpdate"); + } + } + } + private void fixTcNotePzPallet(bool reloadFromOdl) { if (tcRichAttr == 0 || string.IsNullOrEmpty(noteAttr) || PzPallet == 0) @@ -1683,7 +1792,7 @@ namespace MP_TAB3.Components { var rawData = await TabDServ.PezziProdMacchina(IdxMaccSel); datiProdAct = await TabDServ.StatoProdMacchina(IdxMaccSel, DateTime.Now); - checkConfProd(); + await checkConfProd(); Log.Trace("OdlMan.ReloadData | check checkConfProd done"); } } diff --git a/MP-TAB3/Components/ProdConfirm.razor.cs b/MP-TAB3/Components/ProdConfirm.razor.cs index 023c95e4..1032bf54 100644 --- a/MP-TAB3/Components/ProdConfirm.razor.cs +++ b/MP-TAB3/Components/ProdConfirm.razor.cs @@ -8,26 +8,6 @@ namespace MP_TAB3.Components { public partial class ProdConfirm { - #region Private Fields - - private static Logger Log = LogManager.GetCurrentClassLogger(); - - private bool chkPzBuoniNeg = false; - - private bool confRett = false; - - private bool enableMagPrint = false; - - private bool enablePzProdLasciati = false; - - private bool isMulti = false; - - private string lblOut = ""; - - private int modoConfProd = 0; - - #endregion Private Fields - #region Public Properties /// @@ -95,7 +75,6 @@ namespace MP_TAB3.Components protected StatoProdModel? datiProdAct { get; set; } = null; protected DateTime dtFine { get; set; } = DateTime.Today.AddMonths(-1); - protected DateTime dtInizio { get; set; } = DateTime.Today.AddMonths(-2); /// @@ -145,7 +124,6 @@ namespace MP_TAB3.Components protected MessageService MsgServ { get; set; } = null!; protected int numPz2Rec { get; set; } = 0; - protected int numPzBuoniConf { get; set; } = 0; /// @@ -172,13 +150,10 @@ namespace MP_TAB3.Components } protected int numPzProdotti { get; set; } = 0; - protected int numPzProdotti2Rec { get; set; } = 0; - protected int numPzRilav2Rec { get; set; } = 0; protected int numPzRilavConf { get; set; } = 0; protected int numPzScaConf { get; set; } = 0; - protected int numPzScarto2Rec { get; set; } = 0; /// @@ -226,31 +201,6 @@ namespace MP_TAB3.Components #endregion Protected Properties - #region Private Properties - - 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 - { - get => MsgServ.MatrOpr; - } - - private int numPzLasc { get; set; } = 0; - - private bool showConfirm { get; set; } = true; - - #endregion Private Properties - #region Protected Methods /// @@ -296,21 +246,24 @@ namespace MP_TAB3.Components { numPzLasciati = 0; } - // verifico se la macchina sia configurata tra le MSFD... - if (SMServ.DictMacchMulti.ContainsKey(RecMSE.IdxMacchina)) + if (!confDone) { - isMulti = SMServ.DictMacchMulti[RecMSE.IdxMacchina] == 1; - } - IdxMaccSel = RecMSE.IdxMacchina; - if (isMulti) - { - var idxMSel = MsgServ.UserPrefGet(IdxMaccSel); - if (!string.IsNullOrEmpty(idxMSel)) + // verifico se la macchina sia configurata tra le MSFD... + if (SMServ.DictMacchMulti.ContainsKey(RecMSE.IdxMacchina)) { - IdxMaccSel = idxMSel; + isMulti = SMServ.DictMacchMulti[RecMSE.IdxMacchina] == 1; + } + IdxMaccSel = RecMSE.IdxMacchina; + if (isMulti) + { + var idxMSel = MsgServ.UserPrefGet(IdxMaccSel); + if (!string.IsNullOrEmpty(idxMSel)) + { + IdxMaccSel = idxMSel; + } } } - //salvo lastRec... + // salvo lastRec... lastRecMSE = RecMSE; dtReqUpdate = DateTime.Now.AddMilliseconds(100); await DoUpdate(); @@ -382,6 +335,53 @@ namespace MP_TAB3.Components #endregion Protected Methods + #region Private Fields + + private static Logger Log = LogManager.GetCurrentClassLogger(); + + private bool chkPzBuoniNeg = false; + + private bool confRett = false; + + private bool enableMagPrint = false; + + private bool enablePzProdLasciati = false; + + private bool confDone = false; + private bool isMulti = false; + private bool isSlave = false; + + private string lblOut = ""; + + private int modoConfProd = 0; + + #endregion Private Fields + + #region Private Properties + + 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 + { + get => MsgServ.MatrOpr; + } + + private int numPzLasc { get; set; } = 0; + + private bool showConfirm { get; set; } = true; + + #endregion Private Properties + #region Private Methods /// diff --git a/MP-TAB3/MP-TAB3.csproj b/MP-TAB3/MP-TAB3.csproj index 03ecf080..659e5d51 100644 --- a/MP-TAB3/MP-TAB3.csproj +++ b/MP-TAB3/MP-TAB3.csproj @@ -3,7 +3,7 @@ net6.0 enable - 6.16.2503.1314 + 6.16.2503.1316 enable MP_TAB3 diff --git a/MP-TAB3/Resources/ChangeLog.html b/MP-TAB3/Resources/ChangeLog.html index b7b138c4..73d7d868 100644 --- a/MP-TAB3/Resources/ChangeLog.html +++ b/MP-TAB3/Resources/ChangeLog.html @@ -1,6 +1,6 @@ Modulo MAPOSPEC -

Versione: 6.16.2503.1314

+

Versione: 6.16.2503.1316


Note di rilascio:
  • diff --git a/MP-TAB3/Resources/VersNum.txt b/MP-TAB3/Resources/VersNum.txt index 5ef67702..23bb6c64 100644 --- a/MP-TAB3/Resources/VersNum.txt +++ b/MP-TAB3/Resources/VersNum.txt @@ -1 +1 @@ -6.16.2503.1314 +6.16.2503.1316 diff --git a/MP-TAB3/Resources/manifest.xml b/MP-TAB3/Resources/manifest.xml index 3549ff7b..f4b3f46e 100644 --- a/MP-TAB3/Resources/manifest.xml +++ b/MP-TAB3/Resources/manifest.xml @@ -1,6 +1,6 @@ - 6.16.2503.1314 + 6.16.2503.1316 https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/MP-TAB3.zip https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/ChangeLog.html false