Merge branch 'S06' into test
This commit is contained in:
commit
342412a0b0
@ -10,4 +10,14 @@ public class BatchDeleteTrackInput : OrderNosInfo
|
|||||||
[Required]
|
[Required]
|
||||||
[MaxLength(500)]
|
[MaxLength(500)]
|
||||||
public List<TrackIdentifierDto> TrackIdentifiers { get; set; } = new();
|
public List<TrackIdentifierDto> TrackIdentifiers { get; set; } = new();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 重复的情况下,用什么字段比较
|
||||||
|
/// </summary>
|
||||||
|
public string? CompareFields { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 重复的情况下,比较值
|
||||||
|
/// </summary>
|
||||||
|
public object? CompareValue { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,4 +17,14 @@ public class DeleteTrackInput : OrderNoInfo
|
|||||||
/// 轨迹ESId集合,非必填,如果有优先级最高
|
/// 轨迹ESId集合,非必填,如果有优先级最高
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<string>? EsIds { get; set; }
|
public List<string>? EsIds { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 重复的情况下,用什么字段比较
|
||||||
|
/// </summary>
|
||||||
|
public string? CompareFields { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 重复的情况下,比较值
|
||||||
|
/// </summary>
|
||||||
|
public object? CompareValue { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,4 +9,14 @@ public class PushTrackInput : OrderNosInfo
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public string TrackCode { get; set; } = null!;
|
public string TrackCode { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 重复的情况下,用什么字段比较
|
||||||
|
/// </summary>
|
||||||
|
public string? CompareFields { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 重复的情况下,比较值
|
||||||
|
/// </summary>
|
||||||
|
public object? CompareValue { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@ -245,7 +245,7 @@ public partial class TrackService : ApplicationService, ITrackService
|
|||||||
var extraDict = System.Text.Json.JsonSerializer.Deserialize<Dictionary<string, object>>(y.Extra);
|
var extraDict = System.Text.Json.JsonSerializer.Deserialize<Dictionary<string, object>>(y.Extra);
|
||||||
if (extraDict!.TryGetValue(input.CompareFields!, out var compareValue))
|
if (extraDict!.TryGetValue(input.CompareFields!, out var compareValue))
|
||||||
{
|
{
|
||||||
//tips:可能会有问题
|
//todo:需要修改JsonElement和object的逻辑
|
||||||
return compareValue.Equals(input.CompareValue);
|
return compareValue.Equals(input.CompareValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -358,7 +358,24 @@ public partial class TrackService : ApplicationService, ITrackService
|
|||||||
TrackSourceEnum.ExternalServiceProvide);
|
TrackSourceEnum.ExternalServiceProvide);
|
||||||
|
|
||||||
//当要删除的轨迹标识出现交叉则不允许删除
|
//当要删除的轨迹标识出现交叉则不允许删除
|
||||||
var intersect = tracks.Select(x => $"{x.TrackCode}{x.TrackTime}")
|
var intersect = tracks
|
||||||
|
.WhereIf(!input.CompareFields.IsNullOrWhiteSpace(), y =>
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(y.Extra))
|
||||||
|
{
|
||||||
|
throw new BusinessException(message: "轨迹extra为空无法使用比较字段比较,请检查轨迹");
|
||||||
|
}
|
||||||
|
|
||||||
|
var extraDict = System.Text.Json.JsonSerializer.Deserialize<Dictionary<string, object>>(y.Extra);
|
||||||
|
if (extraDict!.TryGetValue(input.CompareFields!, out var compareValue))
|
||||||
|
{
|
||||||
|
//todo:需要修改JsonElement和object的逻辑
|
||||||
|
return compareValue.Equals(input.CompareValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
})
|
||||||
|
.Select(x => $"{x.TrackCode}{x.TrackTime}")
|
||||||
.Intersect(input.TrackIdentifiers.Select(y => $"{y.TrackCode}{y.TrackTime}")).ToList();
|
.Intersect(input.TrackIdentifiers.Select(y => $"{y.TrackCode}{y.TrackTime}")).ToList();
|
||||||
if (intersect.Count > 0)
|
if (intersect.Count > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user