From 831a04dc408cc3b790bae5662ff1ff660e0f4349 Mon Sep 17 00:00:00 2001 From: tangwei Date: Sun, 17 May 2026 18:50:33 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E6=B0=B4=E6=B8=A9?= =?UTF-8?q?=E7=9B=91=E6=B5=8B=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SdDzChuiXiangListController.java | 36 +++++ .../env/controller/SdWtvtRController.java | 36 +++++ .../env/entity/vo/SdDzChuiXiangListVO.java | 21 +++ .../platform/env/entity/vo/SdWtvtYearVo.java | 21 +++ .../platform/env/mapper/AlongListMapper.java | 139 ++++++++++-------- .../env/mapper/SdDzChuiXiangListMapper.java | 30 ++++ .../platform/env/mapper/SdWtvtRMapper.java | 31 ++++ .../env/service/SdDzChuiXiangListService.java | 23 +++ .../platform/env/service/SdWtvtRService.java | 21 +++ .../service/impl/AlongListServiceImpl.java | 14 +- .../impl/SdDzChuiXiangListServiceImpl.java | 49 ++++++ .../env/service/impl/SdWtvtRServiceImpl.java | 47 ++++++ 12 files changed, 403 insertions(+), 65 deletions(-) create mode 100644 backend/src/main/java/com/yfd/platform/env/controller/SdDzChuiXiangListController.java create mode 100644 backend/src/main/java/com/yfd/platform/env/controller/SdWtvtRController.java create mode 100644 backend/src/main/java/com/yfd/platform/env/entity/vo/SdDzChuiXiangListVO.java create mode 100644 backend/src/main/java/com/yfd/platform/env/entity/vo/SdWtvtYearVo.java create mode 100644 backend/src/main/java/com/yfd/platform/env/mapper/SdDzChuiXiangListMapper.java create mode 100644 backend/src/main/java/com/yfd/platform/env/mapper/SdWtvtRMapper.java create mode 100644 backend/src/main/java/com/yfd/platform/env/service/SdDzChuiXiangListService.java create mode 100644 backend/src/main/java/com/yfd/platform/env/service/SdWtvtRService.java create mode 100644 backend/src/main/java/com/yfd/platform/env/service/impl/SdDzChuiXiangListServiceImpl.java create mode 100644 backend/src/main/java/com/yfd/platform/env/service/impl/SdWtvtRServiceImpl.java diff --git a/backend/src/main/java/com/yfd/platform/env/controller/SdDzChuiXiangListController.java b/backend/src/main/java/com/yfd/platform/env/controller/SdDzChuiXiangListController.java new file mode 100644 index 0000000..2b8d028 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/env/controller/SdDzChuiXiangListController.java @@ -0,0 +1,36 @@ +package com.yfd.platform.env.controller; + +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.common.DataSourceResult; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.env.service.SdDzChuiXiangListService; +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.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 电站专题垂向水温一级面板Controller + * + * @author + * @date 2023/04/18 19:22 + */ +@RestController +@RequestMapping("/sw/dzCxList") +@Tag(name = "电站专题垂向水温一级面板") +@Validated +public class SdDzChuiXiangListController { + + @Resource + private SdDzChuiXiangListService sdDzChuiXiangListService; + + @PostMapping({"/GetKendoListCust"}) + @Operation(summary = "电站专题垂向水温一级面板数据列表") + public ResponseResult getKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) { + return ResponseResult.successData(sdDzChuiXiangListService.processKendoList(dataSourceRequest)); + } +} diff --git a/backend/src/main/java/com/yfd/platform/env/controller/SdWtvtRController.java b/backend/src/main/java/com/yfd/platform/env/controller/SdWtvtRController.java new file mode 100644 index 0000000..0eae5df --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/env/controller/SdWtvtRController.java @@ -0,0 +1,36 @@ +package com.yfd.platform.env.controller; + +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.common.DataSourceResult; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.env.service.SdWtvtRService; +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.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 垂向水温Controller + * + * @author + * @date 2023/04/18 19:22 + */ +@RestController +@RequestMapping("/sw/wtvt") +@Tag(name = "垂向水温") +@Validated +public class SdWtvtRController { + + @Resource + private SdWtvtRService sdWtvtRService; + + @PostMapping({"/defaultYear/GetKendoListCust"}) + @Operation(summary = "获取垂向水温有数据的年份") + public ResponseResult getWtrvDefaultYear(@RequestBody DataSourceRequest dataSourceRequest) { + return ResponseResult.successData(sdWtvtRService.getWtrvDefaultYear(dataSourceRequest)); + } +} diff --git a/backend/src/main/java/com/yfd/platform/env/entity/vo/SdDzChuiXiangListVO.java b/backend/src/main/java/com/yfd/platform/env/entity/vo/SdDzChuiXiangListVO.java new file mode 100644 index 0000000..7caa7bf --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/env/entity/vo/SdDzChuiXiangListVO.java @@ -0,0 +1,21 @@ +package com.yfd.platform.env.entity.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; +import lombok.experimental.FieldNameConstants; + +import java.math.BigDecimal; + +@Getter +@Setter +@FieldNameConstants +@Schema(description = "电站专题垂向水温一级面板VO") +public class SdDzChuiXiangListVO { + + @Schema(description = "水温深度") + private BigDecimal wthg; + + @Schema(description = "水温") + private BigDecimal vwt; +} diff --git a/backend/src/main/java/com/yfd/platform/env/entity/vo/SdWtvtYearVo.java b/backend/src/main/java/com/yfd/platform/env/entity/vo/SdWtvtYearVo.java new file mode 100644 index 0000000..8d10ac4 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/env/entity/vo/SdWtvtYearVo.java @@ -0,0 +1,21 @@ +package com.yfd.platform.env.entity.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; +import lombok.experimental.FieldNameConstants; + +import java.math.BigDecimal; + +@Getter +@Setter +@FieldNameConstants +@Schema(description = "垂向水温年份列表VO") +public class SdWtvtYearVo { + + @Schema(description = "站码") + private String stcd; + + @Schema(description = "年份") + private String yr; +} diff --git a/backend/src/main/java/com/yfd/platform/env/mapper/AlongListMapper.java b/backend/src/main/java/com/yfd/platform/env/mapper/AlongListMapper.java index c16dcf3..71ad9f1 100644 --- a/backend/src/main/java/com/yfd/platform/env/mapper/AlongListMapper.java +++ b/backend/src/main/java/com/yfd/platform/env/mapper/AlongListMapper.java @@ -21,82 +21,105 @@ import java.util.List; public interface AlongListMapper extends BaseMapper { @Select("") String getAlongLatestTm(@Param("rvcd") String rvcd); @Select("") List getAlongListData(@Param("rvcd") String rvcd,@Param("baseId") String baseId,@Param("maxTime") Date maxTime); @Select("") Date getMaxTime(@Param("rvcd") String rvcd,@Param("baseId") String baseId,@Param("startTime") Date startTime,@Param("endTime") Date endTime); diff --git a/backend/src/main/java/com/yfd/platform/env/mapper/SdDzChuiXiangListMapper.java b/backend/src/main/java/com/yfd/platform/env/mapper/SdDzChuiXiangListMapper.java new file mode 100644 index 0000000..af0d535 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/env/mapper/SdDzChuiXiangListMapper.java @@ -0,0 +1,30 @@ +package com.yfd.platform.env.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.env.entity.vo.SdDzChuiXiangListVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + * 电站专题垂向水温一级面板Mapper + * + * @author + * @since 2023-04-23 09:32:10 + */ +@Mapper +public interface SdDzChuiXiangListMapper extends BaseMapper { + + @Select("SELECT t1.WTHG, t1.VWT " + + "FROM SD_WTVTDRTP_S t1 " + + "WHERE t1.DRTP = 'MON' " + + "AND t1.MONTH = #{mon} " + + "AND t1.YEAR = #{year} " + + "AND t1.STCD = #{stcd} " + + "ORDER BY t1.WTHG ASC") + List getYearTempChange(@Param("stcd") String stcd, + @Param("mon") Integer mon, + @Param("year") String year); +} diff --git a/backend/src/main/java/com/yfd/platform/env/mapper/SdWtvtRMapper.java b/backend/src/main/java/com/yfd/platform/env/mapper/SdWtvtRMapper.java new file mode 100644 index 0000000..9aaaad8 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/env/mapper/SdWtvtRMapper.java @@ -0,0 +1,31 @@ +package com.yfd.platform.env.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.env.entity.vo.SdWtvtYearVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + * 垂向水温年份数据Mapper + * + * @author + * @since 2023-04-23 09:32:10 + */ +@Mapper +public interface SdWtvtRMapper extends BaseMapper { + + @Select("") + List getWtrvDefaultYear(@Param("stcd") String stcd); +} diff --git a/backend/src/main/java/com/yfd/platform/env/service/SdDzChuiXiangListService.java b/backend/src/main/java/com/yfd/platform/env/service/SdDzChuiXiangListService.java new file mode 100644 index 0000000..7da963e --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/env/service/SdDzChuiXiangListService.java @@ -0,0 +1,23 @@ +package com.yfd.platform.env.service; + +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.common.DataSourceResult; + +import java.util.Map; + +/** + * 电站专题垂向水温一级面板Service接口 + * + * @author + * @since 2023-04-23 09:32:10 + */ +public interface SdDzChuiXiangListService { + + /** + * 处理kendo列表数据 + * + * @param dataSourceRequest 数据源请求 + * @return 数据源结果 + */ + DataSourceResult processKendoList(DataSourceRequest dataSourceRequest); +} diff --git a/backend/src/main/java/com/yfd/platform/env/service/SdWtvtRService.java b/backend/src/main/java/com/yfd/platform/env/service/SdWtvtRService.java new file mode 100644 index 0000000..4ad1f92 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/env/service/SdWtvtRService.java @@ -0,0 +1,21 @@ +package com.yfd.platform.env.service; + +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.common.DataSourceResult; + +/** + * 垂向水温Service接口 + * + * @author + * @since 2023-04-23 09:32:10 + */ +public interface SdWtvtRService { + + /** + * 获取垂向水温有数据的年份列表 + * + * @param dataSourceRequest 数据源请求 + * @return 数据源结果 + */ + DataSourceResult getWtrvDefaultYear(DataSourceRequest dataSourceRequest); +} diff --git a/backend/src/main/java/com/yfd/platform/env/service/impl/AlongListServiceImpl.java b/backend/src/main/java/com/yfd/platform/env/service/impl/AlongListServiceImpl.java index 367c52e..599b90c 100644 --- a/backend/src/main/java/com/yfd/platform/env/service/impl/AlongListServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/env/service/impl/AlongListServiceImpl.java @@ -48,10 +48,10 @@ public class AlongListServiceImpl extends ServiceImpl> resultList = dynamicSQLMapper.getAllList(sql, null); - if(!CollectionUtils.isEmpty(resultList)){ + List> resultList = dynamicSQLMapper.getAllList(sql, null); + if(!CollectionUtils.isEmpty(resultList)){ return resultList.get(0); - } + } return null; } @@ -62,8 +62,8 @@ public class AlongListServiceImpl extends ServiceImpl= #{tm} AND TM <= #{tm_1} AND WT IS NOT NULL ) t3 " + "\tON t1.STCD = t3.STCD ORDER BY SORT ASC " + @@ -76,7 +76,7 @@ public class AlongListServiceImpl extends ServiceImpl implements SdDzChuiXiangListService { + + @Resource + private SdDzChuiXiangListMapper sdDzChuiXiangListMapper; + + @Override + public DataSourceResult processKendoList(DataSourceRequest dataSourceRequest) { + DataSourceResult dataSourceResult = new DataSourceResult<>(); + DataSourceLoadOptionsBase loadOptions = dataSourceRequest.toDevRequest(); + String stcd = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "stcd"); + String year = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "year"); + + int m = 12; + Map> map = new LinkedHashMap<>(); + for (int i = 1; i <= m; i++) { + List list = sdDzChuiXiangListMapper.getYearTempChange(stcd, i, year); + map.put(String.valueOf(i), list != null ? list : List.of()); + } + dataSourceResult.setData(null); + dataSourceResult.setTotal(map.size()); + dataSourceResult.setAggregates(map); + return dataSourceResult; + } +} diff --git a/backend/src/main/java/com/yfd/platform/env/service/impl/SdWtvtRServiceImpl.java b/backend/src/main/java/com/yfd/platform/env/service/impl/SdWtvtRServiceImpl.java new file mode 100644 index 0000000..8f8abcd --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/env/service/impl/SdWtvtRServiceImpl.java @@ -0,0 +1,47 @@ +package com.yfd.platform.env.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yfd.platform.common.DataSourceLoadOptionsBase; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.common.DataSourceResult; +import com.yfd.platform.env.entity.vo.SdWtvtYearVo; +import com.yfd.platform.env.mapper.SdWtvtRMapper; +import com.yfd.platform.env.service.SdWtvtRService; +import com.yfd.platform.utils.QgcQueryWrapperUtil; +import com.yfd.platform.utils.QueryWrapperUtil; +import jakarta.annotation.Resource; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 垂向水温Service实现类 + * + * @author + * @since 2023-04-23 09:32:10 + */ +@Service +public class SdWtvtRServiceImpl extends ServiceImpl implements SdWtvtRService { + + @Resource + private SdWtvtRMapper sdWtvtRMapper; + + @Override + public DataSourceResult getWtrvDefaultYear(DataSourceRequest dataSourceRequest) { + DataSourceResult dataSourceResult = new DataSourceResult<>(); + DataSourceLoadOptionsBase loadOptionsBase = dataSourceRequest.toDevRequest(); + String stcd = QgcQueryWrapperUtil.getFilterFieldValue(loadOptionsBase, "stcd"); + + if (StringUtils.isNotBlank(stcd)) { + stcd = stcd.replaceAll("\\[", "") + .replaceAll("]", "") + .replaceAll("\"", ""); + } + + List result = sdWtvtRMapper.getWtrvDefaultYear(stcd); + dataSourceResult.setTotal(result.size()); + dataSourceResult.setData(result); + return dataSourceResult; + } +}