diff --git a/PARR.AIHITMainLoader/AihitMainLoader.cs b/PARR.AIHITMainLoader/AihitMainLoader.cs index be1c42b1..20429b74 100644 --- a/PARR.AIHITMainLoader/AihitMainLoader.cs +++ b/PARR.AIHITMainLoader/AihitMainLoader.cs @@ -125,7 +125,9 @@ namespace PARR.AIHITMainLoader { service.GetCvkData, service.GetPtkData, - service.GetRegionalEKData + service.GetRegionalEKData, + service.GetStoData, + service.GetOrgData }; } } diff --git a/PARR.AIHITMainLoader/Context/AIHITContext.cs b/PARR.AIHITMainLoader/Context/AIHITContext.cs index 73047204..194d8630 100644 --- a/PARR.AIHITMainLoader/Context/AIHITContext.cs +++ b/PARR.AIHITMainLoader/Context/AIHITContext.cs @@ -12,6 +12,8 @@ namespace PARR.AIHITMainLoader.Context public DbSet CvkDatas { get; set; } public DbSet PtkDatas { get; set; } public DbSet RegEKDatas { get; set; } + public DbSet StoDatas { get; set; } + public DbSet OrgDatas { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -34,6 +36,16 @@ namespace PARR.AIHITMainLoader.Context entity.HasNoKey(); entity.ToView(null); }); + modelBuilder.Entity(entity => + { + entity.HasNoKey(); + entity.ToView(null); + }); + modelBuilder.Entity(entity => + { + entity.HasNoKey(); + entity.ToView(null); + }); } } } diff --git a/PARR.AIHITMainLoader/Models/CvkData.cs b/PARR.AIHITMainLoader/Models/CvkData.cs index 0bfc0af4..38e109dd 100644 --- a/PARR.AIHITMainLoader/Models/CvkData.cs +++ b/PARR.AIHITMainLoader/Models/CvkData.cs @@ -60,6 +60,8 @@ namespace PARR.AIHITMainLoader.Models [Column("ЗО_РГ")] public string? WorkGroupResponseArea { get; set; } + [Column("ДОПОЛНИТЕЛЬНАЯ_ИНФОРМАЦИЯ")] + public string? AdditionalInformation { get; set; } public AihitMainDataMq ToMainData() @@ -86,6 +88,7 @@ namespace PARR.AIHITMainLoader.Models {"АКТИВЕН", Active.ToString() }, {"НЕУНИКАЛЬНЫЙ_ЭК", IsNotUnique.ToString() }, {"ЗО_РГ", WorkGroupResponseArea }, + {"ДОПОЛНИТЕЛЬНАЯ_ИНФОРМАЦИЯ", AdditionalInformation } } }; } diff --git a/PARR.AIHITMainLoader/Models/OrgData.cs b/PARR.AIHITMainLoader/Models/OrgData.cs new file mode 100644 index 00000000..dfe30bf5 --- /dev/null +++ b/PARR.AIHITMainLoader/Models/OrgData.cs @@ -0,0 +1,98 @@ +using PARR.BLL.Domain.Mq; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace PARR.AIHITMainLoader.Models +{ + public class OrgData : IMainData + { + [Column("ЗОНА_ОТВЕТСТВЕННОСТИ")] + public string? ResponseArea { get; set; } + + [Column("КАТЕГОРИЯ_ЭК")] + public string? EKCategory { get; set; } + + [Key] + [Column("КОД_ПОИСКА_ЭК")] + public string? EKFindCode { get; set; } + + [Column("КРАТКОЕ_НАИМЕНОВАНИЕ")] + public string? ShortName { get; set; } + + [Column("МВЗ")] + public string? MVZ { get; set; } + + [Column("МОДЕЛЬ")] + public string? Model { get; set; } + + [Column("ОТВЕТСТВЕННЫЙ_ЗА_ЭК")] + public string? ResponsibleByEK { get; set; } + + [Column("ПОДКАТЕГОРИЯ_ЭК")] + public string? EKSubCategory { get; set; } + + [Column("ПРОИЗВОДИТЕЛЬ_РАЗРАБОТЧИК")] + public string? Developer { get; set; } + + [Column("РАБОЧАЯ_ГР_ОТВ_ЗА_ЭК")] + public string? WorkGroup { get; set; } + + [Column("СТАТУС")] + public string? Status { get; set; } + + [Column("ТИП_ЭК")] + public string? EKType { get; set; } + + [Column("РГ_смены")] + public string? ShiftWorkGroup { get; set; } + + [Column("Сервер СПД")] + public string? SPDServerType { get; set; } + + [Column("Сервер БИР")] + public string? BIRServerType { get; set; } + + [Column("АКТИВЕН")] + public int Active { get; set; } + + [Column("НЕУНИКАЛЬНЫЙ_ЭК")] + public int IsNotUnique { get; set; } + + [Column("ЗО_РГ")] + public string? WorkGroupResponseArea { get; set; } + [Column("ДОПОЛНИТЕЛЬНАЯ_ИНФОРМАЦИЯ")] + public string? AdditionalInformation { get; set; } + + + public AihitMainDataMq ToMainData() + { + return new AihitMainDataMq + { + Name = EKFindCode!,//TODO Ты прям уверен??? + Properties = new Dictionary + { + {"ЗОНА_ОТВЕТСТВЕННОСТИ", ResponseArea }, + {"КАТЕГОРИЯ_ЭК", EKCategory }, + {"КРАТКОЕ_НАИМЕНОВАНИЕ", ShortName }, + {"MVZ", MVZ }, + {"МОДЕЛЬ", Model }, + {"ОТВЕТСТВЕННЫЙ_ЗА_ЭК", ResponsibleByEK }, + {"ПОДКАТЕГОРИЯ_ЭК", EKSubCategory }, + {"ПРОИЗВОДИТЕЛЬ_РАЗРАБОТЧИК", Developer }, + {"РАБОЧАЯ_ГР_ОТВ_ЗА_ЭК", WorkGroup }, + {"СТАТУС", Status }, + {"ТИП_ЭК", EKType }, + {"РГ_смены", ShiftWorkGroup }, + {"Сервер СПД", SPDServerType }, + {"Сервер БИР", BIRServerType }, + {"АКТИВЕН", Active.ToString() }, + {"НЕУНИКАЛЬНЫЙ_ЭК", IsNotUnique.ToString() }, + {"ЗО_РГ", WorkGroupResponseArea }, + {"ДОПОЛНИТЕЛЬНАЯ_ИНФОРМАЦИЯ", AdditionalInformation } + } + }; + } + + + } +} diff --git a/PARR.AIHITMainLoader/Models/StoData.cs b/PARR.AIHITMainLoader/Models/StoData.cs new file mode 100644 index 00000000..634bd0fc --- /dev/null +++ b/PARR.AIHITMainLoader/Models/StoData.cs @@ -0,0 +1,98 @@ +using PARR.BLL.Domain.Mq; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace PARR.AIHITMainLoader.Models +{ + public class StoData : IMainData + { + [Column("ЗОНА_ОТВЕТСТВЕННОСТИ")] + public string? ResponseArea { get; set; } + + [Column("КАТЕГОРИЯ_ЭК")] + public string? EKCategory { get; set; } + + [Key] + [Column("КОД_ПОИСКА_ЭК")] + public string? EKFindCode { get; set; } + + [Column("КРАТКОЕ_НАИМЕНОВАНИЕ")] + public string? ShortName { get; set; } + + [Column("МВЗ")] + public string? MVZ { get; set; } + + [Column("МОДЕЛЬ")] + public string? Model { get; set; } + + [Column("ОТВЕТСТВЕННЫЙ_ЗА_ЭК")] + public string? ResponsibleByEK { get; set; } + + [Column("ПОДКАТЕГОРИЯ_ЭК")] + public string? EKSubCategory { get; set; } + + [Column("ПРОИЗВОДИТЕЛЬ_РАЗРАБОТЧИК")] + public string? Developer { get; set; } + + [Column("РАБОЧАЯ_ГР_ОТВ_ЗА_ЭК")] + public string? WorkGroup { get; set; } + + [Column("СТАТУС")] + public string? Status { get; set; } + + [Column("ТИП_ЭК")] + public string? EKType { get; set; } + + [Column("РГ_смены")] + public string? ShiftWorkGroup { get; set; } + + [Column("Сервер СПД")] + public string? SPDServerType { get; set; } + + [Column("Сервер БИР")] + public string? BIRServerType { get; set; } + + [Column("АКТИВЕН")] + public int Active { get; set; } + + [Column("НЕУНИКАЛЬНЫЙ_ЭК")] + public int IsNotUnique { get; set; } + + [Column("ЗО_РГ")] + public string? WorkGroupResponseArea { get; set; } + [Column("ДОПОЛНИТЕЛЬНАЯ_ИНФОРМАЦИЯ")] + public string? AdditionalInformation { get; set; } + + + public AihitMainDataMq ToMainData() + { + return new AihitMainDataMq + { + Name = EKFindCode!,//TODO Ты прям уверен??? + Properties = new Dictionary + { + {"ЗОНА_ОТВЕТСТВЕННОСТИ", ResponseArea }, + {"КАТЕГОРИЯ_ЭК", EKCategory }, + {"КРАТКОЕ_НАИМЕНОВАНИЕ", ShortName }, + {"MVZ", MVZ }, + {"МОДЕЛЬ", Model }, + {"ОТВЕТСТВЕННЫЙ_ЗА_ЭК", ResponsibleByEK }, + {"ПОДКАТЕГОРИЯ_ЭК", EKSubCategory }, + {"ПРОИЗВОДИТЕЛЬ_РАЗРАБОТЧИК", Developer }, + {"РАБОЧАЯ_ГР_ОТВ_ЗА_ЭК", WorkGroup }, + {"СТАТУС", Status }, + {"ТИП_ЭК", EKType }, + {"РГ_смены", ShiftWorkGroup }, + {"Сервер СПД", SPDServerType }, + {"Сервер БИР", BIRServerType }, + {"АКТИВЕН", Active.ToString() }, + {"НЕУНИКАЛЬНЫЙ_ЭК", IsNotUnique.ToString() }, + {"ЗО_РГ", WorkGroupResponseArea }, + {"ДОПОЛНИТЕЛЬНАЯ_ИНФОРМАЦИЯ", AdditionalInformation } + } + }; + } + + + } +} diff --git a/PARR.AIHITMainLoader/Services/AihitService.cs b/PARR.AIHITMainLoader/Services/AihitService.cs index 6fa8b1fe..f7c22e7a 100644 --- a/PARR.AIHITMainLoader/Services/AihitService.cs +++ b/PARR.AIHITMainLoader/Services/AihitService.cs @@ -92,5 +92,53 @@ namespace PARR.AIHITMainLoader.Services return new List(); } + + + public IEnumerable? GetStoData(string respArea) + { + var parameters = new List() { new SqlParameter("@зо", respArea) }; + + try + { + var result = context.Set().FromSqlRaw($"EXEC mao2.dbo.sp_IPP_PARR_PTK_get_EK_STO @зо", parameters.ToArray()).AsEnumerable(); + + if (result == null || !result.Any()) + { + logger.LogWarning($"Процедура sp_IPP_PARR_PTK_get_EK_STO вернула пустой список ЭК"); + } + + return result; + } + catch (Exception ex) + { + logger.LogError(ex, $"Ошибка при выполнении ХП sp_IPP_PARR_PTK_get_EK_STO({respArea})"); + } + + return new List(); + } + + + public IEnumerable? GetOrgData(string respArea) + { + var parameters = new List() { new SqlParameter("@зо", respArea) }; + + try + { + var result = context.Set().FromSqlRaw($"EXEC mao2.dbo.sp_IPP_PARR_PTK_get_EK_ORG @зо", parameters.ToArray()).AsEnumerable(); + + if (result == null || !result.Any()) + { + logger.LogWarning($"Процедура sp_IPP_PARR_PTK_get_EK_ORG вернула пустой список ЭК"); + } + + return result; + } + catch (Exception ex) + { + logger.LogError(ex, $"Ошибка при выполнении ХП sp_IPP_PARR_PTK_get_EK_ORG({respArea})"); + } + + return new List(); + } } } diff --git a/PARR.AIHITMainLoader/Services/IAihitService.cs b/PARR.AIHITMainLoader/Services/IAihitService.cs index dfacbc51..6be37fc1 100644 --- a/PARR.AIHITMainLoader/Services/IAihitService.cs +++ b/PARR.AIHITMainLoader/Services/IAihitService.cs @@ -6,6 +6,8 @@ namespace PARR.AIHITMainLoader.Services { IEnumerable? GetPtkData(string respArea); IEnumerable? GetCvkData(string respArea); + IEnumerable? GetStoData(string respArea); + IEnumerable? GetOrgData(string respArea); IEnumerable? GetRegionalEKData(string respArea); } }