fix: 增加动物锚点接口
This commit is contained in:
parent
f3a4999201
commit
d04eed8188
@ -150,6 +150,12 @@ public class WeFishController {
|
|||||||
return ResponseResult.successData(weFishService.getQgcWeFishPoint(dataSourceRequest));
|
return ResponseResult.successData(weFishService.getQgcWeFishPoint(dataSourceRequest));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/we/animalPoint/qgc/GetKendoListCust")
|
||||||
|
@Operation(summary = "野生动物分布锚点")
|
||||||
|
public ResponseResult getQgcWeAnimalPoint(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
|
return ResponseResult.successData(weFishService.getQgcWeAnimalPoint(dataSourceRequest));
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/we/point/qgc/GetKendoListCust")
|
@PostMapping("/we/point/qgc/GetKendoListCust")
|
||||||
@Operation(summary = "环保部-水生生态调查-地图锚点")
|
@Operation(summary = "环保部-水生生态调查-地图锚点")
|
||||||
public ResponseResult getQgcWePoint(@RequestBody DataSourceRequest dataSourceRequest) {
|
public ResponseResult getQgcWePoint(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
|
|||||||
@ -0,0 +1,71 @@
|
|||||||
|
package com.yfd.platform.qgc_env.wte.entity.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 野生动物监测-动物分布锚点
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Schema(description = "动物分布锚点")
|
||||||
|
public class WeAnimalPointQgcVo {
|
||||||
|
|
||||||
|
@Schema(description = "站点编码")
|
||||||
|
private String stcd;
|
||||||
|
|
||||||
|
@Schema(description = "站点名称")
|
||||||
|
private String stnm;
|
||||||
|
|
||||||
|
@Schema(description = "弹框站点名称")
|
||||||
|
private String titleName;
|
||||||
|
|
||||||
|
@Schema(description = "经度")
|
||||||
|
private BigDecimal lgtd;
|
||||||
|
|
||||||
|
@Schema(description = "纬度")
|
||||||
|
private BigDecimal lttd;
|
||||||
|
|
||||||
|
@Schema(description = "高程(单位:m)")
|
||||||
|
private BigDecimal dtmel;
|
||||||
|
|
||||||
|
@Schema(description = "关联电站编码")
|
||||||
|
private String rstcd;
|
||||||
|
|
||||||
|
@Schema(description = "电站名称")
|
||||||
|
private String ennm;
|
||||||
|
|
||||||
|
@Schema(description = "站点类型")
|
||||||
|
private String sttp;
|
||||||
|
|
||||||
|
@Schema(description = "锚点类型")
|
||||||
|
private String sttpMap;
|
||||||
|
|
||||||
|
@Schema(description = "设施类型")
|
||||||
|
private String sttpCode;
|
||||||
|
|
||||||
|
@Schema(description = "流域编码")
|
||||||
|
private String rvcd;
|
||||||
|
|
||||||
|
@Schema(description = "行政编码")
|
||||||
|
private String addvcd;
|
||||||
|
|
||||||
|
@Schema(description = "基地流域编码")
|
||||||
|
private String hbrvcd;
|
||||||
|
|
||||||
|
@Schema(description = "基地编码")
|
||||||
|
private String baseId;
|
||||||
|
|
||||||
|
@Schema(description = "描点状态")
|
||||||
|
private String anchoPointState;
|
||||||
|
|
||||||
|
@Schema(description = "检测动物名称列表(按逗号分隔)")
|
||||||
|
private String animals;
|
||||||
|
|
||||||
|
@Schema(description = "最新监测时间")
|
||||||
|
private String tm;
|
||||||
|
|
||||||
|
@Schema(description = "地图避让")
|
||||||
|
private Integer distance;
|
||||||
|
}
|
||||||
@ -55,6 +55,8 @@ public interface WeFishService {
|
|||||||
|
|
||||||
DataSourceResult<WePointQgcVo> getQgcWePoint(DataSourceRequest dataSourceRequest);
|
DataSourceResult<WePointQgcVo> getQgcWePoint(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
|
DataSourceResult<WeAnimalPointQgcVo> getQgcWeAnimalPoint(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
DataSourceResult<WeTeSpecialAnimalVo> getTeSpecialAnimalList(DataSourceRequest dataSourceRequest);
|
DataSourceResult<WeTeSpecialAnimalVo> getTeSpecialAnimalList(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
List<WeDefaultDataVo> getWeDefaultData(String stcd);
|
List<WeDefaultDataVo> getWeDefaultData(String stcd);
|
||||||
|
|||||||
@ -1175,6 +1175,97 @@ public class WeFishServiceImpl implements WeFishService {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataSourceResult<WeAnimalPointQgcVo> getQgcWeAnimalPoint(DataSourceRequest dataSourceRequest) {
|
||||||
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
||||||
|
String baseId = resolveWeFishStringFilterValue(dataSourceRequest, loadOptions, "baseId");
|
||||||
|
String stcd = resolveWeFishStringFilterValue(dataSourceRequest, loadOptions, "stcd");
|
||||||
|
String startTime = resolveWeFishStringFilterValue(dataSourceRequest, loadOptions, "startTime");
|
||||||
|
String endTime = resolveWeFishStringFilterValue(dataSourceRequest, loadOptions, "endTime");
|
||||||
|
|
||||||
|
Date start = null;
|
||||||
|
Date end = null;
|
||||||
|
if (StrUtil.isNotBlank(startTime) && StrUtil.isNotBlank(endTime)) {
|
||||||
|
start = parseDateTimeSafely(startTime);
|
||||||
|
end = parseDateTimeSafely(endTime);
|
||||||
|
}
|
||||||
|
boolean hasTime = start != null && end != null;
|
||||||
|
|
||||||
|
Map<String, Object> paramMap = new HashMap<>();
|
||||||
|
StringBuilder sql = new StringBuilder();
|
||||||
|
sql.append("SELECT ")
|
||||||
|
.append("ai.STCD AS stcd, ")
|
||||||
|
.append("ai.STNM AS stnm, ")
|
||||||
|
.append("ai.STNM AS titleName, ")
|
||||||
|
.append("ai.LGTD AS lgtd, ")
|
||||||
|
.append("ai.LTTD AS lttd, ")
|
||||||
|
.append("ai.ELEV AS dtmel, ")
|
||||||
|
.append("ai.RSTCD AS rstcd, ")
|
||||||
|
.append("eng.ENNM AS ennm, ")
|
||||||
|
.append("'wva' AS sttp, ")
|
||||||
|
.append("'WVA' AS sttpMap, ")
|
||||||
|
.append("'WVA' AS sttpCode, ")
|
||||||
|
.append("ai.RVCD AS rvcd, ")
|
||||||
|
.append("ai.ADDVCD AS addvcd, ")
|
||||||
|
.append("ai.HBRVCD AS hbrvcd, ")
|
||||||
|
.append("ai.BASE_ID AS baseId, ")
|
||||||
|
.append("'wva' AS anchoPointState, ")
|
||||||
|
.append("agg.animals AS animals, ")
|
||||||
|
.append("TO_CHAR(agg.latestTm, 'yyyy-mm-dd hh24:mi:ss') AS tm ")
|
||||||
|
.append("FROM SD_AIMONITOR_B_H ai ")
|
||||||
|
.append("LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = ai.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 ")
|
||||||
|
.append("LEFT JOIN ( ")
|
||||||
|
.append(" SELECT t.stcd, ")
|
||||||
|
.append(" LISTAGG(t.anm, ',') WITHIN GROUP (ORDER BY t.anm) AS animals, ")
|
||||||
|
.append(" MAX(t.tm) AS latestTm ")
|
||||||
|
.append(" FROM ( ")
|
||||||
|
.append(" SELECT w.STCD AS stcd, a.NAME AS anm, MAX(w.TM) AS tm ")
|
||||||
|
.append(" FROM SD_WVA_R w ")
|
||||||
|
.append(" INNER JOIN SD_ANIMALDICTORY_B a ON a.ID = w.ANIMAL_ID ")
|
||||||
|
.append(" WHERE NVL(w.IS_DELETED, 0) = 0 ")
|
||||||
|
.append(" AND NVL(a.IS_DELETED, 0) = 0 ")
|
||||||
|
.append(" AND NVL(a.ENABLE, 1) = 1 ");
|
||||||
|
if (hasTime) {
|
||||||
|
paramMap.put("weAnimalPointStartTime", start);
|
||||||
|
paramMap.put("weAnimalPointEndTime", end);
|
||||||
|
sql.append(" AND w.TM BETWEEN #{map.weAnimalPointStartTime} AND #{map.weAnimalPointEndTime} ");
|
||||||
|
}
|
||||||
|
sql.append(" GROUP BY w.STCD, a.NAME ")
|
||||||
|
.append(" ) t ")
|
||||||
|
.append(" GROUP BY t.stcd ")
|
||||||
|
.append(") agg ON agg.stcd = ai.STCD ")
|
||||||
|
.append("WHERE NVL(ai.IS_DELETED, 0) = 0 ")
|
||||||
|
.append(" AND ai.STTP = 'WVA' ")
|
||||||
|
.append(" AND ai.LGTD IS NOT NULL ");
|
||||||
|
if (StrUtil.isNotBlank(baseId)) {
|
||||||
|
paramMap.put("weAnimalPointBaseId", baseId);
|
||||||
|
sql.append("AND ai.BASE_ID = #{map.weAnimalPointBaseId} ");
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(stcd)) {
|
||||||
|
paramMap.put("weAnimalPointStcd", stcd);
|
||||||
|
sql.append("AND ai.STCD = #{map.weAnimalPointStcd} ");
|
||||||
|
}
|
||||||
|
|
||||||
|
List<WeAnimalPointQgcVo> list = microservicDynamicSQLMapper.getAllListWithResultType(
|
||||||
|
sql.toString(),
|
||||||
|
paramMap,
|
||||||
|
WeAnimalPointQgcVo.class
|
||||||
|
);
|
||||||
|
|
||||||
|
SiteAvoidanceUtils.calcSiteMapLev(list,
|
||||||
|
WeAnimalPointQgcVo::getStcd,
|
||||||
|
vo -> vo.getLgtd() != null ? vo.getLgtd() : null,
|
||||||
|
vo -> vo.getLttd() != null ? vo.getLttd() : null,
|
||||||
|
WeAnimalPointQgcVo::getAnchoPointState,
|
||||||
|
WeAnimalPointQgcVo::setDistance);
|
||||||
|
|
||||||
|
DataSourceResult<WeAnimalPointQgcVo> result = new DataSourceResult<>();
|
||||||
|
result.setData(list);
|
||||||
|
result.setTotal((long) list.size());
|
||||||
|
result.setAggregates(new HashMap<>());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
private Map<String, List<WePointFishStatVo>> queryWePointFishMap(List<String> stcdList,
|
private Map<String, List<WePointFishStatVo>> queryWePointFishMap(List<String> stcdList,
|
||||||
String stcd,
|
String stcd,
|
||||||
String startTime,
|
String startTime,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user