fix: 首次创建轨迹订单无跟踪号时用客户单号占位
All checks were successful
Build and Deploy / deploy (push) Successful in 1m1s
All checks were successful
Build and Deploy / deploy (push) Successful in 1m1s
轨迹侧 TrackNo 必填,后续有真实跟踪号再 Upsert 更新。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
5fd25d479c
commit
a30958843b
@ -68,10 +68,18 @@ internal sealed class SmallBagTrackUpsertRequestBuilder(
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 仅取运单跟踪号;无值则空串,不回落运单号/客户单号等。
|
/// 轨迹侧 TrackNo 必填。有真实跟踪号用跟踪号;尚未下发时先用客户单号占位,后续有 TrackNo 再 Upsert 更新。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal static string ResolveTrackNo(Order order) =>
|
internal static string ResolveTrackNo(Order order)
|
||||||
order.TrackNo?.Trim() ?? string.Empty;
|
{
|
||||||
|
var trackNo = order.TrackNo?.Trim() ?? string.Empty;
|
||||||
|
if (!string.IsNullOrWhiteSpace(trackNo))
|
||||||
|
{
|
||||||
|
return trackNo;
|
||||||
|
}
|
||||||
|
|
||||||
|
return order.ClientNo?.Trim() ?? string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
internal static string? PickSupplierCodeFromProviders(
|
internal static string? PickSupplierCodeFromProviders(
|
||||||
IEnumerable<SalesProductAllocationProviderSnapshotDto> providers,
|
IEnumerable<SalesProductAllocationProviderSnapshotDto> providers,
|
||||||
|
|||||||
@ -20,14 +20,28 @@ public class SmallBagTrackUpsertRequestBuilderTests
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void ResolveTrackNo_EmptyWhenTrackNoMissing()
|
public void ResolveTrackNo_FallsBackToClientNoWhenTrackNoMissing()
|
||||||
{
|
{
|
||||||
var order = new Order
|
var order = new Order
|
||||||
{
|
{
|
||||||
ServiceNo = "IDE2607221859123456",
|
ServiceNo = "IDE2607221859123456",
|
||||||
|
ClientNo = "CNO-001",
|
||||||
TrackNo = null
|
TrackNo = null
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Assert.Equal("CNO-001", SmallBagTrackUpsertRequestBuilder.ResolveTrackNo(order));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void ResolveTrackNo_EmptyWhenTrackNoAndClientNoMissing()
|
||||||
|
{
|
||||||
|
var order = new Order
|
||||||
|
{
|
||||||
|
ServiceNo = "IDE2607221859123456",
|
||||||
|
TrackNo = null,
|
||||||
|
ClientNo = null
|
||||||
|
};
|
||||||
|
|
||||||
Assert.Equal(string.Empty, SmallBagTrackUpsertRequestBuilder.ResolveTrackNo(order));
|
Assert.Equal(string.Empty, SmallBagTrackUpsertRequestBuilder.ResolveTrackNo(order));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user