diff --git a/backend/src/main/java/com/yfd/platform/env/controller/SdAlongDetailController.java b/backend/src/main/java/com/yfd/platform/env/controller/SdAlongDetailController.java index 4be5593..afc4645 100644 --- a/backend/src/main/java/com/yfd/platform/env/controller/SdAlongDetailController.java +++ b/backend/src/main/java/com/yfd/platform/env/controller/SdAlongDetailController.java @@ -1,12 +1,16 @@ package com.yfd.platform.env.controller; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yfd.platform.common.DataSourceLoadOptionsBase; import com.yfd.platform.common.DataSourceRequest; import com.yfd.platform.common.DataSourceResult; +import com.yfd.platform.common.exception.BizException; import com.yfd.platform.config.ResponseResult; import com.yfd.platform.env.entity.vo.BatchDeleteAo; import com.yfd.platform.env.entity.vo.WtrvInfo; import com.yfd.platform.env.service.AlongDetailService; +import com.yfd.platform.utils.QgcQueryWrapperUtil; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; @@ -60,12 +64,25 @@ public class SdAlongDetailController { return ResponseResult.success(); } -// @PostMapping("/qgc/GetKendoListCust") -// @Operation(summary = "环保部查询出入库水温、出入库流量、入库水温、天然水温、降雨、气温数据") -// public ResponseResult getQgcKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) { -// DataSourceResult result = alongDetailService.getQgcKendoListCust(dataSourceRequest); -// return ResponseResult.successData(result); -// } + @PostMapping("/qgc/GetKendoListCust") + @Operation(summary = "环保部查询出入库水温、出入库流量、入库水温、天然水温、降雨、气温数据") + public ResponseResult getQgcKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) { + DataSourceLoadOptionsBase loadOptions = dataSourceRequest.toDevRequest(); + String stcd = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "stcd"); + if (StrUtil.isBlank(stcd)) { + throw new BizException("站点编码不能为空."); + } + WtrvInfo wtrvInfo = alongDetailService.getWtrvInfoByStcd(stcd); + if (wtrvInfo == null) { + throw new BizException("获取站点信息失败,请检查是否站点存在."); + } + DataSourceResult result = alongDetailService.processKendoList(dataSourceRequest, null, new Page<>()); + if (wtrvInfo.getType() == 3 || result == null || result.getData() == null || result.getTotal() == 0) { + return ResponseResult.successData(result); + } + DataSourceResult qgcResult = alongDetailService.processQgcKendList(result, wtrvInfo); + return ResponseResult.successData(qgcResult); + } @GetMapping("/qgc/stcdCheck") @Operation(summary = "判断出库水温站、垂向水温站或者低温水减缓设施所属的电站是否有出库水温站、垂向水温站和低温水减缓设施") diff --git a/backend/src/main/java/com/yfd/platform/env/mapper/AlongDetailMapper.java b/backend/src/main/java/com/yfd/platform/env/mapper/AlongDetailMapper.java index 2e997a2..0e3af77 100644 --- a/backend/src/main/java/com/yfd/platform/env/mapper/AlongDetailMapper.java +++ b/backend/src/main/java/com/yfd/platform/env/mapper/AlongDetailMapper.java @@ -20,13 +20,20 @@ import java.util.Map; @Mapper public interface AlongDetailMapper extends BaseMapper { + @Select("SELECT wt.STCD AS stcd, wt.STNM AS stnm, wt.RSTCD AS rstcd, eng.ENNM AS ennm, " + + "CASE WHEN wt.STCD = rel.ENG_IWT_CODE THEN 1 WHEN wt.STCD = rel.ENG_DWT_CODE THEN 2 ELSE 3 END AS type, " + + "wt.STTP AS sttpCode " + + "FROM SD_WT_B_H wt " + + "LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = wt.RSTCD " + + "LEFT JOIN SD_PRWTRLTN_B rel ON rel.STCD = wt.RSTCD AND rel.IS_DELETED = 0 " + + "WHERE wt.IS_DELETED = 0 AND wt.STTP = 'WTRV' AND wt.STCD = #{stcd}") WtrvInfo getWtrvInfoByStcd(@Param("stcd") String stcd); //电站数据 @Select("SELECT AVG(a.QI) AS qi, AVG(a.QO) AS qo, a.tm, AVG(a.RZ) AS rz, AVG(a.DZ) AS dz " + "FROM SD_HYDROPW_R a " + - "INNER JOIN MS_STBPRP_T b ON a.STCD = b.RSTCD " + - "WHERE b.IS_DELETED = 0 AND a.IS_DELETED = 0 " + - "AND b.STCD = #{stcd} AND a.TM BETWEEN #{startTime} AND #{endTime} " + + "WHERE a.IS_DELETED = 0 " + + "AND a.STCD = (SELECT RSTCD FROM SD_WT_B_H WHERE STCD = #{stcd} AND IS_DELETED = 0) " + + "AND a.TM BETWEEN #{startTime} AND #{endTime} " + "GROUP BY a.TM") List> getHydropwDataList(@Param("stcd") String stcd, @Param("startTime") Date startTime, @@ -34,7 +41,7 @@ public interface AlongDetailMapper extends BaseMapper { //天然水温 @Select("