diff --git a/backend/src/main/java/com/yfd/platform/config/SwaggerConfig.java b/backend/src/main/java/com/yfd/platform/config/SwaggerConfig.java index 8c8c0bc2..443e06a6 100644 --- a/backend/src/main/java/com/yfd/platform/config/SwaggerConfig.java +++ b/backend/src/main/java/com/yfd/platform/config/SwaggerConfig.java @@ -87,7 +87,7 @@ public class SwaggerConfig { @Bean public GroupedOpenApi groupEnvVDApi() { return GroupedOpenApi.builder() - .group("3.3.1 全过程-生态环保数据服务-过鱼设施-过鱼监测") + .group("3.3.1 全过程-生态环保数据服务-过鱼设施-过鱼监测(VD视频模块)") .packagesToScan("com.yfd.platform.qgc_env.vd.controller") .build(); } diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdHbrvDicController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdHbrvDicController.java index e52b8e93..e16a3edf 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdHbrvDicController.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdHbrvDicController.java @@ -1,6 +1,7 @@ package com.yfd.platform.qgc_base.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yfd.platform.common.DataSourceRequest; import com.yfd.platform.annotation.Log; import com.yfd.platform.config.ResponseResult; import com.yfd.platform.qgc_base.domain.SdHbrvDic; @@ -112,4 +113,10 @@ public class SdHbrvDicController { @RequestParam(required = false) String baseid) { return ResponseResult.successData(hbrvDicService.regDropdown(hbrvnm, baseid)); } -} \ No newline at end of file + + @PostMapping("/wbsb/getHbrvdList") + @Operation(summary = "根据基地查询基地流域列表") + public ResponseResult getHbrvdList(@RequestBody DataSourceRequest dataSourceRequest) { + return ResponseResult.successData(hbrvDicService.getHbrvdList(dataSourceRequest)); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/entity/vo/HbrvWbsVo.java b/backend/src/main/java/com/yfd/platform/qgc_base/entity/vo/HbrvWbsVo.java new file mode 100644 index 00000000..61d77520 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/entity/vo/HbrvWbsVo.java @@ -0,0 +1,21 @@ +package com.yfd.platform.qgc_base.entity.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "基地流域树节点") +public class HbrvWbsVo { + + @Schema(description = "基地流域编码") + private String hbrvcd; + + @Schema(description = "基地流域名称") + private String hbrvcdName; + + @Schema(description = "基地编码") + private String baseId; + + @Schema(description = "基地名称") + private String baseName; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdHbrvDicService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdHbrvDicService.java index ea932c43..c38003c0 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdHbrvDicService.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdHbrvDicService.java @@ -2,7 +2,9 @@ package com.yfd.platform.qgc_base.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; import com.yfd.platform.qgc_base.domain.SdHbrvDic; +import com.yfd.platform.qgc_base.entity.vo.HbrvWbsVo; import java.util.List; import java.util.Set; @@ -58,4 +60,6 @@ public interface ISdHbrvDicService extends IService { List regDropdown(String hbrvnm, String baseid); -} \ No newline at end of file + List getHbrvdList(DataSourceRequest dataSourceRequest); + +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdHbrvDicServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdHbrvDicServiceImpl.java index c0653ad3..b897970b 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdHbrvDicServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdHbrvDicServiceImpl.java @@ -1,22 +1,32 @@ package com.yfd.platform.qgc_base.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.yfd.platform.common.DataSourceLoadOptionsBase; +import com.yfd.platform.common.DataSourceRequest; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yfd.platform.qgc_data.domain.SysUserDataScope; import com.yfd.platform.qgc_data.mapper.SysUserDataScopeMapper; import com.yfd.platform.qgc_base.domain.SdEngInfoBH; import com.yfd.platform.qgc_base.domain.SdHbrvDic; +import com.yfd.platform.qgc_base.domain.SdHydrobase; +import com.yfd.platform.qgc_base.entity.vo.HbrvWbsVo; import com.yfd.platform.qgc_base.mapper.SdEngInfoBHMapper; import com.yfd.platform.qgc_base.mapper.SdHbrvDicMapper; +import com.yfd.platform.qgc_base.mapper.SdHydrobaseMapper; import com.yfd.platform.qgc_base.service.ISdHbrvDicService; +import com.yfd.platform.utils.QgcQueryWrapperUtil; import com.yfd.platform.utils.SecurityUtils; import jakarta.annotation.Resource; +import org.springframework.util.StringUtils; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.stream.Collectors; @@ -33,6 +43,9 @@ public class SdHbrvDicServiceImpl extends ServiceImpl queryPageList(Page page, String hbrvnm, String baseid) { @@ -200,4 +213,50 @@ public class SdHbrvDicServiceImpl extends ServiceImpl getHbrvdList(DataSourceRequest dataSourceRequest) { + DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest(); + String baseId = loadOptions == null ? null : QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "baseId"); + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(StringUtils.hasText(baseId), SdHbrvDic::getBaseid, baseId) + .eq(SdHbrvDic::getIsDeleted, 0) + .eq(SdHbrvDic::getEnabled, 1) + .orderByAsc(SdHbrvDic::getBaseid, SdHbrvDic::getOrderIndex, SdHbrvDic::getHbrvcd); + + List hbrvList = this.list(wrapper); + if (hbrvList.isEmpty()) { + return new ArrayList<>(); + } + + List baseIds = hbrvList.stream() + .map(SdHbrvDic::getBaseid) + .filter(StringUtils::hasText) + .distinct() + .toList(); + + Map baseNameMap; + if (!baseIds.isEmpty()) { + baseNameMap = hydrobaseMapper.selectBatchIds(baseIds).stream() + .collect(Collectors.toMap(SdHydrobase::getBaseid, SdHydrobase::getBasename, (a, b) -> a)); + } else { + baseNameMap = new HashMap<>(); + } + + return hbrvList.stream() + .map(item -> toHbrvWbsVo(item, baseNameMap.get(item.getBaseid()))) + .sorted(Comparator.comparing(HbrvWbsVo::getBaseId, Comparator.nullsLast(String::compareTo)) + .thenComparing(HbrvWbsVo::getHbrvcd, Comparator.nullsLast(String::compareTo))) + .toList(); + } + + private HbrvWbsVo toHbrvWbsVo(SdHbrvDic source, String baseName) { + HbrvWbsVo vo = new HbrvWbsVo(); + vo.setHbrvcd(source.getHbrvcd()); + vo.setHbrvcdName(source.getHbrvnm()); + vo.setBaseId(source.getBaseid()); + vo.setBaseName(baseName); + return vo; + } +}