From 808953dc76fcb16320cc2dae8540f83a2fc38373 Mon Sep 17 00:00:00 2001 From: tangwei Date: Tue, 23 Jun 2026 09:00:10 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/FprMonitorServiceImpl.java | 65 +++++-------------- 1 file changed, 18 insertions(+), 47 deletions(-) diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fpr/service/impl/FprMonitorServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_env/fpr/service/impl/FprMonitorServiceImpl.java index a1503c2e..8bef55ff 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/fpr/service/impl/FprMonitorServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/fpr/service/impl/FprMonitorServiceImpl.java @@ -732,12 +732,8 @@ public class FprMonitorServiceImpl implements FprMonitorService { "src.ID AS id, " + "NVL(src.IS_DELETED, 0) AS isDeleted, " + "src.ID AS zyFishId, " + - "NVL((SELECT MIN(rel2.RVCD) " + - " FROM SD_FISHDICTORY_RLTN_B rel2 " + - " WHERE rel2.ZY_FISH_ID = src.ID " + - " AND rel2.RVCD <> 'ZY' " + - " AND NVL(rel2.IS_DELETED, 0) = 0), 'null') AS rvcd, " + - "CAST(NULL AS VARCHAR2(1000)) AS rvcdName, " + + "NVL(relAgg.rvcd, 'null') AS rvcd, " + + "NVL(relAgg.rvcdName, '') AS rvcdName, " + "src.NAME AS name, " + "src.TYPE AS type, " + "src.FAMILY AS family, " + @@ -772,6 +768,20 @@ public class FprMonitorServiceImpl implements FprMonitorService { "src.VLSR_TM AS vlsrTm, " + "src.SPAWN_MONTH AS spawnMonth " + "FROM SD_FISHDICTORY_B src " + + "LEFT JOIN ( " + + " SELECT relBase.ZY_FISH_ID AS zyFishId, " + + " MIN(relBase.RVCD) AS rvcd, " + + " LISTAGG(relBase.RVNM, ',') WITHIN GROUP (ORDER BY relBase.RVNM) AS rvcdName " + + " FROM ( " + + " SELECT DISTINCT rel.ZY_FISH_ID, rel.RVCD, rv.RVNM " + + " FROM SD_FISHDICTORY_RLTN_B rel " + + " LEFT JOIN SD_RVCD_DIC rv ON rv.RVCD = rel.RVCD " + + " WHERE rel.RVCD <> 'ZY' " + + " AND NVL(rel.IS_DELETED, 0) = 0 " + + " AND rv.RVNM IS NOT NULL " + + " ) relBase " + + " GROUP BY relBase.ZY_FISH_ID " + + ") relAgg ON relAgg.zyFishId = src.ID " + "WHERE NVL(src.IS_DELETED, 0) = 0 "; } @@ -787,49 +797,10 @@ public class FprMonitorServiceImpl implements FprMonitorService { } return; } - List fishIds = list.stream() - .map(item -> StrUtil.blankToDefault(item.getZyFishId(), item.getId())) - .filter(StrUtil::isNotBlank) - .distinct() - .toList(); - if (CollUtil.isEmpty(fishIds)) { - return; - } - Map paramMap = new HashMap<>(); - List placeholders = new ArrayList<>(); - for (int i = 0; i < fishIds.size(); i++) { - String key = "zyFishId" + i; - paramMap.put(key, fishIds.get(i)); - placeholders.add("#{map." + key + "}"); - } - String sql = "SELECT rel.ZY_FISH_ID AS zyFishId, rv.RVNM AS rvcdName " + - "FROM SD_FISHDICTORY_RLTN_B rel " + - "LEFT JOIN SD_RVCD_DIC rv ON rv.RVCD = rel.RVCD " + - "WHERE rel.ZY_FISH_ID IN (" + String.join(", ", placeholders) + ") " + - "AND rel.RVCD <> 'ZY' " + - "AND NVL(rel.IS_DELETED, 0) = 0 " + - "AND rv.RVNM IS NOT NULL"; - List> rows = microservicDynamicSQLMapper.getAllList(sql, paramMap); - Map> rvcdNameMap = new HashMap<>(); - for (Map row : rows) { - Object fishId = row.get("ZYFISHID"); - Object rvcdName = row.get("RVCDNAME"); - if (fishId == null || rvcdName == null) { - continue; - } - rvcdNameMap.computeIfAbsent(String.valueOf(fishId), key -> new ArrayList<>()) - .add(String.valueOf(rvcdName)); - } for (FprZyFishDicVo item : list) { - if (item == null) { - continue; + if (item != null && item.getRvcdName() == null) { + item.setRvcdName(""); } - String fishKey = StrUtil.blankToDefault(item.getZyFishId(), item.getId()); - List names = rvcdNameMap.getOrDefault(fishKey, new ArrayList<>()).stream() - .filter(StrUtil::isNotBlank) - .distinct() - .toList(); - item.setRvcdName(String.join(",", names)); } }