Update gestione ritorno gruppi prod (group esplicito in args)
This commit is contained in:
@@ -3151,7 +3151,7 @@ namespace EgwCoreLib.Lux.Data.Controllers
|
||||
ProductionGroupModel newRec = new ProductionGroupModel()
|
||||
{
|
||||
OrderRowID = currRec.OrderRowID,
|
||||
GrpType = ProdGroupType.UnWorkable,
|
||||
GrpType = ProdGroupType.Vincolated,
|
||||
WorkGroupListRaw = rawWGL
|
||||
};
|
||||
listProdGroup2Add.Add(newRec);
|
||||
@@ -3179,7 +3179,7 @@ namespace EgwCoreLib.Lux.Data.Controllers
|
||||
ProductionGroupModel newRec = new ProductionGroupModel()
|
||||
{
|
||||
OrderRowID = currRec.OrderRowID,
|
||||
GrpType = ProdGroupType.UnWorkable,
|
||||
GrpType = ProdGroupType.Balanced,
|
||||
WorkGroupListRaw = rawWGL
|
||||
};
|
||||
listProdGroup2Add.Add(newRec);
|
||||
@@ -3201,6 +3201,79 @@ namespace EgwCoreLib.Lux.Data.Controllers
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Upsert record di un singolo ProdGroup da fase Balance
|
||||
/// </summary>
|
||||
/// <param name="uID">UID dell'item offerta di cui si è ricevuto l'oggetto Balance'</param>
|
||||
/// <param name="rGroup">Prod Group di riferimento</param>
|
||||
/// <param name="rawBalance"></param>
|
||||
internal async Task<bool> ProdGroupUpsertBalance(string uID, string rGroup, string rawBalance)
|
||||
{
|
||||
bool answ = false;
|
||||
//using (DataLayerContext dbCtx = new DataLayerContext(_config))
|
||||
using (DataLayerContext dbCtx = new DataLayerContext())
|
||||
{
|
||||
// Togliamo la 'G' e convertiamo in int (gestisce automaticamente "01" -> 1)
|
||||
int gType = int.Parse(rGroup.TrimStart('G'));
|
||||
try
|
||||
{
|
||||
// recupero ord row (parent)...
|
||||
var ordRowRec = dbCtx
|
||||
.DbSetOrderRow
|
||||
.Where(x => x.OrderRowUID == uID)
|
||||
.FirstOrDefault();
|
||||
if (ordRowRec != null)
|
||||
{
|
||||
// recupero record specifico
|
||||
var currRec = dbCtx
|
||||
.DbSetProdGroup
|
||||
.Where(x => x.OrderRowID == ordRowRec.OrderID && (int)x.GrpType == gType)
|
||||
.FirstOrDefault();
|
||||
|
||||
// se trovato aggiorno
|
||||
if (currRec != null)
|
||||
{
|
||||
// calcolo il dizionario degli elementi...
|
||||
Dictionary<string, ProdMachineDetailDto> newWorkGroupList = new();
|
||||
#if false
|
||||
// converto il dizionario...
|
||||
foreach (var item in machineTags)
|
||||
{
|
||||
ProdMachineDetailDto detProd = new ProdMachineDetailDto()
|
||||
{
|
||||
TagList = item.Value
|
||||
.Select(x => x.Tag)
|
||||
.ToList(),
|
||||
Time = item.Value
|
||||
.Sum(x => (double)x.Time)
|
||||
};
|
||||
newWorkGroupList.Add(item.Key, detProd);
|
||||
}
|
||||
string rawWGL = JsonConvert.SerializeObject(newWorkGroupList);
|
||||
|
||||
|
||||
currRec.WorkGroupListRaw = rawBalance;
|
||||
#endif
|
||||
}
|
||||
// altrimenti aggiungo
|
||||
else
|
||||
{
|
||||
}
|
||||
|
||||
// salvo TUTTI i cambiamenti...
|
||||
var result = await dbCtx.SaveChangesAsync();
|
||||
answ = result > 0;
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante ProdGroupUpsertBalance{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
await Task.Delay(100);
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Upsert record
|
||||
/// </summary>
|
||||
|
||||
@@ -38,6 +38,15 @@ namespace EgwCoreLib.Lux.Data.DbModel.Production
|
||||
get => $"G{(int)GrpType:00}";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Codice Gruppo calcolato dal tipo
|
||||
/// </summary>
|
||||
[NotMapped]
|
||||
public string ReqUID
|
||||
{
|
||||
get => $"{OrderRowNav?.OrderRowUID ?? "NA"}:{GroupCode}";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Valore effettivo serializzato dei WorkgroupList
|
||||
/// </summary>
|
||||
|
||||
@@ -1900,20 +1900,18 @@ namespace EgwCoreLib.Lux.Data.Services
|
||||
/// <summary>
|
||||
/// Esegue salvataggio ProdBalance (di un gruppo lavorazioni per riga ordine) sul DB
|
||||
/// </summary>
|
||||
/// <param name="uID">UID dell'item offerta + group di cui si è ricevuto l'oggetto Balance'</param>
|
||||
/// <param name="uID">UID dell'item offerta di cui si è ricevuto l'oggetto Balance'</param>
|
||||
/// <param name="rGroup">Prod Group di riferimento</param>
|
||||
/// <param name="execEnvironment">Environment dell'item</param>
|
||||
/// <param name="balance">Stima Balance serializzata</param>
|
||||
/// <returns></returns>
|
||||
public async Task SaveProdBalanceAsync(string uID, Constants.EXECENVIRONMENTS execEnvironment, string balance)
|
||||
public async Task SaveProdBalanceAsync(string uID, string rGroup, Constants.EXECENVIRONMENTS execEnvironment, string balance)
|
||||
{
|
||||
// salvo sul DB il risultato della BOM
|
||||
if (!string.IsNullOrEmpty(balance))
|
||||
{
|
||||
#if false
|
||||
// salvo info balance nel record del DB relativo all'oggetto richiesto
|
||||
await dbController.OrderRowUpsertProdEst(uID, balance);
|
||||
#endif
|
||||
await Task.Delay(100);
|
||||
await dbController.ProdGroupUpsertBalance(uID, rGroup, balance);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Version>0.9.2601.0915</Version>
|
||||
<Version>0.9.2601.0916</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -179,14 +179,15 @@ namespace Lux.API.Services
|
||||
// gestione ritorno tipo Balance dei gruppi di lavorazione (x carico macchine/schedulazione)
|
||||
if (retData.Args.ContainsKey("Balance"))
|
||||
{
|
||||
// ATTENZIONE! qui il valore UID deve contenere ANCHE il gruppo cui è riferito (es: POR.25.0000004B.G01)
|
||||
// ATTENZIONE! qui oltre al valore UID deve leggere ANCHE il gruppo cui è riferito (es: Group: G01)
|
||||
// recupero lista risultati calcolo...
|
||||
string refGroup = retData.Args["Group"];
|
||||
string rawBalance = retData.Args["Balance"];
|
||||
List<MachineCalcResultDTO>? machineEstimList = new List<MachineCalcResultDTO>();
|
||||
// deserializzo
|
||||
try
|
||||
{
|
||||
await dbService.SaveProdBalanceAsync(UID, retData.ExecEnvironment, rawBalance);
|
||||
await dbService.SaveProdBalanceAsync(UID, refGroup, retData.ExecEnvironment, rawBalance);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
|
||||
@@ -729,6 +729,8 @@ namespace Lux.UI.Components.Compo
|
||||
// creo registrazione richiesta...
|
||||
var ruid = await CRService.AddRequestAsync($"{CurrRecord.Envir}", $"{(int)cMode}-{(int)cSubMode}", WorkLoadRecord.UID);
|
||||
dictArgs.Add("UID", WorkLoadRecord.UID);
|
||||
// hard coded a G04: da calcolare!
|
||||
dictArgs.Add("Group", $"G04");
|
||||
// aggiungo RUID effettivo
|
||||
dictArgs.Add("RUID", ruid);
|
||||
dictArgs.Add("OrderUID", CurrRecord.OrderCode);
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<UserSecretsId>aspnet-Lux.UI-a758c101-a2f4-4e38-977d-1c4887dbbd50</UserSecretsId>
|
||||
<Version>0.9.2601.0915</Version>
|
||||
<Version>0.9.2601.0916</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<body>
|
||||
<i>LUX - Web Windows MES</i>
|
||||
<h4>Versione: 0.9.2601.0915</h4>
|
||||
<h4>Versione: 0.9.2601.0916</h4>
|
||||
<br /> Note di rilascio:
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
@@ -1 +1 @@
|
||||
0.9.2601.0915
|
||||
0.9.2601.0916
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<item>
|
||||
<version>0.9.2601.0915</version>
|
||||
<version>0.9.2601.0916</version>
|
||||
<url>http://nexus.steamware.net/repository/SWS/GPW/stable/GPW.UI.zip</url>
|
||||
<changelog>http://nexus.steamware.net/repository/SWS/GPW/stable/ChangeLog.html</changelog>
|
||||
<mandatory>false</mandatory>
|
||||
|
||||
Reference in New Issue
Block a user