diff --git a/PARR.EsppApi/EsppApiService.cs b/PARR.EsppApi/EsppApiService.cs index 8207e814..e871cb35 100644 --- a/PARR.EsppApi/EsppApiService.cs +++ b/PARR.EsppApi/EsppApiService.cs @@ -83,6 +83,9 @@ namespace PARR.EsppApi var conditions = new List(); + if (!string.IsNullOrEmpty(query.StatusIs)) + conditions.Add($"status=\"{query.StatusIs}\""); + if (!string.IsNullOrEmpty(query.DescriptionContains)) conditions.Add($"description like \"*{query.DescriptionContains}*\""); //if (!string.IsNullOrEmpty(query.TemplateNameContains)) diff --git a/PARR.EsppApi/Models/Query/FindOrdersQuery.cs b/PARR.EsppApi/Models/Query/FindOrdersQuery.cs index 38f50efe..e21fac32 100644 --- a/PARR.EsppApi/Models/Query/FindOrdersQuery.cs +++ b/PARR.EsppApi/Models/Query/FindOrdersQuery.cs @@ -9,6 +9,11 @@ /// Подробное описание, содержит значение /// public string? DescriptionContains { get; set; } + + /// + /// Статус наряда равен + /// + public string? StatusIs { get; set; } /// /// Дата сначала которой выбирать созданные наряды, UTC diff --git a/PARR.Test/Worker.cs b/PARR.Test/Worker.cs index 5853a2c3..8f8818dd 100644 --- a/PARR.Test/Worker.cs +++ b/PARR.Test/Worker.cs @@ -11,7 +11,11 @@ namespace PARR.Test private readonly IEsppApiService esppApiService; private readonly IIntervalService intervalService; - public Worker(ILogger logger, IEsppApiService esppApiService, IIntervalService intervalService) + public Worker( + ILogger logger, + IEsppApiService esppApiService, + IIntervalService intervalService + ) { _logger = logger; this.esppApiService = esppApiService; @@ -40,7 +44,8 @@ namespace PARR.Test - await TestEsppApi(); + //await TestEsppApi(); + await StopDiscontinuedOrdersInEspp(); } @@ -86,6 +91,41 @@ namespace PARR.Test _logger.LogWarning($"не найден наряд {recordId}"); } } + + + private async Task StopDiscontinuedOrdersInEspp() + { + const string ResultMsg = "Сформирован ошибочно"; + + var searchQuery = new FindOrdersQuery + { + DescriptionContains = "ЭИТИ-ПТК-ПАРР", + StatusIs = "1-Направлен в группу", + GenerateDateStart = new DateTime(2024, 02, 26, 0, 0, 0), + GenerateDateEnd = new DateTime(2024, 02, 29, 0, 0, 0) + }; + var result = await esppApiService.FindOrdersAsync(searchQuery); + + if (result.IsSuccess && result.Data != null) + { + foreach (var item in result.Data) + { + if (item.StatusEnum == Constants.OrderStatusEnum.New) + { + await esppApiService.SetStatusInWorkAsync(item.Number, ResultMsg); + } + + var newItem = await esppApiService.FindOrderByRecordIdAsync(item.Number); + if (newItem.IsSuccess && newItem.Data != null && newItem.Data.StatusEnum == OrderStatusEnum.InWork) + { + var tnk = new AddMtnkQuery { RecordId = newItem.Data.Number, JobOperation = "Прочее(наряды)", Time = "00:01" }; + + await esppApiService.AddMTnkAsync(tnk); + await esppApiService.SetStatusIsDoneAsync(newItem.Data.Number, ResultMsg, EsppOrderClosingCodeEnum.Breake); + } + } + } + } } }