feat: 沿程鱼类变化情况二级页面tab页签数据

This commit is contained in:
tangwei 2026-06-30 14:57:13 +08:00
parent e6954b8bac
commit 852a5c6e91
4 changed files with 139 additions and 0 deletions

View File

@ -117,6 +117,12 @@ public class WeFishController {
return ResponseResult.successData(weFishService.getQgcWeFishDetailList(dataSourceRequest)); return ResponseResult.successData(weFishService.getQgcWeFishDetailList(dataSourceRequest));
} }
@PostMapping("/we/fisht/qgcDetail/qgc/GetKendoListCust")
@Operation(summary = "环保部-沿程鱼类变化情况二级弹窗")
public ResponseResult getHbbQgcWeFishDetailList(@RequestBody DataSourceRequest dataSourceRequest) {
return ResponseResult.successData(weFishService.getHbbQgcWeFishDetailList(dataSourceRequest));
}
@PostMapping("/we/fisht/detail/GetKendoListCust") @PostMapping("/we/fisht/detail/GetKendoListCust")
@Operation(summary = "沿程鱼类变化情况二级弹窗") @Operation(summary = "沿程鱼类变化情况二级弹窗")
public ResponseResult getWeFishDetailList(@RequestBody DataSourceRequest dataSourceRequest) { public ResponseResult getWeFishDetailList(@RequestBody DataSourceRequest dataSourceRequest) {

View File

@ -0,0 +1,29 @@
package com.yfd.platform.qgc_env.wte.entity.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@Schema(description = "环保部-沿程鱼类变化情况二级弹窗")
public class WeFishHbbQgcDetailVo {
@Schema(description = "电站编码")
private String rstcd;
@Schema(description = "电站名称")
private String rstcdName;
@Schema(description = "断面编码")
private String stcd;
@Schema(description = "断面名称")
private String stnm;
@Schema(description = "鱼类名称")
private String name;
@Schema(description = "鱼类对应ID")
private String id;
}

View File

@ -7,6 +7,7 @@ import com.yfd.platform.qgc_env.wte.entity.vo.WeFishListStatQgcVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeCompareBarTableVo; import com.yfd.platform.qgc_env.wte.entity.vo.WeCompareBarTableVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeEnvmAutoMonitorVo; import com.yfd.platform.qgc_env.wte.entity.vo.WeEnvmAutoMonitorVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeFishDetailVo; import com.yfd.platform.qgc_env.wte.entity.vo.WeFishDetailVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeFishHbbQgcDetailVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeMsstbprptVo; import com.yfd.platform.qgc_env.wte.entity.vo.WeMsstbprptVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeFishPointQgcVo; import com.yfd.platform.qgc_env.wte.entity.vo.WeFishPointQgcVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeFishStatQgcVo; import com.yfd.platform.qgc_env.wte.entity.vo.WeFishStatQgcVo;
@ -56,6 +57,8 @@ public interface WeFishService {
DataSourceResult<WeFishDetailVo> getQgcWeFishDetailList(DataSourceRequest dataSourceRequest); DataSourceResult<WeFishDetailVo> getQgcWeFishDetailList(DataSourceRequest dataSourceRequest);
DataSourceResult<WeFishHbbQgcDetailVo> getHbbQgcWeFishDetailList(DataSourceRequest dataSourceRequest);
DataSourceResult<WeFishDetailVo> getWeFishDetailList(DataSourceRequest dataSourceRequest); DataSourceResult<WeFishDetailVo> getWeFishDetailList(DataSourceRequest dataSourceRequest);
DataSourceResult<WeFishStatTabVo> getWeFishStatTabList(DataSourceRequest dataSourceRequest); DataSourceResult<WeFishStatTabVo> getWeFishStatTabList(DataSourceRequest dataSourceRequest);

View File

@ -17,6 +17,7 @@ import com.yfd.platform.qgc_env.wte.entity.vo.WeEnvmAutoMonitorVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeFishListQgcVo; import com.yfd.platform.qgc_env.wte.entity.vo.WeFishListQgcVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeFishListStatQgcVo; import com.yfd.platform.qgc_env.wte.entity.vo.WeFishListStatQgcVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeFishDetailVo; import com.yfd.platform.qgc_env.wte.entity.vo.WeFishDetailVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeFishHbbQgcDetailVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeMsstbprptVo; import com.yfd.platform.qgc_env.wte.entity.vo.WeMsstbprptVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeFishPointQgcVo; import com.yfd.platform.qgc_env.wte.entity.vo.WeFishPointQgcVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeFishStatQgcVo; import com.yfd.platform.qgc_env.wte.entity.vo.WeFishStatQgcVo;
@ -760,6 +761,30 @@ public class WeFishServiceImpl implements WeFishService {
return result; return result;
} }
@Override
public DataSourceResult<WeFishHbbQgcDetailVo> getHbbQgcWeFishDetailList(DataSourceRequest dataSourceRequest) {
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
Page<?> page = loadOptions == null ? null
: QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
Map<String, Object> paramMap = new HashMap<>();
DataSourceRequest.FilterDescriptor filter = dataSourceRequest == null ? null : dataSourceRequest.getFilter();
String baseId = firstNonBlankWeFishFilter(filter, "baseId", "base_id");
String rstcd = getFirstWeFishFilterText(filter, "stcd");
String rvcd = firstNonBlankWeFishFilter(filter, "rvcd", "hbrvcd");
String yr = getFirstWeFishFilterText(filter, "yr");
String ty = getFirstWeFishFilterText(filter, "ty");
String sql = buildHbbQgcWeFishDetailSql(baseId, rstcd, rvcd, yr, ty, paramMap);
List<Map<String, Object>> rows = microservicDynamicSQLMapper.pageAllList(page, sql, paramMap);
DataSourceResult<WeFishHbbQgcDetailVo> result = new DataSourceResult<>();
result.setData(buildHbbQgcWeFishDetailResult(rows));
result.setTotal(page != null ? page.getTotal() : (long) rows.size());
result.setAggregates(new HashMap<>());
return result;
}
@Override @Override
public DataSourceResult<WeFishDetailVo> getWeFishDetailList(DataSourceRequest dataSourceRequest) { public DataSourceResult<WeFishDetailVo> getWeFishDetailList(DataSourceRequest dataSourceRequest) {
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest(); DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
@ -1411,6 +1436,63 @@ public class WeFishServiceImpl implements WeFishService {
return sql.toString(); return sql.toString();
} }
private String buildHbbQgcWeFishDetailSql(String baseId,
String rstcd,
String rvcd,
String yr,
String ty,
Map<String, Object> paramMap) {
StringBuilder sql = new StringBuilder();
sql.append("SELECT ")
.append("section.RSTCD AS rstcd, ")
.append("eng.ENNM AS rstcdName, ")
.append("section.STCD AS stcd, ")
.append("section.STNM AS stnm, ")
.append("dict.ZY_FISH_ID AS id ")
.append("FROM SD_WE_B_H section ")
.append("INNER JOIN SD_WE_R we ON section.STCD = we.STCD ")
.append(" AND NVL(we.IS_DELETED, 0) = 0 ")
.append(" AND NVL(we.STATUS, 1) = 1 ")
.append("INNER JOIN SD_WEFISH_R fish ON we.ID = fish.WER_ID ")
.append(" AND NVL(fish.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN SD_ENGINFO_B_H eng ON section.RSTCD = eng.STCD ")
.append(" AND NVL(eng.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN V_SD_FISHDICTORY_B dict ON fish.FTP = dict.FISH_ID ")
.append(" AND (section.HBRVCD = dict.RVCD OR dict.RVCD = 'ZY') ")
.append("WHERE NVL(section.USFL, 0) = 1 ")
.append("AND section.RSTCD IS NOT NULL ")
.append("AND dict.ZY_FISH_ID IS NOT NULL ");
if (StrUtil.isNotBlank(baseId)) {
paramMap.put("hbbQgcWeFishDetailBaseId", baseId);
sql.append("AND section.BASE_ID = #{map.hbbQgcWeFishDetailBaseId} ");
}
if (StrUtil.isNotBlank(rstcd)) {
paramMap.put("hbbQgcWeFishDetailRstcd", rstcd);
sql.append("AND section.RSTCD = #{map.hbbQgcWeFishDetailRstcd} ");
}
if (StrUtil.isNotBlank(rvcd)) {
paramMap.put("hbbQgcWeFishDetailRvcd", rvcd);
sql.append("AND section.HBRVCD = #{map.hbbQgcWeFishDetailRvcd} ");
}
if (StrUtil.isNotBlank(yr)) {
paramMap.put("hbbQgcWeFishDetailYr", yr);
sql.append("AND TO_CHAR(we.TM, 'yyyy') = #{map.hbbQgcWeFishDetailYr} ");
}
if (StrUtil.isNotBlank(ty)) {
paramMap.put("hbbQgcWeFishDetailTy", ty);
sql.append("AND CASE ")
.append("WHEN dict.SPEC_ORIGIN = 2 THEN '1' ")
.append("WHEN dict.SPEC_ORIGIN = 1 AND NVL(dict.PTYPE, -1) <> 6 THEN '2' ")
.append("WHEN dict.SPEC_ORIGIN = 1 AND dict.PTYPE = 6 THEN '3' ")
.append("END = #{map.hbbQgcWeFishDetailTy} ");
}
sql.append("GROUP BY section.RSTCD, eng.ENNM, section.STCD, section.STNM,dict.ZY_FISH_ID ")
.append("ORDER BY eng.ENNM ASC NULLS LAST, section.STNM ASC NULLS LAST");
return sql.toString();
}
private String buildWeFishStatTabSql(String baseId, private String buildWeFishStatTabSql(String baseId,
String rstcd, String rstcd,
String rvcd, String rvcd,
@ -1505,6 +1587,25 @@ public class WeFishServiceImpl implements WeFishService {
return result; return result;
} }
private List<WeFishHbbQgcDetailVo> buildHbbQgcWeFishDetailResult(List<Map<String, Object>> rows) {
List<WeFishHbbQgcDetailVo> result = new ArrayList<>();
if (CollUtil.isEmpty(rows)) {
return result;
}
Map<String, String> fishNameMap = loadWeFishNameMap();
for (Map<String, Object> row : rows) {
String fishIds = safeWeFishString(firstPresentWeFishValue(row, "ID", "id"));
result.add(new WeFishHbbQgcDetailVo()
.setRstcd(safeWeFishString(firstPresentWeFishValue(row, "RSTCD", "rstcd")))
.setRstcdName(safeWeFishString(firstPresentWeFishValue(row, "RSTCDNAME", "rstcdName")))
.setStcd(safeWeFishString(firstPresentWeFishValue(row, "STCD", "stcd")))
.setStnm(safeWeFishString(firstPresentWeFishValue(row, "STNM", "stnm")))
.setId(fishIds)
.setName(resolveWeFishNames(fishIds, fishNameMap)));
}
return result;
}
private List<WeFishDetailVo.StationItem> buildWeFishStationItems(String stcdText, String stnmText) { private List<WeFishDetailVo.StationItem> buildWeFishStationItems(String stcdText, String stnmText) {
List<WeFishDetailVo.StationItem> result = new ArrayList<>(); List<WeFishDetailVo.StationItem> result = new ArrayList<>();
if (StrUtil.isBlank(stcdText) || StrUtil.isBlank(stnmText)) { if (StrUtil.isBlank(stcdText) || StrUtil.isBlank(stnmText)) {