feat(esppApi): код закрытия вынес в параметры метода

This commit is contained in:
Mikhail Trubnikov
2023-11-28 15:33:59 +10:00
parent 00e034edf5
commit 8192cbd373
6 changed files with 60 additions and 9 deletions

View File

@@ -0,0 +1,25 @@
namespace PARR.EsppApi.Constants
{
/// <summary>
/// Код закрытия наряда
/// </summary>
public enum EsppOrderClosingCodeEnum
{
/// <summary>
/// Выполнен
/// </summary>
Complete,
/// <summary>
/// Прекращен
/// </summary>
Breake,
/// <summary>
/// Выполнен при помощи средств автоматизации
/// </summary>
Auto
}
}

View File

@@ -30,13 +30,13 @@ namespace PARR.EsppApi
}
public Task<EsppResultBase<EsppResponse>> SetStatusIsDoneAsync(string recordId, string resultMsg)//TODO упростить можно без RecordIdQuery
public Task<EsppResultBase<EsppResponse>> SetStatusIsDoneAsync(string recordId, string resultMsg, EsppOrderClosingCodeEnum closingCode)//TODO упростить можно без RecordIdQuery
{
return SetStatusAsync(recordId, "4-Выполнен", resultMsg);
return SetStatusAsync(recordId, "4-Выполнен", resultMsg, closingCode);
}
private async Task<EsppResultBase<EsppResponse>> SetStatusAsync(string recordId, string newStatusStr, string resultMsg)
private async Task<EsppResultBase<EsppResponse>> SetStatusAsync(string recordId, string newStatusStr, string resultMsg, EsppOrderClosingCodeEnum? closingCode = null)
{
//TODO assignee сразу назначаем принудительно, чтобы было понятно кто менял объект
//var query = $"<ROOT operation=\"SaveTask\" returnFormat=\"json\">{{" +
@@ -48,7 +48,7 @@ namespace PARR.EsppApi
//var result = await esppHttpService.SendAsync<EsppResponse>(QuerySanitize(query));
var request = new SetStatusRequest
var request = new SetStatusRequest(closingCode ?? EsppOrderClosingCodeEnum.Complete)
{
recordid = recordId,
status = newStatusStr,

View File

@@ -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
/// Установить статус наряда как выполнен
/// </summary>
/// <returns></returns>
Task<EsppResultBase<EsppResponse>> SetStatusIsDoneAsync(string recordId, string resultMsg);
Task<EsppResultBase<EsppResponse>> SetStatusIsDoneAsync(string recordId, string resultMsg, EsppOrderClosingCodeEnum closingCode);
/// <summary>
/// Списание трудозатрат по модульным ТНК

View File

@@ -1,10 +1,31 @@
namespace PARR.EsppApi.Requests
using PARR.EsppApi.Constants;
namespace PARR.EsppApi.Requests
{
/// <summary>
/// Изменить статус наряда
/// </summary>
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; }
}
}

View File

@@ -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)
{

View File

@@ -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}");