feat(api): статистика по регламентным работам по ЗО, РГ, РР

This commit is contained in:
Mikhail Trubnikov
2024-08-20 09:33:13 +10:00
parent 2e5424e6df
commit 558e91ce3b
13 changed files with 338 additions and 48 deletions

View File

@@ -248,11 +248,21 @@
public const string Get = BaseStat + "/template-distribution/{applicationInWorkId}";
}
public static class StatStatResponseAreaWorkLoad
public static class StatResponseAreaWorkLoad
{
public const string GetAll = BaseStat + "/response-area-workloads/";
}
public static class StatWorkGroupWorkLoad
{
public const string Get = BaseStat + "/work-group-workloads/{responseAreaCode}";
}
public static class StatWorkWorkLoad
{
public const string Get = BaseStat + "/work-workloads/{workGroupId}";
}
#endregion
#region Наряды

View File

@@ -1,8 +1,6 @@
using System.Runtime.InteropServices;
namespace PARR.API.Contracts.V1.Responses
namespace PARR.API.Contracts.V1.Responses
{
public class ApplicationInWorkResponse
public class ApplicationInWorkBaseResponse
{
public Guid Id { get; set; }
@@ -14,16 +12,18 @@ namespace PARR.API.Contracts.V1.Responses
public required string Solution { get; set; }
//public DateTimeOffset? LastRun { get; set; }
//public DateTimeOffset NextRun { get; set; }
public DateTimeOffset ReferenceDate { get; set; }
public bool IsAutoDistributionEnabled { get; set; }
public bool IsAgent { get; set; }
public ApplicationResponse? Application { get; set; }
}
public class ApplicationInWorkResponse : ApplicationInWorkBaseResponse
{
public string? AgentName { get; set; }
public int? AgentTimeOutSec { get; set; }
@@ -32,8 +32,6 @@ namespace PARR.API.Contracts.V1.Responses
public WorkResponse? Work { get; set; }
public ApplicationResponse? Application { get; set; }
public int TemplatesCount { get; set; }
@@ -77,7 +75,7 @@ namespace PARR.API.Contracts.V1.Responses
/// <summary>
/// Ошибок синхронизации (RobotStatus = 33/Error)
/// </summary>
public int Errors { get; set; }
public int Errors { get; set; }
}

View File

@@ -1,15 +1,7 @@
namespace PARR.API.Contracts.V1.Responses.Statistics
{
public class StatResponseAreaWorkLoadResponse
public class StatResponseAreaWorkLoadResponse : StatWorkLoadDataBaseResponse
{
public required ResponseAreaResponse ResponseArea { get; set; }
public List<StatWorkLoadDataResponse> WorkLoad { get; set; }
}
public class StatWorkLoadDataResponse
{
public DateTimeOffset Date { get; set; }
public int TemplateCount { get; set; }
}
}

View File

@@ -0,0 +1,7 @@
namespace PARR.API.Contracts.V1.Responses.Statistics
{
public class StatWorkGroupWorkLoadResponse : StatWorkLoadDataBaseResponse
{
public required WorkGroupResponse WorkGroup { get; set; }
}
}

View File

@@ -0,0 +1,17 @@
namespace PARR.API.Contracts.V1.Responses.Statistics
{
public class StatWorkLoadDataBaseResponse
{
public List<StatWorkLoadDataResponse> WorkLoad { get; set; }
public int WorksCount => WorkLoad?.Sum(t => t.TemplateCount) ?? 0;
public double AverageWorksCount => Math.Round((double)WorksCount / WorkLoad.Count(), 2);
}
public class StatWorkLoadDataResponse
{
public DateTimeOffset Date { get; set; }
public int TemplateCount { get; set; }
}
}

View File

@@ -0,0 +1,7 @@
namespace PARR.API.Contracts.V1.Responses.Statistics
{
public class StatWorkWorkLoadResponse : StatWorkLoadDataBaseResponse
{
public required ApplicationInWorkBaseResponse Job { get; set; }
}
}