feat(esppOrderManager): логика изменения статусов наряда. Добавлен проект с константами, вынес в него OrderStatusEnum. (EsppApi)Обновлена модель EsppOrder, при изменении статуса наряда, добавлено поле Решение.

This commit is contained in:
Mikhail Trubnikov
2023-11-20 12:26:33 +10:00
parent 1c02f9978a
commit 113a801060
17 changed files with 256 additions and 48 deletions

View File

@@ -18,21 +18,27 @@ namespace PARR.EsppApi
this.esppHttpService = esppHttpService;
}
public Task<EsppResultBase<EsppResponse>> SetStatusInWorkAsync(string recordId)//TODO упростить можно без RecordIdQuery
public Task<EsppResultBase<EsppResponse>> SetStatusInWorkAsync(string recordId, string resultMsg)//TODO упростить можно без RecordIdQuery
{
return SetStatusAsync(recordId, "2-В работе");
return SetStatusAsync(recordId, "2-В работе", resultMsg);
}
public Task<EsppResultBase<EsppResponse>> SetStatusIsDone(string recordId)//TODO упростить можно без RecordIdQuery
public Task<EsppResultBase<EsppResponse>> SetStatusIsDoneAsync(string recordId, string resultMsg)//TODO упростить можно без RecordIdQuery
{
return SetStatusAsync(recordId, "4-Выполнен");
return SetStatusAsync(recordId, "4-Выполнен", resultMsg);
}
private async Task<EsppResultBase<EsppResponse>> SetStatusAsync(string recordId, string newStatusStr)
private async Task<EsppResultBase<EsppResponse>> SetStatusAsync(string recordId, string newStatusStr, string resultMsg)
{
//TODO assignee сразу назначаем принудительно, чтобы было понятно кто менял объект
var result = await esppHttpService.SendAsync<EsppResponse>($"<ROOT operation=\"SaveTask\" returnFormat=\"json\">{{\"recordid\":\"{recordId}\",\"status\":\"{newStatusStr}\", \"assignee\":\"{esppOrderSettings.AccountName}\"}}</ROOT>");
var query = $"<ROOT operation=\"SaveTask\" returnFormat=\"json\">{{" +
$"\"recordid\":\"{recordId}\"," +
$"\"status\":\"{newStatusStr}\"," +
$"\"assignee\":\"{esppOrderSettings.AccountName}\"" +
$"\"resolution\":\"{resultMsg}\"," +
$"}}</ROOT>";
var result = await esppHttpService.SendAsync<EsppResponse>(query);
if (result.Data != null && result.Data.ErrorCode != "0")
return new EsppResultBase<EsppResponse>(null, false, new Exception(result.Data.Message));
@@ -79,7 +85,7 @@ namespace PARR.EsppApi
}
public async Task<EsppResultBase<EsppResponse>> AddMTnk(AddMtnkQuery mtnk)
public async Task<EsppResultBase<EsppResponse>> AddMTnkAsync(AddMtnkQuery mtnk)
{
var result = await esppHttpService.SendAsync<EsppResponse>(
$"<ROOT operation=\"AddMTNK\" returnFormat=\"json\">{{\"recordid\":\"{mtnk.RecordId}\"," +