diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fb/service/impl/FbStationServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_env/fb/service/impl/FbStationServiceImpl.java index f3b3df70..80cc3408 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/fb/service/impl/FbStationServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/fb/service/impl/FbStationServiceImpl.java @@ -4654,21 +4654,32 @@ public class FbStationServiceImpl implements FbStationService { Map paramMap = new HashMap<>(); - if (StrUtil.isNotEmpty(sttp)) { - sql.append(" AND a.STTP = :sttp "); - paramMap.put("sttp", sttp); - } - if (StrUtil.isNotEmpty(rstcd)) { - sql.append(" AND a.RSTCD LIKE '%' || :rstcd || '%' "); - paramMap.put("rstcd", rstcd); - } - if (StrUtil.isNotEmpty(bldsttCcode)) { - sql.append(" AND a.BLDSTT_CODE = :bldsttCcode "); - paramMap.put("bldsttCcode", Integer.parseInt(bldsttCcode)); +// if (StrUtil.isNotEmpty(sttp)) { +// sql.append(" AND a.STTP = #{sttp} "); +// paramMap.put("sttp", sttp); +// } +// if (StrUtil.isNotEmpty(rstcd)) { +// sql.append(" AND a.RSTCD LIKE '%' || #{rstcd} || '%' "); +// paramMap.put("rstcd", rstcd); +// } +// if (StrUtil.isNotEmpty(bldsttCcode)) { +// sql.append(" AND a.BLDSTT_CODE = #{bldsttCcode} "); +// paramMap.put("bldsttCcode", Integer.parseInt(bldsttCcode)); +// } + + + + String filterSql = QgcQueryWrapperUtil.buildFilterCondition( + dataSourceRequest == null ? null : dataSourceRequest.getFilter(), + paramMap, + new int[]{0}, + this::mapWeFvColumn + ); + if (StrUtil.isNotBlank(filterSql)) { + sql.append("AND ").append(filterSql).append(" "); } sql.append(" ORDER BY NVL(siteSort.SORT, 999999) ASC "); - Page page = devRequest == null ? null : QgcQueryWrapperUtil.buildPage(devRequest, devRequest.getSkip(), devRequest.getTake()); List list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, FbTracingPointVo.class); @@ -4686,6 +4697,21 @@ public class FbStationServiceImpl implements FbStationService { return dataSourceResult; } + private String mapWeFvColumn(String field) { + if (StrUtil.isBlank(field)) { + return null; + } + return switch (field.toLowerCase()) { + case "rstcd" -> "a.RSTCD"; + case "stcd" -> "a.STCD"; + case "sttp" -> "a.STTP"; + case "bldsttCcode" -> "a.BLDSTT_CODE"; + case "lgtd" -> "a.LGTD"; + default -> null; + }; + } + + private List getPointLegend(List voList) { for (FbTracingPointVo pointVo : voList) { Integer bldstt = pointVo.getBldstt(); diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fh/service/impl/FhHabitatServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_env/fh/service/impl/FhHabitatServiceImpl.java index 3cca065f..0efb414b 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/fh/service/impl/FhHabitatServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/fh/service/impl/FhHabitatServiceImpl.java @@ -1933,7 +1933,7 @@ public class FhHabitatServiceImpl implements FhHabitatService { dataSourceResult.setTotal(0L); return dataSourceResult; } - + Map paramMap = new HashMap<>(); StringBuilder sql = new StringBuilder(); sql.append("SELECT ") .append("t.BASE_ID AS baseId, ") @@ -1967,6 +1967,15 @@ public class FhHabitatServiceImpl implements FhHabitatService { .append("WHERE t.LGTD IS NOT NULL AND t.LTTD IS NOT NULL "); DataSourceLoadOptionsBase loadOptions = dataSourceRequest.toDevRequest(); + String filterSql = QgcQueryWrapperUtil.buildFilterCondition( + dataSourceRequest == null ? null : dataSourceRequest.getFilter(), + paramMap, + new int[]{0}, + this::mapWeFvColumn + ); + if (StrUtil.isNotBlank(filterSql)) { + sql.append("AND ").append(filterSql).append(" "); + } Page page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake()); List vaVpList = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), new HashMap<>(), FhHaVapVo.class); @@ -1994,4 +2003,15 @@ public class FhHabitatServiceImpl implements FhHabitatService { dataSourceResult.setTotal(page == null ? vaVpList.size() : page.getTotal()); return dataSourceResult; } + + private String mapWeFvColumn(String field) { + if (StrUtil.isBlank(field)) { + return null; + } + return switch (field.toLowerCase()) { + case "sttpCode" -> "t.sttp"; + case "lgtd" -> "t.lgtd"; + default -> null; + }; + } }