From c5e5a5befeffea29bb4a6017740b3ae16148d9a6 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Fri, 17 Mar 2023 10:46:18 +0100 Subject: [PATCH] Update stato stored PAMA --- .../SqlFromDebug/PAMA/GetMachineProdData.sql | 71 ++++++++++++++++-- .../SqlFromDebug/PAMA/ImportAll.sql | Bin 2830 -> 3680 bytes .../SqlFromDebug/PAMA/Test.sql | 15 +++- 3 files changed, 77 insertions(+), 9 deletions(-) diff --git a/EgwProxy.SqlDb.Test/SqlFromDebug/PAMA/GetMachineProdData.sql b/EgwProxy.SqlDb.Test/SqlFromDebug/PAMA/GetMachineProdData.sql index 5217969a..dc114fb0 100644 --- a/EgwProxy.SqlDb.Test/SqlFromDebug/PAMA/GetMachineProdData.sql +++ b/EgwProxy.SqlDb.Test/SqlFromDebug/PAMA/GetMachineProdData.sql @@ -1,4 +1,4 @@ -ALTER PROCEDURE [dbo].GetMachineProdData +ALTER PROCEDURE [dbo].[stp_GetMachineProdData] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from @@ -24,9 +24,10 @@ BEGIN IF(@NewIdx > @LastIdx) BEGIN /* -------------------------------------------------- - * Invierň solo VARIAZIONI dei valori + * Invierò solo VARIAZIONI dei valori * - CurrentProdOrder (iniziato/concluso) - * - Quantitŕ Produzione + * - QuantitĂ  Produzione + * - dati FluxLog x ordini/quantitĂ /tempi di produzione * * andando ad incrociare ogni record col precedente... * -------------------------------------------------- */ @@ -86,7 +87,66 @@ BEGIN FROM cteActDec WHERE OrdAction <> 'NONE' - + -- ora processo ANCHE come fluxLog i record dei degli ordini (cod ordine, tempi...) + ;WITH cteCurrOrd AS + ( + SELECT ID + ,ProdOrder + ,Targa as IdxMacchina + ,[DateTime] AS DtEvento + ,ProdOrderState + ,ProdQty + ,ElapsedTime + FROM syn_M2ERP_PRODORDERS + WHERE ID > @LastIdx AND ID <= @NewIdx + ) + , ctePrevOrd AS + ( + SELECT ID + ,ProdOrder + ,Targa as IdxMacchina + ,[DateTime] AS DtEvento + ,ProdOrderState + ,ProdQty + ,ElapsedTime + FROM syn_M2ERP_PRODORDERS + WHERE ID >= @LastIdx AND ID < @NewIdx + ) + , cteActDec AS + ( + SELECT curr.DtEvento as DtEve + ,curr.IdxMacchina + ,CASE + WHEN curr.ProdOrderState = 1 THEN 'StartOrd' + --WHEN curr.ProdOrderState = 2 THEN 'PauseOrd' + WHEN curr.ProdOrderState = 3 THEN 'EndOrd' + --WHEN curr.ProdOrderState = 6 THEN 'InsOrd' + ELSE 'NONE' + END AS OrdAction + ,CAST(CASE + WHEN LEFT(curr.ProdOrder, 4) = 'PODL' THEN REPLACE(curr.ProdOrder,'PODL','') + ELSE '0' END AS NVARCHAR(50)) AS IdxPodl + ,CAST(CASE + WHEN LEFT(curr.ProdOrder, 3) = 'ODL' THEN REPLACE(curr.ProdOrder,'ODL','') + ELSE '0' END AS NVARCHAR(50)) AS IdxOdl + ,CAST(curr.ProdOrder AS NVARCHAR(50)) as CodComm + ,curr.ProdQty as PzCount + ,CAST(curr.ElapsedTime AS NVARCHAR(50)) AS ElapsedTime + FROM cteCurrOrd curr + INNER JOIN ctePrevOrd prev + ON curr.ID = prev.ID+1 + WHERE (curr.ProdOrder <> prev.ProdOrder) + OR (curr.ProdOrderState <> prev.ProdOrderState) + OR (curr.ProdQty <> prev.ProdQty) + ) + -- lego i valori col precedente x calcolare se siano variati x insert valori + --INSERT INTO MachineFluxLog(DtEvento, IdxMacchina, CodFlux, Valore, Cnt) + SELECT DtEve as DtEvento, IdxMacchina, CodFlux, Valore,0 as Cnt + FROM cteActDec + UNPIVOT (Valore FOR CodFlux IN (CodComm, ElapsedTime, IdxOdl, IdxPOdl)) AS Unpvt + WHERE OrdAction <> 'NONE' + AND Valore <> '0' + -- aggiorno valore indice processato MERGE SyncState AS tgt USING (SELECT @NewIdx as LastIdx, 'ToMachineProdData' AS TableName) as src (LastIdx, TableName) @@ -104,6 +164,3 @@ BEGIN COMMIT tran END -GO - - diff --git a/EgwProxy.SqlDb.Test/SqlFromDebug/PAMA/ImportAll.sql b/EgwProxy.SqlDb.Test/SqlFromDebug/PAMA/ImportAll.sql index 884d9f848ae81a34c1570eaaf69d5205901972af..dc44ae2452a5c6a2e16a394fb117b01d65b529f4 100644 GIT binary patch delta 638 zcmeAZdmyu6811EzggC9c(g93vs5F1RM$RscC%uvcu1e8IOW8h`r0^!M-%!-pQ zFo`e&RZKq3>OT1tvjaOw4#Jmb1?!*uo>i9Dhar)nn4tt{M+!s5-3v2ub< zNo2L1?8hc!tiWIgvKfdSfi7_Y(hdxnAoUEsK;0EUK1d!W1~EIA?LRN7NF{slTw0z4blyE9guWp@CT~$1-d;1=udkt$;ozXV!}>9 zmG0m$;{^Jv2I~yKEoUkNs7&w7Y7YG#?5*gBgFq0vlp@<<5$Ws8a6&R9% z{5*ydAio4G0}`tM;xwR05kn4GO%agHVMqn*PX&sm0_78dA~_7|Ksp783xK*oGJ0SL zwU>