fix: 优化过鱼数据填报逻辑
This commit is contained in:
parent
17007d8a18
commit
af87b8ca9a
@ -8,4 +8,6 @@ public class StationBasinInfo {
|
||||
private String ennm; // 电站名称
|
||||
private String hbrvcd; // 流域编码
|
||||
private String hbrvnm; // 流域名称
|
||||
private String rvcd;
|
||||
private String rvnm;
|
||||
}
|
||||
|
||||
@ -40,5 +40,11 @@ public interface SdEngInfoBHMapper extends BaseMapper<SdEngInfoBH> {
|
||||
List<SdEngInfoBH> selectByHbrvcdList(@Param("hbrvcdList") List<String> hbrvcdList);
|
||||
|
||||
|
||||
/**
|
||||
* 根据基地流域编码列表批量查询电站
|
||||
*/
|
||||
List<SdEngInfoBH> selectByRvcdList(@Param("rvcdList") List<String> rvcdList);
|
||||
|
||||
|
||||
List<StationBasinInfo> selectStationBasinInfo();
|
||||
}
|
||||
|
||||
@ -237,6 +237,12 @@ public class FishDraftData implements Serializable {
|
||||
@TableField(exist = false)
|
||||
private String rvcd;
|
||||
|
||||
/**
|
||||
* 流域编码
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private String rvnm;
|
||||
|
||||
/**
|
||||
* 基地流域编码
|
||||
*/
|
||||
|
||||
@ -47,6 +47,8 @@ public class ImportTaskRow implements Serializable {
|
||||
|
||||
private String rvcd;
|
||||
|
||||
private String rvnm;
|
||||
|
||||
private String baseId;
|
||||
|
||||
private String baseName;
|
||||
|
||||
@ -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<Integer, String> columnIndexMap = new HashMap<>(EXCEL_COLUMN_INDEX_MAPPING);
|
||||
|
||||
Set<String> allowedHbrvcdSet = new HashSet<>();
|
||||
Set<String> allowedRvcdSet = new HashSet<>();
|
||||
Set<String> directStcdSet = new HashSet<>();
|
||||
|
||||
List<SdFpssBH> sdFpssList=new ArrayList<>();
|
||||
List<SdHbrvDic> allowedHbrvcdList = new ArrayList<>();
|
||||
List<SdRvcdDic> allowedRvcdList = new ArrayList<>();
|
||||
List<SdEngInfoBH> directStcdList = new ArrayList<>();
|
||||
if (uploadUserId != null) {
|
||||
List<SysUserDataScope> 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<SdEngInfoBH> stationsFromHbrv = engInfoBHMapper.selectByHbrvcdList(new ArrayList<>(allowedHbrvcdSet));
|
||||
if (!allowedRvcdSet.isEmpty() || !directStcdSet.isEmpty()) {
|
||||
if (!allowedRvcdSet.isEmpty()) {
|
||||
List<SdEngInfoBH> 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<SdHbrvDic> sdHbrvDics = sdHbrvDicMapper.selectList(new LambdaQueryWrapper<SdHbrvDic>().in(SdHbrvDic::getHbrvcd, allowedHbrvcdSet).select(SdHbrvDic::getHbrvcd, SdHbrvDic::getHbrvnm));
|
||||
allowedHbrvcdList.addAll(sdHbrvDics);
|
||||
if(!allowedRvcdSet.isEmpty()){
|
||||
List<SdRvcdDic> sdRvcdDics = rvcdDicMapper.selectList(new LambdaQueryWrapper<SdRvcdDic>().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<Integer, String> columnIndexMap, int rowIndex, String userId,List<SdHbrvDic> allowedHbrvcdList,List<SdEngInfoBH> directStcdList,List<SdFpssBH> sdFpssList) {
|
||||
private FishImportResult.FishImportRow parseRow(FishImportResult result, Row row, Map<Integer, String> columnIndexMap, int rowIndex, String userId,List<SdRvcdDic> allowRvcdList,List<SdEngInfoBH> directStcdList,List<SdFpssBH> 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 {
|
||||
data.setRvcd(rvcd);
|
||||
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(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");
|
||||
}
|
||||
|
||||
@ -263,6 +263,7 @@ public class ImportTaskServiceImpl extends ServiceImpl<ImportTaskMapper, ImportT
|
||||
taskRow.setHbrvcd(data.getHbrvcd());
|
||||
taskRow.setHbrvnm(data.getHbrvnm());
|
||||
taskRow.setRvcd(data.getRvcd());
|
||||
taskRow.setRvnm(data.getRvnm());
|
||||
taskRow.setBaseId(data.getBaseId());
|
||||
taskRow.setBaseName(data.getBaseName());
|
||||
taskRow.setStrdt(data.getStrdt());
|
||||
@ -369,6 +370,7 @@ public class ImportTaskServiceImpl extends ServiceImpl<ImportTaskMapper, ImportT
|
||||
data.setHbrvcd(row.getHbrvcd());
|
||||
data.setHbrvnm(row.getHbrvnm());
|
||||
data.setRvcd(row.getRvcd());
|
||||
data.setRvnm(row.getRvnm());
|
||||
data.setBaseId(row.getBaseId());
|
||||
data.setBaseName(row.getBaseName());
|
||||
data.setStrdt(row.getStrdt());
|
||||
|
||||
@ -242,7 +242,7 @@ public class SmsVerifyCodeController {
|
||||
}
|
||||
|
||||
String stationCode = smsVerifyCodeRequest.getStationCode();
|
||||
String hbrvcdCode = smsVerifyCodeRequest.getHbrvcdCode();
|
||||
String rvcdCode = smsVerifyCodeRequest.getRvcdCode();
|
||||
|
||||
Set<String> selectedStationCodes = new HashSet<>();
|
||||
if (StringUtils.isNotEmpty(stationCode)) {
|
||||
@ -250,8 +250,8 @@ public class SmsVerifyCodeController {
|
||||
}
|
||||
|
||||
Set<String> selectedBasinCodes = new HashSet<>();
|
||||
if (StringUtils.isNotEmpty(hbrvcdCode)) {
|
||||
selectedBasinCodes.addAll(Arrays.asList(hbrvcdCode.split(",")));
|
||||
if (StringUtils.isNotEmpty(rvcdCode)) {
|
||||
selectedBasinCodes.addAll(Arrays.asList(rvcdCode.split(",")));
|
||||
}
|
||||
|
||||
// Set<String> addedStationCodes = new HashSet<>();
|
||||
@ -262,13 +262,13 @@ public class SmsVerifyCodeController {
|
||||
}
|
||||
|
||||
List<SdEngInfoBH> 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");
|
||||
|
||||
@ -709,24 +709,28 @@ public class UserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> 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<String> stcdList = stationBasinInfos.stream().filter(info -> info.getHbrvcd().equals(orgId)).map(StationBasinInfo::getEnnm).toList();
|
||||
List<String> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -103,6 +103,7 @@
|
||||
ORDER BY s.CREATED_AT DESC
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectValidPermissionsWithNameByUserIds" resultMap="BaseResultMap">
|
||||
SELECT
|
||||
s.ID,
|
||||
@ -123,10 +124,10 @@
|
||||
s.UPDATED_AT,
|
||||
s.UPDATED_BY,
|
||||
s.REMARK,
|
||||
COALESCE(e.ENNM, h.HBRVNM) AS orgName
|
||||
COALESCE(e.ENNM, h.RVNM) AS orgName
|
||||
FROM SYS_USER_DATA_SCOPE s
|
||||
LEFT JOIN SD_ENGINFO_B_H e ON s.ORG_TYPE = 'STATION' AND s.ORG_ID = e.stcd
|
||||
LEFT JOIN SD_HBRV_DIC h ON s.ORG_TYPE = 'HBRVCD' AND s.ORG_ID = h.hbrvcd
|
||||
LEFT JOIN SD_RVCD_DIC h ON s.ORG_TYPE = 'RVCD' AND s.ORG_ID = h.rvcd
|
||||
WHERE s.USER_ID IN
|
||||
<foreach collection="userIds" item="id" open="(" separator="," close=")">
|
||||
#{id}
|
||||
@ -135,4 +136,36 @@
|
||||
ORDER BY s.CREATED_AT DESC
|
||||
</select>
|
||||
|
||||
<!-- <select id="selectValidPermissionsWithNameByUserIds" resultMap="BaseResultMap">-->
|
||||
<!-- SELECT-->
|
||||
<!-- s.ID,-->
|
||||
<!-- s.USER_ID,-->
|
||||
<!-- s.ORG_TYPE,-->
|
||||
<!-- s.ORG_ID,-->
|
||||
<!-- s.PARENT_ID,-->
|
||||
<!-- s.ORG_LEVEL,-->
|
||||
<!-- s.PATH,-->
|
||||
<!-- s.PERMISSION_TYPE,-->
|
||||
<!-- s.ROLE_CODE,-->
|
||||
<!-- s.DATA_SCOPE,-->
|
||||
<!-- s.STATUS,-->
|
||||
<!-- s.START_TIME,-->
|
||||
<!-- s.END_TIME,-->
|
||||
<!-- s.CREATED_AT,-->
|
||||
<!-- s.CREATED_BY,-->
|
||||
<!-- s.UPDATED_AT,-->
|
||||
<!-- s.UPDATED_BY,-->
|
||||
<!-- s.REMARK,-->
|
||||
<!-- COALESCE(e.ENNM, h.HBRVNM) AS orgName-->
|
||||
<!-- FROM SYS_USER_DATA_SCOPE s-->
|
||||
<!-- LEFT JOIN SD_ENGINFO_B_H e ON s.ORG_TYPE = 'STATION' AND s.ORG_ID = e.stcd-->
|
||||
<!-- LEFT JOIN SD_HBRV_DIC h ON s.ORG_TYPE = 'HBRVCD' AND s.ORG_ID = h.hbrvcd-->
|
||||
<!-- WHERE s.USER_ID IN-->
|
||||
<!-- <foreach collection="userIds" item="id" open="(" separator="," close=")">-->
|
||||
<!-- #{id}-->
|
||||
<!-- </foreach>-->
|
||||
<!-- AND s.STATUS = 1-->
|
||||
<!-- ORDER BY s.CREATED_AT DESC-->
|
||||
<!-- </select>-->
|
||||
|
||||
</mapper>
|
||||
|
||||
@ -238,15 +238,25 @@
|
||||
<result column="HBRVNM" property="hbrvnm"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
<select id="selectStationBasinInfo" resultMap="StationBasinInfoResultMap">
|
||||
SELECT
|
||||
e.STCD,
|
||||
e.ENNM,
|
||||
e.HBRVCD,
|
||||
h.HBRVNM
|
||||
e.RVCD,
|
||||
h.RVNM
|
||||
FROM SD_ENGINFO_B_H e
|
||||
LEFT JOIN SD_HBRV_DIC h ON e.HBRVCD = h.HBRVCD
|
||||
INNER JOIN SD_RVCD_DIC h ON e.RVCD = h.RVCD
|
||||
</select>
|
||||
<!-- <select id="selectStationBasinInfo" resultMap="StationBasinInfoResultMap">-->
|
||||
<!-- SELECT-->
|
||||
<!-- e.STCD,-->
|
||||
<!-- e.ENNM,-->
|
||||
<!-- e.HBRVCD,-->
|
||||
<!-- h.HBRVNM-->
|
||||
<!-- FROM SD_ENGINFO_B_H e-->
|
||||
<!-- LEFT JOIN SD_HBRV_DIC h ON e.HBRVCD = h.HBRVCD-->
|
||||
<!-- </select>-->
|
||||
|
||||
<select id="selectByBaseId" resultMap="BaseResultMap">
|
||||
SELECT * FROM SD_ENGINFO_B_H
|
||||
@ -281,4 +291,14 @@
|
||||
ORDER BY HBRVCD, ORDER_INDEX ASC
|
||||
</select>
|
||||
|
||||
<select id="selectByRvcdList" resultMap="BaseResultMap">
|
||||
SELECT * FROM SD_ENGINFO_B_H
|
||||
WHERE RVCD IN
|
||||
<foreach collection="rvcdList" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
ORDER BY HBRVCD, ORDER_INDEX ASC
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user