feat: 查询水电基地列表
This commit is contained in:
parent
67b0e4a8a3
commit
355cd7f4a6
@ -53,6 +53,14 @@ public class SwaggerConfig {
|
||||
.build();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public GroupedOpenApi groupEnvApi() {
|
||||
return GroupedOpenApi.builder()
|
||||
.group("3全过程-生态环保数据服务")
|
||||
.packagesToScan("com.yfd.platform.env.controller")
|
||||
.build();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public GroupedOpenApi groupEnvWTApi() {
|
||||
return GroupedOpenApi.builder()
|
||||
|
||||
@ -2,6 +2,7 @@ package com.yfd.platform.env.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.yfd.platform.annotation.Log;
|
||||
import com.yfd.platform.common.DataSourceRequest;
|
||||
import com.yfd.platform.config.ResponseResult;
|
||||
import com.yfd.platform.env.domain.SdHydrobase;
|
||||
import com.yfd.platform.env.service.ISdHydrobaseService;
|
||||
@ -68,6 +69,12 @@ public class SdHydrobaseController {
|
||||
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 = "新增基地")
|
||||
@PostMapping("/add")
|
||||
@Operation(summary = "新增基地")
|
||||
|
||||
39
backend/src/main/java/com/yfd/platform/env/entity/vo/HydrobaseWbsVo.java
vendored
Normal file
39
backend/src/main/java/com/yfd/platform/env/entity/vo/HydrobaseWbsVo.java
vendored
Normal 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;
|
||||
}
|
||||
@ -1,8 +1,11 @@
|
||||
package com.yfd.platform.env.service;
|
||||
|
||||
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.yfd.platform.env.domain.SdHydrobase;
|
||||
import com.yfd.platform.env.entity.vo.HydrobaseWbsVo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
@ -34,6 +37,8 @@ public interface ISdHydrobaseService extends IService<SdHydrobase> {
|
||||
*/
|
||||
List<SdHydrobase> selectForDropdown(String basename);
|
||||
|
||||
DataSourceResult<HydrobaseWbsVo> getWbsbKendoList(DataSourceRequest dataSourceRequest);
|
||||
|
||||
Set<String> getUserAuthorizedStationCodes();
|
||||
|
||||
/**
|
||||
|
||||
@ -3,10 +3,13 @@ package com.yfd.platform.env.service.impl;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
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.mapper.SysUserDataScopeMapper;
|
||||
import com.yfd.platform.env.domain.SdEngInfoBH;
|
||||
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.SdHydrobaseMapper;
|
||||
import com.yfd.platform.env.service.ISdHydrobaseService;
|
||||
@ -16,8 +19,10 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
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;
|
||||
|
||||
@ -97,6 +102,64 @@ public class SdHydrobaseServiceImpl extends ServiceImpl<SdHydrobaseMapper, SdHyd
|
||||
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
|
||||
public Set<String> getUserAuthorizedStationCodes() {
|
||||
String userId = SecurityUtils.getUserId();
|
||||
@ -176,4 +239,72 @@ public class SdHydrobaseServiceImpl extends ServiceImpl<SdHydrobaseMapper, SdHyd
|
||||
public boolean deleteHydrobase(String 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;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user