diff --git a/Step.Config/Config/maintenancesConfig.xml b/Step.Config/Config/maintenancesConfig.xml index 3417b78f..4a3e56b9 100644 --- a/Step.Config/Config/maintenancesConfig.xml +++ b/Step.Config/Config/maintenancesConfig.xml @@ -1,6 +1,6 @@  - + 1 Test @@ -10,27 +10,27 @@ 01/12/1999 machine_interval 1 - - + + 2 Test Ita - 2500 - 01/12/1999 + 5 + 15/02/2018 exp_date 2 - - - 3 + + + 1 Test Ita - 20 - 01/12/1999 + 10 + 15/02/2018 time_interval 2 - + \ No newline at end of file diff --git a/Step.Config/Config/maintenancesConfigValidator.xsd b/Step.Config/Config/maintenancesConfigValidator.xsd index 443327aa..d9a6e343 100644 --- a/Step.Config/Config/maintenancesConfigValidator.xsd +++ b/Step.Config/Config/maintenancesConfigValidator.xsd @@ -3,47 +3,52 @@ - + - + - - - - - - - - - - - - + + + + + + - - - - + + + + - - - - - - + + + + + + + + + + - + - + - + + + + + + + + \ No newline at end of file diff --git a/Step.Database/Controllers/MaintenancesController.cs b/Step.Database/Controllers/MaintenancesController.cs index b125a45f..20821a8a 100644 --- a/Step.Database/Controllers/MaintenancesController.cs +++ b/Step.Database/Controllers/MaintenancesController.cs @@ -38,6 +38,13 @@ namespace Step.Database.Controllers return lastMaintenances; } + public MaintenanceModel FindById(int id) + { + return dbCtx + .Maintenances + .Find(id); + } + public List FindAll() { return dbCtx @@ -98,7 +105,9 @@ namespace Step.Database.Controllers Deadline = x.Deadline, Interval = x.Intervall.TotalMinutes, Type = x.Type, - CounterId = x.CouterId + CounterId = x.CouterId, + CreationDate = DateTime.Now, + LastExpirationDate = null }) .ToList(); @@ -109,5 +118,16 @@ namespace Step.Database.Controllers dbCtx.SaveChanges(); } } + + public void UpdateLastExpirationDate(int id, DateTime expDate) + { + MaintenanceModel maintenance = FindById(id); + + if (maintenance != null) + { + maintenance.LastExpirationDate = expDate; + dbCtx.SaveChanges(); + } + } } } diff --git a/Step.Database/Migrations/201802141408206_InitCreate.Designer.cs b/Step.Database/Migrations/201802151533324_InitMigration.Designer.cs similarity index 80% rename from Step.Database/Migrations/201802141408206_InitCreate.Designer.cs rename to Step.Database/Migrations/201802151533324_InitMigration.Designer.cs index 29ab1212..721d8ca4 100644 --- a/Step.Database/Migrations/201802141408206_InitCreate.Designer.cs +++ b/Step.Database/Migrations/201802151533324_InitMigration.Designer.cs @@ -7,13 +7,13 @@ namespace Step.Database.Migrations using System.Resources; [GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")] - public sealed partial class InitCreate : IMigrationMetadata + public sealed partial class InitMigration : IMigrationMetadata { - private readonly ResourceManager Resources = new ResourceManager(typeof(InitCreate)); + private readonly ResourceManager Resources = new ResourceManager(typeof(InitMigration)); string IMigrationMetadata.Id { - get { return "201802141408206_InitCreate"; } + get { return "201802151533324_InitMigration"; } } string IMigrationMetadata.Source diff --git a/Step.Database/Migrations/201802141408206_InitCreate.cs b/Step.Database/Migrations/201802151533324_InitMigration.cs similarity index 97% rename from Step.Database/Migrations/201802141408206_InitCreate.cs rename to Step.Database/Migrations/201802151533324_InitMigration.cs index 9f800792..112d029f 100644 --- a/Step.Database/Migrations/201802141408206_InitCreate.cs +++ b/Step.Database/Migrations/201802151533324_InitMigration.cs @@ -3,7 +3,7 @@ namespace Step.Database.Migrations using System; using System.Data.Entity.Migrations; - public partial class InitCreate : DbMigration + public partial class InitMigration : DbMigration { public override void Up() { @@ -82,6 +82,7 @@ namespace Step.Database.Migrations type = c.String(unicode: false), counter_id = c.Int(nullable: false), creation_date = c.DateTime(nullable: false, precision: 0), + last_expiration_date = c.DateTime(precision: 0), }) .PrimaryKey(t => t.id); diff --git a/Step.Database/Migrations/201802141408206_InitCreate.resx b/Step.Database/Migrations/201802151533324_InitMigration.resx similarity index 58% rename from Step.Database/Migrations/201802141408206_InitCreate.resx rename to Step.Database/Migrations/201802151533324_InitMigration.resx index 607d55ae..217abc14 100644 --- a/Step.Database/Migrations/201802141408206_InitCreate.resx +++ b/Step.Database/Migrations/201802151533324_InitMigration.resx @@ -118,7 +118,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - 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 dbo diff --git a/Step.Database/Step.Database.csproj b/Step.Database/Step.Database.csproj index 94de5c26..29c24281 100644 --- a/Step.Database/Step.Database.csproj +++ b/Step.Database/Step.Database.csproj @@ -77,9 +77,9 @@ - - - 201802141408206_InitCreate.cs + + + 201802151533324_InitMigration.cs @@ -115,8 +115,8 @@ - - 201802141408206_InitCreate.cs + + 201802151533324_InitMigration.cs diff --git a/Step.Model/DatabaseModels/MaintenanceModel.cs b/Step.Model/DatabaseModels/MaintenanceModel.cs index 31222155..0805786b 100644 --- a/Step.Model/DatabaseModels/MaintenanceModel.cs +++ b/Step.Model/DatabaseModels/MaintenanceModel.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; @@ -13,7 +14,7 @@ namespace Step.Model.DatabaseModels public int MaintenanceId { get; set; } [Column("intervall")] - public double Interval { get; set; } + public double Interval { get; set; } [Column("deadline")] public DateTime Deadline { get; set; } @@ -27,17 +28,7 @@ namespace Step.Model.DatabaseModels [Column("creation_date")] public DateTime CreationDate { get; set; } - //public override bool Equals(object obj) - //{ - // var item = obj as MaintenanceModel; - - // if (item == null) - // return false; - - // if (item.MaintenanceId != MaintenanceId) - // return false; - - // return true; - //} + [Column("last_expiration_date")] + public DateTime? LastExpirationDate { get; set; } } } \ No newline at end of file diff --git a/Step.NC/NcHandler.cs b/Step.NC/NcHandler.cs index 467246be..8ca4c78d 100644 --- a/Step.NC/NcHandler.cs +++ b/Step.NC/NcHandler.cs @@ -357,30 +357,37 @@ namespace Step.NC // Get all the active maintenances List maintenances = maintenancesController.FindAll(); // TODO db or config file? - foreach (var maintenance in maintenances) + foreach (var currMaintenance in maintenances) { // Get matching last performed maintenance for current maintenance - var performed = performedMaintenance.Find(x => x.MaintenanceId == maintenance.MaintenanceId); + var performed = performedMaintenance.Find(x => x.MaintenanceId == currMaintenance.MaintenanceId); - switch (maintenance.Type) + switch (currMaintenance.Type) { case MAINT_MACHINE_INTERVAL_TYPE: { // Get matching counter for the current maintenance - var counter = counters.Find(x => x.Id == maintenance.CounterId); + var counter = counters.Find(x => x.Id == currMaintenance.CounterId); int perfVal = 0; if (performed != null) perfVal = performed.CounterValue; // MAINTENANCE_INTERVAL <= PLC - LASTPERFORMED - if (maintenance.Interval <= counter.Value - perfVal ) + if (currMaintenance.Interval <= counter.Value - perfVal ) { + // Update last expiration date if null + if (currMaintenance.LastExpirationDate == null) + { + maintenancesController.UpdateLastExpirationDate(currMaintenance.MaintenanceId, DateTime.Now); + currMaintenance.LastExpirationDate = DateTime.Now; + } + // Add item to return list expiredMaintenance.Add(new DTOExpiredMaintenanceModel() { - Id = maintenance.MaintenanceId, - ExpirationDate = DateTime.Now + Id = currMaintenance.MaintenanceId, + ExpirationDate = (DateTime)currMaintenance.LastExpirationDate }); } } @@ -391,36 +398,45 @@ namespace Step.NC if (performed != null) break; // DEADLINE <= NOW - if (maintenance.Deadline <= DateTime.Now) + if (currMaintenance.Deadline <= DateTime.Now) // Add item to return list expiredMaintenance.Add(new DTOExpiredMaintenanceModel() { - Id = maintenance.MaintenanceId, - ExpirationDate = maintenance.Deadline + Id = currMaintenance.MaintenanceId, + ExpirationDate = currMaintenance.Deadline }); } break; case MAINT_TIME_INTERVAL_TYPE: { // Get last performed, default value is maintenance creation date - DateTime perfDate = maintenance.CreationDate; + DateTime perfDate = currMaintenance.CreationDate; if (performed != null) perfDate = performed.Date; // Now - last performed = elapsed interval since last maintenance - TimeSpan timePassedFromLastMaint = DateTime.Now.Subtract(performed.Date); + TimeSpan timePassedFromLastMaint = DateTime.Now.Subtract(perfDate); // Convert in minutes double minutesPassedFromLastMaint = timePassedFromLastMaint.TotalMinutes; // Interval - passed minutes since last maintenance - if(maintenance.Interval <= minutesPassedFromLastMaint) + if(currMaintenance.Interval <= minutesPassedFromLastMaint) { - // Exp date = now - ( expiration intervall) - DateTime expirationDate = DateTime.Now.Subtract(TimeSpan.FromMinutes(minutesPassedFromLastMaint - maintenance.Interval)); + // Update last expiration date + if (currMaintenance.LastExpirationDate == null) + { + // Exp date = now - ( expiration intervall) + DateTime expirationDate = DateTime.Now.Subtract(TimeSpan.FromMinutes(minutesPassedFromLastMaint - currMaintenance.Interval)); + + maintenancesController.UpdateLastExpirationDate(currMaintenance.MaintenanceId, expirationDate); + currMaintenance.LastExpirationDate = expirationDate; + } + + // Add item to return list expiredMaintenance.Add(new DTOExpiredMaintenanceModel() { - Id = maintenance.MaintenanceId, - ExpirationDate = expirationDate + Id = currMaintenance.MaintenanceId, + ExpirationDate = (DateTime)currMaintenance.LastExpirationDate }); } }