change-params:回传预警明细增加是否超时状态
add-validation: 约束回传预警中起始轨迹时间不能大于等于时效 change-validation:同步文档中预警时效范围配置
This commit is contained in:
parent
cfccd59ce1
commit
c395261d2f
@ -39,7 +39,7 @@ public class EditReturnWarningRuleItemDto
|
||||
/// <summary>
|
||||
/// 时效(单位h)
|
||||
/// </summary>
|
||||
[Range(0.1, 99, ErrorMessage = "回传时效范围0.1-99")]
|
||||
[Range(0.1f, 99.9f, ErrorMessage = "回传时效范围0.1-99.9")]
|
||||
public float ReturnTimeSpan { get; set; }
|
||||
|
||||
/// <summary>
|
||||
|
||||
@ -133,6 +133,12 @@ public sealed class ReturnWarningDetailsDto
|
||||
/// </summary>
|
||||
public string TrackCreateTimeSpan { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否超时,只有命中了kpi考核的才有可能超时
|
||||
/// 如果为超时则标红【实际回传】字段
|
||||
/// </summary>
|
||||
public bool IsTimeout { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否有KPI考核
|
||||
/// </summary>
|
||||
|
||||
@ -5,22 +5,22 @@ namespace SJZY.Track.Application.Contract.Dtos.Warning.Transport;
|
||||
|
||||
public class EditTransportWarningSceneRuleItemInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 预警规主体id
|
||||
/// </summary>
|
||||
[IdRequired]
|
||||
public int WarningId { get; set; }
|
||||
/// <summary>
|
||||
/// 预警规主体id
|
||||
/// </summary>
|
||||
[IdRequired]
|
||||
public int WarningId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 运输预警场景id
|
||||
/// </summary>
|
||||
[IdRequired]
|
||||
public int SceneId { get; set; }
|
||||
/// <summary>
|
||||
/// 运输预警场景id
|
||||
/// </summary>
|
||||
[IdRequired]
|
||||
public int SceneId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 预警规则配置项目(列表内容传递)
|
||||
/// </summary>
|
||||
public List<EditTransportWarningSceneRuleItemDto> Items { get; set; } = new();
|
||||
/// <summary>
|
||||
/// 预警规则配置项目(列表内容传递)
|
||||
/// </summary>
|
||||
public List<EditTransportWarningSceneRuleItemDto> Items { get; set; } = new();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -28,38 +28,39 @@ public class EditTransportWarningSceneRuleItemInput
|
||||
/// </summary>
|
||||
public class EditTransportWarningSceneRuleItemDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 规则项目id(传0视为新增)
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
/// <summary>
|
||||
/// 规则项目id(传0视为新增)
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 起始轨迹状态Id
|
||||
/// </summary>
|
||||
[IdRequired]
|
||||
public int StartTrackStatusId { get; set; }
|
||||
/// <summary>
|
||||
/// 起始轨迹状态Id
|
||||
/// </summary>
|
||||
[IdRequired]
|
||||
public int StartTrackStatusId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 截止轨迹状态Id
|
||||
/// </summary>
|
||||
[IdRequired]
|
||||
public int EndTrackStatusId { get; set; }
|
||||
/// <summary>
|
||||
/// 截止轨迹状态Id
|
||||
/// </summary>
|
||||
[IdRequired]
|
||||
public int EndTrackStatusId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 时效 (单位h)
|
||||
/// </summary>
|
||||
[Range(0.1, float.MaxValue, ErrorMessage = "时效必须大于0.1")]
|
||||
public float TransportTimeSpan { get; set; }
|
||||
/// <summary>
|
||||
/// 时效 (单位h)
|
||||
/// 注意:需要大于起始轨迹生成预警时间
|
||||
/// </summary>
|
||||
[Range(0.1f, 9999.9f, ErrorMessage = "时效必须范围0.1-9999.9")]
|
||||
public float TransportTimeSpan { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 起始轨迹生成预警时间 (单位h)
|
||||
/// </summary>
|
||||
[Range(0.1, float.MaxValue, ErrorMessage = "起始轨迹生成预警时间必须大于0.1")]
|
||||
public float StartTrackWarningTimeSpan { get; set; }
|
||||
/// <summary>
|
||||
/// 起始轨迹生成预警时间 (单位h)
|
||||
/// </summary>
|
||||
[Range(0.1f, 9999.9f, ErrorMessage = "起始轨迹生成预警时间范围0.1-9999.9")]
|
||||
public float StartTrackWarningTimeSpan { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 通知对象用户集合
|
||||
/// </summary>
|
||||
[MinLength(1, ErrorMessage = "通知对象用户集合不能为空")]
|
||||
public List<NotifyUserDto> NotifyUsers { get; set; } = new();
|
||||
/// <summary>
|
||||
/// 通知对象用户集合
|
||||
/// </summary>
|
||||
[MinLength(1, ErrorMessage = "通知对象用户集合不能为空")]
|
||||
public List<NotifyUserDto> NotifyUsers { get; set; } = new();
|
||||
}
|
||||
|
||||
@ -156,6 +156,7 @@ public class ReturnWarningService : ApplicationService
|
||||
ActualReturnTimeSpan = FormatTimeSpan(x.ActualReturnTimeSpan),
|
||||
SystemReturnTimeSpan = FormatTimeSpan(x.SystemReturnTimeSpan),
|
||||
TrackCreateTimeSpan = FormatTimeSpan(x.TrackCreateTimeSpan),
|
||||
IsTimeout = x.HasTimeout(),
|
||||
|
||||
// 具体描述
|
||||
TrackReturnTime = x.TrackReturnTime,
|
||||
|
||||
@ -378,6 +378,12 @@ public class TransportWarningService : ApplicationService
|
||||
[HttpPost("EditTransportWarningSceneRuleItem")]
|
||||
public async Task<UnifyResultDto> EditTransportWarningSceneRuleItem(EditTransportWarningSceneRuleItemInput input)
|
||||
{
|
||||
// 起始轨迹生成预警时间不能大于时效
|
||||
if (input.Items.Count > 0 && input.Items.Any(x => x.StartTrackWarningTimeSpan >= x.TransportTimeSpan))
|
||||
{
|
||||
throw new BusinessException(message: "起始轨迹生成预警时间不能大于等于时效,请检查");
|
||||
}
|
||||
|
||||
var rule = await _warningRuleRepository.GetWarningRuleByIdAsync(input.WarningId, WarningRuleType.运输时效预警);
|
||||
if (rule == null)
|
||||
{
|
||||
|
||||
@ -62,7 +62,6 @@ public class ReturnWarningDetailsIndex : IdBaseIndex
|
||||
|
||||
//计算属性
|
||||
public long? ActualReturnTimeSpan { get; set; } //实际回传用时(单位毫秒)
|
||||
|
||||
public long? SystemReturnTimeSpan { get; set; } //系统回传用时 (单位毫秒)
|
||||
public long TrackCreateTimeSpan { get; set; } //轨迹创建用时(单位毫秒)
|
||||
|
||||
@ -81,6 +80,13 @@ public class ReturnWarningDetailsIndex : IdBaseIndex
|
||||
SystemReturnTimeSpan = (long?) (TrackReturnTime.Value - TrackCreateTime).TotalMilliseconds;
|
||||
}
|
||||
|
||||
public bool HasTimeout()
|
||||
{
|
||||
if (ActualReturnTimeSpan.HasValue && ReturnTimeSpan.HasValue)
|
||||
return TimeSpan.FromMilliseconds(ActualReturnTimeSpan.Value) > TimeSpan.FromHours(ReturnTimeSpan.Value);
|
||||
return false;
|
||||
}
|
||||
|
||||
// 匹配硅胶字段
|
||||
public bool MatchExtra(string? compareFields, string? extra)
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user