add-validation:补充运输预警规则项目编辑(全量)校验

- 不同项目间不能存在起始和截止都重复的
 - 同一项目的起始和截止不允许重复
This commit is contained in:
hardstylewyl 2025-03-27 15:55:35 +08:00
parent c662d8e29a
commit ca35a86407

View File

@ -381,6 +381,20 @@ public class TransportWarningService : ApplicationService
}
var postRuleItems = TransportWarningSceneRuleItemBO.From(input);
var tuples = postRuleItems.Select(x => (x.StartTrackStatusId, x.EndTrackStatusId)).ToHashSet();
// 规则项目间不允许出现起始轨迹和截止轨迹都重复的项目
if (tuples.Count < postRuleItems.Count)
{
throw new BusinessException(message: "不允许出现轨迹状态和终止轨迹状态都重复的规则项目");
}
// 起始和截止不能相同
if (tuples.Any(x => x.StartTrackStatusId == x.EndTrackStatusId))
{
throw new BusinessException(message: "同一规则项目起始轨迹状态和截止轨迹状态不能相同");
}
var sceneBo = TransportWarningSceneBO.From(ruleScene);
await _transportWarningHandler.HandleEditAsync(rule, sceneBo, postRuleItems);