fix: 植物园单站基础信息

This commit is contained in:
tangwei 2026-06-10 10:29:36 +08:00
parent 7dad92b195
commit aaaa6ad735
5 changed files with 137 additions and 0 deletions

View File

@ -7,8 +7,10 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -32,4 +34,10 @@ public class VpConstructionController {
public ResponseResult getVmsstbprptList(@RequestBody DataSourceRequest dataSourceRequest) {
return ResponseResult.successData(vpConstructionService.processVmsstbprptList(dataSourceRequest));
}
@GetMapping("/msstbprpt/getStInfoByStcd")
@Operation(summary = "植物园单站基础信息")
public ResponseResult getStInfoByStcd(@RequestParam String stcd) {
return ResponseResult.successData(vpConstructionService.getStInfoByStcd(stcd));
}
}

View File

@ -0,0 +1,51 @@
package com.yfd.platform.qgc_env.vap.entity.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
@Schema(description = "植物园单站基础信息")
public class VpStBaseInfoVo {
@Schema(description = "站点编码")
private String stcd;
@Schema(description = "站点名称")
private String stnm;
@Schema(description = "站类编码")
private String sttpCode;
@Schema(description = "站类名称")
private String sttpName;
@Schema(description = "站类全路径")
private String sttpFullPath;
@Schema(description = "站类层级")
private Integer sttpTreeLevel;
@Schema(description = "关联站点编码")
private String stCode;
@Schema(description = "关联站点名称")
private String stName;
@Schema(description = "所属基地编码")
private String baseId;
@Schema(description = "所属基地名称")
private String baseName;
@Schema(description = "所属基地流域编码")
private String hbrvcd;
@Schema(description = "所属基地流域名称")
private String hbrvcdName;
@Schema(description = "所属流域编码")
private String rvcd;
@Schema(description = "所属流域名称")
private String rvcdName;
}

View File

@ -0,0 +1,26 @@
package com.yfd.platform.qgc_env.vap.entity.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@Data
@Schema(description = "植物园站点详情返回")
public class VpStInfoResultVo {
@Schema(description = "主信息兼容对象")
private Map<String, Object> msStbprpT = new LinkedHashMap<>();
@Schema(description = "测值列表")
private List<Object> stcdValVoList = new ArrayList<>();
@Schema(description = "关联列表")
private List<Object> relList = new ArrayList<>();
@Schema(description = "站点基础信息")
private VpStBaseInfoVo stBaseInfo;
}

View File

@ -2,10 +2,13 @@ package com.yfd.platform.qgc_env.vap.service;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.DataSourceResult;
import com.yfd.platform.qgc_env.vap.entity.vo.VpStInfoResultVo;
public interface VpConstructionService {
DataSourceResult processKendoList(DataSourceRequest dataSourceRequest);
DataSourceResult processVmsstbprptList(DataSourceRequest dataSourceRequest);
VpStInfoResultVo getStInfoByStcd(String stcd);
}

View File

@ -10,6 +10,8 @@ import com.yfd.platform.common.GroupingInfo;
import com.yfd.platform.common.MicroservicDynamicSQLMapper;
import com.yfd.platform.common.PageInfo;
import com.yfd.platform.qgc_env.vap.entity.vo.VpConstructionSituationVo;
import com.yfd.platform.qgc_env.vap.entity.vo.VpStBaseInfoVo;
import com.yfd.platform.qgc_env.vap.entity.vo.VpStInfoResultVo;
import com.yfd.platform.qgc_env.vap.entity.vo.VpVmsstbprptVo;
import com.yfd.platform.qgc_env.vap.service.VpConstructionService;
import com.yfd.platform.utils.KendoUtil;
@ -128,6 +130,26 @@ public class VpConstructionServiceImpl implements VpConstructionService {
return result;
}
@Override
public VpStInfoResultVo getStInfoByStcd(String stcd) {
VpStInfoResultVo result = new VpStInfoResultVo();
if (StrUtil.isBlank(stcd)) {
return result;
}
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("stcd", stcd);
List<VpStBaseInfoVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(
null,
buildStInfoByStcdSql(),
paramMap,
VpStBaseInfoVo.class
);
if (!list.isEmpty()) {
result.setStBaseInfo(list.get(0));
}
return result;
}
private String buildBaseSql(boolean botanicalGarden, boolean nationwide) {
String baseIdExpr = botanicalGarden
? "CASE WHEN vp.BASE_ID IS NULL THEN 'null' ELSE vp.BASE_ID END"
@ -479,6 +501,33 @@ public class VpConstructionServiceImpl implements VpConstructionService {
"WHERE NVL(vp.IS_DELETED, 0) = 0";
}
private String buildStInfoByStcdSql() {
return "SELECT " +
"vp.STCD AS stcd, " +
"vp.STNM AS stnm, " +
"vp.STTP AS sttpCode, " +
"sttp.STTP_NAME AS sttpName, " +
"sttp.FULL_PATH AS sttpFullPath, " +
"sttp.TREE_LEVEL AS sttpTreeLevel, " +
"CAST(NULL AS VARCHAR2(100)) AS stCode, " +
"CAST(NULL AS VARCHAR2(200)) AS stName, " +
"vp.BASE_ID AS baseId, " +
"hb.BASENAME AS baseName, " +
"vp.HBRVCD AS hbrvcd, " +
"hbrv.HBRVNM AS hbrvcdName, " +
"eng.REACHCD AS rvcd, " +
"rv.RVNM AS rvcdName " +
"FROM SD_VP_B_H vp " +
"LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = vp.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " +
"LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = vp.HBRVCD AND hbrv.BASEID = vp.BASE_ID " +
" AND NVL(hbrv.IS_DELETED, 0) = 0 AND NVL(hbrv.ENABLED, 1) = 1 " +
"LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = vp.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 " +
"LEFT JOIN SD_RVCD_DIC rv ON rv.RVCD = eng.REACHCD " +
"LEFT JOIN SD_STTP_B sttp ON sttp.STTP_CODE = vp.STTP " +
" AND NVL(sttp.IS_DELETED, 0) = 0 AND NVL(sttp.ENABLE, 1) = 1 " +
"WHERE NVL(vp.IS_DELETED, 0) = 0 AND vp.STCD = #{map.stcd}";
}
private String buildVmsstbprptFilterCondition(DataSourceRequest.FilterDescriptor filter,
Map<String, Object> paramMap,
int[] indexHolder) {