diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/wte/controller/WeFishController.java b/backend/src/main/java/com/yfd/platform/qgc_env/wte/controller/WeFishController.java index ee809112..961199d1 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/wte/controller/WeFishController.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/wte/controller/WeFishController.java @@ -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) { diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/wte/entity/vo/WeFishStatTabVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/wte/entity/vo/WeFishStatTabVo.java new file mode 100644 index 00000000..e5961f0e --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_env/wte/entity/vo/WeFishStatTabVo.java @@ -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; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/wte/service/WeFishService.java b/backend/src/main/java/com/yfd/platform/qgc_env/wte/service/WeFishService.java index 22a3f189..3c24883c 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/wte/service/WeFishService.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/wte/service/WeFishService.java @@ -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 getWeFishDetailList(DataSourceRequest dataSourceRequest); + DataSourceResult getWeFishStatTabList(DataSourceRequest dataSourceRequest); + DataSourceResult getQgcFishListStat(DataSourceRequest dataSourceRequest); DataSourceResult getQgcWeFishPoint(DataSourceRequest dataSourceRequest); diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/wte/service/impl/WeFishServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_env/wte/service/impl/WeFishServiceImpl.java index 8e7cd3c9..c471e68c 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/wte/service/impl/WeFishServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/wte/service/impl/WeFishServiceImpl.java @@ -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 getWeFishStatTabList(DataSourceRequest dataSourceRequest) { + Map 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 list = microservicDynamicSQLMapper.getAllListWithResultType( + sql, + paramMap, + WeFishStatTabVo.class + ); + if (CollUtil.isNotEmpty(list)) { + for (WeFishStatTabVo item : list) { + item.setTyName(resolveTyName(toWeFishIntegerValue(item.getTy()))); + } + } + + DataSourceResult result = new DataSourceResult<>(); + result.setData(list); + result.setTotal(list == null ? 0L : list.size()); + result.setAggregates(new HashMap<>()); + return result; + } + @Override public DataSourceResult getQgcWeFishStatList(DataSourceRequest dataSourceRequest) { Map 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 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 buildWeFishDetailResult(List> rows) { List result = new ArrayList<>(); if (CollUtil.isEmpty(rows)) {