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; }
/// <summary>
/// 最新轨迹发生时区
/// 最新轨迹发生时区 e.g GMT +8:00 / --
/// </summary>
public float? LatestTrackTimeZone { get; set; }
public string? LatestTrackTimeZone { get; set; }
/// <summary>
/// 通知对象

View File

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

View File

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

View File

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

View File

@ -185,7 +185,7 @@ public class CompleteWarningService : ApplicationService
LatestTrackContent = orderIdTrack?.TrackContent,
LatestTrackPlace = orderIdTrack?.TrackPlace,
LatestTrackTime = orderIdTrack?.TrackTime,
LatestTrackTimeZone = orderIdTrack?.TrackTimeZone,
LatestTrackTimeZone = FormatTimeZone(orderIdTrack?.TrackTimeZone),
NotifyUserNames = ToUserNames(x.NotifyUsers),
CreateTime = x.CreateTime,
@ -212,6 +212,7 @@ public class CompleteWarningService : ApplicationService
return string.Join(',', notifyUsers.ToObject<List<NotifyUserDto>>().Select(x => x.UserName));
}
// 构建缺失轨迹状态
List<TrackStatusDto> BuildMissingTrackStatus(string statusIds)
{
var trackStatus = statusIds.Split(',').Select(x =>
@ -229,6 +230,22 @@ public class CompleteWarningService : ApplicationService
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>

View File

@ -138,7 +138,7 @@ public class ReturnWarningService : ApplicationService
TrackContent = x.TrackContent,
TrackPlace = x.TrackPlace,
TrackTime = x.TrackTime,
TrackTimeZone = x.TrackTimeZone,
TrackTimeZone = FormatTimeZone(x.TrackTimeZone),
TrackCreateTime = x.TrackCreateTime,
// 轨迹信息(映射后)
PushTrackCode = x.PushTrackCode,
@ -176,6 +176,22 @@ public class ReturnWarningService : ApplicationService
return string.Empty;
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>

View File

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