2023-11-30 09:11:07 +10:00
using PARR.BLL.Services.Interfaces ;
2023-10-19 15:59:57 +10:00
using PARR.EsppApi ;
2023-11-28 15:33:59 +10:00
using PARR.EsppApi.Constants ;
2023-10-20 09:24:27 +10:00
using PARR.EsppApi.Models.Query ;
2023-10-19 15:59:57 +10:00
namespace PARR.Test
{
public class Worker : BackgroundService
{
private readonly ILogger < Worker > _logger ;
private readonly IEsppApiService esppApiService ;
2023-11-30 09:11:07 +10:00
private readonly IIntervalService intervalService ;
2023-10-19 15:59:57 +10:00
2023-11-30 09:11:07 +10:00
public Worker ( ILogger < Worker > logger , IEsppApiService esppApiService , IIntervalService intervalService )
2023-10-19 15:59:57 +10:00
{
_logger = logger ;
this . esppApiService = esppApiService ;
2023-11-30 09:11:07 +10:00
this . intervalService = intervalService ;
2023-10-19 15:59:57 +10:00
}
protected override async Task ExecuteAsync ( CancellationToken stoppingToken )
{
2023-11-30 09:11:07 +10:00
////test interval
//await intervalService.IntervalInitAsync(async () =>
//{
// _logger.LogInformation("---Выполняю метод---");
// await Task.Delay(29*1000);
// _logger.LogInformation("===Выполнил метод===");
//}, new TimeSpan(0, 0, 30));
2023-10-19 15:59:57 +10:00
await TestEsppApi ( ) ;
}
private async Task TestEsppApi ( )
{
2023-10-27 16:39:59 +10:00
//var result = await esppApiService.FindOrdersAsync(new FindOrdersQuery { DescriptionContains = "Полное", GenerateDateStart = new DateTime(2023, 10, 10) , GenerateDateEnd = new DateTime(2023, 10, 24) });
2024-02-01 16:49:18 +10:00
var recordId = "Н А Р 24-00007352" ;
2023-10-20 09:24:27 +10:00
2023-10-27 16:39:59 +10:00
var result = await esppApiService . FindOrderByRecordIdAsync ( recordId ) ;
if ( result . IsSuccess & & ( result . Data ! = null & & result . Data . Number . Any ( ) ) )
{
//var orders = result.Data;
2023-12-07 11:19:08 +10:00
//в работу
2024-02-01 16:49:18 +10:00
var inWorkResult = await esppApiService . SetStatusInWorkAsync ( recordId , "Регламентные работы в автоматическом режиме созданы и выполнены;" ) ; //"Решение...\nС новой строки"
2023-10-27 16:39:59 +10:00
if ( ! inWorkResult . IsSuccess )
{
2023-12-08 08:48:34 +10:00
_logger . LogError ( inWorkResult . Exception , $"Н е удалось взять в работу наряд {recordId}" ) ;
2023-10-27 16:39:59 +10:00
return ;
}
var tnk = new AddMtnkQuery { RecordId = recordId , JobOperation = "Н е учтена в перечне Т Н К " , Time = "00:05" } ;
2023-11-20 12:26:33 +10:00
var addMtnkResult = await esppApiService . AddMTnkAsync ( tnk ) ;
2023-10-27 16:39:59 +10:00
if ( ! addMtnkResult . IsSuccess )
{
_logger . LogError ( addMtnkResult . Exception , $"Н е удалось списать трудозатраты наряда {recordId}" ) ;
return ;
}
2023-12-07 11:19:08 +10:00
//выполнить
2024-02-01 16:49:18 +10:00
var resFinish = await esppApiService . SetStatusIsDoneAsync ( recordId , "Регламентные работы в автоматическом режиме созданы и выполнены;" , EsppOrderClosingCodeEnum . Auto ) ;
2023-10-27 16:39:59 +10:00
if ( ! resFinish . IsSuccess )
{
_logger . LogError ( resFinish . Exception , $"Н е удалось обновить статус наряда {recordId}" ) ;
return ;
}
}
else
2023-10-20 09:24:27 +10:00
{
2023-10-27 16:39:59 +10:00
_logger . LogWarning ( $"не найден наряд {recordId}" ) ;
2023-10-20 09:24:27 +10:00
}
2023-10-19 15:59:57 +10:00
}
}
2023-10-20 11:00:46 +10:00
}