fix: 优化逻辑

This commit is contained in:
tangwei 2026-09-03 17:41:05 +08:00
parent 15e81b746e
commit d57f122cb5

View File

@ -1190,6 +1190,9 @@ public class WeFishServiceImpl implements WeFishService {
end = parseDateTimeSafely(endTime); end = parseDateTimeSafely(endTime);
} }
boolean hasTime = start != null && end != null; boolean hasTime = start != null && end != null;
// 前端可传动物字典ID集合(SD_ANIMALDICTORY_B.ID)仅查询这些动物数据
List<String> animalList = getWeFishFilterTexts(
dataSourceRequest == null ? null : dataSourceRequest.getFilter(), "animalList");
Map<String, Object> paramMap = new HashMap<>(); Map<String, Object> paramMap = new HashMap<>();
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
@ -1206,15 +1209,15 @@ public class WeFishServiceImpl implements WeFishService {
.append("'WVA' AS sttpMap, ") .append("'WVA' AS sttpMap, ")
.append("'WVA' AS sttpCode, ") .append("'WVA' AS sttpCode, ")
.append("ai.RVCD AS rvcd, ") .append("ai.RVCD AS rvcd, ")
.append("ai.ADDVCD AS addvcd, ") // .append("ai.ADDVCD AS addvcd, ")
.append("ai.HBRVCD AS hbrvcd, ") // .append("ai.HBRVCD AS hbrvcd, ")
.append("ai.BASE_ID AS baseId, ") .append("ai.BASE_ID AS baseId, ")
.append("'wva' AS anchoPointState, ") .append("'wva' AS anchoPointState, ")
.append("agg.animals AS animals, ") .append("agg.animals AS animals, ")
.append("TO_CHAR(agg.latestTm, 'yyyy-mm-dd hh24:mi:ss') AS tm ") .append("TO_CHAR(agg.latestTm, 'yyyy-mm-dd hh24:mi:ss') AS tm ")
.append("FROM SD_AIMONITOR_B_H ai ") .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 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(" SELECT t.stcd, ")
.append(" LISTAGG(t.anm, ',') WITHIN GROUP (ORDER BY t.anm) AS animals, ") .append(" LISTAGG(t.anm, ',') WITHIN GROUP (ORDER BY t.anm) AS animals, ")
.append(" MAX(t.tm) AS latestTm ") .append(" MAX(t.tm) AS latestTm ")
@ -1230,6 +1233,15 @@ public class WeFishServiceImpl implements WeFishService {
paramMap.put("weAnimalPointEndTime", end); paramMap.put("weAnimalPointEndTime", end);
sql.append(" AND w.TM BETWEEN #{map.weAnimalPointStartTime} AND #{map.weAnimalPointEndTime} "); sql.append(" AND w.TM BETWEEN #{map.weAnimalPointStartTime} AND #{map.weAnimalPointEndTime} ");
} }
if (CollUtil.isNotEmpty(animalList)) {
List<String> 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 ") sql.append(" GROUP BY w.STCD, a.NAME ")
.append(" ) t ") .append(" ) t ")
.append(" GROUP BY t.stcd ") .append(" GROUP BY t.stcd ")
@ -1279,7 +1291,7 @@ public class WeFishServiceImpl implements WeFishService {
); );
StringBuilder sql = new StringBuilder(); 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.baseId AS baseId, r.baseName AS baseName, ")
.append("r.rvcd AS rvcd, r.rvcdName AS rvcdName, ") .append("r.rvcd AS rvcd, r.rvcdName AS rvcdName, ")
.append("r.hbrvcd AS hbrvcd, r.hbrvcdName AS hbrvcdName, ") .append("r.hbrvcd AS hbrvcd, r.hbrvcdName AS hbrvcdName, ")