feat: 查询水电基地列表

This commit is contained in:
tangwei 2026-05-22 09:44:44 +08:00
parent 67b0e4a8a3
commit 355cd7f4a6
5 changed files with 193 additions and 3 deletions

View File

@ -53,6 +53,14 @@ public class SwaggerConfig {
.build(); .build();
} }
@Bean
public GroupedOpenApi groupEnvApi() {
return GroupedOpenApi.builder()
.group("3全过程-生态环保数据服务")
.packagesToScan("com.yfd.platform.env.controller")
.build();
}
@Bean @Bean
public GroupedOpenApi groupEnvWTApi() { public GroupedOpenApi groupEnvWTApi() {
return GroupedOpenApi.builder() return GroupedOpenApi.builder()

View File

@ -2,6 +2,7 @@ package com.yfd.platform.env.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yfd.platform.annotation.Log; import com.yfd.platform.annotation.Log;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.config.ResponseResult; import com.yfd.platform.config.ResponseResult;
import com.yfd.platform.env.domain.SdHydrobase; import com.yfd.platform.env.domain.SdHydrobase;
import com.yfd.platform.env.service.ISdHydrobaseService; import com.yfd.platform.env.service.ISdHydrobaseService;
@ -68,6 +69,12 @@ public class SdHydrobaseController {
return ResponseResult.successData(hydrobaseService.selectForDropdown(basename)); return ResponseResult.successData(hydrobaseService.selectForDropdown(basename));
} }
@PostMapping("/wbsb/GetKendoList")
@Operation(summary = "水电基地列表")
public ResponseResult getWbsbKendoList(@RequestBody DataSourceRequest dataSourceRequest) {
return ResponseResult.successData(hydrobaseService.getWbsbKendoList(dataSourceRequest));
}
// @Log(module = "基地管理", value = "新增基地") // @Log(module = "基地管理", value = "新增基地")
@PostMapping("/add") @PostMapping("/add")
@Operation(summary = "新增基地") @Operation(summary = "新增基地")

View File

@ -0,0 +1,39 @@
package com.yfd.platform.env.entity.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
@Schema(description = "水电基地WBS列表")
public class HydrobaseWbsVo {
@Schema(description = "WBS编码")
private String wbsCode;
@Schema(description = "WBS名称")
private String wbsName;
@Schema(description = "父级WBS编码")
private String pwbsCode;
@Schema(description = "WBS类型")
private String wbsType;
@Schema(description = "树级别")
private String treeLevel;
@Schema(description = "树路径")
private String path;
@Schema(description = "排序")
private Integer orderIndex;
@Schema(description = "备注")
private String rmk;
@Schema(description = "简介")
private String des;
@Schema(description = "简称")
private String shortname;
}

View File

@ -1,8 +1,11 @@
package com.yfd.platform.env.service; package com.yfd.platform.env.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.DataSourceResult;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yfd.platform.env.domain.SdHydrobase; import com.yfd.platform.env.domain.SdHydrobase;
import com.yfd.platform.env.entity.vo.HydrobaseWbsVo;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@ -34,6 +37,8 @@ public interface ISdHydrobaseService extends IService<SdHydrobase> {
*/ */
List<SdHydrobase> selectForDropdown(String basename); List<SdHydrobase> selectForDropdown(String basename);
DataSourceResult<HydrobaseWbsVo> getWbsbKendoList(DataSourceRequest dataSourceRequest);
Set<String> getUserAuthorizedStationCodes(); Set<String> getUserAuthorizedStationCodes();
/** /**

View File

@ -3,10 +3,13 @@ package com.yfd.platform.env.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.DataSourceResult;
import com.yfd.platform.data.domain.SysUserDataScope; import com.yfd.platform.data.domain.SysUserDataScope;
import com.yfd.platform.data.mapper.SysUserDataScopeMapper; import com.yfd.platform.data.mapper.SysUserDataScopeMapper;
import com.yfd.platform.env.domain.SdEngInfoBH; import com.yfd.platform.env.domain.SdEngInfoBH;
import com.yfd.platform.env.domain.SdHydrobase; import com.yfd.platform.env.domain.SdHydrobase;
import com.yfd.platform.env.entity.vo.HydrobaseWbsVo;
import com.yfd.platform.env.mapper.SdEngInfoBHMapper; import com.yfd.platform.env.mapper.SdEngInfoBHMapper;
import com.yfd.platform.env.mapper.SdHydrobaseMapper; import com.yfd.platform.env.mapper.SdHydrobaseMapper;
import com.yfd.platform.env.service.ISdHydrobaseService; import com.yfd.platform.env.service.ISdHydrobaseService;
@ -16,8 +19,10 @@ import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -97,6 +102,64 @@ public class SdHydrobaseServiceImpl extends ServiceImpl<SdHydrobaseMapper, SdHyd
return this.list(wrapper); return this.list(wrapper);
} }
@Override
public DataSourceResult<HydrobaseWbsVo> getWbsbKendoList(DataSourceRequest dataSourceRequest) {
LambdaQueryWrapper<SdHydrobase> wrapper = new LambdaQueryWrapper<>();
List<DataSourceRequest.FilterDescriptor> filters = new ArrayList<>();
collectFilters(dataSourceRequest == null ? null : dataSourceRequest.getFilter(), filters);
String wbsType = null;
String treeLevel = null;
for (DataSourceRequest.FilterDescriptor filter : filters) {
if (!"eq".equalsIgnoreCase(filter.getOperator()) || filter.getValue() == null) {
continue;
}
if ("wbsType".equals(filter.getField())) {
wbsType = String.valueOf(filter.getValue());
} else if ("treeLevel".equals(filter.getField())) {
treeLevel = String.valueOf(filter.getValue());
}
}
DataSourceResult<HydrobaseWbsVo> result = new DataSourceResult<>();
result.setAggregates(new HashMap<>());
if (StringUtils.hasText(wbsType) && !"PSB".equalsIgnoreCase(wbsType)) {
result.setData(new ArrayList<>());
result.setTotal(0L);
return result;
}
if (StringUtils.hasText(treeLevel)) {
try {
wrapper.eq(SdHydrobase::getGrd, Integer.parseInt(treeLevel));
} catch (NumberFormatException ignored) {
result.setData(new ArrayList<>());
result.setTotal(0L);
return result;
}
}
applySort(wrapper, dataSourceRequest == null ? null : dataSourceRequest.getSort());
List<SdHydrobase> hydrobaseList;
if (dataSourceRequest != null && dataSourceRequest.getTake() > 0) {
Page<SdHydrobase> page = new Page<>(
(long) (dataSourceRequest.getSkip() / dataSourceRequest.getTake() + 1),
dataSourceRequest.getTake()
);
Page<SdHydrobase> pageResult = this.page(page, wrapper);
hydrobaseList = pageResult.getRecords();
result.setTotal(pageResult.getTotal());
} else {
hydrobaseList = this.list(wrapper);
result.setTotal(hydrobaseList.size());
}
result.setData(hydrobaseList.stream().map(this::toHydrobaseWbsVo).collect(Collectors.toList()));
return result;
}
@Override @Override
public Set<String> getUserAuthorizedStationCodes() { public Set<String> getUserAuthorizedStationCodes() {
String userId = SecurityUtils.getUserId(); String userId = SecurityUtils.getUserId();
@ -176,4 +239,72 @@ public class SdHydrobaseServiceImpl extends ServiceImpl<SdHydrobaseMapper, SdHyd
public boolean deleteHydrobase(String baseid) { public boolean deleteHydrobase(String baseid) {
return this.removeById(baseid); return this.removeById(baseid);
} }
private void collectFilters(DataSourceRequest.FilterDescriptor root, List<DataSourceRequest.FilterDescriptor> filters) {
if (root == null) {
return;
}
if (StringUtils.hasText(root.getField())) {
filters.add(root);
return;
}
if (root.getFilters() == null || root.getFilters().isEmpty()) {
return;
}
for (DataSourceRequest.FilterDescriptor filter : root.getFilters()) {
collectFilters(filter, filters);
}
}
private void applySort(LambdaQueryWrapper<SdHydrobase> wrapper, List<DataSourceRequest.SortDescriptor> sortList) {
boolean hasSort = false;
if (sortList != null) {
for (DataSourceRequest.SortDescriptor sortDescriptor : sortList) {
if (sortDescriptor == null || !StringUtils.hasText(sortDescriptor.getField())) {
continue;
}
boolean asc = !"desc".equalsIgnoreCase(sortDescriptor.getDir());
if ("orderIndex".equals(sortDescriptor.getField())) {
if (asc) {
wrapper.orderByAsc(SdHydrobase::getOrderIndex);
} else {
wrapper.orderByDesc(SdHydrobase::getOrderIndex);
}
hasSort = true;
} else if ("wbsCode".equals(sortDescriptor.getField())) {
if (asc) {
wrapper.orderByAsc(SdHydrobase::getBaseid);
} else {
wrapper.orderByDesc(SdHydrobase::getBaseid);
}
hasSort = true;
} else if ("wbsName".equals(sortDescriptor.getField())) {
if (asc) {
wrapper.orderByAsc(SdHydrobase::getBasename);
} else {
wrapper.orderByDesc(SdHydrobase::getBasename);
}
hasSort = true;
}
}
}
if (!hasSort) {
wrapper.orderByAsc(SdHydrobase::getOrderIndex);
}
}
private HydrobaseWbsVo toHydrobaseWbsVo(SdHydrobase hydrobase) {
HydrobaseWbsVo vo = new HydrobaseWbsVo();
vo.setWbsCode(hydrobase.getBaseid());
vo.setWbsName(hydrobase.getBasename());
vo.setPwbsCode(hydrobase.getPbaseid());
vo.setWbsType("PSB");
vo.setTreeLevel(hydrobase.getGrd() == null ? null : String.valueOf(hydrobase.getGrd()));
vo.setPath(hydrobase.getPath());
vo.setOrderIndex(hydrobase.getOrderIndex());
vo.setRmk(hydrobase.getRmk());
vo.setDes(hydrobase.getDes());
vo.setShortname(hydrobase.getShortname());
return vo;
}
} }