From f82fabd9794997f921dd8994f5b66fc033e8299a Mon Sep 17 00:00:00 2001 From: zgw <13623675548@163.com> Date: Fri, 28 Aug 2026 10:41:36 +0800 Subject: [PATCH] fix(shadow): ignore map rows without site id --- .../com/ruoyi/shadow/facts/SqlServerShadowFactReader.java | 4 +++- .../com/ruoyi/shadow/facts/SqlServerShadowFactReaderTest.java | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ruoyi-wcs-shadow/src/main/java/com/ruoyi/shadow/facts/SqlServerShadowFactReader.java b/ruoyi-wcs-shadow/src/main/java/com/ruoyi/shadow/facts/SqlServerShadowFactReader.java index 86966cc..0a4bab7 100644 --- a/ruoyi-wcs-shadow/src/main/java/com/ruoyi/shadow/facts/SqlServerShadowFactReader.java +++ b/ruoyi-wcs-shadow/src/main/java/com/ruoyi/shadow/facts/SqlServerShadowFactReader.java @@ -199,7 +199,9 @@ public final class SqlServerShadowFactReader { + "FROM shadow_ro.v_device_srgv ORDER BY device_id, guid"; static final String MAP_SQL = "SELECT TOP (?) guid, site_id, x, y, z, value " - + "FROM shadow_ro.v_wcs_srgv_map ORDER BY site_id, guid"; + + "FROM shadow_ro.v_wcs_srgv_map " + + "WHERE NULLIF(LTRIM(RTRIM(CONVERT(nvarchar(256), site_id))), N'') " + + "IS NOT NULL ORDER BY site_id, guid"; private final JdbcTemplate jdbc; private final Clock clock; diff --git a/ruoyi-wcs-shadow/src/test/java/com/ruoyi/shadow/facts/SqlServerShadowFactReaderTest.java b/ruoyi-wcs-shadow/src/test/java/com/ruoyi/shadow/facts/SqlServerShadowFactReaderTest.java index b102cb3..0135761 100644 --- a/ruoyi-wcs-shadow/src/test/java/com/ruoyi/shadow/facts/SqlServerShadowFactReaderTest.java +++ b/ruoyi-wcs-shadow/src/test/java/com/ruoyi/shadow/facts/SqlServerShadowFactReaderTest.java @@ -219,6 +219,10 @@ class SqlServerShadowFactReaderTest { .contains("create_date_utc")); assertTrue(SqlServerShadowFactReader.JdbcFactSource.VEHICLE_SQL .contains("last_time_utc")); + assertTrue(SqlServerShadowFactReader.JdbcFactSource.MAP_SQL + .contains("NULLIF(LTRIM(RTRIM(CONVERT(nvarchar(256), site_id)))")); + assertTrue(SqlServerShadowFactReader.JdbcFactSource.MAP_SQL + .contains("IS NOT NULL")); String allSql = SqlServerShadowFactReader.JdbcFactSource.CLOCK_SQL + SqlServerShadowFactReader.JdbcFactSource.QUEUE_SQL_PREFIX + SqlServerShadowFactReader.JdbcFactSource.QUEUE_SQL_SUFFIX