|
|
|
@ -778,6 +778,11 @@ public class HyStscAServiceImpl extends ServiceImpl<HyStscAMapper, HyStscA> impl
@@ -778,6 +778,11 @@ public class HyStscAServiceImpl extends ServiceImpl<HyStscAMapper, HyStscA> 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<String> stcds = new ArrayList<>(); |
|
|
|
|
if (type.equals("P")) { |
|
|
|
|
QueryWrapper<HyMtpE> queryWrapper = new QueryWrapper<>(); |
|
|
|
@ -795,39 +800,30 @@ public class HyStscAServiceImpl extends ServiceImpl<HyStscAMapper, HyStscA> impl
@@ -795,39 +800,30 @@ public class HyStscAServiceImpl extends ServiceImpl<HyStscAMapper, HyStscA> impl
|
|
|
|
|
List<HyMtpE> rainStationList = hyMtpEService.list(queryWrapper); |
|
|
|
|
stcds = rainStationList.stream().map(HyMtpE::getStcd).distinct().collect(Collectors.toList()); |
|
|
|
|
} else if (type.equals("H")) { |
|
|
|
|
QueryWrapper<HyMtzE> 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<HyMtzE> rainStationList = hyMtzEService.list(queryWrapper); |
|
|
|
|
stcds = rainStationList.stream().map(HyMtzE::getStcd).distinct().collect(Collectors.toList()); |
|
|
|
|
List<HyMttdzE> hyMttdzEList = hyMttdzEService.list(Wrappers.lambdaQuery(HyMttdzE.class).between(HyMttdzE::getYr, startYear, endYear)); |
|
|
|
|
List<HyMtzE> rainStationList = hyMtzEService.list(Wrappers.lambdaQuery(HyMtzE.class).between(HyMtzE::getYr, startYear, endYear)); |
|
|
|
|
List<String> 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<HyMtqE> 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<HyMtqE> rainStationList = hyMtqEService.list(queryWrapper); |
|
|
|
|
stcds = rainStationList.stream().map(HyMtqE::getStcd).distinct().collect(Collectors.toList()); |
|
|
|
|
// QueryWrapper<HyMtqE> 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<HyDpC> 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)); |
|
|
|
|