diff --git a/backend/src/main/java/com/yfd/platform/config/SecurityConfig.java b/backend/src/main/java/com/yfd/platform/config/SecurityConfig.java index 10903a7e..3883e656 100644 --- a/backend/src/main/java/com/yfd/platform/config/SecurityConfig.java +++ b/backend/src/main/java/com/yfd/platform/config/SecurityConfig.java @@ -65,26 +65,26 @@ public class SecurityConfig { .requestMatchers("/system/user/auditUser").permitAll() .requestMatchers("/register/accessToken").permitAll() .requestMatchers("/api/oauth2/oauth/token").permitAll() - .requestMatchers("/dict/cache/**").permitAll() - .requestMatchers("/sys/psbmodulelbb/**").permitAll() - .requestMatchers("/base/operationLog/**").permitAll() +// .requestMatchers("/dict/cache/**").permitAll() +// .requestMatchers("/sys/psbmodulelbb/**").permitAll() +// .requestMatchers("/base/operationLog/**").permitAll() // .requestMatchers("/system/**").permitAll() - .requestMatchers("/qgcExport/**").permitAll() +// .requestMatchers("/qgcExport/**").permitAll() .requestMatchers("/eng/**").permitAll() - .requestMatchers("/eq/**").permitAll() +// .requestMatchers("/eq/**").permitAll() // .requestMatchers("/env/**").permitAll() // .requestMatchers("/warn/**").permitAll() // .requestMatchers("/threedroamb/**").permitAll() // .requestMatchers("/overview/**").permitAll() -// .requestMatchers("/wt/**").permitAll() -// .requestMatchers("/fb/**").permitAll() - .requestMatchers("/base/**").permitAll() + .requestMatchers("/wt/**").permitAll() + .requestMatchers("/fb/**").permitAll() +// .requestMatchers("/base/**").permitAll() // .requestMatchers("/zq/**").permitAll() -// .requestMatchers("/wq/**").permitAll() + .requestMatchers("/wq/**").permitAll() // .requestMatchers("/wte/**").permitAll() // .requestMatchers("/vd/**").permitAll() // .requestMatchers("/vap/**").permitAll() -// .requestMatchers("/fp/**").permitAll() + .requestMatchers("/fp/**").permitAll() // .requestMatchers("/fpr/**").permitAll() // .requestMatchers("/fh/**").permitAll() // .requestMatchers("/data/**").permitAll() diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/vo/EngVmsstbprptVo.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/vo/EngVmsstbprptVo.java index dc3bf624..384e18a4 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/vo/EngVmsstbprptVo.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/vo/EngVmsstbprptVo.java @@ -230,4 +230,19 @@ public class EngVmsstbprptVo implements Serializable { /** 叠梁门式进水口的最大淹没水深 */ private BigDecimal dlmmxwdp; + + /** 保护范围 */ + private String qxdbhfw; + /** 保护对象 */ + private String protobjName; + /** 保护外围长度 */ + private BigDecimal qxdbhwwcd; + /** 保护长度 */ + private BigDecimal qxdbhcd; + /** 保护河段 */ + private String bhhd; + /** 保护河流 */ + private String bhhl; + /** 保护核心长度 */ + private BigDecimal qxdbhhxcd; } diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fp/controller/FishPassageController.java b/backend/src/main/java/com/yfd/platform/qgc_env/fp/controller/FishPassageController.java index be3b1a60..dd46b13d 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/fp/controller/FishPassageController.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/fp/controller/FishPassageController.java @@ -127,7 +127,7 @@ public class FishPassageController { @GetMapping("/run/qgc/year/GetYearFpStatistics") @Operation(summary = "全过程过鱼统计总数,根据基地分组") - public ResponseResult getYearFpStatic(@RequestParam("year") String year) { - return ResponseResult.successData(fpRunService.getYearFpStatic(year)); + public ResponseResult getYearFpStatic(@RequestParam("year") String year,@RequestParam(value = "stcd",required = false) String stcd) { + return ResponseResult.successData(fpRunService.getYearFpStatic(year,stcd)); } } diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fp/service/FpRunService.java b/backend/src/main/java/com/yfd/platform/qgc_env/fp/service/FpRunService.java index 42b1054d..77a40565 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/fp/service/FpRunService.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/fp/service/FpRunService.java @@ -31,5 +31,5 @@ public interface FpRunService { DataSourceResult getFishSelect(DataSourceRequest dataSourceRequest); - List getYearFpStatic(String year); + List getYearFpStatic(String year,String stcd); } diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fp/service/impl/FpRunServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_env/fp/service/impl/FpRunServiceImpl.java index 1cf4c621..f0e2b67f 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/fp/service/impl/FpRunServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/fp/service/impl/FpRunServiceImpl.java @@ -309,7 +309,7 @@ public class FpRunServiceImpl implements FpRunService { String sql = buildQgcFpRunAnalysisDataSql(dataSourceRequest == null ? null : dataSourceRequest.getSort()); Page page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions); List rows = microservicDynamicSQLMapper.pageAllListWithResultType( - page,sql, + page, sql, paramMap, FpRunAnalysisVo.class ); @@ -359,11 +359,14 @@ public class FpRunServiceImpl implements FpRunService { } @Override - public List getYearFpStatic(String year) { + public List getYearFpStatic(String year, String stcd) { Map paramMap = new HashMap<>(); paramMap.put("year", StrUtil.trim(year)); + if (StrUtil.isNotBlank(stcd)) { + paramMap.put("stcd", StrUtil.trim(stcd)); + } List rows = microservicDynamicSQLMapper.getAllListWithResultType( - buildYearFpStatisticsSql(), + buildYearFpStatisticsSql(null,stcd), paramMap, FpFtpStatisticsVo.class ); @@ -1134,11 +1137,11 @@ public class FpRunServiceImpl implements FpRunService { String key = "fbFishRunP" + indexHolder[0]++; paramMap.put(key, text); return switch (operator) { - case "eq" -> "t.FLYR = TO_CHAR(TO_DATE(#{map." + key + "}, 'YYYY-MM-DD HH24:MI:SS'), 'YYYY')"; + case "eq" -> "t.FLYR = TO_CHAR(TO_DATE(#{map." + key + "}, 'YYYY-MM-DD HH24:MI:SS'), 'YYYY')"; case "neq" -> "t.FLYR <> TO_CHAR(TO_DATE(#{map." + key + "}, 'YYYY-MM-DD HH24:MI:SS'), 'YYYY')"; - case "gt" -> "t.FLYR > TO_CHAR(TO_DATE(#{map." + key + "}, 'YYYY-MM-DD HH24:MI:SS'), 'YYYY')"; + case "gt" -> "t.FLYR > TO_CHAR(TO_DATE(#{map." + key + "}, 'YYYY-MM-DD HH24:MI:SS'), 'YYYY')"; case "gte" -> "t.FLYR >= TO_CHAR(TO_DATE(#{map." + key + "}, 'YYYY-MM-DD HH24:MI:SS'), 'YYYY')"; - case "lt" -> "t.FLYR < TO_CHAR(TO_DATE(#{map." + key + "}, 'YYYY-MM-DD HH24:MI:SS'), 'YYYY')"; + case "lt" -> "t.FLYR < TO_CHAR(TO_DATE(#{map." + key + "}, 'YYYY-MM-DD HH24:MI:SS'), 'YYYY')"; case "lte" -> "t.FLYR <= TO_CHAR(TO_DATE(#{map." + key + "}, 'YYYY-MM-DD HH24:MI:SS'), 'YYYY')"; default -> ""; }; @@ -1221,7 +1224,7 @@ public class FpRunServiceImpl implements FpRunService { } private DataSourceResult queryQgcFpssrlAiRDetailList(DataSourceRequest dataSourceRequest, - DataSourceLoadOptionsBase loadOptions) { + DataSourceLoadOptionsBase loadOptions) { StringBuilder sql = new StringBuilder(); sql.append("SELECT ") .append(buildQgcFpssrlDetailSelectSql(dataSourceRequest == null ? null : dataSourceRequest.getSelect())) @@ -1321,7 +1324,7 @@ public class FpRunServiceImpl implements FpRunService { } private DataSourceResult queryQgcFpssrlAiRGroupList(DataSourceRequest dataSourceRequest, - DataSourceLoadOptionsBase loadOptions) { + DataSourceLoadOptionsBase loadOptions) { List groups = dataSourceRequest.getGroup(); GroupingInfo[] groupInfos = loadOptions == null ? new GroupingInfo[0] : loadOptions.getGroup(); @@ -2644,36 +2647,48 @@ public class FpRunServiceImpl implements FpRunService { "WHERE t.STCD = #{map.stcd}"; } - private String buildYearFpStatisticsSql() { - return "SELECT eng.BASE_ID AS baseId, " + - " hb.BASENAME AS baseName, " + - " a.FTP AS ftp, " + - " COALESCE(fishRv.NAME, relRv.FISH_NAME, fishZy.NAME, relZy.FISH_NAME, a.FTP) AS fishName, " + - " SUM(a.FCNT) AS fcnt " + - "FROM SD_FPSS_R a " + - "INNER JOIN ( " + - " SELECT STCD, MAX(RSTCD) AS RSTCD " + - " FROM SD_FPSS_B_H " + - " GROUP BY STCD " + - ") fpss ON fpss.STCD = a.STCD " + - "LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = fpss.RSTCD " + - "LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID " + - "LEFT JOIN SD_FISHDICTORY_RLTN_B relRv ON relRv.FISH_ID = a.FTP " + - " AND relRv.RVCD = eng.HBRVCD " + - " AND relRv.IS_DELETED = 0 " + - "LEFT JOIN SD_FISHDICTORY_B fishRv ON fishRv.ID = NVL(relRv.ZY_FISH_ID, relRv.FISH_ID) " + - " AND fishRv.IS_DELETED = 0 " + - "LEFT JOIN SD_FISHDICTORY_RLTN_B relZy ON relZy.FISH_ID = a.FTP " + - " AND relZy.RVCD = 'ZY' " + - " AND relZy.IS_DELETED = 0 " + - "LEFT JOIN SD_FISHDICTORY_B fishZy ON fishZy.ID = NVL(relZy.ZY_FISH_ID, relZy.FISH_ID) " + - " AND fishZy.IS_DELETED = 0 " + - "WHERE NVL(a.IS_DELETED, 0) = 0 " + - " AND (#{map.year} IS NULL OR #{map.year} = '' OR TO_CHAR(a.STRDT, 'YYYY') = #{map.year}) " + - "GROUP BY eng.BASE_ID, hb.BASENAME, a.FTP, COALESCE(fishRv.NAME, relRv.FISH_NAME, fishZy.NAME, relZy.FISH_NAME, a.FTP) " + - "ORDER BY eng.BASE_ID, a.FTP"; - } + private String buildYearFpStatisticsSql(String year, String stcd) { + StringBuilder sql = new StringBuilder(); + sql.append("SELECT eng.BASE_ID AS baseId, ") + .append("hb.BASENAME AS baseName, ") + .append("a.FTP AS ftp, ") + .append("COALESCE(fishRv.NAME, relRv.FISH_NAME, fishZy.NAME, relZy.FISH_NAME, a.FTP) AS fishName, ") + .append("SUM(a.FCNT) AS fcnt ") + .append("FROM SD_FPSS_R a ") + .append("INNER JOIN ( ") + .append(" SELECT STCD, MAX(RSTCD) AS RSTCD ") + .append(" FROM SD_FPSS_B_H ") + .append(" GROUP BY STCD ") + .append(") fpss ON fpss.STCD = a.STCD ") + .append("LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = fpss.RSTCD ") + .append("LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID ") + .append("LEFT JOIN SD_FISHDICTORY_RLTN_B relRv ON relRv.FISH_ID = a.FTP ") + .append(" AND relRv.RVCD = eng.HBRVCD ") + .append(" AND relRv.IS_DELETED = 0 ") + .append("LEFT JOIN SD_FISHDICTORY_B fishRv ON fishRv.ID = NVL(relRv.ZY_FISH_ID, relRv.FISH_ID) ") + .append(" AND fishRv.IS_DELETED = 0 ") + .append("LEFT JOIN SD_FISHDICTORY_RLTN_B relZy ON relZy.FISH_ID = a.FTP ") + .append(" AND relZy.RVCD = 'ZY' ") + .append(" AND relZy.IS_DELETED = 0 ") + .append("LEFT JOIN SD_FISHDICTORY_B fishZy ON fishZy.ID = NVL(relZy.ZY_FISH_ID, relZy.FISH_ID) ") + .append(" AND fishZy.IS_DELETED = 0 ") + .append("WHERE NVL(a.IS_DELETED, 0) = 0 "); + + // 年份条件(用占位符) + sql.append("AND (#{map.year} IS NULL OR #{map.year} = '' OR TO_CHAR(a.STRDT, 'YYYY') = #{map.year}) "); + + // 动态拼接 STCD 条件 + if (stcd != null && !stcd.isEmpty()) { + sql.append("AND a.STCD = #{map.stcd} "); + } + + sql.append("GROUP BY eng.BASE_ID, hb.BASENAME, a.FTP, ") + .append("COALESCE(fishRv.NAME, relRv.FISH_NAME, fishZy.NAME, relZy.FISH_NAME, a.FTP) ") + .append("ORDER BY eng.BASE_ID, a.FTP"); + + return sql.toString(); + } private String buildFpFishSelectSql() { return "SELECT DISTINCT t.ID AS id, t.NAME AS name " + "FROM ( " +