From 40bc881d91b38c04e90af796fd15479fae66fef7 Mon Sep 17 00:00:00 2001 From: hardstylewyl <827778732@qq.com> Date: Thu, 20 Mar 2025 17:01:33 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E8=BF=90=E8=BE=93?= =?UTF-8?q?=E6=97=B6=E6=95=88=E9=A2=84=E8=AD=A6=E6=98=8E=E7=BB=86=E7=B4=AF?= =?UTF-8?q?=E8=AE=A1=E8=BF=90=E8=BE=93=E6=97=B6=E9=97=B4=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E6=97=B6=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Warning/Handlers/TransportWarningHandler.cs | 6 +++--- .../Transport/TransportWarningDetailsIndex.cs | 7 ++++++- .../Repositories/WarningDetailsEsRepository.cs | 10 +++++++++- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/SJZY.Track.Application/Services/Warning/Handlers/TransportWarningHandler.cs b/src/SJZY.Track.Application/Services/Warning/Handlers/TransportWarningHandler.cs index fb12aea4..26b75035 100644 --- a/src/SJZY.Track.Application/Services/Warning/Handlers/TransportWarningHandler.cs +++ b/src/SJZY.Track.Application/Services/Warning/Handlers/TransportWarningHandler.cs @@ -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; diff --git a/src/SJZY.Track.Domain/Aggregates/WarningAggregate/Transport/TransportWarningDetailsIndex.cs b/src/SJZY.Track.Domain/Aggregates/WarningAggregate/Transport/TransportWarningDetailsIndex.cs index e4e16481..8e4e49af 100644 --- a/src/SJZY.Track.Domain/Aggregates/WarningAggregate/Transport/TransportWarningDetailsIndex.cs +++ b/src/SJZY.Track.Domain/Aggregates/WarningAggregate/Transport/TransportWarningDetailsIndex.cs @@ -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() { diff --git a/src/SJZY.Track.Repository/Repositories/WarningDetailsEsRepository.cs b/src/SJZY.Track.Repository/Repositories/WarningDetailsEsRepository.cs index 556a025d..d44da56a 100644 --- a/src/SJZY.Track.Repository/Repositories/WarningDetailsEsRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/WarningDetailsEsRepository.cs @@ -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.已关闭)) ) );