【发布时间】:2019-03-15 23:34:36
【问题描述】:
我正在尝试基于ResourceId 和Category 的groupBy 并返回相应的可用最高严重级别。
严重性层次结构为“严重”>“主要”>“次要”。即按ResourceId & Category 分组后,我们需要返回该组的最高严重性。
case class Issue(
resourceId: String,
Category: String,
Severity: String,
incidentType: String
)
case class IssueStatus(
resourceId:String,
Hardware: Option[String],
Network: Option[String],
Software: Option[String]
)
List(
Issue("r1", "Network", "Critical", "incident1"),
Issue("r1", "Network", "Major", "incident2"),
Issue("r1", "Hardware", "Minor", "incident 3"),
Issue("r2", "Hardware", "Major", "incident 3"),
Issue("r3", "Software", "Minor", "incident 1"),
)
预期输出:
List(
IssueStatus("r1", Some("Minor"), Some("Critical"), None),
IssueStatus("r2", Some("Major"), None, None),
IssueStatus("r3", None, None, Some("Minor"))
)
更新:
类别映射到案例对象。即我们只有 3 个类别:网络、硬件和软件。
对于每个资源,我想知道每个类别中的最高严重性是什么。如果网络类别的严重性最高为严重,并且对于资源r5 没有软件和硬件类别的条目,则对应的IssueStatus 将类似于
IssueStatus("r5", None, Some("Critical"), None)
【问题讨论】:
-
你能把严重性设为枚举吗?
-
我也不明白问题和问题状态之间的转换......
-
@erip 类别映射到案例对象。即我们只有 3 个类别:网络、硬件和软件。对于每个资源,我想知道每个类别中的最高严重性是什么。如果网络类别的严重性最高为严重,并且对于资源 r5,软件和硬件类别没有条目,则相应的问题状态将类似于
IssueStatus("r1", None, Some("Critical"), None) -
您可能想了解枚举或代数数据类型。
标签: scala collections scala-collections