feat: 水温年内分布与天然水温对比
This commit is contained in:
parent
8293a2f9f5
commit
c20eabc9c1
@ -144,6 +144,18 @@ public class SdWTMonitorController {
|
||||
return ResponseResult.successData(this.alongListService.getMonthKendoListCust(dataSourceRequest));
|
||||
}
|
||||
|
||||
@PostMapping("/yearList/default/stcd")
|
||||
@Operation(summary = "获取水温年内分布默认有数据的电站")
|
||||
public ResponseResult getYearDefaultStcd(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||
return ResponseResult.successData(this.alongListService.getYearDefaultStcd(dataSourceRequest));
|
||||
}
|
||||
|
||||
@PostMapping("/yearList/GetKendoListCust")
|
||||
@Operation(summary = "水温年内分布与天然水温对比")
|
||||
public ResponseResult getYearList(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||
return ResponseResult.successData(this.alongListService.getYearList(dataSourceRequest));
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/base/evnmAutoMonitor/GetKendoListCust")
|
||||
@Operation(summary = "查询水温监测数量")
|
||||
|
||||
@ -3,6 +3,8 @@ package com.yfd.platform.env.service;
|
||||
|
||||
import com.yfd.platform.common.DataSourceRequest;
|
||||
import com.yfd.platform.common.DataSourceResult;
|
||||
import com.yfd.platform.env.entity.vo.SdYearListVO;
|
||||
import com.yfd.platform.env.entity.vo.StcdVo;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
import java.util.Map;
|
||||
@ -19,4 +21,6 @@ public interface AlongListService {
|
||||
DataSourceResult getDefaultRvcd(@RequestBody DataSourceRequest dataSourceRequest);
|
||||
DataSourceResult getALongKendoListCust(DataSourceRequest dataSourceRequest);
|
||||
DataSourceResult getMonthKendoListCust(DataSourceRequest dataSourceRequest);
|
||||
DataSourceResult<StcdVo> getYearDefaultStcd(DataSourceRequest dataSourceRequest);
|
||||
DataSourceResult<SdYearListVO> getYearList(DataSourceRequest dataSourceRequest);
|
||||
}
|
||||
|
||||
@ -11,6 +11,8 @@ import com.yfd.platform.common.MicroservicDynamicSQLMapper;
|
||||
import com.yfd.platform.common.PageInfo;
|
||||
import com.yfd.platform.common.exception.BizException;
|
||||
import com.yfd.platform.env.entity.vo.SdAlongVO;
|
||||
import com.yfd.platform.env.entity.vo.SdYearListVO;
|
||||
import com.yfd.platform.env.entity.vo.StcdVo;
|
||||
import com.yfd.platform.env.mapper.AlongListMapper;
|
||||
import com.yfd.platform.env.service.AlongListService;
|
||||
import com.yfd.platform.utils.QgcQueryWrapperUtil;
|
||||
@ -260,6 +262,99 @@ public class AlongListServiceImpl extends ServiceImpl<AlongListMapper, SdAlongVO
|
||||
return dataSourceResult;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataSourceResult<StcdVo> getYearDefaultStcd(DataSourceRequest dataSourceRequest) {
|
||||
DataSourceResult<StcdVo> dataSourceResult = new DataSourceResult<>();
|
||||
DataSourceLoadOptionsBase loadOptions = dataSourceRequest.toDevRequest();
|
||||
String year = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "year");
|
||||
String baseId = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "baseId");
|
||||
|
||||
if (StrUtil.isBlank(year)) {
|
||||
dataSourceResult.setData(new ArrayList<>());
|
||||
dataSourceResult.setTotal(0L);
|
||||
return dataSourceResult;
|
||||
}
|
||||
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append("SELECT t1.STCD AS stcd, t1.STNM AS stnm ")
|
||||
.append("FROM (")
|
||||
.append(" SELECT wt.STCD, wt.STNM ")
|
||||
.append(" FROM SD_WT_B_H wt ")
|
||||
.append(" LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = wt.RSTCD ")
|
||||
.append(" WHERE wt.STTP = 'WTRV' ")
|
||||
.append(" AND wt.USFL = 1 ")
|
||||
.append(" AND wt.IS_DELETED = 0 ");
|
||||
if (StrUtil.isNotBlank(baseId)) {
|
||||
sql.append(" AND eng.BASE_ID = #{map.baseId} ");
|
||||
}
|
||||
sql.append(") t1 ")
|
||||
.append("INNER JOIN (")
|
||||
.append(" SELECT DISTINCT STCD ")
|
||||
.append(" FROM SD_WTRVDRTP_S ")
|
||||
.append(" WHERE IS_DELETED = 0 ")
|
||||
.append(" AND YEAR = #{map.year} ")
|
||||
.append(" AND DRTP = 'MON' ")
|
||||
.append(") t2 ON t1.STCD = t2.STCD ")
|
||||
.append("WHERE ROWNUM = 1");
|
||||
|
||||
Map<String, Object> paramMap = new HashMap<>();
|
||||
paramMap.put("year", year);
|
||||
paramMap.put("baseId", baseId);
|
||||
List<StcdVo> resultList = microservicDynamicSQLMapper.pageAllListWithResultType(null, sql.toString(), paramMap, StcdVo.class);
|
||||
dataSourceResult.setData(resultList);
|
||||
dataSourceResult.setTotal(resultList.size());
|
||||
return dataSourceResult;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataSourceResult<SdYearListVO> getYearList(DataSourceRequest dataSourceRequest) {
|
||||
DataSourceResult<SdYearListVO> dataSourceResult = new DataSourceResult<>();
|
||||
DataSourceLoadOptionsBase loadOptions = dataSourceRequest.toDevRequest();
|
||||
String stcd = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "stcd");
|
||||
String year = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "year");
|
||||
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append("SELECT t.stcd AS stcd, t.rstcd AS rstcd, t.stnm AS stnm, t.YEAR AS year, t.MONTH AS month, ")
|
||||
.append("t.actualTemp AS actualTemp, t.naturalTemp AS naturalTemp, t.drtp AS drtp ")
|
||||
.append("FROM (")
|
||||
.append(" SELECT t1.stcd, t1.rstcd, t1.stnm, t1.YEAR, t1.MONTH, t1.WT AS actualTemp, t2.WT AS naturalTemp, t1.drtp ")
|
||||
.append(" FROM (")
|
||||
.append(" SELECT sms.STCD, wt.RSTCD, wt.STNM, sms.YEAR, sms.MONTH, sms.WT, sms.DRTP ")
|
||||
.append(" FROM SD_WTRVDRTP_S sms ")
|
||||
.append(" LEFT JOIN SD_WT_B_H wt ON wt.STCD = sms.STCD ")
|
||||
.append(" AND wt.STTP = 'WTRV' AND wt.USFL = 1 AND wt.IS_DELETED = 0 ")
|
||||
.append(" WHERE sms.IS_DELETED = 0 ")
|
||||
.append(" ) t1 ")
|
||||
.append(" LEFT JOIN (SELECT STCD, WT, MNTH FROM SD_WTNP_B WHERE IS_DELETED = 0) t2 ")
|
||||
.append(" ON t2.STCD = t1.RSTCD AND t2.MNTH = t1.MONTH ")
|
||||
.append(") t ")
|
||||
.append("WHERE t.DRTP = 'MON' ");
|
||||
if (StrUtil.isNotBlank(stcd)) {
|
||||
sql.append("AND t.STCD = #{map.stcd} ");
|
||||
}
|
||||
if (StrUtil.isNotBlank(year)) {
|
||||
sql.append("AND t.YEAR = #{map.year} ");
|
||||
}
|
||||
|
||||
Map<String, Object> paramMap = new HashMap<>();
|
||||
paramMap.put("stcd", stcd);
|
||||
paramMap.put("year", year);
|
||||
Page<?> page = buildPage(loadOptions);
|
||||
List<SdYearListVO> voList = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, SdYearListVO.class);
|
||||
for (SdYearListVO vo : voList) {
|
||||
if (StrUtil.isNotBlank(vo.getMonth())) {
|
||||
vo.setMonthInt(Integer.parseInt(vo.getMonth()));
|
||||
vo.setMonth(vo.getMonth() + "月");
|
||||
}
|
||||
}
|
||||
List<SdYearListVO> resultList = voList.stream()
|
||||
.sorted(Comparator.comparing(SdYearListVO::getMonthInt, Comparator.nullsLast(Comparator.naturalOrder())))
|
||||
.collect(Collectors.toList());
|
||||
dataSourceResult.setData(resultList);
|
||||
dataSourceResult.setTotal(page != null ? page.getTotal() : (long) voList.size());
|
||||
return dataSourceResult;
|
||||
}
|
||||
|
||||
private Page<?> buildPage(DataSourceLoadOptionsBase loadOptions) {
|
||||
PageInfo pageInfo = QgcQueryWrapperUtil.getPageInfo(loadOptions);
|
||||
if (Boolean.TRUE.equals(pageInfo.getHasPageInfo())) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user