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;