diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fpr/controller/FprMonitorController.java b/backend/src/main/java/com/yfd/platform/qgc_env/fpr/controller/FprMonitorController.java index 61cbb809..bf3f44ff 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/fpr/controller/FprMonitorController.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/fpr/controller/FprMonitorController.java @@ -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 result = fprMonitorService.getFprdInfoList(ao); + return ResponseResult.successData(result); + } + @PostMapping("/wbsb/GetKendoList") @Operation(summary = "查询基地/基地流域树数据") public ResponseResult getWbsbList(@RequestBody DataSourceRequest dataSourceRequest) { diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fpr/entity/vo/FprdPointInfoVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/fpr/entity/vo/FprdPointInfoVo.java new file mode 100644 index 00000000..81ea189f --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_env/fpr/entity/vo/FprdPointInfoVo.java @@ -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; +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fpr/service/FprMonitorService.java b/backend/src/main/java/com/yfd/platform/qgc_env/fpr/service/FprMonitorService.java index 8681b405..d64cf1fc 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/fpr/service/FprMonitorService.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/fpr/service/FprMonitorService.java @@ -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 getFprdDetailList(DataSourceRequest dataSourceRequest); List getFishInfo(); + + List getFprdInfoList(FprdRunDataAo ao); } diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fpr/service/impl/FprMonitorServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_env/fpr/service/impl/FprMonitorServiceImpl.java index 09b35d14..c697d439 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/fpr/service/impl/FprMonitorServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/fpr/service/impl/FprMonitorServiceImpl.java @@ -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 getFprdInfoList(FprdRunDataAo ao) { + validateFprdRunDataAo(ao); + + Map 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 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 getMsstbprptList(DataSourceRequest dataSourceRequest) { DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();