diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/wte/service/impl/WeFishServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_env/wte/service/impl/WeFishServiceImpl.java index 4c1665e1..80d01616 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/wte/service/impl/WeFishServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/wte/service/impl/WeFishServiceImpl.java @@ -1190,6 +1190,9 @@ public class WeFishServiceImpl implements WeFishService { end = parseDateTimeSafely(endTime); } boolean hasTime = start != null && end != null; + // 前端可传动物字典ID集合(SD_ANIMALDICTORY_B.ID),仅查询这些动物数据 + List animalList = getWeFishFilterTexts( + dataSourceRequest == null ? null : dataSourceRequest.getFilter(), "animalList"); Map paramMap = new HashMap<>(); StringBuilder sql = new StringBuilder(); @@ -1206,15 +1209,15 @@ public class WeFishServiceImpl implements WeFishService { .append("'WVA' AS sttpMap, ") .append("'WVA' AS sttpCode, ") .append("ai.RVCD AS rvcd, ") - .append("ai.ADDVCD AS addvcd, ") - .append("ai.HBRVCD AS hbrvcd, ") +// .append("ai.ADDVCD AS addvcd, ") +// .append("ai.HBRVCD AS hbrvcd, ") .append("ai.BASE_ID AS baseId, ") .append("'wva' AS anchoPointState, ") .append("agg.animals AS animals, ") .append("TO_CHAR(agg.latestTm, 'yyyy-mm-dd hh24:mi:ss') AS tm ") .append("FROM SD_AIMONITOR_B_H ai ") .append("LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = ai.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 ") - .append("LEFT JOIN ( ") + .append("INNER JOIN ( ") .append(" SELECT t.stcd, ") .append(" LISTAGG(t.anm, ',') WITHIN GROUP (ORDER BY t.anm) AS animals, ") .append(" MAX(t.tm) AS latestTm ") @@ -1230,6 +1233,15 @@ public class WeFishServiceImpl implements WeFishService { paramMap.put("weAnimalPointEndTime", end); sql.append(" AND w.TM BETWEEN #{map.weAnimalPointStartTime} AND #{map.weAnimalPointEndTime} "); } + if (CollUtil.isNotEmpty(animalList)) { + List placeholders = new ArrayList<>(); + for (int i = 0; i < animalList.size(); i++) { + String key = "weAnimalPointAnimal_" + i; + placeholders.add("#{map." + key + "}"); + paramMap.put(key, animalList.get(i)); + } + sql.append(" AND a.ID IN (").append(String.join(", ", placeholders)).append(") "); + } sql.append(" GROUP BY w.STCD, a.NAME ") .append(" ) t ") .append(" GROUP BY t.stcd ") @@ -1279,7 +1291,7 @@ public class WeFishServiceImpl implements WeFishService { ); StringBuilder sql = new StringBuilder(); - sql.append("SELECT r.id AS id, r.name AS name, r.code AS code, ") + sql.append("SELECT r.id AS id, r.name AS name, r.ID AS code, ") .append("r.baseId AS baseId, r.baseName AS baseName, ") .append("r.rvcd AS rvcd, r.rvcdName AS rvcdName, ") .append("r.hbrvcd AS hbrvcd, r.hbrvcdName AS hbrvcdName, ")