fix: 优化地图查询接口逻辑

This commit is contained in:
tangwei 2026-07-07 14:40:04 +08:00
parent 8c9f25c90f
commit 6c521d9d84
3 changed files with 48 additions and 25 deletions

View File

@ -4705,7 +4705,7 @@ public class FbStationServiceImpl implements FbStationService {
case "rstcd" -> "a.RSTCD";
case "stcd" -> "a.STCD";
case "sttp" -> "a.STTP";
case "bldsttCcode" -> "a.BLDSTT_CODE";
case "bldsttccode" -> "a.BLDSTT_CODE";
case "lgtd" -> "a.LGTD";
default -> null;
};

View File

@ -1977,7 +1977,7 @@ public class FhHabitatServiceImpl implements FhHabitatService {
sql.append("AND ").append(filterSql).append(" ");
}
Page<?> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
List<FhHaVapVo> vaVpList = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), new HashMap<>(), FhHaVapVo.class);
List<FhHaVapVo> vaVpList = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, FhHaVapVo.class);
for (FhHaVapVo vo : vaVpList) {
String bldsttCcode = vo.getBldsttCcode();
@ -2009,7 +2009,7 @@ public class FhHabitatServiceImpl implements FhHabitatService {
return null;
}
return switch (field.toLowerCase()) {
case "sttpCode" -> "t.sttp";
case "sttpcode" -> "t.STTP_CODE";
case "lgtd" -> "t.lgtd";
default -> null;
};

View File

@ -26,6 +26,7 @@ import com.yfd.platform.qgc_env.wt.mapper.SdWtMonitorMapper;
import com.yfd.platform.qgc_env.wt.utils.SiteAvoidanceUtils;
import com.yfd.platform.qgc_env.wt.service.SdWtMonitorService;
import com.yfd.platform.utils.QgcQueryWrapperUtil;
import com.yfd.platform.utils.SecurityUtils;
import jakarta.annotation.Resource;
import lombok.Data;
import org.springframework.jdbc.core.JdbcTemplate;
@ -2954,7 +2955,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
" wt.LTTD AS lttd,\n" +
" wt.WT_DEVICE_TYPE AS deviceType,\n" +
" wt.ELEV AS dtmel,\n" +
" wt.FHSTNM AS fhstnm,\n" +
// " wt.FHSTNM AS fhstnm,\n" +
" wt.MWAY AS mway,\n" +
" eng.RVCD AS rvcd,\n" +
" eng.ADDVCD AS addvcd,\n" +
@ -2971,21 +2972,30 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
"LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = wt.RSTCD AND NVL(eng.IS_DELETED, 0) = 0\n" +
"LEFT JOIN SD_WTENGRLTN_B rel ON rel.STCD = wt.STCD AND NVL(rel.IS_DELETED, 0) = 0\n" +
"WHERE NVL(wt.IS_DELETED, 0) = 0 AND wt.STTP IN ('WTRV', 'WTVT') AND wt.LGTD IS NOT NULL AND wt.LTTD IS NOT NULL ");
if (StrUtil.isNotBlank(sttpCode)) {
sql.append(" AND wt.STTP = #{map.sttpCode} ");
}
if (StrUtil.isNotBlank(dtinType)) {
sql.append(" AND wt.DTIN_TYPE = #{map.dtinType} ");
}
Map<String, Object> paramMap = new HashMap<>();
if (StrUtil.isNotBlank(sttpCode)) {
paramMap.put("sttpCode", sttpCode);
}
if (StrUtil.isNotBlank(dtinType)) {
paramMap.put("dtinType", dtinType);
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(" ");
}
// if (StrUtil.isNotBlank(sttpCode)) {
// sql.append(" AND wt.STTP = #{map.sttpCode} ");
// }
// if (StrUtil.isNotBlank(dtinType)) {
// sql.append(" AND wt.DTIN_TYPE = #{map.dtinType} ");
// }
//
// Map<String, Object> paramMap = new HashMap<>();
// if (StrUtil.isNotBlank(sttpCode)) {
// paramMap.put("sttpCode", sttpCode);
// }
// if (StrUtil.isNotBlank(dtinType)) {
// paramMap.put("dtinType", dtinType);
// }
List<DataSourceRequest.SortDescriptor> sort = dataSourceRequest.getSort();
if (sort != null && !sort.isEmpty()) {
@ -3035,4 +3045,17 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
return dataSourceResult;
}
private String mapWeFvColumn(String field) {
if (StrUtil.isBlank(field)) {
return null;
}
return switch (field.toLowerCase()) {
case "sttpcode" -> "wt.STTP";
case "dtintype" -> "wt.DTIN_TYPE";
case "lgtd" -> "wt.LGTD";
case "fhstcd" -> "wt.FHSTCD";
default -> null;
};
}
}