feat: 根据基地查询基地流域列表

This commit is contained in:
tangwei 2026-06-12 15:08:09 +08:00
parent 5ba2f5e9bb
commit daf0c4e890
5 changed files with 95 additions and 4 deletions

View File

@ -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();
}

View File

@ -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));
}
}
@PostMapping("/wbsb/getHbrvdList")
@Operation(summary = "根据基地查询基地流域列表")
public ResponseResult getHbrvdList(@RequestBody DataSourceRequest dataSourceRequest) {
return ResponseResult.successData(hbrvDicService.getHbrvdList(dataSourceRequest));
}
}

View File

@ -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;
}

View File

@ -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<SdHbrvDic> {
List<SdHbrvDic> regDropdown(String hbrvnm, String baseid);
}
List<HbrvWbsVo> getHbrvdList(DataSourceRequest dataSourceRequest);
}

View File

@ -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<SdHbrvDicMapper, SdHbrvDic
@Resource
private SdEngInfoBHMapper engInfoBHMapper;
@Resource
private SdHydrobaseMapper hydrobaseMapper;
private SdHbrvDicMapper hbrvDicMapper;
@Override
public Page<SdHbrvDic> queryPageList(Page<SdHbrvDic> page, String hbrvnm, String baseid) {
@ -200,4 +213,50 @@ public class SdHbrvDicServiceImpl extends ServiceImpl<SdHbrvDicMapper, SdHbrvDic
.orderByAsc(SdHbrvDic::getBaseid,SdHbrvDic::getOrderIndex)
.list();
}
}
@Override
public List<HbrvWbsVo> getHbrvdList(DataSourceRequest dataSourceRequest) {
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
String baseId = loadOptions == null ? null : QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "baseId");
LambdaQueryWrapper<SdHbrvDic> 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<SdHbrvDic> hbrvList = this.list(wrapper);
if (hbrvList.isEmpty()) {
return new ArrayList<>();
}
List<String> baseIds = hbrvList.stream()
.map(SdHbrvDic::getBaseid)
.filter(StringUtils::hasText)
.distinct()
.toList();
Map<String, String> 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;
}
}