Skip to content

Commit 4e6ee78

Browse files
authored
Merge pull request #20 from skbkontur/LogisticsIntegration
Интеграция с Контур.Логистикой
2 parents 10219b7 + a2016bb commit 4e6ee78

16 files changed

+218
-9
lines changed

Directory.Build.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
</PropertyGroup>
1414

1515
<ItemGroup>
16-
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All" />
17-
<PackageReference Include="Nerdbank.GitVersioning" Version="3.4.244" PrivateAssets="All" />
16+
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="All" />
17+
<PackageReference Include="Nerdbank.GitVersioning" Version="3.7.115" PrivateAssets="All" />
1818
</ItemGroup>
1919

2020
</Project>

EdiApi.Client/EdiApi.Client.csproj

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
</PropertyGroup>
1414

1515
<ItemGroup>
16-
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
17-
<PackageReference Include="Vostok.ClusterClient.Core" Version="0.1.57" />
18-
<PackageReference Include="Vostok.ClusterClient.Singular" Version="0.1.29" />
19-
<PackageReference Include="Vostok.ClusterClient.Tracing" Version="0.1.8" />
20-
<PackageReference Include="Vostok.ClusterClient.Transport" Version="0.1.39" />
16+
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
17+
<PackageReference Include="Vostok.ClusterClient.Core" Version="0.1.59" />
18+
<PackageReference Include="Vostok.ClusterClient.Singular" Version="0.1.30" />
19+
<PackageReference Include="Vostok.ClusterClient.Tracing" Version="0.1.9" />
20+
<PackageReference Include="Vostok.ClusterClient.Transport" Version="0.1.40" />
2121
</ItemGroup>
2222

2323
</Project>

EdiApi.Client/Http/BaseEdiApiHttpClient.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Text;
44

55
using SkbKontur.EdiApi.Client.Types.Boxes;
6+
using SkbKontur.EdiApi.Client.Types.Logistics;
67
using SkbKontur.EdiApi.Client.Types.Organization;
78
using SkbKontur.EdiApi.Client.Types.Parties;
89
using SkbKontur.EdiApi.Client.Types.Serialization;
@@ -139,6 +140,17 @@ public UsersInfo GetUsersInfo(string authToken, string partyId)
139140
return Serializer.Deserialize<UsersInfo>(result.Response.Content.ToString());
140141
}
141142

143+
public TransportationDocumentIdentifier GetTransportationDocumentIdentifier(string authToken, string partyId)
144+
{
145+
var request = BuildGetRequest("V1/Logistics/GetTransportationDocumentIdentifier", authToken : authToken)
146+
.WithAdditionalQueryParameter("partyId", partyId);
147+
148+
var result = clusterClient.Send(request);
149+
EnsureSuccessResult(result);
150+
151+
return Serializer.Deserialize<TransportationDocumentIdentifier>(result.Response.Content.ToString());
152+
}
153+
142154
protected IEdiApiTypesSerializer Serializer { get; }
143155

144156
protected const int DefaultTimeout = 30 * 1000;

EdiApi.Client/IBaseEdiApiClient.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using SkbKontur.EdiApi.Client.Types.Boxes;
2+
using SkbKontur.EdiApi.Client.Types.Logistics;
23
using SkbKontur.EdiApi.Client.Types.Organization;
34
using SkbKontur.EdiApi.Client.Types.Parties;
45

@@ -27,5 +28,9 @@ public interface IBaseEdiApiClient
2728
OrganizationCatalogueInfo GetOrganizationCatalogueInfo(string authToken, string partyId);
2829

2930
PartyInfo GetPartyInfoByDepartmentGln(string authToken, string departmentGln);
31+
32+
UsersInfo GetUsersInfo(string authToken, string partyId);
33+
34+
TransportationDocumentIdentifier GetTransportationDocumentIdentifier(string authToken, string partyId);
3035
}
3136
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#nullable enable
2+
3+
namespace SkbKontur.EdiApi.Client.Types.Logistics
4+
{
5+
/// <summary>УИД транспортного документа из пула Минтранс</summary>
6+
public class TransportationDocumentIdentifier
7+
{
8+
/// <summary>Значение УИДа транспортного документа</summary>
9+
public string Id { get; set; } = null!;
10+
}
11+
}

EdiApi.Client/Types/Messages/BoxEvents/MessageBoxEventType.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,5 +128,11 @@ public enum MessageBoxEventType
128128

129129
/// <summary>Изменился статус отмены фиксации отгрузки в ГИС МТ "Честный ЗНАК". Событие в ящике отправителя</summary>
130130
OutboxDiadocDocumentShipmentFixationCancellationGisMtStatusChanged,
131+
132+
/// <summary>Статус отправки титула транспортной накладной в Контур.Логистику. Событие в ящике отправителя</summary>
133+
OutboxLogisticsWaybillTitlePostingStatus,
134+
135+
/// <summary>Изменился статус транспортной накладной в Контур.Логистике. Событие в ящике отправителя</summary>
136+
OutboxLogisticsWaybillStatusChanged,
131137
}
132138
}

EdiApi.Client/Types/Messages/BoxEvents/MessageBoxEventTypeRegistry.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ public MessageBoxEventTypeRegistry()
5050
Register<InboxDiadocDocumentPackageTraceabilityLost>(MessageBoxEventType.InboxDiadocDocumentPackageTraceabilityLost);
5151
Register<OutboxDiadocDocumentShipmentFixationGisMtStatusChangedEventContent>(MessageBoxEventType.OutboxDiadocDocumentShipmentFixationGisMtStatusChanged);
5252
Register<OutboxDiadocDocumentShipmentFixationCancellationGisMtStatusChangedEventContent>(MessageBoxEventType.OutboxDiadocDocumentShipmentFixationCancellationGisMtStatusChanged);
53+
Register<OutboxLogisticsWaybillTitlePostingStatusEventContent>(MessageBoxEventType.OutboxLogisticsWaybillTitlePostingStatus);
54+
Register<OutboxLogisticsWaybillStatusChangedEventContent>(MessageBoxEventType.OutboxLogisticsWaybillStatusChanged);
5355
}
5456
}
5557
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#nullable enable
2+
3+
namespace SkbKontur.EdiApi.Client.Types.Messages.BoxEventsContents
4+
{
5+
/// <summary>Тип события по транспортной накладной в Контур.Логистике</summary>
6+
public enum LogisticsWaybillEventType
7+
{
8+
/// <summary>Неизвестно</summary>
9+
Unknown = 0,
10+
11+
/// <summary>Транспортная накладная создана</summary>
12+
TransportationCreated = 1,
13+
14+
/// <summary>Выполнено действие с черновиком</summary>
15+
DraftAction = 2,
16+
17+
/// <summary>Подписан титул грузоотправителя Т1</summary>
18+
ConsignorTitleSigned = 3,
19+
20+
/// <summary>Подписан титул перевозчика на погрузке Т2</summary>
21+
CarrierReceptionTitleSigned = 4,
22+
23+
/// <summary>Подписан титул грузополучателя Т3</summary>
24+
ConsigneeTitleSigned = 5,
25+
26+
/// <summary>Подписан титул перевозчика на выгрузке Т4</summary>
27+
CarrierDeliveryTitleSigned = 6,
28+
29+
/// <summary>Подписан титул перевозчика о стоимости Т5</summary>
30+
CarrierPaymentTitleSigned = 7,
31+
32+
/// <summary>Подписан титул грузоотправителя о стоимости Т6</summary>
33+
ConsignorPaymentTitleSigned = 8,
34+
35+
/// <summary>Подписан титул переадресовки Т7</summary>
36+
ReaddressTitleSigned = 9,
37+
38+
/// <summary>Подписан титул эстафеты Т8</summary>
39+
RelayTitleSigned = 10,
40+
41+
/// <summary>Подписан титул отклонения</summary>
42+
RejectTitleSigned = 11,
43+
44+
/// <summary>Титул переслан третьему участнику транспортной накладной и наблюдателям</summary>
45+
TitleForwarded = 12,
46+
47+
/// <summary>Титул согласован с водителем</summary>
48+
TitleApprovedByDriver = 13,
49+
50+
/// <summary>Транспортная накладная перемещена в архив</summary>
51+
TransportationArchived = 14,
52+
53+
/// <summary>Транспортная накладная восстановлена из архива</summary>
54+
TransportationUnarchived = 15,
55+
}
56+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#nullable enable
2+
3+
namespace SkbKontur.EdiApi.Client.Types.Messages.BoxEventsContents
4+
{
5+
/// <summary>Информация о статусе транспортной накладной в Контур.Логистике</summary>
6+
public class LogisticsWaybillStatusInfo
7+
{
8+
/// <summary>Информация об идентификаторах титула транспортой накладной в Контур.Логистике</summary>
9+
public LogisticsWaybillTitleIdentificationInfo WaybillTitleIdentificationInfo { get; set; } = null!;
10+
11+
/// <summary>Тип события по транспортной накладной в Контур.Логистике</summary>
12+
public LogisticsWaybillEventType WaybillEventType { get; set; }
13+
14+
/// <summary>Статус транспортной накладной</summary>
15+
public string WaybillStatus { get; set; } = null!;
16+
17+
/// <summary>Признак черновика. Заполняется в событии TransportationCreated</summary>
18+
public bool? IsDraft { get; set; }
19+
20+
/// <summary>Тип титула. Заполняется в событиях подписания</summary>
21+
public string? TitleType { get; set; }
22+
23+
/// <summary>Идентификатор ящика отправителя в Диадоке. Заполняется в событии TitleForwarded</summary>
24+
public string? SenderDiadocBoxId { get; set; }
25+
26+
/// <summary>Идентификатор ящика получателя в Диадоке. Заполняется в событии TitleForwarded</summary>
27+
public string? RecipientDiadocBoxId { get; set; }
28+
29+
/// <summary>Результат приёмки. Заполняется в событии ConsigneeTitleSigned</summary>
30+
public string? AcceptanceResult { get; set; }
31+
32+
/// <summary>Признак исправления. Заполняется в событиях подписания</summary>
33+
public bool? IsRevision { get; set; }
34+
35+
/// <summary>Тип действия с черновиком. Заполняется в событии DraftAction</summary>
36+
public string? DraftActionType { get; set; }
37+
}
38+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#nullable enable
2+
3+
namespace SkbKontur.EdiApi.Client.Types.Messages.BoxEventsContents
4+
{
5+
/// <summary>Информация об идентификаторах титула транспортой накладной в Контур.Логистике</summary>
6+
public class LogisticsWaybillTitleIdentificationInfo
7+
{
8+
/// <summary>Идентификатор ящика в Диадоке, из которого был отправлен титул в Контур.Логистику</summary>
9+
public string OriginalSenderDiadocBoxId { get; set; } = null!;
10+
11+
/// <summary>УИД транспортного документа в Минтранс</summary>
12+
public string TransportationDocumentId { get; set; } = null!;
13+
14+
/// <summary>Внутренний идентификатор перевозки в Контур.Логистике</summary>
15+
public string LogisticsTransportationId { get; set; } = null!;
16+
17+
/// <summary>Идентификатор черновика в Контур.Логистике</summary>
18+
public string? LogisticsDraftId { get; set; }
19+
20+
/// <summary>Идентификатор титула в Контур.Логистике</summary>
21+
public string? LogisticsTitleId { get; set; }
22+
}
23+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#nullable enable
2+
3+
namespace SkbKontur.EdiApi.Client.Types.Messages.BoxEventsContents
4+
{
5+
/// <summary>Статус отправки титула транспортной накладной в Контур.Логистику</summary>
6+
public enum LogisticsWaybillTitlePostingStatus
7+
{
8+
/// <summary>Неизвестно</summary>
9+
Unknown = 0,
10+
11+
/// <summary>Титул успешно отправлен</summary>
12+
TitlePostedSuccessfully = 1,
13+
14+
/// <summary>Ошибка отправки титула</summary>
15+
TitlePostingError = 2,
16+
}
17+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#nullable enable
2+
3+
namespace SkbKontur.EdiApi.Client.Types.Messages.BoxEventsContents
4+
{
5+
/// <summary>Информация о статусе отправки титула транспортной накладной в Контур.Логистику</summary>
6+
public class LogisticsWaybillTitlePostingStatusInfo
7+
{
8+
/// <summary>Статус отправки титула транспортной накладной в Контур.Логистику</summary>
9+
public LogisticsWaybillTitlePostingStatus WaybillTitlePostingStatus { get; set; }
10+
11+
/// <summary>Информация об идентификаторах титула транспортной накладной, отправленного в Контур.Логистику. Заполняется для статуса TitlePostedSuccessfully</summary>
12+
public LogisticsWaybillTitleIdentificationInfo? WaybillTitleIdentificationInfo { get; set; }
13+
14+
/// <summary>Сообщения, относящиеся к статусу. Заполняется для статуса TitlePostingError</summary>
15+
public string[]? StatusMessages { get; set; }
16+
}
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#nullable enable
2+
3+
namespace SkbKontur.EdiApi.Client.Types.Messages.BoxEventsContents.Outbox
4+
{
5+
/// <summary>Информация о событии OutboxLogisticsWaybillStatusChangedEventContent в ящике отправителя</summary>
6+
public class OutboxLogisticsWaybillStatusChangedEventContent : OutboxEventContentBase
7+
{
8+
/// <summary>Информация о статусе транспортной накладной в Контур.Логистике</summary>
9+
public LogisticsWaybillStatusInfo WaybillStatusInfo { get; set; } = null!;
10+
}
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#nullable enable
2+
3+
namespace SkbKontur.EdiApi.Client.Types.Messages.BoxEventsContents.Outbox
4+
{
5+
/// <summary>Информация о событии OutboxLogisticsWaybillTitlePostingStatusEventContent в ящике отправителя</summary>
6+
public class OutboxLogisticsWaybillTitlePostingStatusEventContent : OutboxEventContentBase
7+
{
8+
/// <summary>Информация о статусе отправки титула транспортной накладной в Контур.Логистику</summary>
9+
public LogisticsWaybillTitlePostingStatusInfo WaybillTitlePostingStatusInfo { get; set; } = null!;
10+
}
11+
}

global.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"sdk": {
3-
"version": "6.0.100",
3+
"version": "8.0.407",
44
"rollForward": "latestFeature"
55
}
66
}

version.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "https://raw.githubusercontent.com/AArnott/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json",
3-
"version": "2.8",
3+
"version": "2.9",
44
"assemblyVersion": {
55
"precision": "build"
66
},

0 commit comments

Comments
 (0)