From ad58c7a7968027debaf141c0a08351e32ca865bf Mon Sep 17 00:00:00 2001 From: LeoAnn <1297441823@qq.com> Date: Tue, 1 Jul 2025 16:51:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8D=97=E6=96=B9=E7=89=87=E4=BA=A4?= =?UTF-8?q?=E4=BA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/controller/BaseInfoController.java | 2 +- .../swlscx/basic/mapper/HyStscAMapper.java | 6 ++ .../service/impl/HyStscAServiceImpl.java | 60 +++++++++---------- .../common/utils/SqlServerDataSourceUtil.java | 2 +- .../resources/mapper/basic/HyStscAMapper.xml | 10 ++++ 5 files changed, 46 insertions(+), 34 deletions(-) diff --git a/swlscx/src/main/java/com/ruoyi/swlscx/basic/controller/BaseInfoController.java b/swlscx/src/main/java/com/ruoyi/swlscx/basic/controller/BaseInfoController.java index 68c0b03..600b966 100644 --- a/swlscx/src/main/java/com/ruoyi/swlscx/basic/controller/BaseInfoController.java +++ b/swlscx/src/main/java/com/ruoyi/swlscx/basic/controller/BaseInfoController.java @@ -165,7 +165,7 @@ public class BaseInfoController { String password = params.get("password").toString(); String database = params.get("dataBase").toString(); - String url = "jdbc:sqlserver://" + ip + ":1433;databaseName=" + database+";ncrypt=false;allowMultiQueries=true"; + String url = "jdbc:sqlserver://" + ip + ":14333;databaseName=" + database+";ncrypt=false;allowMultiQueries=true"; // 测试连接 try { diff --git a/swlscx/src/main/java/com/ruoyi/swlscx/basic/mapper/HyStscAMapper.java b/swlscx/src/main/java/com/ruoyi/swlscx/basic/mapper/HyStscAMapper.java index f43716b..364d36c 100644 --- a/swlscx/src/main/java/com/ruoyi/swlscx/basic/mapper/HyStscAMapper.java +++ b/swlscx/src/main/java/com/ruoyi/swlscx/basic/mapper/HyStscAMapper.java @@ -7,6 +7,8 @@ import com.ruoyi.swlscx.basic.domain.po.HyStscA; import com.ruoyi.swlscx.basic.domain.po.HyWfdzF; import com.ruoyi.swlscx.basic.domain.po.YcShdpInfo; import com.ruoyi.swlscx.basic.domain.vo.HyStscAVo; +import com.ruoyi.swlscx.day.domain.po.HyDpC; +import com.ruoyi.swlscx.day.domain.po.HyDzC; import com.ruoyi.swlscx.synchronousData.dto.JHDayData; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -48,6 +50,10 @@ public interface HyStscAMapper extends BaseMapper { List> testSqlServer(); List listByHyWfdzF(@Param("startYear") String startYear, @Param("endYear") String endYear, @Param("list") List stringList); + + List listHyDzC(@Param("startTimeDay") String startTimeDay, @Param("endTimeDay") String endTimeDay); + + List listHyDpc(@Param("startTimeDay") String startTimeDay, @Param("endTimeDay") String endTimeDay); } diff --git a/swlscx/src/main/java/com/ruoyi/swlscx/basic/service/impl/HyStscAServiceImpl.java b/swlscx/src/main/java/com/ruoyi/swlscx/basic/service/impl/HyStscAServiceImpl.java index 18e0901..7c0510e 100644 --- a/swlscx/src/main/java/com/ruoyi/swlscx/basic/service/impl/HyStscAServiceImpl.java +++ b/swlscx/src/main/java/com/ruoyi/swlscx/basic/service/impl/HyStscAServiceImpl.java @@ -778,6 +778,11 @@ public class HyStscAServiceImpl extends ServiceImpl impl String[] splitEndTime = endTime.split("-"); String endYear = splitEndTime[0]; String endMth = splitEndTime[1]; + + String[] dateDay = getDateDay(startTime, endTime); + String startTimeDay = dateDay[0]; + String endTimeDay = dateDay[1]; + List stcds = new ArrayList<>(); if (type.equals("P")) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -795,39 +800,30 @@ public class HyStscAServiceImpl extends ServiceImpl impl List rainStationList = hyMtpEService.list(queryWrapper); stcds = rainStationList.stream().map(HyMtpE::getStcd).distinct().collect(Collectors.toList()); } else if (type.equals("H")) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.and(wrapper -> { - if (startYear.equals(endYear)) { - // 同一年:直接范围查询 - wrapper.apply("(yr = {0} AND mth BETWEEN {1} AND {2})", startYear, "01", "12"); - } else { - // 跨年:组合三段条件 - wrapper.apply("(yr = {0} AND mth >= {1})", startYear, "01"); // 起始年(1月至今) - for (int year = Integer.parseInt(startYear) + 1; year < Integer.parseInt(endYear); year++) { - wrapper.or().apply("yr = {0}", year); // 中间整年 - } - wrapper.or().apply("(yr = {0} AND mth <= {1})", endYear, "12"); // 结束年(1-12月) - } - }); - List rainStationList = hyMtzEService.list(queryWrapper); - stcds = rainStationList.stream().map(HyMtzE::getStcd).distinct().collect(Collectors.toList()); + List hyMttdzEList = hyMttdzEService.list(Wrappers.lambdaQuery(HyMttdzE.class).between(HyMttdzE::getYr, startYear, endYear)); + List rainStationList = hyMtzEService.list(Wrappers.lambdaQuery(HyMtzE.class).between(HyMtzE::getYr, startYear, endYear)); + List allStcdList = new ArrayList<>(); + hyMttdzEList.forEach(e -> allStcdList.add(e.getStcd())); // 添加第一个列表 + rainStationList.forEach(e -> allStcdList.add(e.getStcd())); // 添加第二个列表 + stcds = allStcdList.stream().distinct().collect(Collectors.toList()); } else if (type.equals("Q")) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.and(wrapper -> { - if (startYear.equals(endYear)) { - // 同一年:直接范围查询 - wrapper.apply("(yr = {0} AND mth BETWEEN {1} AND {2})", startYear, "01", "12"); - } else { - // 跨年:组合三段条件 - wrapper.apply("(yr = {0} AND mth >= {1})", startYear, "01"); // 起始年(1月至今) - for (int year = Integer.parseInt(startYear) + 1; year < Integer.parseInt(endYear); year++) { - wrapper.or().apply("yr = {0}", year); // 中间整年 - } - wrapper.or().apply("(yr = {0} AND mth <= {1})", endYear, "12"); // 结束年(1-12月) - } - }); - List rainStationList = hyMtqEService.list(queryWrapper); - stcds = rainStationList.stream().map(HyMtqE::getStcd).distinct().collect(Collectors.toList()); +// QueryWrapper queryWrapper = new QueryWrapper<>(); +// queryWrapper.and(wrapper -> { +// if (startYear.equals(endYear)) { +// // 同一年:直接范围查询 +// wrapper.apply("(yr = {0} AND mth BETWEEN {1} AND {2})", startYear, "01", "12"); +// } else { +// // 跨年:组合三段条件 +// wrapper.apply("(yr = {0} AND mth >= {1})", startYear, "01"); // 起始年(1月至今) +// for (int year = Integer.parseInt(startYear) + 1; year < Integer.parseInt(endYear); year++) { +// wrapper.or().apply("yr = {0}", year); // 中间整年 +// } +// wrapper.or().apply("(yr = {0} AND mth <= {1})", endYear, "12"); // 结束年(1-12月) +// } +// }); + + List rainStationList = this.baseMapper.listHyDpc(startTimeDay,endTimeDay); + stcds = rainStationList.stream().map(HyDpC::getStcd).distinct().collect(Collectors.toList()); } if (!stcds.isEmpty()) { list = this.list(Wrappers.lambdaQuery(HyStscA.class).in(HyStscA::getStcd, stcds)); diff --git a/swlscx/src/main/java/com/ruoyi/swlscx/common/utils/SqlServerDataSourceUtil.java b/swlscx/src/main/java/com/ruoyi/swlscx/common/utils/SqlServerDataSourceUtil.java index 7d6c3f8..73a4d58 100644 --- a/swlscx/src/main/java/com/ruoyi/swlscx/common/utils/SqlServerDataSourceUtil.java +++ b/swlscx/src/main/java/com/ruoyi/swlscx/common/utils/SqlServerDataSourceUtil.java @@ -14,7 +14,7 @@ public class SqlServerDataSourceUtil { // 基本连接配置 dataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); dataSource.setUrl(String.format( - "jdbc:sqlserver://%s:1433;databaseName=%s;encrypt=false;", + "jdbc:sqlserver://%s:14333;databaseName=%s;encrypt=false;", formDataRo.getSqlseverIp(), formDataRo.getDataBase() )); diff --git a/swlscx/src/main/resources/mapper/basic/HyStscAMapper.xml b/swlscx/src/main/resources/mapper/basic/HyStscAMapper.xml index ed1c620..44eb228 100644 --- a/swlscx/src/main/resources/mapper/basic/HyStscAMapper.xml +++ b/swlscx/src/main/resources/mapper/basic/HyStscAMapper.xml @@ -211,4 +211,14 @@ WITH #{stcd} ) + + + +