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 "rstcd" -> "a.RSTCD";
case "stcd" -> "a.STCD"; case "stcd" -> "a.STCD";
case "sttp" -> "a.STTP"; case "sttp" -> "a.STTP";
case "bldsttCcode" -> "a.BLDSTT_CODE"; case "bldsttccode" -> "a.BLDSTT_CODE";
case "lgtd" -> "a.LGTD"; case "lgtd" -> "a.LGTD";
default -> null; default -> null;
}; };

View File

@ -1977,7 +1977,7 @@ public class FhHabitatServiceImpl implements FhHabitatService {
sql.append("AND ").append(filterSql).append(" "); sql.append("AND ").append(filterSql).append(" ");
} }
Page<?> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake()); 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) { for (FhHaVapVo vo : vaVpList) {
String bldsttCcode = vo.getBldsttCcode(); String bldsttCcode = vo.getBldsttCcode();
@ -2009,7 +2009,7 @@ public class FhHabitatServiceImpl implements FhHabitatService {
return null; return null;
} }
return switch (field.toLowerCase()) { return switch (field.toLowerCase()) {
case "sttpCode" -> "t.sttp"; case "sttpcode" -> "t.STTP_CODE";
case "lgtd" -> "t.lgtd"; case "lgtd" -> "t.lgtd";
default -> null; 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.utils.SiteAvoidanceUtils;
import com.yfd.platform.qgc_env.wt.service.SdWtMonitorService; import com.yfd.platform.qgc_env.wt.service.SdWtMonitorService;
import com.yfd.platform.utils.QgcQueryWrapperUtil; import com.yfd.platform.utils.QgcQueryWrapperUtil;
import com.yfd.platform.utils.SecurityUtils;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.Data; import lombok.Data;
import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.JdbcTemplate;
@ -115,7 +116,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
"t.JCDT AS jcdt, " + "t.JCDT AS jcdt, " +
"t.WDDT AS wddt, " + "t.WDDT AS wddt, " +
"t.BLDSTT_CODE AS bldsttCode, " + "t.BLDSTT_CODE AS bldsttCode, " +
"CASE WHEN t.BLDSTT_CODE =2 THEN '已建' WHEN t.BLDSTT_CODE =1 THEN '在建' ELSE '未建/规划' END AS bldsttCcodeName, "+ "CASE WHEN t.BLDSTT_CODE =2 THEN '已建' WHEN t.BLDSTT_CODE =1 THEN '在建' ELSE '未建/规划' END AS bldsttCcodeName, " +
"t.INV AS inv, " + "t.INV AS inv, " +
"t.INVINMN AS invinmn, " + "t.INVINMN AS invinmn, " +
"t.INTRODUCE AS introduce, " + "t.INTRODUCE AS introduce, " +
@ -127,7 +128,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
"t.DTIN_TYPE AS dtinType, " + "t.DTIN_TYPE AS dtinType, " +
"t.DTIN_TM AS dtinTm, " + "t.DTIN_TM AS dtinTm, " +
"t.MWAY AS mway, " + "t.MWAY AS mway, " +
"CASE NVL(t.MWAY, 0) WHEN 1 THEN '人工' WHEN 2 THEN '自动' ELSE '未知' END AS mwayName , "+ "CASE NVL(t.MWAY, 0) WHEN 1 THEN '人工' WHEN 2 THEN '自动' ELSE '未知' END AS mwayName , " +
"t.STINDX AS stindx, " + "t.STINDX AS stindx, " +
"t.ORDER_INDEX AS orderIndex, " + "t.ORDER_INDEX AS orderIndex, " +
"t.DMSTCD AS dmstcd, " + "t.DMSTCD AS dmstcd, " +
@ -445,7 +446,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
} }
sql.append(buildYearDetailOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort())); sql.append(buildYearDetailOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
Page<?> page = QgcQueryWrapperUtil.buildPage(loadOptions,loadOptions.getSkip(), loadOptions.getTake()); Page<?> page = QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
List<SdYearDetailVO> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, SdYearDetailVO.class); List<SdYearDetailVO> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, SdYearDetailVO.class);
for (SdYearDetailVO vo : list) { for (SdYearDetailVO vo : list) {
vo.setActualTemp(vo.getWt()); vo.setActualTemp(vo.getWt());
@ -490,7 +491,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
} }
sql.append(buildMonthDetailOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort())); sql.append(buildMonthDetailOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
Page<?> page = QgcQueryWrapperUtil.buildPage(loadOptions,loadOptions.getSkip(), loadOptions.getTake()); Page<?> page = QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
List<SdMonthDetailVO> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, SdMonthDetailVO.class); List<SdMonthDetailVO> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, SdMonthDetailVO.class);
DataSourceResult<SdMonthDetailVO> result = new DataSourceResult<>(); DataSourceResult<SdMonthDetailVO> result = new DataSourceResult<>();
result.setData(list); result.setData(list);
@ -518,7 +519,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
Map<String, Object> paramMap = new HashMap<>(); Map<String, Object> paramMap = new HashMap<>();
paramMap.put("stcd", stcd); paramMap.put("stcd", stcd);
WtrvVo vo = (WtrvVo) microservicDynamicSQLMapper.getOneBySqlWithResultType(sql, paramMap, WtrvVo.class); WtrvVo vo = (WtrvVo) microservicDynamicSQLMapper.getOneBySqlWithResultType(sql, paramMap, WtrvVo.class);
if (vo == null ) { if (vo == null) {
return buildDefaultWtrvVo(stcd); return buildDefaultWtrvVo(stcd);
} }
return vo; return vo;
@ -577,7 +578,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
paramMap.put("baseId", baseId); paramMap.put("baseId", baseId);
} }
Page<?> page = QgcQueryWrapperUtil.buildPage(loadOptions,loadOptions.getSkip(), loadOptions.getTake()); Page<?> page = QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
List<WtFishVo> wtFishVoList = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, WtFishVo.class); List<WtFishVo> wtFishVoList = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, WtFishVo.class);
String hbrvcd = wtFishVoList.isEmpty() ? null : wtFishVoList.get(0).getHbrvcd(); String hbrvcd = wtFishVoList.isEmpty() ? null : wtFishVoList.get(0).getHbrvcd();
@ -850,7 +851,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
} }
sql.append(buildVmsstbprptOrderBySql(dataSourceRequest.getSort())); sql.append(buildVmsstbprptOrderBySql(dataSourceRequest.getSort()));
Page<?> page = QgcQueryWrapperUtil.buildPage(loadOptions,loadOptions.getSkip(), loadOptions.getTake()); Page<?> page = QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
List<SdWtBaseInfoVO> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, SdWtBaseInfoVO.class); List<SdWtBaseInfoVO> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, SdWtBaseInfoVO.class);
DataSourceResult<SdWtBaseInfoVO> result = new DataSourceResult<>(); DataSourceResult<SdWtBaseInfoVO> result = new DataSourceResult<>();
@ -1153,7 +1154,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
appendCxDetailOrderBy(sql, dataSourceRequest.getSort()); appendCxDetailOrderBy(sql, dataSourceRequest.getSort());
DataSourceLoadOptionsBase loadOptions = dataSourceRequest.toDevRequest(); DataSourceLoadOptionsBase loadOptions = dataSourceRequest.toDevRequest();
Page<?> page = QgcQueryWrapperUtil.buildPage(loadOptions,loadOptions.getSkip(), loadOptions.getTake()); Page<?> page = QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
List<WtCxDetailRow> rowList = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, WtCxDetailRow.class); List<WtCxDetailRow> rowList = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, WtCxDetailRow.class);
List<Double> verticalList = getVerticals(rowList, wtDeviceType); List<Double> verticalList = getVerticals(rowList, wtDeviceType);
@ -2954,7 +2955,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
" wt.LTTD AS lttd,\n" + " wt.LTTD AS lttd,\n" +
" wt.WT_DEVICE_TYPE AS deviceType,\n" + " wt.WT_DEVICE_TYPE AS deviceType,\n" +
" wt.ELEV AS dtmel,\n" + " wt.ELEV AS dtmel,\n" +
" wt.FHSTNM AS fhstnm,\n" + // " wt.FHSTNM AS fhstnm,\n" +
" wt.MWAY AS mway,\n" + " wt.MWAY AS mway,\n" +
" eng.RVCD AS rvcd,\n" + " eng.RVCD AS rvcd,\n" +
" eng.ADDVCD AS addvcd,\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_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" + "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 "); "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<>(); Map<String, Object> paramMap = new HashMap<>();
if (StrUtil.isNotBlank(sttpCode)) { String filterSql = QgcQueryWrapperUtil.buildFilterCondition(
paramMap.put("sttpCode", sttpCode); dataSourceRequest == null ? null : dataSourceRequest.getFilter(),
} paramMap,
if (StrUtil.isNotBlank(dtinType)) { new int[]{0},
paramMap.put("dtinType", dtinType); 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(); List<DataSourceRequest.SortDescriptor> sort = dataSourceRequest.getSort();
if (sort != null && !sort.isEmpty()) { if (sort != null && !sort.isEmpty()) {
@ -3035,4 +3045,17 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
return dataSourceResult; 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;
};
}
} }