feat(AIHITMainSyncer): обработка правил замены значений пришедших из АИХИТ для null
This commit is contained in:
@@ -18,7 +18,6 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\PARR.AIHITLoader\PARR.AIHITLoader.csproj" />
|
|
||||||
<ProjectReference Include="..\PARR.AIHITMainLoader\PARR.AIHITMainLoader.csproj" />
|
<ProjectReference Include="..\PARR.AIHITMainLoader\PARR.AIHITMainLoader.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -87,15 +87,15 @@ namespace PARR.AIHITMainSyncer.Services
|
|||||||
|
|
||||||
// Определяем, какие ПОЛЯ обновляются этим сообщением чтобы случайно не удалить не наши
|
// Определяем, какие ПОЛЯ обновляются этим сообщением чтобы случайно не удалить не наши
|
||||||
var fieldsInMessage = listAihitData
|
var fieldsInMessage = listAihitData
|
||||||
.Select(kv => kv.Key)
|
.Select(kv => kv.Key)
|
||||||
.Distinct(StringComparer.OrdinalIgnoreCase)
|
.Distinct(StringComparer.OrdinalIgnoreCase)
|
||||||
.ToHashSet();
|
.ToHashSet();
|
||||||
|
|
||||||
var unitValuesToRemove = unit.UnitValues
|
var unitValuesToRemove = unit.UnitValues
|
||||||
.Where(uv =>
|
.Where(uv =>
|
||||||
uv.Field != null &&
|
uv.Field != null &&
|
||||||
fieldsInMessage.Contains(uv.Field.AihitName) &&
|
fieldsInMessage.Contains(uv.Field.AihitName) &&
|
||||||
!listAihitData.Any(kv =>
|
!listAihitData.Any(kv =>
|
||||||
IsStringEqual(uv.Field.AihitName, kv.Key) &&
|
IsStringEqual(uv.Field.AihitName, kv.Key) &&
|
||||||
IsStringEqual(uv.Value?.Value, kv.Value)
|
IsStringEqual(uv.Value?.Value, kv.Value)
|
||||||
)
|
)
|
||||||
@@ -340,13 +340,18 @@ namespace PARR.AIHITMainSyncer.Services
|
|||||||
if (properties.ContainsKey(replacement.FieldName))
|
if (properties.ContainsKey(replacement.FieldName))
|
||||||
{
|
{
|
||||||
var currentValue = properties[replacement.FieldName];
|
var currentValue = properties[replacement.FieldName];
|
||||||
|
|
||||||
|
// Это костыль, List<string?> не может хранить null, вместо null он хранит ""
|
||||||
|
var stringNull = "null";
|
||||||
|
|
||||||
// Проверяем, содержится ли текущее значение в списке OldValues (с учетом регистра)
|
// Проверяем, содержится ли текущее значение в списке OldValues (с учетом регистра)
|
||||||
if (replacement.OldValues.Contains(currentValue, StringComparer.OrdinalIgnoreCase))
|
if (replacement.OldValues.Contains(currentValue ?? stringNull, StringComparer.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
logger.LogDebug("Заменяем значение поля '{FieldName}' с '{OldValue}' на '{NewValue}'",
|
logger.LogDebug("Заменяем значение поля '{FieldName}' с '{OldValue}' на '{NewValue}'",
|
||||||
replacement.FieldName, currentValue, replacement.NewValue);
|
replacement.FieldName, currentValue, replacement.NewValue);
|
||||||
properties[replacement.FieldName] = replacement.NewValue;
|
properties[replacement.FieldName] = replacement.NewValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,12 @@
|
|||||||
{
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Debug",
|
||||||
|
"Microsoft.EntityFrameworkCore": "Debug",
|
||||||
|
"Microsoft.EntityFrameworkCore.Database.Command": "Warning",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
},
|
||||||
"Serilog": {
|
"Serilog": {
|
||||||
"MinimumLevel": {
|
"MinimumLevel": {
|
||||||
"Default": "Debug",
|
"Default": "Debug",
|
||||||
|
|||||||
@@ -1,58 +1,63 @@
|
|||||||
{
|
{
|
||||||
"ConnectionStrings": {
|
"ConnectionStrings": {
|
||||||
"DefaultConnection": "Server=10.99.253.184;Database=parr;User Id=app_parr; Password=PosdfkhT&)%sdfligL&%5546;"
|
"DefaultConnection": "Server=10.99.253.184;Database=parr;User Id=app_parr; Password=PosdfkhT&)%sdfligL&%5546;"
|
||||||
},
|
},
|
||||||
"Logging": {
|
"Logging": {
|
||||||
"LogLevel": {
|
"LogLevel": {
|
||||||
"Default": "Information",
|
"Default": "Information",
|
||||||
"Microsoft.EntityFrameworkCore": "Error",
|
"Microsoft.EntityFrameworkCore": "Error",
|
||||||
"Microsoft.EntityFrameworkCore.Database.Command": "Warning",
|
"Microsoft.EntityFrameworkCore.Database.Command": "Warning",
|
||||||
"Microsoft.AspNetCore": "Warning"
|
"Microsoft.AspNetCore": "Warning"
|
||||||
}
|
|
||||||
},
|
|
||||||
"Serilog": {
|
|
||||||
"MinimumLevel": {
|
|
||||||
"Default": "Information",
|
|
||||||
"Override": {
|
|
||||||
"Microsoft": "Warning",
|
|
||||||
"Microsoft.EntityFrameworkCore": "Error",
|
|
||||||
"Microsoft.EntityFrameworkCore.Database.Command": "Warning",
|
|
||||||
"Microsoft.Hosting.Lifetime": "Information"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"WorkerSettings": {
|
|
||||||
"RepeatEvery": "00:10:00"
|
|
||||||
},
|
|
||||||
"MqSettings": {
|
|
||||||
"HostName": "parr-rabbitmq",
|
|
||||||
"QueueName": "parr-aihit-data",
|
|
||||||
"User": "aihit_syncer",
|
|
||||||
"Password": "afsdgDGjhfiU76496as42!@",
|
|
||||||
"PrefetchCount": 100
|
|
||||||
},
|
|
||||||
"FieldValueReplacementsSettings": {
|
|
||||||
"Replacements": [
|
|
||||||
{
|
|
||||||
"FieldName": "АКТИВЕН",
|
|
||||||
"OldValues": [ "t" ],
|
|
||||||
"NewValue": "1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"FieldName": "АКТИВЕН",
|
|
||||||
"OldValues": [ "f" ],
|
|
||||||
"NewValue": "0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"FieldName": "НЕУНИКАЛЬНЫЙ_ЭК",
|
|
||||||
"OldValues": [ "t" ],
|
|
||||||
"NewValue": "1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"FieldName": "НЕУНИКАЛЬНЫЙ_ЭК",
|
|
||||||
"OldValues": [ "f" ],
|
|
||||||
"NewValue": "0"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"Serilog": {
|
||||||
|
"MinimumLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Override": {
|
||||||
|
"Microsoft": "Warning",
|
||||||
|
"Microsoft.EntityFrameworkCore": "Error",
|
||||||
|
"Microsoft.EntityFrameworkCore.Database.Command": "Warning",
|
||||||
|
"Microsoft.Hosting.Lifetime": "Information"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"WorkerSettings": {
|
||||||
|
"RepeatEvery": "00:10:00"
|
||||||
|
},
|
||||||
|
"MqSettings": {
|
||||||
|
"HostName": "parr-rabbitmq",
|
||||||
|
"QueueName": "parr-aihit-data",
|
||||||
|
"User": "aihit_syncer",
|
||||||
|
"Password": "afsdgDGjhfiU76496as42!@",
|
||||||
|
"PrefetchCount": 100
|
||||||
|
},
|
||||||
|
"FieldValueReplacementsSettings": {
|
||||||
|
"Replacements": [
|
||||||
|
{
|
||||||
|
"FieldName": "АКТИВЕН",
|
||||||
|
"OldValues": [ "t" ],
|
||||||
|
"NewValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"FieldName": "АКТИВЕН",
|
||||||
|
"OldValues": [ "f" ],
|
||||||
|
"NewValue": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"FieldName": "НЕУНИКАЛЬНЫЙ_ЭК",
|
||||||
|
"OldValues": [ "t" ],
|
||||||
|
"NewValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"FieldName": "НЕУНИКАЛЬНЫЙ_ЭК",
|
||||||
|
"OldValues": [ "f" ],
|
||||||
|
"NewValue": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"FieldName": "НЕУНИКАЛЬНЫЙ_ЭК",
|
||||||
|
"OldValues": [ "null" ],
|
||||||
|
"NewValue": "пусто"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
12
PARR.API.sln
12
PARR.API.sln
@@ -56,12 +56,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.EsppScheduleSync", "PA
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.EsppScheduleSyncWorker", "PARR.EsppScheduleSyncWorker\PARR.EsppScheduleSyncWorker.csproj", "{C597A1D7-1BC5-493B-BC29-03EC830FB090}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.EsppScheduleSyncWorker", "PARR.EsppScheduleSyncWorker\PARR.EsppScheduleSyncWorker.csproj", "{C597A1D7-1BC5-493B-BC29-03EC830FB090}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.AIHITLoader", "PARR.AIHITLoader\PARR.AIHITLoader.csproj", "{E7F3C8FB-445B-4711-8F89-0B7DA7DB4537}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.AIHITLoaderWorker", "PARR.AIHITLoaderWorker\PARR.AIHITLoaderWorker.csproj", "{E9434123-E697-42E2-B7C0-FE08766B98D1}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.AIHITLoaderWorker", "PARR.AIHITLoaderWorker\PARR.AIHITLoaderWorker.csproj", "{E9434123-E697-42E2-B7C0-FE08766B98D1}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.AIHITSyncer", "PARR.AIHITSyncer\PARR.AIHITSyncer.csproj", "{4177B13B-585C-44C7-B3C1-6B6E46D6BABC}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.AIHITSyncerWorker", "PARR.AIHITSyncerWorker\PARR.AIHITSyncerWorker.csproj", "{4FA79176-F833-4879-8437-37EA053BAA94}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.AIHITSyncerWorker", "PARR.AIHITSyncerWorker\PARR.AIHITSyncerWorker.csproj", "{4FA79176-F833-4879-8437-37EA053BAA94}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.NextRun", "PARR.NextRun\PARR.NextRun.csproj", "{92400205-B781-4C6C-BDA3-6D3652C2B62F}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.NextRun", "PARR.NextRun\PARR.NextRun.csproj", "{92400205-B781-4C6C-BDA3-6D3652C2B62F}"
|
||||||
@@ -200,18 +196,10 @@ Global
|
|||||||
{C597A1D7-1BC5-493B-BC29-03EC830FB090}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{C597A1D7-1BC5-493B-BC29-03EC830FB090}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{C597A1D7-1BC5-493B-BC29-03EC830FB090}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{C597A1D7-1BC5-493B-BC29-03EC830FB090}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{C597A1D7-1BC5-493B-BC29-03EC830FB090}.Release|Any CPU.Build.0 = Release|Any CPU
|
{C597A1D7-1BC5-493B-BC29-03EC830FB090}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{E7F3C8FB-445B-4711-8F89-0B7DA7DB4537}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{E7F3C8FB-445B-4711-8F89-0B7DA7DB4537}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{E7F3C8FB-445B-4711-8F89-0B7DA7DB4537}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{E7F3C8FB-445B-4711-8F89-0B7DA7DB4537}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{E9434123-E697-42E2-B7C0-FE08766B98D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{E9434123-E697-42E2-B7C0-FE08766B98D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{E9434123-E697-42E2-B7C0-FE08766B98D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{E9434123-E697-42E2-B7C0-FE08766B98D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{E9434123-E697-42E2-B7C0-FE08766B98D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{E9434123-E697-42E2-B7C0-FE08766B98D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{E9434123-E697-42E2-B7C0-FE08766B98D1}.Release|Any CPU.Build.0 = Release|Any CPU
|
{E9434123-E697-42E2-B7C0-FE08766B98D1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{4177B13B-585C-44C7-B3C1-6B6E46D6BABC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{4177B13B-585C-44C7-B3C1-6B6E46D6BABC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{4177B13B-585C-44C7-B3C1-6B6E46D6BABC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{4177B13B-585C-44C7-B3C1-6B6E46D6BABC}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{4FA79176-F833-4879-8437-37EA053BAA94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{4FA79176-F833-4879-8437-37EA053BAA94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{4FA79176-F833-4879-8437-37EA053BAA94}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{4FA79176-F833-4879-8437-37EA053BAA94}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{4FA79176-F833-4879-8437-37EA053BAA94}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{4FA79176-F833-4879-8437-37EA053BAA94}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ namespace PARR.BLL.Services.Implementations
|
|||||||
|
|
||||||
public async Task<bool> InitConsumerAsync(IMqSettings mqSettings, MqMessageHandlerDelegate messageHandler)
|
public async Task<bool> InitConsumerAsync(IMqSettings mqSettings, MqMessageHandlerDelegate messageHandler)
|
||||||
{
|
{
|
||||||
logger.LogInformation($"Устанавливаю соединение с RabbitMQ: {mqSettings.HostName}, {mqSettings.QueueName}");
|
logger.LogInformation("Устанавливаю соединение с RabbitMQ. HostName: {HostName}, QueueName: {QueueName}", mqSettings.HostName, mqSettings.QueueName);
|
||||||
|
|
||||||
var factory = new ConnectionFactory
|
var factory = new ConnectionFactory
|
||||||
{
|
{
|
||||||
@@ -77,7 +77,7 @@ namespace PARR.BLL.Services.Implementations
|
|||||||
{
|
{
|
||||||
//var content = Encoding.UTF8.GetString(ea.Body.ToArray());
|
//var content = Encoding.UTF8.GetString(ea.Body.ToArray());
|
||||||
var content = Encoding.UTF8.GetString(ea.Body.Span);
|
var content = Encoding.UTF8.GetString(ea.Body.Span);
|
||||||
logger.LogDebug($"Получено сообщение: {content}");
|
logger.LogDebug("Получено сообщение: {content}", content);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user