feat: 鱼类调查装置锚点信息

This commit is contained in:
tangwei 2026-07-06 12:28:13 +08:00
parent fa805bfc53
commit 1b7f52783d
4 changed files with 164 additions and 3 deletions

View File

@ -4,9 +4,10 @@ import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.DataSourceResult;
import com.yfd.platform.config.ResponseResult;
import com.yfd.platform.qgc_env.fpr.entity.ao.FprdRunDataAo;
import com.yfd.platform.qgc_env.fpr.entity.vo.FprdDetailVo;
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.FprdDetailVo;
import com.yfd.platform.qgc_env.fpr.entity.vo.FprdPointInfoVo;
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.entity.vo.FprZyFishDicVo;
import com.yfd.platform.qgc_env.fpr.service.FprMonitorService;
@ -86,6 +87,13 @@ public class FprMonitorController {
return ResponseResult.successData(result);
}
@PostMapping("/sdFprdR/point/getFprdPointList")
@Operation(summary = "鱼类调查装置锚点信息")
public ResponseResult getFprdPointList(@RequestBody FprdRunDataAo ao) {
List<FprdPointInfoVo> result = fprMonitorService.getFprdInfoList(ao);
return ResponseResult.successData(result);
}
@PostMapping("/wbsb/GetKendoList")
@Operation(summary = "查询基地/基地流域树数据")
public ResponseResult getWbsbList(@RequestBody DataSourceRequest dataSourceRequest) {

View File

@ -0,0 +1,67 @@
package com.yfd.platform.qgc_env.fpr.entity.vo;
import lombok.Data;
@Data
public class FprdPointInfoVo {
private String stcd;
private String stnm;
private String titleName;
private String bldsttCcode;
private String bldstt;
private Double lttd;
private Double lgtd;
private Double dtmel;
private String rstcds;
private String ennm;
private String sttpCode;
private String dwtp;
private String dwtpName;
private String sttpMap;
private String rvcd;
private String rvcdName;
private String addvcd;
private String addvcdName;
private String hbrvcd;
private String hbrvcdName;
private String baseId;
private String baseName;
private String sttp;
private String sttpName;
private String anchoPointState;
private String mway;
private Integer dtin;
private String stdSstate;
private Integer distance;
private String stlc;
}

View File

@ -2,8 +2,9 @@ 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.vo.FprFtpChangeInfoVo;
import com.yfd.platform.qgc_env.fpr.entity.ao.FprdRunDataAo;
import com.yfd.platform.qgc_env.fpr.entity.vo.FprFtpChangeInfoVo;
import com.yfd.platform.qgc_env.fpr.entity.vo.FprdPointInfoVo;
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.FprdDetailVo;
@ -29,4 +30,6 @@ public interface FprMonitorService {
DataSourceResult<FprdDetailVo> getFprdDetailList(DataSourceRequest dataSourceRequest);
List<String> getFishInfo();
List<FprdPointInfoVo> getFprdInfoList(FprdRunDataAo ao);
}

View File

@ -5,6 +5,7 @@ import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.yfd.platform.qgc_env.wt.utils.SiteAvoidanceUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yfd.platform.common.DataSourceLoadOptionsBase;
import com.yfd.platform.common.DataSourceRequest;
@ -18,6 +19,7 @@ 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.FprdDetailVo;
import com.yfd.platform.qgc_env.fpr.entity.vo.FprdPointInfoVo;
import com.yfd.platform.qgc_env.fpr.entity.vo.FprdRunDataInfoVo;
import com.yfd.platform.qgc_env.fpr.entity.vo.FprZyFishDicVo;
import com.yfd.platform.qgc_env.fpr.service.FprMonitorService;
@ -126,6 +128,87 @@ public class FprMonitorServiceImpl implements FprMonitorService {
.toList();
}
@Override
public List<FprdPointInfoVo> getFprdInfoList(FprdRunDataAo ao) {
validateFprdRunDataAo(ao);
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("baseId", ao.getBaseId());
StringBuilder sql = new StringBuilder("SELECT ")
.append("aim.STCD AS stcd, ")
.append("aim.STNM AS stnm, ")
.append("aim.STNM AS titleName, ")
.append("TO_CHAR(aim.BLDSTT_CODE) AS bldsttCcode, ")
.append("TO_CHAR(aim.BLDSTT_CODE) AS bldstt, ")
.append("aim.LTTD AS lttd, ")
.append("aim.LGTD AS lgtd, ")
.append("aim.DTMEL AS dtmel, ")
.append("aim.RSTCD AS rstcds, ")
.append("eng.ENNM AS ennm, ")
.append("aim.STTP AS sttpCode, ")
.append("aim.DWTP AS dwtp, ")
.append("aim.DWTP AS dwtpName, ")
.append("aim.STTP AS sttpMap, ")
.append("aim.RVCD AS rvcd, ")
.append("rv.RVNM AS rvcdName, ")
.append("aim.ADDVCD AS addvcd, ")
.append("addv.ADDVCD_NAME AS addvcdName, ")
.append("aim.HBRVCD AS hbrvcd, ")
.append("hbrv.HBRVNM AS hbrvcdName, ")
.append("aim.BASE_ID AS baseId, ")
.append("hb.BASENAME AS baseName, ")
.append("aim.STTP AS sttp, ")
.append("sttp.STTP_NAME AS sttpName, ")
.append("'' AS anchoPointState, ")
.append("aim.MWAY AS mway, ")
.append("aim.DTIN AS dtin, ")
.append("aim.STDSSTATE AS stdSstate, ")
.append("aim.STLC AS stlc ")
.append("FROM SD_AIMONITOR_B_H aim ")
.append("LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = aim.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = aim.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = aim.HBRVCD ")
.append(" AND hbrv.BASEID = aim.BASE_ID ")
.append(" AND NVL(hbrv.IS_DELETED, 0) = 0 ")
.append(" AND NVL(hbrv.ENABLED, 1) = 1 ")
.append("LEFT JOIN SD_RVCD_DIC rv ON rv.RVCD = aim.RVCD ")
.append("LEFT JOIN SD_ADDVCD_DIC addv ON addv.ADDVCD = aim.ADDVCD ")
.append("LEFT JOIN SD_STTP_B sttp ON sttp.STTP_CODE = aim.STTP ")
.append(" AND NVL(sttp.IS_DELETED, 0) = 0 ")
.append(" AND NVL(sttp.ENABLE, 1) = 1 ")
.append("WHERE NVL(aim.IS_DELETED, 0) = 0 ")
.append(" AND aim.STTP = 'FPRD' ")
.append(" AND aim.LGTD IS NOT NULL ")
.append(" AND aim.BASE_ID = #{map.baseId}");
if (StrUtil.isNotBlank(ao.getHbrvcd())) {
sql.append(" AND aim.HBRVCD = #{map.hbrvcd}");
paramMap.put("hbrvcd", ao.getHbrvcd());
}
if (StrUtil.isNotBlank(ao.getStcd())) {
sql.append(" AND aim.STCD = #{map.stcd}");
paramMap.put("stcd", ao.getStcd());
}
List<FprdPointInfoVo> resultList = microservicDynamicSQLMapper.getAllListWithResultType(
sql.toString(),
paramMap,
FprdPointInfoVo.class
);
SiteAvoidanceUtils.calcSiteMapLev(resultList,
FprdPointInfoVo::getStcd,
vo -> vo.getLgtd() != null ? java.math.BigDecimal.valueOf(vo.getLgtd()) : null,
vo -> vo.getLttd() != null ? java.math.BigDecimal.valueOf(vo.getLttd()) : null,
FprdPointInfoVo::getAnchoPointState,
FprdPointInfoVo::setDistance
);
return resultList;
}
@Override
public DataSourceResult<FprMsstbprptVo> getMsstbprptList(DataSourceRequest dataSourceRequest) {
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();