Merge remote-tracking branch 'origin/S04轨迹预警' into S04轨迹预警
This commit is contained in:
commit
7cac2c55ee
@ -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);
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user