fix(processing): 合法不支持类型改记 SKIPPED 终态,参考数据单列 RefData(ACM2-83)
- MsgKind.RefData 承接 SIS:3.1~3.14 类别码,白名单分派对齐 implementation.md - Unsupported 由 FAILED(UNSUPPORTED) 重试改为 SKIPPED(unsupported) 终态(US-03 AC2) - RefData 在 ReferenceDataProcessor 实装前保持可重试失败,不被吞为跳过 - 同步更新 IgnoreBranchTest / PipelineSmokeTest 旧断言,补 codec 分派回归
This commit is contained in:
@@ -66,6 +66,8 @@ class JacksonXmlCodec : XmlCodec {
|
||||
is MsgKind.Schd -> msg.schd?.let(SisWireMapper::scheduleBody)
|
||||
is MsgKind.Flop -> msg.flop?.let(SisWireMapper::flopPayload)
|
||||
MsgKind.Fdel -> msg.flop?.let(SisWireMapper::flopPayload)
|
||||
// 参考数据类别报文的正文结构随 13 类各异(ACM2-93 实装 ReferenceDataProcessor 时绑定)
|
||||
is MsgKind.RefData -> null
|
||||
is MsgKind.Unsupported -> null
|
||||
}
|
||||
|
||||
@@ -86,6 +88,8 @@ class JacksonXmlCodec : XmlCodec {
|
||||
* 子类型分派必须是**白名单**:未知的 SCHD 子类型不能静默当成全量日计划(DNLD)——
|
||||
* 那会让一条本该"暂不支持、等人工处置"的报文走最重的整包合并写入路径。
|
||||
* 空 STYP 按 legacy 约定视为 DNLD(该约定待与 SIS 逐类对拍确认,见 Q3)。
|
||||
* 静态参考数据类别码(`implementation.md`「静态参考数据」`SIS:3.1`~`3.14`)单列成
|
||||
* [MsgKind.RefData]:它们必须走参考数据处理(US-13),不得混入"不支持"跳过。
|
||||
*/
|
||||
private fun kindOf(type: String, styp: String): MsgKind = when (type) {
|
||||
"SCHD" -> when (styp) {
|
||||
@@ -95,6 +99,12 @@ class JacksonXmlCodec : XmlCodec {
|
||||
else -> MsgKind.Unsupported("SCHD-$styp")
|
||||
}
|
||||
"FLOP" -> if (styp == "FDEL") MsgKind.Fdel else MsgKind.Flop(styp)
|
||||
in REF_DATA_TYPES -> MsgKind.RefData(type)
|
||||
else -> MsgKind.Unsupported("$type-$styp")
|
||||
}
|
||||
|
||||
private val REF_DATA_TYPES = setOf(
|
||||
"COUL", "ARPT", "AIRL", "AIRC", "REGN", "ORGN", "FLTL",
|
||||
"TLST", "GLST", "SLST", "CLST", "BLST", "CHLT", "RSTA",
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user