Avanzamento gestione manutenzione rpeventiva (NON completata...)
This commit is contained in:
@@ -17,7 +17,7 @@ namespace MP.MONO.Data.Controllers
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Recupero elenco allarmi (ultimi datop "skip")
|
||||
/// Recupero elenco allarmi (ultimi dato "skip")
|
||||
/// </summary>
|
||||
/// <param name="MachineId"></param>
|
||||
/// <param name="skipRec"></param>
|
||||
@@ -328,7 +328,7 @@ namespace MP.MONO.Data.Controllers
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupero elenco allarmi (ultimi datop "skip")
|
||||
/// Recupero elenco Task Manut Prev Previsti/Configurati (ultimi dato "skip")
|
||||
/// </summary>
|
||||
/// <param name="MachineId"></param>
|
||||
/// <param name="skipRec"></param>
|
||||
@@ -362,6 +362,118 @@ namespace MP.MONO.Data.Controllers
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupero elenco Task Schedulati (ultimi dato "skip")
|
||||
/// </summary>
|
||||
/// <param name="MachineId"></param>
|
||||
/// <param name="skipRec"></param>
|
||||
/// <param name="numRec"></param>
|
||||
/// <param name="showCompleted"></param>
|
||||
/// <returns></returns>
|
||||
public List<ScheduledMaintModel> SchedMaintTaskGetFilt(int MachineId, int skipRec, int numRec, bool showCompleted)
|
||||
{
|
||||
List<ScheduledMaintModel> dbResult = new List<ScheduledMaintModel>();
|
||||
using (MapoMonoContext localDbCtx = new MapoMonoContext())
|
||||
{
|
||||
try
|
||||
{
|
||||
dbResult = localDbCtx
|
||||
.DbSetSMTask
|
||||
.Where(x => x.PMTaskeNav.MachineId == MachineId && (x.DtExecution == DateTime.MinValue || showCompleted))
|
||||
.Include(m => m.PMTaskeNav.MachGroupNav)
|
||||
.Include(m => m.CounterNav)
|
||||
.Include(m => m.PMTaskeNav.MachineNav)
|
||||
.Include(m => m.PMTaskeNav.TopicNav)
|
||||
.Include(m => m.PMTaskeNav.UserTeamNav)
|
||||
.OrderBy(x => x.PMTaskeNav.ExtIdx)
|
||||
.Skip(skipRec)
|
||||
.Take(numRec)
|
||||
.ToList();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante SchedMaintTaskGetFilt{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// genera elenco Task Schedulati missing da schema + attualmente presenti...
|
||||
/// </summary>
|
||||
/// <param name="MachineId"></param>
|
||||
/// <param name="skipRec"></param>
|
||||
/// <param name="numRec"></param>
|
||||
/// <param name="showCompleted"></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
|
||||
|
||||
Reference in New Issue
Block a user