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) });
|
2023-12-08 08:48:34 +10:00
|
|
|
|
var recordId = "НАР23-00058467";
|
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
|
|
|
|
//в работу
|
|
|
|
|
|
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
|
|
|
|
//выполнить
|
|
|
|
|
|
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
|
|
|
|
}
|