diff --git a/PARR.API.sln b/PARR.API.sln
index 3391cb0e..547d9e78 100644
--- a/PARR.API.sln
+++ b/PARR.API.sln
@@ -35,21 +35,23 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.GeneratorTemplates", "
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.GeneratorTemplatesWorker", "PARR.GeneratorTemplatesWorker\PARR.GeneratorTemplatesWorker.csproj", "{BE11D005-D3FE-4F29-93A2-7379E729C78D}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PARR.EsppOrderLoader", "PARR.EsppOrderLoader\PARR.EsppOrderLoader.csproj", "{F83395F9-CE33-40A5-BA1A-4A1233E9AA67}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.EsppOrderLoader", "PARR.EsppOrderLoader\PARR.EsppOrderLoader.csproj", "{F83395F9-CE33-40A5-BA1A-4A1233E9AA67}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PARR.EsppOrderLoaderWorker", "PARR.EsppOrderLoaderWorker\PARR.EsppOrderLoaderWorker.csproj", "{868ED9E0-42AD-4540-90BE-31A57A21CD93}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.EsppOrderLoaderWorker", "PARR.EsppOrderLoaderWorker\PARR.EsppOrderLoaderWorker.csproj", "{868ED9E0-42AD-4540-90BE-31A57A21CD93}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PARR.Master", "PARR.Master\PARR.Master.csproj", "{EB730B71-83BB-4787-8096-07F1D45CB55B}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.Master", "PARR.Master\PARR.Master.csproj", "{EB730B71-83BB-4787-8096-07F1D45CB55B}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PARR.MasterWorker", "PARR.MasterWorker\PARR.MasterWorker.csproj", "{DC64DE01-2C7F-4557-9F97-DBFA21E74C1C}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.MasterWorker", "PARR.MasterWorker\PARR.MasterWorker.csproj", "{DC64DE01-2C7F-4557-9F97-DBFA21E74C1C}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PARR.EsppOrderManager", "PARR.EsppOrderManager\PARR.EsppOrderManager.csproj", "{771E46EC-8EB5-4BBE-9631-C6EBF7A237C1}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.EsppOrderManager", "PARR.EsppOrderManager\PARR.EsppOrderManager.csproj", "{771E46EC-8EB5-4BBE-9631-C6EBF7A237C1}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PARR.EsppOrderManagerWorker", "PARR.EsppOrderManagerWorker\PARR.EsppOrderManagerWorker.csproj", "{026C7940-9938-4294-B896-A6FFB0A33017}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.EsppOrderManagerWorker", "PARR.EsppOrderManagerWorker\PARR.EsppOrderManagerWorker.csproj", "{026C7940-9938-4294-B896-A6FFB0A33017}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PARR.EsppApi", "PARR.EsppApi\PARR.EsppApi.csproj", "{47A87CEC-9A16-4044-A7A3-E1430BE6C3AC}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.EsppApi", "PARR.EsppApi\PARR.EsppApi.csproj", "{47A87CEC-9A16-4044-A7A3-E1430BE6C3AC}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PARR.Test", "PARR.Test\PARR.Test.csproj", "{CFE2A198-67BF-4828-8E8D-31A01858FDA7}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.Test", "PARR.Test\PARR.Test.csproj", "{CFE2A198-67BF-4828-8E8D-31A01858FDA7}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PARR.Constants", "PARR.Constants\PARR.Constants.csproj", "{46B09885-C9FB-449C-ACAA-24C671194C4D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -135,6 +137,10 @@ Global
{CFE2A198-67BF-4828-8E8D-31A01858FDA7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CFE2A198-67BF-4828-8E8D-31A01858FDA7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CFE2A198-67BF-4828-8E8D-31A01858FDA7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {46B09885-C9FB-449C-ACAA-24C671194C4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {46B09885-C9FB-449C-ACAA-24C671194C4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {46B09885-C9FB-449C-ACAA-24C671194C4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {46B09885-C9FB-449C-ACAA-24C671194C4D}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/PARR.DAL/Contracts/OrderStatusEnum.cs b/PARR.Constants/OrderStatusEnum.cs
similarity index 83%
rename from PARR.DAL/Contracts/OrderStatusEnum.cs
rename to PARR.Constants/OrderStatusEnum.cs
index 23da878c..79825b6b 100644
--- a/PARR.DAL/Contracts/OrderStatusEnum.cs
+++ b/PARR.Constants/OrderStatusEnum.cs
@@ -1,5 +1,8 @@
-namespace PARR.DAL.Contracts
+namespace PARR.Constants
{
+ ///
+ /// Статус Наряда в ЕСПП
+ ///
public enum OrderStatusEnum
{
///
diff --git a/PARR.Constants/PARR.Constants.csproj b/PARR.Constants/PARR.Constants.csproj
new file mode 100644
index 00000000..cfadb03d
--- /dev/null
+++ b/PARR.Constants/PARR.Constants.csproj
@@ -0,0 +1,9 @@
+
+
+
+ net7.0
+ enable
+ enable
+
+
+
diff --git a/PARR.DAL/Context/DataContext.cs b/PARR.DAL/Context/DataContext.cs
index 5f9482a8..45c8eb21 100644
--- a/PARR.DAL/Context/DataContext.cs
+++ b/PARR.DAL/Context/DataContext.cs
@@ -1,4 +1,5 @@
using Microsoft.EntityFrameworkCore;
+using PARR.Constants;
using PARR.DAL.Contracts;
using PARR.DAL.Models;
using PARR.DAL.Models.AIHIT;
diff --git a/PARR.DAL/PARR.DAL.csproj b/PARR.DAL/PARR.DAL.csproj
index 5f116215..b4466c86 100644
--- a/PARR.DAL/PARR.DAL.csproj
+++ b/PARR.DAL/PARR.DAL.csproj
@@ -17,4 +17,8 @@
+
+
+
+
diff --git a/PARR.DAL/Services/Implementations/OrderStatusService.cs b/PARR.DAL/Services/Implementations/OrderStatusService.cs
index bbeda7f5..9368e415 100644
--- a/PARR.DAL/Services/Implementations/OrderStatusService.cs
+++ b/PARR.DAL/Services/Implementations/OrderStatusService.cs
@@ -1,6 +1,6 @@
using Microsoft.Extensions.Logging;
+using PARR.Constants;
using PARR.DAL.Context;
-using PARR.DAL.Contracts;
using PARR.DAL.Models;
using PARR.DAL.Services.Interfaces;
diff --git a/PARR.DAL/Services/Interfaces/IOrderStatusService.cs b/PARR.DAL/Services/Interfaces/IOrderStatusService.cs
index d0631f51..4600f03b 100644
--- a/PARR.DAL/Services/Interfaces/IOrderStatusService.cs
+++ b/PARR.DAL/Services/Interfaces/IOrderStatusService.cs
@@ -1,4 +1,5 @@
-using PARR.DAL.Contracts;
+using PARR.Constants;
+using PARR.DAL.Contracts;
using PARR.DAL.Models;
namespace PARR.DAL.Services.Interfaces
diff --git a/PARR.EsppApi/EsppApiService.cs b/PARR.EsppApi/EsppApiService.cs
index 262abf82..8c0b52d4 100644
--- a/PARR.EsppApi/EsppApiService.cs
+++ b/PARR.EsppApi/EsppApiService.cs
@@ -18,21 +18,27 @@ namespace PARR.EsppApi
this.esppHttpService = esppHttpService;
}
- public Task> SetStatusInWorkAsync(string recordId)//TODO упростить можно без RecordIdQuery
+ public Task> SetStatusInWorkAsync(string recordId, string resultMsg)//TODO упростить можно без RecordIdQuery
{
- return SetStatusAsync(recordId, "2-В работе");
+ return SetStatusAsync(recordId, "2-В работе", resultMsg);
}
- public Task> SetStatusIsDone(string recordId)//TODO упростить можно без RecordIdQuery
+ public Task> SetStatusIsDoneAsync(string recordId, string resultMsg)//TODO упростить можно без RecordIdQuery
{
-
- return SetStatusAsync(recordId, "4-Выполнен");
+ return SetStatusAsync(recordId, "4-Выполнен", resultMsg);
}
- private async Task> SetStatusAsync(string recordId, string newStatusStr)
+ private async Task> SetStatusAsync(string recordId, string newStatusStr, string resultMsg)
{
//TODO assignee сразу назначаем принудительно, чтобы было понятно кто менял объект
- var result = await esppHttpService.SendAsync($"{{\"recordid\":\"{recordId}\",\"status\":\"{newStatusStr}\", \"assignee\":\"{esppOrderSettings.AccountName}\"}}");
+ var query = $"{{" +
+ $"\"recordid\":\"{recordId}\"," +
+ $"\"status\":\"{newStatusStr}\"," +
+ $"\"assignee\":\"{esppOrderSettings.AccountName}\"" +
+ $"\"resolution\":\"{resultMsg}\"," +
+ $"}}";
+
+ var result = await esppHttpService.SendAsync(query);
if (result.Data != null && result.Data.ErrorCode != "0")
return new EsppResultBase(null, false, new Exception(result.Data.Message));
@@ -79,7 +85,7 @@ namespace PARR.EsppApi
}
- public async Task> AddMTnk(AddMtnkQuery mtnk)
+ public async Task> AddMTnkAsync(AddMtnkQuery mtnk)
{
var result = await esppHttpService.SendAsync(
$"{{\"recordid\":\"{mtnk.RecordId}\"," +
diff --git a/PARR.EsppApi/IEsppApiService.cs b/PARR.EsppApi/IEsppApiService.cs
index ceb5160f..4b851002 100644
--- a/PARR.EsppApi/IEsppApiService.cs
+++ b/PARR.EsppApi/IEsppApiService.cs
@@ -21,19 +21,19 @@ namespace PARR.EsppApi
/// Взять наряд в работу
///
///
- Task> SetStatusInWorkAsync(string recordId);
+ Task> SetStatusInWorkAsync(string recordId, string resultMsg);
///
/// Установить статус наряда как выполнен
///
///
- Task> SetStatusIsDone(string recordId);
+ Task> SetStatusIsDoneAsync(string recordId, string resultMsg);
///
/// Списание трудозатрат по модульным ТНК
///
///
- Task> AddMTnk(AddMtnkQuery mtnk);
+ Task> AddMTnkAsync(AddMtnkQuery mtnk);
}
}
diff --git a/PARR.EsppApi/Models/EsppOrder.cs b/PARR.EsppApi/Models/EsppOrder.cs
index aee98eca..c8a32434 100644
--- a/PARR.EsppApi/Models/EsppOrder.cs
+++ b/PARR.EsppApi/Models/EsppOrder.cs
@@ -1,4 +1,5 @@
-using PARR.EsppApi.Settings;
+using PARR.Constants;
+using PARR.EsppApi.Settings;
using System.Globalization;
using System.Text.Json.Serialization;
@@ -15,6 +16,9 @@ namespace PARR.EsppApi.Models
[JsonPropertyName("assignment")]
public string? WorkGroup { get; set; }
+ ///
+ /// Статус наряда в формате строки
+ ///
[JsonPropertyName("status")]
public string Status { get; set; } = string.Empty;
@@ -37,6 +41,32 @@ namespace PARR.EsppApi.Models
return new DateTimeOffset(utc, new TimeSpan(0));
}
}
+
+ ///
+ /// Статус наряда в формате OrderStatusEnum
+ ///
+ public OrderStatusEnum StatusEnum
+ {
+ get
+ {
+ switch (Status.Trim())
+ {
+ case "1-Направлен в группу":
+ return OrderStatusEnum.New;
+ case "2-В работе":
+ return OrderStatusEnum.InWork;
+ case "3-Приостановлен":
+ return OrderStatusEnum.Stop;
+ case "4-Выполнен":
+ return OrderStatusEnum.Complete;
+ case "5-Закрыт":
+ return OrderStatusEnum.Closed;
+ default:
+ //logger.LogWarning($"Не смог распознать статус наряда, вернул значение по умполчанию: {OrderStatusEnum.New.ToString()}, входящее значение: {statusName}");
+ return OrderStatusEnum.New;
+ }
+ }
+ }
}
}
diff --git a/PARR.EsppApi/Models/EsppResponse.cs b/PARR.EsppApi/Models/EsppResponse.cs
index b99fb7ea..5aa52ce3 100644
--- a/PARR.EsppApi/Models/EsppResponse.cs
+++ b/PARR.EsppApi/Models/EsppResponse.cs
@@ -1,10 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace PARR.EsppApi.Models
+namespace PARR.EsppApi.Models
{
public class EsppResponse
{
diff --git a/PARR.EsppOrderManager/EsppOrderManager.cs b/PARR.EsppOrderManager/EsppOrderManager.cs
index 3db37191..215305e8 100644
--- a/PARR.EsppOrderManager/EsppOrderManager.cs
+++ b/PARR.EsppOrderManager/EsppOrderManager.cs
@@ -6,6 +6,8 @@ using PARR.DAL.Contracts;
using PARR.DAL.Models;
using PARR.DAL.Services.Interfaces;
using PARR.EsppApi;
+using PARR.EsppApi.Models.Query;
+using PARR.EsppOrderManager.Services;
using PARR.EsppOrderManager.Settings;
namespace PARR.EsppOrderManager
@@ -17,7 +19,7 @@ namespace PARR.EsppOrderManager
private readonly ILogger logger;
private readonly ITransformService transformService;
private readonly IOrderService orderService;
- private readonly IEsppApiService esppApiService;
+ private readonly IEsppOrderService esppOrderService;
public EsppOrderManager(
MqSettings mqSettings,
@@ -25,7 +27,7 @@ namespace PARR.EsppOrderManager
ILogger logger,
ITransformService transformService,
IOrderService orderService,
- IEsppApiService esppApiService
+ IEsppOrderService esppOrderService
)
{
this.mqSettings = mqSettings;
@@ -33,7 +35,7 @@ namespace PARR.EsppOrderManager
this.logger = logger;
this.transformService = transformService;
this.orderService = orderService;
- this.esppApiService = esppApiService;
+ this.esppOrderService = esppOrderService;
}
public async void Start()
@@ -67,6 +69,7 @@ namespace PARR.EsppOrderManager
.Include(t => t.AgentHistories).ThenInclude(t => t.AgentHistoryLevel)
.Include(t => t.OrderStatus)
.Include(t => t.NextStatus)
+ .Include(t => t.Template).ThenInclude(t => t!.ApplicationsInWork).ThenInclude(t => t!.Work).ThenInclude(t => t!.Tnk)
.FirstOrDefaultAsync(t => t.Id == obj.OrderId);
if (order == null)
@@ -81,15 +84,39 @@ namespace PARR.EsppOrderManager
return;
}
+ if (!order.NextStatusCode.HasValue)
+ {
+ logger.LogWarning($"У наряда {order.Id}, {order.Number} не установлено поле {nameof(order.NextStatusCode)}");
+ return;
+ }
+
var resultMsg = GenerateResultMsg(order);
var workDuration = CalcWorkDuration(order);
- //todo:!!! менять статус наряда. Можн ли закрыть не беря в работу?
+ // Изменям статус наряда в ЕСПП
+ var result = await esppOrderService.ChangeOrderToEsppAsync(order, resultMsg, workDuration);
+
+ if (result)
+ {
+ logger.LogInformation($"Статусы наряда {order.Number} в ЕСПП обновлены. Установлен статус: {order.NextStatus!.Description}");
+
+ //обновляем статусы в БД
+ order.StatusCode = order.NextStatusCode.Value;
+ if (!await orderService.CommitAsync())
+ {
+ logger.LogError($"Ошибка при обновлении статуса в БД у наряда: {order.Number}. Не установлен статус {order.NextStatus!.Description}");
+ }
+
+ }
+ else
+ logger.LogError($"Ошибка при обновлении статуса наряда {order.Number}. Статус не изменен.");
+
+ logger.LogDebug($"Закончил работу с сообщением: {msg}");
}
///
- /// Генерирует текс поля Решение, в зависимости от статуса наряда и от истории Агента
+ /// Генерирует текст поля Решение, в зависимости от статуса наряда и от истории Агента
///
///
///
@@ -99,15 +126,17 @@ namespace PARR.EsppOrderManager
.OrderBy(t => t.DateCreated)
.Select(t => $"{t.DateCreated} :: {t.AgentHistoryLevel?.Name} :: {t.Message}");
+ var baseMsg = order.Template!.ApplicationsInWork!.Solution + "\r\n";
+
var msgAgent = "Работы выполнены средствами автоматизации. \r\n" +
"Журнал работы: \r\n" +
$"{string.Join("\r\n", agentHistory)}";
- var msgAgentEmpty = "Работы должны были выполниться средствами автоматизации. " +
- "Но от средств автоматизации не поступило сообщений. " +
+ var msgAgentEmpty = "Работы должны были выполняться средствами автоматизации. " +
+ "От средств автоматизации не поступило сообщений. " +
"Работы не выполнены.";
- return agentHistory.Any() ? msgAgent : msgAgentEmpty;
+ return baseMsg + (agentHistory.Any() ? msgAgent : msgAgentEmpty);
}
@@ -122,15 +151,41 @@ namespace PARR.EsppOrderManager
.OrderBy(t => t.DateCreated);
if (!agentHistory.Any())
- return TimeSpan.Zero;
+ return GetTnkDurationByScriptDuration(TimeSpan.Zero);
var dateStart = agentHistory.LastOrDefault(t => t.HistoryLevelId == (int)AgentHistoryLevelEnum.Start)?.DateCreated;
var dateEnd = agentHistory.LastOrDefault(t => t.HistoryLevelId == (int)AgentHistoryLevelEnum.End)?.DateCreated;
if (dateStart.HasValue && dateEnd.HasValue)
- return dateEnd.Value - dateStart.Value;
+ {
+ var duration = dateEnd.Value - dateStart.Value;
+ logger.LogDebug($"Продолжительность работы скрипта: {duration}");
- return TimeSpan.Zero;
+ return GetTnkDurationByScriptDuration(duration);
+ }
+
+ return GetTnkDurationByScriptDuration(TimeSpan.Zero);
+ }
+
+
+ ///
+ /// Получить время для списания ТНК по времени работы скрипта
+ ///
+ ///
+ ///
+ private TimeSpan GetTnkDurationByScriptDuration(TimeSpan scriptDuration)
+ {
+ // минимальное значение 1 минута
+ var minDuration = new TimeSpan(0, 1, 0);
+
+ if (scriptDuration < minDuration)
+ {
+ logger.LogDebug($"Продолжительность меньше минимального, беру минимальное: {minDuration}. {scriptDuration}<{minDuration}");
+
+ return minDuration;
+ }
+ else
+ return scriptDuration;
}
}
diff --git a/PARR.EsppOrderManager/PARR.EsppOrderManager.csproj b/PARR.EsppOrderManager/PARR.EsppOrderManager.csproj
index 226873a9..74361878 100644
--- a/PARR.EsppOrderManager/PARR.EsppOrderManager.csproj
+++ b/PARR.EsppOrderManager/PARR.EsppOrderManager.csproj
@@ -12,8 +12,4 @@
-
-
-
-
diff --git a/PARR.EsppOrderManager/ParrEsppOrderManagerInstaller.cs b/PARR.EsppOrderManager/ParrEsppOrderManagerInstaller.cs
index a483dea8..66b92e1d 100644
--- a/PARR.EsppOrderManager/ParrEsppOrderManagerInstaller.cs
+++ b/PARR.EsppOrderManager/ParrEsppOrderManagerInstaller.cs
@@ -3,6 +3,7 @@ using Microsoft.Extensions.DependencyInjection;
using PARR.BLL;
using PARR.DAL;
using PARR.EsppApi;
+using PARR.EsppOrderManager.Services;
using PARR.EsppOrderManager.Settings;
namespace PARR.EsppOrderManager
@@ -20,6 +21,7 @@ namespace PARR.EsppOrderManager
services.AddSingleton(mqSettings);
services.AddTransient();
+ services.AddTransient();
}
public static IConfigurationBuilder AddEsppOrderManagerConfigurations(this IConfigurationBuilder builder, IServiceCollection services)
diff --git a/PARR.EsppOrderManager/Services/EsppOrderService.cs b/PARR.EsppOrderManager/Services/EsppOrderService.cs
new file mode 100644
index 00000000..59743fbd
--- /dev/null
+++ b/PARR.EsppOrderManager/Services/EsppOrderService.cs
@@ -0,0 +1,88 @@
+using Microsoft.Extensions.Logging;
+using PARR.DAL.Models;
+using PARR.EsppApi.Models.Query;
+using PARR.EsppApi;
+using PARR.Constants;
+
+namespace PARR.EsppOrderManager.Services
+{
+ internal class EsppOrderService : IEsppOrderService
+ {
+ private readonly ILogger logger;
+ private readonly IEsppApiService esppApiService;
+
+ public EsppOrderService(
+ ILogger logger,
+ IEsppApiService esppApiService
+ )
+ {
+ this.logger = logger;
+ this.esppApiService = esppApiService;
+ }
+
+
+ public async Task ChangeOrderToEsppAsync(Order order, string resultMsg, TimeSpan duration)
+ {
+ // Наряд нужно провести по всем статусам
+ // Найти наряд, посмотреть его текущий статус (вдруг статус в ЕСПП был изменен, а в бд нет)
+ // Сначала взять в работу
+ // Списать ТНК
+ // Выполнить
+
+ var esppOrderResult = await esppApiService.FindOrderByRecordIdAsync(order.Number);
+ if (!esppOrderResult.IsSuccess || esppOrderResult.Data == null)
+ {
+ logger.LogError($"Не найден наряд в ЕСПП: {order.Number}");
+ return false;
+ }
+
+ // проверяем, совпадает ли NextStatus со статусом в ЕСПП
+ // Если совпадают, значит в еспп поменяли, и не изменили в БД раньше (может ошибка была, может руками кто сделал)
+ // так что говорим, как будто бы все ок
+ if (IsEquelEsppStatusAndNextStatus(order.NextStatusCode!.Value, esppOrderResult.Data.StatusEnum))
+ {
+ logger.LogInformation($"Для наряда {order.Number}, статус в ЕСПП совпадает с {nameof(order.NextStatusCode)} = {order.NextStatus!.Description}. " +
+ $"Статус в ЕСПП менять не нужно.");
+
+ return true;
+ }
+
+ //todo:
+
+ //var resultInWork = await esppApiService.SetStatusInWorkAsync(order.Number, resultMsg);
+
+ //if (!resultInWork.IsSuccess)
+ //{
+ // return false;
+ //}
+
+
+
+ //var tnk = new AddMtnkQuery
+ //{
+ // JobOperation = order!.Template!.ApplicationsInWork!.Work!.Tnk!.Name,
+ // RecordId = order.Number,
+ // Time = duration.ToString()
+ //};
+
+ //var resultTnk = await esppApiService.AddMTnkAsync(tnk);
+
+ //var resultIsDone = await esppApiService.SetStatusIsDoneAsync(order.Number, resultMsg);
+
+
+
+ return false;
+ }
+
+
+ ///
+ /// Совпадает ли NextStatus и Еспп статусом
+ ///
+ ///
+ private bool IsEquelEsppStatusAndNextStatus(int nextStatusCode, OrderStatusEnum esppStatus)
+ {
+ return nextStatusCode == (int)esppStatus;
+ }
+
+ }
+}
diff --git a/PARR.EsppOrderManager/Services/IEsppOrderService.cs b/PARR.EsppOrderManager/Services/IEsppOrderService.cs
new file mode 100644
index 00000000..490cb0fa
--- /dev/null
+++ b/PARR.EsppOrderManager/Services/IEsppOrderService.cs
@@ -0,0 +1,13 @@
+using PARR.DAL.Models;
+
+namespace PARR.EsppOrderManager.Services
+{
+ internal interface IEsppOrderService
+ {
+ ///
+ /// Изменение статуса в ЕСПП
+ ///
+ ///
+ Task ChangeOrderToEsppAsync(Order order, string resultMsg, TimeSpan duration);
+ }
+}
diff --git a/PARR.Test/Worker.cs b/PARR.Test/Worker.cs
index b4547b8e..e1232f20 100644
--- a/PARR.Test/Worker.cs
+++ b/PARR.Test/Worker.cs
@@ -32,7 +32,7 @@ namespace PARR.Test
{
//var orders = result.Data;
- var inWorkResult = await esppApiService.SetStatusInWorkAsync(recordId);
+ var inWorkResult = await esppApiService.SetStatusInWorkAsync(recordId, "Решение...");
if (!inWorkResult.IsSuccess)
{
_logger.LogError(inWorkResult.Exception, $"Не удалось взять в работу наряда{recordId}");
@@ -41,7 +41,7 @@ namespace PARR.Test
var tnk = new AddMtnkQuery { RecordId = recordId, JobOperation = "Не учтена в перечне ТНК", Time = "00:05" };
- var addMtnkResult = await esppApiService.AddMTnk(tnk);
+ var addMtnkResult = await esppApiService.AddMTnkAsync(tnk);
if (!addMtnkResult.IsSuccess)
{
@@ -50,7 +50,7 @@ namespace PARR.Test
}
- var resFinish = await esppApiService.SetStatusIsDone(recordId);
+ var resFinish = await esppApiService.SetStatusIsDoneAsync(recordId, "Решение...");
if (!resFinish.IsSuccess)
{
_logger.LogError(resFinish.Exception, $"Не удалось обновить статус наряда {recordId}");