feat(master): доработка логики

This commit is contained in:
Mikhail Trubnikov
2023-11-16 16:19:47 +10:00
parent 15d84485dd
commit 71d4318e3a
2 changed files with 19 additions and 6 deletions

View File

@@ -42,7 +42,7 @@ namespace PARR.Master.Services
{ {
// логика работы описана в документации проекта // логика работы описана в документации проекта
logger.LogInformation($"--- Начало поиска нарядов ---"); logger.LogInformation($"--- --- Начало поиска нарядов --- ---");
//ищем наряды в статусе 1 и 2 //ищем наряды в статусе 1 и 2
var ordersToManage = await GetOrdersNewOrWorkStatusesAsync(); var ordersToManage = await GetOrdersNewOrWorkStatusesAsync();
@@ -52,7 +52,7 @@ namespace PARR.Master.Services
foreach (var order in ordersToManage) foreach (var order in ordersToManage)
{ {
//присваиваем им историю работы агента, меняем стаус наряда //присваиваем им историю работы агента, меняем стаус наряда
logger.LogInformation($"Найден наряд id: {order.Id}, {order.Number}"); logger.LogInformation($"--- Найден наряд id: {order.Id}, {order.Number} ---");
await SetHistoryAndUpdateOrderStatus(order); await SetHistoryAndUpdateOrderStatus(order);
} }
@@ -72,7 +72,7 @@ namespace PARR.Master.Services
logger.LogDebug($"Список нардов переданных в RabbitMQ: {string.Join(", ", objs)}"); logger.LogDebug($"Список нардов переданных в RabbitMQ: {string.Join(", ", objs)}");
} }
else else
logger.LogError($"Ошибка при передаче нарядов в Rabbit, неперадынные сообщения: {string.Join(", ", sendResult!.NotSendMessages)}"); logger.LogError($"Ошибка при передаче нарядов в Rabbit, не переданные сообщения: {string.Join(", ", sendResult!.NotSendMessages)}");
} }
@@ -130,6 +130,9 @@ namespace PARR.Master.Services
//2 Ищем статус "Агент завершил выполнение задания" //2 Ищем статус "Агент завершил выполнение задания"
var isAgentEnded = allHistory.Any(t => t.HistoryLevelId == (int)AgentHistoryLevelEnum.End); var isAgentEnded = allHistory.Any(t => t.HistoryLevelId == (int)AgentHistoryLevelEnum.End);
//todo: !!! если nextStatus= желаемому статусу, то не заходить внутрь ИФА!!!
if (isAgentEnded) if (isAgentEnded)
{ {
order.NextStatusCode = (int)OrderStatusEnum.Complete; order.NextStatusCode = (int)OrderStatusEnum.Complete;
@@ -157,10 +160,13 @@ namespace PARR.Master.Services
{ {
logger.LogDebug($"Для наряда {order.Id}, {order.Number} оставляю статус прежним, ожидаю завершение работы агента. Время старта агента: {lastStrartDate}, допустимый timeOut: {timeout} сек."); logger.LogDebug($"Для наряда {order.Id}, {order.Number} оставляю статус прежним, ожидаю завершение работы агента. Время старта агента: {lastStrartDate}, допустимый timeOut: {timeout} сек.");
} }
} }
//TODO: тут можно подумать, и закрывать наряды, у которых нет истории агента. сейчас мы такие наряды пропускаем, их будет закрывать руками админ. //TODO: тут можно подумать, и закрывать наряды, у которых нет истории агента. сейчас мы такие наряды пропускаем, их будет закрывать руками админ.
if (!allHistory.Any())
{
logger.LogInformation($"Для наряда {order.Id}, {order.Number} нет истории агента. Ничего не делаем.");
}
if (!await orderService.CommitAsync()) if (!await orderService.CommitAsync())
{ {
@@ -172,12 +178,16 @@ namespace PARR.Master.Services
/// <summary> /// <summary>
/// Получить список нарядов, со статусами 1 или 2 /// Получить список нарядов, со статусами 1 или 2 и у которых nextStatus<3
/// </summary> /// </summary>
private async Task<List<Order>> GetOrdersNewOrWorkStatusesAsync() private async Task<List<Order>> GetOrdersNewOrWorkStatusesAsync()
{ {
return await GetOrdres() return await GetOrdres()
.Where(t => t.StatusCode == (int)OrderStatusEnum.New || t.StatusCode == (int)OrderStatusEnum.InWork) .Where(t =>
(t.StatusCode == (int)OrderStatusEnum.New || t.StatusCode == (int)OrderStatusEnum.InWork)
&& (!t.NextStatusCode.HasValue || t.NextStatusCode < (int)OrderStatusEnum.Stop)
)
.OrderBy(t => t.DateCreated)
.ToListAsync(); .ToListAsync();
} }

View File

@@ -4,5 +4,8 @@
"Default": "Information", "Default": "Information",
"Microsoft.Hosting.Lifetime": "Information" "Microsoft.Hosting.Lifetime": "Information"
} }
},
"MqSettings": {
"HostName": "10.99.253.216"
} }
} }