feat(aihtLoader): добавлены процедуры загрузки данных по направлению СТО и ОРГВОПРОСЫ

This commit is contained in:
Mikhail Kuznetsov
2025-12-24 11:22:12 +10:00
parent 00cace4255
commit bcb2272943
7 changed files with 264 additions and 1 deletions

View File

@@ -125,7 +125,9 @@ namespace PARR.AIHITMainLoader
{
service.GetCvkData,
service.GetPtkData,
service.GetRegionalEKData
service.GetRegionalEKData,
service.GetStoData,
service.GetOrgData
};
}
}

View File

@@ -12,6 +12,8 @@ namespace PARR.AIHITMainLoader.Context
public DbSet<CvkData> CvkDatas { get; set; }
public DbSet<PtkData> PtkDatas { get; set; }
public DbSet<PtkData> RegEKDatas { get; set; }
public DbSet<PtkData> StoDatas { get; set; }
public DbSet<PtkData> OrgDatas { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
@@ -34,6 +36,16 @@ namespace PARR.AIHITMainLoader.Context
entity.HasNoKey();
entity.ToView(null);
});
modelBuilder.Entity<StoData>(entity =>
{
entity.HasNoKey();
entity.ToView(null);
});
modelBuilder.Entity<OrgData>(entity =>
{
entity.HasNoKey();
entity.ToView(null);
});
}
}
}

View File

@@ -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 }
}
};
}

View File

@@ -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<string, string?>
{
{"ЗОНА_ОТВЕТСТВЕННОСТИ", ResponseArea },
{"КАТЕГОРИЯ_ЭК", EKCategory },
{"КРАТКОЕ_НАИМЕНОВАНИЕ", ShortName },
{"MVZ", MVZ },
{"МОДЕЛЬ", Model },
{"ОТВЕТСТВЕННЫЙ_ЗАК", ResponsibleByEK },
{ОДКАТЕГОРИЯ_ЭК", EKSubCategory },
{РОИЗВОДИТЕЛЬ_РАЗРАБОТЧИК", Developer },
{"РАБОЧАЯ_ГР_ОТВ_ЗАК", WorkGroup },
{"СТАТУС", Status },
{"ТИП_ЭК", EKType },
{"РГ_смены", ShiftWorkGroup },
{"Сервер СПД", SPDServerType },
{"Сервер БИР", BIRServerType },
{"АКТИВЕН", Active.ToString() },
{"НЕУНИКАЛЬНЫЙ_ЭК", IsNotUnique.ToString() },
{"ЗО_РГ", WorkGroupResponseArea },
{ОПОЛНИТЕЛЬНАЯ_ИНФОРМАЦИЯ", AdditionalInformation }
}
};
}
}
}

View File

@@ -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<string, string?>
{
{"ЗОНА_ОТВЕТСТВЕННОСТИ", ResponseArea },
{"КАТЕГОРИЯ_ЭК", EKCategory },
{"КРАТКОЕ_НАИМЕНОВАНИЕ", ShortName },
{"MVZ", MVZ },
{"МОДЕЛЬ", Model },
{"ОТВЕТСТВЕННЫЙ_ЗАК", ResponsibleByEK },
{ОДКАТЕГОРИЯ_ЭК", EKSubCategory },
{РОИЗВОДИТЕЛЬ_РАЗРАБОТЧИК", Developer },
{"РАБОЧАЯ_ГР_ОТВ_ЗАК", WorkGroup },
{"СТАТУС", Status },
{"ТИП_ЭК", EKType },
{"РГ_смены", ShiftWorkGroup },
{"Сервер СПД", SPDServerType },
{"Сервер БИР", BIRServerType },
{"АКТИВЕН", Active.ToString() },
{"НЕУНИКАЛЬНЫЙ_ЭК", IsNotUnique.ToString() },
{"ЗО_РГ", WorkGroupResponseArea },
{ОПОЛНИТЕЛЬНАЯ_ИНФОРМАЦИЯ", AdditionalInformation }
}
};
}
}
}

View File

@@ -92,5 +92,53 @@ namespace PARR.AIHITMainLoader.Services
return new List<IMainData>();
}
public IEnumerable<IMainData>? GetStoData(string respArea)
{
var parameters = new List<SqlParameter>() { new SqlParameter("@зо", respArea) };
try
{
var result = context.Set<StoData>().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<IMainData>();
}
public IEnumerable<IMainData>? GetOrgData(string respArea)
{
var parameters = new List<SqlParameter>() { new SqlParameter("@зо", respArea) };
try
{
var result = context.Set<StoData>().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<IMainData>();
}
}
}

View File

@@ -6,6 +6,8 @@ namespace PARR.AIHITMainLoader.Services
{
IEnumerable<IMainData>? GetPtkData(string respArea);
IEnumerable<IMainData>? GetCvkData(string respArea);
IEnumerable<IMainData>? GetStoData(string respArea);
IEnumerable<IMainData>? GetOrgData(string respArea);
IEnumerable<IMainData>? GetRegionalEKData(string respArea);
}
}