fix: 优化逻辑
This commit is contained in:
parent
8d1492efbb
commit
601bf62b7f
@ -183,12 +183,12 @@ public class FishImportServiceImpl implements IFishImportService {
|
|||||||
switch (fieldName) {
|
switch (fieldName) {
|
||||||
case "stationName":
|
case "stationName":
|
||||||
if (!StringUtils.hasText(cellValue)) {
|
if (!StringUtils.hasText(cellValue)) {
|
||||||
importRow.getWarnings().add(fieldName);
|
importRow.getWarnings().add("engName");
|
||||||
data.setEngName(cellValue.trim());
|
data.setEngName(cellValue.trim());
|
||||||
} else {
|
} else {
|
||||||
String stcd = resolveStationCode(cellValue.trim());
|
String stcd = resolveStationCode(cellValue.trim());
|
||||||
if (stcd == null) {
|
if (stcd == null) {
|
||||||
importRow.getWarnings().add(fieldName);
|
importRow.getWarnings().add("engName");
|
||||||
data.setEngName(cellValue.trim());
|
data.setEngName(cellValue.trim());
|
||||||
} else {
|
} else {
|
||||||
data.setEngName(cellValue.trim());
|
data.setEngName(cellValue.trim());
|
||||||
@ -197,13 +197,13 @@ public class FishImportServiceImpl implements IFishImportService {
|
|||||||
break;
|
break;
|
||||||
case "baseName":
|
case "baseName":
|
||||||
if (!StringUtils.hasText(cellValue)) {
|
if (!StringUtils.hasText(cellValue)) {
|
||||||
importRow.getWarnings().add(fieldName);
|
importRow.getWarnings().add("baseId");
|
||||||
data.setBaseId(cellValue.trim());
|
data.setBaseId(cellValue.trim());
|
||||||
data.setBaseName(cellValue.trim());
|
data.setBaseName(cellValue.trim());
|
||||||
} else {
|
} else {
|
||||||
String baseId = resolveBaseCode(cellValue.trim());
|
String baseId = resolveBaseCode(cellValue.trim());
|
||||||
if (baseId == null) {
|
if (baseId == null) {
|
||||||
importRow.getWarnings().add(fieldName);
|
importRow.getWarnings().add("baseId");
|
||||||
data.setBaseId(cellValue.trim());
|
data.setBaseId(cellValue.trim());
|
||||||
data.setBaseName(cellValue.trim());
|
data.setBaseName(cellValue.trim());
|
||||||
} else {
|
} else {
|
||||||
@ -316,11 +316,11 @@ public class FishImportServiceImpl implements IFishImportService {
|
|||||||
break;
|
break;
|
||||||
case "stnm":
|
case "stnm":
|
||||||
if (!StringUtils.hasText(cellValue)) {
|
if (!StringUtils.hasText(cellValue)) {
|
||||||
missingRequiredFields.add("过鱼设施名称");
|
missingRequiredFields.add("stcd");
|
||||||
} else {
|
} else {
|
||||||
String stcd = resolveFpssCode(cellValue.trim());
|
String stcd = resolveFpssCode(cellValue.trim());
|
||||||
if (stcd == null) {
|
if (stcd == null) {
|
||||||
importRow.getWarnings().add(fieldName);
|
importRow.getWarnings().add("stcd");
|
||||||
data.setStcd(cellValue.trim());
|
data.setStcd(cellValue.trim());
|
||||||
data.setStnm(cellValue.trim());
|
data.setStnm(cellValue.trim());
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -37,6 +37,15 @@ public class TreeStructureController {
|
|||||||
return ResponseResult.successData(result);
|
return ResponseResult.successData(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/baseEng")
|
||||||
|
@Operation(summary = "获取基地-电站树形结构")
|
||||||
|
public ResponseResult getBaseEngTree(
|
||||||
|
@RequestParam(required = false) String baseId,
|
||||||
|
@RequestParam(required = false) String engName) {
|
||||||
|
List<Map<String, Object>> result = treeStructureService.getBaseEngTree(baseId, engName);
|
||||||
|
return ResponseResult.successData(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("/rvcdBaseEng")
|
@GetMapping("/rvcdBaseEng")
|
||||||
@Operation(summary = "获取流域-基地-电站树形结构")
|
@Operation(summary = "获取流域-基地-电站树形结构")
|
||||||
|
|||||||
@ -45,4 +45,11 @@ public interface ITreeStructureService {
|
|||||||
* @param engName 电站名称(可选,用于模糊筛选电站)
|
* @param engName 电站名称(可选,用于模糊筛选电站)
|
||||||
*/
|
*/
|
||||||
List<Map<String, Object>> getRvcdEngTree(String rvcd, String engName);
|
List<Map<String, Object>> getRvcdEngTree(String rvcd, String engName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取基地-电站树形结构(二级树)
|
||||||
|
* @param baseId 基地编码(可选,为空则返回全部)
|
||||||
|
* @param engName 电站名称(可选,用于模糊筛选电站)
|
||||||
|
*/
|
||||||
|
List<Map<String, Object>> getBaseEngTree(String baseId, String engName);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -426,5 +426,82 @@ public class TreeStructureServiceImpl implements ITreeStructureService {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Map<String, Object>> getBaseEngTree(String baseId, String engName) {
|
||||||
|
List<Map<String, Object>> result = new ArrayList<>();
|
||||||
|
|
||||||
|
// 1. 查询基地列表
|
||||||
|
List<SdHydrobase> baseList;
|
||||||
|
if (StringUtils.hasText(baseId)) {
|
||||||
|
baseList = hydrobaseMapper.selectByPbaseid(baseId);
|
||||||
|
SdHydrobase singleBase = hydrobaseMapper.selectById(baseId);
|
||||||
|
if (singleBase != null && !baseList.contains(singleBase)) {
|
||||||
|
baseList = new ArrayList<>();
|
||||||
|
baseList.add(singleBase);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
baseList = hydrobaseMapper.selectRootList();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. 预加载所有基地下的电站(按基地分组)
|
||||||
|
Map<String, List<SdEngInfoBH>> baseEngMap = new HashMap<>();
|
||||||
|
for (SdHydrobase hydrobase : baseList) {
|
||||||
|
List<SdEngInfoBH> engList = engInfoBHMapper.selectByBaseId(hydrobase.getBaseid());
|
||||||
|
|
||||||
|
if (StringUtils.hasText(engName) && engList != null) {
|
||||||
|
engList = engList.stream()
|
||||||
|
.filter(eng -> eng.getEnnm() != null && eng.getEnnm().contains(engName))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (engList != null && !engList.isEmpty()) {
|
||||||
|
baseEngMap.put(hydrobase.getBaseid(), engList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. 构建二级树形结构(基地 -> 电站)
|
||||||
|
for (SdHydrobase hydrobase : baseList) {
|
||||||
|
Map<String, Object> baseNode = new LinkedHashMap<>();
|
||||||
|
baseNode.put("type", "BASE");
|
||||||
|
baseNode.put("code", hydrobase.getBaseid());
|
||||||
|
baseNode.put("name", hydrobase.getBasename());
|
||||||
|
baseNode.put("shortname", hydrobase.getShortname());
|
||||||
|
baseNode.put("grd", hydrobase.getGrd());
|
||||||
|
baseNode.put("path", hydrobase.getPath());
|
||||||
|
baseNode.put("orgLevel", 0);
|
||||||
|
baseNode.put("parentId", "0");
|
||||||
|
|
||||||
|
// 获取该基地下的所有电站
|
||||||
|
List<SdEngInfoBH> engList = baseEngMap.get(hydrobase.getBaseid());
|
||||||
|
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", hydrobase.getBaseid());
|
||||||
|
engNode.put("orgLevel", 1);
|
||||||
|
engChildren.add(engNode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 只有当该基地下有电站时才添加该基地节点
|
||||||
|
if (!engChildren.isEmpty()) {
|
||||||
|
baseNode.put("children", engChildren);
|
||||||
|
result.add(baseNode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -233,7 +233,7 @@
|
|||||||
|
|
||||||
<select id="selectByBaseId" resultMap="BaseResultMap">
|
<select id="selectByBaseId" resultMap="BaseResultMap">
|
||||||
SELECT * FROM SD_ENGINFO_B_H
|
SELECT * FROM SD_ENGINFO_B_H
|
||||||
WHERE BASEID = #{baseId}
|
WHERE BASE_ID = #{baseId}
|
||||||
ORDER BY ORDER_INDEX ASC
|
ORDER BY ORDER_INDEX ASC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user