fix: 全过程过鱼统计总数优化
This commit is contained in:
parent
9add0769b9
commit
b8e8fc5eaf
@ -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()
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@ -31,5 +31,5 @@ public interface FpRunService {
|
||||
|
||||
DataSourceResult<FpFishSelectVo> getFishSelect(DataSourceRequest dataSourceRequest);
|
||||
|
||||
List<YearFpStatisticsVo> getYearFpStatic(String year);
|
||||
List<YearFpStatisticsVo> getYearFpStatic(String year,String stcd);
|
||||
}
|
||||
|
||||
@ -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<FpRunAnalysisVo> rows = microservicDynamicSQLMapper.pageAllListWithResultType(
|
||||
page,sql,
|
||||
page, sql,
|
||||
paramMap,
|
||||
FpRunAnalysisVo.class
|
||||
);
|
||||
@ -359,11 +359,14 @@ public class FpRunServiceImpl implements FpRunService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<YearFpStatisticsVo> getYearFpStatic(String year) {
|
||||
public List<YearFpStatisticsVo> getYearFpStatic(String year, String stcd) {
|
||||
Map<String, Object> paramMap = new HashMap<>();
|
||||
paramMap.put("year", StrUtil.trim(year));
|
||||
if (StrUtil.isNotBlank(stcd)) {
|
||||
paramMap.put("stcd", StrUtil.trim(stcd));
|
||||
}
|
||||
List<FpFtpStatisticsVo> 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<FpFpssrlQueryVo> 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<FpFpssrlQueryVo> queryQgcFpssrlAiRGroupList(DataSourceRequest dataSourceRequest,
|
||||
DataSourceLoadOptionsBase loadOptions) {
|
||||
DataSourceLoadOptionsBase loadOptions) {
|
||||
List<DataSourceRequest.GroupDescriptor> 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 ( " +
|
||||
|
||||
Loading…
Reference in New Issue
Block a user