From b908daa9bc7ea0fe87084cddc02e69004af31931 Mon Sep 17 00:00:00 2001 From: tangwei Date: Fri, 29 May 2026 11:56:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E7=94=B5=E7=AB=99?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yfd/platform/config/SwaggerConfig.java | 18 +- .../controller/SdEngMonitorController.java | 26 ++ .../qgc_base/domain/vo/EngBaseInfoVo.java | 103 ++++++++ .../qgc_base/service/ISdEngInfoBHService.java | 5 +- .../service/impl/SdEngInfoBHServiceImpl.java | 227 +++++++++++++++++- 5 files changed, 368 insertions(+), 11 deletions(-) create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/controller/SdEngMonitorController.java create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/domain/vo/EngBaseInfoVo.java diff --git a/backend/src/main/java/com/yfd/platform/config/SwaggerConfig.java b/backend/src/main/java/com/yfd/platform/config/SwaggerConfig.java index 11520d14..d55a6ec7 100644 --- a/backend/src/main/java/com/yfd/platform/config/SwaggerConfig.java +++ b/backend/src/main/java/com/yfd/platform/config/SwaggerConfig.java @@ -49,15 +49,15 @@ public class SwaggerConfig { public GroupedOpenApi groupDataEnvApi() { return GroupedOpenApi.builder() .group("2. 过鱼数据模块") - .packagesToScan("com.yfd.platform.data.controller") + .packagesToScan("com.yfd.platform.qgc_data.controller") .build(); } @Bean - public GroupedOpenApi groupEnvApi() { + public GroupedOpenApi groupQgcBaseApi() { return GroupedOpenApi.builder() .group("3全过程-生态环保数据服务") - .packagesToScan("com.yfd.platform.env.controller") + .packagesToScan("com.yfd.platform.qgc_base.controller") .build(); } @@ -65,14 +65,14 @@ public class SwaggerConfig { public GroupedOpenApi groupEnvWTApi() { return GroupedOpenApi.builder() .group("3.1 全过程-生态环保数据服务-水温监测") - .packagesToScan("com.yfd.platform.env.wt.controller") + .packagesToScan("com.yfd.platform.qgc_env.wt.controller") .build(); } @Bean public GroupedOpenApi groupEnvWQApi() { return GroupedOpenApi.builder() .group("3.2 全过程-生态环保数据服务-水质监测") - .packagesToScan("com.yfd.platform.env.wq.controller") + .packagesToScan("com.yfd.platform.qgc_env.wq.controller") .build(); } @@ -80,7 +80,7 @@ public class SwaggerConfig { public GroupedOpenApi groupEnvFPApi() { return GroupedOpenApi.builder() .group("3.3 全过程-生态环保数据服务-过鱼设施") - .packagesToScan("com.yfd.platform.env.fp.controller") + .packagesToScan("com.yfd.platform.qgc_env.fp.controller") .build(); } @@ -88,7 +88,7 @@ public class SwaggerConfig { public GroupedOpenApi groupEnvFHApi() { return GroupedOpenApi.builder() .group("3.4 全过程-生态环保数据服务-栖息地") - .packagesToScan("com.yfd.platform.env.fh.controller") + .packagesToScan("com.yfd.platform.qgc_env.fh.controller") .build(); } @@ -96,7 +96,7 @@ public class SwaggerConfig { public GroupedOpenApi groupEnvZQApi() { return GroupedOpenApi.builder() .group("3.4.1 全过程-生态环保数据服务-栖息地-水文模块") - .packagesToScan("com.yfd.platform.env.zq.controller") + .packagesToScan("com.yfd.platform.qgc_env.zq.controller") .build(); } @@ -107,7 +107,7 @@ public class SwaggerConfig { public GroupedOpenApi groupEngApi() { return GroupedOpenApi.builder() .group("4. 全过程-常规水电数据服务") - .packagesToScan("com.yfd.platform.eng.controller") + .packagesToScan("com.yfd.platform.qgc_eng.controller") .build(); } } \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdEngMonitorController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdEngMonitorController.java new file mode 100644 index 00000000..6f23a0f4 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdEngMonitorController.java @@ -0,0 +1,26 @@ +package com.yfd.platform.qgc_base.controller; + +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.service.ISdEngInfoBHService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/env/eng") +@Tag(name = "电站基础监测") +public class SdEngMonitorController { + + @Resource + private ISdEngInfoBHService engInfoBHService; + + @GetMapping("/msstbprpt/getStInfoByStcd") + @Operation(summary = "根据站码查询单条电站基础数据") + public ResponseResult getStInfoByStcd(@RequestParam String stcd) { + return ResponseResult.successData(engInfoBHService.getStInfoByStcd(stcd)); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/vo/EngBaseInfoVo.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/vo/EngBaseInfoVo.java new file mode 100644 index 00000000..d2593c28 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/vo/EngBaseInfoVo.java @@ -0,0 +1,103 @@ +package com.yfd.platform.qgc_base.domain.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.yfd.platform.qgc_base.domain.SdEngInfoBH; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(description = "电站基础详情") +public class EngBaseInfoVo extends SdEngInfoBH { + + @Schema(description = "主键ID") + private String id; + + @Schema(description = "站名") + private String stnm; + + @Schema(description = "站类主键") + private String sttp; + + @Schema(description = "站类编码") + private String sttpCode; + + @Schema(description = "站类名称") + private String sttpName; + + @Schema(description = "站类全路径") + private String sttpFullPath; + + @Schema(description = "站类层级") + private Integer sttpTreeLevel; + + @Schema(description = "建设阶段编码") + private String blprdCode; + + @Schema(description = "建设阶段名称") + private String blprdName; + + @Schema(description = "建设阶段分类编码") + private String blprdCcode; + + @Schema(description = "建设阶段分类名称") + private String blprdCname; + + @Schema(description = "基地名称") + private String baseName; + + @Schema(description = "基地流域名称") + private String hbrvcdName; + + @Schema(description = "流域名称") + private String rvcdName; + + @Schema(description = "流域全路径") + private String rvcdFullPath; + + @Schema(description = "行政区名称") + private String addvcdName; + + @Schema(description = "行政区全路径") + private String addvcdFullPath; + + @Schema(description = "国家名称") + private String countryName; + + @Schema(description = "公司名称") + private String hynm; + + @Schema(description = "集团名称") + private String topHynm; + + @Schema(description = "数据接入中文") + private String dtinName; + + @Schema(description = "建设状态名称") + private String bldsttName; + + @Schema(description = "建设状态分类编码") + private String bldsttCcode; + + @Schema(description = "建设状态分类名称") + private String bldsttCcodeName; + + @Schema(description = "开发方式名称") + private String dvtpName; + + @Schema(description = "调节性能名称") + private String rgcpName; + + @Schema(description = "工程类别名称") + private String engtpName; + + @Schema(description = "工程规模名称") + private String prscName; + + @Schema(description = "工程规模库容名称") + private String scrscName; + + @Schema(description = "工程等别名称") + private String prgrName; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdEngInfoBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdEngInfoBHService.java index b12099c9..c8c9bc6c 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdEngInfoBHService.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdEngInfoBHService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.yfd.platform.qgc_base.domain.SdEngInfoBH; import com.yfd.platform.qgc_base.domain.SdEngInfoBHRequest; +import com.yfd.platform.qgc_base.domain.vo.EngBaseInfoVo; import java.util.List; import java.util.Set; @@ -58,4 +59,6 @@ public interface ISdEngInfoBHService extends IService { boolean deleteEngInfo(String stcd); List selectRegDropdown(SdEngInfoBHRequest sdEngInfoBHRequest); -} \ No newline at end of file + + EngBaseInfoVo getStInfoByStcd(String stcd); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdEngInfoBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdEngInfoBHServiceImpl.java index 4ec1dfac..02e07744 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdEngInfoBHServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdEngInfoBHServiceImpl.java @@ -1,12 +1,16 @@ package com.yfd.platform.qgc_base.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yfd.platform.common.MicroservicDynamicSQLMapper; import com.yfd.platform.qgc_data.domain.SysUserDataScope; import com.yfd.platform.qgc_data.mapper.SysUserDataScopeMapper; import com.yfd.platform.qgc_base.domain.SdEngInfoBH; import com.yfd.platform.qgc_base.domain.SdEngInfoBHRequest; +import com.yfd.platform.qgc_base.domain.vo.EngBaseInfoVo; import com.yfd.platform.qgc_base.mapper.SdEngInfoBHMapper; import com.yfd.platform.qgc_base.service.ISdEngInfoBHService; import com.yfd.platform.utils.SecurityUtils; @@ -31,6 +35,9 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl microservicDynamicSQLMapper; + @Resource private SysUserDataScopeMapper sysUserDataScopeMapper; @@ -194,4 +201,222 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl "规划"; + case 1002000 -> "预可研"; + case 1003000 -> "环评"; + case 1004000 -> "可研"; + case 1005000 -> "在建"; + case 1006000 -> "招标设计"; + case 1007000 -> "施工详图"; + case 1009000 -> "建设"; + case 1010000 -> "蓄水阶段环保验收"; + case 1011000 -> "竣工"; + case 1012000 -> "竣工环保验收"; + case 1013000 -> "环境影响后评价"; + default -> null; + }; + } + + private String resolveDtinName(Integer dtin) { + if (dtin == null) { + return null; + } + return dtin == 1 ? "已接入" : "未接入"; + } + + private String resolveBldsttName(String bldstt) { + if (!StringUtils.hasText(bldstt)) { + return null; + } + return switch (bldstt) { + case "1" -> "已建成未验收"; + case "2" -> "在建"; + case "3", "32", "64" -> "可研"; + case "4", "61" -> "规划"; + case "5", "63" -> "预可研"; + case "6", "65" -> "已核准"; + case "7", "67" -> "招标设计"; + case "8", "69" -> "施工详图"; + case "9", "40", "74" -> "其他"; + case "10" -> "已建成已验收"; + case "11" -> "已开展后评价"; + case "31", "62" -> "项目建议书"; + case "33" -> "已审批"; + case "34", "66" -> "初步设计"; + case "35" -> "技施设计"; + case "36", "70" -> "在建"; + case "37", "71" -> "已建成未验收"; + case "38", "72" -> "已建成已验收"; + case "39", "73" -> "已开展后评价"; + case "68" -> "技施设计"; + case "91" -> "拆除"; + default -> null; + }; + } + + private String resolveBldsttCodeName(Integer bldsttCode) { + if (bldsttCode == null) { + return null; + } + return switch (bldsttCode) { + case 0 -> "未建/规划"; + case 1 -> "在建"; + case 2 -> "已建"; + default -> null; + }; + } + + private String resolveDvtpName(String dvtp) { + if (!StringUtils.hasText(dvtp)) { + return null; + } + return switch (dvtp) { + case "1" -> "堤坝式"; + case "2" -> "引水式"; + case "3" -> "混合式"; + default -> null; + }; + } + + private String resolveRgcpName(String rgcp) { + if (!StringUtils.hasText(rgcp)) { + return null; + } + return switch (rgcp) { + case "1" -> "多年调节"; + case "2" -> "年调节"; + case "3" -> "不完全年调节"; + case "4" -> "径流式(无调节)"; + case "5" -> "季调节"; + case "6" -> "月调节"; + case "7" -> "周调节"; + case "8" -> "日调节"; + case "9" -> "其他"; + default -> null; + }; + } + + private String resolveEngtpName(Integer engtp) { + if (engtp == null) { + return null; + } + return switch (engtp) { + case 1 -> "水电站"; + case 2 -> "水利工程"; + case 3 -> "航电枢纽"; + default -> null; + }; + } + + private String resolvePrscName(Integer prsc) { + if (prsc == null) { + return null; + } + return switch (prsc) { + case 1 -> "大型1"; + case 2 -> "大型2"; + case 3 -> "中型"; + case 4 -> "小型"; + default -> null; + }; + } + + private String resolveScrscName(Integer scrsc) { + if (scrsc == null) { + return null; + } + return switch (scrsc) { + case 1 -> "大型1"; + case 2 -> "大型2"; + case 3 -> "中型"; + case 4 -> "小型1"; + case 5 -> "小型2"; + default -> null; + }; + } + + private String resolvePrgrName(String prgr) { + if (!StringUtils.hasText(prgr)) { + return null; + } + return switch (prgr) { + case "1" -> "Ⅰ"; + case "2" -> "Ⅱ"; + case "3" -> "Ⅲ"; + case "4" -> "Ⅳ"; + case "5" -> "Ⅴ"; + default -> null; + }; + } +}