forked from ddrilling/AsbCloudServer
Добавлены модели БД ,модели ДТО, интерфейсы, сервисы
This commit is contained in:
parent
2b633c8425
commit
7f4b434a8c
27
AsbCloudApp/Data/Subsystems/SubsystemDto.cs
Normal file
27
AsbCloudApp/Data/Subsystems/SubsystemDto.cs
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.Subsystems
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Описание параметров подсистемы
|
||||||
|
/// </summary>
|
||||||
|
public class SubsystemDto : IId
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Идентификатор подсистемы
|
||||||
|
/// </summary>
|
||||||
|
public int Id { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// Наименование подсистемы
|
||||||
|
/// </summary>
|
||||||
|
public string Name { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// Детальное описание подсистемы
|
||||||
|
/// </summary>
|
||||||
|
public string Description { get; set; }
|
||||||
|
}
|
||||||
|
}
|
48
AsbCloudApp/Data/Subsystems/SubsystemOperationTimeDto.cs
Normal file
48
AsbCloudApp/Data/Subsystems/SubsystemOperationTimeDto.cs
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.Subsystems
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Модель информации о работе подсистемы
|
||||||
|
/// </summary>
|
||||||
|
public class SubsystemOperationTimeDto:IId
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Идентификатор
|
||||||
|
/// </summary>
|
||||||
|
public int Id { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// ИД телеметрии по которой выдается информация
|
||||||
|
/// </summary>
|
||||||
|
public int IdTelemetry { get; set; }
|
||||||
|
public TelemetryBaseDto Telemetry { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// идентификатор подсистемы
|
||||||
|
/// </summary>
|
||||||
|
public int IdSubsystem { get; set; }
|
||||||
|
public SubsystemDto Subsystem { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// дата/время включения подсистемы
|
||||||
|
/// </summary>
|
||||||
|
public DateTime DateStart { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// дата/время выключения подсистемы
|
||||||
|
/// </summary>
|
||||||
|
public DateTime DateEnd { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// глубина забоя на момент включения подсистемы
|
||||||
|
/// </summary>
|
||||||
|
public double DepthStart { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// глубина забоя на момент выключения подсистемы
|
||||||
|
/// </summary>
|
||||||
|
public double DepthEnd { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
38
AsbCloudApp/Data/Subsystems/SubsystemStatisticsDto.cs
Normal file
38
AsbCloudApp/Data/Subsystems/SubsystemStatisticsDto.cs
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.Subsystems
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Статистика подсистемы
|
||||||
|
/// </summary>
|
||||||
|
public class SubsystemStatisticsDto
|
||||||
|
{
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Идентификатор подсистемы
|
||||||
|
/// </summary>
|
||||||
|
public int IdSubsystem { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// Название подсистемы
|
||||||
|
/// </summary>
|
||||||
|
public string Subsystem { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// наработка подсистемы
|
||||||
|
/// </summary>
|
||||||
|
public DateTime UsedTime { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// коэффициент использования
|
||||||
|
/// </summary>
|
||||||
|
public TimeSpan KUsage { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// коэффициент применения
|
||||||
|
/// </summary>
|
||||||
|
public TimeSpan K2 { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Services.Subsystems
|
||||||
|
{
|
||||||
|
public interface ISubsystemOperationTimeService
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
6
AsbCloudApp/Services/Subsystems/ISubsystemService.cs
Normal file
6
AsbCloudApp/Services/Subsystems/ISubsystemService.cs
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
namespace AsbCloudApp.Services.Subsystems
|
||||||
|
{
|
||||||
|
internal interface ISubsystemService
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
using AsbCloudApp.Data.Subsystems;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Services.Subsystems
|
||||||
|
{
|
||||||
|
public interface ISubsystemStatisticsService
|
||||||
|
{
|
||||||
|
Task<IEnumerable<SubsystemStatisticsDto>> GetStatisticsAsync(CancellationToken token);
|
||||||
|
Task<IEnumerable<SubsystemStatisticsDto>> GetPeriodStatisticsAsync(DateTime periodBegin,
|
||||||
|
DateTime periodEnd,
|
||||||
|
CancellationToken token = default);
|
||||||
|
}
|
||||||
|
}
|
26
AsbCloudDb/Model/Subsystems/Subsystem.cs
Normal file
26
AsbCloudDb/Model/Subsystems/Subsystem.cs
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.Linq;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace AsbCloudDb.Model.Subsystems
|
||||||
|
{
|
||||||
|
[Table("t_subsystem"), Comment("Описание подсистем")]
|
||||||
|
public class Subsystem : IId
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[Column("id")]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column("name")]
|
||||||
|
[StringLength(255)]
|
||||||
|
public string? Name { get; set; }
|
||||||
|
|
||||||
|
[Column("description")]
|
||||||
|
[StringLength(255)]
|
||||||
|
public string? Description { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
39
AsbCloudDb/Model/Subsystems/SubsystemOperationTime.cs
Normal file
39
AsbCloudDb/Model/Subsystems/SubsystemOperationTime.cs
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using System;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace AsbCloudDb.Model.Subsystems
|
||||||
|
{
|
||||||
|
[Table("t_subsystem_operation_time"), Comment("наработки подсистем")]
|
||||||
|
public partial class SubsystemOperationTime : IId
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[Column("id")]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column("id_telemetry"), Comment("ИД телеметрии по которой выдается информация")]
|
||||||
|
public int IdTelemetry { get; set; }
|
||||||
|
|
||||||
|
[Column("id_subsystem")]
|
||||||
|
public int IdSubsystem { get; set; }
|
||||||
|
|
||||||
|
[Column("date_end"), Comment("дата/время включения подсистемы")]
|
||||||
|
public DateTime DateStart { get; set; }
|
||||||
|
[Column("date_end"), Comment("дата/время выключения подсистемы")]
|
||||||
|
public DateTime DateEnd { get; set; }
|
||||||
|
[Column("depth_start"), Comment("глубина забоя на момент включения подсистемы")]
|
||||||
|
public double DepthStart { get; set; }
|
||||||
|
[Column("depth_end"), Comment("глубина забоя на момент выключения подсистемы")]
|
||||||
|
public double DepthEnd { get; set; }
|
||||||
|
|
||||||
|
[ForeignKey(nameof(IdSubsystem))]
|
||||||
|
public virtual Subsystem Subsystem { get; set; }
|
||||||
|
|
||||||
|
[ForeignKey(nameof(IdTelemetry))]
|
||||||
|
public virtual Telemetry Telemetry { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -1,7 +1,9 @@
|
|||||||
using AsbCloudApp.Data;
|
using AsbCloudApp.Data;
|
||||||
using AsbCloudApp.Data.SAUB;
|
using AsbCloudApp.Data.SAUB;
|
||||||
|
using AsbCloudApp.Data.Subsystems;
|
||||||
using AsbCloudApp.Services;
|
using AsbCloudApp.Services;
|
||||||
using AsbCloudDb.Model;
|
using AsbCloudDb.Model;
|
||||||
|
using AsbCloudDb.Model.Subsystems;
|
||||||
using AsbCloudInfrastructure.Repository;
|
using AsbCloudInfrastructure.Repository;
|
||||||
using AsbCloudInfrastructure.Services;
|
using AsbCloudInfrastructure.Services;
|
||||||
using AsbCloudInfrastructure.Services.Cache;
|
using AsbCloudInfrastructure.Services.Cache;
|
||||||
@ -141,6 +143,8 @@ namespace AsbCloudInfrastructure
|
|||||||
dbSet => dbSet
|
dbSet => dbSet
|
||||||
.Include(c => c.Wells)
|
.Include(c => c.Wells)
|
||||||
.Include(c => c.Deposit))); // может быть включен в сервис ClusterService
|
.Include(c => c.Deposit))); // может быть включен в сервис ClusterService
|
||||||
|
// Subsystem service
|
||||||
|
services.AddTransient<ICrudService<SubsystemDto>, CrudCacheServiceBase<SubsystemDto, Subsystem>>();
|
||||||
|
|
||||||
services.AddTransient<ICrudService<PermissionDto>, CrudCacheServiceBase<PermissionDto, Permission>>();
|
services.AddTransient<ICrudService<PermissionDto>, CrudCacheServiceBase<PermissionDto, Permission>>();
|
||||||
|
|
||||||
|
@ -0,0 +1,24 @@
|
|||||||
|
using Microsoft.Extensions.Configuration;
|
||||||
|
using Microsoft.Extensions.Hosting;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace AsbCloudInfrastructure.Services.Subsystems
|
||||||
|
{
|
||||||
|
internal class SubsystemOperationTimeBackgroundService : BackgroundService
|
||||||
|
{
|
||||||
|
private readonly string connectionString;
|
||||||
|
public SubsystemOperationTimeBackgroundService(IConfiguration configuration)
|
||||||
|
{
|
||||||
|
connectionString = configuration.GetConnectionString("DefaultConnection");
|
||||||
|
}
|
||||||
|
protected override Task ExecuteAsync(CancellationToken token)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
using AsbCloudApp.Services.Subsystems;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace AsbCloudInfrastructure.Services.Subsystems
|
||||||
|
{
|
||||||
|
internal class SubsystemOperationTimeService: ISubsystemOperationTimeService
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
using AsbCloudApp.Data.Subsystems;
|
||||||
|
using AsbCloudDb.Model;
|
||||||
|
using AsbCloudDb.Model.Subsystems;
|
||||||
|
using AsbCloudInfrastructure.Repository;
|
||||||
|
|
||||||
|
namespace AsbCloudInfrastructure.Services.Subsystems
|
||||||
|
{
|
||||||
|
internal class SubsystemService : CrudCacheServiceBase<SubsystemDto, Subsystem>
|
||||||
|
{
|
||||||
|
public SubsystemService(IAsbCloudDbContext dbContext) : base(dbContext)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
using AsbCloudApp.Data.Subsystems;
|
||||||
|
using AsbCloudApp.Services.Subsystems;
|
||||||
|
using AsbCloudDb.Model;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace AsbCloudInfrastructure.Services.Subsystems
|
||||||
|
{
|
||||||
|
internal class SubsystemStatisticService : ISubsystemStatisticsService
|
||||||
|
{
|
||||||
|
|
||||||
|
private readonly IAsbCloudDbContext db;
|
||||||
|
|
||||||
|
public SubsystemStatisticService(IAsbCloudDbContext db)
|
||||||
|
{
|
||||||
|
this.db = db;
|
||||||
|
}
|
||||||
|
public Task<IEnumerable<SubsystemStatisticsDto>> GetPeriodStatisticsAsync(DateTime periodBegin, DateTime periodEnd, CancellationToken token = default)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Task<IEnumerable<SubsystemStatisticsDto>> GetStatisticsAsync(CancellationToken token)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
using AsbCloudApp.Data.Subsystems;
|
||||||
|
using AsbCloudApp.Services;
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
namespace AsbCloudWebApi.Controllers.Subsystems
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Редактор подсистем для админки
|
||||||
|
/// </summary>
|
||||||
|
[Route("api/admin/subsystem")]
|
||||||
|
[ApiController]
|
||||||
|
[Authorize]
|
||||||
|
public class AdminSubsystemController : CrudController<SubsystemDto, ICrudService<SubsystemDto>>
|
||||||
|
{
|
||||||
|
public AdminSubsystemController(ICrudService<SubsystemDto> service)
|
||||||
|
: base(service)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,22 @@
|
|||||||
|
using AsbCloudApp.Data.Subsystems;
|
||||||
|
using AsbCloudApp.Services;
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace AsbCloudWebApi.Controllers.Subsystems
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Наработка подсистем
|
||||||
|
/// </summary>
|
||||||
|
[Route("api/[OperatingTimeSubsystem]")]
|
||||||
|
[ApiController]
|
||||||
|
[Authorize]
|
||||||
|
|
||||||
|
public class OperatingTimeSubsystemController : ControllerBase
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,94 @@
|
|||||||
|
using AsbCloudApp.Data.Subsystems;
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace AsbCloudWebApi.Controllers.Subsystems
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Статистика наработки подсистем
|
||||||
|
/// </summary>
|
||||||
|
[Route("api/statisticsSubsystem")]
|
||||||
|
[ApiController]
|
||||||
|
[Authorize]
|
||||||
|
public class StatisticSubsystemsController : ControllerBase
|
||||||
|
{
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// получить без временного периода в запросе.
|
||||||
|
/// </summary>
|
||||||
|
[HttpGet]
|
||||||
|
[ProducesResponseType(typeof(IEnumerable<SubsystemStatisticsDto>), (int)System.Net.HttpStatusCode.OK)]
|
||||||
|
public async Task<IActionResult> GetStatisticsAsync(CancellationToken token = default)
|
||||||
|
{
|
||||||
|
var subsystemResult = new List<SubsystemStatisticsDto>()
|
||||||
|
{
|
||||||
|
new SubsystemStatisticsDto(){
|
||||||
|
IdSubsystem = 1,
|
||||||
|
Subsystem = "test1",
|
||||||
|
UsedTime = System.DateTime.Now,
|
||||||
|
K2 = System.TimeSpan.MinValue,
|
||||||
|
KUsage = System.TimeSpan.MinValue
|
||||||
|
|
||||||
|
},
|
||||||
|
new SubsystemStatisticsDto(){
|
||||||
|
IdSubsystem = 2,
|
||||||
|
Subsystem = "test2",
|
||||||
|
UsedTime = System.DateTime.Now,
|
||||||
|
K2 = System.TimeSpan.Zero,
|
||||||
|
KUsage = System.TimeSpan.Zero
|
||||||
|
},
|
||||||
|
new SubsystemStatisticsDto(){
|
||||||
|
IdSubsystem = 3,
|
||||||
|
Subsystem = "test3",
|
||||||
|
UsedTime = System.DateTime.Now,
|
||||||
|
K2 = System.TimeSpan.MaxValue,
|
||||||
|
KUsage = System.TimeSpan.MaxValue
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return Ok(subsystemResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//[HttpGet]
|
||||||
|
//[ProducesResponseType(typeof(IEnumerable<SubsystemStatisticsDto>), (int)System.Net.HttpStatusCode.OK)]
|
||||||
|
//public async Task<IActionResult> GetStatisticsPeriodAsync(CancellationToken token = default, DateTime dateBegin , DateTime dateEnd)
|
||||||
|
//{
|
||||||
|
// var subsystemResult = new List<SubsystemStatisticsDto>()
|
||||||
|
// {
|
||||||
|
// new SubsystemStatisticsDto(){
|
||||||
|
// IdSubsystem = 1,
|
||||||
|
// Subsystem = "test1",
|
||||||
|
// UsedTime = System.DateTime.Now,
|
||||||
|
// K2 = System.TimeSpan.MinValue,
|
||||||
|
// KUsage = System.TimeSpan.MinValue
|
||||||
|
|
||||||
|
// },
|
||||||
|
// new SubsystemStatisticsDto(){
|
||||||
|
// IdSubsystem = 2,
|
||||||
|
// Subsystem = "test2",
|
||||||
|
// UsedTime = System.DateTime.Now,
|
||||||
|
// K2 = System.TimeSpan.Zero,
|
||||||
|
// KUsage = System.TimeSpan.Zero
|
||||||
|
// },
|
||||||
|
// new SubsystemStatisticsDto(){
|
||||||
|
// IdSubsystem = 3,
|
||||||
|
// Subsystem = "test3",
|
||||||
|
// UsedTime = System.DateTime.Now,
|
||||||
|
// K2 = System.TimeSpan.MaxValue,
|
||||||
|
// KUsage = System.TimeSpan.MaxValue
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
|
||||||
|
// return Ok(subsystemResult);
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user