fix: 增加流域注册下拉接口

This commit is contained in:
tangwei 2026-06-09 17:17:59 +08:00
parent 79fbd51fca
commit f1651fb18e
4 changed files with 153 additions and 79 deletions

View File

@ -20,6 +20,7 @@ public class RegisterAccessTokenFilter extends OncePerRequestFilter {
private static final String ENG_INFO_PATH = "/register/dropdown/engInfo";
private static final String HBRV_PATH = "/register/dropdown/hbrv";
private static final String HYCD_PATH = "/register/dropdown/hycd";
private static final String RVCD_PATH = "/register/dropdown/rvcd";
@Resource
private RegisterAccessTokenService registerAccessTokenService;
@ -51,7 +52,7 @@ public class RegisterAccessTokenFilter extends OncePerRequestFilter {
}
private boolean needsRegisterAccessToken(String uri) {
return ENG_INFO_PATH.equals(uri) || HBRV_PATH.equals(uri) || HYCD_PATH.equals(uri);
return ENG_INFO_PATH.equals(uri) || HBRV_PATH.equals(uri) || HYCD_PATH.equals(uri)|| RVCD_PATH.equals(uri);
}
private String resolveRequestPath(HttpServletRequest request) {

View File

@ -5,6 +5,7 @@ import com.yfd.platform.qgc_base.domain.SdEngInfoBHRequest;
import com.yfd.platform.qgc_base.service.ISdEngInfoBHService;
import com.yfd.platform.qgc_base.service.ISdHbrvDicService;
import com.yfd.platform.qgc_base.service.ISdHycdDicService;
import com.yfd.platform.qgc_base.service.ISdRvcdDicService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
@ -29,6 +30,9 @@ public class RegisterDropdownController {
@Resource
private ISdHycdDicService hycdDicService;
@Resource
private ISdRvcdDicService sdRvcdDicService;
@PostMapping("/engInfo")
@Operation(summary = "注册场景电站下拉")
public ResponseResult engInfoDropdown(@RequestBody SdEngInfoBHRequest request) {
@ -50,4 +54,12 @@ public class RegisterDropdownController {
@RequestParam(required = false) String phycd) {
return ResponseResult.successData(hycdDicService.regDropdown(hynm, grd, lx, phycd));
}
@GetMapping("/rvcd")
@Operation(summary = "流域下拉框列表查询(注册)")
public ResponseResult regDropdown(
@RequestParam(required = false) String rvnm,
@RequestParam(required = false) String rvcd) {
return ResponseResult.successData(sdRvcdDicService.regDropdown(rvnm, rvcd));
}
}

View File

@ -228,16 +228,18 @@ public class AlongDetailServiceImpl extends ServiceImpl<AlongDetailMapper, SdAlo
iwtDataVoList.addAll(this.alongDetailMapper.getIwtrvDataList(wtrvInfo.getStcd(), null, startTime, endTime));
wtvtDataVoList.addAll(this.alongDetailMapper.getWtvtDataList(null, wtrvInfo.getRstcd(), startTime, endTime));
wtvtDataVoMap = wtvtDataVoList.stream()
.filter(it -> it.get("tm") != null)
.collect(Collectors.groupingBy(it -> (Date) it.get("tm")));
.filter(it -> getDateValueIgnoreCase(it, "tm") != null)
.collect(Collectors.groupingBy(it -> getDateValueIgnoreCase(it, "tm")));
} else {
wtvtDataVoMap = null;
}
Map<Date, Map<String, Object>> iwtDataMap = iwtDataVoList.stream()
.collect(Collectors.toMap(it -> (Date) it.get("tm"), Function.identity()));
.filter(it -> getDateValueIgnoreCase(it, "tm") != null)
.collect(Collectors.toMap(it -> getDateValueIgnoreCase(it, "tm"), Function.identity()));
Map<Date, Map<String, Object>> dwtDataMap = dwtDataVoList.stream()
.collect(Collectors.toMap(it -> (Date) it.get("tm"), Function.identity()));
.filter(it -> getDateValueIgnoreCase(it, "tm") != null)
.collect(Collectors.toMap(it -> getDateValueIgnoreCase(it, "tm"), Function.identity()));
// hydropwDataVoList.addAll(this.alongDetailMapper.getHydropwDataList(wtrvInfo.getStcd(), startTime, endTime));
// Map<Date, Map<String, Object>> hydropwDataMap = hydropwDataVoList.stream()
@ -255,10 +257,10 @@ public class AlongDetailServiceImpl extends ServiceImpl<AlongDetailMapper, SdAlo
if (StrUtil.isNotBlank(wtrvInfo.getRstcd())) {
wtnpDataVoList = this.alongDetailMapper.getNatureTmpDataList(wtrvInfo.getRstcd(), null);
wtnpDataMap.putAll(wtnpDataVoList.stream()
.filter(it -> it.get("mnth") != null)
.filter(it -> getIntegerValueIgnoreCase(it, "mnth") != null)
.collect(Collectors.toMap(
it -> (Integer) it.get("mnth"),
it -> (BigDecimal) it.get("wt")
it -> getIntegerValueIgnoreCase(it, "mnth"),
it -> getBigDecimalValueIgnoreCase(it, "wt")
)));
}
@ -296,8 +298,8 @@ public class AlongDetailServiceImpl extends ServiceImpl<AlongDetailMapper, SdAlo
List<Map<String, Object>> vtList = wtvtDataVoMap.get(it.getTm());
if (vtList != null) {
Map<BigDecimal, List<Map<String, Object>>> vtMap = vtList.stream()
.filter(tt -> tt.get("vwt") != null)
.collect(Collectors.groupingBy(tt -> (BigDecimal) tt.get("vwt")));
.filter(tt -> getBigDecimalValueIgnoreCase(tt, "vwt") != null)
.collect(Collectors.groupingBy(tt -> getBigDecimalValueIgnoreCase(tt, "vwt")));
if (vtMap.containsKey(it.getWt())) {
vo.put("wtvtDataVo", vtMap.get(it.getWt()).get(0));
@ -332,8 +334,10 @@ public class AlongDetailServiceImpl extends ServiceImpl<AlongDetailMapper, SdAlo
if (leftVt != null && rightVt != null) {
BigDecimal currentWt = it.getWt();
BigDecimal wthg = ((rightVt.subtract(currentWt)).multiply((BigDecimal) leftVo.get("wthg"))
.add((currentWt.subtract(leftVt)).multiply((BigDecimal) rightVo.get("wthg"))))
BigDecimal leftWthg = getBigDecimalValueIgnoreCase(leftVo, "wthg");
BigDecimal rightWthg = getBigDecimalValueIgnoreCase(rightVo, "wthg");
BigDecimal wthg = ((rightVt.subtract(currentWt)).multiply(leftWthg)
.add((currentWt.subtract(leftVt)).multiply(rightWthg)))
.divide((rightVt.subtract(currentWt)).add(currentWt.subtract(leftVt)), RoundingMode.HALF_UP);
vo1.put("wthg", wthg);
vo1.put("vwt", currentWt);
@ -350,6 +354,61 @@ public class AlongDetailServiceImpl extends ServiceImpl<AlongDetailMapper, SdAlo
return dr;
}
private Object getValueIgnoreCase(Map<String, Object> data, String key) {
if (data == null || StrUtil.isBlank(key)) {
return null;
}
if (data.containsKey(key)) {
return data.get(key);
}
String upperKey = key.toUpperCase(Locale.ROOT);
if (data.containsKey(upperKey)) {
return data.get(upperKey);
}
String lowerKey = key.toLowerCase(Locale.ROOT);
if (data.containsKey(lowerKey)) {
return data.get(lowerKey);
}
for (Map.Entry<String, Object> entry : data.entrySet()) {
if (entry.getKey() != null && entry.getKey().equalsIgnoreCase(key)) {
return entry.getValue();
}
}
return null;
}
private Date getDateValueIgnoreCase(Map<String, Object> data, String key) {
return (Date) getValueIgnoreCase(data, key);
}
private Integer getIntegerValueIgnoreCase(Map<String, Object> data, String key) {
Object value = getValueIgnoreCase(data, key);
if (value == null) {
return null;
}
if (value instanceof Integer integerValue) {
return integerValue;
}
if (value instanceof Number numberValue) {
return numberValue.intValue();
}
return Integer.valueOf(String.valueOf(value));
}
private BigDecimal getBigDecimalValueIgnoreCase(Map<String, Object> data, String key) {
Object value = getValueIgnoreCase(data, key);
if (value == null) {
return null;
}
if (value instanceof BigDecimal decimalValue) {
return decimalValue;
}
if (value instanceof Number numberValue) {
return BigDecimal.valueOf(numberValue.doubleValue());
}
return new BigDecimal(String.valueOf(value));
}
@Override
public WtrvInfo getWtrvInfoByStcd(String stcd) {

View File

@ -61,25 +61,26 @@
t.GRD,
t.PATH,
t.ORDER_INDEX,
t.LGTD,
t.LTTD,
t.AREA,
t.PERIMETER,
t.COUNTRY,
t.LOGO,
t.INTRODUCE,
t.INFFILE,
-- t.LGTD,
-- t.LTTD,
-- t.AREA,
-- t.PERIMETER,
-- t.COUNTRY,
-- t.LOGO,
-- t.INTRODUCE,
-- t.INFFILE,
t.SHORTNAME,
t.SHEPRANGE,
t.BASEID,
t.ENABLED,
t.RECORD_USER,
t.RECORD_TIME,
t.MODIFY_USER,
t.MODIFY_TIME,
t.IS_DELETED,
t.DELETE_USER,
t.DELETE_TIME
t.BASEID
-- ,
-- t.ENABLED,
-- t.RECORD_USER,
-- t.RECORD_TIME,
-- t.MODIFY_USER,
-- t.MODIFY_TIME,
-- t.IS_DELETED,
-- t.DELETE_USER,
-- t.DELETE_TIME
FROM (
SELECT
d.RVCD,
@ -88,25 +89,25 @@
d.GRD,
d.PATH,
d.ORDER_INDEX,
d.LGTD,
d.LTTD,
d.AREA,
d.PERIMETER,
d.COUNTRY,
d.LOGO,
d.INTRODUCE,
d.INFFILE,
-- d.LGTD,
-- d.LTTD,
-- d.AREA,
-- d.PERIMETER,
-- d.COUNTRY,
-- d.LOGO,
-- d.INTRODUCE,
-- d.INFFILE,
d.SHORTNAME,
d.SHEPRANGE,
d.BASEID,
d.ENABLED,
d.RECORD_USER,
d.RECORD_TIME,
d.MODIFY_USER,
d.MODIFY_TIME,
d.IS_DELETED,
d.DELETE_USER,
d.DELETE_TIME,
-- d.ENABLED,
-- d.RECORD_USER,
-- d.RECORD_TIME,
-- d.MODIFY_USER,
-- d.MODIFY_TIME,
-- d.IS_DELETED,
-- d.DELETE_USER,
-- d.DELETE_TIME,
SYS_CONNECT_BY_PATH(LPAD(NVL(d.ORDER_INDEX, 999999999), 10, '0'), '/') AS ORDER_PATH,
LEVEL AS TREE_LEVEL
FROM (
@ -137,25 +138,26 @@
t.GRD,
t.PATH,
t.ORDER_INDEX,
t.LGTD,
t.LTTD,
t.AREA,
t.PERIMETER,
t.COUNTRY,
t.LOGO,
t.INTRODUCE,
t.INFFILE,
-- t.LGTD,
-- t.LTTD,
-- t.AREA,
-- t.PERIMETER,
-- t.COUNTRY,
-- t.LOGO,
-- t.INTRODUCE,
-- t.INFFILE,
t.SHORTNAME,
t.SHEPRANGE,
t.BASEID,
t.ENABLED,
t.RECORD_USER,
t.RECORD_TIME,
t.MODIFY_USER,
t.MODIFY_TIME,
t.IS_DELETED,
t.DELETE_USER,
t.DELETE_TIME
t.BASEID
-- ,
-- t.ENABLED,
-- t.RECORD_USER,
-- t.RECORD_TIME,
-- t.MODIFY_USER,
-- t.MODIFY_TIME,
-- t.IS_DELETED,
-- t.DELETE_USER,
-- t.DELETE_TIME
FROM (
SELECT
d.RVCD,
@ -164,25 +166,25 @@
d.GRD,
d.PATH,
d.ORDER_INDEX,
d.LGTD,
d.LTTD,
d.AREA,
d.PERIMETER,
d.COUNTRY,
d.LOGO,
d.INTRODUCE,
d.INFFILE,
-- d.LGTD,
-- d.LTTD,
-- d.AREA,
-- d.PERIMETER,
-- d.COUNTRY,
-- d.LOGO,
-- d.INTRODUCE,
-- d.INFFILE,
d.SHORTNAME,
d.SHEPRANGE,
d.BASEID,
d.ENABLED,
d.RECORD_USER,
d.RECORD_TIME,
d.MODIFY_USER,
d.MODIFY_TIME,
d.IS_DELETED,
d.DELETE_USER,
d.DELETE_TIME,
-- d.ENABLED,
-- d.RECORD_USER,
-- d.RECORD_TIME,
-- d.MODIFY_USER,
-- d.MODIFY_TIME,
-- d.IS_DELETED,
-- d.DELETE_USER,
-- d.DELETE_TIME,
SYS_CONNECT_BY_PATH(LPAD(NVL(d.ORDER_INDEX, 999999999), 10, '0'), '/') AS ORDER_PATH,
LEVEL AS TREE_LEVEL
FROM (
@ -199,7 +201,7 @@
AND EXISTS (
SELECT 1
FROM SD_ENGINFO_B_H eng
WHERE eng.RVCD = t.RVCD
WHERE eng.REACHCD = t.RVCD
AND NVL(eng.IS_DELETED, 0) = 0
)
<if test="rvcd != null and rvcd != ''">