change-validation:完整预警规则项目编辑(全量)验证
- 同一个主体下同一个检查点,订单类型不允许出现交集
This commit is contained in:
parent
cb73040247
commit
9e48bbf9ac
@ -243,11 +243,21 @@ public class CompleteWarningService : ApplicationService
|
|||||||
}
|
}
|
||||||
|
|
||||||
var bos = CompleteWarningRuleItemBO.From(input);
|
var bos = CompleteWarningRuleItemBO.From(input);
|
||||||
// 同一个主体下,规则项目的检查点不能重复
|
// 同一个主体下同一个检查点,订单类型不允许出现交集
|
||||||
var checkPointTrackStatusIds = bos.Select(x => x.CheckPointTrackStatusId).ToHashSet();
|
foreach (var group in bos.GroupBy(x=>x.CheckPointTrackStatusId))
|
||||||
if (checkPointTrackStatusIds.Count < bos.Count)
|
|
||||||
{
|
{
|
||||||
throw new BusinessException(message: "完整预警规则项目检查点不能重复!");
|
var allOrderTypes = new HashSet<int>();
|
||||||
|
var count = 0;
|
||||||
|
foreach (var orderTypes in group.Select(x => x.OrderTypes))
|
||||||
|
{
|
||||||
|
allOrderTypes.UnionWith(orderTypes);
|
||||||
|
count += orderTypes.Count;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (allOrderTypes.Count < count)
|
||||||
|
{
|
||||||
|
throw new BusinessException(message: "同一个检查点下,订单类型不允许出现交集!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await _completeWarningHandler.HandleEditAsync(rule, bos);
|
await _completeWarningHandler.HandleEditAsync(rule, bos);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user