fix(processing): Wave1 — IgnoreRules/ROUT截断/Q9文档/schd FLTR 数组(ACM2-94/88/81/96)
REGN/RSTA/EROR 退出忽略清单;ROUT/ERUT 升序留 4 且不落 SCAT/SCDT;C-1/Q9 统一库方清除;flushSchd 聚合成无 key 的 FLTR 数组。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -29,8 +29,9 @@ class KafkaDeliveryPort(
|
||||
producer.send(ProducerRecord(topic, key, payloadJson)).get()
|
||||
}
|
||||
|
||||
override fun sendKafkaSchd(topic: String, key: String, payloadJson: String) {
|
||||
producer.send(ProducerRecord(topic, key, payloadJson)).get()
|
||||
override fun sendKafkaSchd(topic: String, payloadJson: String) {
|
||||
// C-9:不设 message key
|
||||
producer.send(ProducerRecord<String, String>(topic, null, payloadJson)).get()
|
||||
}
|
||||
|
||||
override fun sendKafkaNull(topic: String, key: String) {
|
||||
|
||||
+23
-5
@@ -8,6 +8,7 @@ import com.gzzn.omms.msgexchange.domain.MsgEvent
|
||||
import com.gzzn.omms.msgexchange.domain.ProcState
|
||||
import com.gzzn.omms.msgexchange.domain.ProcStatus
|
||||
import com.gzzn.omms.msgexchange.domain.Targets
|
||||
import com.gzzn.omms.msgexchange.domain.flight.FlightStateEngine
|
||||
import com.gzzn.omms.msgexchange.domain.flight.FlightMainRow
|
||||
import com.gzzn.omms.msgexchange.domain.flight.FlightSnapshot
|
||||
import com.gzzn.omms.msgexchange.domain.flight.FlightState
|
||||
@@ -679,7 +680,12 @@ class JdbcFlightStateRepository(
|
||||
|
||||
val collections = linkedMapOf<String, List<Map<String, String>>>()
|
||||
COLLECTIONS.forEach { (key, spec) ->
|
||||
collections[key] = loadDetails(flid, key, spec)
|
||||
val loaded = loadDetails(flid, key, spec)
|
||||
collections[key] = if (key == "ROUT" || key == "ERUT") {
|
||||
FlightStateEngine.normalizeRouteCollection(loaded)
|
||||
} else {
|
||||
loaded
|
||||
}
|
||||
}
|
||||
return FlightSnapshot(
|
||||
flid = main.flid,
|
||||
@@ -812,8 +818,20 @@ class JdbcFlightStateRepository(
|
||||
private fun replaceDetails(snapshot: FlightSnapshot, now: Instant) {
|
||||
val flid = snapshot.flid
|
||||
COLLECTIONS.forEach { (key, spec) ->
|
||||
ds.update("DELETE FROM ${spec.table} WHERE flid = ?", { ps -> ps.setString(1, flid) })
|
||||
val items = snapshot.collections[key].orEmpty()
|
||||
if (spec.routeKind != null) {
|
||||
ds.update(
|
||||
"DELETE FROM ${spec.table} WHERE flid = ? AND route_kind = ?",
|
||||
{ ps ->
|
||||
ps.setString(1, flid)
|
||||
ps.setString(2, spec.routeKind)
|
||||
},
|
||||
)
|
||||
} else {
|
||||
ds.update("DELETE FROM ${spec.table} WHERE flid = ?", { ps -> ps.setString(1, flid) })
|
||||
}
|
||||
val items = snapshot.collections[key].orEmpty().let { raw ->
|
||||
if (key == "ROUT" || key == "ERUT") FlightStateEngine.normalizeRouteCollection(raw) else raw
|
||||
}
|
||||
items.forEachIndexed { ordinal, item ->
|
||||
val cols = mutableListOf("flid", "ordinal", "source_seq")
|
||||
val vals = mutableListOf<Any?>(flid)
|
||||
@@ -915,8 +933,8 @@ class JdbcFlightStateRepository(
|
||||
"DELY" to DetailSpec("flight_delay", listOf("code", "strt", "dura", "remc"), null),
|
||||
"ABTM" to DetailSpec("flight_bridge_op", listOf("abdg", "abop", "aotm"), "ASNO"),
|
||||
"CHOT" to DetailSpec("flight_chock_op", listOf("chid", "chst", "chtm"), "CSNO"),
|
||||
"ROUT" to DetailSpec("flight_route_point", listOf("apcd", "scat", "scdt"), "RTNO", routeKind = "ROUT"),
|
||||
"ERUT" to DetailSpec("flight_route_point", listOf("apcd", "scat", "scdt"), "RTNO", routeKind = "ERUT"),
|
||||
"ROUT" to DetailSpec("flight_route_point", listOf("apcd"), "RTNO", routeKind = "ROUT"),
|
||||
"ERUT" to DetailSpec("flight_route_point", listOf("apcd"), "RTNO", routeKind = "ERUT"),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ import jakarta.inject.Singleton
|
||||
@Requires(property = "msgx.stubs", value = "true")
|
||||
@Singleton
|
||||
class StubDeliveryPort : DeliveryPort {
|
||||
data class Sent(val topic: String, val key: String, val payload: String?)
|
||||
data class Sent(val topic: String, val key: String?, val payload: String?)
|
||||
|
||||
val sent = mutableListOf<Sent>()
|
||||
val tombstones: List<Sent> get() = sent.filter { it.payload == null }
|
||||
@@ -24,8 +24,8 @@ class StubDeliveryPort : DeliveryPort {
|
||||
sent += Sent(topic, key, payloadJson)
|
||||
}
|
||||
|
||||
override fun sendKafkaSchd(topic: String, key: String, payloadJson: String) {
|
||||
sent += Sent(topic, key, payloadJson)
|
||||
override fun sendKafkaSchd(topic: String, payloadJson: String) {
|
||||
sent += Sent(topic, null, payloadJson)
|
||||
}
|
||||
|
||||
override fun sendKafkaNull(topic: String, key: String) {
|
||||
|
||||
Reference in New Issue
Block a user