From b2e9ae76d491c8665daa3ec3c405bc7f72e223a7 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Mon, 17 Oct 2022 20:10:52 +0200 Subject: [PATCH] bozza modifiche (da completare) --- MP.Data/Controllers/MpSpecController.cs | 50 +++++++++++ MP.SPEC/Components/ListPODL.razor.cs | 114 ++++++++++++++++++++++-- MP.SPEC/Data/MpDataService.cs | 10 +++ MP.SPEC/MP.SPEC.csproj | 2 +- MP.SPEC/Pages/PODL.razor.cs | 10 +-- MP.SPEC/Resources/ChangeLog.html | 2 +- MP.SPEC/Resources/VersNum.txt | 2 +- MP.SPEC/Resources/manifest.xml | 2 +- 8 files changed, 178 insertions(+), 14 deletions(-) diff --git a/MP.Data/Controllers/MpSpecController.cs b/MP.Data/Controllers/MpSpecController.cs index a4342479..eccef8b9 100644 --- a/MP.Data/Controllers/MpSpecController.cs +++ b/MP.Data/Controllers/MpSpecController.cs @@ -754,6 +754,56 @@ namespace MP.Data.Controllers return dbResult; } + + /// + /// Avvio setup ODL da PODL + /// + /// + /// + /// + /// + /// + /// + public async Task PODL_startSetup(PODLModel editRec, int matrOpr, double tcRich, int pzPallet, string note) + { + ODLModel dbResult = new ODLModel(); + using (var dbCtx = new MoonProContext(_configuration)) + { + try + { + var currRec = dbCtx + .DbSetPODL + .Where(x => x.IdxPromessa == editRec.IdxPromessa) + .FirstOrDefault(); + if (currRec != null) + { + // eseguo stored attrezzaggio + var IdxPromessa = new SqlParameter("@idxPromessa", editRec.IdxPromessa); + var MatrOpr = new SqlParameter("@MatrOpr", matrOpr); + var IdxMacchina = new SqlParameter("@IdxMacchina", editRec.IdxMacchina); + var TCRichAttr = new SqlParameter("@TCRichAttr", tcRich); + var PzPallet = new SqlParameter("@PzPallet", pzPallet); + var Note = new SqlParameter("@Note", note); + var callResult = await dbCtx + .Database + .ExecuteSqlRawAsync("EXEC stp_ODL_inizioSetupPromessa @idxPromessa, @MatrOpr, @IdxMacchina @TCRichAttr, @PzPallet, @Note", IdxPromessa, MatrOpr, IdxMacchina, TCRichAttr, PzPallet, Note); + + // recupero info su ODL corrente + dbResult = await dbCtx + .DbSetODL + .Where(x => x.IdxMacchina == editRec.IdxMacchina && x.DataInizio != null && x.DataFine == null) + .FirstOrDefaultAsync(); + } + } + catch (Exception exc) + { + Log.Error($"Eccezione durante PODL_doSetup{Environment.NewLine}{exc}"); + } + } + await Task.Delay(1); + return dbResult; + } + /// /// Chiusura ODL con eventuale conferma pezzi /// diff --git a/MP.SPEC/Components/ListPODL.razor.cs b/MP.SPEC/Components/ListPODL.razor.cs index ddb159cb..f30db27f 100644 --- a/MP.SPEC/Components/ListPODL.razor.cs +++ b/MP.SPEC/Components/ListPODL.razor.cs @@ -3,6 +3,8 @@ using Microsoft.JSInterop; using MP.Data.DatabaseModels; using MP.SPEC.Data; using MP.SPEC.Services; +using System.Reflection.PortableExecutable; +using System.Text; namespace MP.SPEC.Components { @@ -49,7 +51,7 @@ namespace MP.SPEC.Components protected MpDataService MDService { get; set; } = null!; [Inject] - protected IOApiService MpIoApiCall { get; set; } + protected IOApiService MpIoApiCall { get; set; } = null!; [Inject] protected MessageService MsgService { get; set; } = null!; @@ -86,7 +88,67 @@ namespace MP.SPEC.Components protected async Task startOdl(PODLModel selRec) { - await Task.Delay(1); + if (selRec != null) + { + int idxEvento = 0; + string evMess = ""; + // verifico ancora NON ci sia ODL corrente/aperto + if (canStartOdl(selRec.IdxMacchina)) + { + await callStartSetup(selRec.IdxMacchina); + await Task.Delay(1); + // chiamo stored stp_ODL_inizioSetupPromessa e recupero ODL corrente + var newOdl = await MDService.POdlDoSetup(selRec); + if (newOdl != null) + { + // registro evento... + idxEvento = 2; + evMess = $"Registrata inizio produzione | PODL {selRec.IdxPromessa} | ODL {newOdl.IdxOdl}"; + processaEvento(selRec.IdxMacchina, idxEvento, evMess, newOdl.IdxOdl); + + + //aspetto 1 sec + + + // idxEv = 1 + + //// processo chiusura setup + //string evText = "Registrata inizio produzione per ODL {0}"; + //StringBuilder sb = new StringBuilder(); + //sb.AppendLine(String.Format(evText, idxODLStart)); + //processaEvento(idxMacchinaFix, idxEvento, sb.ToString(), idxODLStart); + + + + + // richiedo refresh su IOB-WIN: + // DataLayerObj.addTask4Machine(machine.IdxMacchinaSlave, taskType.setParameter, "ForceUpdate"); + + await callForceUpdate(selRec.IdxMacchina); + await Task.Delay(1); + await callForceUpdate(selRec.IdxMacchina); + await Task.Delay(1); + await callSyncDb(selRec.IdxMacchina); + await Task.Delay(1); + } + } + } + } + + + /// + /// processa evento richiesto + /// + /// + /// + /// + /// + private void processaEvento(string idxMacc, int idxEvento, string userMsg, int idxODL) + { + + // scrivo evento scriviRigaEventoBarcode + + // fixme todo !!! FARE } /// @@ -112,7 +174,7 @@ namespace MP.SPEC.Components return; await Task.Delay(1); var done = await MDService.PODLDeleteRecord(selRec); - await callSyncDb(selRec); + await callSyncDb(selRec.IdxMacchina); currRecord = null; await reloadData(); await Task.Delay(1); @@ -212,17 +274,59 @@ namespace MP.SPEC.Components #region Private Methods + /// /// Chiama metodo x chiedere sync DB /// /// /// - private async Task callSyncDb(PODLModel selRec) + private async Task addTask2Exe(string idxMacc, string taskName, string taskVal) + { + // compongo URL e chiamo + string restUrl = $"IOB/addTask2Exe/{idxMacc}?taskName={taskName}&taskVal={taskVal}"; + var response = await MpIoApiCall.callMpIoUrlGet(restUrl); + } + + + /// + /// Chiama metodo x chiedere sync DB + /// + /// + /// + private async Task callSyncDb(string IdxMacc) { // chiamo aggiunta task SyncDb... + await addTask2Exe(IdxMacc, "syncDbData", ""); +#if false string idxMacc = selRec.IdxMacchina; string restUrl = $"IOB/addTask2Exe/{idxMacc}?taskName=syncDbData&taskVal="; - var response = await MpIoApiCall.callMpIoUrlGet(restUrl); + var response = await MpIoApiCall.callMpIoUrlGet(restUrl); +#endif + } + + + + + /// + /// Chiama metodo x chiedere force Update + /// + /// + /// + private async Task callForceUpdate(string IdxMacc) + { + // chiamo aggiunta task SyncDb... + await addTask2Exe(IdxMacc, "ForceUpdate", $"SPEC|TS:{DateTime.Now:yyMMddHHmmss}"); + } + + /// + /// Chiama metodo x indicare inizio setup + /// + /// + /// + private async Task callStartSetup(string IdxMacc) + { + // chiamo evento inizio setup + await addTask2Exe(IdxMacc, "startSetup", $"SPEC|TS:{DateTime.Now:yyMMddHHmmss}"); } private async void MessageService_EA_PageUpdated() diff --git a/MP.SPEC/Data/MpDataService.cs b/MP.SPEC/Data/MpDataService.cs index 4a6d02ce..f110fcc0 100644 --- a/MP.SPEC/Data/MpDataService.cs +++ b/MP.SPEC/Data/MpDataService.cs @@ -699,6 +699,16 @@ namespace MP.SPEC.Data return await dbController.PODLUpdateRecord(currRec); } + /// + /// Avvio fase setup per il record selezionato + /// + /// + /// + public async Task POdlDoSetup(PODLModel currRec) + { + return await dbController.PODL_startSetup(currRec, 0, 1, 1, ""); ; + } + /// /// Statistiche ODL calcolate (da stored stp_STAT_ODL) /// diff --git a/MP.SPEC/MP.SPEC.csproj b/MP.SPEC/MP.SPEC.csproj index e7fa6a9e..180e6d8f 100644 --- a/MP.SPEC/MP.SPEC.csproj +++ b/MP.SPEC/MP.SPEC.csproj @@ -5,7 +5,7 @@ enable enable MP.SPEC - 6.16.2210.1712 + 6.16.2210.1720 diff --git a/MP.SPEC/Pages/PODL.razor.cs b/MP.SPEC/Pages/PODL.razor.cs index 964dc448..10e1038d 100644 --- a/MP.SPEC/Pages/PODL.razor.cs +++ b/MP.SPEC/Pages/PODL.razor.cs @@ -20,19 +20,19 @@ namespace MP.SPEC.Pages #region Protected Properties [Inject] - protected IJSRuntime JSRuntime { get; set; } + protected IJSRuntime JSRuntime { get; set; } = null!; [Inject] - protected MpDataService MDService { get; set; } + protected MpDataService MDService { get; set; } = null!; [Inject] - protected IOApiService MpIoApiCall { get; set; } + protected IOApiService MpIoApiCall { get; set; } = null!; [Inject] - protected MessageService MsgService { get; set; } + protected MessageService MsgService { get; set; } = null!; [Inject] - protected NavigationManager NavManager { get; set; } + protected NavigationManager NavManager { get; set; } = null!; #endregion Protected Properties diff --git a/MP.SPEC/Resources/ChangeLog.html b/MP.SPEC/Resources/ChangeLog.html index 033649b1..60b20b12 100644 --- a/MP.SPEC/Resources/ChangeLog.html +++ b/MP.SPEC/Resources/ChangeLog.html @@ -1,6 +1,6 @@ Modulo MAPOSPEC -

Versione: 6.16.2210.1712

+

Versione: 6.16.2210.1720


Note di rilascio:
  • diff --git a/MP.SPEC/Resources/VersNum.txt b/MP.SPEC/Resources/VersNum.txt index cfc216e1..fa8114d3 100644 --- a/MP.SPEC/Resources/VersNum.txt +++ b/MP.SPEC/Resources/VersNum.txt @@ -1 +1 @@ -6.16.2210.1712 +6.16.2210.1720 diff --git a/MP.SPEC/Resources/manifest.xml b/MP.SPEC/Resources/manifest.xml index 2bf44199..49aabde3 100644 --- a/MP.SPEC/Resources/manifest.xml +++ b/MP.SPEC/Resources/manifest.xml @@ -1,6 +1,6 @@ - 6.16.2210.1712 + 6.16.2210.1720 https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/MP.SPEC.zip https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/ChangeLog.html false