feat(esppOrderManager): отладка
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
using Microsoft.Extensions.Logging;
|
||||
using PARR.DAL.Models;
|
||||
using PARR.EsppApi.Models.Query;
|
||||
using PARR.EsppApi;
|
||||
using PARR.Constants;
|
||||
using PARR.DAL.Models;
|
||||
using PARR.EsppApi;
|
||||
using PARR.EsppApi.Models.Query;
|
||||
|
||||
namespace PARR.EsppOrderManager.Services
|
||||
{
|
||||
@@ -37,7 +37,7 @@ namespace PARR.EsppOrderManager.Services
|
||||
}
|
||||
|
||||
// проверяем, совпадает ли NextStatus со статусом в ЕСПП
|
||||
// Если совпадают, значит в еспп поменяли, и не изменили в БД раньше (может ошибка была, может руками кто сделал)
|
||||
// Если совпадают, значит в еспп поменяли и не изменили в БД раньше (может ошибка была, может руками кто сделал)
|
||||
// так что говорим, как будто бы все ок
|
||||
if (IsEquelEsppStatusAndNextStatus(order.NextStatusCode!.Value, esppOrderResult.Data.StatusEnum))
|
||||
{
|
||||
@@ -47,34 +47,107 @@ namespace PARR.EsppOrderManager.Services
|
||||
return true;
|
||||
}
|
||||
|
||||
//todo:
|
||||
// Установить статус 2-В работе
|
||||
if (order.NextStatusCode == (int)OrderStatusEnum.InWork)
|
||||
if (esppOrderResult.Data.StatusEnum == OrderStatusEnum.New || esppOrderResult.Data.StatusEnum == OrderStatusEnum.Stop)
|
||||
return await SetInWorkStatusAsync(order.Number, resultMsg);
|
||||
|
||||
//var resultInWork = await esppApiService.SetStatusInWorkAsync(order.Number, resultMsg);
|
||||
// Списать трудозатраты и установить статус 4-Выполнен
|
||||
if (order.NextStatusCode == (int)OrderStatusEnum.Complete)
|
||||
{
|
||||
var statusIsWork = esppOrderResult.Data.StatusEnum == OrderStatusEnum.InWork;
|
||||
|
||||
//if (!resultInWork.IsSuccess)
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
// если текущий статус != 2-В работе, сначала меняем статус на 2-В работе, а затем уже списываем трудозатраты и меняем на 4-Выполнен
|
||||
if (!statusIsWork)
|
||||
statusIsWork = await SetInWorkStatusAsync(order.Number, resultMsg);
|
||||
|
||||
if (statusIsWork)
|
||||
{
|
||||
// заполняем ТНК
|
||||
var tnk = new AddMtnkQuery
|
||||
{
|
||||
JobOperation = order!.Template!.ApplicationsInWork!.Work!.Name,
|
||||
RecordId = order.Number,
|
||||
Time = duration.ToString("HH:mm")
|
||||
};
|
||||
|
||||
return await SetCompleteStatusAsync(order.Number, resultMsg, tnk);
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.LogError($"Для наряда {order.Number} не могу изменить статус на {OrderStatusEnum.Complete}, так как текущий статус не {OrderStatusEnum.InWork}. " +
|
||||
$"Текущий статус в ЕСПП: {esppOrderResult.Data.Status}");
|
||||
|
||||
//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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Установка статуса 4-Выполнен
|
||||
/// </summary>
|
||||
/// <param name="orderNumber"></param>
|
||||
/// <param name="resultMsg"></param>
|
||||
/// <param name="tnk"></param>
|
||||
/// <returns></returns>
|
||||
private async Task<bool> SetCompleteStatusAsync(string orderNumber, string resultMsg, AddMtnkQuery tnk)
|
||||
{
|
||||
// списываем трудозатраты
|
||||
var resultTnk = await esppApiService.AddMTnkAsync(tnk);
|
||||
if (!resultTnk.IsSuccess)
|
||||
{
|
||||
logger.LogError(resultTnk.Exception, $"Ошибка при списывании трудозатрат для наряда {orderNumber}.");
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// выполняем наряд
|
||||
var result = await esppApiService.SetStatusIsDoneAsync(orderNumber, resultMsg);
|
||||
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
logger.LogDebug($"В ЕСПП, для наряда {orderNumber} установлен статус {OrderStatusEnum.Complete}");
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.LogError(result.Exception, $"В ЕСПП, для наряда {orderNumber} не удалось установить статус {OrderStatusEnum.Complete}.");
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Установка статуса 2-В работе
|
||||
/// </summary>
|
||||
/// <param name="orderNumber"></param>
|
||||
/// <param name="resultMsg"></param>
|
||||
/// <returns></returns>
|
||||
private async Task<bool> SetInWorkStatusAsync(string orderNumber, string resultMsg)
|
||||
{
|
||||
var result = await esppApiService.SetStatusInWorkAsync(orderNumber, resultMsg);
|
||||
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
logger.LogDebug($"В ЕСПП, для наряда {orderNumber} установлен статус {OrderStatusEnum.InWork}");
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.LogError(result.Exception, $"В ЕСПП, для наряда {orderNumber} не удалось установить статус {OrderStatusEnum.InWork}.");
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Совпадает ли NextStatus и Еспп статусом
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user