feat: 栖息地/珍稀植物园/动物救助站描点

This commit is contained in:
tangwei 2026-07-06 09:46:43 +08:00
parent f6e2d49558
commit 85cf3bc358
8 changed files with 120 additions and 8 deletions

View File

@ -4643,8 +4643,8 @@ public class FbStationServiceImpl implements FbStationService {
.append(" SELECT t.RSTCD AS stcd, COUNT(1) AS lcjStatus ")
.append(" FROM SD_ENGFR_R t ")
.append(" INNER JOIN SD_RPIMNFISH_R t1 ON t.ID = t1.RPIMN_ID ")
.append(" WHERE (t.TASK_STATUS IS NULL OR t.TASK_STATUS = 'Approved') ")
.append(" AND NVL(t.IS_DELETED, 0) = 0 AND NVL(t1.IS_DELETED, 0) = 0 ")
.append(" WHERE 1=1 ")
.append(" AND t.IS_DELETED = 0 AND t1.IS_DELETED = 0 ")
.append(" AND t.TM BETWEEN ADD_MONTHS(SYSDATE, -12) AND SYSDATE ")
.append(" GROUP BY t.RSTCD ")
.append(") b ON a.STCD = b.stcd ")

View File

@ -71,4 +71,10 @@ public class FhHabitatController {
public ResponseResult getStTbYsBVoKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
return ResponseResult.successData(fhHabitatService.getStTbYsBVoKendoListCust(dataSourceRequest));
}
@PostMapping("/fhvap/GetKendoListCust")
@Operation(summary = "栖息地/珍稀植物园/动物救助站描点")
public ResponseResult getFhvapKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
return ResponseResult.successData(fhHabitatService.getFhvapKendoListCust(dataSourceRequest));
}
}

View File

@ -0,0 +1,28 @@
package com.yfd.platform.qgc_env.fh.entity.vo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class FhHaVapVo {
private String baseId;
private String baseName;
private String stcd;
private String stnm;
private String sttp;
private String sttpCode;
private String sttpMap;
private String anchoPointState;
private String rstcd;
private String ennm;
private String rvcd;
private String rvcdName;
private BigDecimal lgtd;
private BigDecimal lttd;
private String bldsttCcode;
private BigDecimal dtmel;
private Integer dtin;
private Integer distance;
private String titleName;
}

View File

@ -5,6 +5,7 @@ import com.yfd.platform.common.DataSourceResult;
import com.yfd.platform.qgc_env.fh.entity.ao.FhDefaultAo;
import com.yfd.platform.qgc_env.fh.entity.vo.FhBaseInfoVo;
import com.yfd.platform.qgc_env.fh.entity.vo.FhDefaultVo;
import com.yfd.platform.qgc_env.fh.entity.vo.FhHaVapVo;
import com.yfd.platform.qgc_env.fh.entity.vo.HabitatVo;
public interface FhHabitatService {
@ -24,4 +25,6 @@ public interface FhHabitatService {
FhBaseInfoVo getStcdInfo(String stcd);
DataSourceResult getStTbYsBVoKendoListCust(DataSourceRequest dataSourceRequest);
DataSourceResult<FhHaVapVo> getFhvapKendoListCust(DataSourceRequest dataSourceRequest);
}

View File

@ -16,11 +16,13 @@ import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.qgc_env.fh.entity.ao.FhDefaultAo;
import com.yfd.platform.qgc_env.fh.entity.vo.FhBaseInfoVo;
import com.yfd.platform.qgc_env.fh.entity.vo.FhDefaultVo;
import com.yfd.platform.qgc_env.fh.entity.vo.FhHaVapVo;
import com.yfd.platform.qgc_env.fh.entity.vo.HabitatVo;
import com.yfd.platform.qgc_env.fh.entity.vo.FhMsstbprptVo;
import com.yfd.platform.qgc_env.fh.entity.vo.FhSdriverdayVo;
import com.yfd.platform.qgc_env.fh.entity.vo.FhSdrvwtsVo;
import com.yfd.platform.qgc_env.fh.service.FhHabitatService;
import com.yfd.platform.qgc_env.wt.utils.SiteAvoidanceUtils;
import com.yfd.platform.qgc_env.wq.entity.vo.StTbYsVo;
import com.yfd.platform.utils.QgcQueryWrapperUtil;
import jakarta.annotation.Resource;
@ -1920,4 +1922,76 @@ public class FhHabitatServiceImpl implements FhHabitatService {
}
return sql.toString();
}
@Override
public DataSourceResult<FhHaVapVo> getFhvapKendoListCust(DataSourceRequest dataSourceRequest) {
DataSourceResult<FhHaVapVo> dataSourceResult = new DataSourceResult<>();
dataSourceResult.setAggregates(new HashMap<>());
if (dataSourceRequest == null) {
dataSourceResult.setData(new ArrayList<>());
dataSourceResult.setTotal(0L);
return dataSourceResult;
}
StringBuilder sql = new StringBuilder();
sql.append("SELECT ")
.append("t.BASE_ID AS baseId, ")
.append("hb.BASENAME AS baseName, ")
.append("t.STCD AS stcd, ")
.append("t.STNM AS stnm, ")
.append("t.STTP_CODE AS sttp, ")
.append("t.STTP_CODE AS sttpCode, ")
.append("t.STTP_CODE AS sttpMap, ")
.append("t.STTP_CODE AS anchoPointState, ")
.append("t.RSTCD AS rstcd, ")
.append("eng.ENNM AS ennm, ")
.append("NVL(t.HBRVCD, eng.HBRVCD) AS rvcd, ")
.append("t.LGTD AS lgtd, ")
.append("t.LTTD AS lttd, ")
.append("t.BLDSTT_CCODE AS bldsttCcode, ")
.append("t.ELEV AS dtmel, ")
.append("t.DTIN AS dtin ")
.append("FROM ( ")
.append(" SELECT STCD, STNM, 'FH' AS STTP_CODE, RSTCD, BASE_ID, HBRVCD, LGTD, LTTD, BLPRD AS BLDSTT_CCODE, ELEV, DTIN ")
.append(" FROM SD_FHBT_B_H WHERE NVL(IS_DELETED, 0) = 0 AND USFL = 1 ")
.append(" UNION ALL ")
.append(" SELECT STCD, STNM, STTP AS STTP_CODE, RSTCD, BASE_ID, HBRVCD, LGTD, LTTD, BLDSTT_CODE AS BLDSTT_CCODE, ELEV, DTIN ")
.append(" FROM SD_VA_B_H WHERE NVL(IS_DELETED, 0) = 0 AND USFL = 1 ")
.append(" UNION ALL ")
.append(" SELECT STCD, STNM, STTP AS STTP_CODE, RSTCD, BASE_ID, HBRVCD, LGTD, LTTD, BLDSTT_CODE AS BLDSTT_CCODE, ELEV, DTIN ")
.append(" FROM SD_VP_B_H WHERE NVL(IS_DELETED, 0) = 0 AND USFL = 1 ")
.append(") t ")
.append("LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = t.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = NVL(t.BASE_ID, eng.BASE_ID) AND NVL(hb.IS_DELETED, 0) = 0 ")
.append("WHERE t.LGTD IS NOT NULL AND t.LTTD IS NOT NULL ");
DataSourceLoadOptionsBase loadOptions = dataSourceRequest.toDevRequest();
Page<?> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
List<FhHaVapVo> vaVpList = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), new HashMap<>(), FhHaVapVo.class);
for (FhHaVapVo vo : vaVpList) {
String bldsttCcode = vo.getBldsttCcode();
if (!"2".equals(bldsttCcode)) {
if ("VP".equals(vo.getSttp())) {
vo.setAnchoPointState("VP_INCOMPLETE");
} else if ("VA".equals(vo.getSttp())) {
vo.setAnchoPointState("VA_INCOMPLETE");
}
}
vo.setTitleName(vo.getStnm());
vo.setSttpCode(vo.getSttp());
}
SiteAvoidanceUtils.calcSiteMapLev(vaVpList,
FhHaVapVo::getStcd,
FhHaVapVo::getLgtd,
FhHaVapVo::getLttd,
FhHaVapVo::getAnchoPointState,
FhHaVapVo::setDistance);
dataSourceResult.setData(vaVpList);
dataSourceResult.setTotal(page == null ? vaVpList.size() : page.getTotal());
return dataSourceResult;
}
}

View File

@ -2332,7 +2332,7 @@ public class FpRunServiceImpl implements FpRunService {
" FROM ( " +
" SELECT STCD, FTP " +
" FROM SD_FPRUNPLAN_B " +
" WHERE (TASK_STATUS = 'Approved' OR TASK_STATUS IS NULL) " +
" WHERE 1=1 " +
" AND IS_DELETED = 0 " +
" AND STCD = #{map.stcd} " +
" AND TO_CHAR(START_TIME, 'yyyy') = #{map.yr} " +
@ -2356,7 +2356,7 @@ public class FpRunServiceImpl implements FpRunService {
" FROM ( " +
" SELECT STCD, TO_CHAR(START_TIME, 'mm') AS stm, TO_CHAR(END_TIME, 'mm') AS edm, PYCNT AS pycnt " +
" FROM SD_FPRUNPLAN_B " +
" WHERE (TASK_STATUS = 'Approved' OR TASK_STATUS IS NULL) " +
" WHERE 1=1 " +
" AND IS_DELETED = 0 " +
" AND STCD = #{map.stcd} " +
" AND TO_CHAR(START_TIME, 'yyyy') = #{map.yr} " +
@ -2368,7 +2368,7 @@ public class FpRunServiceImpl implements FpRunService {
" AND STCD NOT IN ( " +
" SELECT STCD " +
" FROM SD_FPRUNPLAN_B " +
" WHERE (TASK_STATUS = 'Approved' OR TASK_STATUS IS NULL) " +
" WHERE 1=1 " +
" AND IS_DELETED = 0 " +
" AND STCD = #{map.stcd} " +
" AND TO_CHAR(START_TIME, 'yyyy') = #{map.yr} " +

View File

@ -523,8 +523,8 @@ public class WarnDataServiceImpl implements WarnDataService {
sql.append("LEFT JOIN MS_ALONG_B along ON b.HBRVCD = along.RVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 ");
sql.append("LEFT JOIN (SELECT det.SORT, cfg.RVCD, det.STCD FROM MS_ALONGDET_B det INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common') rstSort ON rstSort.RVCD = b.HBRVCD AND rstSort.STCD = b.RSTCD ");
sql.append("LEFT JOIN (SELECT det.SORT, cfg.RVCD, det.STCD FROM MS_ALONGDET_B det INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common') siteSort ON siteSort.RVCD = b.HBRVCD AND siteSort.STCD = b.STCD ");
sql.append("WHERE NVL(a.IS_DELETED, 0) = 0 ");
sql.append("AND (a.TASK_STATUS IS NULL OR a.TASK_STATUS = 'Approved') ");
sql.append("WHERE a.IS_DELETED = 0 ");
// sql.append("AND (a.TASK_STATUS IS NULL OR a.TASK_STATUS = 'Approved') ");
sql.append("AND a.FID NOT LIKE '%ORA-%' AND a.FID NOT LIKE '%Out%' ");
if (StrUtil.isNotBlank(type)) {

View File

@ -17,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
import java.util.Random;
import java.util.Set;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@ -162,7 +163,7 @@ public class SmsVerifyCodeServiceImpl extends ServiceImpl<SmsVerifyCodeMapper, S
log.warn("催促短信发送失败未找到有效的手机号userIds: {}", ids);
return 0;
}
List<String> validPhones = sysUsers.stream().map(SysUser::getPhone).filter(this::isValidPhone).toList();
Set<String> validPhones = sysUsers.stream().map(SysUser::getPhone).filter(this::isValidPhone).collect(Collectors.toSet());
if (validPhones.isEmpty()) {
log.warn("催促短信发送失败:没有合规的手机号");