fix:修复运输时效预警明细累计运输时间计算时机
This commit is contained in:
parent
28381c6441
commit
40bc881d91
@ -112,7 +112,7 @@ public class TransportWarningHandler : ITransportWarningHandler, ITransientDepen
|
||||
orderDetails.ForEach(x =>
|
||||
{
|
||||
x.Status = TransportWarningStatus.已关闭.GetHashCode();
|
||||
x.CumulativeTimeSpan = (long)DateTime.Now.Subtract(x.StartTrackTime).TotalMilliseconds; //tips:完成态缓存累计运输时间
|
||||
x.CumulativeTimeSpan = x.CalcCumulativeTimeSpan(); //tips:完成态缓存累计运输时间
|
||||
});
|
||||
orderTasks.ForEach(x => x.IsClosed = true);
|
||||
needUpdateDetails.AddRange(orderDetails);
|
||||
@ -174,7 +174,7 @@ public class TransportWarningHandler : ITransportWarningHandler, ITransientDepen
|
||||
details.ForEach(x =>
|
||||
{
|
||||
x.Status = TransportWarningStatus.已关闭.GetHashCode();
|
||||
x.CumulativeTimeSpan = (long)DateTime.Now.Subtract(x.StartTrackTime).TotalMilliseconds; //tips:完成态缓存累计运输时间
|
||||
x.CumulativeTimeSpan = x.CalcCumulativeTimeSpan(); //tips:完成态缓存累计运输时间
|
||||
});
|
||||
needUpdateDetails.AddRange(details);
|
||||
continue;
|
||||
@ -382,7 +382,7 @@ public class TransportWarningHandler : ITransportWarningHandler, ITransientDepen
|
||||
detail.Status = TransportWarningStatus.超时完成.GetHashCode();
|
||||
|
||||
// 维护累计运输时间(由于变更为终止态,此时为最后一次变更)
|
||||
detail.CumulativeTimeSpan = (long)DateTime.Now.Subtract(detail.StartTrackTime).TotalMilliseconds;
|
||||
detail.CumulativeTimeSpan = detail.CalcCumulativeTimeSpan();
|
||||
|
||||
// 填充终止状态轨迹信息
|
||||
detail.EndTrackContentId = earliestTrack.TrackContentId;
|
||||
|
||||
@ -55,7 +55,7 @@ public sealed class TransportWarningDetailsIndex : IdBaseIndex
|
||||
public DateTime? EndTrackTime { get; set; } //截止轨迹发生时间
|
||||
public float? EndTrackTimeZone { get; set; } //截止轨迹发生时区
|
||||
|
||||
// // 实时属性 todo:后面拆出vo
|
||||
// // 实时属性vo
|
||||
// public int LatestTrackContentId { get; set; } //最新轨迹内容Id
|
||||
// public string LatestTrackContent { get; set; } //(冗余)最新轨迹内容名称
|
||||
// public DateTime LatestTrackTime { get; set; } //最新轨迹发生时间
|
||||
@ -74,6 +74,11 @@ public sealed class TransportWarningDetailsIndex : IdBaseIndex
|
||||
|
||||
public bool CanCompleted() => CompletedStatus.Contains(Status);
|
||||
|
||||
public long CalcCumulativeTimeSpan()
|
||||
{
|
||||
return (long)DateTime.Now.Subtract(StartTrackTime).TotalMilliseconds;
|
||||
}
|
||||
|
||||
// tips:计算并设置状态,后续维护到vo当中
|
||||
public int CalcStatus()
|
||||
{
|
||||
|
||||
@ -265,7 +265,15 @@ public class WarningDetailsEsRepository : IWarningDetailsEsRepository, ITransien
|
||||
u.Index(GlobalConst.TransportWarningDetailsIndex)
|
||||
.Query(q => q.Bool(b => b.Must(musts)))
|
||||
.Script(s => s
|
||||
.Source("ctx._source.status = params.status")
|
||||
.Source(@"ctx._source.status = params.status;
|
||||
if (ctx._source.startTrackTime != null) {
|
||||
// 替换日期字符串中的T
|
||||
String formattedDateString = ctx._source.startTrackTime.replace(""T"", "" "");
|
||||
SimpleDateFormat sdf = new SimpleDateFormat(""yyyy-MM-dd HH:mm:ss"");
|
||||
// 更新 cumulativeTimeSpan 字段
|
||||
ctx._source.cumulativeTimeSpan = new Date().getTime() - sdf.parse(formattedDateString).getTime() + 3600*8*1000;
|
||||
}"
|
||||
)
|
||||
.Params(p => p.Add("status", (int) TransportWarningStatus.已关闭))
|
||||
)
|
||||
);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user