fix: 优化逻辑
This commit is contained in:
parent
15e81b746e
commit
d57f122cb5
@ -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, ")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user