OK test FixODL postumo con RPO
This commit is contained in:
@@ -82,7 +82,7 @@
|
||||
<div class="col-4">
|
||||
@if (IdxOdlSel > 0)
|
||||
{
|
||||
<button class="btn btn-lg btn-warning w-100" @onclick="() => setupOdl()"><i class="fa-solid fa-plus"></i> Imposta ODL</button>
|
||||
<button class="btn btn-lg btn-warning w-100" @onclick="() => SetupOdl()"><i class="fa-solid fa-plus"></i> Imposta ODL</button>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -13,9 +13,25 @@ namespace MP_TAB_SERV.Components
|
||||
|
||||
#endregion Public Properties
|
||||
|
||||
#region Protected Fields
|
||||
|
||||
protected bool enableRPO = true;
|
||||
protected int NumRecPage = 5;
|
||||
protected int PageNum = 1;
|
||||
protected int TotalCount = 0;
|
||||
|
||||
#endregion Protected Fields
|
||||
|
||||
#region Protected Properties
|
||||
|
||||
private List<vSelOdlModel> ListSelODL { get; set; } = new List<vSelOdlModel>();
|
||||
protected List<ODLModel> ListComplete { get; set; } = new List<ODLModel>();
|
||||
protected List<ODLModel> ListPaged { get; set; } = new List<ODLModel>();
|
||||
|
||||
[Inject]
|
||||
protected MessageService MServ { get; set; } = null!;
|
||||
|
||||
[Inject]
|
||||
protected NavigationManager NavMan { get; set; } = null!;
|
||||
|
||||
protected bool ShowAll
|
||||
{
|
||||
@@ -35,6 +51,9 @@ namespace MP_TAB_SERV.Components
|
||||
}
|
||||
}
|
||||
|
||||
[Inject]
|
||||
protected SharedMemService SMServ { get; set; } = null!;
|
||||
|
||||
[Inject]
|
||||
protected TabDataService TabDServ { get; set; } = null!;
|
||||
|
||||
@@ -44,16 +63,67 @@ namespace MP_TAB_SERV.Components
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
enableRPO = SMServ.GetConfBool("enableRPO");
|
||||
}
|
||||
|
||||
protected override async Task OnParametersSetAsync()
|
||||
{
|
||||
await ReloadData();
|
||||
}
|
||||
|
||||
protected void SaveNumRec(int newNum)
|
||||
{
|
||||
NumRecPage = newNum;
|
||||
UpdateTable();
|
||||
}
|
||||
|
||||
protected void SavePage(int newNum)
|
||||
{
|
||||
PageNum = newNum;
|
||||
UpdateTable();
|
||||
}
|
||||
|
||||
protected async Task SetupOdl()
|
||||
{
|
||||
await Task.Delay(1);
|
||||
if (!string.IsNullOrEmpty(IdxMaccCurr) && IdxOdlSel > 0)
|
||||
{
|
||||
if (enableRPO)
|
||||
{
|
||||
// registro ODL retroattivamente...
|
||||
await TabDServ.OdlSetupPromPostuma(IdxOdlSel, MServ.MatrOpr, IdxMaccCurr);
|
||||
}
|
||||
else
|
||||
{
|
||||
// registro ODL retroattivamente...
|
||||
await TabDServ.OdlSetupPostumo(IdxOdlSel, IdxMaccCurr);
|
||||
}
|
||||
}
|
||||
|
||||
// redirect
|
||||
NavMan.NavigateTo(NavMan.Uri, true);
|
||||
}
|
||||
|
||||
protected void toggleFixOdl()
|
||||
{
|
||||
showFixOdl = !showFixOdl;
|
||||
}
|
||||
|
||||
protected void UpdateTable()
|
||||
{
|
||||
// esegue paginazione
|
||||
if (TotalCount > NumRecPage)
|
||||
{
|
||||
ListPaged = ListComplete.Skip((PageNum - 1) * NumRecPage).Take(NumRecPage).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
ListPaged = ListComplete;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Protected Methods
|
||||
|
||||
#region Private Fields
|
||||
@@ -65,6 +135,8 @@ namespace MP_TAB_SERV.Components
|
||||
|
||||
#region Private Properties
|
||||
|
||||
private int IdxOdlSel { get; set; } = 0;
|
||||
private List<vSelOdlModel> ListSelODL { get; set; } = new List<vSelOdlModel>();
|
||||
private int numDayOdl { get; set; } = 30;
|
||||
|
||||
#endregion Private Properties
|
||||
@@ -84,45 +156,7 @@ namespace MP_TAB_SERV.Components
|
||||
UpdateTable();
|
||||
}
|
||||
}
|
||||
protected void UpdateTable()
|
||||
{
|
||||
// esegue paginazione
|
||||
if (TotalCount > NumRecPage)
|
||||
{
|
||||
ListPaged = ListComplete.Skip((PageNum - 1) * NumRecPage).Take(NumRecPage).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
ListPaged = ListComplete;
|
||||
}
|
||||
}
|
||||
protected void SaveNumRec(int newNum)
|
||||
{
|
||||
NumRecPage = newNum;
|
||||
UpdateTable();
|
||||
}
|
||||
|
||||
protected void SavePage(int newNum)
|
||||
{
|
||||
PageNum = newNum;
|
||||
UpdateTable();
|
||||
}
|
||||
|
||||
protected async Task setupOdl()
|
||||
{
|
||||
await Task.Delay(1);
|
||||
}
|
||||
|
||||
|
||||
protected List<ODLModel> ListComplete { get; set; } = new List<ODLModel>();
|
||||
|
||||
protected List<ODLModel> ListPaged { get; set; } = new List<ODLModel>();
|
||||
protected int NumRecPage = 5;
|
||||
protected int PageNum = 1;
|
||||
protected int TotalCount = 0;
|
||||
|
||||
|
||||
private int IdxOdlSel { get; set; } = 0;
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
@@ -768,6 +768,64 @@ namespace MP.Data.Controllers
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Setup ODL Postumo
|
||||
/// </summary>
|
||||
/// <param name="idxODL"></param>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <returns></returns>
|
||||
public bool OdlSetupPostumo(int idxODL, string idxMacchina)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
var IdxODL = new SqlParameter("@idxODL", idxODL);
|
||||
var IdxMacc = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var result = dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRaw("EXEC stp_ODL_insPostumo @idxODL, @IdxMacchina", IdxODL, IdxMacc);
|
||||
fatto = result != 0;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante OdlSetupPostumo{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Setup PODL Postumo
|
||||
/// </summary>
|
||||
/// <param name="idxPromOdl"></param>
|
||||
/// <param name="matrOpr"></param>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <returns></returns>
|
||||
public bool OdlSetupPromPostuma(int idxPromOdl, int matrOpr, string idxMacchina)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
var IdxPODL = new SqlParameter("@idxPromessa", idxPromOdl);
|
||||
var MatrOpr = new SqlParameter("@MatrOpr", matrOpr);
|
||||
var IdxMacc = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var result = dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRaw("EXEC stp_ODL_inizioSetupPromessaPostuma @idxPromessa, @MatrOpr, @IdxMacchina", IdxPODL, MatrOpr, IdxMacc);
|
||||
fatto = result != 0;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante OdlSetupPromPostuma{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Stato prod macchina
|
||||
/// </summary>
|
||||
|
||||
@@ -1033,6 +1033,92 @@ namespace MP.Data.Services
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco ODL data macchina e periodo
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <param name="dtStart"></param>
|
||||
/// <param name="dtEnd"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<List<ODLModel>> OdlListByMacc(string idxMacchina, DateTime dtStart, DateTime dtEnd)
|
||||
{
|
||||
string source = "DB";
|
||||
Stopwatch sw = new Stopwatch();
|
||||
sw.Start();
|
||||
List<ODLModel>? result = new List<ODLModel>();
|
||||
// cerco in redis...
|
||||
string currKey = $"{redisBaseKey}:ODL:{idxMacchina}:{dtStart:yyyyMMdd-HHmmss}:{dtEnd:yyyyMMdd-HHmmss}";
|
||||
RedisValue rawData = await redisDb.StringGetAsync(currKey);
|
||||
if (rawData.HasValue)
|
||||
{
|
||||
result = JsonConvert.DeserializeObject<List<ODLModel>>($"{rawData}");
|
||||
source = "REDIS";
|
||||
}
|
||||
else
|
||||
{
|
||||
result = await Task.FromResult(dbTabController.OdlListByMacc(idxMacchina, dtStart, dtEnd));
|
||||
// riordino
|
||||
result = result.OrderByDescending(x => x.DataInizio).ToList();
|
||||
// serializzp e salvo...
|
||||
rawData = JsonConvert.SerializeObject(result);
|
||||
await redisDb.StringSetAsync(currKey, rawData, UltraLongCache);
|
||||
}
|
||||
if (result == null)
|
||||
{
|
||||
result = new List<ODLModel>();
|
||||
}
|
||||
sw.Stop();
|
||||
Log.Debug($"OdlListByMacc | {source} | {sw.Elapsed.TotalMilliseconds}ms");
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Setup ODL Postumo
|
||||
/// </summary>
|
||||
/// <param name="idxODL"></param>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> OdlSetupPostumo(int idxODL, string idxMacchina)
|
||||
{
|
||||
bool answ = false;
|
||||
try
|
||||
{
|
||||
// inserisco evento
|
||||
answ = dbTabController.OdlSetupPostumo(idxODL, idxMacchina);
|
||||
await FlushCache("ODL");
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string logMsg = $"Eccezione in OdlSetupPostumo | macchina: {idxMacchina} | idxODL: {idxODL}{Environment.NewLine}{exc}";
|
||||
Log.Error(logMsg);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Setup ODL Postumo
|
||||
/// </summary>
|
||||
/// <param name="idxPromOdl"></param>
|
||||
/// <param name="matrOpr"></param>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> OdlSetupPromPostuma(int idxPromOdl, int matrOpr, string idxMacchina)
|
||||
{
|
||||
bool answ = false;
|
||||
try
|
||||
{
|
||||
// inserisco evento
|
||||
answ = dbTabController.OdlSetupPromPostuma(idxPromOdl, matrOpr, idxMacchina);
|
||||
await FlushCache("ODL");
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string logMsg = $"Eccezione in OdlSetupPromPostuma | macchina: {idxMacchina} | idxPromOdl: {idxPromOdl} | MatrOpr: {matrOpr}{Environment.NewLine}{exc}";
|
||||
Log.Error(logMsg);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Stato prod macchina
|
||||
/// </summary>
|
||||
@@ -1990,45 +2076,6 @@ namespace MP.Data.Services
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco ODL data macchina e periodo
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <param name="dtStart"></param>
|
||||
/// <param name="dtEnd"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<List<ODLModel>> OdlListByMacc(string idxMacchina, DateTime dtStart, DateTime dtEnd)
|
||||
{
|
||||
string source = "DB";
|
||||
Stopwatch sw = new Stopwatch();
|
||||
sw.Start();
|
||||
List<ODLModel>? result = new List<ODLModel>();
|
||||
// cerco in redis...
|
||||
string currKey = $"{redisBaseKey}:ODL:{idxMacchina}:{dtStart:yyyyMMdd-HHmmss}:{dtEnd:yyyyMMdd-HHmmss}";
|
||||
RedisValue rawData = await redisDb.StringGetAsync(currKey);
|
||||
if (rawData.HasValue)
|
||||
{
|
||||
result = JsonConvert.DeserializeObject<List<ODLModel>>($"{rawData}");
|
||||
source = "REDIS";
|
||||
}
|
||||
else
|
||||
{
|
||||
result = await Task.FromResult(dbTabController.OdlListByMacc(idxMacchina, dtStart, dtEnd));
|
||||
// riordino
|
||||
result = result.OrderByDescending(x => x.DataInizio).ToList();
|
||||
// serializzp e salvo...
|
||||
rawData = JsonConvert.SerializeObject(result);
|
||||
await redisDb.StringSetAsync(currKey, rawData, UltraLongCache);
|
||||
}
|
||||
if (result == null)
|
||||
{
|
||||
result = new List<ODLModel>();
|
||||
}
|
||||
sw.Stop();
|
||||
Log.Debug($"OdlListByMacc | {source} | {sw.Elapsed.TotalMilliseconds}ms");
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco ultimi ODL x macchina
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user