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

This commit is contained in:
tangwei 2026-06-29 17:42:37 +08:00
parent 6865cf7317
commit 7e89aefe6a
4 changed files with 112 additions and 0 deletions

View File

@ -93,6 +93,12 @@ public class WeFishController {
return ResponseResult.successData(weFishService.getWeFishDetailList(dataSourceRequest));
}
@PostMapping("/we/fisht/statTab/GetKendoListCust")
@Operation(summary = "沿程鱼类变化情况二级页面tab页签数据")
public ResponseResult getWeFishStatTabList(@RequestBody DataSourceRequest dataSourceRequest) {
return ResponseResult.successData(weFishService.getWeFishStatTabList(dataSourceRequest));
}
@PostMapping("/we/fishList/stat/qgc/GetKendoListCust")
@Operation(summary = "环保部-水生生态调查-水生生态面板")
public ResponseResult getQgcFishListStat(@RequestBody DataSourceRequest dataSourceRequest) {

View File

@ -0,0 +1,20 @@
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 = "沿程鱼类变化情况二级页面tab页签数据")
public class WeFishStatTabVo {
@Schema(description = "鱼类类型")
private String ty;
@Schema(description = "鱼类类型名称")
private String tyName;
@Schema(description = "鱼类数量")
private Long num;
}

View File

@ -8,6 +8,7 @@ import com.yfd.platform.qgc_env.wte.entity.vo.WeFishDetailVo;
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.WeFishStatQgcVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeFishStatTabVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeFishTQgcVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeStaticsVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeTeSpecialAnimalVo;
@ -44,6 +45,8 @@ public interface WeFishService {
DataSourceResult<WeFishDetailVo> getWeFishDetailList(DataSourceRequest dataSourceRequest);
DataSourceResult<WeFishStatTabVo> getWeFishStatTabList(DataSourceRequest dataSourceRequest);
DataSourceResult<WeFishListStatQgcVo> getQgcFishListStat(DataSourceRequest dataSourceRequest);
DataSourceResult<WeFishPointQgcVo> getQgcWeFishPoint(DataSourceRequest dataSourceRequest);

View File

@ -16,6 +16,7 @@ import com.yfd.platform.qgc_env.wte.entity.vo.WeFishDetailVo;
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.WeFishStatQgcVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeFishStatTabVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeFishTQgcVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeRvcdYearVo;
import com.yfd.platform.qgc_env.wte.entity.vo.WeStaticsVo;
@ -464,6 +465,35 @@ public class WeFishServiceImpl implements WeFishService {
return result;
}
@Override
public DataSourceResult<WeFishStatTabVo> getWeFishStatTabList(DataSourceRequest dataSourceRequest) {
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 sql = buildWeFishStatTabSql(baseId, rstcd, rvcd, yr, paramMap);
List<WeFishStatTabVo> list = microservicDynamicSQLMapper.getAllListWithResultType(
sql,
paramMap,
WeFishStatTabVo.class
);
if (CollUtil.isNotEmpty(list)) {
for (WeFishStatTabVo item : list) {
item.setTyName(resolveTyName(toWeFishIntegerValue(item.getTy())));
}
}
DataSourceResult<WeFishStatTabVo> result = new DataSourceResult<>();
result.setData(list);
result.setTotal(list == null ? 0L : list.size());
result.setAggregates(new HashMap<>());
return result;
}
@Override
public DataSourceResult<WeFishStatQgcVo> getQgcWeFishStatList(DataSourceRequest dataSourceRequest) {
Map<String, Object> paramMap = new HashMap<>();
@ -1004,6 +1034,59 @@ public class WeFishServiceImpl implements WeFishService {
return sql.toString();
}
private String buildWeFishStatTabSql(String baseId,
String rstcd,
String rvcd,
String yr,
Map<String, Object> paramMap) {
StringBuilder sql = new StringBuilder();
sql.append("SELECT COUNT(DISTINCT fish.FTP) AS num, ")
.append("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 AS ty ")
.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_FISHDICTORY_B dict ON fish.FTP = dict.ID ")
.append(" AND NVL(dict.IS_DELETED, 0) = 0 ")
.append("WHERE NVL(section.USFL, 0) = 1 ");
if (StrUtil.isNotBlank(baseId)) {
paramMap.put("weFishStatTabBaseId", baseId);
sql.append("AND section.BASE_ID = #{map.weFishStatTabBaseId} ");
}
if (StrUtil.isNotBlank(rvcd)) {
paramMap.put("weFishStatTabRvcd", rvcd);
sql.append("AND section.HBRVCD = #{map.weFishStatTabRvcd} ");
}
if (StrUtil.isNotBlank(rstcd)) {
paramMap.put("weFishStatTabRstcd", rstcd);
sql.append("AND section.RSTCD = #{map.weFishStatTabRstcd} ");
}
if (StrUtil.isNotBlank(yr)) {
paramMap.put("weFishStatTabYr", yr);
sql.append("AND TO_CHAR(we.TM, 'yyyy') = #{map.weFishStatTabYr} ");
}
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 IS NOT NULL ")
.append("GROUP BY 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 ")
.append("ORDER BY ty ASC");
return sql.toString();
}
private List<WeFishDetailVo> buildWeFishDetailResult(List<Map<String, Object>> rows) {
List<WeFishDetailVo> result = new ArrayList<>();
if (CollUtil.isEmpty(rows)) {