feat: 获取鱼类变化情况
This commit is contained in:
parent
539e5e9315
commit
d4a9d0e802
@ -4,6 +4,7 @@ import com.yfd.platform.common.DataSourceRequest;
|
|||||||
import com.yfd.platform.config.ResponseResult;
|
import com.yfd.platform.config.ResponseResult;
|
||||||
import com.yfd.platform.qgc_env.fpr.entity.ao.FprdRunDataAo;
|
import com.yfd.platform.qgc_env.fpr.entity.ao.FprdRunDataAo;
|
||||||
import com.yfd.platform.qgc_eng.eq.service.EngEqDataService;
|
import com.yfd.platform.qgc_eng.eq.service.EngEqDataService;
|
||||||
|
import com.yfd.platform.qgc_env.fpr.entity.vo.FprFtpChangeInfoVo;
|
||||||
import com.yfd.platform.qgc_env.fpr.entity.vo.FprdRunDataInfoVo;
|
import com.yfd.platform.qgc_env.fpr.entity.vo.FprdRunDataInfoVo;
|
||||||
import com.yfd.platform.qgc_env.fpr.service.FprMonitorService;
|
import com.yfd.platform.qgc_env.fpr.service.FprMonitorService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
@ -15,6 +16,8 @@ import org.springframework.web.bind.annotation.RequestBody;
|
|||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/fpr")
|
@RequestMapping("/fpr")
|
||||||
@Tag(name = "鱼类调查装置站基础信息")
|
@Tag(name = "鱼类调查装置站基础信息")
|
||||||
@ -47,6 +50,13 @@ public class FprMonitorController {
|
|||||||
return ResponseResult.successData(result);
|
return ResponseResult.successData(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/sdFprdR/getFtpChangeInfo")
|
||||||
|
@Operation(summary = "获取鱼类变化情况")
|
||||||
|
public ResponseResult getFtpChangeInfo(@RequestBody FprdRunDataAo ao) {
|
||||||
|
List<FprFtpChangeInfoVo> result = fprMonitorService.getFtpChangeInfo(ao);
|
||||||
|
return ResponseResult.successData(result);
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/wbsb/GetKendoList")
|
@PostMapping("/wbsb/GetKendoList")
|
||||||
@Operation(summary = "查询基地/基地流域树数据")
|
@Operation(summary = "查询基地/基地流域树数据")
|
||||||
public ResponseResult getWbsbList(@RequestBody DataSourceRequest dataSourceRequest) {
|
public ResponseResult getWbsbList(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
|
|||||||
@ -0,0 +1,21 @@
|
|||||||
|
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 FprFtpChangeInfoVo {
|
||||||
|
|
||||||
|
@Schema(description = "鱼种类数量")
|
||||||
|
private String ftpCount;
|
||||||
|
|
||||||
|
@Schema(description = "鱼数量")
|
||||||
|
private Integer fishCount;
|
||||||
|
|
||||||
|
@Schema(description = "月")
|
||||||
|
private Integer month;
|
||||||
|
|
||||||
|
@Schema(description = "年份")
|
||||||
|
private Integer year;
|
||||||
|
}
|
||||||
@ -2,11 +2,14 @@ package com.yfd.platform.qgc_env.fpr.service;
|
|||||||
|
|
||||||
import com.yfd.platform.common.DataSourceRequest;
|
import com.yfd.platform.common.DataSourceRequest;
|
||||||
import com.yfd.platform.common.DataSourceResult;
|
import com.yfd.platform.common.DataSourceResult;
|
||||||
|
import com.yfd.platform.qgc_env.fpr.entity.vo.FprFtpChangeInfoVo;
|
||||||
import com.yfd.platform.qgc_env.fpr.entity.ao.FprdRunDataAo;
|
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.FprFishDicVo;
|
||||||
import com.yfd.platform.qgc_env.fpr.entity.vo.FprMsstbprptVo;
|
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.entity.vo.FprdRunDataInfoVo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public interface FprMonitorService {
|
public interface FprMonitorService {
|
||||||
|
|
||||||
DataSourceResult<FprMsstbprptVo> getMsstbprptList(DataSourceRequest dataSourceRequest);
|
DataSourceResult<FprMsstbprptVo> getMsstbprptList(DataSourceRequest dataSourceRequest);
|
||||||
@ -14,4 +17,6 @@ public interface FprMonitorService {
|
|||||||
DataSourceResult<FprFishDicVo> getFishDicList(DataSourceRequest dataSourceRequest);
|
DataSourceResult<FprFishDicVo> getFishDicList(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
FprdRunDataInfoVo getFprdRunDataInfo(FprdRunDataAo ao);
|
FprdRunDataInfoVo getFprdRunDataInfo(FprdRunDataAo ao);
|
||||||
|
|
||||||
|
List<FprFtpChangeInfoVo> getFtpChangeInfo(FprdRunDataAo ao);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import com.yfd.platform.common.MicroservicDynamicSQLMapper;
|
|||||||
import com.yfd.platform.common.exception.BizException;
|
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.ao.FprdRunDataAo;
|
||||||
import com.yfd.platform.qgc_env.fpr.entity.vo.FprFishDicVo;
|
import com.yfd.platform.qgc_env.fpr.entity.vo.FprFishDicVo;
|
||||||
|
import com.yfd.platform.qgc_env.fpr.entity.vo.FprFtpChangeInfoVo;
|
||||||
import com.yfd.platform.qgc_env.fpr.entity.vo.FprMsstbprptVo;
|
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.entity.vo.FprdRunDataInfoVo;
|
||||||
import com.yfd.platform.qgc_env.fpr.service.FprMonitorService;
|
import com.yfd.platform.qgc_env.fpr.service.FprMonitorService;
|
||||||
@ -36,15 +37,7 @@ public class FprMonitorServiceImpl implements FprMonitorService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FprdRunDataInfoVo getFprdRunDataInfo(FprdRunDataAo ao) {
|
public FprdRunDataInfoVo getFprdRunDataInfo(FprdRunDataAo ao) {
|
||||||
if (ao == null) {
|
validateFprdRunDataAo(ao);
|
||||||
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<>();
|
Map<String, Object> paramMap = new HashMap<>();
|
||||||
paramMap.put("baseId", ao.getBaseId());
|
paramMap.put("baseId", ao.getBaseId());
|
||||||
@ -64,6 +57,23 @@ public class FprMonitorServiceImpl implements FprMonitorService {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<FprFtpChangeInfoVo> getFtpChangeInfo(FprdRunDataAo ao) {
|
||||||
|
validateFprdRunDataAo(ao);
|
||||||
|
|
||||||
|
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());
|
||||||
|
}
|
||||||
|
return microservicDynamicSQLMapper.getAllListWithResultType(
|
||||||
|
buildFtpChangeInfoSql(ao),
|
||||||
|
paramMap,
|
||||||
|
FprFtpChangeInfoVo.class
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DataSourceResult<FprMsstbprptVo> getMsstbprptList(DataSourceRequest dataSourceRequest) {
|
public DataSourceResult<FprMsstbprptVo> getMsstbprptList(DataSourceRequest dataSourceRequest) {
|
||||||
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
||||||
@ -299,6 +309,41 @@ public class FprMonitorServiceImpl implements FprMonitorService {
|
|||||||
return sql.toString();
|
return sql.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String buildFtpChangeInfoSql(FprdRunDataAo ao) {
|
||||||
|
StringBuilder sql = new StringBuilder("SELECT ")
|
||||||
|
.append("COUNT(DISTINCT fish.NAME) AS ftpCount, ")
|
||||||
|
.append("COUNT(1) AS fishCount, ")
|
||||||
|
.append("TO_NUMBER(TO_CHAR(run.TM, 'MM')) AS month, ")
|
||||||
|
.append("TO_NUMBER(TO_CHAR(run.TM, 'YYYY')) AS year ")
|
||||||
|
.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("GROUP BY TO_CHAR(run.TM, 'MM'), TO_CHAR(run.TM, 'YYYY') ")
|
||||||
|
.append("ORDER BY TO_CHAR(run.TM, 'YYYY') ASC, TO_CHAR(run.TM, 'MM') ASC");
|
||||||
|
return sql.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateFprdRunDataAo(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)不能为空.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private String buildFishDicBaseSql() {
|
private String buildFishDicBaseSql() {
|
||||||
return "SELECT " +
|
return "SELECT " +
|
||||||
"src.ID AS id, " +
|
"src.ID AS id, " +
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user