fix: 优化逻辑
This commit is contained in:
parent
3a7f89b9a0
commit
7839508630
@ -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";
|
||||
|
||||
@ -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<>();
|
||||
|
||||
@ -40,12 +40,12 @@ public class SysUserDataScope implements Serializable {
|
||||
|
||||
|
||||
/**
|
||||
* 资源类型(BASIN / BASE /COMPANY / STATION)
|
||||
* 资源类型(RVCD/HBRVCD/ BASE / STATION/COMPANY)
|
||||
*/
|
||||
private String orgType;
|
||||
|
||||
/**
|
||||
* 资源编码(流域编码/基地编码/公司编码/电站编码)
|
||||
* 资源编码(流域编码/基地流域编码/基地编码/电站编码/公司编码)
|
||||
*/
|
||||
private String orgId;
|
||||
|
||||
|
||||
@ -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 = "上级资源编码")
|
||||
|
||||
@ -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());
|
||||
|
||||
@ -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 = "获取流域-基地-电站树形结构")
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -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>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user