diff --git a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/controller/EngEqDataController.java b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/controller/EngEqDataController.java index 8ff8bc00..962d0667 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/controller/EngEqDataController.java +++ b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/controller/EngEqDataController.java @@ -16,11 +16,14 @@ import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqVmsstbprptVo; import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqRateCountVo; import com.yfd.platform.qgc_eng.eq.service.EngEqDataService; import com.yfd.platform.qgc_eng.eq.entity.vo.QgcQecStaticVo; +import com.yfd.platform.qgc_eng.eq.entity.vo.StcdInfoVo; import com.yfd.platform.utils.QgcQueryWrapperUtil; +import cn.hutool.core.util.StrUtil; 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.RequestMapping; @@ -168,4 +171,14 @@ public class EngEqDataController { public ResponseResult getDefaultYear(@RequestBody DataSourceRequest dataSourceRequest) { return ResponseResult.successData(engEqDataService.getDefaultYear(dataSourceRequest)); } + + @GetMapping("/eq/base/msstbprpt/getStInfoByStcd") + @Operation(summary = "根据stcd编码获取所有关联站点的信息") + public ResponseResult getStInfoByStcd(String stcd) { + if (StrUtil.isBlank(stcd)) { + return ResponseResult.error("站点编码(stcd)不能为空"); + } + StcdInfoVo result = engEqDataService.getStInfoByStcd(stcd); + return ResponseResult.successData(result); + } } diff --git a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/StBaseInfo.java b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/StBaseInfo.java new file mode 100644 index 00000000..dbb6c429 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/StBaseInfo.java @@ -0,0 +1,31 @@ +package com.yfd.platform.qgc_eng.eq.entity.vo; + +import lombok.Data; + +@Data +public class StBaseInfo { + + private String stcd; + + private String stnm; + + private String sttpCode; + + private String sttpName; + + private String sttpFullPath; + + private Integer sttpTreeLevel; + + private String baseId; + + private String baseName; + + private String hbrvcd; + + private String hbrvcdName; + + private String rvcd; + + private String rvcdName; +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/StcdInfoVo.java b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/StcdInfoVo.java new file mode 100644 index 00000000..c7244eaa --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/StcdInfoVo.java @@ -0,0 +1,13 @@ +package com.yfd.platform.qgc_eng.eq.entity.vo; + +import lombok.Data; + +import java.util.List; + +@Data +public class StcdInfoVo { + + private StBaseInfo stBaseInfo; + + private List relList; +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/EngEqDataService.java b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/EngEqDataService.java index 4bdafb61..f2fbf60c 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/EngEqDataService.java +++ b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/EngEqDataService.java @@ -18,6 +18,8 @@ import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqRateCountVo; import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqVmsstbprptVo; import com.yfd.platform.qgc_eng.eq.entity.vo.QgcQecStaticVo; import com.yfd.platform.qgc_eng.eq.entity.vo.SdEqMonitorCountVo; +import com.yfd.platform.qgc_eng.eq.entity.vo.StBaseInfo; +import com.yfd.platform.qgc_eng.eq.entity.vo.StcdInfoVo; import com.yfd.platform.qgc_eng.eq.entity.vo.WbsbVo; import java.util.List; @@ -61,4 +63,6 @@ public interface EngEqDataService { DataSourceResult qecRateCount(DataSourceRequest dataSourceRequest); DataSourceResult getDefaultYear(DataSourceRequest dataSourceRequest); + + StcdInfoVo getStInfoByStcd(String stcd); } diff --git a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/impl/EngEqDataServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/impl/EngEqDataServiceImpl.java index e0582bb7..ce231794 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/impl/EngEqDataServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/impl/EngEqDataServiceImpl.java @@ -33,6 +33,8 @@ import com.yfd.platform.qgc_eng.eq.entity.vo.QgcQecStaticVo; import com.yfd.platform.qgc_eng.eq.entity.vo.QgcQecVo; import com.yfd.platform.qgc_eng.eq.entity.vo.SdEqMonitorCountVo; import com.yfd.platform.qgc_eng.eq.entity.vo.WbsbVo; +import com.yfd.platform.qgc_eng.eq.entity.vo.StBaseInfo; +import com.yfd.platform.qgc_eng.eq.entity.vo.StcdInfoVo; import com.yfd.platform.qgc_eng.eq.service.EngEqDataService; import com.yfd.platform.utils.QgcQueryWrapperUtil; import jakarta.annotation.Resource; @@ -1131,6 +1133,44 @@ public class EngEqDataServiceImpl implements EngEqDataService { return result; } + @Override + public StcdInfoVo getStInfoByStcd(String stcd) { + if (StrUtil.isBlank(stcd)) { + throw new IllegalArgumentException("站点编码(stcd)不能为空"); + } + StcdInfoVo vo = new StcdInfoVo(); + Map paramMap = new HashMap<>(); + paramMap.put("stcd", stcd); + + StBaseInfo stBaseInfo = (StBaseInfo)microservicDynamicSQLMapper.getOneBySqlWithResultType( + "SELECT STCD AS stcd, STNM AS stnm, STTP_CODE AS sttpCode, STTP_NAME AS sttpName, " + + "STTP_FULL_PATH AS sttpFullPath, STTP_TREE_LEVEL AS sttpTreeLevel, " + + "BASE_ID AS baseId, BASE_NAME AS baseName, HBRVCD AS hbrvcd, " + + "HBRVCD_NAME AS hbrvcdName, RVCD AS rvcd, RVCD_NAME AS rvcdName " + + "FROM V_MS_STBPRP_T " + + "WHERE STCD = #{map.stcd} AND NVL(IS_DELETED, 0) = 0", + paramMap, + StBaseInfo.class + ); + vo.setStBaseInfo(stBaseInfo); + + List relList = microservicDynamicSQLMapper.getAllListWithResultType( + "SELECT STCD AS stcd, STNM AS stnm, STTP_CODE AS sttpCode, STTP_NAME AS sttpName, " + + "STTP_FULL_PATH AS sttpFullPath, STTP_TREE_LEVEL AS sttpTreeLevel, " + + "BASE_ID AS baseId, BASE_NAME AS baseName, HBRVCD AS hbrvcd, " + + "HBRVCD_NAME AS hbrvcdName, RVCD AS rvcd, RVCD_NAME AS rvcdName " + + "FROM V_MS_STBPRP_T " + + "WHERE NVL(IS_DELETED, 0) = 0 " + + "AND STCD != #{map.stcd} " + + "AND STTP_FULL_PATH LIKE CONCAT(CONCAT('%', #{map.stcd}), '%')", + paramMap, + StBaseInfo.class + ); + vo.setRelList(relList); + + return vo; + } + @Override public DataSourceResult qecRateCount(DataSourceRequest dataSourceRequest) { DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();