feat(aihitSyncer): добавлена синхронизация объекта WorkGroup

This commit is contained in:
Mikhail Kuznetsov
2024-06-04 11:00:14 +10:00
parent 90948108c1
commit 18dbca988a
3 changed files with 78 additions and 41 deletions

View File

@@ -18,6 +18,7 @@ namespace PARR.AIHITSyncer.Services
private readonly IApplicationInHostService appInHostService;
private readonly IApplicationTypeService appTypeService;
private readonly ITransformService transformService;
private readonly IWorkGroupService workGroupService;
public List<ApplicationType> AppTypes { get; private set; } = new List<ApplicationType>();
@@ -27,7 +28,8 @@ namespace PARR.AIHITSyncer.Services
IApplicationService appService,
IApplicationInHostService appInHostService,
IApplicationTypeService appTypeService,
ITransformService transformService
ITransformService transformService,
IWorkGroupService workGroupService
)
{
this.logger = logger;
@@ -36,6 +38,7 @@ namespace PARR.AIHITSyncer.Services
this.appInHostService = appInHostService;
this.appTypeService = appTypeService;
this.transformService = transformService;
this.workGroupService = workGroupService;
}
@@ -80,14 +83,17 @@ namespace PARR.AIHITSyncer.Services
private async Task<Host?> CreateHostAsync(AihitDataMq objFromQuery)
{
var id = Guid.NewGuid();
var host = new Host
{
Id = id,
Ek = objFromQuery.EK,
IP = objFromQuery.IP,
EkStatusCode = ResolveCode(objFromQuery.Status),
WorkGroup = objFromQuery.WorkGroup,
ResponseAreaCode = ResolveCode(objFromQuery.ResponseArea)
//WorkGroup = objFromQuery.WorkGroup,
WorkGroupItem = await CreateWorkGroupIfNotExistAsync(objFromQuery.WorkGroup),
ResponseAreaCode = ((ResolveCode(objFromQuery.ResponseArea) == 0) ? 99 : ResolveCode(objFromQuery.ResponseArea))
};
if (!await hostService.CreateAsync(host) || !await hostService.CommitAsync())
@@ -100,6 +106,28 @@ namespace PARR.AIHITSyncer.Services
return await hostService.GetHostWithAppsByEkAsync(host.Ek);
}
private async Task<WorkGroup?> CreateWorkGroupIfNotExistAsync(string? workGroupName)
{
if (string.IsNullOrEmpty(workGroupName) || string.IsNullOrWhiteSpace(workGroupName)) return null;
var existWorkGroup = await workGroupService.GetByNameAsync(workGroupName);
if (existWorkGroup != null)
return existWorkGroup;
var workGroup = new WorkGroup
{
Id = Guid.NewGuid(),
Name = workGroupName.Trim(),
};
if (!await workGroupService.CreateAsync(workGroup) || !await workGroupService.CommitAsync())
logger.LogError($"Не удалось создать запись в таблице WorkGroups: {workGroupName}, {workGroup.ToJson()}");
else
logger.LogInformation($"Создана запись а таблице WorkGroups: {workGroupName}, {workGroup.ToJson()}");
return await workGroupService.GetAsync(workGroup.Id); ;
}
private async Task SyncHostFieldsAsync(Host host, AihitDataMq objFromQuery)
{
@@ -114,11 +142,20 @@ namespace PARR.AIHITSyncer.Services
host.EkStatusCode = ResolveCode(objFromQuery.Status);
isChanged = true;
}
if (objFromQuery.WorkGroup != null && (host.WorkGroup == null || !host.WorkGroup!.Equals(objFromQuery.WorkGroup)))
//TODO Удалить после перехода на самостоятельный объект WorkGroup
//if (objFromQuery.WorkGroup != null && (host.WorkGroup == null || !host.WorkGroup!.Equals(objFromQuery.WorkGroup)))
//{
// host.WorkGroup = objFromQuery.WorkGroup;
// isChanged = true;
//}
if (objFromQuery.WorkGroup != null && (host.WorkGroupItem == null || !host.WorkGroupItem!.Name.Equals(objFromQuery.WorkGroup)))
{
host.WorkGroup = objFromQuery.WorkGroup;
host.WorkGroupItem = await CreateWorkGroupIfNotExistAsync(objFromQuery.WorkGroup);
isChanged = true;
}
if (host.ResponseAreaCode != ((ResolveCode(objFromQuery.ResponseArea) == 0) ? 99 : ResolveCode(objFromQuery.ResponseArea)))
{//TODO Возможно проще выгружать с помощью INCLUDE зону ответственности и сравнивать string
host.ResponseAreaCode = ((ResolveCode(objFromQuery.ResponseArea) == 0) ? 99 : ResolveCode(objFromQuery.ResponseArea));

View File

@@ -51,7 +51,7 @@ namespace PARR.DAL.Migrations
b.HasIndex("TemplateId");
b.ToTable("AgentHistories");
b.ToTable("AgentHistories", (string)null);
});
modelBuilder.Entity("PARR.DAL.Models.AgentHistoryLevel", b =>
@@ -72,7 +72,7 @@ namespace PARR.DAL.Migrations
b.HasKey("Id");
b.ToTable("AgentHistoryLevels");
b.ToTable("AgentHistoryLevels", (string)null);
b.HasData(
new
@@ -101,7 +101,7 @@ namespace PARR.DAL.Migrations
b.HasIndex("WorkGroupId");
b.ToTable("AppInWorkInWorkGroups");
b.ToTable("AppInWorkInWorkGroups", (string)null);
});
modelBuilder.Entity("PARR.DAL.Models.Application", b =>
@@ -130,7 +130,7 @@ namespace PARR.DAL.Migrations
b.HasIndex("Name", "ApplicationTypeId")
.IsUnique();
b.ToTable("Applications");
b.ToTable("Applications", (string)null);
});
modelBuilder.Entity("PARR.DAL.Models.ApplicationInHost", b =>
@@ -157,7 +157,7 @@ namespace PARR.DAL.Migrations
b.HasIndex("HostId");
b.ToTable("ApplicationsInHost");
b.ToTable("ApplicationsInHost", (string)null);
});
modelBuilder.Entity("PARR.DAL.Models.ApplicationType", b =>
@@ -181,7 +181,7 @@ namespace PARR.DAL.Migrations
b.HasKey("Id");
b.ToTable("ApplicationTypes");
b.ToTable("ApplicationTypes", (string)null);
b.HasData(
new
@@ -294,7 +294,7 @@ namespace PARR.DAL.Migrations
b.HasIndex("WorkId", "ApplicationId")
.IsUnique();
b.ToTable("ApplicationsInWorks");
b.ToTable("ApplicationsInWorks", (string)null);
});
modelBuilder.Entity("PARR.DAL.Models.EkStatus", b =>
@@ -311,7 +311,7 @@ namespace PARR.DAL.Migrations
b.HasKey("Code");
b.ToTable("EkStatuses");
b.ToTable("EkStatuses", (string)null);
b.HasData(
new
@@ -374,7 +374,7 @@ namespace PARR.DAL.Migrations
b.HasKey("Id");
b.ToTable("EsppSchTypes");
b.ToTable("EsppSchTypes", (string)null);
b.HasData(
new
@@ -443,7 +443,7 @@ namespace PARR.DAL.Migrations
b.HasIndex("TypeScheduleId", "TypeId")
.IsUnique();
b.ToTable("EsppSchTypeConfigs");
b.ToTable("EsppSchTypeConfigs", (string)null);
b.HasData(
new
@@ -546,7 +546,7 @@ namespace PARR.DAL.Migrations
b.HasKey("Id");
b.ToTable("EsppSchTypeSchedules");
b.ToTable("EsppSchTypeSchedules", (string)null);
b.HasData(
new
@@ -614,7 +614,7 @@ namespace PARR.DAL.Migrations
b.HasIndex("TypeId");
b.ToTable("EsppSchTypeValues");
b.ToTable("EsppSchTypeValues", (string)null);
b.HasData(
new
@@ -1383,7 +1383,7 @@ namespace PARR.DAL.Migrations
b.HasIndex("TypeValueId");
b.ToTable("EsppSchValues");
b.ToTable("EsppSchValues", (string)null);
});
modelBuilder.Entity("PARR.DAL.Models.Host", b =>
@@ -1430,7 +1430,7 @@ namespace PARR.DAL.Migrations
b.HasIndex("Ek", "IP");
b.ToTable("Hosts");
b.ToTable("Hosts", (string)null);
});
modelBuilder.Entity("PARR.DAL.Models.Order", b =>
@@ -1482,7 +1482,7 @@ namespace PARR.DAL.Migrations
b.HasIndex("TemplateId");
b.ToTable("Orders");
b.ToTable("Orders", (string)null);
});
modelBuilder.Entity("PARR.DAL.Models.OrderStatus", b =>
@@ -1503,7 +1503,7 @@ namespace PARR.DAL.Migrations
b.HasKey("Code");
b.ToTable("OrderStatuses");
b.ToTable("OrderStatuses", (string)null);
b.HasData(
new
@@ -1562,7 +1562,7 @@ namespace PARR.DAL.Migrations
b.HasIndex("EsppId")
.IsUnique();
b.ToTable("Processes");
b.ToTable("Processes", (string)null);
});
modelBuilder.Entity("PARR.DAL.Models.ResponseArea", b =>
@@ -1579,7 +1579,7 @@ namespace PARR.DAL.Migrations
b.HasKey("Code");
b.ToTable("ResponseAreas");
b.ToTable("ResponseAreas", (string)null);
b.HasData(
new
@@ -1690,7 +1690,7 @@ namespace PARR.DAL.Migrations
b.HasIndex("Name")
.IsUnique();
b.ToTable("Robots");
b.ToTable("Robots", (string)null);
b.HasData(
new
@@ -1745,7 +1745,7 @@ namespace PARR.DAL.Migrations
b.HasIndex("TemplateId", "RobotCode")
.IsUnique();
b.ToTable("RobotConfigurations");
b.ToTable("RobotConfigurations", (string)null);
});
modelBuilder.Entity("PARR.DAL.Models.RobotHistory", b =>
@@ -1780,7 +1780,7 @@ namespace PARR.DAL.Migrations
b.HasIndex("TaskStatusCode");
b.ToTable("RobotHistories");
b.ToTable("RobotHistories", (string)null);
});
modelBuilder.Entity("PARR.DAL.Models.RobotHistoryLevel", b =>
@@ -1801,7 +1801,7 @@ namespace PARR.DAL.Migrations
b.HasKey("Level");
b.ToTable("RobotHistoryLevels");
b.ToTable("RobotHistoryLevels", (string)null);
b.HasData(
new
@@ -1848,7 +1848,7 @@ namespace PARR.DAL.Migrations
b.HasKey("Code");
b.ToTable("RobotStatuses");
b.ToTable("RobotStatuses", (string)null);
b.HasData(
new
@@ -1896,7 +1896,7 @@ namespace PARR.DAL.Migrations
b.HasKey("Id");
b.ToTable("Roles");
b.ToTable("Roles", (string)null);
b.HasData(
new
@@ -1930,7 +1930,7 @@ namespace PARR.DAL.Migrations
b.HasKey("Name");
b.ToTable("Settings");
b.ToTable("Settings", (string)null);
b.HasData(
new
@@ -2024,7 +2024,7 @@ namespace PARR.DAL.Migrations
b.HasIndex("ProcessId");
b.ToTable("Subprocesses");
b.ToTable("Subprocesses", (string)null);
});
modelBuilder.Entity("PARR.DAL.Models.TaskStatus", b =>
@@ -2045,7 +2045,7 @@ namespace PARR.DAL.Migrations
b.HasKey("Code");
b.ToTable("TaskStatuses");
b.ToTable("TaskStatuses", (string)null);
b.HasData(
new
@@ -2108,7 +2108,7 @@ namespace PARR.DAL.Migrations
b.HasIndex("Name")
.IsUnique();
b.ToTable("Templates");
b.ToTable("Templates", (string)null);
});
modelBuilder.Entity("PARR.DAL.Models.Tnk", b =>
@@ -2140,7 +2140,7 @@ namespace PARR.DAL.Migrations
b.HasIndex("SubprocessId");
b.ToTable("Tnks");
b.ToTable("Tnks", (string)null);
});
modelBuilder.Entity("PARR.DAL.Models.User", b =>
@@ -2171,7 +2171,7 @@ namespace PARR.DAL.Migrations
b.HasIndex("Ip")
.IsUnique();
b.ToTable("Users");
b.ToTable("Users", (string)null);
});
modelBuilder.Entity("PARR.DAL.Models.UsersInRole", b =>
@@ -2186,7 +2186,7 @@ namespace PARR.DAL.Migrations
b.HasIndex("UserId");
b.ToTable("UsersInRoles");
b.ToTable("UsersInRoles", (string)null);
});
modelBuilder.Entity("PARR.DAL.Models.Work", b =>
@@ -2218,7 +2218,7 @@ namespace PARR.DAL.Migrations
b.HasIndex("TnkId");
b.ToTable("Works");
b.ToTable("Works", (string)null);
});
modelBuilder.Entity("PARR.DAL.Models.WorkGroup", b =>
@@ -2236,7 +2236,7 @@ namespace PARR.DAL.Migrations
b.HasKey("Id");
b.ToTable("WorkGroups");
b.ToTable("WorkGroups", (string)null);
});
modelBuilder.Entity("PARR.DAL.Models.AgentHistory", b =>

View File

@@ -16,7 +16,7 @@ namespace PARR.DAL.Models
public DateTimeOffset? DateModified { get; set; }
public string Ek { get; set; }
public required string Ek { get; set; }
public int EkStatusCode { get; set; }