feat(aititMainLoader): Сделана основная логика загрущки данных из АИХ ИТ в очередь сообщений

This commit is contained in:
Mikhail Kuznetsov
2025-05-19 10:16:09 +10:00
parent b03af638f6
commit 082bc9bf15
16 changed files with 600 additions and 10 deletions

View File

@@ -0,0 +1,83 @@
using PARR.BLL.Domain.Mq;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace PARR.AIHITMainLoader.Models
{
public class CvkData : 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; }
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 },
}
};
}
}
}

View File

@@ -0,0 +1,9 @@
using PARR.BLL.Domain.Mq;
namespace PARR.AIHITMainLoader.Models
{
internal interface IMainData
{
AihitMainDataMq ToMainData();
}
}

View File

@@ -0,0 +1,204 @@
using PARR.BLL.Domain.Mq;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace PARR.AIHITMainLoader.Models
{
internal class PtkData : IMainData
{
[Column("IP_АДРЕС")]
public string? IP { get; set; }
[Column("МЕТКА")]
public string? Metka { get; set; }
[Column("АКТИВЕН")]
public string? IsActive { get; set; }
[Column("ВАЖНЫЙ_ЭК")]
public string? IsImportant { get; set; }
[Column("ВРЕМЯ_СОЗДАНИЯ")]
public DateTime? CreateTime { get; set; }
[Column("ДОПОЛНИТЕЛЬНАЯ_ИНФОРМАЦИЯ")]
public string? AdditionalInfo { get; set; }
[Column("ЗОНА_ОТВЕТСТВЕННОСТИ")]
public string? ResponseArea { get; set; }
[Column("КАТЕГОРИЯ_ЭК")]
public string? EKCategory { get; set; }
[Column("КОД_ПОИСКАК")]
public string? EKFindCode { get; set; }
[Column("КОД_ПРОДУКТА")]
public string? ProductCode { get; set; }
[Column("КОД_УСЛУГИ")]
public string? ServiceCode { get; set; }
[Column("КРАТКОЕ_НАИМЕНОВАНИЕ")]
public string? ShortName { get; set; }
[Column("ОТВЕТСТВЕННЫЙ_ЗАК")]
public string? ResponsibleByEK { get; set; }
[Column("ПЛАНОВОЕ_ВРЕМЯ_ВОССТАНОВЛЕНИЯ")]
public DateTime? PlannedTimeToRepair { get; set; }
[Column("ПОДКАТЕГОРИЯ_ЭК")]
public string? EKSubCategory { get; set; }
[Column("ПОЛНОЕ_НАИМЕНОВАНИЕ")]
public string? FullName { get; set; }
[Column("ПРЕДПИСАНИЕ")]
public string? Prescription { get; set; }
[Column("ПРЕДПРИЯТИЕ")]
public string? Company { get; set; }
[Column("РАБОЧАЯ_ГР_ОТВ_ЗАК")]
public string? WorkGroup { get; set; }
[Column("РАСПОЛОЖЕНИЕ")]
public string? Location { get; set; }
[Column("РЕВИЗОРК")]
public string? EKRevizor { get; set; }
[Column("РЕГИСТРАТОРК")]
public string? EKRegister { get; set; }
[Column("СЕТЕВОЕМЯ")]
public string? NetworkName { get; set; }
[Column("СТАТУС")]
public string? Status { get; set; }
[Column("ТИП_ЭК")]
public string? EKType { get; set; }
[Column("ФАКТИЧЕСКОЕ_ЗАВЕРШЕНИЕКСПЛУАТАЦИИ")]
public DateTime? EndExplotationDate { get; set; }
[Column("ФАКТИЧЕСКОЕ_НАЧАЛОКСПЛУАТАЦИИ")]
public DateTime? StartExplotationDate { get; set; }
[Column("ЦЕЛЕВОЕ_ВРЕМЯ_ВОССТАНОВЛЕНИЯ")]
public string? TargetRepairTime { get; set; }
[Column("SYSMODTIME")]
public DateTime? SysModTime { get; set; }
[Column("SYSMODUSER")]
public string? SysModUser { get; set; }
[Column("НОВЫЙ_КОД_ПОИСКА")]
public string? NewEKFindCode { get; set; }
[Column("СТАРЫЙ_КОД_ПОИСКА")]
public string? OldEKFindCode { get; set; }
[Column("НАПРАВЛЕНИЕТСК")]
public string? CTSDirection { get; set; }
[Key]
[Column("ID")]
public int? AIHID { get; set; }
[Column("недостоверныеанные")]
public char? IsUnreliableData { get; set; }
[Column("РГ_смены")]
public string? ShiftWorkGroup { get; set; }
[Column("КлиентскоеО")]
public string? ClientSoftware { get; set; }
[Column("Клиентская_ОС")]
public string? ClientOS { get; set; }
[Column("Тип СУБД")]
public string? DBType { get; set; }
[Column("Тип сервера приложений")]
public string? APPType { get; set; }
[Column("Тип сервера ЦК БС")]
public string? CKBSServerType { get; set; }
[Column("Тип сервера ИБ")]
public string? IBServerType { get; set; }
[Column("Тип сервера инфраструктуры")]
public string? InfrastructureServerType { get; set; }
[Column("Тип сервера мониторинга")]
public string? MonitoringServerType { get; set; }
[Column("ОС")]
public string? OSType { get; set; }
[Column("ЗО_РГ")]
public string? WorkGroupResponseArea { get; set; }
public AihitMainDataMq ToMainData()
{
return new AihitMainDataMq
{
Name = EKFindCode!,//TODO Ты прям уверен???
Properties = new Dictionary<string, string?>
{
{"IP_АДРЕС", IP },
{"МЕТКА", Metka },
{"АКТИВЕН", IsActive },
{"ВАЖНЫЙ_ЭК", IsImportant },
{"ВРЕМЯ_СОЗДАНИЯ", CreateTime.ToString() ?? null},
{ОПОЛНИТЕЛЬНАЯ_ИНФОРМАЦИЯ", AdditionalInfo },
{"КАТЕГОРИЯ_ЭК", EKCategory },
{"КОД_ПРОДУКТА", EKFindCode },
{"КОД_УСЛУГИ", ProductCode },
{"КРАТКОЕ_НАИМЕНОВАНИЕ", ShortName },
{"ОТВЕТСТВЕННЫЙ_ЗАК", ResponsibleByEK },
{"ПЛАНОВОЕ_ВРЕМЯ_ВОССТАНОВЛЕНИЯ", PlannedTimeToRepair.ToString() ?? null },
{ОДКАТЕГОРИЯ_ЭК", EKSubCategory },
{ОЛНОЕ_НАИМЕНОВАНИЕ", FullName },
{"ПРЕДПИСАНИЕ", Prescription },
{"ПРЕДПРИЯТИЕ", Company },
{"РАБОЧАЯ_ГР_ОТВ_ЗАК", WorkGroup },
{"РАСПОЛОЖЕНИЕ", Location },
{"РЕВИЗОРК", EKRevizor },
{"РЕГИСТРАТОРК", EKRegister },
{"СЕТЕВОЕМЯ", NetworkName },
{"СТАТУС", Status },
{"ТИП_ЭК", EKType },
{АКТИЧЕСКОЕ_ЗАВЕРШЕНИЕКСПЛУАТАЦИИ", EndExplotationDate.ToString() ?? null },
{АКТИЧЕСКОЕ_НАЧАЛОКСПЛУАТАЦИИ", StartExplotationDate.ToString() ?? null },
{ЕЛЕВОЕ_ВРЕМЯ_ВОССТАНОВЛЕНИЯ", TargetRepairTime },
{"SYSMODTIME", SysModTime.ToString() ?? null },
{"SYSMODUSER", SysModUser },
{"НОВЫЙ_КОД_ПОИСКА", NewEKFindCode },
{"СТАРЫЙ_КОД_ПОИСКА", OldEKFindCode },
{"НАПРАВЛЕНИЕТСК", CTSDirection },
{"ID", AIHID.ToString() },
{едостоверныеанные", IsUnreliableData.ToString() },
{"РГ_смены", ShiftWorkGroup },
{"КлиентскоеО", ClientSoftware },
{"Клиентская_ОС", ClientOS },
{"Тип СУБД", DBType },
{"Тип сервера приложений", APPType },
{"Тип сервера ЦК БС", CKBSServerType },
{"Тип сервера ИБ", IBServerType },
{"Тип сервера инфраструктуры", InfrastructureServerType },
{"Тип сервера мониторинга", MonitoringServerType },
{"ОС", OSType },
{"ЗО_РГ", WorkGroupResponseArea }
}
};
}
}
}