From af87b8ca9a6485181a94302e477ce184e517d49a Mon Sep 17 00:00:00 2001 From: tangwei Date: Thu, 4 Jun 2026 19:42:35 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E8=BF=87=E9=B1=BC?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=A1=AB=E6=8A=A5=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../qgc_base/domain/StationBasinInfo.java | 2 + .../qgc_base/mapper/SdEngInfoBHMapper.java | 6 ++ .../qgc_data/domain/FishDraftData.java | 6 ++ .../qgc_data/domain/ImportTaskRow.java | 2 + .../service/impl/FishImportServiceImpl.java | 71 ++++++++++-------- .../service/impl/ImportTaskServiceImpl.java | 2 + .../controller/SmsVerifyCodeController.java | 12 +-- .../system/service/impl/UserServiceImpl.java | 18 +++-- .../mapper/data/SysUserDataScopeMapper.xml | 75 +++++++++++++------ .../mapper/qgc_base/SdEngInfoBHMapper.xml | 26 ++++++- 10 files changed, 151 insertions(+), 69 deletions(-) diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/StationBasinInfo.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/StationBasinInfo.java index ac1f326c..d0c53bd6 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/StationBasinInfo.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/StationBasinInfo.java @@ -8,4 +8,6 @@ public class StationBasinInfo { private String ennm; // 电站名称 private String hbrvcd; // 流域编码 private String hbrvnm; // 流域名称 + private String rvcd; + private String rvnm; } diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdEngInfoBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdEngInfoBHMapper.java index 2a4fa27c..9ce5b3ee 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdEngInfoBHMapper.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdEngInfoBHMapper.java @@ -40,5 +40,11 @@ public interface SdEngInfoBHMapper extends BaseMapper { List selectByHbrvcdList(@Param("hbrvcdList") List hbrvcdList); + /** + * 根据基地流域编码列表批量查询电站 + */ + List selectByRvcdList(@Param("rvcdList") List rvcdList); + + List selectStationBasinInfo(); } diff --git a/backend/src/main/java/com/yfd/platform/qgc_data/domain/FishDraftData.java b/backend/src/main/java/com/yfd/platform/qgc_data/domain/FishDraftData.java index f3f02325..567d883d 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_data/domain/FishDraftData.java +++ b/backend/src/main/java/com/yfd/platform/qgc_data/domain/FishDraftData.java @@ -237,6 +237,12 @@ public class FishDraftData implements Serializable { @TableField(exist = false) private String rvcd; + /** + * 流域编码 + */ + @TableField(exist = false) + private String rvnm; + /** * 基地流域编码 */ diff --git a/backend/src/main/java/com/yfd/platform/qgc_data/domain/ImportTaskRow.java b/backend/src/main/java/com/yfd/platform/qgc_data/domain/ImportTaskRow.java index 71527dc8..3112c103 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_data/domain/ImportTaskRow.java +++ b/backend/src/main/java/com/yfd/platform/qgc_data/domain/ImportTaskRow.java @@ -47,6 +47,8 @@ public class ImportTaskRow implements Serializable { private String rvcd; + private String rvnm; + private String baseId; private String baseName; diff --git a/backend/src/main/java/com/yfd/platform/qgc_data/service/impl/FishImportServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_data/service/impl/FishImportServiceImpl.java index 6df1f3fd..fbecd30c 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_data/service/impl/FishImportServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_data/service/impl/FishImportServiceImpl.java @@ -133,7 +133,7 @@ public class FishImportServiceImpl implements IFishImportService { EXCEL_COLUMN_MAPPING.put("过鱼设施名称", "fpname"); - EXCEL_COLUMN_INDEX_MAPPING.put(0, "hbrvcd"); + EXCEL_COLUMN_INDEX_MAPPING.put(0, "rvcd"); EXCEL_COLUMN_INDEX_MAPPING.put(1, "stationName"); EXCEL_COLUMN_INDEX_MAPPING.put(2, "stnm"); EXCEL_COLUMN_INDEX_MAPPING.put(3, "strdt"); @@ -186,11 +186,11 @@ public class FishImportServiceImpl implements IFishImportService { Map columnIndexMap = new HashMap<>(EXCEL_COLUMN_INDEX_MAPPING); - Set allowedHbrvcdSet = new HashSet<>(); + Set allowedRvcdSet = new HashSet<>(); Set directStcdSet = new HashSet<>(); List sdFpssList=new ArrayList<>(); - List allowedHbrvcdList = new ArrayList<>(); + List allowedRvcdList = new ArrayList<>(); List directStcdList = new ArrayList<>(); if (uploadUserId != null) { List permissions = userDataScopeMapper.selectValidPermissions(uploadUserId); @@ -203,8 +203,8 @@ public class FishImportServiceImpl implements IFishImportService { continue; } - if ("HBRVCD".equals(orgType)) { - allowedHbrvcdSet.add(orgId); + if ("RVCD".equals(orgType)) { + allowedRvcdSet.add(orgId); } else if ("STATION".equals(orgType)) { directStcdSet.add(orgId); } @@ -213,9 +213,9 @@ public class FishImportServiceImpl implements IFishImportService { } - if (!allowedHbrvcdSet.isEmpty() || !directStcdSet.isEmpty()) { - if (!allowedHbrvcdSet.isEmpty()) { - List stationsFromHbrv = engInfoBHMapper.selectByHbrvcdList(new ArrayList<>(allowedHbrvcdSet)); + if (!allowedRvcdSet.isEmpty() || !directStcdSet.isEmpty()) { + if (!allowedRvcdSet.isEmpty()) { + List stationsFromHbrv = engInfoBHMapper.selectByRvcdList(new ArrayList<>(allowedRvcdSet)); for (SdEngInfoBH station : stationsFromHbrv) { if (station.getStcd() != null) { directStcdSet.add(station.getStcd()); @@ -229,16 +229,16 @@ public class FishImportServiceImpl implements IFishImportService { if (station.getStcd() != null) { directStcdSet.add(station.getStcd()); } - if (station.getHbrvcd() != null) { - allowedHbrvcdSet.add(station.getHbrvcd()); + if (station.getRvcd() != null) { + allowedRvcdSet.add(station.getRvcd()); } } } } - if(!allowedHbrvcdSet.isEmpty()){ - List sdHbrvDics = sdHbrvDicMapper.selectList(new LambdaQueryWrapper().in(SdHbrvDic::getHbrvcd, allowedHbrvcdSet).select(SdHbrvDic::getHbrvcd, SdHbrvDic::getHbrvnm)); - allowedHbrvcdList.addAll(sdHbrvDics); + if(!allowedRvcdSet.isEmpty()){ + List sdRvcdDics = rvcdDicMapper.selectList(new LambdaQueryWrapper().in(SdRvcdDic::getRvcd, allowedRvcdSet).select(SdRvcdDic::getRvcd, SdRvcdDic::getRvnm)); + allowedRvcdList.addAll(sdRvcdDics); } if (!directStcdSet.isEmpty()) { @@ -258,7 +258,7 @@ public class FishImportServiceImpl implements IFishImportService { continue; } - FishImportResult.FishImportRow importRow = parseRow(result, row, columnIndexMap, i, uploadUserId,allowedHbrvcdList,directStcdList,sdFpssList); + FishImportResult.FishImportRow importRow = parseRow(result, row, columnIndexMap, i, uploadUserId,allowedRvcdList,directStcdList,sdFpssList); result.setTotalCount(result.getTotalCount() + 1); if (importRow.getData() != null && importRow.getWarnings().isEmpty()) { result.addSuccessRow(importRow); @@ -274,7 +274,7 @@ public class FishImportServiceImpl implements IFishImportService { return result; } - private FishImportResult.FishImportRow parseRow(FishImportResult result, Row row, Map columnIndexMap, int rowIndex, String userId,List allowedHbrvcdList,List directStcdList,List sdFpssList) { + private FishImportResult.FishImportRow parseRow(FishImportResult result, Row row, Map columnIndexMap, int rowIndex, String userId,List allowRvcdList,List directStcdList,List sdFpssList) { FishImportResult.FishImportRow importRow = new FishImportResult.FishImportRow(rowIndex); @@ -323,13 +323,19 @@ public class FishImportServiceImpl implements IFishImportService { } break; case "rvcd": - if (StringUtils.hasText(cellValue)) { - String rvcd = resolveRiverCode(cellValue.trim()); - if (rvcd == null) { - importRow.getWarnings().add(fieldName); - data.setRvcd(cellValue); + if (!StringUtils.hasText(cellValue)) { + importRow.getWarnings().add("rvcd"); + data.setHbrvcd(cellValue); + data.setHbrvnm(cellValue); + } else { + String rvcdCode = allowRvcdList.stream().filter(sdRvcdDic -> sdRvcdDic.getRvnm().equals(cellValue.trim())).map(SdRvcdDic::getRvcd).findFirst().orElse( null); + if (StrUtil.isBlank(rvcdCode)) { + importRow.getWarnings().add("rvcd"); + data.setRvcd(cellValue.trim()); + data.setRvnm(cellValue.trim()); } else { - data.setRvcd(rvcd); + data.setRvcd(rvcdCode); + data.setRvnm(cellValue.trim()); } } break; @@ -338,17 +344,18 @@ public class FishImportServiceImpl implements IFishImportService { importRow.getWarnings().add("hbrvcd"); data.setHbrvcd(cellValue); data.setHbrvnm(cellValue); - } else { - String hbrvcdCode = allowedHbrvcdList.stream().filter(sdHbrvDic -> sdHbrvDic.getHbrvnm().equals(cellValue.trim())).map(SdHbrvDic::getHbrvcd).findFirst().orElse( null); - if (StrUtil.isBlank(hbrvcdCode)) { - importRow.getWarnings().add("hbrvcd"); - data.setHbrvcd(cellValue.trim()); - data.setHbrvnm(cellValue.trim()); - } else { - data.setHbrvcd(hbrvcdCode); - data.setHbrvnm(cellValue.trim()); - } } +// else { +// String hbrvcdCode = allowedHbrvcdList.stream().filter(sdHbrvDic -> sdHbrvDic.getHbrvnm().equals(cellValue.trim())).map(SdHbrvDic::getHbrvcd).findFirst().orElse( null); +// if (StrUtil.isBlank(hbrvcdCode)) { +// importRow.getWarnings().add("hbrvcd"); +// data.setHbrvcd(cellValue.trim()); +// data.setHbrvnm(cellValue.trim()); +// } else { +// data.setHbrvcd(hbrvcdCode); +// data.setHbrvnm(cellValue.trim()); +// } +// } // break; case "tm": @@ -618,7 +625,7 @@ public class FishImportServiceImpl implements IFishImportService { private void validateStationFpssRelation(FishDraftData data, FishImportResult.FishImportRow importRow) { - if (importRow.getWarnings().contains("hbrvcd")) { + if (importRow.getWarnings().contains("rvcd")) { if (!importRow.getWarnings().contains("rstcd")) { importRow.getWarnings().add("rstcd"); } diff --git a/backend/src/main/java/com/yfd/platform/qgc_data/service/impl/ImportTaskServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_data/service/impl/ImportTaskServiceImpl.java index db0b1550..c4c829d5 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_data/service/impl/ImportTaskServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_data/service/impl/ImportTaskServiceImpl.java @@ -263,6 +263,7 @@ public class ImportTaskServiceImpl extends ServiceImpl selectedStationCodes = new HashSet<>(); if (StringUtils.isNotEmpty(stationCode)) { @@ -250,8 +250,8 @@ public class SmsVerifyCodeController { } Set selectedBasinCodes = new HashSet<>(); - if (StringUtils.isNotEmpty(hbrvcdCode)) { - selectedBasinCodes.addAll(Arrays.asList(hbrvcdCode.split(","))); + if (StringUtils.isNotEmpty(rvcdCode)) { + selectedBasinCodes.addAll(Arrays.asList(rvcdCode.split(","))); } // Set addedStationCodes = new HashSet<>(); @@ -262,13 +262,13 @@ public class SmsVerifyCodeController { } List allStationsInBasin = engInfoBHService.lambdaQuery() - .eq(SdEngInfoBH::getHbrvcd, basinCode) + .eq(SdEngInfoBH::getRvcd, basinCode) .list(); if (allStationsInBasin == null || allStationsInBasin.isEmpty()) { SysUserDataScope scope = new SysUserDataScope(); scope.setUserId(userId); - scope.setOrgType("HBRVCD"); + scope.setOrgType("RVCD"); scope.setOrgId(basinCode); scope.setStatus(1); scope.setPermissionType("READ"); @@ -286,7 +286,7 @@ public class SmsVerifyCodeController { if (allStationsSelected) { SysUserDataScope scope = new SysUserDataScope(); scope.setUserId(userId); - scope.setOrgType("HBRVCD"); + scope.setOrgType("RVCD"); scope.setOrgId(basinCode); scope.setStatus(1); scope.setPermissionType("READ"); diff --git a/backend/src/main/java/com/yfd/platform/system/service/impl/UserServiceImpl.java b/backend/src/main/java/com/yfd/platform/system/service/impl/UserServiceImpl.java index bdc2fa5e..cdd40b31 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/impl/UserServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/system/service/impl/UserServiceImpl.java @@ -709,24 +709,28 @@ public class UserServiceImpl extends ServiceImpl impleme String orgId = scope.getOrgId(); String orgName = scope.getOrgName(); - if ("HBRVCD".equals(orgType)) { - if (orgName != null) { + if ("RVCD".equals(orgType)) { + if (StrUtil.isNotBlank(orgName)) { basinNameSet.add(orgName); } if (orgId != null) { if (stationBasinInfos != null) { - List stcdList = stationBasinInfos.stream().filter(info -> info.getHbrvcd().equals(orgId)).map(StationBasinInfo::getEnnm).toList(); - stationNameSet.addAll(stcdList); + List stcdList = stationBasinInfos.stream().filter(info -> info.getRvcd().equals(orgId)).map(StationBasinInfo::getEnnm).toList(); + if(!stcdList.isEmpty()){ + stationNameSet.addAll(stcdList); + } } } } else if ("STATION".equals(orgType)) { - if (orgName != null) { + if (StrUtil.isNotBlank(orgName)) { stationNameSet.add(orgName); } if (orgId != null) { if (stationBasinInfos != null) { - String hbrbcd = stationBasinInfos.stream().filter(info -> info.getStcd().equals(orgId)).map(StationBasinInfo::getHbrvnm).findFirst().orElse(null); - basinNameSet.add(hbrbcd); + String rvcd = stationBasinInfos.stream().filter(info -> info.getStcd().equals(orgId)).map(StationBasinInfo::getRvnm).findFirst().orElse(null); + if(StrUtil.isNotBlank(rvcd)){ + basinNameSet.add(rvcd); + } } } } diff --git a/backend/src/main/resources/mapper/data/SysUserDataScopeMapper.xml b/backend/src/main/resources/mapper/data/SysUserDataScopeMapper.xml index 47fa5c30..7f4f65d0 100644 --- a/backend/src/main/resources/mapper/data/SysUserDataScopeMapper.xml +++ b/backend/src/main/resources/mapper/data/SysUserDataScopeMapper.xml @@ -103,36 +103,69 @@ ORDER BY s.CREATED_AT DESC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/backend/src/main/resources/mapper/qgc_base/SdEngInfoBHMapper.xml b/backend/src/main/resources/mapper/qgc_base/SdEngInfoBHMapper.xml index 0e04883c..09252e15 100644 --- a/backend/src/main/resources/mapper/qgc_base/SdEngInfoBHMapper.xml +++ b/backend/src/main/resources/mapper/qgc_base/SdEngInfoBHMapper.xml @@ -238,15 +238,25 @@ + + + + + + + + + + + + +