fix: 优化逻辑

This commit is contained in:
tangwei 2026-04-27 16:22:18 +08:00
parent 3a7f89b9a0
commit 7839508630
13 changed files with 140 additions and 12 deletions

View File

@ -240,6 +240,7 @@ public class FishDraftDataController {
request.setBizType("FISH");
FishImportResult result = fishImportService.parseAndMapZip(file, uploadUserId);
result.setTaskId(taskId);
String status = "VALIDATED";
if ("1".equals(result.getCode())) {
status="FAILED";

View File

@ -26,6 +26,7 @@ public class FishImportResult {
private String summary;
private String code;
private String message;
private String taskId;
public FishImportResult() {
this.successRows = new ArrayList<>();

View File

@ -40,12 +40,12 @@ public class SysUserDataScope implements Serializable {
/**
* 资源类型BASIN / BASE /COMPANY / STATION
* 资源类型RVCD/HBRVCD/ BASE / STATION/COMPANY
*/
private String orgType;
/**
* 资源编码流域编码/基地编码/公司编码/电站编码
* 资源编码流域编码/基地流域编码/基地编码/电站编码/公司编码
*/
private String orgId;

View File

@ -24,13 +24,13 @@ public class SysUserDataScopeVO implements Serializable {
@Schema(description = "用户ID")
private String userId;
@Schema(description = "资源类型(BASIN/BASE/COMPANY/STATION")
@Schema(description = "资源类型(RVCD/HBRVCD/ BASE / STATION/COMPANY")
private String orgType;
@Schema(description = "资源编码")
private String orgId;
@Schema(description = "资源名称(流域名称/基地名称/公司名称/电站名称")
@Schema(description = "资源编码(流域编码/基地流域编码/基地编码/电站编码/公司编码")
private String orgName;
@Schema(description = "上级资源编码")

View File

@ -169,8 +169,8 @@ public class SysUserDataScopeServiceImpl extends ServiceImpl<SysUserDataScopeMap
Map<String, String> orgNameMap = new HashMap<>();
// 3.1 查询流域名称 (BASIN)
if (groupedByType.containsKey("BASIN")) {
Set<String> rvcds = groupedByType.get("BASIN").stream()
if (groupedByType.containsKey("RVCD")) {
Set<String> rvcds = groupedByType.get("RVCD").stream()
.map(SysUserDataScope::getOrgId)
.filter(StrUtil::isNotBlank)
.collect(Collectors.toSet());

View File

@ -46,6 +46,15 @@ public class TreeStructureController {
return ResponseResult.successData(result);
}
@GetMapping("/hbrvEng")
@Operation(summary = "获取基地流域-电站树形结构")
public ResponseResult getHbrvEngTree(
@RequestParam(required = false) String hbrvcd,
@RequestParam(required = false) String engName) {
List<Map<String, Object>> result = treeStructureService.getHbrvEngTree(hbrvcd, engName);
return ResponseResult.successData(result);
}
@GetMapping("/rvcdBaseEng")
@Operation(summary = "获取流域-基地-电站树形结构")

View File

@ -27,4 +27,14 @@ public interface SdEngInfoBHMapper extends BaseMapper<SdEngInfoBH> {
* 根据流域编码查询电站列表通过关联关系
*/
List<SdEngInfoBH> selectByRvcd(@Param("rvcd") String rvcd);
/**
* 根据基地流域编码查询电站列表
*/
List<SdEngInfoBH> selectByHbrvcd(@Param("hbrvcd") String hbrvcd);
/**
* 根据基地流域编码列表批量查询电站
*/
List<SdEngInfoBH> selectByHbrvcdList(@Param("hbrvcdList") List<String> hbrvcdList);
}

View File

@ -52,4 +52,11 @@ public interface ITreeStructureService {
* @param engName 电站名称可选用于模糊筛选电站
*/
List<Map<String, Object>> getBaseEngTree(String baseId, String engName);
/**
* 获取基地流域-电站树形结构二级树
* @param hbrvcd 基地流域编码可选为空则返回全部
* @param engName 电站名称可选用于模糊筛选电站
*/
List<Map<String, Object>> getHbrvEngTree(String hbrvcd, String engName);
}

View File

@ -104,7 +104,7 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
if ("STATION".equals(orgType)) {
stationCodes.add(orgId);
} else if ("BASIN".equals(orgType)) {
} else if ("RVCD".equals(orgType)) {
basinCodes.add(orgId);
}
}

View File

@ -110,7 +110,7 @@ public class SdFpssBHServiceImpl extends ServiceImpl<SdFpssBHMapper, SdFpssBH> i
if ("STATION".equals(orgType)) {
stationCodes.add(orgId);
} else if ("BASIN".equals(orgType)) {
} else if ("RVCD".equals(orgType)) {
basinCodes.add(orgId);
}
}

View File

@ -116,7 +116,7 @@ public class SdHydrobaseServiceImpl extends ServiceImpl<SdHydrobaseMapper, SdHyd
if ("STATION".equals(orgType)) {
stationCodes.add(orgId);
} else if ("BASIN".equals(orgType)) {
} else if ("RVCD".equals(orgType)) {
basinCodes.add(orgId);
}
}

View File

@ -2,6 +2,7 @@ package com.yfd.platform.env.service.impl;
import com.yfd.platform.env.domain.SdEngInfoBH;
import com.yfd.platform.env.domain.SdHydrobase;
import com.yfd.platform.env.domain.SdHbrvDic;
import com.yfd.platform.env.domain.SdHycdDic;
import com.yfd.platform.env.domain.SdPrhbrltnB;
import com.yfd.platform.env.domain.SdPrhyrltnB;
@ -41,6 +42,9 @@ public class TreeStructureServiceImpl implements ITreeStructureService {
@Autowired
private SdPrhyrltnBMapper prhyrltnBMapper;
@Autowired
private SdHbrvDicMapper hbrvDicMapper;
@Override
public List<Map<String, Object>> getRvcdBaseEngTree(String rvcd, String engName) {
List<Map<String, Object>> result = new ArrayList<>();
@ -75,7 +79,7 @@ public class TreeStructureServiceImpl implements ITreeStructureService {
for (SdRvcdDic rvcdDic : rvcdList) {
Map<String, Object> rvcdNode = new LinkedHashMap<>();
rvcdNode.put("type", "BASIN");
rvcdNode.put("type", "RVCD");
rvcdNode.put("code", rvcdDic.getRvcd());
rvcdNode.put("name", rvcdDic.getRvnm());
rvcdNode.put("path", rvcdDic.getPath());
@ -187,7 +191,7 @@ public class TreeStructureServiceImpl implements ITreeStructureService {
// 3. 构建树形结构
for (SdRvcdDic rvcdDic : rvcdList) {
Map<String, Object> rvcdNode = new LinkedHashMap<>();
rvcdNode.put("type", "BASIN");
rvcdNode.put("type", "RVCD");
rvcdNode.put("code", rvcdDic.getRvcd());
rvcdNode.put("name", rvcdDic.getRvnm());
rvcdNode.put("path", rvcdDic.getPath());
@ -384,7 +388,7 @@ public class TreeStructureServiceImpl implements ITreeStructureService {
// 3. 构建二级树形结构流域 -> 电站
for (SdRvcdDic rvcdDic : rvcdList) {
Map<String, Object> rvcdNode = new LinkedHashMap<>();
rvcdNode.put("type", "BASIN");
rvcdNode.put("type", "RVCD");
rvcdNode.put("code", rvcdDic.getRvcd());
rvcdNode.put("name", rvcdDic.getRvnm());
rvcdNode.put("path", rvcdDic.getPath());
@ -503,5 +507,86 @@ public class TreeStructureServiceImpl implements ITreeStructureService {
return result;
}
@Override
public List<Map<String, Object>> getHbrvEngTree(String hbrvcd, String engName) {
List<Map<String, Object>> result = new ArrayList<>();
List<SdHbrvDic> hbrvList;
if (StringUtils.hasText(hbrvcd)) {
hbrvList = hbrvDicMapper.selectByPhycd(hbrvcd, null);
SdHbrvDic singleHbrv = hbrvDicMapper.selectById(hbrvcd);
if (singleHbrv != null && !hbrvList.contains(singleHbrv)) {
hbrvList = new ArrayList<>();
hbrvList.add(singleHbrv);
}
} else {
hbrvList = hbrvDicMapper.selectEnabledList();
}
if (hbrvList == null || hbrvList.isEmpty()) {
return result;
}
List<String> hbrvcdList = hbrvList.stream()
.map(SdHbrvDic::getHbrvcd)
.collect(Collectors.toList());
List<SdEngInfoBH> allEngList = engInfoBHMapper.selectByHbrvcdList(hbrvcdList);
if (StringUtils.hasText(engName) && allEngList != null) {
allEngList = allEngList.stream()
.filter(eng -> eng.getEnnm() != null && eng.getEnnm().contains(engName))
.collect(Collectors.toList());
}
Map<String, List<SdEngInfoBH>> hbrvEngMap = new HashMap<>();
if (allEngList != null && !allEngList.isEmpty()) {
for (SdEngInfoBH eng : allEngList) {
String engHbrvcd = eng.getHbrvcd();
hbrvEngMap.computeIfAbsent(engHbrvcd, k -> new ArrayList<>()).add(eng);
}
}
for (SdHbrvDic hbrvDic : hbrvList) {
Map<String, Object> hbrvNode = new LinkedHashMap<>();
hbrvNode.put("type", "HBRVCD");
hbrvNode.put("code", hbrvDic.getHbrvcd());
hbrvNode.put("name", hbrvDic.getHbrvnm());
hbrvNode.put("grd", hbrvDic.getGrd());
hbrvNode.put("path", hbrvDic.getPath());
hbrvNode.put("baseid", hbrvDic.getBaseid());
hbrvNode.put("parentId", "0");
hbrvNode.put("orgLevel", 0);
List<SdEngInfoBH> engList = hbrvEngMap.get(hbrvDic.getHbrvcd());
List<Map<String, Object>> engChildren = new ArrayList<>();
if (engList != null && !engList.isEmpty()) {
for (SdEngInfoBH eng : engList) {
Map<String, Object> engNode = new LinkedHashMap<>();
engNode.put("type", "STATION");
engNode.put("code", eng.getStcd());
engNode.put("name", eng.getEnnm());
engNode.put("lgtd", eng.getLgtd());
engNode.put("lttd", eng.getLttd());
engNode.put("elev", eng.getElev());
engNode.put("usfl", eng.getUsfl());
engNode.put("bldstt", eng.getBldstt());
engNode.put("engtp", eng.getEngtp());
engNode.put("parentId", hbrvDic.getHbrvcd());
engNode.put("orgLevel", 1);
engChildren.add(engNode);
}
}
if (!engChildren.isEmpty()) {
hbrvNode.put("children", engChildren);
result.add(hbrvNode);
}
}
return result;
}
}

View File

@ -249,4 +249,19 @@
ORDER BY ORDER_INDEX ASC
</select>
<select id="selectByHbrvcd" resultMap="BaseResultMap">
SELECT * FROM SD_ENGINFO_B_H
WHERE HBRVCD = #{hbrvcd}
ORDER BY ORDER_INDEX ASC
</select>
<select id="selectByHbrvcdList" resultMap="BaseResultMap">
SELECT * FROM SD_ENGINFO_B_H
WHERE HBRVCD IN
<foreach collection="hbrvcdList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
ORDER BY HBRVCD, ORDER_INDEX ASC
</select>
</mapper>