diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fb/service/impl/FbStationServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_env/fb/service/impl/FbStationServiceImpl.java index 7963c7c4..f3b3df70 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/fb/service/impl/FbStationServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/fb/service/impl/FbStationServiceImpl.java @@ -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 ") diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fh/controller/FhHabitatController.java b/backend/src/main/java/com/yfd/platform/qgc_env/fh/controller/FhHabitatController.java index 8a5ee63d..1ab1d44d 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/fh/controller/FhHabitatController.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/fh/controller/FhHabitatController.java @@ -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)); + } } diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fh/entity/vo/FhHaVapVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/fh/entity/vo/FhHaVapVo.java new file mode 100644 index 00000000..9be9c376 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_env/fh/entity/vo/FhHaVapVo.java @@ -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; +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fh/service/FhHabitatService.java b/backend/src/main/java/com/yfd/platform/qgc_env/fh/service/FhHabitatService.java index 267ff509..12e188e6 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/fh/service/FhHabitatService.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/fh/service/FhHabitatService.java @@ -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 getFhvapKendoListCust(DataSourceRequest dataSourceRequest); } diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fh/service/impl/FhHabitatServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_env/fh/service/impl/FhHabitatServiceImpl.java index cef364cf..3cca065f 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/fh/service/impl/FhHabitatServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/fh/service/impl/FhHabitatServiceImpl.java @@ -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 getFhvapKendoListCust(DataSourceRequest dataSourceRequest) { + DataSourceResult 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 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; + } } diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fp/service/impl/FpRunServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_env/fp/service/impl/FpRunServiceImpl.java index c81bf512..cdaec94d 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/fp/service/impl/FpRunServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/fp/service/impl/FpRunServiceImpl.java @@ -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} " + diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/warn/service/impl/WarnDataServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_env/warn/service/impl/WarnDataServiceImpl.java index ac9bf4e7..01cd74b5 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/warn/service/impl/WarnDataServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/warn/service/impl/WarnDataServiceImpl.java @@ -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)) { diff --git a/backend/src/main/java/com/yfd/platform/system/service/impl/SmsVerifyCodeServiceImpl.java b/backend/src/main/java/com/yfd/platform/system/service/impl/SmsVerifyCodeServiceImpl.java index 20f531d7..de1c5d31 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/impl/SmsVerifyCodeServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/system/service/impl/SmsVerifyCodeServiceImpl.java @@ -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 validPhones = sysUsers.stream().map(SysUser::getPhone).filter(this::isValidPhone).toList(); + Set validPhones = sysUsers.stream().map(SysUser::getPhone).filter(this::isValidPhone).collect(Collectors.toSet()); if (validPhones.isEmpty()) { log.warn("催促短信发送失败:没有合规的手机号");