feat: 获取鱼类调查装置概况
This commit is contained in:
parent
aa5f9a76c6
commit
539e5e9315
@ -2,7 +2,9 @@ package com.yfd.platform.qgc_env.fpr.controller;
|
||||
|
||||
import com.yfd.platform.common.DataSourceRequest;
|
||||
import com.yfd.platform.config.ResponseResult;
|
||||
import com.yfd.platform.qgc_env.fpr.entity.ao.FprdRunDataAo;
|
||||
import com.yfd.platform.qgc_eng.eq.service.EngEqDataService;
|
||||
import com.yfd.platform.qgc_env.fpr.entity.vo.FprdRunDataInfoVo;
|
||||
import com.yfd.platform.qgc_env.fpr.service.FprMonitorService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@ -38,6 +40,13 @@ public class FprMonitorController {
|
||||
return ResponseResult.successData(fprMonitorService.getFishDicList(dataSourceRequest));
|
||||
}
|
||||
|
||||
@PostMapping("/sdFprdR/getFprdDataInfo")
|
||||
@Operation(summary = "获取鱼类调查装置概况")
|
||||
public ResponseResult getFprdRunDataInfo(@RequestBody FprdRunDataAo ao) {
|
||||
FprdRunDataInfoVo result = fprMonitorService.getFprdRunDataInfo(ao);
|
||||
return ResponseResult.successData(result);
|
||||
}
|
||||
|
||||
@PostMapping("/wbsb/GetKendoList")
|
||||
@Operation(summary = "查询基地/基地流域树数据")
|
||||
public ResponseResult getWbsbList(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||
|
||||
@ -0,0 +1,21 @@
|
||||
package com.yfd.platform.qgc_env.fpr.entity.ao;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Schema(description = "鱼类调查装置概况查询参数")
|
||||
public class FprdRunDataAo {
|
||||
|
||||
@Schema(description = "基地编码")
|
||||
private String baseId;
|
||||
|
||||
@Schema(description = "基地流域编码")
|
||||
private String hbrvcd;
|
||||
|
||||
@Schema(description = "站点编码,旧接口保留字段")
|
||||
private String stcd;
|
||||
|
||||
@Schema(description = "年度")
|
||||
private Integer year;
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
package com.yfd.platform.qgc_env.fpr.entity.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Schema(description = "鱼类调查装置概况")
|
||||
public class FprdRunDataInfoVo {
|
||||
|
||||
@Schema(description = "鱼类调查装置数量")
|
||||
private Integer fprdCount;
|
||||
|
||||
@Schema(description = "鱼类种数")
|
||||
private Integer ftpCount;
|
||||
|
||||
@Schema(description = "鱼类记录数")
|
||||
private Integer fishCount;
|
||||
}
|
||||
@ -2,12 +2,16 @@ package com.yfd.platform.qgc_env.fpr.service;
|
||||
|
||||
import com.yfd.platform.common.DataSourceRequest;
|
||||
import com.yfd.platform.common.DataSourceResult;
|
||||
import com.yfd.platform.qgc_env.fpr.entity.ao.FprdRunDataAo;
|
||||
import com.yfd.platform.qgc_env.fpr.entity.vo.FprFishDicVo;
|
||||
import com.yfd.platform.qgc_env.fpr.entity.vo.FprMsstbprptVo;
|
||||
import com.yfd.platform.qgc_env.fpr.entity.vo.FprdRunDataInfoVo;
|
||||
|
||||
public interface FprMonitorService {
|
||||
|
||||
DataSourceResult<FprMsstbprptVo> getMsstbprptList(DataSourceRequest dataSourceRequest);
|
||||
|
||||
DataSourceResult<FprFishDicVo> getFishDicList(DataSourceRequest dataSourceRequest);
|
||||
|
||||
FprdRunDataInfoVo getFprdRunDataInfo(FprdRunDataAo ao);
|
||||
}
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package com.yfd.platform.qgc_env.fpr.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.bean.copier.CopyOptions;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@ -9,8 +11,11 @@ import com.yfd.platform.common.DataSourceResult;
|
||||
import com.yfd.platform.common.GroupHelper;
|
||||
import com.yfd.platform.common.GroupingInfo;
|
||||
import com.yfd.platform.common.MicroservicDynamicSQLMapper;
|
||||
import com.yfd.platform.common.exception.BizException;
|
||||
import com.yfd.platform.qgc_env.fpr.entity.ao.FprdRunDataAo;
|
||||
import com.yfd.platform.qgc_env.fpr.entity.vo.FprFishDicVo;
|
||||
import com.yfd.platform.qgc_env.fpr.entity.vo.FprMsstbprptVo;
|
||||
import com.yfd.platform.qgc_env.fpr.entity.vo.FprdRunDataInfoVo;
|
||||
import com.yfd.platform.qgc_env.fpr.service.FprMonitorService;
|
||||
import com.yfd.platform.utils.QgcQueryWrapperUtil;
|
||||
import jakarta.annotation.Resource;
|
||||
@ -29,6 +34,36 @@ public class FprMonitorServiceImpl implements FprMonitorService {
|
||||
@Resource
|
||||
private MicroservicDynamicSQLMapper microservicDynamicSQLMapper;
|
||||
|
||||
@Override
|
||||
public FprdRunDataInfoVo getFprdRunDataInfo(FprdRunDataAo ao) {
|
||||
if (ao == null) {
|
||||
throw new BizException("请求参数不能为空.");
|
||||
}
|
||||
if (StrUtil.isBlank(ao.getBaseId())) {
|
||||
throw new BizException("基地编码(baseId)不能为空.");
|
||||
}
|
||||
if (ao.getYear() == null) {
|
||||
throw new BizException("年度(year)不能为空.");
|
||||
}
|
||||
|
||||
Map<String, Object> paramMap = new HashMap<>();
|
||||
paramMap.put("baseId", ao.getBaseId());
|
||||
paramMap.put("year", String.valueOf(ao.getYear()));
|
||||
if (StrUtil.isNotBlank(ao.getHbrvcd())) {
|
||||
paramMap.put("hbrvcd", ao.getHbrvcd());
|
||||
}
|
||||
|
||||
Map<String, Object> row = microservicDynamicSQLMapper.getOneBySql(buildFprdRunDataInfoSql(ao), paramMap);
|
||||
if (row == null || row.isEmpty()) {
|
||||
return new FprdRunDataInfoVo();
|
||||
}
|
||||
return BeanUtil.fillBeanWithMap(
|
||||
row,
|
||||
new FprdRunDataInfoVo(),
|
||||
CopyOptions.create().setIgnoreCase(true).setIgnoreError(true)
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataSourceResult<FprMsstbprptVo> getMsstbprptList(DataSourceRequest dataSourceRequest) {
|
||||
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
||||
@ -225,6 +260,45 @@ public class FprMonitorServiceImpl implements FprMonitorService {
|
||||
"WHERE NVL(src.IS_DELETED, 0) = 0 ";
|
||||
}
|
||||
|
||||
private String buildFprdRunDataInfoSql(FprdRunDataAo ao) {
|
||||
StringBuilder sql = new StringBuilder("SELECT ")
|
||||
.append("NVL((SELECT COUNT(1) ")
|
||||
.append(" FROM SD_FPRD_B_H baseCnt ")
|
||||
.append(" WHERE NVL(baseCnt.IS_DELETED, 0) = 0 ")
|
||||
.append(" AND baseCnt.STTP = 'FPRD' ")
|
||||
.append(" AND baseCnt.BASE_ID = #{map.baseId}), 0) AS fprdCount, ")
|
||||
.append("NVL((SELECT COUNT(DISTINCT fish.NAME) ")
|
||||
.append(" FROM SD_FPRD_R run ")
|
||||
.append(" INNER JOIN SD_FPRD_B_H base ON base.STCD = run.STCD ")
|
||||
.append(" AND NVL(base.IS_DELETED, 0) = 0 ")
|
||||
.append(" AND base.STTP = 'FPRD' ")
|
||||
.append(" INNER JOIN SD_FPRDFISH_R fish ON fish.FPRDR_ID = run.ID ")
|
||||
.append(" AND NVL(fish.IS_DELETED, 0) = 0 ")
|
||||
.append(" WHERE NVL(run.IS_DELETED, 0) = 0 ")
|
||||
.append(" AND TO_CHAR(run.TM, 'YYYY') = #{map.year} ")
|
||||
.append(" AND base.BASE_ID = #{map.baseId} ");
|
||||
if (StrUtil.isNotBlank(ao.getHbrvcd())) {
|
||||
sql.append(" AND base.HBRVCD = #{map.hbrvcd} ");
|
||||
}
|
||||
sql.append("), 0) AS ftpCount, ")
|
||||
.append("NVL((SELECT COUNT(1) ")
|
||||
.append(" FROM SD_FPRD_R run ")
|
||||
.append(" INNER JOIN SD_FPRD_B_H base ON base.STCD = run.STCD ")
|
||||
.append(" AND NVL(base.IS_DELETED, 0) = 0 ")
|
||||
.append(" AND base.STTP = 'FPRD' ")
|
||||
.append(" INNER JOIN SD_FPRDFISH_R fish ON fish.FPRDR_ID = run.ID ")
|
||||
.append(" AND NVL(fish.IS_DELETED, 0) = 0 ")
|
||||
.append(" WHERE NVL(run.IS_DELETED, 0) = 0 ")
|
||||
.append(" AND TO_CHAR(run.TM, 'YYYY') = #{map.year} ")
|
||||
.append(" AND base.BASE_ID = #{map.baseId} ");
|
||||
if (StrUtil.isNotBlank(ao.getHbrvcd())) {
|
||||
sql.append(" AND base.HBRVCD = #{map.hbrvcd} ");
|
||||
}
|
||||
sql.append("), 0) AS fishCount ")
|
||||
.append("FROM DUAL");
|
||||
return sql.toString();
|
||||
}
|
||||
|
||||
private String buildFishDicBaseSql() {
|
||||
return "SELECT " +
|
||||
"src.ID AS id, " +
|
||||
|
||||
Loading…
Reference in New Issue
Block a user