Merge remote-tracking branch 'origin/S04轨迹预警' into S04轨迹预警

This commit is contained in:
钟喜旺 2024-07-26 16:13:15 +08:00
commit 7cac2c55ee
5 changed files with 13 additions and 9 deletions

View File

@ -3,6 +3,7 @@ using SJZY.Track.Application.Contract.Dtos.Forewarning;
using SJZY.Track.Domain.Aggregates.ForewarningAggregate; using SJZY.Track.Domain.Aggregates.ForewarningAggregate;
using SJZY.Track.Domain.Aggregates.KPIAreaAggregate; using SJZY.Track.Domain.Aggregates.KPIAreaAggregate;
using SJZY.Track.Domain.Dtos.Forewarning; using SJZY.Track.Domain.Dtos.Forewarning;
using Volo.Abp.AutoMapper;
namespace SJZY.Track.Application.AutoMapper; namespace SJZY.Track.Application.AutoMapper;
@ -10,7 +11,8 @@ public class ForewarningMapperProfile :Profile
{ {
public ForewarningMapperProfile() public ForewarningMapperProfile()
{ {
CreateMap<CreateWarningInput, WarningEntity>(MemberList.None); CreateMap<CreateWarningInput, WarningEntity>(MemberList.None)
.Ignore(x => x.WarningFactors);
CreateMap<WarningTimeSpanDto, WarningRuleEntity>(MemberList.None); CreateMap<WarningTimeSpanDto, WarningRuleEntity>(MemberList.None);
CreateMap<RuleAreaEntity, AreaDto>(); CreateMap<RuleAreaEntity, AreaDto>();
CreateMap<UpdateRuleAreaRequest, RuleAreaEntity>(MemberList.None); CreateMap<UpdateRuleAreaRequest, RuleAreaEntity>(MemberList.None);

View File

@ -33,6 +33,8 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa
LatestTrackPlace = x.LatestTrackPlace, LatestTrackPlace = x.LatestTrackPlace,
LatestTrackTime = x.LatestTrackTime, LatestTrackTime = x.LatestTrackTime,
LatestTrackTimeZone = x.LatestTrackTimeZone, LatestTrackTimeZone = x.LatestTrackTimeZone,
ArrivalCountry = x.ArrivalCountry,
ArrivalCity = x.ArrivalCity,
}); });
if (orders.Count == 0) return; if (orders.Count == 0) return;

View File

@ -23,14 +23,14 @@ public class ForewarningHelper
{ {
throw new BusinessException(message: "轨迹状态区间或因素列表为空"); throw new BusinessException(message: "轨迹状态区间或因素列表为空");
} }
var len = statusSpans.Count * factors.Select(f => f.FactorValue.Count).Aggregate((pre, cur) => pre * cur); var len = statusSpans.Count * factors.Select(f => f.FactorValue.Count).Aggregate((pre, cur) => pre * cur);
if (len == 0) if (len == 0)
{ {
throw new BusinessException(message: "轨迹状态区间或因素列表为空"); throw new BusinessException(message: "轨迹状态区间或因素列表为空");
} }
var rules = new List<WarningRuleEntity>(len); var rules = Enumerable.Repeat(new WarningRuleEntity(), len).ToList();
var repeat = len / statusSpans.Count; var repeat = len / statusSpans.Count;
@ -39,7 +39,7 @@ public class ForewarningHelper
foreach (var factor in factors) foreach (var factor in factors)
{ {
var factorValueCount = factor.FactorValue.Count; var factorValueCount = factor.FactorValue.Count;
// repeat梯度下降,与times成反比关系 // repeat梯度下降,与times成反比关系
repeat /= factor.FactorValue.Count; repeat /= factor.FactorValue.Count;
var times = len / repeat / factorValueCount; var times = len / repeat / factorValueCount;
@ -52,13 +52,11 @@ public class ForewarningHelper
private static void FillStatus(List<WarningNitifyDto> statusSpans, List<WarningRuleEntity> rules, int repeat) private static void FillStatus(List<WarningNitifyDto> statusSpans, List<WarningRuleEntity> rules, int repeat)
{ {
for (var i = 0; i < statusSpans.Count; i++) var row = 0;
foreach (var span in statusSpans)
{ {
var span = statusSpans[i]; for (var i = 0; i < repeat; i++, row++)
for (var j = 0; j < repeat; j++)
{ {
var row = i * repeat + j;
rules[row].StartTrackStatusId = span.StartTrackStatusId; rules[row].StartTrackStatusId = span.StartTrackStatusId;
rules[row].EndTrackStatusId = span.EndTrackStatusId; rules[row].EndTrackStatusId = span.EndTrackStatusId;
} }

View File

@ -2,6 +2,7 @@ using SJZY.Track.Domain.Enums;
namespace SJZY.Track.Domain.Aggregates.ForewarningAggregate; namespace SJZY.Track.Domain.Aggregates.ForewarningAggregate;
[SugarTable("t_warning_factor")]
public class WarningFactorEntity : IFullAuditedBasicEntitys, IEntity public class WarningFactorEntity : IFullAuditedBasicEntitys, IEntity
{ {
/// <summary> /// <summary>

View File

@ -2,6 +2,7 @@ using SJZY.Track.Domain.Enums;
namespace SJZY.Track.Domain.Aggregates.ForewarningAggregate; namespace SJZY.Track.Domain.Aggregates.ForewarningAggregate;
[SugarTable("t_warning_notify")]
public class WarningNotifyEntity : IFullAuditedBasicEntitys, IEntity public class WarningNotifyEntity : IFullAuditedBasicEntitys, IEntity
{ {
/// <summary> /// <summary>