diff --git a/PARR.Master/Services/OrderMasterService.cs b/PARR.Master/Services/OrderMasterService.cs
index 94f78d48..81909d7a 100644
--- a/PARR.Master/Services/OrderMasterService.cs
+++ b/PARR.Master/Services/OrderMasterService.cs
@@ -42,7 +42,7 @@ namespace PARR.Master.Services
{
// логика работы описана в документации проекта
- logger.LogInformation($"--- Начало поиска нарядов ---");
+ logger.LogInformation($"--- --- Начало поиска нарядов --- ---");
//ищем наряды в статусе 1 и 2
var ordersToManage = await GetOrdersNewOrWorkStatusesAsync();
@@ -52,7 +52,7 @@ namespace PARR.Master.Services
foreach (var order in ordersToManage)
{
//присваиваем им историю работы агента, меняем стаус наряда
- logger.LogInformation($"Найден наряд id: {order.Id}, {order.Number}");
+ logger.LogInformation($"--- Найден наряд id: {order.Id}, {order.Number} ---");
await SetHistoryAndUpdateOrderStatus(order);
}
@@ -72,7 +72,7 @@ namespace PARR.Master.Services
logger.LogDebug($"Список нардов переданных в RabbitMQ: {string.Join(", ", objs)}");
}
else
- logger.LogError($"Ошибка при передаче нарядов в Rabbit, неперадынные сообщения: {string.Join(", ", sendResult!.NotSendMessages)}");
+ logger.LogError($"Ошибка при передаче нарядов в Rabbit, не переданные сообщения: {string.Join(", ", sendResult!.NotSendMessages)}");
}
@@ -130,6 +130,9 @@ namespace PARR.Master.Services
//2 Ищем статус "Агент завершил выполнение задания"
var isAgentEnded = allHistory.Any(t => t.HistoryLevelId == (int)AgentHistoryLevelEnum.End);
+
+ //todo: !!! если nextStatus= желаемому статусу, то не заходить внутрь ИФА!!!
+
if (isAgentEnded)
{
order.NextStatusCode = (int)OrderStatusEnum.Complete;
@@ -157,10 +160,13 @@ namespace PARR.Master.Services
{
logger.LogDebug($"Для наряда {order.Id}, {order.Number} оставляю статус прежним, ожидаю завершение работы агента. Время старта агента: {lastStrartDate}, допустимый timeOut: {timeout} сек.");
}
-
}
//TODO: тут можно подумать, и закрывать наряды, у которых нет истории агента. сейчас мы такие наряды пропускаем, их будет закрывать руками админ.
+ if (!allHistory.Any())
+ {
+ logger.LogInformation($"Для наряда {order.Id}, {order.Number} нет истории агента. Ничего не делаем.");
+ }
if (!await orderService.CommitAsync())
{
@@ -172,12 +178,16 @@ namespace PARR.Master.Services
///
- /// Получить список нарядов, со статусами 1 или 2
+ /// Получить список нарядов, со статусами 1 или 2 и у которых nextStatus<3
///
private async Task> GetOrdersNewOrWorkStatusesAsync()
{
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();
}
diff --git a/PARR.MasterWorker/appsettings.Development.json b/PARR.MasterWorker/appsettings.Development.json
index b2dcdb67..992d2719 100644
--- a/PARR.MasterWorker/appsettings.Development.json
+++ b/PARR.MasterWorker/appsettings.Development.json
@@ -4,5 +4,8 @@
"Default": "Information",
"Microsoft.Hosting.Lifetime": "Information"
}
+ },
+ "MqSettings": {
+ "HostName": "10.99.253.216"
}
}