fix: 下拉列表查询
This commit is contained in:
parent
57015b1e28
commit
e1d8809a03
@ -102,4 +102,20 @@ public class SdRvcdDicController {
|
||||
boolean result = rvcdDicService.deleteRvcdDic(rvcd);
|
||||
return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败");
|
||||
}
|
||||
|
||||
@GetMapping("/selectForDropdown")
|
||||
@Operation(summary = "下拉框列表查询")
|
||||
public ResponseResult selectForDropdown(
|
||||
@RequestParam(required = false) String rvnm,
|
||||
@RequestParam(required = false) String rvcd) {
|
||||
return ResponseResult.successData(rvcdDicService.selectForDropdown(rvnm, rvcd));
|
||||
}
|
||||
|
||||
@GetMapping("/regDropdown")
|
||||
@Operation(summary = "下拉框列表查询(注册)")
|
||||
public ResponseResult regDropdown(
|
||||
@RequestParam(required = false) String rvnm,
|
||||
@RequestParam(required = false) String rvcd) {
|
||||
return ResponseResult.successData(rvcdDicService.regDropdown(rvnm, rvcd));
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.yfd.platform.qgc_base.domain.SdRvcdDic;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@ -43,10 +44,16 @@ public interface ISdRvcdDicService extends IService<SdRvcdDic> {
|
||||
*/
|
||||
boolean deleteRvcdDic(String rvcd);
|
||||
|
||||
Set<String> getUserAuthorizedStationCodes();
|
||||
|
||||
/**
|
||||
* 获取流域树形结构
|
||||
* @param rvcd 流域编码(可选,为空则返回全部)
|
||||
* @param rvnm 流域名称(可选,用于模糊搜索)
|
||||
*/
|
||||
List<SdRvcdDic> getTree(String rvcd, String rvnm);
|
||||
|
||||
List<SdRvcdDic> selectForDropdown(String rvnm, String rvcd);
|
||||
|
||||
List<SdRvcdDic> regDropdown(String rvnm, String rvcd);
|
||||
}
|
||||
|
||||
@ -96,7 +96,7 @@ public class SdHbrvDicServiceImpl extends ServiceImpl<SdHbrvDicMapper, SdHbrvDic
|
||||
wrapper.like(hbrvnm != null && !hbrvnm.isEmpty(), SdHbrvDic::getHbrvnm, hbrvnm)
|
||||
.eq(baseid != null && !baseid.isEmpty(), SdHbrvDic::getBaseid, baseid)
|
||||
.eq(SdHbrvDic::getEnabled, 1)
|
||||
.orderByAsc(SdHbrvDic::getOrderIndex);
|
||||
.orderByAsc(SdHbrvDic::getBaseid,SdHbrvDic::getOrderIndex);
|
||||
if("admin".equals(SecurityUtils.getCurrentUsername())){
|
||||
return this.list(wrapper);
|
||||
}
|
||||
@ -197,7 +197,7 @@ public class SdHbrvDicServiceImpl extends ServiceImpl<SdHbrvDicMapper, SdHbrvDic
|
||||
.like(hbrvnm != null && !hbrvnm.isEmpty(), SdHbrvDic::getHbrvnm, hbrvnm)
|
||||
.eq(baseid != null && !baseid.isEmpty(), SdHbrvDic::getBaseid, baseid)
|
||||
.eq(SdHbrvDic::getEnabled, 1)
|
||||
.orderByAsc(SdHbrvDic::getOrderIndex)
|
||||
.orderByAsc(SdHbrvDic::getBaseid,SdHbrvDic::getOrderIndex)
|
||||
.list();
|
||||
}
|
||||
}
|
||||
@ -1,10 +1,17 @@
|
||||
package com.yfd.platform.qgc_base.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.qgc_base.domain.SdEngInfoBH;
|
||||
import com.yfd.platform.qgc_base.domain.SdRvcdDic;
|
||||
import com.yfd.platform.qgc_base.mapper.SdEngInfoBHMapper;
|
||||
import com.yfd.platform.qgc_base.mapper.SdRvcdDicMapper;
|
||||
import com.yfd.platform.qgc_base.service.ISdRvcdDicService;
|
||||
import com.yfd.platform.qgc_data.domain.SysUserDataScope;
|
||||
import com.yfd.platform.qgc_data.mapper.SysUserDataScopeMapper;
|
||||
import com.yfd.platform.utils.SecurityUtils;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
@ -19,6 +26,12 @@ import java.util.stream.Collectors;
|
||||
@Service
|
||||
public class SdRvcdDicServiceImpl extends ServiceImpl<SdRvcdDicMapper, SdRvcdDic> implements ISdRvcdDicService {
|
||||
|
||||
@Resource
|
||||
private SdEngInfoBHMapper engInfoBHMapper;
|
||||
|
||||
@Resource
|
||||
private SysUserDataScopeMapper sysUserDataScopeMapper;
|
||||
|
||||
@Override
|
||||
public Page<SdRvcdDic> queryPageList(Page<SdRvcdDic> page, String rvnm, String prvcd) {
|
||||
return this.page(page, this.lambdaQuery()
|
||||
@ -103,6 +116,120 @@ public class SdRvcdDicServiceImpl extends ServiceImpl<SdRvcdDicMapper, SdRvcdDic
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SdRvcdDic> selectForDropdown(String rvnm, String rvcd) {
|
||||
|
||||
LambdaQueryWrapper<SdRvcdDic> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.like(rvnm != null && !rvnm.isEmpty(), SdRvcdDic::getRvnm, rvnm)
|
||||
.eq(rvcd != null && !rvcd.isEmpty(), SdRvcdDic::getRvcd, rvcd)
|
||||
.eq(SdRvcdDic::getEnabled, 1)
|
||||
.orderByAsc(SdRvcdDic::getBaseid,SdRvcdDic::getOrderIndex);
|
||||
if("admin".equals(SecurityUtils.getCurrentUsername())){
|
||||
return this.list(wrapper);
|
||||
}
|
||||
Set<String> authorizedStations = getUserAuthorizedStationCodes();
|
||||
if (authorizedStations != null && !authorizedStations.isEmpty()) {
|
||||
List<SdEngInfoBH> engInfos = engInfoBHMapper.selectList(
|
||||
new LambdaQueryWrapper<SdEngInfoBH>()
|
||||
.select(SdEngInfoBH::getRvcd)
|
||||
.in(SdEngInfoBH::getStcd, authorizedStations)
|
||||
);
|
||||
List<String> rvcds = engInfos.stream()
|
||||
.map(SdEngInfoBH::getRvcd)
|
||||
.filter(id -> id != null && !id.isEmpty())
|
||||
.distinct()
|
||||
.toList();
|
||||
|
||||
if (!rvcds.isEmpty()) {
|
||||
List<SdRvcdDic> list = this.list(wrapper);
|
||||
return list.stream()
|
||||
.filter(rvcdDic -> rvcds.contains(rvcdDic.getRvcd()))
|
||||
.collect(Collectors.toList());
|
||||
} else {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}else {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Set<String> getUserAuthorizedStationCodes() {
|
||||
String userId = SecurityUtils.getUserId();
|
||||
List<SysUserDataScope> sysUserDataScopes = sysUserDataScopeMapper.selectList(
|
||||
new LambdaQueryWrapper<SysUserDataScope>()
|
||||
.eq(SysUserDataScope::getUserId, userId)
|
||||
.select(SysUserDataScope::getOrgId, SysUserDataScope::getOrgType)
|
||||
);
|
||||
|
||||
if (sysUserDataScopes == null || sysUserDataScopes.isEmpty()) {
|
||||
return new HashSet<>();
|
||||
}
|
||||
|
||||
|
||||
Set<String> stationCodes = new HashSet<>();
|
||||
Set<String> basinCodes = new HashSet<>();
|
||||
|
||||
for (SysUserDataScope scope : sysUserDataScopes) {
|
||||
String orgType = scope.getOrgType();
|
||||
String orgId = scope.getOrgId();
|
||||
|
||||
if ("STATION".equals(orgType)) {
|
||||
SdEngInfoBH station = engInfoBHMapper.selectById(orgId);
|
||||
if (station != null) {
|
||||
if (station.getRvcd() != null) {
|
||||
basinCodes.add(station.getRvcd());
|
||||
}
|
||||
if (station.getStcd() != null) {
|
||||
stationCodes.add(station.getStcd());
|
||||
}
|
||||
|
||||
}
|
||||
} else if ("RVCD".equals(orgType)) {
|
||||
List<SdEngInfoBH> stationList = engInfoBHMapper.selectByRvcd(orgId);
|
||||
if (stationList != null) {
|
||||
for (SdEngInfoBH station : stationList) {
|
||||
if (station.getStcd() != null) {
|
||||
stationCodes.add(station.getStcd());
|
||||
}
|
||||
if (station.getEnnm() != null) {
|
||||
basinCodes.add(station.getRvcd());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
if (!stationCodes.isEmpty()) {
|
||||
return stationCodes;
|
||||
}
|
||||
|
||||
if (!basinCodes.isEmpty()) {
|
||||
List<SdEngInfoBH> engInfos = engInfoBHMapper.selectList(
|
||||
new LambdaQueryWrapper<SdEngInfoBH>()
|
||||
.select(SdEngInfoBH::getStcd)
|
||||
.in(SdEngInfoBH::getRvcd, basinCodes)
|
||||
);
|
||||
return engInfos.stream()
|
||||
.map(SdEngInfoBH::getStcd)
|
||||
.collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
return stationCodes;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<SdRvcdDic> regDropdown(String rvnm, String rvcd) {
|
||||
return this.lambdaQuery()
|
||||
.like(rvnm != null && !rvnm.isEmpty(), SdRvcdDic::getRvnm, rvnm)
|
||||
.eq(rvcd != null && !rvcd.isEmpty(), SdRvcdDic::getRvcd, rvcd)
|
||||
.eq(SdRvcdDic::getEnabled, 1)
|
||||
.orderByAsc(SdRvcdDic::getBaseid,SdRvcdDic::getOrderIndex)
|
||||
.list();
|
||||
}
|
||||
|
||||
private void buildTreeRecursive(SdRvcdDic parent, Map<String, List<SdRvcdDic>> childrenMap, Set<String> rootRvcdSet) {
|
||||
List<SdRvcdDic> children = childrenMap.get(parent.getRvcd());
|
||||
if (children != null && !children.isEmpty()) {
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.yfd.platform.data.mapper.FishDraftDataMapper">
|
||||
<mapper namespace="com.yfd.platform.qgc_data.mapper.FishDraftDataMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="com.yfd.platform.qgc_data.domain.FishDraftData">
|
||||
<id column="ID" property="id"/>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.yfd.platform.data.mapper.FishStatisticsMapper">
|
||||
<mapper namespace="com.yfd.platform.qgc_data.mapper.FishStatisticsMapper">
|
||||
|
||||
<resultMap id="StatisticsResultMap" type="com.yfd.platform.qgc_data.domain.vo.FishStatisticsVO">
|
||||
<result column="USER_ID" property="userId"/>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.yfd.platform.data.mapper.ImportTaskRowMapper">
|
||||
<mapper namespace="com.yfd.platform.qgc_data.mapper.ImportTaskRowMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="com.yfd.platform.qgc_data.domain.ImportTaskRow">
|
||||
<id column="ID" property="id"/>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.yfd.platform.data.mapper.SysUserDataScopeMapper">
|
||||
<mapper namespace="com.yfd.platform.qgc_data.mapper.SysUserDataScopeMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="com.yfd.platform.qgc_data.domain.SysUserDataScope">
|
||||
<id column="ID" property="id"/>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user