Merge branch 'S07' into test

This commit is contained in:
hardstylewyl 2025-03-24 17:59:55 +08:00
commit 1c30f43bc2
7 changed files with 43 additions and 10 deletions

View File

@ -87,9 +87,9 @@ public class CompleteWarningDetailsDto
public DateTime? LatestTrackTime { get; set; } public DateTime? LatestTrackTime { get; set; }
/// <summary> /// <summary>
/// 最新轨迹发生时区 /// 最新轨迹发生时区 e.g GMT +8:00 / --
/// </summary> /// </summary>
public float? LatestTrackTimeZone { get; set; } public string? LatestTrackTimeZone { get; set; }
/// <summary> /// <summary>
/// 通知对象 /// 通知对象

View File

@ -96,9 +96,9 @@ public sealed class ReturnWarningDetailsDto
public DateTime TrackTime { get; set; } public DateTime TrackTime { get; set; }
/// <summary> /// <summary>
/// 轨迹发生时区 /// 轨迹发生时区 e.g GMT +8:00 / --
/// </summary> /// </summary>
public float TrackTimeZone { get; set; } public string TrackTimeZone { get; set; }
/// <summary> /// <summary>
/// 轨迹创建时间 /// 轨迹创建时间

View File

@ -64,7 +64,7 @@ public sealed class TransportWarningDetailsDto
public DateTime? LatestTrackTime { get; set; } public DateTime? LatestTrackTime { get; set; }
/// <summary> /// <summary>
/// 最新轨迹发生时区 /// 最新轨迹发生时区 e.g GMT +8:00 / --
/// </summary> /// </summary>
public string LatestTrackTimeZone { get; set; } public string LatestTrackTimeZone { get; set; }

View File

@ -198,7 +198,7 @@ public partial class OrderService : ApplicationService, IOrderService
order.IsDeleted = true; order.IsDeleted = true;
_ = Task.Run(async () => _ = Task.Run(async () =>
{ {
var scope = _serviceProvider.CreateScope(); var scope = _serviceProvider.CreateAsyncScope();
try try
{ {
var handler = scope.ServiceProvider.GetRequiredService<IOrderWarningHandler>(); var handler = scope.ServiceProvider.GetRequiredService<IOrderWarningHandler>();
@ -206,7 +206,7 @@ public partial class OrderService : ApplicationService, IOrderService
} }
finally finally
{ {
scope.Dispose(); await scope.DisposeAsync();
} }
}); });
} }

View File

@ -185,7 +185,7 @@ public class CompleteWarningService : ApplicationService
LatestTrackContent = orderIdTrack?.TrackContent, LatestTrackContent = orderIdTrack?.TrackContent,
LatestTrackPlace = orderIdTrack?.TrackPlace, LatestTrackPlace = orderIdTrack?.TrackPlace,
LatestTrackTime = orderIdTrack?.TrackTime, LatestTrackTime = orderIdTrack?.TrackTime,
LatestTrackTimeZone = orderIdTrack?.TrackTimeZone, LatestTrackTimeZone = FormatTimeZone(orderIdTrack?.TrackTimeZone),
NotifyUserNames = ToUserNames(x.NotifyUsers), NotifyUserNames = ToUserNames(x.NotifyUsers),
CreateTime = x.CreateTime, CreateTime = x.CreateTime,
@ -212,6 +212,7 @@ public class CompleteWarningService : ApplicationService
return string.Join(',', notifyUsers.ToObject<List<NotifyUserDto>>().Select(x => x.UserName)); return string.Join(',', notifyUsers.ToObject<List<NotifyUserDto>>().Select(x => x.UserName));
} }
// 构建缺失轨迹状态
List<TrackStatusDto> BuildMissingTrackStatus(string statusIds) List<TrackStatusDto> BuildMissingTrackStatus(string statusIds)
{ {
var trackStatus = statusIds.Split(',').Select(x => var trackStatus = statusIds.Split(',').Select(x =>
@ -229,6 +230,22 @@ public class CompleteWarningService : ApplicationService
return trackStatus.ToList()!; return trackStatus.ToList()!;
} }
// 格式化时区
string FormatTimeZone(float? timezone)
{
if (timezone == null) return "--";
if (Math.Abs(timezone.Value - GlobalConst.NoneTrackTimeZone) < 1) return "--";
// 将小数形式的小时转换为时区偏移量
var hours = (int) timezone.Value; // 提取整数部分作为小时
var minutes = (int) ((timezone.Value - hours) * 60); // 将小数部分乘以 60 转换为分钟
var offset = new TimeSpan(hours, minutes, 0);
var timeZoneStr = offset.ToString();
var flag = timezone > 0f ? "+" : "";
return $"GMT {flag}{timeZoneStr.RemovePostFix(":00")}";
}
} }
/// <summary> /// <summary>

View File

@ -138,7 +138,7 @@ public class ReturnWarningService : ApplicationService
TrackContent = x.TrackContent, TrackContent = x.TrackContent,
TrackPlace = x.TrackPlace, TrackPlace = x.TrackPlace,
TrackTime = x.TrackTime, TrackTime = x.TrackTime,
TrackTimeZone = x.TrackTimeZone, TrackTimeZone = FormatTimeZone(x.TrackTimeZone),
TrackCreateTime = x.TrackCreateTime, TrackCreateTime = x.TrackCreateTime,
// 轨迹信息(映射后) // 轨迹信息(映射后)
PushTrackCode = x.PushTrackCode, PushTrackCode = x.PushTrackCode,
@ -176,6 +176,22 @@ public class ReturnWarningService : ApplicationService
return string.Empty; return string.Empty;
return string.Join(',', notifyUsers.ToObject<List<NotifyUserDto>>().Select(x => x.UserName)); return string.Join(',', notifyUsers.ToObject<List<NotifyUserDto>>().Select(x => x.UserName));
} }
// 格式化时区
string FormatTimeZone(float? timezone)
{
if (timezone == null) return "--";
if (Math.Abs(timezone.Value - GlobalConst.NoneTrackTimeZone) < 1) return "--";
// 将小数形式的小时转换为时区偏移量
var hours = (int) timezone.Value; // 提取整数部分作为小时
var minutes = (int) ((timezone.Value - hours) * 60); // 将小数部分乘以 60 转换为分钟
var offset = new TimeSpan(hours, minutes, 0);
var timeZoneStr = offset.ToString();
var flag = timezone > 0f ? "+" : "";
return $"GMT {flag}{timeZoneStr.RemovePostFix(":00")}";
}
} }
/// <summary> /// <summary>

View File

@ -81,7 +81,7 @@ public sealed class TransportWarningDetailsIndex : IdBaseIndex
if (Status is (int) TransportWarningStatus.已完成 or (int) TransportWarningStatus.超时完成) if (Status is (int) TransportWarningStatus.已完成 or (int) TransportWarningStatus.超时完成)
return (long)EndTrackTime!.Value.Subtract(StartTrackTime).TotalMilliseconds; return (long)EndTrackTime!.Value.Subtract(StartTrackTime).TotalMilliseconds;
// 已关闭,当前时间 - 起始轨迹时间 // 其他状态,当前时间 - 起始轨迹时间
return (long)DateTime.Now.Subtract(StartTrackTime).TotalMilliseconds; return (long)DateTime.Now.Subtract(StartTrackTime).TotalMilliseconds;
} }