diff --git a/PARR.EsppApi/Constants/EsppOrderClosingCodeEnum.cs b/PARR.EsppApi/Constants/EsppOrderClosingCodeEnum.cs
new file mode 100644
index 00000000..41f2d62a
--- /dev/null
+++ b/PARR.EsppApi/Constants/EsppOrderClosingCodeEnum.cs
@@ -0,0 +1,25 @@
+namespace PARR.EsppApi.Constants
+{
+ ///
+ /// Код закрытия наряда
+ ///
+ public enum EsppOrderClosingCodeEnum
+ {
+ ///
+ /// Выполнен
+ ///
+ Complete,
+
+ ///
+ /// Прекращен
+ ///
+ Breake,
+
+ ///
+ /// Выполнен при помощи средств автоматизации
+ ///
+ Auto
+ }
+
+
+}
diff --git a/PARR.EsppApi/EsppApiService.cs b/PARR.EsppApi/EsppApiService.cs
index 433a3b52..98786e6f 100644
--- a/PARR.EsppApi/EsppApiService.cs
+++ b/PARR.EsppApi/EsppApiService.cs
@@ -30,13 +30,13 @@ namespace PARR.EsppApi
}
- public Task> SetStatusIsDoneAsync(string recordId, string resultMsg)//TODO упростить можно без RecordIdQuery
+ public Task> SetStatusIsDoneAsync(string recordId, string resultMsg, EsppOrderClosingCodeEnum closingCode)//TODO упростить можно без RecordIdQuery
{
- return SetStatusAsync(recordId, "4-Выполнен", resultMsg);
+ return SetStatusAsync(recordId, "4-Выполнен", resultMsg, closingCode);
}
- private async Task> SetStatusAsync(string recordId, string newStatusStr, string resultMsg)
+ private async Task> SetStatusAsync(string recordId, string newStatusStr, string resultMsg, EsppOrderClosingCodeEnum? closingCode = null)
{
//TODO assignee сразу назначаем принудительно, чтобы было понятно кто менял объект
//var query = $"{{" +
@@ -48,7 +48,7 @@ namespace PARR.EsppApi
//var result = await esppHttpService.SendAsync(QuerySanitize(query));
- var request = new SetStatusRequest
+ var request = new SetStatusRequest(closingCode ?? EsppOrderClosingCodeEnum.Complete)
{
recordid = recordId,
status = newStatusStr,
diff --git a/PARR.EsppApi/IEsppApiService.cs b/PARR.EsppApi/IEsppApiService.cs
index 4b851002..1ecf8256 100644
--- a/PARR.EsppApi/IEsppApiService.cs
+++ b/PARR.EsppApi/IEsppApiService.cs
@@ -1,4 +1,5 @@
-using PARR.EsppApi.Models;
+using PARR.EsppApi.Constants;
+using PARR.EsppApi.Models;
using PARR.EsppApi.Models.Query;
namespace PARR.EsppApi
@@ -27,7 +28,7 @@ namespace PARR.EsppApi
/// Установить статус наряда как выполнен
///
///
- Task> SetStatusIsDoneAsync(string recordId, string resultMsg);
+ Task> SetStatusIsDoneAsync(string recordId, string resultMsg, EsppOrderClosingCodeEnum closingCode);
///
/// Списание трудозатрат по модульным ТНК
diff --git a/PARR.EsppApi/Requests/SetStatusRequest.cs b/PARR.EsppApi/Requests/SetStatusRequest.cs
index e4418912..6d411ed9 100644
--- a/PARR.EsppApi/Requests/SetStatusRequest.cs
+++ b/PARR.EsppApi/Requests/SetStatusRequest.cs
@@ -1,10 +1,31 @@
-namespace PARR.EsppApi.Requests
+using PARR.EsppApi.Constants;
+
+namespace PARR.EsppApi.Requests
{
///
/// Изменить статус наряда
///
internal class SetStatusRequest
{
+ public SetStatusRequest(EsppOrderClosingCodeEnum closingCode)
+ {
+ switch (closingCode)
+ {
+ case EsppOrderClosingCodeEnum.Complete:
+ resolutionCode = "выполнен";
+ break;
+ case EsppOrderClosingCodeEnum.Breake:
+ resolutionCode = "прекращен";
+ break;
+ case EsppOrderClosingCodeEnum.Auto:
+ resolutionCode = "выполнен при помощи средств автоматизации";
+ break;
+ default:
+ resolutionCode = "выполнен";
+ break;
+ }
+ }
+
public required string recordid { get; set; }
public required string status { get; set; }
@@ -12,5 +33,7 @@
public required string assignee { get; set; }
public required string resolution { get; set; }
+
+ public string resolutionCode { get; private set; }
}
}
diff --git a/PARR.EsppOrderManager/Services/EsppOrderService.cs b/PARR.EsppOrderManager/Services/EsppOrderService.cs
index b8682820..ce56a416 100644
--- a/PARR.EsppOrderManager/Services/EsppOrderService.cs
+++ b/PARR.EsppOrderManager/Services/EsppOrderService.cs
@@ -2,6 +2,7 @@
using PARR.Constants;
using PARR.DAL.Models;
using PARR.EsppApi;
+using PARR.EsppApi.Constants;
using PARR.EsppApi.Models.Query;
using PARR.EsppOrderManager.Settings;
@@ -118,7 +119,7 @@ namespace PARR.EsppOrderManager.Services
logger.LogDebug($"В ЕСПП, для наряда {orderNumber} списаны трудозатраты. Операция: {tnk.JobOperation}, время: {tnk.Time}");
// выполняем наряд
- var result = await esppApiService.SetStatusIsDoneAsync(orderNumber, resultMsg);
+ var result = await esppApiService.SetStatusIsDoneAsync(orderNumber, resultMsg, EsppOrderClosingCodeEnum.Auto);
if (result.IsSuccess)
{
diff --git a/PARR.Test/Worker.cs b/PARR.Test/Worker.cs
index 7aa69595..479dda86 100644
--- a/PARR.Test/Worker.cs
+++ b/PARR.Test/Worker.cs
@@ -1,4 +1,5 @@
using PARR.EsppApi;
+using PARR.EsppApi.Constants;
using PARR.EsppApi.Models.Query;
namespace PARR.Test
@@ -50,7 +51,7 @@ namespace PARR.Test
}
- var resFinish = await esppApiService.SetStatusIsDoneAsync(recordId, "Решение...");
+ var resFinish = await esppApiService.SetStatusIsDoneAsync(recordId, "Решение...", EsppOrderClosingCodeEnum.Auto);
if (!resFinish.IsSuccess)
{
_logger.LogError(resFinish.Exception, $"Не удалось обновить статус наряда {recordId}");