feat(master): доработка логики
This commit is contained in:
@@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,5 +4,8 @@
|
|||||||
"Default": "Information",
|
"Default": "Information",
|
||||||
"Microsoft.Hosting.Lifetime": "Information"
|
"Microsoft.Hosting.Lifetime": "Information"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"MqSettings": {
|
||||||
|
"HostName": "10.99.253.216"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user