- corretta rigenerazione task
This commit is contained in:
@@ -362,6 +362,81 @@ namespace MP.MONO.Data.Controllers
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// genera elenco Task Schedulati missing da schema + attualmente presenti...
|
||||
/// </summary>
|
||||
/// <param name="MachineId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> SchedMaintTaskCreateMissing(int MachineId)
|
||||
{
|
||||
bool answ = false;
|
||||
using (MapoMonoContext localDbCtx = new MapoMonoContext())
|
||||
{
|
||||
try
|
||||
{
|
||||
List<PrevMaintTaskModel> missTask = new List<PrevMaintTaskModel>();
|
||||
|
||||
List<PrevMaintTaskModel>? allTask = localDbCtx
|
||||
.DbSetPMTask
|
||||
.Where(x => x.MachineId == MachineId)
|
||||
.Include(i => i.CounterNav)
|
||||
.ToList();
|
||||
|
||||
// analizzo task per idx del PMTask
|
||||
var reqTask = allTask
|
||||
.Select(x => x.PMTaskId)
|
||||
.ToList();
|
||||
|
||||
var openTask = localDbCtx
|
||||
.DbSetSMTask
|
||||
.Where(x => x.DtExecution == DateTime.MinValue)
|
||||
.Include(m => m.PMTaskeNav)
|
||||
.ToList();
|
||||
|
||||
var currTask = openTask
|
||||
.Where(x => x.PMTaskeNav.MachineId == MachineId)
|
||||
.Select(x => x.PMTaskId)
|
||||
.ToList();
|
||||
|
||||
// elenco dei SOLI task presenti
|
||||
var listTaskOk = currTask.Intersect(reqTask).ToList();
|
||||
|
||||
// dall'elenco di quelli originali elimino presenti --> ho elenco mancanti...
|
||||
foreach (var iTask in allTask)
|
||||
{
|
||||
// se non nell'elenco aggiungo...
|
||||
if (!listTaskOk.Exists(x => x == iTask.PMTaskId))
|
||||
{
|
||||
missTask.Add(iTask);
|
||||
}
|
||||
}
|
||||
|
||||
var newRecs = missTask.Select(x => new ScheduledMaintModel()
|
||||
{
|
||||
CCode = x.CCode,
|
||||
DtCreation = DateTime.Now,
|
||||
ExpiryVal = x.ExpiryVal,
|
||||
PMTaskId = x.PMTaskId,
|
||||
CountStartVal = x.CounterNav.ActualVal
|
||||
}).ToList();
|
||||
|
||||
localDbCtx
|
||||
.DbSetSMTask
|
||||
.AddRange(newRecs);
|
||||
|
||||
// salvo
|
||||
localDbCtx.SaveChanges();
|
||||
answ = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante SchedMaintTaskGetFilt{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
await Task.Delay(1);
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupero elenco Task Schedulati (ultimi dato "skip")
|
||||
/// </summary>
|
||||
@@ -406,17 +481,17 @@ namespace MP.MONO.Data.Controllers
|
||||
/// <param name="ExecDT"></param>
|
||||
/// <param name="ExecUser"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> SchedMaintTaskSetDone(int MachineId, int SMTaskId, DateTime ExecDT,string ExecUser)
|
||||
public async Task<bool> SchedMaintTaskSetDone(int MachineId, int SMTaskId, DateTime ExecDT, string ExecUser)
|
||||
{
|
||||
bool answ = false;
|
||||
using (MapoMonoContext localDbCtx = new MapoMonoContext())
|
||||
{
|
||||
try
|
||||
{
|
||||
var dbResult = localDbCtx
|
||||
.DbSetSMTask
|
||||
.Where(x => x.PMTaskeNav.MachineId == MachineId && x.SMTaskId == SMTaskId)
|
||||
.FirstOrDefault();
|
||||
var dbResult = localDbCtx
|
||||
.DbSetSMTask
|
||||
.Where(x => x.PMTaskeNav.MachineId == MachineId && x.SMTaskId == SMTaskId)
|
||||
.FirstOrDefault();
|
||||
if (dbResult != null)
|
||||
{
|
||||
dbResult.DtExecution = ExecDT;
|
||||
@@ -434,79 +509,6 @@ namespace MP.MONO.Data.Controllers
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// genera elenco Task Schedulati missing da schema + attualmente presenti...
|
||||
/// </summary>
|
||||
/// <param name="MachineId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> SchedMaintTaskCreateMissing(int MachineId)
|
||||
{
|
||||
bool answ = false;
|
||||
using (MapoMonoContext localDbCtx = new MapoMonoContext())
|
||||
{
|
||||
try
|
||||
{
|
||||
List<PrevMaintTaskModel> missTask = new List<PrevMaintTaskModel>();
|
||||
|
||||
List<PrevMaintTaskModel>? allTask = localDbCtx
|
||||
.DbSetPMTask
|
||||
.Where(x => x.MachineId == MachineId)
|
||||
.ToList();
|
||||
|
||||
// analizzo task per idx del PMTask
|
||||
var reqTask = allTask
|
||||
.Select(x => x.PMTaskId)
|
||||
.ToList();
|
||||
|
||||
var openTask = localDbCtx
|
||||
.DbSetSMTask
|
||||
.Where(x => x.DtExecution == DateTime.MinValue)
|
||||
.Include(m => m.PMTaskeNav)
|
||||
.ToList();
|
||||
|
||||
var currTask = openTask
|
||||
.Where(x => x.PMTaskeNav.MachineId == MachineId)
|
||||
.Select(x => x.PMTaskId)
|
||||
.ToList();
|
||||
|
||||
// elenco dei SOLI task presenti
|
||||
var listTaskOk = currTask.Intersect(reqTask).ToList();
|
||||
|
||||
// dall'elenco di quelli originali elimino presenti --> ho elenco mancanti...
|
||||
foreach (var iTask in allTask)
|
||||
{
|
||||
// se non nell'elenco aggiungo...
|
||||
if (!listTaskOk.Exists(x => x == iTask.PMTaskId))
|
||||
{
|
||||
missTask.Add(iTask);
|
||||
}
|
||||
}
|
||||
|
||||
var newRecs = missTask.Select(x => new ScheduledMaintModel()
|
||||
{
|
||||
CCode = x.CCode,
|
||||
DtCreation = DateTime.Now,
|
||||
ExpiryVal = x.ExpiryVal,
|
||||
PMTaskId = x.PMTaskId
|
||||
}).ToList();
|
||||
|
||||
localDbCtx
|
||||
.DbSetSMTask
|
||||
.AddRange(newRecs);
|
||||
|
||||
// salvo
|
||||
localDbCtx.SaveChanges();
|
||||
answ = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante SchedMaintTaskGetFilt{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
await Task.Delay(1);
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Private Fields
|
||||
|
||||
@@ -22,8 +22,18 @@ namespace MP.MONO.UI.Components
|
||||
// FARE!!! filtro macchina
|
||||
private int MachineId = 1;
|
||||
|
||||
/// <summary>
|
||||
/// Valore limite (in ore) per indicare come rosso una scadenza
|
||||
/// </summary>
|
||||
private int redLim = 24 * 2;
|
||||
|
||||
private List<ScheduledMaintModel>? SearchRecords = null;
|
||||
|
||||
/// <summary>
|
||||
/// Valore limite (in ore) per indicare come giallo una scadenza
|
||||
/// </summary>
|
||||
private int yelLim = 24 * 7;
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#region Private Properties
|
||||
@@ -45,8 +55,13 @@ namespace MP.MONO.UI.Components
|
||||
}
|
||||
}
|
||||
|
||||
private int currSMTaskId { get; set; } = 0;
|
||||
private DateTime execDate { get; set; } = DateTime.Today.AddHours(DateTime.Now.Hour);
|
||||
private string execName { get; set; } = "";
|
||||
private bool isLoading { get; set; } = false;
|
||||
|
||||
private int LimitDayPeriod { get; set; } = 7;
|
||||
|
||||
private int MaxRecord
|
||||
{
|
||||
get
|
||||
@@ -64,6 +79,11 @@ namespace MP.MONO.UI.Components
|
||||
}
|
||||
}
|
||||
|
||||
private string modalShow
|
||||
{
|
||||
get => showTaskConf ? "show" : "hide";
|
||||
}
|
||||
|
||||
private int numRecord
|
||||
{
|
||||
get => _numRecord;
|
||||
@@ -92,6 +112,8 @@ namespace MP.MONO.UI.Components
|
||||
}
|
||||
}
|
||||
|
||||
private bool showTaskConf { get; set; } = false;
|
||||
|
||||
private int totalCount
|
||||
{
|
||||
get
|
||||
@@ -109,6 +131,19 @@ namespace MP.MONO.UI.Components
|
||||
|
||||
#region Private Methods
|
||||
|
||||
private async Task ConfirmDone()
|
||||
{
|
||||
// se ho dataora ed esecutore...
|
||||
if (!string.IsNullOrEmpty(execName) && currSMTaskId > 0)
|
||||
{
|
||||
// salvo!
|
||||
bool fatto = await MMDataService.SchedMaintTaskSetDone(MachineId, currSMTaskId, execDate, execName);
|
||||
|
||||
// rigenero!
|
||||
await RegenTask();
|
||||
}
|
||||
}
|
||||
|
||||
private void ForceReload(int newNum)
|
||||
{
|
||||
numRecord = newNum;
|
||||
@@ -125,38 +160,6 @@ namespace MP.MONO.UI.Components
|
||||
await ReloadData();
|
||||
}
|
||||
|
||||
private bool showTaskConf { get; set; } = false;
|
||||
|
||||
private void ShowConfirm(int SMTaskId)
|
||||
{
|
||||
showTaskConf = !showTaskConf;
|
||||
currSMTaskId = SMTaskId;
|
||||
}
|
||||
|
||||
private DateTime execDate { get; set; } = DateTime.Today.AddHours(DateTime.Now.Hour);
|
||||
|
||||
private string execName { get; set; } = "";
|
||||
|
||||
private int currSMTaskId { get; set; } = 0;
|
||||
|
||||
private string modalShow
|
||||
{
|
||||
get => showTaskConf ? "show" : "hide";
|
||||
}
|
||||
|
||||
private async Task ConfirmDone()
|
||||
{
|
||||
// se ho dataora ed esecutore...
|
||||
if (!string.IsNullOrEmpty(execName) && currSMTaskId > 0)
|
||||
{
|
||||
// salvo!
|
||||
bool fatto = await MMDataService.SchedMaintTaskSetDone(MachineId, currSMTaskId, execDate, execName);
|
||||
|
||||
// rigenero!
|
||||
await RegenTask();
|
||||
}
|
||||
}
|
||||
|
||||
private async Task ReloadData()
|
||||
{
|
||||
isLoading = true;
|
||||
@@ -169,6 +172,12 @@ namespace MP.MONO.UI.Components
|
||||
isLoading = false;
|
||||
}
|
||||
|
||||
private void ShowConfirm(int SMTaskId)
|
||||
{
|
||||
showTaskConf = !showTaskConf;
|
||||
currSMTaskId = SMTaskId;
|
||||
}
|
||||
|
||||
private async Task ToggleCompleted()
|
||||
{
|
||||
await Task.Delay(1);
|
||||
@@ -176,17 +185,6 @@ namespace MP.MONO.UI.Components
|
||||
await Task.Delay(1);
|
||||
}
|
||||
|
||||
private int LimitDayPeriod { get; set; } = 7;
|
||||
|
||||
/// <summary>
|
||||
/// Valore limite (in ore) per indicare come rosso una scadenza
|
||||
/// </summary>
|
||||
private int redLim = 24 * 2;
|
||||
/// <summary>
|
||||
/// Valore limite (in ore) per indicare come giallo una scadenza
|
||||
/// </summary>
|
||||
private int yelLim = 24 * 7;
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
@@ -345,7 +345,6 @@ namespace MP.MONO.UI.Data
|
||||
return await Task.FromResult(dbResult);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Registro esecuzione task schedualto
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user