diff --git a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/controller/EngEqDataController.java b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/controller/EngEqDataController.java index c1b58dfd..90a161ad 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/controller/EngEqDataController.java +++ b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/controller/EngEqDataController.java @@ -58,6 +58,12 @@ public class EngEqDataController { return ResponseResult.successData(engEqDataService.getQgcHourVAlongKendoListCust(dataSourceRequest)); } + @PostMapping("/fid/GetKendoListCust") + @Operation(summary = "查询电站相关鱼类附件编码") + public ResponseResult getFidKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) { + return ResponseResult.successData(engEqDataService.getFidKendoListCust(dataSourceRequest)); + } + @PostMapping("/data/getEngLimit") @Operation(summary = "根据时间范围查询电站生态流量限值及来源") public ResponseResult getEngLimit(@RequestBody DataSourceRequest dataSourceRequest) { diff --git a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngFidVo.java b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngFidVo.java new file mode 100644 index 00000000..cc00fe03 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngFidVo.java @@ -0,0 +1,12 @@ +package com.yfd.platform.qgc_eng.eq.entity.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "电站鱼类附件编码") +public class EngFidVo { + + @Schema(description = "附件编码串,多个逗号分隔") + private String fid; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/EngEqDataService.java b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/EngEqDataService.java index d4063239..d2c7e261 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/EngEqDataService.java +++ b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/EngEqDataService.java @@ -25,6 +25,8 @@ public interface EngEqDataService { DataSourceResult getQgcHourVAlongKendoListCust(DataSourceRequest dataSourceRequest); + DataSourceResult getFidKendoListCust(DataSourceRequest dataSourceRequest); + EngEqRuleVo getEngLimit(DataSourceRequest dataSourceRequest); QgcQecStaticVo getQgcStaticData(DataSourceRequest dataSourceRequest, String type); diff --git a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/impl/EngEqDataServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/impl/EngEqDataServiceImpl.java index 8201f678..c647d75e 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/impl/EngEqDataServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/impl/EngEqDataServiceImpl.java @@ -13,6 +13,7 @@ import com.yfd.platform.common.enums.QecIntervalEnum; import com.yfd.platform.common.enums.ShowEnum; import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDataVo; import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDayIntervalVo; +import com.yfd.platform.qgc_eng.eq.entity.vo.EngFidVo; import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqHourIntervalVo; import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqIntervalVo; import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqRuleVo; @@ -177,6 +178,45 @@ public class EngEqDataServiceImpl implements EngEqDataService { return vo; } + @Override + public DataSourceResult getFidKendoListCust(DataSourceRequest dataSourceRequest) { + DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest(); + String stcd = loadOptions == null ? null : QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "stcd"); + if (StrUtil.isBlank(stcd)) { + throw new IllegalArgumentException("stcd 参数不能为空"); + } + + Map paramMap = new HashMap<>(); + paramMap.put("stcd", stcd); + List sourceList = microservicDynamicSQLMapper.getAllListWithResultType( + "SELECT FID AS fid " + + "FROM SD_ENGCONSTGENVF_B " + + "WHERE STCD = #{map.stcd} " + + " AND FID IS NOT NULL " + + " AND NVL(IS_DELETED, 0) = 0", + paramMap, + EngFidVo.class + ); + + List data = new ArrayList<>(); + if (CollUtil.isNotEmpty(sourceList)) { + data = sourceList.stream() + .map(EngFidVo::getFid) + .filter(StrUtil::isNotBlank) + .flatMap(fid -> Arrays.stream(fid.split(","))) + .map(String::trim) + .filter(StrUtil::isNotBlank) + .distinct() + .toList(); + } + + DataSourceResult result = new DataSourceResult<>(); + result.setData(data); + result.setTotal((long) data.size()); + result.setAggregates(new HashMap<>()); + return result; + } + @Override public QgcQecStaticVo getQgcStaticData(DataSourceRequest dataSourceRequest, String type) { List intervalList = queryStaticIntervals(dataSourceRequest, type);