diff --git a/AppData/ComLib.cs b/AppData/ComLib.cs index ef26460..bc6a8ab 100644 --- a/AppData/ComLib.cs +++ b/AppData/ComLib.cs @@ -1209,7 +1209,6 @@ namespace AppData DataLayer DLMan = new DataLayer(); string redKey = $"{redOrders}:ByBatchTree:{BatchId}"; string rawData = ""; - // cerco in redis if (memLayer.ML.redKeyPresent(redKey)) { @@ -1232,7 +1231,7 @@ namespace AppData // salvo in cache rawData = JsonConvert.SerializeObject(answ); - memLayer.ML.setRSV(redKey, rawData, 5); + memLayer.ML.setRSV(redKey, rawData, 10); } } return answ; @@ -1245,6 +1244,8 @@ namespace AppData { string redKey = $"{redOrders}:ByBatch:*"; memLayer.ML.redFlushKey(redKey); + redKey = $"{redOrders}:ByBatchTree:*"; + memLayer.ML.redFlushKey(redKey); } public static string PositionStatusDescr(object value) diff --git a/NKC_WF/Web.config b/NKC_WF/Web.config index 2d33cf8..26d3892 100644 --- a/NKC_WF/Web.config +++ b/NKC_WF/Web.config @@ -4,479 +4,483 @@ https://go.microsoft.com/fwlink/?LinkId=169433 --> - - -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/NKC_WF/WebUserControls/cmp_batchDetailSplit.ascx.cs b/NKC_WF/WebUserControls/cmp_batchDetailSplit.ascx.cs index 2af7802..92419e3 100644 --- a/NKC_WF/WebUserControls/cmp_batchDetailSplit.ascx.cs +++ b/NKC_WF/WebUserControls/cmp_batchDetailSplit.ascx.cs @@ -1,5 +1,7 @@ using AppData; +using AppData.DS_AppTableAdapters; using NKC_SDK; +using SteamWare; using System; using System.Collections.Generic; using System.Diagnostics; @@ -805,7 +807,7 @@ namespace NKC_WF.WebUserControls // imposto variabili x calcoli... bool answ = false; bool directAssign = false; - int maxDepth = 8; + int maxDepth = memLayer.ML.CRI("maxDepthRebalance"); OrderSetSim FullSet = new OrderSetSim(); OrderSetSim StartSet = new OrderSetSim(); OrderSetSim SetNe01 = new OrderSetSim(); @@ -818,11 +820,17 @@ namespace NKC_WF.WebUserControls Log.Instance.Trace("Rebalance | S01"); Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); + // copio la tabella... + List listOrders = new List(); + foreach (var item in TabOrders) + { + listOrders.Add(item); + } foreach (var item in TabOrders) { RawList.Add(item.OrdID, item.EstProcTime); } - Log.Instance.Trace($"Rebalance | S02 | TabOrders.count: {TabOrders.Count}"); + Log.Instance.Trace($"Rebalance | S02 | listOrders.count: {listOrders.Count}"); // ordino la lista x processing successivo OrderedList = RawList.OrderBy(x => x.Value).ToDictionary(t => t.Key, t => t.Value); // inizio immaginando di usare TUTTI gli ordini @@ -846,7 +854,7 @@ namespace NKC_WF.WebUserControls SetNe01.TargetValue -= enable01 ? StartSet.OrderSet.Skip(idx++).FirstOrDefault().Value : 0; SetNe02.TargetValue -= enable02 ? StartSet.OrderSet.Skip(idx++).FirstOrDefault().Value : 0; SetNe03.TargetValue -= enable03 ? StartSet.OrderSet.Skip(idx++).FirstOrDefault().Value : 0; - Log.Instance.Trace($"Rebalance | S05a | direct assign | T01: {SetNe01.TargetValue} | T02: {SetNe02.TargetValue} | T03: {SetNe03.TargetValue}"); + Log.Instance.Trace($"Rebalance | S05a | Target after direct assign | T01: {SetNe01.TargetValue} | T02: {SetNe02.TargetValue} | T03: {SetNe03.TargetValue}"); } else { @@ -857,7 +865,7 @@ namespace NKC_WF.WebUserControls if (SetNe01.TargetValue > 0) { SetNe01.OrderSet = findLocalMin(OrderedList, SetNe01.TargetValue, maxDepth); - Log.Instance.Trace($"Rebalance | S06 | NE01 done | SetNe01.ActualValue: {SetNe01.ActualValue}"); + Log.Instance.Trace($"Rebalance | S06 | NE01 partial | SetNe01.ActualValue: {SetNe01.ActualValue}"); } // calcolo il restante per differenza... var ordRemain = OrderedList; @@ -868,7 +876,7 @@ namespace NKC_WF.WebUserControls if (SetNe02.TargetValue > 0) { SetNe02.OrderSet = findLocalMin(ordRemain, SetNe02.TargetValue, maxDepth); - Log.Instance.Trace($"Rebalance | S07 | NE02 done | SetNe02.ActualValue: {SetNe02.ActualValue}"); + Log.Instance.Trace($"Rebalance | S07 | NE02 partial | SetNe02.ActualValue: {SetNe02.ActualValue}"); } // l'ultimo è la differenza if (SetNe03.TargetValue > 0) @@ -878,7 +886,7 @@ namespace NKC_WF.WebUserControls { SetNe03.OrderSet.Remove(item.Key); } - Log.Instance.Trace($"Rebalance | S08 | NE03 done | SetNe03.ActualValue: {SetNe03.ActualValue}"); + Log.Instance.Trace($"Rebalance | S08 | NE03 partial | SetNe03.ActualValue: {SetNe03.ActualValue}"); } else { @@ -913,21 +921,22 @@ namespace NKC_WF.WebUserControls if (enable01) { SetNe01.OrderSet.Add(StartSet.OrderSet.Skip(idx).FirstOrDefault().Key, StartSet.OrderSet.Skip(idx++).FirstOrDefault().Value); - Log.Instance.Trace($"Rebalance | S11 | NE01 done | SetNe01.ActualValue: {SetNe01.ActualValue}"); + Log.Instance.Trace($"Rebalance | S11 | NE01 done | SetNe01.ActualValue: {SetNe01.ActualValue} | SetNe01.OrderSet.Count: {SetNe01.OrderSet.Count}"); } if (enable02) { SetNe02.OrderSet.Add(StartSet.OrderSet.Skip(idx).FirstOrDefault().Key, StartSet.OrderSet.Skip(idx++).FirstOrDefault().Value); - Log.Instance.Trace($"Rebalance | S12 | NE02 done | SetNe02.ActualValue: {SetNe02.ActualValue}"); + Log.Instance.Trace($"Rebalance | S12 | NE02 done | SetNe02.ActualValue: {SetNe02.ActualValue} | SetNe02.OrderSet.Count: {SetNe02.OrderSet.Count}"); } if (enable03) { SetNe03.OrderSet.Add(StartSet.OrderSet.Skip(idx).FirstOrDefault().Key, StartSet.OrderSet.Skip(idx++).FirstOrDefault().Value); - Log.Instance.Trace($"Rebalance | S13 | NE03 done | SetNe03.ActualValue: {SetNe03.ActualValue}"); + Log.Instance.Trace($"Rebalance | S13 | NE03 done | SetNe03.ActualValue: {SetNe03.ActualValue} | SetNe03.OrderSet.Count: {SetNe03.OrderSet.Count}"); } } - // check sul num di spostamenti + // check sul num di spostamenti1 int numMove = 0; + int numOk = 0; // riorganizzo tabOrders... foreach (var orderItem in TabOrders) { @@ -938,26 +947,38 @@ namespace NKC_WF.WebUserControls DLMan.taOLT.updateBatch(orderItem.BatchID, orderItem.OrdID, cmp_orderExtListNE01.BatchId); numMove++; } + else + { + numOk++; + } } - else if (SetNe02.OrderSet.ContainsKey(orderItem.OrdID)) + if (SetNe02.OrderSet.ContainsKey(orderItem.OrdID)) { if (orderItem.BatchID != cmp_orderExtListNE02.BatchId) { DLMan.taOLT.updateBatch(orderItem.BatchID, orderItem.OrdID, cmp_orderExtListNE02.BatchId); numMove++; } + else + { + numOk++; + } } - else + if (SetNe03.OrderSet.ContainsKey(orderItem.OrdID)) { if (orderItem.BatchID != cmp_orderExtListNE03.BatchId) { DLMan.taOLT.updateBatch(orderItem.BatchID, orderItem.OrdID, cmp_orderExtListNE03.BatchId); numMove++; } + else + { + numOk++; + } } } - answ = numMove == TabOrders.Count && TabOrders.Count > 0; - Log.Instance.Info($"Final check | answ: {answ}| numMove: {numMove} | TabOrders.Count: {TabOrders.Count}"); + answ = listOrders.Count > 0; + Log.Instance.Trace($"Final check | S14 | answ: {answ} | listOrders.Count: {listOrders.Count} | numMove: {numMove} | numOk: {numOk}"); // salvo tempo calcolo stopWatch.Stop(); var elapsTime = stopWatch.Elapsed;