From f95b13caca76cdeee245f91676d90f0f1c10185a Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Sat, 4 Jan 2020 08:51:31 +0100 Subject: [PATCH 1/2] =?UTF-8?q?Aggiunto=20appunti=20x=20statistiche=20disp?= =?UTF-8?q?onibilit=C3=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ES3/WebUserControls/cmp_dispStats.ascx | 1 + 1 file changed, 1 insertion(+) diff --git a/ES3/WebUserControls/cmp_dispStats.ascx b/ES3/WebUserControls/cmp_dispStats.ascx index df86bc2e..9524675f 100644 --- a/ES3/WebUserControls/cmp_dispStats.ascx +++ b/ES3/WebUserControls/cmp_dispStats.ascx @@ -8,4 +8,5 @@ statistiche disponibilità:
  • SOMMA ORE CUMULATE di apertura
  • SOMMA ORE CUMULATE già allocate
  • SOMMA ORE CUMULATE disponibili
  • +
  • SOMMA ORE CUMULATE LAVORATE (passate)
  • \ No newline at end of file From 5f888faefbaa489f1079c05690f7decb6aceb5f4 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Mon, 27 Jan 2020 15:04:50 +0100 Subject: [PATCH 2/2] Update x inserire VETO a split consecutivi... --- Jenkinsfile | 2 +- MAPO.sln | 18 ---------- MapoDb/DataLayer.cs | 84 ++++++++++++++++++++++++++++++--------------- 3 files changed, 58 insertions(+), 46 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0a21338b..e0bb1385 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -12,7 +12,7 @@ pipeline { steps { /* calcolo numero versione... diverso x branch MASTER/DEVELOP */ script { - withEnv(['NEXT_BUILD_NUMBER=1276']) { + withEnv(['NEXT_BUILD_NUMBER=1277']) { // env.versionNumber = VersionNumber(versionNumberString : '6.9.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true) env.versionNumber = VersionNumber(versionNumberString : '6.9.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}') env.APP_NAME = 'MAPO' diff --git a/MAPO.sln b/MAPO.sln index 066a18d0..746fb20f 100644 --- a/MAPO.sln +++ b/MAPO.sln @@ -27,8 +27,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MP-SITE", "MP-SITE\MP-SITE. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MapoSDK", "MapoSDK\MapoSDK.csproj", "{D07211B6-CF67-4C7F-8040-5B8C3B12BB4B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ES3", "ES3\ES3.csproj", "{C5296C93-4738-4B42-8C9D-B7E5A75110FD}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -185,22 +183,6 @@ Global {D07211B6-CF67-4C7F-8040-5B8C3B12BB4B}.Prod|Any CPU.Build.0 = Release|Any CPU {D07211B6-CF67-4C7F-8040-5B8C3B12BB4B}.Release|Any CPU.ActiveCfg = Release|Any CPU {D07211B6-CF67-4C7F-8040-5B8C3B12BB4B}.Release|Any CPU.Build.0 = Release|Any CPU - {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.Donati|Any CPU.ActiveCfg = Debug|Any CPU - {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.Donati|Any CPU.Build.0 = Debug|Any CPU - {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.IIS01|Any CPU.ActiveCfg = Release|Any CPU - {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.IIS01|Any CPU.Build.0 = Release|Any CPU - {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.IIS02|Any CPU.ActiveCfg = Release|Any CPU - {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.IIS02|Any CPU.Build.0 = Release|Any CPU - {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.Jetco|Any CPU.ActiveCfg = Release|Any CPU - {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.Jetco|Any CPU.Build.0 = Release|Any CPU - {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.OVH-Demo|Any CPU.ActiveCfg = Release|Any CPU - {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.OVH-Demo|Any CPU.Build.0 = Release|Any CPU - {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.Prod|Any CPU.ActiveCfg = Release|Any CPU - {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.Prod|Any CPU.Build.0 = Release|Any CPU - {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/MapoDb/DataLayer.cs b/MapoDb/DataLayer.cs index 00f0714f..2b3b0a58 100644 --- a/MapoDb/DataLayer.cs +++ b/MapoDb/DataLayer.cs @@ -7,6 +7,7 @@ using System.Data; using System.Data.SqlClient; using System.Globalization; using System.Reflection; +using System.Threading; namespace MapoDb { @@ -1340,6 +1341,15 @@ namespace MapoDb return mHash(string.Format("CurrStatoMacc:{0}", idxMacchina)); } /// + /// Hash x VETO dello SPLIT ODL la macchina specificata + /// + /// + /// + public static string vetoSplitOdlMaccHash(string idxMacchina) + { + return mHash(string.Format("VetoOdlMacc:{0}", idxMacchina)); + } + /// /// Hash dati tabella AnagStati macchina /// /// @@ -1577,40 +1587,60 @@ namespace MapoDb #region gestione attrezzaggi + /// + /// Effettua split ODL + /// + /// + /// public static string forceSplitOdl(string idxMacchina) { string answ = "KO"; - DS_ProdTempi.ODLDataTable currData = null; - DateTime adesso = DateTime.Now; - // chiamo metodo redis/db... - try + // verifico NON CI SIA un veto a NUOVI split... 2 min di default... + string redKey = vetoSplitOdlMaccHash(idxMacchina); + string rawData = memLayer.ML.getRSV(redKey); + if (rawData == "") { - // recupero ODL corrente - currData = currODLRowTab(idxMacchina); - if (currData.Count > 0) + // registro VETO x altri split... 2 minuti + memLayer.ML.setRSV(redKey, $"Inizio SPLIT-ODL {DateTime.Now}", 120); + // proseguo + DS_ProdTempi.ODLDataTable currData = null; + DateTime adesso = DateTime.Now; + // chiamo metodo redis/db... + try { - // registro un evento di inizio attrezzaggio (idxTipoEv = 2) - int idxEvento = 2; - logger.lg.scriviLog($"Invio evento ODL-SPLIT per macchina {idxMacchina}, evento {idxEvento}, articolo {currData[0].CodArticolo}", tipoLog.INFO); - inputComando resCmd = MapoDb.obj.scriviRigaEventoBarcode(idxMacchina, idxEvento, currData[0].CodArticolo, "ODL-SPLIT", 0, "", adesso.AddMinutes(-1), adesso); - // chiamo splitOdl - MapoDb.obj.taODL.splitODL(currData[0].IdxODL, 0, idxMacchina, currData[0].TCRichAttr, currData[0].PzPallet, $"Nuovo ODL da forceSplitOdl", true); - // registro fine ODL (idxTipoEv = 1) - idxEvento = 1; - logger.lg.scriviLog($"Invio evento FINE ODL-SPLIT per macchina {idxMacchina}, evento {idxEvento}, articolo {currData[0].CodArticolo}", tipoLog.INFO); - resCmd = MapoDb.obj.scriviRigaEventoBarcode(idxMacchina, idxEvento, currData[0].CodArticolo, "ODL-START"); - // chiamo refresh MSE - obj.taMSE.forceRecalc(0, idxMacchina); - // resetto stato macchina... - memLayer.ML.redDelKey(currStatoMaccHash(idxMacchina)); - answ = "OK"; - logger.lg.scriviLog($"Effettuato reset e ricalcoli x split ODL per macchina {idxMacchina}", tipoLog.INFO); + // recupero ODL corrente + currData = currODLRowTab(idxMacchina); + if (currData.Count > 0) + { + // registro un evento di inizio attrezzaggio (idxTipoEv = 2) + int idxEvento = 2; + logger.lg.scriviLog($"Invio evento ODL-SPLIT per macchina {idxMacchina}, evento {idxEvento}, articolo {currData[0].CodArticolo}", tipoLog.INFO); + inputComando resCmd = MapoDb.obj.scriviRigaEventoBarcode(idxMacchina, idxEvento, currData[0].CodArticolo, "ODL-SPLIT", 0, "", adesso, adesso); + // attendo 1 sec + Thread.Sleep(1000); + adesso = DateTime.Now; + // chiamo splitOdl + MapoDb.obj.taODL.splitODL(currData[0].IdxODL, 0, idxMacchina, currData[0].TCRichAttr, currData[0].PzPallet, $"Nuovo ODL da forceSplitOdl", true); + // attendo 1 sec + Thread.Sleep(1000); + adesso = DateTime.Now; + // registro fine ODL (idxTipoEv = 1) + idxEvento = 1; + logger.lg.scriviLog($"Invio evento FINE ODL-SPLIT per macchina {idxMacchina}, evento {idxEvento}, articolo {currData[0].CodArticolo}", tipoLog.INFO); + resCmd = MapoDb.obj.scriviRigaEventoBarcode(idxMacchina, idxEvento, currData[0].CodArticolo, "ODL-START"); + // chiamo refresh MSE + obj.taMSE.forceRecalc(0, idxMacchina); + // resetto stato macchina... + memLayer.ML.redDelKey(currStatoMaccHash(idxMacchina)); + answ = "OK"; + logger.lg.scriviLog($"Effettuato reset e ricalcoli x split ODL per macchina {idxMacchina}", tipoLog.INFO); + } + } + catch (Exception exc) + { + logger.lg.scriviLog($"Eccezione in forceSplitOdl{Environment.NewLine}{exc}", tipoLog.EXCEPTION); } - } - catch (Exception exc) - { - logger.lg.scriviLog($"Eccezione in forceSplitOdl{Environment.NewLine}{exc}", tipoLog.EXCEPTION); } return answ; }