Browse Source

feat: 南方片交互

master
LeoAnn 2 weeks ago
parent
commit
db229dbfe5
  1. 2
      pom.xml
  2. BIN
      ruoyi-admin/src/main/resources/excel/dayDscs.xls
  3. 13
      ruoyi-common/pom.xml
  4. 2
      swlscx/src/main/java/com/ruoyi/swlscx/basic/controller/BaseExportController.java
  5. 138
      swlscx/src/main/java/com/ruoyi/swlscx/basic/controller/BaseInfoController.java
  6. 23
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/po/FzTableId.java
  7. 23
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/po/HyWfdzF.java
  8. 20
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/po/YcShdpInfo.java
  9. 23
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/ro/FormDataRo.java
  10. 46
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyDmxpFRowMapper.java
  11. 37
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyDpCRowMapper.java
  12. 44
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyDqCRowMapper.java
  13. 46
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyDzCRowMapper.java
  14. 64
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyHltdzBRowMapper.java
  15. 59
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyHmxpFRowMapper.java
  16. 67
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyImxfwFRowMapper.java
  17. 45
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyMmxpFRowMapper.java
  18. 48
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyMtpERowMapper.java
  19. 72
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyMtqERowMapper.java
  20. 126
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyMttdzERowMapper.java
  21. 75
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyMtzERowMapper.java
  22. 49
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyPrexBRowMapper.java
  23. 61
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyStscARowMapper.java
  24. 54
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyWfdzFRowMapper.java
  25. 53
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyWsfhexBRowMapper.java
  26. 52
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyYrpFRowMapper.java
  27. 73
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyYrqFRowMapper.java
  28. 125
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyYrtdzFRowMapper.java
  29. 60
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyYrzFRowMapper.java
  30. 31
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/vo/HyStscASelectVo.java
  31. 3
      swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/vo/HyStscAVo.java
  32. 21
      swlscx/src/main/java/com/ruoyi/swlscx/basic/mapper/HyStscAMapper.java
  33. 7
      swlscx/src/main/java/com/ruoyi/swlscx/basic/mapper/YcExportTaskMapper.java
  34. 25
      swlscx/src/main/java/com/ruoyi/swlscx/basic/service/HyStscAService.java
  35. 9
      swlscx/src/main/java/com/ruoyi/swlscx/basic/service/YcExportTaskService.java
  36. 2388
      swlscx/src/main/java/com/ruoyi/swlscx/basic/service/impl/HyStscAServiceImpl.java
  37. 65
      swlscx/src/main/java/com/ruoyi/swlscx/basic/service/impl/YcExportTaskServiceImpl.java
  38. 6
      swlscx/src/main/java/com/ruoyi/swlscx/common/constants/SystemConstants.java
  39. 84
      swlscx/src/main/java/com/ruoyi/swlscx/common/enums/SelectTableEnum.java
  40. 25
      swlscx/src/main/java/com/ruoyi/swlscx/common/utils/CommonUtils.java
  41. 1
      swlscx/src/main/java/com/ruoyi/swlscx/common/utils/ExcelUtils.java
  42. 48
      swlscx/src/main/java/com/ruoyi/swlscx/common/utils/SqlServerDataSourceUtil.java
  43. 13
      swlscx/src/main/java/com/ruoyi/swlscx/day/controller/DayExportController.java
  44. 26
      swlscx/src/main/java/com/ruoyi/swlscx/day/controller/DayTableController.java
  45. 32
      swlscx/src/main/java/com/ruoyi/swlscx/day/domain/bo/HyZscsBBo.java
  46. 33
      swlscx/src/main/java/com/ruoyi/swlscx/day/domain/po/HyZscsB.java
  47. 32
      swlscx/src/main/java/com/ruoyi/swlscx/day/domain/vo/HyZscsBVo.java
  48. 30
      swlscx/src/main/java/com/ruoyi/swlscx/day/mapper/HyZscsBMapper.java
  49. 4
      swlscx/src/main/java/com/ruoyi/swlscx/day/service/HyDpCService.java
  50. 2
      swlscx/src/main/java/com/ruoyi/swlscx/day/service/HyDwtCService.java
  51. 39
      swlscx/src/main/java/com/ruoyi/swlscx/day/service/HyZscsBService.java
  52. 2
      swlscx/src/main/java/com/ruoyi/swlscx/day/service/impl/HyDpCServiceImpl.java
  53. 226
      swlscx/src/main/java/com/ruoyi/swlscx/day/service/impl/HyZscsBServiceImpl.java
  54. 4
      swlscx/src/main/java/com/ruoyi/swlscx/excerpt/controller/ExcerptImportController.java
  55. 271
      swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/controller/TimeTasksController.java
  56. 860
      swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/dto/JHDayData.java
  57. 25
      swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/dto/SWDayData.java
  58. 25
      swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/dto/SWMonthData.java
  59. 81
      swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/enums/JhhkTableEnum.java
  60. 94
      swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/enums/SWTableEnum.java
  61. 151
      swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/mapper/TimeTasksMapper.java
  62. 15
      swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/service/GetDateService.java
  63. 83
      swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/service/TimeTasksService.java
  64. 210
      swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/service/impl/GetDateServiceImpl.java
  65. 1347
      swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/service/impl/TimeTasksServiceImpl.java
  66. 3
      swlscx/src/main/java/com/ruoyi/swlscx/year/service/HyYrzFService.java
  67. 172
      swlscx/src/main/resources/mapper/basic/HyStscAMapper.xml
  68. 49
      swlscx/src/main/resources/mapper/basic/YcExportTaskMapper.xml
  69. 7
      swlscx/src/main/resources/mapper/day/HyDcsFMapper.xml
  70. 6
      swlscx/src/main/resources/mapper/day/HyDpCMapper.xml
  71. 6
      swlscx/src/main/resources/mapper/day/HyDqCMapper.xml
  72. 6
      swlscx/src/main/resources/mapper/day/HyDweCMapper.xml
  73. 7
      swlscx/src/main/resources/mapper/day/HyDwtCMapper.xml
  74. 6
      swlscx/src/main/resources/mapper/day/HyDzCMapper.xml
  75. 38
      swlscx/src/main/resources/mapper/day/HyZscsBMapper.xml
  76. 7
      swlscx/src/main/resources/mapper/excerpt/HyFdheexBMapper.xml
  77. 7
      swlscx/src/main/resources/mapper/excerpt/HyPrexBMapper.xml
  78. 7
      swlscx/src/main/resources/mapper/excerpt/HyRvfhexBMapper.xml
  79. 7
      swlscx/src/main/resources/mapper/excerpt/HyWsfhexBMapper.xml
  80. 7
      swlscx/src/main/resources/mapper/month/HyMtcsEMapper.xml
  81. 12
      swlscx/src/main/resources/mapper/month/HyMtpEMapper.xml
  82. 7
      swlscx/src/main/resources/mapper/month/HyMtqEMapper.xml
  83. 12
      swlscx/src/main/resources/mapper/month/HyMtqsEMapper.xml
  84. 12
      swlscx/src/main/resources/mapper/month/HyMttdzEMapper.xml
  85. 7
      swlscx/src/main/resources/mapper/month/HyMtweEMapper.xml
  86. 7
      swlscx/src/main/resources/mapper/month/HyMtwtEMapper.xml
  87. 12
      swlscx/src/main/resources/mapper/month/HyMtzEMapper.xml
  88. 1037
      swlscx/src/main/resources/mapper/synchronousData/TimeTasksMapper.xml
  89. 7
      swlscx/src/main/resources/mapper/year/HyDmxpFMapper.xml
  90. 7
      swlscx/src/main/resources/mapper/year/HyHmxpFMapper.xml
  91. 7
      swlscx/src/main/resources/mapper/year/HyImxfwFMapper.xml
  92. 7
      swlscx/src/main/resources/mapper/year/HyMmxpFMapper.xml
  93. 6
      swlscx/src/main/resources/mapper/year/HyYrcsFMapper.xml
  94. 7
      swlscx/src/main/resources/mapper/year/HyYrpFMapper.xml
  95. 6
      swlscx/src/main/resources/mapper/year/HyYrqFMapper.xml
  96. 6
      swlscx/src/main/resources/mapper/year/HyYrqsFMapper.xml
  97. 7
      swlscx/src/main/resources/mapper/year/HyYrtdzFMapper.xml
  98. 6
      swlscx/src/main/resources/mapper/year/HyYrweFMapper.xml
  99. 6
      swlscx/src/main/resources/mapper/year/HyYrwtFMapper.xml
  100. 6
      swlscx/src/main/resources/mapper/year/HyYrzFMapper.xml

2
pom.xml

@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
<druid.version>1.2.8</druid.version>
<druid.version>1.2.16</druid.version>
<bitwalker.version>1.21</bitwalker.version>
<swagger.version>3.0.0</swagger.version>
<kaptcha.version>2.3.2</kaptcha.version>

BIN
ruoyi-admin/src/main/resources/excel/dayDscs.xls

Binary file not shown.

13
ruoyi-common/pom.xml

@ -17,6 +17,19 @@ @@ -17,6 +17,19 @@
<dependencies>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.22</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.16</version> <!-- 版本需与 starter 兼容 -->
</dependency>
<!-- Spring框架基本的核心工具 -->
<dependency>
<groupId>org.springframework</groupId>

2
swlscx/src/main/java/com/ruoyi/swlscx/basic/controller/BaseExportController.java

@ -21,8 +21,6 @@ import javax.servlet.http.HttpServletResponse; @@ -21,8 +21,6 @@ import javax.servlet.http.HttpServletResponse;
public class BaseExportController {
private final HyStscAService hyStscAService;
/**
* 导出测站一览表
*/

138
swlscx/src/main/java/com/ruoyi/swlscx/basic/controller/BaseInfoController.java

@ -1,17 +1,32 @@ @@ -1,17 +1,32 @@
package com.ruoyi.swlscx.basic.controller;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.resource.InputStreamResource;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ruoyi.common.core.page.R;
import com.ruoyi.swlscx.basic.domain.po.YcExportTask;
import com.ruoyi.swlscx.basic.domain.ro.FormDataRo;
import com.ruoyi.swlscx.basic.domain.vo.HyStscASelectVo;
import com.ruoyi.swlscx.basic.domain.vo.HyStscAVo;
import com.ruoyi.swlscx.basic.service.YcExportTaskService;
import com.ruoyi.swlscx.common.PageParams;
import com.ruoyi.swlscx.basic.service.HyStscAService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpHeaders;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
/**
@ -33,12 +48,23 @@ public class BaseInfoController { @@ -33,12 +48,23 @@ public class BaseInfoController {
* 查询站点信息
*/
@GetMapping("/getStationPageByInfo")
public R getStationPageByInfo(Integer pageNum,Integer pageSize, String stnm,String stcd, String startTime, String endTime) {
public R getStationPageByInfo(Integer pageNum,Integer pageSize, String stnm,String stcds, String startTime, String endTime) {
PageParams pageParams = new PageParams(pageNum.longValue(), pageSize.longValue());
IPage<HyStscAVo> stationPageByInfo = hyStscAService.getStationPageByInfo(pageParams, stnm, stcd, startTime, endTime);
IPage<HyStscAVo> stationPageByInfo = hyStscAService.getStationPageByInfo(pageParams, stnm, stcds, startTime, endTime);
return R.ok().put("data", stationPageByInfo.getRecords()).put("count", stationPageByInfo.getTotal());
}
/**
* 站点下拉框
*/
@GetMapping("/getStationList")
public R getStationList(@RequestParam(value = "startTime",defaultValue = "") String startTime,
@RequestParam(value = "endTime",defaultValue = "")String endTime,
@RequestParam(value = "type",defaultValue = "") String type) {
return R.ok().put("data", hyStscAService.getList(startTime,endTime,type));
}
/**
* 查询列表
*/
@ -53,6 +79,65 @@ public class BaseInfoController { @@ -53,6 +79,65 @@ public class BaseInfoController {
ycExportTaskService.downloadExcel(response,t);
}
@Value("${softurl}")
private String sqlServerUrl;
@RequestMapping("/downloadSoftFile")
public void downloadSoftFile(HttpServletResponse response){
try (HttpResponse remoteResponse = HttpRequest.post(sqlServerUrl+"/downloadSoftFile")
.header(HttpHeaders.ACCEPT, "application/octet-stream")
.execute()) {
// 检查远程响应状态
if (!remoteResponse.isOk()) {
response.sendError(remoteResponse.getStatus(), "远程服务器错误");
return;
}
// 设置当前响应头
remoteResponse.headers().forEach((key, values) -> {
if (!"Transfer-Encoding".equalsIgnoreCase(key)) { // 排除特殊头
values.forEach(value -> response.addHeader(key, value));
}
});
// 将远程文件流写入当前响应
try (InputStream remoteStream = remoteResponse.bodyStream()) {
IoUtil.copy(remoteStream, response.getOutputStream());
}
response.flushBuffer();
} catch (Exception e) {
throw new RuntimeException("文件下载失败", e);
}
}
@RequestMapping("/uploadSoftFile")
public R uploadSoftFile(@RequestParam("file") MultipartFile file, @RequestParam("type") String type){
try {
// 1. 将 MultipartFile 转为 Hutool 的 Resource 对象
InputStreamResource resource = new InputStreamResource(
file.getInputStream(),
file.getOriginalFilename() // 保留原始文件名
);
// 2. 构建 HTTP 请求
HttpResponse response = HttpRequest.post(sqlServerUrl+"/uploadSoftFile")
.form("file", resource) // 关键!参数名需与 @RequestParam("file") 一致
.form("type", type)
.execute();
// 3. 处理响应
if (response.isOk()) {
return R.ok();
} else {
return R.error();
}
} catch (Exception e) {
e.printStackTrace();
}
return R.ok();
}
@DeleteMapping("/cgtask/delete/{id}")
public R delete(@PathVariable("id")Integer id){
return ycExportTaskService.removeTask(id);
@ -61,8 +146,53 @@ public class BaseInfoController { @@ -61,8 +146,53 @@ public class BaseInfoController {
@PostMapping("/importDateToSoft")
public R importDateToSoft(String startTime, String endTime){
return hyStscAService.importDateTosoft(startTime,endTime);
public R importDateToSoft(){
return hyStscAService.importDateTosoft();
}
@RequestMapping("/getStationListByType")
public R getStationListByType(@RequestParam(value = "type",defaultValue = "") String type,
@RequestParam(value = "startTime",defaultValue = "") String startTime,
@RequestParam(value = "endTime",defaultValue = "")String endTime) {
return R.ok().put("data", hyStscAService.getStationListByType(startTime,endTime,type));
}
@RequestMapping("/testConnection")
public R testConnection(@RequestParam Map<String,Object> params) {
// 从参数中提取连接信息(注意:前端参数键名需保持一致)
String ip = params.get("sqlseverIp").toString();
String userName = params.get("userName").toString();
String password = params.get("password").toString();
String database = params.get("dataBase").toString();
String url = "jdbc:sqlserver://" + ip + ":1433;databaseName=" + database+";ncrypt=false;allowMultiQueries=true";
// 测试连接
try {
// 加载JDBC驱动(需确保驱动包在类路径中)
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// 尝试建立连接
try (Connection conn = DriverManager.getConnection(url, userName, password)) {
return R.ok().put("data", "数据库连接成功");
}
} catch (ClassNotFoundException | SQLException e) {
return R.error("连接失败");
}
}
@RequestMapping("/importDateToSoftOrExportSoft")
public R importDateToSoftOrExportSoft(@RequestBody FormDataRo formDataRo) {
if (formDataRo.getIds().isEmpty() || formDataRo.getStationTypeValue().isEmpty() || formDataRo.getStartTime().isEmpty() || formDataRo.getEndTime().isEmpty() || formDataRo.getSoftTypeValue().isEmpty() || formDataRo.getStcds().isEmpty()){
return R.error("还有未填的选项");
}
if ("1".equals(formDataRo.getSoftTypeValue())) {
return hyStscAService.importDateToHydp(formDataRo);
} else {
return hyStscAService.exportSoftToDate(formDataRo);
}
}
}

23
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/po/FzTableId.java

@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
package com.ruoyi.swlscx.basic.domain.po;
import lombok.Data;
/**
* @Author al
* @Date 2025/6/8 14:56
* @Description: TODO
* @Version
*/
@Data
public class FzTableId {
private String stcd;
private Integer yr;
private String rtno;
private String yn;
}

23
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/po/HyWfdzF.java

@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
package com.ruoyi.swlscx.basic.domain.po;
import lombok.Data;
import java.math.BigDecimal;
/**
* @Author al
* @Date 2025/6/7 22:06
* @Description: TODO
* @Version
*/
@Data
public class HyWfdzF
{
private String stcd;
private BigDecimal yr;
private BigDecimal wf;
private BigDecimal rfz;
private String rzrcd;
}

20
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/po/YcShdpInfo.java

@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
package com.ruoyi.swlscx.basic.domain.po;
import lombok.Data;
/**
* @Author al
* @Date 2025/6/7 22:06
* @Description: TODO
* @Version
*/
@Data
public class YcShdpInfo
{
private Integer tableId;
private String name;
private String tableName;
private String yn;
}

23
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/ro/FormDataRo.java

@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
package com.ruoyi.swlscx.basic.domain.ro;
import lombok.Data;
/**
* @Author al
* @Date 2025/6/7 21:40
* @Description: TODO
* @Version
*/
@Data
public class FormDataRo {
private String sqlseverIp;
private String userName;
private String password;
private String dataBase;
private String startTime;
private String endTime;
private String stcds;
private String softTypeValue;
private String stationTypeValue;
private String ids;
}

46
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyDmxpFRowMapper.java

@ -0,0 +1,46 @@ @@ -0,0 +1,46 @@
package com.ruoyi.swlscx.basic.domain.rowMapper;
import com.ruoyi.swlscx.year.domain.po.HyDmxpF;
import com.ruoyi.swlscx.year.domain.po.HyYrpF;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
/**
* @Author al
* @Date 2025/6/20 0:01
* @Description: TODO
* @Version
*/
public class HyDmxpFRowMapper implements RowMapper<HyDmxpF> {
@Override
public HyDmxpF mapRow(ResultSet rs, int rowNum) throws SQLException {
HyDmxpF hyDmxpF = new HyDmxpF();
// 映射基础字段
hyDmxpF.setStcd(rs.getString("stcd")); // 站码[7](@ref)
hyDmxpF.setMxpdr(rs.getInt("mxpdr")); // 最大降水量时段长
hyDmxpF.setYr(rs.getInt("yr")); // 年[7](@ref)
// 映射数值字段(BigDecimal类型)
hyDmxpF.setMxp(rs.getBigDecimal("mxp")); // 最大降水量[6](@ref)
hyDmxpF.setMxprc(rs.getString("mxprc")); // 注解码[7](@ref)
// 安全处理日期字段(避免空指针)
mapNullableDate(rs, "bgdt", hyDmxpF::setBgdt); // 起始日期[6](@ref)
return hyDmxpF;
}
// 辅助方法:安全处理日期空值
private void mapNullableDate(ResultSet rs, String column, java.util.function.Consumer<Date> setter)
throws SQLException {
java.sql.Date sqlDate = rs.getDate(column);
if (sqlDate != null && !rs.wasNull()) { // 双重空值检查[6](@ref)
setter.accept(new Date(sqlDate.getTime())); // 转换为java.util.Date[6](@ref)
}
}
}

37
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyDpCRowMapper.java

@ -0,0 +1,37 @@ @@ -0,0 +1,37 @@
package com.ruoyi.swlscx.basic.domain.rowMapper;
import com.ruoyi.swlscx.day.domain.po.HyDpC;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
/**
* @Author al
* @Date 2025/6/20 15:15
* @Description: TODO
* @Version
*/
public class HyDpCRowMapper implements RowMapper<HyDpC> {
@Override
public HyDpC mapRow(ResultSet rs, int rowNum) throws SQLException {
HyDpC hyDpC = new HyDpC();
// 字符串类型字段(主键+普通字段)
hyDpC.setStcd(rs.getString("stcd")); // 站码
hyDpC.setPrcd(rs.getString("prcd")); // 降水量注解码
// 日期类型字段(需转换java.sql.Date → java.util.Date)
java.sql.Date sqlDate = rs.getDate("dt");
if (sqlDate != null) {
hyDpC.setDt(new Date(sqlDate.getTime())); // 日期
}
// 数值类型字段(BigDecimal精确处理)
hyDpC.setP(rs.getBigDecimal("p")); // 降水量(毫米)
return hyDpC;
}
}

44
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyDqCRowMapper.java

@ -0,0 +1,44 @@ @@ -0,0 +1,44 @@
package com.ruoyi.swlscx.basic.domain.rowMapper;
import com.ruoyi.swlscx.day.domain.po.HyDpC;
import com.ruoyi.swlscx.day.domain.po.HyDqC;
import org.springframework.jdbc.core.RowMapper;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Date;
/**
* @Author al
* @Date 2025/6/20 15:15
* @Description: TODO
* @Version
*/
public class HyDqCRowMapper implements RowMapper<HyDqC> {
@Override
public HyDqC mapRow(ResultSet rs, int rowNum) throws SQLException {
HyDqC entity = new HyDqC();
// 1. 站码(空值安全处理)
entity.setStcd(rs.getString("stcd") != null ? rs.getString("stcd") : "");
// 2. 日期(精确到毫秒的时间戳处理)
Timestamp dtTimestamp = rs.getTimestamp("dt");
if (dtTimestamp != null) {
entity.setDt(new Date(dtTimestamp.getTime()));
}
// 3. 平均流量(保留NULL语义)
BigDecimal avq = rs.getBigDecimal("avq");
entity.setAvq(avq); // 保留NULL表示数据缺失
// 4. 平均流量注解码(空值安全处理)
String avqrcd = rs.getString("avqrcd");
entity.setAvqrcd(avqrcd != null ? avqrcd : ""); // NULL → 空字符串
return entity;
}
}

46
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyDzCRowMapper.java

@ -0,0 +1,46 @@ @@ -0,0 +1,46 @@
package com.ruoyi.swlscx.basic.domain.rowMapper;
import com.ruoyi.swlscx.day.domain.po.HyDzC;
import com.ruoyi.swlscx.excerpt.domain.po.HyPrexB;
import org.springframework.jdbc.core.RowMapper;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Date;
/**
* @Author al
* @Date 2025/6/20 0:01
* @Description: TODO
* @Version
*/
public class HyDzCRowMapper implements RowMapper<HyDzC> {
@Override
public HyDzC mapRow(ResultSet rs, int rowNum) throws SQLException {
HyDzC hyDzC = new HyDzC();
// 1. 站码(字符串)
hyDzC.setStcd(rs.getString("stcd"));
// 2. 日期(带空值检查)
Timestamp dtTimestamp = rs.getTimestamp("dt");
if (dtTimestamp != null) {
hyDzC.setDt(new Date(dtTimestamp.getTime())); // SQL Timestamp → Java Date
}
// 3. 平均水位(精确数值)
BigDecimal avz = rs.getBigDecimal("avz");
hyDzC.setAvz(avz != null ? avz : BigDecimal.ZERO); // NULL 转为 0.00
// 4. 注解码(空值安全处理)
String avzrcd = rs.getString("avzrcd");
hyDzC.setAvzrcd(avzrcd != null ? avzrcd : ""); // NULL 转空字符串
return hyDzC;
}
}

64
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyHltdzBRowMapper.java

@ -0,0 +1,64 @@ @@ -0,0 +1,64 @@
package com.ruoyi.swlscx.basic.domain.rowMapper;
import com.ruoyi.swlscx.excerpt.domain.po.HyHltdzB;
import org.springframework.jdbc.core.RowMapper;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Date;
/**
* @Author al
* @Date 2025/6/20 0:01
* @Description: TODO
* @Version
*/
public class HyHltdzBRowMapper implements RowMapper<HyHltdzB> {
@Override
public HyHltdzB mapRow(ResultSet rs, int rowNum) throws SQLException {
HyHltdzB hyHltdzB = new HyHltdzB();
// 1. 站码(空值安全处理)
hyHltdzB.setStcd(rs.getString("stcd") != null ? rs.getString("stcd") : "");
// 2. 时间(精确到毫秒的时间戳处理)
Timestamp tmTimestamp = rs.getTimestamp("tm");
if (tmTimestamp != null) {
hyHltdzB.setTm(new Date(tmTimestamp.getTime()));
}
// 3. 潮别(空值安全处理)
hyHltdzB.setTdtp(rs.getString("tdtp") != null ? rs.getString("tdtp") : "");
// 4. 潮位(精确数值,保留NULL语义)
BigDecimal tdz = rs.getBigDecimal("tdz");
hyHltdzB.setTdz(tdz); // 保持NULL表示数据缺失
// 5. 潮位注解码(空值安全处理)
hyHltdzB.setTdzrcd(rs.getString("tdzrcd") != null ? rs.getString("tdzrcd") : "");
// 6. 潮差(精确数值,保留NULL语义)
BigDecimal tdrng = rs.getBigDecimal("tdrng");
hyHltdzB.setTdrng(tdrng); // 保持NULL表示数据缺失
// 7. 历时(空值安全处理)
hyHltdzB.setDr(rs.getString("dr") != null ? rs.getString("dr") : "");
// 8. 备注(空值安全处理)
hyHltdzB.setNt(rs.getString("nt") != null ? rs.getString("nt") : "");
return hyHltdzB;
}
// 辅助方法:安全处理日期空值(已集成到主逻辑)
private void mapNullableDate(ResultSet rs, String column, java.util.function.Consumer<Date> setter)
throws SQLException {
java.sql.Date sqlDate = rs.getDate(column);
if (sqlDate != null && !rs.wasNull()) {
setter.accept(new Date(sqlDate.getTime()));
}
}
}

59
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyHmxpFRowMapper.java

@ -0,0 +1,59 @@ @@ -0,0 +1,59 @@
package com.ruoyi.swlscx.basic.domain.rowMapper;
import com.ruoyi.swlscx.day.domain.po.HyDpC;
import com.ruoyi.swlscx.year.domain.po.HyHmxpF;
import org.springframework.jdbc.core.RowMapper;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Date;
/**
* @Author al
* @Date 2025/6/20 15:15
* @Description: TODO
* @Version
*/
public class HyHmxpFRowMapper implements RowMapper<HyHmxpF> {
@Override
public HyHmxpF mapRow(ResultSet rs, int rowNum) throws SQLException {
HyHmxpF hyHmxpF = new HyHmxpF();
// 映射基础字段(空值安全处理)
hyHmxpF.setStcd(rs.getString("stcd")); // 站码
// 整数类型字段(处理数据库NULL值)
setNullableInt(rs, "mxpdr", hyHmxpF::setMxpdr); // 最大降水量时段长(小时)
setNullableInt(rs, "yr", hyHmxpF::setYr); // 年
// 精度数值字段
hyHmxpF.setMxp(rs.getObject("mxp", BigDecimal.class)); // 最大降水量(毫米)
hyHmxpF.setMxprc(rs.getString("mxprc")); // 注解码
// 日期时间字段(精确到秒)
mapNullableTimestamp(rs, "bgtm", hyHmxpF::setBgtm); // 起时间
return hyHmxpF;
}
// 辅助方法:安全处理整数空值
private void setNullableInt(ResultSet rs, String column,
java.util.function.Consumer<Integer> setter)
throws SQLException {
int value = rs.getInt(column);
setter.accept(rs.wasNull() ? null : value);
}
// 辅助方法:安全处理时间戳(精确到秒)
private void mapNullableTimestamp(ResultSet rs, String column,
java.util.function.Consumer<Date> setter)
throws SQLException {
Timestamp timestamp = rs.getTimestamp(column);
if (timestamp != null && !rs.wasNull()) {
setter.accept(new Date(timestamp.getTime())); // 转为java.util.Date
}
}
}

67
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyImxfwFRowMapper.java

@ -0,0 +1,67 @@ @@ -0,0 +1,67 @@
package com.ruoyi.swlscx.basic.domain.rowMapper;
import com.ruoyi.swlscx.day.domain.po.HyDpC;
import com.ruoyi.swlscx.year.domain.po.HyImxfwF;
import org.springframework.jdbc.core.RowMapper;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Date;
import java.util.function.Consumer;
/**
* @Author al
* @Date 2025/6/20 15:15
* @Description: TODO
* @Version
*/
public class HyImxfwFRowMapper implements RowMapper<HyImxfwF> {
@Override
public HyImxfwF mapRow(ResultSet rs, int rowNum) throws SQLException {
HyImxfwF entity = new HyImxfwF();
// 基础信息映射
entity.setStcd(handleStringNull(rs, "stcd")); // 站码(空值→空字符串)[5](@ref)
entity.setMxwdr(handleStringNull(rs, "mxwdr")); // 洪量时段长(空值→空字符串)
setNullableInt(rs, "yr", entity::setYr); // 年份(保留NULL语义)[5](@ref)
// 洪量特征数据
mapNullableTimestamp(rs, "bgdt", entity::setBgdt); // 起始日期(精确时间戳)[4,5](@ref)
mapBigDecimal(rs, "mxw", entity::setMxw); // 最大洪量(保留NULL)[5](@ref)
entity.setMxwrc(handleStringNull(rs, "mxwrc")); // 洪量注解码(空值→空字符串)
return entity;
}
// 辅助方法:安全处理字符串空值
private String handleStringNull(ResultSet rs, String column) throws SQLException {
String value = rs.getString(column);
return value != null ? value : ""; // NULL → 空字符串[5](@ref)
}
// 辅助方法:安全处理整数空值(保留NULL语义)
private void setNullableInt(ResultSet rs, String column,
Consumer<Integer> setter) throws SQLException {
int value = rs.getInt(column);
setter.accept(rs.wasNull() ? null : value); // 区分0值与数据缺失[1,4](@ref)
}
// 辅助方法:安全处理时间戳(精确到毫秒)
private void mapNullableTimestamp(ResultSet rs, String column,
Consumer<Date> setter) throws SQLException {
Timestamp timestamp = rs.getTimestamp(column);
if (timestamp != null && !rs.wasNull()) {
setter.accept(new Date(timestamp.getTime())); // 确保时间精度[4,5](@ref)
}
}
// 辅助方法:安全处理BigDecimal(保留NULL语义)
private void mapBigDecimal(ResultSet rs, String column,
Consumer<BigDecimal> setter) throws SQLException {
BigDecimal value = rs.getBigDecimal(column);
setter.accept(value); // 不转换NULL,区分真实0值与数据缺失[5](@ref)
}
}

45
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyMmxpFRowMapper.java

@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
package com.ruoyi.swlscx.basic.domain.rowMapper;
import com.ruoyi.swlscx.year.domain.po.HyMmxpF;
import com.ruoyi.swlscx.year.domain.po.HyYrpF;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
/**
* @Author al
* @Date 2025/6/20 0:01
* @Description: TODO
* @Version
*/
public class HyMmxpFRowMapper implements RowMapper<HyMmxpF> {
@Override
public HyMmxpF mapRow(ResultSet rs, int rowNum) throws SQLException {
HyMmxpF hyMmxpF = new HyMmxpF();
// 映射基础字段
hyMmxpF.setStcd(rs.getString("stcd")); // 站码
hyMmxpF.setMxpdr(rs.getInt("mxpdr")); // 最大降水量时段长
hyMmxpF.setYr(rs.getInt("yr")); // 年
// 映射精度数值字段
hyMmxpF.setMxp(rs.getBigDecimal("mxp")); // 最大降水量
hyMmxpF.setMxprc(rs.getString("mxprc")); // 注解码
// 安全处理日期字段(空值保护)
mapNullableDate(rs, "bgtm", hyMmxpF::setBgdt); // 起时间
return hyMmxpF;
}
// 辅助方法:安全处理日期空值(双重检查)
private void mapNullableDate(ResultSet rs, String column,
java.util.function.Consumer<Date> setter)
throws SQLException {
java.sql.Date sqlDate = rs.getDate(column);
if (sqlDate != null && !rs.wasNull()) {
setter.accept(new Date(sqlDate.getTime())); // 转换为java.util.Date
}
}
}

48
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyMtpERowMapper.java

@ -0,0 +1,48 @@ @@ -0,0 +1,48 @@
package com.ruoyi.swlscx.basic.domain.rowMapper;
import com.ruoyi.swlscx.basic.domain.po.HyStscA;
import com.ruoyi.swlscx.month.domain.po.HyMtpE;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
/**
* @Author al
* @Date 2025/6/20 0:01
* @Description: TODO
* @Version
*/
public class HyMtpERowMapper implements RowMapper<HyMtpE> {
@Override
public HyMtpE mapRow(ResultSet rs, int rowNum) throws SQLException {
HyMtpE hyMtpE = new HyMtpE();
// 映射基础字段
hyMtpE.setStcd(rs.getString("stcd")); // 站码
hyMtpE.setYr(rs.getInt("yr")); // 年
hyMtpE.setMth(rs.getInt("mth")); // 月
// 映射降水量相关字段
hyMtpE.setP(rs.getBigDecimal("p")); // 降水量(毫米)
hyMtpE.setPrcd(rs.getString("prcd")); // 降水量注解码
// 映射降水日数字段
hyMtpE.setPdynum(rs.getString("pdynum")); // 降水日数
hyMtpE.setPdynumrcd(rs.getString("pdynumrcd")); // 降水日数注解码
// 映射最大降水量字段
hyMtpE.setMxdyp(rs.getBigDecimal("mxdyp")); // 最大降水量(毫米)
hyMtpE.setMxdyprcd(rs.getString("mxdyprcd")); // 最大降水量注解码
// 映射日期字段
java.sql.Date sqlDate = rs.getDate("mxdypodt");
if (sqlDate != null) {
hyMtpE.setMxdypodt(new Date(sqlDate.getTime())); // 最大日降水量出现日期
}
return hyMtpE;
}
}

72
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyMtqERowMapper.java

@ -0,0 +1,72 @@ @@ -0,0 +1,72 @@
package com.ruoyi.swlscx.basic.domain.rowMapper;
import com.ruoyi.swlscx.day.domain.po.HyDqC;
import com.ruoyi.swlscx.month.domain.po.HyMtqE;
import org.springframework.jdbc.core.RowMapper;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Date;
/**
* @Author al
* @Date 2025/6/20 15:15
* @Description: TODO
* @Version
*/
public class HyMtqERowMapper implements RowMapper<HyMtqE> {
@Override
public HyMtqE mapRow(ResultSet rs, int rowNum) throws SQLException {
HyMtqE entity = new HyMtqE();
// 1. 基础信息映射
entity.setStcd(rs.getString("stcd") != null ? rs.getString("stcd") : ""); // 站码(空值→空字符串)
setNullableInt(rs, "yr", entity::setYr); // 年份(保留NULL语义)
setNullableInt(rs, "mth", entity::setMth); // 月份(保留NULL语义)
// 2. 平均流量数据
mapBigDecimal(rs, "avq", entity::setAvq); // 平均流量(保留NULL)
entity.setAvqrcd(rs.getString("avqrcd") != null ? rs.getString("avqrcd") : ""); // 注解码
// 3. 最高流量数据
mapBigDecimal(rs, "mxq", entity::setMxq); // 最高流量(保留NULL)
entity.setMxqrcd(rs.getString("mxqrcd") != null ? rs.getString("mxqrcd") : "");
mapNullableTimestamp(rs, "mxqdt", entity::setMxqdt); // 最高流量日期(精确时间戳)
// 4. 最低流量数据
mapBigDecimal(rs, "mnq", entity::setMnq); // 最低流量(保留NULL)
entity.setMnqrcd(rs.getString("mnqrcd") != null ? rs.getString("mnqrcd") : "");
mapNullableTimestamp(rs, "mnqdt", entity::setMnqdt); // 最低流量日期
return entity;
}
// 辅助方法:安全处理整数空值(保留NULL语义)
private void setNullableInt(ResultSet rs, String column,
java.util.function.Consumer<Integer> setter)
throws SQLException {
int value = rs.getInt(column);
setter.accept(rs.wasNull() ? null : value); // 明确区分0值和数据缺失[3](@ref)
}
// 辅助方法:安全处理时间戳(精确到毫秒)
private void mapNullableTimestamp(ResultSet rs, String column,
java.util.function.Consumer<Date> setter)
throws SQLException {
Timestamp timestamp = rs.getTimestamp(column);
if (timestamp != null && !rs.wasNull()) {
setter.accept(new Date(timestamp.getTime())); // 确保时间精度[1](@ref)
}
}
// 辅助方法:安全处理BigDecimal(保留NULL语义)
private void mapBigDecimal(ResultSet rs, String column,
java.util.function.Consumer<BigDecimal> setter)
throws SQLException {
BigDecimal value = rs.getBigDecimal(column);
setter.accept(value); // 不转换NULL,区分真实0值与数据缺失[4](@ref)
}
}

126
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyMttdzERowMapper.java

@ -0,0 +1,126 @@ @@ -0,0 +1,126 @@
package com.ruoyi.swlscx.basic.domain.rowMapper;
import com.ruoyi.swlscx.month.domain.po.HyMttdzE;
import com.ruoyi.swlscx.year.domain.po.HyHmxpF;
import org.springframework.jdbc.core.RowMapper;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Date;
/**
* @Author al
* @Date 2025/6/20 15:15
* @Description: TODO
* @Version
*/
public class HyMttdzERowMapper implements RowMapper<HyMttdzE> {
@Override
public HyMttdzE mapRow(ResultSet rs, int rowNum) throws SQLException {
HyMttdzE entity = new HyMttdzE();
// 基础信息映射
entity.setStcd(rs.getString("stcd") != null ? rs.getString("stcd") : "");
setNullableInt(rs, "yr", entity::setYr);
setNullableInt(rs, "mth", entity::setMth);
// 高潮潮位数据
mapBigDecimal(rs, "avhtdz", entity::setAvhtdz);
entity.setAvhtdzrcd(rs.getString("avhtdzrcd") != null ? rs.getString("avhtdzrcd") : "");
mapBigDecimal(rs, "hthtdz", entity::setHthtdz);
entity.setHthtdzrcd(rs.getString("hthtdzrcd") != null ? rs.getString("hthtdzrcd") : "");
mapNullableTimestamp(rs, "hthtdzotm", entity::setHthtdzotm);
mapBigDecimal(rs, "lthtdz", entity::setLthtdz);
entity.setLthtdzrcd(rs.getString("lthtdzrcd") != null ? rs.getString("lthtdzrcd") : "");
mapNullableTimestamp(rs, "lthtdzotm", entity::setLthtdzotm);
// 低潮潮位数据
mapBigDecimal(rs, "avltdz", entity::setAvltdz);
entity.setAvltdzrcd(rs.getString("avltdzrcd") != null ? rs.getString("avltdzrcd") : "");
mapBigDecimal(rs, "htltdz", entity::setHtltdz);
entity.setHtltdzrcd(rs.getString("htltdzrcd") != null ? rs.getString("htltdzrcd") : "");
mapNullableTimestamp(rs, "htltdzotm", entity::setHtltdzotm);
mapBigDecimal(rs, "ltltdz", entity::setLtltdz);
entity.setLtltdzrcd(rs.getString("ltltdzrcd") != null ? rs.getString("ltltdzrcd") : "");
mapNullableTimestamp(rs, "ltltdzotm", entity::setLtltdzotm);
// 涨潮潮差数据
mapBigDecimal(rs, "avftdr", entity::setAvftdr);
entity.setAvftdrrcd(rs.getString("avftdrrcd") != null ? rs.getString("avftdrrcd") : "");
mapBigDecimal(rs, "mxfltdr", entity::setMxfltdr);
entity.setMxfltdrrcd(rs.getString("mxfltdrrcd") != null ? rs.getString("mxfltdrrcd") : "");
mapNullableTimestamp(rs, "mxfltdrhtm", entity::setMxfltdrhtm);
mapBigDecimal(rs, "mnfltdr", entity::setMnfltdr);
entity.setMnfltdrrcd(rs.getString("mnfltdrrcd") != null ? rs.getString("mnfltdrrcd") : "");
mapNullableTimestamp(rs, "mnfltdrhtm", entity::setMnfltdrhtm);
// 落潮潮差数据
mapBigDecimal(rs, "aver", entity::setAver);
entity.setAverbbrrcd(rs.getString("averbbrrcd") != null ? rs.getString("averbbrrcd") : "");
mapBigDecimal(rs, "mxebtdr", entity::setMxebtdr);
entity.setMxebtdrrcd(rs.getString("mxebtdrrcd") != null ? rs.getString("mxebtdrrcd") : "");
mapNullableTimestamp(rs, "mxebtdrht", entity::setMxebtdrht);
mapBigDecimal(rs, "mnebtdr", entity::setMnebtdr);
entity.setMnebtdrrcd(rs.getString("mnebtdrrcd") != null ? rs.getString("mnebtdrrcd") : "");
mapNullableTimestamp(rs, "mnebtdrhtm", entity::setMnebtdrhtm);
// 涨潮历时数据
setNullableInt(rs, "avftd", entity::setAvftd);
entity.setAvftdrcd(rs.getString("avftdrcd") != null ? rs.getString("avftdrcd") : "");
setNullableInt(rs, "mxfltddr", entity::setMxfltddr);
entity.setMxfltddrrcd(rs.getString("mxfltddrrcd") != null ? rs.getString("mxfltddrrcd") : "");
mapNullableTimestamp(rs, "mxfltddrhtm", entity::setMxfltddrhtm);
setNullableInt(rs, "mnfltddr", entity::setMnfltddr);
entity.setMnfltddrrcd(rs.getString("mnfltddrrcd") != null ? rs.getString("mnfltddrrcd") : "");
mapNullableTimestamp(rs, "mnfltddrhtm", entity::setMnfltddrhtm);
// 落潮历时数据
setNullableInt(rs, "avebbdr", entity::setAvebbdr);
entity.setAvedrc(rs.getString("avedrc") != null ? rs.getString("avedrc") : "");
setNullableInt(rs, "mxebtddr", entity::setMxebtddr);
entity.setMxebtddrrcd(rs.getString("mxebtddrrcd") != null ? rs.getString("mxebtddrrcd") : "");
mapNullableTimestamp(rs, "mxebtddrhtm", entity::setMxebtddrhtm);
setNullableInt(rs, "mnbtddr", entity::setMnbtddr);
entity.setMnebtddrrcd(rs.getString("mnebtddrrcd") != null ? rs.getString("mnebtddrrcd") : "");
mapNullableTimestamp(rs, "mnebtddrhtm", entity::setMnebtddrhtm);
// 综合潮位数据
mapBigDecimal(rs, "hravtdz", entity::setHravtdz);
entity.setHravtdzrcd(rs.getString("hravtdzrcd") != null ? rs.getString("hravtdzrcd") : "");
mapBigDecimal(rs, "avtdr", entity::setAvtdr);
entity.setAvtdrrcd(rs.getString("avtdrrcd") != null ? rs.getString("avtdrrcd") : "");
setNullableInt(rs, "avtddr", entity::setAvtddr);
entity.setAvtddrrcd(rs.getString("avtddrrcd") != null ? rs.getString("avtddrrcd") : "");
return entity;
}
// 辅助方法:安全处理整数空值
private void setNullableInt(ResultSet rs, String column,
java.util.function.Consumer<Integer> setter)
throws SQLException {
int value = rs.getInt(column);
setter.accept(rs.wasNull() ? null : value);
}
// 辅助方法:安全处理时间戳(精确到秒)
private void mapNullableTimestamp(ResultSet rs, String column,
java.util.function.Consumer<Date> setter)
throws SQLException {
Timestamp timestamp = rs.getTimestamp(column);
if (timestamp != null && !rs.wasNull()) {
setter.accept(new Date(timestamp.getTime()));
}
}
// 新增辅助方法:安全处理BigDecimal空值(保留NULL语义)
private void mapBigDecimal(ResultSet rs, String column,
java.util.function.Consumer<BigDecimal> setter)
throws SQLException {
BigDecimal value = rs.getBigDecimal(column);
setter.accept(value); // 保留NULL表示数据缺失
}
}

75
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyMtzERowMapper.java

@ -0,0 +1,75 @@ @@ -0,0 +1,75 @@
package com.ruoyi.swlscx.basic.domain.rowMapper;
import com.ruoyi.swlscx.day.domain.po.HyDzC;
import com.ruoyi.swlscx.month.domain.po.HyMtzE;
import org.springframework.jdbc.core.RowMapper;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Date;
/**
* @Author al
* @Date 2025/6/20 0:01
* @Description: TODO
* @Version
*/
public class HyMtzERowMapper implements RowMapper<HyMtzE> {
@Override
public HyMtzE mapRow(ResultSet rs, int rowNum) throws SQLException {
HyMtzE hyMtzE = new HyMtzE();
// 1. 站码(字符串)
hyMtzE.setStcd(rs.getString("stcd"));
// 2. 年份(整数)
Integer yr = rs.getInt("yr");
hyMtzE.setYr(rs.wasNull() ? null : yr); // 处理SQL NULL
// 3. 月份(整数)
Integer mth = rs.getInt("mth");
hyMtzE.setMth(rs.wasNull() ? null : mth);
// 4. 平均水位(精确数值)
BigDecimal avz = rs.getBigDecimal("avz");
hyMtzE.setAvz(avz != null ? avz : BigDecimal.ZERO); // NULL 转为 0.00
// 5. 平均水位注解码
String avzrcd = rs.getString("avzrcd");
hyMtzE.setAvzrcd(avzrcd != null ? avzrcd : "");
// 6. 最高水位(精确数值)
BigDecimal htz = rs.getBigDecimal("htz");
hyMtzE.setHtz(htz != null ? htz : BigDecimal.ZERO);
// 7. 最高水位注解码
String htzrcd = rs.getString("htzrcd");
hyMtzE.setHtzrcd(htzrcd != null ? htzrcd : "");
// 8. 最高水位日期(带空值检查)
Timestamp htzdtTimestamp = rs.getTimestamp("htzdt");
if (htzdtTimestamp != null) {
hyMtzE.setHtzdt(new Date(htzdtTimestamp.getTime()));
}
// 9. 最低水位(精确数值)
BigDecimal mnz = rs.getBigDecimal("mnz");
hyMtzE.setMnz(mnz != null ? mnz : BigDecimal.ZERO);
// 10. 最低水位注解码
String mnzrcd = rs.getString("mnzrcd");
hyMtzE.setMnzrcd(mnzrcd != null ? mnzrcd : "");
// 11. 最低水位日期(带空值检查)
Timestamp mnzdtTimestamp = rs.getTimestamp("mnzdt");
if (mnzdtTimestamp != null) {
hyMtzE.setMnzdt(new Date(mnzdtTimestamp.getTime()));
}
return hyMtzE;
}
}

49
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyPrexBRowMapper.java

@ -0,0 +1,49 @@ @@ -0,0 +1,49 @@
package com.ruoyi.swlscx.basic.domain.rowMapper;
import com.ruoyi.swlscx.excerpt.domain.po.HyPrexB;
import com.ruoyi.swlscx.year.domain.po.HyMmxpF;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Date;
/**
* @Author al
* @Date 2025/6/20 0:01
* @Description: TODO
* @Version
*/
public class HyPrexBRowMapper implements RowMapper<HyPrexB> {
@Override
public HyPrexB mapRow(ResultSet rs, int rowNum) throws SQLException {
HyPrexB hyPrexB = new HyPrexB();
// 1. 站码(字符串)
hyPrexB.setStcd(rs.getString("stcd"));
// 2. 起止时间(带时区转换)
Timestamp bgTimestamp = rs.getTimestamp("bgtm");
if (bgTimestamp != null) {
hyPrexB.setBgtm(new Date(bgTimestamp.getTime())); // SQL Timestamp -> Java Date
}
Timestamp endTimestamp = rs.getTimestamp("endtm");
if (endTimestamp != null) {
hyPrexB.setEndtm(new Date(endTimestamp.getTime()));
}
// 3. 降水量(精确数值)
hyPrexB.setP(rs.getBigDecimal("p")); // 直接映射BigDecimal
// 4. 注解码(空值安全处理)
String prcd = rs.getString("prcd");
hyPrexB.setPrcd(prcd != null ? prcd : ""); // NULL转空字符串
return hyPrexB;
}
}

61
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyStscARowMapper.java

@ -0,0 +1,61 @@ @@ -0,0 +1,61 @@
package com.ruoyi.swlscx.basic.domain.rowMapper;
import com.ruoyi.swlscx.basic.domain.po.HyStscA;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* @Author al
* @Date 2025/6/20 0:01
* @Description: TODO
* @Version
*/
public class HyStscARowMapper implements RowMapper<HyStscA> {
@Override
public HyStscA mapRow(java.sql.ResultSet rs, int rowNum) throws java.sql.SQLException {
HyStscA hyStscA = new HyStscA();
// 主键字段
hyStscA.setStcd(rs.getString("stcd"));
hyStscA.setStnm(rs.getString("stnm"));
// 字符串类型字段
hyStscA.setStct(rs.getString("stct"));
hyStscA.setBshncd(rs.getString("bshncd"));
hyStscA.setHnnm(rs.getString("hnnm"));
hyStscA.setRvnm(rs.getString("rvnm"));
hyStscA.setObitmcd(rs.getString("obitmcd"));
hyStscA.setAddvcd(rs.getString("addvcd"));
hyStscA.setWrrgcd(rs.getString("wrrgcd"));
hyStscA.setFlto(rs.getString("flto"));
hyStscA.setFdtmnm(rs.getString("fdtmnm"));
hyStscA.setAdmag(rs.getString("admag"));
hyStscA.setAdmnst(rs.getString("admnst"));
hyStscA.setStlc(rs.getString("stlc"));
hyStscA.setStgrd(rs.getString("stgrd"));
hyStscA.setFrgrd(rs.getString("frgrd"));
hyStscA.setNt(rs.getString("nt"));
// 整数类型字段(注意处理 NULL 值)
hyStscA.setEsstyr(getNullableInt(rs, "esstyr"));
hyStscA.setEsstmth(getNullableInt(rs, "esstmth"));
hyStscA.setWdstyr(getNullableInt(rs, "wdstyr"));
hyStscA.setWdstmth(getNullableInt(rs, "wdstmth"));
// 小数类型字段(使用 BigDecimal 精确计算)
hyStscA.setDrar(rs.getBigDecimal("drar"));
hyStscA.setDstrvm(rs.getBigDecimal("dstrvm"));
hyStscA.setLgtd(rs.getBigDecimal("lgtd"));
hyStscA.setLttd(rs.getBigDecimal("lttd"));
return hyStscA;
}
// 处理可能为 NULL 的整数字段
private Integer getNullableInt(ResultSet rs, String column) throws SQLException {
Object value = rs.getObject(column);
return (value != null) ? rs.getInt(column) : null;
}
}

54
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyWfdzFRowMapper.java

@ -0,0 +1,54 @@ @@ -0,0 +1,54 @@
package com.ruoyi.swlscx.basic.domain.rowMapper;
import com.ruoyi.swlscx.basic.domain.po.HyWfdzF;
import com.ruoyi.swlscx.year.domain.po.HyYrpF;
import org.springframework.jdbc.core.RowMapper;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
/**
* @Author al
* @Date 2025/6/20 0:01
* @Description: TODO
* @Version
*/
public class HyWfdzFRowMapper implements RowMapper<HyWfdzF> {
@Override
public HyWfdzF mapRow(ResultSet rs, int rowNum) throws SQLException {
HyWfdzF hyWfdzF = new HyWfdzF();
// 1. 站码(直接映射)
hyWfdzF.setStcd(rs.getString("stcd"));
// 2. 年份(BigDecimal类型)
BigDecimal yr = rs.getBigDecimal("yr");
hyWfdzF.setYr(yr != null ? yr : BigDecimal.ZERO); // NULL → 0
// 3. 降水量(BigDecimal类型)
BigDecimal wf = rs.getBigDecimal("wf");
hyWfdzF.setWf(wf != null ? wf : BigDecimal.ZERO); // NULL → 0.00
// 4. 水位值(BigDecimal类型)
BigDecimal rfz = rs.getBigDecimal("rfz");
hyWfdzF.setRfz(rfz != null ? rfz : BigDecimal.ZERO); // NULL → 0.00
// 5. 注解码(空值安全处理)
String rzrcd = rs.getString("rzrcd");
hyWfdzF.setRzrcd(rzrcd != null ? rzrcd : ""); // NULL → 空字符串
return hyWfdzF;
}
// 辅助方法:安全处理日期空值
private void mapNullableDate(ResultSet rs, String column, java.util.function.Consumer<Date> setter)
throws SQLException {
java.sql.Date sqlDate = rs.getDate(column);
if (sqlDate != null && !rs.wasNull()) {
setter.accept(new Date(sqlDate.getTime()));
}
}
}

53
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyWsfhexBRowMapper.java

@ -0,0 +1,53 @@ @@ -0,0 +1,53 @@
package com.ruoyi.swlscx.basic.domain.rowMapper;
import com.ruoyi.swlscx.excerpt.domain.po.HyWsfhexB;
import com.ruoyi.swlscx.year.domain.po.HyMmxpF;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Date;
/**
* @Author al
* @Date 2025/6/20 0:01
* @Description: TODO
* @Version
*/
public class HyWsfhexBRowMapper implements RowMapper<HyWsfhexB> {
@Override
public HyWsfhexB mapRow(ResultSet rs, int rowNum) throws SQLException {
HyWsfhexB entity = new HyWsfhexB();
// 站码(字符串,处理空值)
entity.setStcd(rs.getString("stcd") != null ? rs.getString("stcd") : "");
// 时间(使用getTimestamp获取时间戳,然后转换为Date)
Timestamp tmTimestamp = rs.getTimestamp("tm");
if (tmTimestamp != null) {
entity.setTm(new Date(tmTimestamp.getTime()));
}
// 闸上水位(BigDecimal,允许为NULL)
entity.setUpz(rs.getBigDecimal("upz"));
// 闸上水位注解码(字符串,处理空值)
entity.setUpzrcd(rs.getString("upzrcd") != null ? rs.getString("upzrcd") : "");
// 闸下水位(BigDecimal,允许为NULL)
entity.setDwz(rs.getBigDecimal("dwz"));
// 闸下水位注解码(字符串,处理空值)
entity.setDwzrcd(rs.getString("dwzrcd") != null ? rs.getString("dwzrcd") : "");
// 流量(BigDecimal,允许为NULL)
entity.setQ(rs.getBigDecimal("q"));
// 含沙量(BigDecimal,允许为NULL)
entity.setS(rs.getBigDecimal("s"));
return entity;
}
}

52
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyYrpFRowMapper.java

@ -0,0 +1,52 @@ @@ -0,0 +1,52 @@
package com.ruoyi.swlscx.basic.domain.rowMapper;
import com.ruoyi.swlscx.month.domain.po.HyMtpE;
import com.ruoyi.swlscx.year.domain.po.HyYrpF;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
/**
* @Author al
* @Date 2025/6/20 0:01
* @Description: TODO
* @Version
*/
public class HyYrpFRowMapper implements RowMapper<HyYrpF> {
@Override
public HyYrpF mapRow(ResultSet rs, int rowNum) throws SQLException {
HyYrpF hyYrpF = new HyYrpF();
// 映射基础字段
hyYrpF.setStcd(rs.getString("stcd")); // 站码
hyYrpF.setYr(rs.getInt("yr")); // 年
// 映射降水量相关字段
hyYrpF.setP(rs.getBigDecimal("p")); // 降水量(毫米)
hyYrpF.setPrcd(rs.getString("prcd")); // 降水量注解码
// 映射降水日数字段
hyYrpF.setPdynum(rs.getString("pdynum")); // 降水日数
hyYrpF.setPdynumrcd(rs.getString("pdynumrcd")); // 降水日数注解码
// 映射日期字段(处理空值)
mapNullableDate(rs, "frdsdt", hyYrpF::setFrdsdt); // 终霜日期
mapNullableDate(rs, "frapdt", hyYrpF::setFrapdt); // 初霜日期
mapNullableDate(rs, "sndsdt", hyYrpF::setSndsdt); // 终雪日期
mapNullableDate(rs, "snapdt", hyYrpF::setSnapdt); // 初雪日期
return hyYrpF;
}
// 辅助方法:安全处理日期空值
private void mapNullableDate(ResultSet rs, String column, java.util.function.Consumer<Date> setter)
throws SQLException {
java.sql.Date sqlDate = rs.getDate(column);
if (sqlDate != null && !rs.wasNull()) {
setter.accept(new Date(sqlDate.getTime()));
}
}
}

73
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyYrqFRowMapper.java

@ -0,0 +1,73 @@ @@ -0,0 +1,73 @@
package com.ruoyi.swlscx.basic.domain.rowMapper;
import com.ruoyi.swlscx.month.domain.po.HyMtpE;
import com.ruoyi.swlscx.year.domain.po.HyYrqF;
import org.springframework.jdbc.core.RowMapper;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Date;
/**
* @Author al
* @Date 2025/6/20 0:01
* @Description: TODO
* @Version
*/
public class HyYrqFRowMapper implements RowMapper<HyYrqF> {
@Override
public HyYrqF mapRow(ResultSet rs, int rowNum) throws SQLException {
HyYrqF entity = new HyYrqF();
// 基础信息映射
entity.setStcd(rs.getString("stcd") != null ? rs.getString("stcd") : ""); // 站码(空值→空字符串)[2,4](@ref)
setNullableInt(rs, "yr", entity::setYr); // 年份(保留NULL语义)
// 流量核心数据
mapBigDecimal(rs, "avq", entity::setAvq); // 平均流量(保留NULL)
entity.setAvqrcd(rs.getString("avqrcd") != null ? rs.getString("avqrcd") : "");
mapBigDecimal(rs, "mxq", entity::setMxq); // 最高流量(保留NULL)
entity.setMxqrcd(rs.getString("mxqrcd") != null ? rs.getString("mxqrcd") : "");
mapNullableTimestamp(rs, "mxqdt", entity::setMxqdt); // 最高流量日期(精确时间戳)
mapBigDecimal(rs, "mnq", entity::setMnq); // 最低流量(保留NULL)
entity.setMnqrcd(rs.getString("mnqrcd") != null ? rs.getString("mnqrcd") : "");
mapNullableTimestamp(rs, "mnqdt", entity::setMnqdt); // 最低流量日期
// 径流特征数据
mapBigDecimal(rs, "rw", entity::setRw); // 径流量(万立方米)
entity.setRwrcd(rs.getString("rwrcd") != null ? rs.getString("rwrcd") : "");
mapBigDecimal(rs, "rm", entity::setRm); // 径流模数
mapBigDecimal(rs, "rd", entity::setRd); // 径流深
return entity;
}
// 辅助方法:安全处理整数空值(保留NULL语义)[3,5](@ref)
private void setNullableInt(ResultSet rs, String column,
java.util.function.Consumer<Integer> setter)
throws SQLException {
int value = rs.getInt(column);
setter.accept(rs.wasNull() ? null : value); // 明确区分0值和数据缺失
}
// 辅助方法:安全处理时间戳(精确到毫秒)[4](@ref)
private void mapNullableTimestamp(ResultSet rs, String column,
java.util.function.Consumer<Date> setter)
throws SQLException {
Timestamp timestamp = rs.getTimestamp(column);
if (timestamp != null && !rs.wasNull()) {
setter.accept(new Date(timestamp.getTime())); // 确保时间精度
}
}
// 辅助方法:安全处理BigDecimal(保留NULL语义)[6](@ref)
private void mapBigDecimal(ResultSet rs, String column,
java.util.function.Consumer<BigDecimal> setter)
throws SQLException {
BigDecimal value = rs.getBigDecimal(column);
setter.accept(value); // 不转换NULL,区分真实0值与数据缺失
}
}

125
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyYrtdzFRowMapper.java

@ -0,0 +1,125 @@ @@ -0,0 +1,125 @@
package com.ruoyi.swlscx.basic.domain.rowMapper;
import com.ruoyi.swlscx.month.domain.po.HyMttdzE;
import com.ruoyi.swlscx.year.domain.po.HyYrtdzF;
import org.springframework.jdbc.core.RowMapper;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Date;
/**
* @Author al
* @Date 2025/6/20 15:15
* @Description: TODO
* @Version
*/
public class HyYrtdzFRowMapper implements RowMapper<HyYrtdzF> {
@Override
public HyYrtdzF mapRow(ResultSet rs, int rowNum) throws SQLException {
HyYrtdzF entity = new HyYrtdzF();
// 基础信息映射
entity.setStcd(rs.getString("stcd") != null ? rs.getString("stcd") : "");
setNullableInt(rs, "yr", entity::setYr);
// 高潮潮位数据
mapBigDecimal(rs, "avhtdz", entity::setAvhtdz);
entity.setAvhtdzrcd(rs.getString("avhtdzrcd") != null ? rs.getString("avhtdzrcd") : "");
mapBigDecimal(rs, "hthtdz", entity::setHthtdz);
entity.setHthtdzrcd(rs.getString("hthtdzrcd") != null ? rs.getString("hthtdzrcd") : "");
mapNullableTimestamp(rs, "hthtdzotm", entity::setHthtdzotm);
mapBigDecimal(rs, "lthtdz", entity::setLthtdz);
entity.setLthtdzrcd(rs.getString("lthtdzrcd") != null ? rs.getString("lthtdzrcd") : "");
mapNullableTimestamp(rs, "lthtdzotm", entity::setLthtdzotm);
// 低潮潮位数据
mapBigDecimal(rs, "avltdz", entity::setAvltdz);
entity.setAvltdzrcd(rs.getString("avltdzrcd") != null ? rs.getString("avltdzrcd") : "");
mapBigDecimal(rs, "htltdz", entity::setHtltdz);
entity.setHtltdzrcd(rs.getString("htltdzrcd") != null ? rs.getString("htltdzrcd") : "");
mapNullableTimestamp(rs, "htltdzotm", entity::setHtltdzotm);
mapBigDecimal(rs, "ltltdz", entity::setLtltdz);
entity.setLtltdzrcd(rs.getString("ltltdzrcd") != null ? rs.getString("ltltdzrcd") : "");
mapNullableTimestamp(rs, "ltltdzotm", entity::setLtltdzotm);
// 涨潮潮差数据
mapBigDecimal(rs, "avftdr", entity::setAvftdr);
entity.setAvftdrrcd(rs.getString("avftdrrcd") != null ? rs.getString("avftdrrcd") : "");
mapBigDecimal(rs, "mxfltdr", entity::setMxfltdr);
entity.setMxfltdrrcd(rs.getString("mxfltdrrcd") != null ? rs.getString("mxfltdrrcd") : "");
mapNullableTimestamp(rs, "mxfltdrhtm", entity::setMxfltdrhtm);
mapBigDecimal(rs, "mnfltdr", entity::setMnfltdr);
entity.setMnfltdrrcd(rs.getString("mnfltdrrcd") != null ? rs.getString("mnfltdrrcd") : "");
mapNullableTimestamp(rs, "mnfltdrhtm", entity::setMnfltdrhtm);
// 落潮潮差数据
mapBigDecimal(rs, "aver", entity::setAver);
entity.setAverbbrrcd(rs.getString("averbbrrcd") != null ? rs.getString("averbbrrcd") : "");
mapBigDecimal(rs, "mxebtdr", entity::setMxebtdr);
entity.setMxebtdrrcd(rs.getString("mxebtdrrcd") != null ? rs.getString("mxebtdrrcd") : "");
mapNullableTimestamp(rs, "mxebtdrht", entity::setMxebtdrht);
mapBigDecimal(rs, "mnebtdr", entity::setMnebtdr);
entity.setMnebtdrrcd(rs.getString("mnebtdrrcd") != null ? rs.getString("mnebtdrrcd") : "");
mapNullableTimestamp(rs, "mnebtdrhtm", entity::setMnebtdrhtm);
// 涨潮历时数据
setNullableInt(rs, "avftd", entity::setAvftd);
entity.setAvftdrcd(rs.getString("avftdrcd") != null ? rs.getString("avftdrcd") : "");
setNullableInt(rs, "mxfltddr", entity::setMxfltddr);
entity.setMxfltddrrcd(rs.getString("mxfltddrrcd") != null ? rs.getString("mxfltddrrcd") : "");
mapNullableTimestamp(rs, "mxfltddrhtm", entity::setMxfltddrhtm);
setNullableInt(rs, "mnfltddr", entity::setMnfltddr);
entity.setMnfltddrrcd(rs.getString("mnfltddrrcd") != null ? rs.getString("mnfltddrrcd") : "");
mapNullableTimestamp(rs, "mnfltddrhtm", entity::setMnfltddrhtm);
// 落潮历时数据
setNullableInt(rs, "avebbdr", entity::setAvebbdr);
entity.setAvedrc(rs.getString("avedrc") != null ? rs.getString("avedrc") : "");
setNullableInt(rs, "mxebtddr", entity::setMxebtddr);
entity.setMxebtddrrcd(rs.getString("mxebtddrrcd") != null ? rs.getString("mxebtddrrcd") : "");
mapNullableTimestamp(rs, "mxebtddrhtm", entity::setMxebtddrhtm);
setNullableInt(rs, "mnbtddr", entity::setMnbtddr);
entity.setMnebtddrrcd(rs.getString("mnebtddrrcd") != null ? rs.getString("mnebtddrrcd") : "");
mapNullableTimestamp(rs, "mnebtddrhtm", entity::setMnebtddrhtm);
// 综合潮位数据
mapBigDecimal(rs, "hravtdz", entity::setHravtdz);
entity.setHravtdzrcd(rs.getString("hravtdzrcd") != null ? rs.getString("hravtdzrcd") : "");
mapBigDecimal(rs, "avtdr", entity::setAvtdr);
entity.setAvtdrrcd(rs.getString("avtdrrcd") != null ? rs.getString("avtdrrcd") : "");
setNullableInt(rs, "avtddr", entity::setAvtddr);
entity.setAvtddrrcd(rs.getString("avtddrrcd") != null ? rs.getString("avtddrrcd") : "");
return entity;
}
// 辅助方法:安全处理整数空值
private void setNullableInt(ResultSet rs, String column,
java.util.function.Consumer<Integer> setter)
throws SQLException {
int value = rs.getInt(column);
setter.accept(rs.wasNull() ? null : value);
}
// 辅助方法:安全处理时间戳(精确到秒)
private void mapNullableTimestamp(ResultSet rs, String column,
java.util.function.Consumer<Date> setter)
throws SQLException {
Timestamp timestamp = rs.getTimestamp(column);
if (timestamp != null && !rs.wasNull()) {
setter.accept(new Date(timestamp.getTime()));
}
}
// 新增辅助方法:安全处理BigDecimal空值(保留NULL语义)
private void mapBigDecimal(ResultSet rs, String column,
java.util.function.Consumer<BigDecimal> setter)
throws SQLException {
BigDecimal value = rs.getBigDecimal(column);
setter.accept(value); // 保留NULL表示数据缺失
}
}

60
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/rowMapper/HyYrzFRowMapper.java

@ -0,0 +1,60 @@ @@ -0,0 +1,60 @@
package com.ruoyi.swlscx.basic.domain.rowMapper;
import com.ruoyi.swlscx.month.domain.po.HyMtpE;
import com.ruoyi.swlscx.year.domain.po.HyYrzF;
import org.springframework.jdbc.core.RowMapper;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Date;
/**
* @Author al
* @Date 2025/6/20 0:01
* @Description: TODO
* @Version
*/
public class HyYrzFRowMapper implements RowMapper<HyYrzF> {
@Override
public HyYrzF mapRow(ResultSet rs, int rowNum) throws SQLException {
HyYrzF hyYrzF = new HyYrzF();
// 1. 站码(直接映射)
hyYrzF.setStcd(rs.getString("stcd"));
// 2. 年份(处理SQL NULL)
int yrValue = rs.getInt("yr");
hyYrzF.setYr(rs.wasNull() ? null : yrValue);
// 3. 平均水位及注解码
BigDecimal avz = rs.getBigDecimal("avz");
hyYrzF.setAvz(avz != null ? avz : BigDecimal.ZERO); // NULL → 0.00
String avzrcd = rs.getString("avzrcd");
hyYrzF.setAvzrcd(avzrcd != null ? avzrcd : ""); // NULL → 空字符串
// 4. 最高水位及关联字段
BigDecimal htz = rs.getBigDecimal("htz");
hyYrzF.setHtz(htz != null ? htz : BigDecimal.ZERO);
String htzrcd = rs.getString("htzrcd");
hyYrzF.setHtzrcd(htzrcd != null ? htzrcd : "");
Timestamp htzdtTimestamp = rs.getTimestamp("htzdt");
if (htzdtTimestamp != null) {
hyYrzF.setHtzdt(new Date(htzdtTimestamp.getTime())); // SQL → Java Date
}
// 5. 最低水位及关联字段
BigDecimal mnz = rs.getBigDecimal("mnz");
hyYrzF.setMnz(mnz != null ? mnz : BigDecimal.ZERO);
String mnzrcd = rs.getString("mnzrcd");
hyYrzF.setMnzrcd(mnzrcd != null ? mnzrcd : "");
Timestamp mnzdtTimestamp = rs.getTimestamp("mnzdt");
if (mnzdtTimestamp != null) {
hyYrzF.setMnzdt(new Date(mnzdtTimestamp.getTime()));
}
return hyYrzF;
}
}

31
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/vo/HyStscASelectVo.java

@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
package com.ruoyi.swlscx.basic.domain.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 测站一览表
* @Author al
* @Date 2024/7/30 13:52
* @Description: TODO
* @Version
*/
@Data
public class HyStscASelectVo implements Serializable {
/** 站码 */
private String value;
private Boolean disabled;
/**站名**/
private String label;
private List<HyStscASelectVo> children;
private static final long serialVersionUID = 1L;
}

3
swlscx/src/main/java/com/ruoyi/swlscx/basic/domain/vo/HyStscAVo.java

@ -100,6 +100,9 @@ public class HyStscAVo implements Serializable { @@ -100,6 +100,9 @@ public class HyStscAVo implements Serializable {
/**备注**/
private String nt;
/**站名+站码 **/
private String stnmAndStcd;
private static final long serialVersionUID = 1L;
}

21
swlscx/src/main/java/com/ruoyi/swlscx/basic/mapper/HyStscAMapper.java

@ -4,7 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -4,7 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.synchronousData.dto.JHDayData;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -28,11 +31,23 @@ public interface HyStscAMapper extends BaseMapper<HyStscA> { @@ -28,11 +31,23 @@ public interface HyStscAMapper extends BaseMapper<HyStscA> {
void deleteTempData();
void deleteData();
void mergeToData();
void mergeToData(@Param("list") List<HyStscA> records);
void insertTempData(@Param("list") List<HyStscA> records);
void insertData(@Param("list") List<HyStscA> records);
void copyFile(@Param("path") String backupPath);
void remoteFile(@Param("path") String backupPath);
List<JHDayData> getRainStationListByType(@Param("startYear") String startYear, @Param("startMth") String startMth, @Param("endYear") String endYear, @Param("endMth") String endMth, @Param("type") String type);
List<YcShdpInfo> getYcShdpInfoByTableId(@Param("ids") List<String> ids);
List<Map<String, Object>> testSqlServer();
List<HyWfdzF> listByHyWfdzF(@Param("startYear") String startYear, @Param("endYear") String endYear, @Param("list") List<String> stringList);
}

7
swlscx/src/main/java/com/ruoyi/swlscx/basic/mapper/YcExportTaskMapper.java

@ -2,8 +2,10 @@ package com.ruoyi.swlscx.basic.mapper; @@ -2,8 +2,10 @@ package com.ruoyi.swlscx.basic.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.swlscx.basic.domain.po.HyStscA;
import com.ruoyi.swlscx.basic.domain.po.YcExportTask;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.swlscx.synchronousData.dto.JHDayData;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -20,6 +22,11 @@ public interface YcExportTaskMapper extends BaseMapper<YcExportTask> { @@ -20,6 +22,11 @@ public interface YcExportTaskMapper extends BaseMapper<YcExportTask> {
IPage<YcExportTask> queryPage(Page<YcExportTask> page,@Param("map") Map<String, Object> params);
List<Map<String, Object>> test();
List<JHDayData> getDataBySqlServer();
void insertOrUpataData(@Param("list") List<HyStscA> dataList);
}

25
swlscx/src/main/java/com/ruoyi/swlscx/basic/service/HyStscAService.java

@ -3,14 +3,19 @@ package com.ruoyi.swlscx.basic.service; @@ -3,14 +3,19 @@ package com.ruoyi.swlscx.basic.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.page.R;
import com.ruoyi.swlscx.basic.domain.ro.FormDataRo;
import com.ruoyi.swlscx.basic.domain.vo.HyStscASelectVo;
import com.ruoyi.swlscx.basic.domain.vo.HyStscAVo;
import com.ruoyi.swlscx.common.PageParams;
import com.ruoyi.swlscx.basic.domain.po.HyStscA;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* @author 12974
* @description 针对表hy_stsc_a的数据库操作Service
* @createDate 2024-07-30 13:37:07
@ -32,11 +37,21 @@ public interface HyStscAService extends IService<HyStscA> { @@ -32,11 +37,21 @@ public interface HyStscAService extends IService<HyStscA> {
*/
R exportStation(HttpServletResponse response, String startTime, String endTime, String stcd, String stnm);
R importDateTosoft(String startTime, String endTime);
R importDateTosoft();
/**
* 导出测站一览表
*/
R testSqlServer();
// /**
// * 导出测站一览表
// */
// R testSqlServer();
HyStscASelectVo getList(String startTime, String endTime, String type);
HyStscASelectVo getStationListByType(String startTime,String endTime,String type);
R importDateToHydp(FormDataRo formDataRo);
List<Map<String,Object>> testSqlServer();
R exportSoftToDate(FormDataRo formDataRo);
}

9
swlscx/src/main/java/com/ruoyi/swlscx/basic/service/YcExportTaskService.java

@ -3,8 +3,11 @@ package com.ruoyi.swlscx.basic.service; @@ -3,8 +3,11 @@ package com.ruoyi.swlscx.basic.service;
import com.ruoyi.common.core.page.R;
import com.ruoyi.swlscx.basic.domain.po.YcExportTask;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.swlscx.synchronousData.dto.JHDayData;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
@ -23,4 +26,10 @@ public interface YcExportTaskService extends IService<YcExportTask> { @@ -23,4 +26,10 @@ public interface YcExportTaskService extends IService<YcExportTask> {
R removeTask(Integer id);
R getTest();
void updateOrInsertDataToMysql(List<JHDayData> jhDayDataList,String type);
// void downloadSoftFile(HttpServletResponse response);
//
// R uploadSoftFile(MultipartFile file);
}

2388
swlscx/src/main/java/com/ruoyi/swlscx/basic/service/impl/HyStscAServiceImpl.java

File diff suppressed because it is too large Load Diff

65
swlscx/src/main/java/com/ruoyi/swlscx/basic/service/impl/YcExportTaskServiceImpl.java

@ -3,22 +3,52 @@ package com.ruoyi.swlscx.basic.service.impl; @@ -3,22 +3,52 @@ package com.ruoyi.swlscx.basic.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.page.R;
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.common.utils.Query;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.swlscx.basic.domain.po.HyStscA;
import com.ruoyi.swlscx.basic.domain.po.YcExportTask;
import com.ruoyi.swlscx.basic.mapper.YcExportTaskMapper;
import com.ruoyi.swlscx.basic.service.YcExportTaskService;
import com.ruoyi.swlscx.common.constants.SystemConstants;
import com.ruoyi.swlscx.common.utils.ExcelUtils;
import com.ruoyi.swlscx.synchronousData.dto.JHDayData;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.*;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
/**
* @author 12974
@ -31,6 +61,7 @@ public class YcExportTaskServiceImpl extends ServiceImpl<YcExportTaskMapper, YcE @@ -31,6 +61,7 @@ public class YcExportTaskServiceImpl extends ServiceImpl<YcExportTaskMapper, YcE
implements YcExportTaskService {
@Override
public void addTask(HttpServletResponse response, String startTime, String endTime, String stcd, String stnm) {
@ -59,13 +90,13 @@ public class YcExportTaskServiceImpl extends ServiceImpl<YcExportTaskMapper, YcE @@ -59,13 +90,13 @@ public class YcExportTaskServiceImpl extends ServiceImpl<YcExportTaskMapper, YcE
//先删除路径下的文件
YcExportTask task = this.getById(id);
String fullPath = task.getFilepath()+task.getFilename() + ".xls";
log.info("fullPath{}",fullPath);
String fullPath = task.getFilepath() + task.getFilename() + ".xls";
log.info("fullPath{}", fullPath);
File file = new File(fullPath);
if (!file.exists()) {
throw new RuntimeException("该文件不存在");
}
if (file.delete()){
if (file.delete()) {
this.removeById(id);
return R.ok();
}
@ -75,11 +106,33 @@ public class YcExportTaskServiceImpl extends ServiceImpl<YcExportTaskMapper, YcE @@ -75,11 +106,33 @@ public class YcExportTaskServiceImpl extends ServiceImpl<YcExportTaskMapper, YcE
@Override
@DataSource(DataSourceType.SHARDING)
public R getTest() {
List<Map<String,Object>> list=this.baseMapper.test();
return R.ok().put("data",list);
List<Map<String, Object>> list = this.baseMapper.test();
return R.ok().put("data", list);
}
@DataSource(DataSourceType.MASTER)
@Transactional(rollbackFor = Exception.class)
@Override
public void updateOrInsertDataToMysql(List<JHDayData> jhDayDataList,String type) {
if (type.equals("stsc")){
List<HyStscA> dataList = jhDayDataList.stream().map(i -> {
HyStscA hyStscA = new HyStscA();
BeanUtils.copyProperties(i, hyStscA);
return hyStscA;
}).collect(Collectors.toList());
this.baseMapper.insertOrUpataData(dataList);
}
}
// 删除文件的方法
private boolean deleteFile(String fullPath) {
File file = new File(fullPath);

6
swlscx/src/main/java/com/ruoyi/swlscx/common/constants/SystemConstants.java

@ -9,4 +9,10 @@ package com.ruoyi.swlscx.common.constants; @@ -9,4 +9,10 @@ package com.ruoyi.swlscx.common.constants;
public class SystemConstants {
public static final String TIME_FORMAT="yyyy-MM-dd HH:mm:ss";
public static final String JDBC_URL="jdbc:sqlserver://192.168.16.232:1433;DatabaseName=hy_shdp;ncrypt=false;allowMultiQueries=true";
public static final String JDBC_USERNAME="sa";
public static final String JDBC_PASSWORD="admin";
}

84
swlscx/src/main/java/com/ruoyi/swlscx/common/enums/SelectTableEnum.java

@ -0,0 +1,84 @@ @@ -0,0 +1,84 @@
package com.ruoyi.swlscx.common.enums;
/**
* 水位最大最小值
*/
public enum SelectTableEnum {
DAY_RAIN("日降水", "DayRain"),
DAY_DCS("日平均含沙量表", "DayDcs"),
DAY_DWE("日水面蒸发量表", "DayDwe"),
DAY_DWT("日水温表", "DayDwt"),
DAY_ZSCS("逐时潮水位表", "DayZscs"),
DAY_Q("日流量表", "DayQ"),
DAY_DMXP("日时段最大降水表", "YearDmxp"),
DAY_MXFW("时段最大洪量表", "YearImxfw"),
DAY_DZ("日平均水位表", "DayDz"),
DP_FDHEEX("洪水水文要素摘录表", "DpFdheex"),
DP_PREX("降水量摘录表", "DayPrex"),
DP_RVFHEX("水库洪水水文要素摘录表", "DpRvfhex"),
DP_WSFHEX("水闸洪水水文要素摘录表", "DpWsfhex"),
DP_HLTDZ("逐潮高低潮位表", "DpHltdz"),
DP_HMXP("小时时段最大降水量表", "YearHmxp"),
DP_MMXP("分钟时段最大降水量表", "YearMmxp"),
MONTH_MTCS("月含沙量表", "MthMtcs"),
MONTH_RAIN("月降水量表", "MthRain"),
MONTH_MTQS( "月输沙率表", "MthMtqs"),
MONTH_MTTDZ( "月潮位表", "MthMttdz"),
MONTH_MTWE("月水面蒸发量表", "MthMtwe"),
MONTH_MTWT("月水温表", "MthMtwt"),
MONTH_Q("月流量表", "MthQ"),
MONTH_MTZ("月水位表", "MthMtz"),
DP_OBQ("实测流量表", "dp_obq_r"),
DP_XSMSRS("实测大断面流量表", "dp_xsmsrs_g"),
YEAR_YRCS("年含沙量表", "YearYrcs"),
YEAR_YRQS("年输沙率表", "YearYrqs"),
YEAR_YRWE("年水面蒸发量表", "YearYrwe"),
YEAR_Q("年流量表", "YearYrq"),
YEAR_RAIN("年降水表", "YearRain"),
YEAR_TIDE("年潮位表", "YearYrtdz"),
YEAR_YRWT("年水温表", "YearYrwt"),
YEAR_YRZ("年水位表", "YearYrz");
private final String desc;
private final String value;
private SelectTableEnum(String desc, String value) {
this.desc = desc;
this.value = value;
}
public String desc() {
return desc;
}
public String value() {
return value;
}
}

25
swlscx/src/main/java/com/ruoyi/swlscx/common/utils/CommonUtils.java

@ -5,8 +5,8 @@ import com.ruoyi.swlscx.common.PageParams; @@ -5,8 +5,8 @@ import com.ruoyi.swlscx.common.PageParams;
import org.apache.commons.lang3.StringUtils;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Author al
@ -21,7 +21,14 @@ public class CommonUtils { @@ -21,7 +21,14 @@ public class CommonUtils {
map.put("startTime", startTime);
map.put("endTime", endTime);
map.put("stnm", stnm);
map.put("stcd", stcd);
if (stcd.contains("all")) {
stcd="";
}
List<String> filteredList = Arrays.stream(stcd.split(","))
.filter(s -> s != null && !s.trim().isEmpty())
.collect(Collectors.toList());
map.put("stcd", filteredList.isEmpty() ? null : filteredList);
map.put("page", Convert.toStr(pageParams.getPageNum()));
map.put("limit", Convert.toStr(pageParams.getPageSize()));
return map;
@ -42,7 +49,17 @@ public class CommonUtils { @@ -42,7 +49,17 @@ public class CommonUtils {
map.put("endYear", Convert.toInt(endYear));
map.put("endTme", endTime);
map.put("stnm", stnm);
map.put("stcd", stcd);
List<String> filteredList = Collections.emptyList();
if (stcd != null) {
if (stcd.contains("all")) {
stcd = "";
}
filteredList = Arrays.stream(stcd.split(","))
.filter(s -> s != null && !s.trim().isEmpty())
.map(String::trim)
.collect(Collectors.toList());
}
map.put("stcd", filteredList.isEmpty() ? null : filteredList);
map.put("page", Convert.toStr(pageParams.getPageNum()));
map.put("limit", Convert.toStr(pageParams.getPageSize()));
return map;

1
swlscx/src/main/java/com/ruoyi/swlscx/common/utils/ExcelUtils.java

@ -328,7 +328,6 @@ public class ExcelUtils { @@ -328,7 +328,6 @@ public class ExcelUtils {
public static void downLoadExcel(HttpServletResponse response, YcExportTask t) {
Long userId = SecurityUtils.getUserId();
String fullPath = t.getFilepath()+t.getFilename() + ".xls";
log.info("fullPath{}",fullPath);
File file = new File(fullPath);
if (!file.exists()) {
throw new RuntimeException("该文件不存在");

48
swlscx/src/main/java/com/ruoyi/swlscx/common/utils/SqlServerDataSourceUtil.java

@ -0,0 +1,48 @@ @@ -0,0 +1,48 @@
package com.ruoyi.swlscx.common.utils;
import com.alibaba.druid.pool.DruidDataSource;
import com.ruoyi.swlscx.basic.domain.ro.FormDataRo;
import javax.sql.DataSource;
public class SqlServerDataSourceUtil {
public static DataSource createDataSource(FormDataRo formDataRo) {
// formDataRo.setDataBase("hy_shdp");
// formDataRo.setUserName("sa");
// formDataRo.setPassword("admin");
// formDataRo.setSqlseverIp("192.168.16.232");
DruidDataSource dataSource = new DruidDataSource();
// 基本连接配置
dataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
dataSource.setUrl(String.format(
"jdbc:sqlserver://%s:1433;databaseName=%s;encrypt=false;",
formDataRo.getSqlseverIp(),
formDataRo.getDataBase()
));
dataSource.setUsername(formDataRo.getUserName());
dataSource.setPassword(formDataRo.getPassword());
// 连接池优化配置(根据实际需求调整)
dataSource.setInitialSize(5); // 初始连接数
dataSource.setMinIdle(5); // 最小空闲连接
dataSource.setMaxActive(20); // 最大活跃连接
dataSource.setMaxWait(60000); // 获取连接超时时间(毫秒)
dataSource.setTimeBetweenEvictionRunsMillis(60000); // 检测间隔
dataSource.setMinEvictableIdleTimeMillis(300000); // 连接空闲超时
dataSource.setValidationQuery("SELECT 1"); // 连接有效性检测SQL
dataSource.setTestWhileIdle(true); // 空闲时检测连接
dataSource.setTestOnBorrow(false); // 借出连接时不检测
dataSource.setTestOnReturn(false); // 归还连接时不检测
// 其他安全配置
dataSource.setPoolPreparedStatements(true); // 缓存PreparedStatement
dataSource.setMaxPoolPreparedStatementPerConnectionSize(20); // 每个连接的PS缓存数
try {
dataSource.init(); // 初始化连接池
} catch (Exception e) {
throw new RuntimeException("Druid数据源初始化失败", e);
}
return dataSource;
}
}

13
swlscx/src/main/java/com/ruoyi/swlscx/day/controller/DayExportController.java

@ -33,6 +33,7 @@ public class DayExportController { @@ -33,6 +33,7 @@ public class DayExportController {
private final HyDwtCService hyDwtCService;
private final HyZscsBService hyZscsBService;
/**
@ -109,4 +110,16 @@ public class DayExportController { @@ -109,4 +110,16 @@ public class DayExportController {
}
/**
* 导出逐时潮水位表
*/
@PostMapping("/dayZscs")
public R exportDayZscs(HttpServletResponse response,
@RequestParam String startTime,
@RequestParam String endTime,
@RequestParam String stcd,
@RequestParam String stnm) {
return hyZscsBService.exportDayZscs(response, startTime, endTime, stcd, stnm);
}
}

26
swlscx/src/main/java/com/ruoyi/swlscx/day/controller/DayTableController.java

@ -1,5 +1,4 @@ @@ -1,5 +1,4 @@
package com.ruoyi.swlscx.day.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ruoyi.common.core.page.R;
import com.ruoyi.swlscx.common.PageParams;
@ -11,15 +10,6 @@ import org.springframework.web.bind.annotation.GetMapping; @@ -11,15 +10,6 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
/**
* @Author al
* @Date 2024/10/17 15:16
* @Description: TODO
* @Version
*/
@RestController
@RequestMapping("/day")
@RequiredArgsConstructor
@ -38,6 +28,7 @@ public class DayTableController { @@ -38,6 +28,7 @@ public class DayTableController {
private final HyDwtCService hyDwtCService;
private final HyZscsBService hyZscsBService;
/**
* 获取日降雨量表数据
*/
@ -124,4 +115,19 @@ public class DayTableController { @@ -124,4 +115,19 @@ public class DayTableController {
return R.ok().put("data", hyDwtCVoIPage.getRecords()).put("count", hyDwtCVoIPage.getTotal());
}
/**查询逐时潮水表数据**/
@GetMapping("/getDayZscsList")
public R getDayZscsList(@RequestParam("pageNum") Integer pageNum,
@RequestParam("pageSize") Integer pageSize,
@RequestParam("startTime") String startTime,
@RequestParam("endTime") String endTime,
@RequestParam("stcd") String stcd,
@RequestParam("stnm") String stnm) {
PageParams pageParams = new PageParams(pageNum.longValue(), pageSize.longValue());
IPage<HyZscsBVo> hyZscsBVoIPage = hyZscsBService.selectHyZscsBDataByPageAndInfo(pageParams, startTime, endTime, stcd, stnm);
return R.ok().put("data", hyZscsBVoIPage.getRecords()).put("count", hyZscsBVoIPage.getTotal());
}
}

32
swlscx/src/main/java/com/ruoyi/swlscx/day/domain/bo/HyZscsBBo.java

@ -0,0 +1,32 @@ @@ -0,0 +1,32 @@
package com.ruoyi.swlscx.day.domain.bo;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Author al
* @Date 2025/5/10 22:10
* @Description: TODO
* @Version
*/
@Data
public class HyZscsBBo implements Serializable {
private String stcd;
private String stnm;
private String tm;
private String tdr;
private String tdz;
private String tdzrcd;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

33
swlscx/src/main/java/com/ruoyi/swlscx/day/domain/po/HyZscsB.java

@ -0,0 +1,33 @@ @@ -0,0 +1,33 @@
package com.ruoyi.swlscx.day.domain.po;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Author al
* @Date 2025/5/10 22:10
* @Description: TODO
* @Version
*/
@Data
public class HyZscsB implements Serializable {
private String stcd;
private String stnm;
private Date tm;
private String tdr;
private Long tdz;
private String tdzrcd;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

32
swlscx/src/main/java/com/ruoyi/swlscx/day/domain/vo/HyZscsBVo.java

@ -0,0 +1,32 @@ @@ -0,0 +1,32 @@
package com.ruoyi.swlscx.day.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @Author al
* @Date 2025/5/10 22:10
* @Description: TODO
* @Version
*/
@Data
public class HyZscsBVo implements Serializable {
private String stcd;
private String stnm;
private Date tm;
private String tdr;
private Long tdz;
private String tdzrcd;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

30
swlscx/src/main/java/com/ruoyi/swlscx/day/mapper/HyZscsBMapper.java

@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
package com.ruoyi.swlscx.day.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.swlscx.day.domain.po.HyDpC;
import com.ruoyi.swlscx.day.domain.po.HyZscsB;
import com.ruoyi.swlscx.day.domain.vo.HyDpCVo;
import com.ruoyi.swlscx.day.domain.vo.HyZscsBVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @author 12974
* @description 针对表hy_dp_c(日降水表)的数据库操作Mapper
* @createDate 2024-10-15 17:40:46
* @Entity com.ruoyi.swlscx.day.domain.po.HyDpC
*/
@Mapper
public interface HyZscsBMapper extends BaseMapper<HyZscsB> {
IPage<HyZscsBVo> selectHyZscsBDataByPageAndInfo(Page<HyZscsBVo> page,@Param("map") Map<String, Object> map);
}

4
swlscx/src/main/java/com/ruoyi/swlscx/day/service/HyDpCService.java

@ -9,6 +9,7 @@ import com.ruoyi.swlscx.day.domain.vo.HyDpCVo; @@ -9,6 +9,7 @@ import com.ruoyi.swlscx.day.domain.vo.HyDpCVo;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* @author 12974
@ -28,6 +29,9 @@ public interface HyDpCService extends IService<HyDpC> { @@ -28,6 +29,9 @@ public interface HyDpCService extends IService<HyDpC> {
*/
IPage<HyDpCVo> selectHyDpCDataByPageAndInfo(PageParams pageParams, String startTime, String endTime, String stcd, String stnm);
/**
* 导出日降雨量表数据
*/

2
swlscx/src/main/java/com/ruoyi/swlscx/day/service/HyDwtCService.java

@ -34,4 +34,6 @@ public interface HyDwtCService extends IService<HyDwtC> { @@ -34,4 +34,6 @@ public interface HyDwtCService extends IService<HyDwtC> {
R exportDayWaterTemperature(HttpServletResponse response, String startTime, String endTime, String stcd, String stnm);
R importDateTosoft(String startTime, String endTime);
}

39
swlscx/src/main/java/com/ruoyi/swlscx/day/service/HyZscsBService.java

@ -0,0 +1,39 @@ @@ -0,0 +1,39 @@
package com.ruoyi.swlscx.day.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.page.R;
import com.ruoyi.swlscx.common.PageParams;
import com.ruoyi.swlscx.day.domain.po.HyZscsB;
import com.ruoyi.swlscx.day.domain.vo.HyDpCVo;
import com.ruoyi.swlscx.day.domain.vo.HyZscsBVo;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
/**
* @author 12974
* @description 针对表hy_dp_c(日降水表)的数据库操作Service
* @createDate 2024-10-15 17:40:46
*/
public interface HyZscsBService extends IService<HyZscsB> {
/**
* 导入逐时潮水位表数据
*/
void importHyZscsBData(MultipartFile file);
/**
* 查询逐时潮水位表数据
*/
IPage<HyZscsBVo> selectHyZscsBDataByPageAndInfo(PageParams pageParams, String startTime, String endTime, String stcd, String stnm);
R exportDayZscs(HttpServletResponse response, String startTime, String endTime, String stcd, String stnm);
/**
* 导出逐时潮水位表数据
*/
// R exportHyDpCData(HttpServletResponse response,String startTime, String endTime, String stcd, String stnm);
}

2
swlscx/src/main/java/com/ruoyi/swlscx/day/service/impl/HyDpCServiceImpl.java

@ -112,9 +112,9 @@ public class HyDpCServiceImpl extends ServiceImpl<HyDpCMapper, HyDpC> @@ -112,9 +112,9 @@ public class HyDpCServiceImpl extends ServiceImpl<HyDpCMapper, HyDpC>
return this.baseMapper.selectHyDpCDataByPageAndInfo(new Query<HyDpCVo>().getPage(map), map);
}
@Override
public R exportHyDpCData(HttpServletResponse response,String startTime, String endTime, String stcd, String stnm) {
Long userId = SecurityUtils.getUserId();
String tableName = "日降水表";
return taskAndExport(tableName,startTime, endTime, stcd, stnm, userId);

226
swlscx/src/main/java/com/ruoyi/swlscx/day/service/impl/HyZscsBServiceImpl.java

@ -0,0 +1,226 @@ @@ -0,0 +1,226 @@
package com.ruoyi.swlscx.day.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.page.R;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.swlscx.basic.domain.po.HyStscA;
import com.ruoyi.swlscx.basic.domain.po.YcExportTask;
import com.ruoyi.swlscx.basic.service.YcExportTaskService;
import com.ruoyi.swlscx.common.PageParams;
import com.ruoyi.swlscx.common.constants.SystemConstants;
import com.ruoyi.swlscx.common.utils.CommonUtils;
import com.ruoyi.swlscx.common.utils.ExcelUtils;
import com.ruoyi.swlscx.common.utils.Query;
import com.ruoyi.swlscx.day.domain.bo.HyDpCBo;
import com.ruoyi.swlscx.day.domain.bo.HyZscsBBo;
import com.ruoyi.swlscx.day.domain.po.HyDpC;
import com.ruoyi.swlscx.day.domain.po.HyDweC;
import com.ruoyi.swlscx.day.domain.po.HyZscsB;
import com.ruoyi.swlscx.day.domain.vo.HyDpCVo;
import com.ruoyi.swlscx.day.domain.vo.HyZscsBVo;
import com.ruoyi.swlscx.day.mapper.HyDweCMapper;
import com.ruoyi.swlscx.day.mapper.HyZscsBMapper;
import com.ruoyi.swlscx.day.service.HyDweCService;
import com.ruoyi.swlscx.day.service.HyZscsBService;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.stream.Collectors;
/**
* @author 12974
* @description 针对表hy_dp_c(日降水表)的数据库操作Service
* @createDate 2024-10-15 17:40:46
*/
@Service
public class HyZscsBServiceImpl extends ServiceImpl<HyZscsBMapper, HyZscsB>
implements HyZscsBService {
/**
* 导入逐时潮水位表数据
* @param file
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void importHyZscsBData(MultipartFile file) {
try {
List<HyZscsBBo> hyDpCBos = ExcelUtils.readExcel(file.getInputStream(), HyZscsBBo.class, 2);
List<HyZscsB> hyDpCList = hyDpCBos.stream().map(i -> {
HyZscsB hyDpC = new HyZscsB();
BeanUtils.copyProperties(i, hyDpC);
hyDpC.setTm(DateUtils.parseDate(i.getTm()));
hyDpC.setTdz(Convert.toLong(i.getTdz()));
return hyDpC;
}).collect(Collectors.toList());
//重临时表中把数据刷过去
this.saveBatch(hyDpCList);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public IPage<HyZscsBVo> selectHyZscsBDataByPageAndInfo(PageParams pageParams, String startTime, String endTime, String stcd, String stnm) {
System.out.println("stcd ->"+stcd);
Map<String, Object> map = CommonUtils.getYearAndDayDataMap(pageParams, startTime, endTime, stcd, stnm);
return this.baseMapper.selectHyZscsBDataByPageAndInfo(new Query<HyZscsBVo>().getPage(map), map);
}
@Override
public R exportDayZscs(HttpServletResponse response, String startTime, String endTime, String stcd, String stnm) {
Long userId = SecurityUtils.getUserId();
String tableName = "逐时潮水位表";
return taskAndExport(tableName,startTime, endTime, stcd, stnm, userId);
}
@Resource
private ThreadPoolExecutor importThreadPool;
@Resource
private ThreadPoolExecutor labelThreadPool;
@Autowired
private ApplicationContext context;
@Resource
private YcExportTaskService ycExportTaskService;
private R taskAndExport(String tableName,String startTime, String endTime, String stcd, String stnm, Long userId) {
String startNewTime="";
String endNewTime="";
if (ObjectUtils.isNotEmpty(startTime) ){
startNewTime=startTime.substring(0,10);
}
if (ObjectUtils.isNotEmpty(endTime)){
endNewTime=endTime.substring(0,10);
}
String filename = tableName + startNewTime + "-" + endNewTime;
// 查询是否已存在相同条件且未完成的任务
List<YcExportTask> ongoingTasks = ycExportTaskService.list(
new QueryWrapper<YcExportTask>()
.eq("user_id", userId)
.eq("filename", filename)
.eq("status", 0) // 状态为0表示任务未完成
);
if (!ongoingTasks.isEmpty()) {
return R.error("当前任务正在下载中,请稍后重试");
}
YcExportTask ycExportTask = new YcExportTask();
String pathPeffix = RuoYiConfig.getExportPath() +
File.separator + userId + File.separator+
DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.getNowDate()) + File.separator +
DateUtils.parseDateToStr("HH_mm",DateUtils.getNowDate())+File.separator;
ycExportTask.setFilename(filename);
ycExportTask.setUserId(userId);
ycExportTask.setStartTime(new Date());
ycExportTask.setStatus(0);
ycExportTask.setFilepath(pathPeffix);
ycExportTaskService.save(ycExportTask);
CompletableFuture.runAsync(() -> {
try {
File dest = new File(pathPeffix);
if (!dest.exists()) {
dest.mkdirs();
}
String fullPath = pathPeffix + filename;
exportBlackData(fullPath, startTime, endTime, stcd, stnm);
ycExportTask.setStatus(1);
ycExportTask.setEndTime(new Date());
ycExportTaskService.updateById(ycExportTask);
} catch (Exception e) {
log.error(e.getMessage(), e);
R.error("任务下载失败");
}
}, labelThreadPool);
return R.ok("任务已提交,请稍后下载");
}
private void exportBlackData(String tableName, String startTime, String endTime, String stcd, String stnm) {
Map<String, Object> rainMap = CommonUtils.getYearAndDayDataMap(new PageParams(0L, 1000000000L), startTime, endTime, stcd, stnm);
ExcelUtils.excelBackExport2("dayDscs.xls", tableName, (Sheet sheet, CellStyle style) ->
dataModel1(rainMap, sheet, style));
}
public int dataModel1(Map<String, Object> map, Sheet sheet, CellStyle style) {
// 批量查询数据
IPage<HyZscsBVo> hyZscsBVoIPage = this.baseMapper.selectHyZscsBDataByPageAndInfo(new Query<HyZscsBVo>().getPage(map), map);
List<HyZscsBVo> records = hyZscsBVoIPage.getRecords();
// 定义当前sheet的行号
int rowIndex = 2; // 从第二行开始写入数据
// 定义全局序号
int globalIndex = 1; // 从1开始
// 定义当前sheet的编号
int sheetIndex = 1;
// 最大行数限制
int maxRowsPerSheet = 65536; // 对于 .xls 文件,最大行数为 65536
int batchSize = 1000; // 每次批量处理1000行,减少逐行写入的开销
// 复制表头到新sheet的逻辑
ExcelUtils.copyHeader(sheet, style);
// 批量处理数据
for (int i = 0; i < records.size(); i += batchSize) {
// 处理一批数据
int toIndex = Math.min(i + batchSize, records.size());
List<HyZscsBVo> batchList = records.subList(i, toIndex);
// 批量写入数据
for (HyZscsBVo vo : batchList) {
// 如果当前行数达到最大行数,创建新sheet
if (rowIndex >= maxRowsPerSheet) {
sheetIndex++;
sheet = sheet.getWorkbook().createSheet("逐时潮水位表" + sheetIndex);
rowIndex = 2; // 重置行号
// 复制表头到新sheet
ExcelUtils.copyHeader(sheet, style);
}
// 创建新行并写入数据
Row row = ExcelUtils.createRow(sheet, rowIndex);
// 使用 globalIndex 作为序号
ExcelUtils.formatCell(row, 0, String.valueOf(globalIndex), style);
ExcelUtils.formatCell(row, 1, vo.getStcd() != null ? vo.getStcd() : "", style);
ExcelUtils.formatCell(row, 2, vo.getStnm() != null ? vo.getStnm() : "", style);
ExcelUtils.formatCell(row, 3, vo.getTm() != null ? DateUtils.parseDateToStr(SystemConstants.TIME_FORMAT,vo.getTm()) : "", style);
ExcelUtils.formatCell(row, 4, vo.getTdr() != null ? vo.getTdr() : "", style);
ExcelUtils.formatCell(row, 5, vo.getTdz() != null ? vo.getTdz().toString() : "", style);
ExcelUtils.formatCell(row, 6, vo.getTdzrcd() != null ? vo.getTdzrcd() : "", style);
// 增加行号和全局序号
rowIndex++;
globalIndex++;
}
}
return 0;
}
}

4
swlscx/src/main/java/com/ruoyi/swlscx/excerpt/controller/ExcerptImportController.java

@ -47,8 +47,8 @@ public class ExcerptImportController { @@ -47,8 +47,8 @@ public class ExcerptImportController {
*导入降雨量摘录表
*/
@PostMapping("/importRainExcerpt")
public R importRainExcerpt(String startTime, String endTime){
return hyPrexBService.importDateTosoft(startTime, endTime);
public void importRainExcerpt(String startTime, String endTime){
hyPrexBService.importDateTosoft(startTime, endTime);
}

271
swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/controller/TimeTasksController.java

@ -0,0 +1,271 @@ @@ -0,0 +1,271 @@
package com.ruoyi.swlscx.synchronousData.controller;//package com.ruoyi.zxzb.synchronousData.controller;
import com.ruoyi.common.core.page.R;
import com.ruoyi.swlscx.basic.service.YcExportTaskService;
import com.ruoyi.swlscx.synchronousData.dto.JHDayData;
import com.ruoyi.swlscx.synchronousData.service.TimeTasksService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.concurrent.CompletableFuture;
@RestController
@RequestMapping("/api")
public class TimeTasksController {
@Autowired
private YcExportTaskService ycExportTaskService;
@Autowired
private TimeTasksService timeTasksService;
@RequestMapping("/importSqlserverToMysql")
public R importSqlserverToMysql(@RequestBody List<JHDayData> jhDayDataList, @RequestHeader("X-Type")String type) {
ycExportTaskService.updateOrInsertDataToMysql(jhDayDataList,type);
return R.ok();
}
@RequestMapping("/test")
public R getTest1(){
timeTasksService.setYcStaions();
// 2. 异步执行 getDpJhQData()
CompletableFuture<Integer> future1 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getDayDzcData();
return 1;
} catch (Exception e) { return -1; }
});
// 2. 异步执行 getDpJhQData()
CompletableFuture<Integer> future2 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getMonthMttdzData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future4 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getDayRainData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future5 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getDayQData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future6 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getDayDqsData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future7 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getDayDcsData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future8 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getDayDweData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future9 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getDayDwtData();
return 1;
} catch (Exception e) { return -1; }
});
return R.ok("测试成功");
}
@RequestMapping("/test2")
public R getTest2(){
timeTasksService.setYcStaions();
// 2. 异步执行 getDpJhQData()
CompletableFuture<Integer> future2 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getDayDmxpData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future3 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getDayImxfwData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future4 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getFdheexData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future5 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getHltdzData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future6 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getHmxpData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future7 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getMmxpData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future8 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getMtcsData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future9 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getMonthRainData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future10 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getMonthQData();
return 1;
} catch (Exception e) { return -1; }
});
return R.ok("测试成功");
}
@RequestMapping("/test3")
public R getTest3(){
timeTasksService.setYcStaions();
// 2. 异步执行 getDpJhQData()
CompletableFuture<Integer> future1 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getMonthMtqsData();
return 1;
} catch (Exception e) { return -1; }
});
// 2. 异步执行 getDpJhQData()
CompletableFuture<Integer> future2 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getMonthMtweData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future3 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getMonthMtwtData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future4 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getMonthRiverData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future7 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getHourRainData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future8 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getWsfhexData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future9 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getRvfhexData();
return 1;
} catch (Exception e) { return -1; }
});
return R.ok("测试成功");
}
@RequestMapping("/test4")
public R getTest4(){
timeTasksService.setYcStaions();
// 2. 异步执行 getDpJhQData()
CompletableFuture<Integer> future1 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getYrcsData();
return 1;
} catch (Exception e) { return -1; }
});
// 2. 异步执行 getDpJhQData()
CompletableFuture<Integer> future2 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getYearQData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future3 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getYearRainData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future4 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getYearTideData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future5 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getYearMtweData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future6 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getYearWtData();
return 1;
} catch (Exception e) { return -1; }
});
CompletableFuture<Integer> future7 = CompletableFuture.supplyAsync(() -> {
try {
timeTasksService.getYearYrzData();
return 1;
} catch (Exception e) { return -1; }
});
return R.ok("测试成功");
}
}

860
swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/dto/JHDayData.java

@ -0,0 +1,860 @@ @@ -0,0 +1,860 @@
package com.ruoyi.swlscx.synchronousData.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Author al
* @Date 2025/5/14 16:09
* @Description: TODO
* @Version
*/
@Data
public class JHDayData {
private String stnm;
private String stct;
private String bshncd;
private String hnnm;
private String rvnm;
private String obitmcd;
private String addvcd;
private String wrrgcd;
private Integer esstyr;
private Integer esstmth;
private Integer wdstyr;
private Integer wdstmth;
private BigDecimal drar;
private String flto;
private BigDecimal dstrvm;
private String fdtmnm;
private String admag;
private String admnst;
private String stlc;
private BigDecimal lgtd;
private BigDecimal lttd;
private String stgrd;
private String frgrd;
/**
* 站码
*/
private String stcd;
/**
* 日期
*/
private String dt;
/**
* 降水量(毫米)
*/
private BigDecimal p;
/**
* 降水量注解码
*/
private String prcd;
private BigDecimal avq;
/**
* 平均流量注解码
*/
private String avqrcd;
/**
* 泥沙类型
*/
private String sdtp;
/**
* 平均输沙率(千克每秒)
*/
private BigDecimal avqs;
/**
* 平均输沙率注解码
*/
private String avqsrcd;
/**
* 平均含沙量(千克每立方米)
*/
private BigDecimal avcs;
/**
* 平均含沙量注解码
*/
private String avcsrcd;
/**
* 最大降水量时段长
*/
private String mxpdr;
/**
*
*/
private String yr;
/**
* 起始日期
*/
private String bgdt;
/**
* 最大降水量
*/
private BigDecimal mxp;
/**
* 最大降水量注解码
*/
private String mxprc;
/**
* 蒸发器型式
*/
private String eetp;
/**
* 水面蒸发量(毫米)
*/
private BigDecimal wsfe;
/**
* 水面蒸发量注解码
*/
private String wsfercd;
/**
* 水温
*/
private BigDecimal wtmp;
/**
* 水温注解码
*/
private String wtmprcd;
/**
* 平均水位()
*/
private BigDecimal avz;
/**
* 平均水位注解码
*/
private String avzrcd;
/**
* 最大洪量时段长
*/
private String mxwdr;
/**
* 最大洪量
*/
private BigDecimal mxw;
/**
* 最大洪量注解码
*/
private String mxwrc;
/**
* 时间
*/
private String tm;
/**
* 水位
*/
private BigDecimal z;
/**
* 水位注解码
*/
private String zrcd;
/**
* 流量
*/
private BigDecimal q;
/**
* 含沙量
*/
private BigDecimal s;
/**
* 潮别
*/
private String tdtp;
/**
* 潮位
*/
private BigDecimal tdz;
/**
* 潮位注解码
*/
private String tdzrcd;
/**
* 潮差
*/
private BigDecimal tdrng;
/**
* 历时
*/
private String dr;
/**
* 备注
*/
private String nt;
/**
* 起时间
*/
private String bgtm;
/**
*
*/
private String mth;
/**
* 最大含沙量(千克每立方米)
*/
private BigDecimal mxs;
/**
* 最大含沙量注解码
*/
private String mxsrcd;
/**
* 最大含沙量日期
*/
private String mxsdt;
/**
* 最小含沙量(千克每立方米)
*/
private BigDecimal mns;
/**
* 最小含沙量注解码
*/
private String mnsrcd;
/**
* 最小含沙量日期
*/
private String mnsdt;
/**
* 降水日数
*/
private String pdynum;
/**
* 降水日数注解码
*/
private String pdynumrcd;
/**
* 最大降水量(毫米)
*/
private BigDecimal mxdyp;
/**
* 最大降水量注解码
*/
private String mxdyprcd;
/**
* 最大日降水量出现日期
*/
private String mxdypodt;
/**
* 最高流量
*/
private BigDecimal mxq;
/**
* 最高流量注解码
*/
private String mxqrcd;
/**
* 最高流量日期
*/
private String mxqdt;
/**
* 最小流量
*/
private BigDecimal mnq;
/**
* 最小流量注解码
*/
private String mnqrcd;
/**
* 最小流量日期
*/
private String mnqdt;
/**
* 最大日平均沙率(千克每秒)
*/
private BigDecimal mxdyqs;
/**
* 最大日平均沙率注解码
*/
private String mxdyqsrcd;
/**
* 最大日平均沙率出现日期
*/
private String mxdyqsodt;
/**
* 最大日水面蒸发量
*/
private BigDecimal mxdye;
/**
* 最大日水面蒸发量注解码
*/
private String mxdyercd;
/**
* 最小日水面蒸发量
*/
private BigDecimal mndye;
/**
* 最小日水面蒸发量注解码
*/
private String mndyercd;
/**
* 平均水温(摄氏度)
*/
private BigDecimal avwtmp;
/**
* 平均水温注解码
*/
private String avwtmprcd;
/**
* 最高水温(摄氏度)
*/
private BigDecimal mxwtmp;
/**
* 最高水温注解码
*/
private String mxwtmprcd;
/**
* 最高水温日期
*/
private String mxwtmpdt;
/**
* 最低水温(摄氏度)
*/
private BigDecimal mnwtmp;
/**
* 最低水温注解码
*/
private String mnwtmprcd;
/**
* 最低水温日期
*/
private String mnwtmpdt;
/**
* 最高水位
*/
private BigDecimal htz;
/**
* 最高水位注解码
*/
private String htzrcd;
/**
* 最高水位日期
*/
private String htzdt;
/**
* 最低水位
*/
private BigDecimal mnz;
/**
* 最低水位注解码
*/
private String mnzrcd;
/**
* 最低水位日期
*/
private String mnzdt;
/**
* 止时间
*/
private String endtm;
/**
* 坝上水位
*/
private BigDecimal dambhdz;
/**
* 坝上水位注解码
*/
private String dambhdzrcd;
/**
* 蓄水量
*/
private BigDecimal w;
/**
* 闸上水位
*/
private BigDecimal upz;
/**
* 闸上水位注解码
*/
private String upzrcd;
/**
* 闸下水位
*/
private BigDecimal dwz;
/**
* 闸下水位注解码
*/
private String dwzrcd;
/**
* 径流量(万立方米)
*/
private BigDecimal rw;
/**
* 径流量注解码
*/
private String rwrcd;
/**
* 径流模数(立方分米每秒平方千米)
*/
private BigDecimal rm;
/**
* 径流深(毫米)
*/
private BigDecimal rd;
/**
* 终霜日期
*/
private String frdsdt;
/**
* 初霜日期
*/
private String frapdt;
/**
* 终雪日期
*/
private String sndsdt;
/**
* 初雪日期
*/
private String snapdt;
/**
* 平均高潮潮位
*/
private BigDecimal avhtdz;
/**
* 平均高潮潮位注解码
*/
private String avhtdzrcd;
/**
* 最高高潮位
*/
private BigDecimal hthtdz;
/**
* 最高高潮位注解码
*/
private String hthtdzrcd;
/**
* 最高高潮位出现时间
*/
private String hthtdzotm;
/**
* 最低高潮位
*/
private BigDecimal lthtdz;
/**
* 最低高潮位注解码
*/
private String lthtdzrcd;
/**
* 最低高潮位出现时间
*/
private String lthtdzotm;
/**
* 平均低潮潮位
*/
private BigDecimal avltdz;
/**
* 平均低潮潮位注解码
*/
private String avltdzrcd;
/**
* 最高低潮位
*/
private BigDecimal htltdz;
/**
* 最高低潮位注解码
*/
private String htltdzrcd;
/**
* 最高低潮潮位出现时间
*/
private String htltdzotm;
/**
* 最低低潮位
*/
private BigDecimal ltltdz;
/**
* 最低低潮潮位注解码
*/
private String ltltdzrcd;
/**
* 最低地潮位出现时间
*/
private String ltltdzotm;
/**
* 平均涨潮潮差
*/
private BigDecimal avftdr;
/**
* 平均涨潮潮差注解码
*/
private String avftdrrcd;
/**
* 最大涨潮潮差
*/
private BigDecimal mxfltdr;
/**
* 最大涨潮潮差注解码
*/
private String mxfltdrrcd;
/**
* 最大涨潮潮差高潮时间
*/
private String mxfltdrhtm;
/**
* 最小潮潮差
*/
private BigDecimal mnfltdr;
/**
* 最小涨潮潮差注解码
*/
private String mnfltdrrcd;
/**
* 最小涨潮潮差高潮时间
*/
private String mnfltdrhtm;
/**
* 平均涨潮潮差
*/
private BigDecimal aver;
/**
* 平均涨潮潮差注解码
*/
private String averbbrrcd;
/**
* 最大落潮潮差
*/
private BigDecimal mxebtdr;
/**
* 最大落潮潮差注解码
*/
private String mxebtdrrcd;
/**
* 最大落潮潮差(高潮)时间
*/
private String mxebtdrht;
/**
* 最小落潮潮差
*/
private BigDecimal mnebtdr;
/**
* 最小落潮潮差注解码
*/
private String mnebtdrrcd;
/**
* 最小落潮潮差高潮时间
*/
private String mnebtdrhtm;
/**
* 平均涨潮历时
*/
private String avftd;
/**
* 平均涨潮历时注解码
*/
private String avftdrcd;
/**
* 最长涨潮历时
*/
private String mxfltddr;
/**
* 最长涨潮历时注解码
*/
private String mxfltddrrcd;
/**
* 最长涨潮历时高潮时间
*/
private String mxfltddrhtm;
/**
* 最短涨潮历时
*/
private String mnfltddr;
/**
* 最短涨潮历时注解码
*/
private String mnfltddrrcd;
/**
* 最短涨潮历时高潮时间
*/
private String mnfltddrhtm;
/**
* 平均落潮历时
*/
private String avebbdr;
/**
* 平均落潮历时注解码
*/
private String avedrc;
/**
* 最长落潮历时
*/
private Integer mxebtddr;
/**
* 最长落潮历时注解码
*/
private String mxebtddrrcd;
/**
* 最长落潮历时高潮时间
*/
private String mxebtddrhtm;
/**
* 最短落潮历时
*/
private String mnbtddr;
/**
* 最短落潮历时注解码
*/
private String mnebtddrrcd;
/**
* 最短落潮历时高潮时间
*/
private String mnebtddrhtm;
/**
* 逐时平均潮位
*/
private BigDecimal hravtdz;
/**
* 逐时平均潮位注解码
*/
private String hravtdzrcd;
/**
* 平均潮差
*/
private BigDecimal avtdr;
/**
* 平均潮差注解码
*/
private String avtdrrcd;
/**
* 平均历时
*/
private String avtddr;
/**
* 平均历时注解码
*/
private String avtddrrcd;
/**
* 最大日水面蒸发量出现日期
*/
private String mxdyeodt;
/**
* 最小日水面蒸发量出现日期
*/
private String mndyeodt;
/**
* 终冰日期
*/
private String idsdt;
/**
* 初冰日期
*/
private String icapd;
/**
* 蒸发场位置特征
*/
private String eslcch;
}

25
swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/dto/SWDayData.java

@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
package com.ruoyi.swlscx.synchronousData.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
* @Author al
* @Date 2025/5/14 16:09
* @Description: TODO
* @Version
*/
@Data
public class SWDayData {
private String stnmId;
private String tm;
private BigDecimal value;
private String sign;
}

25
swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/dto/SWMonthData.java

@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
package com.ruoyi.swlscx.synchronousData.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
* @Author al
* @Date 2025/5/14 16:09
* @Description: TODO
* @Version
*/
@Data
public class SWMonthData {
private String stnmId;
private String tm;
private BigDecimal value;
private String sign;
}

81
swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/enums/JhhkTableEnum.java

@ -0,0 +1,81 @@ @@ -0,0 +1,81 @@
package com.ruoyi.swlscx.synchronousData.enums;
/**
* 水位最大最小值
*/
public enum JhhkTableEnum {
DAY_RAIN("日降水", "dp_dp_c"),
DAY_DQS("日平均输沙率表", "dp_dqs_c"),
DAY_DCS("日平均含沙量表", "dp_dcs_c"),
DAY_DWE("日水面蒸发量表", "dp_dwe_c"),
DAY_DWT("日水温表", "dp_dwt_c"),
DAY_DMXP("日时段最大降水表", "dp_dmxp_f"),
DAY_MXFW("时段最大洪量表", "dp_imxfw_f"),
DAY_DZ("日平均水位表", "dp_dz_c"),
DP_FDHEEX("洪水水文要素摘录表", "dp_fdheex_b"),
DP_HLTDZ("逐潮高低潮位表", "dp_hltdz_b"),
DP_HMXP("小时时段最大降水量表", "dp_hmxp_f"),
DP_MMXP("分钟时段最大降水量表", "dp_mmxp_f"),
MONTH_MTCS("月含沙量表", "dp_mtcs_e"),
MONTH_RAIN("月降水量表", "dp_mtp_e"),
MONTH_MTQS( "月输沙率表", "dp_mtqs_e"),
MONTH_MTTDZ( "月潮位表", "dp_mttdz_e"),
MONTH_MTWE("月水面蒸发量表", "dp_mtwe_e"),
MONTH_MTWT("月水温表", "dp_mtwt_e"),
MONTH_Q("月流量表", "dp_mtq_e"),
MONTH_MTZ("月水位表", "dp_mtz_e"),
DP_OBQ("实测流量表", "dp_obq_r"),
DP_PREX("降水量摘录表", "dp_prex_b"),
DP_RVFHEX("水库洪水水文要素摘录表", "dp_rvfhex_b"),
DP_WSFHEX("水闸洪水水文要素摘录表", "dp_wsfhex_b"),
DP_XSMSRS("实测大断面流量表", "dp_xsmsrs_g"),
YEAR_YRCS("年含沙量表", "dp_yrcs_f"),
YEAR_YRWE("年水面蒸发量表", "dp_yrwe_f"),
YEAR_Q("年流量表", "dp_yrq_f"),
YEAR_RAIN("年降水表", "dp_yrp_f"),
YEAR_TIDE("年潮位表", "dp_yrtdz_f"),
YEAR_YRWT("年水温表", "dp_yrwt_f"),
YEAR_YRZ("年水位表", "dp_yrz_f"),
DAY_Q("日平均流量", "dp_dq_c");
//DAY_Q("日平均流量", "yc_rpt_hy_dq_c");
private final String desc;
private final String value;
private JhhkTableEnum(String desc, String value) {
this.desc = desc;
this.value = value;
}
public String desc() {
return desc;
}
public String value() {
return value;
}
}

94
swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/enums/SWTableEnum.java

@ -0,0 +1,94 @@ @@ -0,0 +1,94 @@
package com.ruoyi.swlscx.synchronousData.enums;
/**
* 水位最大最小值
*/
public enum SWTableEnum {
HY_STSC("测站一览表", "hy_stsc_a"),
DAY_RAIN("日降水表", "hy_dp_c"),
DAY_Q("日平均流量表", "hy_dq_c"),
DAY_DQS("日平均输沙率表","hy_dqs_c"),
DAY_DCS("日平均含沙量表", "hy_dcs_f"),
DAY_DWE("日水面蒸发量表", "hy_dwe_c"),
DAY_DWT("日水温表", "hy_dwt_c"),
DAY_DZC("日平均水位表", "hy_dz_c"),
DAY_MXFW("时段最大洪量表", "hy_imxfw_f"),
HY_DMXP_F("日时段最大降水表", "hy_dmxp_f"),
HY_WFDZ_F("保证率水位表", "hy_wfdz_f"),
DP_FDHEEX("洪水水文要素摘录表", "hy_fdheex_b"),
DP_HLTDZ("逐潮高低潮位表", "hy_hltdz_b"),
DP_HMXP("小时时段最大降水量表", "hy_hmxp_f"),
DP_MMXP("分钟时段最大降水量表", "hy_mmxp_f"),
DP_HOUR("降水量摘录表", "hy_prex_b"),
MONTH_MTCS("月含沙量表", "hy_mtcs_e"),
MONTH_RAIN( "月降水量表", "hy_mtp_e"),
MONTH_Q("月平均流量表", "hy_mtq_e"),
MONTH_MTQS( "月输沙率表", "hy_mtqs_e"),
MONTH_MTTDZ( "月潮位表", "hy_mttdz_e"),
MONTH_MTWE("月水面蒸发量表", "hy_mtwe_e"),
MONTH_MTWT("月水温表", "hy_mtwt_e"),
MONTH_RIVER("月水位表", "hy_mtz_e"),
MONTH_RSVR("月水库水位表", "yc_rpt_rsvr_month"),
DP_OBQ("实测流量表", "yc_rpt_hy_obq_g"),
DP_RVFHEX("水库洪水水文要素摘录表", "hy_rvfhex_b"),
DP_WSFHEX("水闸洪水水文要素摘录表", "hy_wsfhex_b"),
DP_XSMSRS("实测大断面流量表", "yc_rpt_hy_xsmsrs_g"),
YEAR_YRCS("年含沙量表", "hy_yrcs_f"),
YEAR_Q("年流量表", "hy_yrq_f"),
YEAR_RAIN("年降水量表", "hy_yrp_f"),
YEAR_TIDE("年潮位表", "hy_yrtdz_f"),
YEAR_RIVER("年水位表", "hy_yrz_f"),
YEAR_RSVR("年水库水位表", "yc_rpt_rsvr_year"),
YEAR_YRWT("年水温表", "hy_yrwt_f"),
YEAR_YRWE("年水面蒸发量表", "hy_yrwe_f");
private final String desc;
private final String value;
private SWTableEnum(String desc, String value) {
this.desc = desc;
this.value = value;
}
public String desc() {
return desc;
}
public String value() {
return value;
}
}

151
swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/mapper/TimeTasksMapper.java

@ -0,0 +1,151 @@ @@ -0,0 +1,151 @@
package com.ruoyi.swlscx.synchronousData.mapper;
import com.ruoyi.swlscx.basic.domain.po.HyWfdzF;
import com.ruoyi.swlscx.day.domain.po.*;
import com.ruoyi.swlscx.excerpt.domain.po.*;
import com.ruoyi.swlscx.month.domain.po.*;
import com.ruoyi.swlscx.synchronousData.dto.JHDayData;
import com.ruoyi.swlscx.synchronousData.dto.SWDayData;
import com.ruoyi.swlscx.synchronousData.dto.SWMonthData;
import com.ruoyi.swlscx.year.domain.po.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @Author al
* @Date 2025/5/14 15:01
* @Description: TODO
* @Version
*/
@Mapper
public interface TimeTasksMapper {
List<JHDayData> getDayData(@Param("stcd")String stcd, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("tableName") String tableName);
List<JHDayData> getDataByDgdt(@Param("stcd")String stcd,@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("tableName") String tableName);
List<JHDayData> getDataByTm(@Param("stcd")String stcd,@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("tableName") String tableName);
List<JHDayData> getDataByBgtm(@Param("stcd")String stcd,@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("tableName") String tableName);
List<JHDayData> getDataByYr(@Param("stcd") String stcd, @Param("year") String year, @Param("tableName") String tableName);
void insertOrUpdateHyDpc(@Param("list") List<HyDpC> ycRptHyDpcList, @Param("tableName") String tableName);
void insertOrUpdateHyDqc(@Param("list") List<HyDqC> hyDqCList, @Param("tableName") String tableName);
void insertOrUpdateHyDqsC(@Param("list") List<HyDqsC> hyDqsCList, @Param("tableName") String tableName);
void insertOrUpdateHyDcsF(@Param("list") List<HyDcsF> hyDcsFList, @Param("tableName") String tableName);
void insertOrUpdateHyDmxpF(@Param("list") List<HyDmxpF> hyDmxpFList, @Param("tableName") String tableName);
void insertOrUpdateHyDweC(@Param("list") List<HyDweC> hyDweCList, @Param("tableName") String tableName);
void insertOrUpdateHyDwtC(@Param("list") List<HyDwtC> hyDwtCList,@Param("tableName") String tableName);
void insertOrUpdateHyDzC(@Param("list") List<HyDzC> hyDzCList, @Param("tableName") String tableName);
void insertOrUpdateHyImxfwF(@Param("list") List<HyImxfwF> hyImxfwFList, @Param("tableName") String tableName);
void insertOrUpdateHyFdheexB(@Param("list") List<HyFdheexB> hyFdheexBList, @Param("tableName") String tableName);
void insertOrUpdateHyHltdzB(@Param("list") List<HyHltdzB> hyHltdzBList, @Param("tableName") String tableName);
void insertOrUpdateHyHmxpF(@Param("list") List<HyHmxpF> hyHmxpFList, @Param("tableName") String tableName);
void insertOrUpdateHyMmxpF(@Param("list") List<HyMmxpF> hyMmxpFList, @Param("tableName") String tableName);
void insertOrUpdateHyMtcsE(@Param("list") List<HyMtcsE> hyMtcsEList, @Param("tableName") String tableName);
void insertOrUpdateHyMtpEList(@Param("list") List<HyMtpE> hyMtpEList, @Param("tableName") String tableName);
void insertOrUpdateHyMtqE(@Param("list") List<HyMtqE> hyMtqEList, @Param("tableName") String tableName);
void insertOrUpdateHyMtqsEList(@Param("list") List<HyMtqsE> hyMtqsEList, @Param("tableName") String tableName);
void insertOrUpdateHyMtweE(@Param("list") List<HyMtweE> hyMtweEList, @Param("tableName") String tableName);
void insertOrUpdateHyMtwtE(@Param("list") List<HyMtwtE> hyMtwtEList, @Param("tableName") String tableName);
void insertOrUpdateHyMtzE(@Param("list") List<HyMtzE> hyMtzEList, @Param("tableName") String tableName);
void insertOrUpdateHyPrexBList(@Param("list") List<HyPrexB> hyPrexBList, @Param("tableName") String tableName);
void insertOrUpdateHyRvfhexBList(@Param("list") List<HyRvfhexB> hyRvfhexBList, @Param("tableName") String tableName);
void insertOrUpdateHyWsfhexBList(@Param("list") List<HyWsfhexB> hyWsfhexBList, @Param("tableName") String tableName);
void insertOrUpdateHyYrcsFList(@Param("list") List<HyYrcsF> hyYrcsFList, @Param("tableName") String tableName);
void insertOrUpdateHyYrqFList(@Param("list") List<HyYrqF> hyYrqFList, @Param("tableName") String tableName);
void insertOrUpdateHyYrpFList(@Param("list") List<HyYrpF> hyYrpFList, @Param("tableName") String tableName);
void insertOrUpdateHyYrtdzFList(@Param("list") List<HyYrtdzF> hyYrtdzFList,@Param("tableName") String tableName);
void insertOrUpdateHyYrweFList(@Param("list") List<HyYrweF> hyYrweFList, @Param("tableName") String tableName);
void insertOrUpdateHyYrwtFList(@Param("list") List<HyYrwtF> hyYrwtFList, @Param("tableName") String tableName);
void insertOrUpdateHyYrzFList(@Param("list") List<HyYrzF> hyYrzFList, @Param("tableName") String tableName);
void insertOrUpdateHyMttdzEList(@Param("list") List<HyMttdzE> hyMttdzEList,@Param("tableName") String tableName);
void insertOrUpdateHyWfdzF(@Param("list") List<HyWfdzF> hyWfdzFList,@Param("tableName") String value);
//
// void deleteAll(@Param("tableName") String tableName);
//
// void insertOrUpdate(@Param("list") List<SWDayData> swDayDataList, @Param("tableName") String tableName);
//
// void insertOrUpdateHyDqs(@Param("list") List<YcRptHyDqs> ycRptHyDqsList,@Param("tableName") String tableName);
//
// void insertOrUpdateHyDcs(@Param("list") List<YcRptHyDcs> ycRptHyDcsList,@Param("tableName") String tableName);
//
// void insertOrUpdateHyDwe(@Param("list") List<YcRptHyDwe> ycRptHyDweList, @Param("tableName") String tableName);
//
// void insertOrUpdateHyDwt(@Param("list") List<YcRptHyDwt> ycRptHyDwtList, @Param("tableName") String tableName);
//
//
// void insertOrUpdateArchCharRain(@Param("list") List<ArchCharRain> archCharRainList,@Param("tableName") String tableName);
//
// void insertOrUpdateImxfw(@Param("list") List<YcRptImxfw> ycRptImxfwList, @Param("tableName") String tableName);
//
//
// void insertOrUpdateFdheex(@Param("list") List<YcRptFdheex> ycRptFdheexList, @Param("tableName") String tableName);
//
// void insertOrUpdateTideHour(@Param("list") List<YcRptTideHour> ycRptTideHourList, @Param("tableName") String tableName);
//
//
//
// void insertOrUpdateHyMtcs(@Param("list") List<YcRptHyMtcs> ycRptHyMtcsList, @Param("tableName") String tableName);
//
// void insertOrUpdateMonthData(@Param("list") List<SWMonthData> swMonthData, @Param("tableName") String tableName);
//
// void insertOrUpdateMtqsData(@Param("list") List<YcRptHyMtqs> ycRptHyMtqsList, @Param("tableName") String tableName);
//
// void insertOrUpdateHyMtwe(@Param("list") List<YcRptHyMtwe> ycRptHyMtweList, @Param("tableName") String tableName);
//
// void insertOrUpdateHyMtwt(@Param("list") List<YcRptHyMtwt> ycRptHyMtwtList,@Param("tableName") String tableName);
//
// void insertOrUpdateDpObq(@Param("list") List<YcRptDpObqR> ycRptDpObqRS, @Param("tableName") String tableName);
//
// void insertOrUpdateHyRvfhexB(@Param("list") List<YcRptHyRvfhexB> ycRptHyRvfhexBList, @Param("tableName") String tableName);
//
// void insertOrUpdateHyWsfhexB(@Param("list") List<YcRptHyWsfhexB> ycRptHyWsfhexBList, @Param("tableName") String tableName);
//
// List<JHDayData> getDataByObdt(@Param("stcd")String stcd,@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("tableName") String tableName);
//
// void insertOrUpdateXsmsrs(@Param("list") List<YcRptXsmsrsG> ycRptXsmsrsGS, @Param("tableName") String tableName);
//
// void insertOrUpdateHyYrcsF(@Param("list") List<YcRptHyYrcs> ycRptHyYrcsList, @Param("tableName") String tableName);
//
// void insertOrUpdateYrweData(@Param("list") List<YcRptHyYrwe> ycRptHyYrweList, @Param("tableName") String tableName);
//
// void insertOrUpdateYrwtData(@Param("list") List<YcRptHyYrwt> ycRptHyYrwtList, @Param("tableName") String tableName);
}

15
swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/service/GetDateService.java

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
package com.ruoyi.swlscx.synchronousData.service;
import java.util.List;
/**
* @Author al
* @Date 2025/5/14 14:49
* @Description: TODO
* @Version
*/
public interface GetDateService {
void insertRainData(List<String> stcds,String tableName);
}

83
swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/service/TimeTasksService.java

@ -0,0 +1,83 @@ @@ -0,0 +1,83 @@
package com.ruoyi.swlscx.synchronousData.service;
/**
* @Author al
* @Date 2025/5/14 14:49
* @Description: TODO
* @Version
*/
public interface TimeTasksService {
void getDayRainData();
void getDayQData();
void getDayDqsData();
//
void getDayDcsData();
void getDayDweData();
void getDayDwtData();
void getDayDzcData();
//
// void getDayRsverData();
void getDayDmxpData();
//
void getDayImxfwData();
void getFdheexData();
void getHltdzData();
void getHmxpData();
void getMmxpData();
void getMtcsData();
void getMonthRainData();
void getMonthQData();
void getMonthMtqsData();
void getMonthMtweData();
void getMonthMtwtData();
void getMonthRiverData();
//
// void getMonthRsvrData();
//
// void getObqData();
void getHourRainData();
void getWsfhexData();
void getRvfhexData();
void getYrcsData();
void getYearQData();
void getYearRainData();
void getYearTideData();
void getYearMtweData();
void getYearWtData();
void getYearYrzData();
//
// void getYearRsvrData();
//
void getMonthMttdzData();
void setYcStaions();
}

210
swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/service/impl/GetDateServiceImpl.java

@ -0,0 +1,210 @@ @@ -0,0 +1,210 @@
package com.ruoyi.swlscx.synchronousData.service.impl;
import com.alibaba.fastjson.JSON;
import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.swlscx.day.domain.po.*;
import com.ruoyi.swlscx.excerpt.domain.po.*;
import com.ruoyi.swlscx.month.domain.po.*;
import com.ruoyi.swlscx.synchronousData.dto.SWDayData;
import com.ruoyi.swlscx.synchronousData.dto.SWMonthData;
import com.ruoyi.swlscx.synchronousData.enums.SWTableEnum;
import com.ruoyi.swlscx.synchronousData.mapper.TimeTasksMapper;
import com.ruoyi.swlscx.synchronousData.service.GetDateService;
import com.ruoyi.swlscx.year.domain.po.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @Author al
* @Date 2025/5/14 14:49
* @Description: TODO
* @Version
*/
@Service
public class GetDateServiceImpl implements GetDateService {
@Autowired
private TimeTasksMapper timeTasksMapper;
@Autowired
private StringRedisTemplate stringRedisTemplate;
/**
* 处理雨量数据
*/
@Transactional(rollbackFor = Exception.class)
@Override
@DataSource(DataSourceType.MASTER)
public void insertRainData(List<String> stcds,String tableName) {
for (String stcd : stcds) {
if (tableName.equals(SWTableEnum.DAY_RAIN.value())) {
//从redis中查数据
List<HyDpC> ycRptHyDpcList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyDpC.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyDpc(ycRptHyDpcList, tableName);
}else if (tableName.equals(SWTableEnum.DAY_Q.value())) {
//从redis中查数据
List<HyDqC> hyDqCList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyDqC.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyDqc(hyDqCList, tableName);
} else if (tableName.equals(SWTableEnum.DAY_DQS.value())) {
//从redis中查数据
List<HyDqsC> hyDqsCList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyDqsC.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyDqsC(hyDqsCList, tableName);
}else if (tableName.equals(SWTableEnum.DAY_DCS.value())) {
//从redis中查数据
List<HyDcsF> hyDcsFList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyDcsF.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyDcsF(hyDcsFList, tableName);
}else if (tableName.equals(SWTableEnum.HY_DMXP_F.value())) {
//从redis中查数据
List<HyDmxpF> hyDmxpFList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyDmxpF.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyDmxpF(hyDmxpFList, tableName);
}else if (tableName.equals(SWTableEnum.DAY_DWE.value())) {
//从redis中查数据
List<HyDweC> hyDweCList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyDweC.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyDweC(hyDweCList, tableName);
}else if (tableName.equals(SWTableEnum.DAY_DWT.value())) {
//从redis中查数据
List<HyDwtC> hyDwtCList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyDwtC.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyDwtC(hyDwtCList, tableName);
}else if (tableName.equals(SWTableEnum.DAY_DZC.value())) {
//从redis中查数据
List<HyDzC> hyDzCList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyDzC.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyDzC(hyDzCList, tableName);
}else if (tableName.equals(SWTableEnum.DAY_MXFW.value())) {
//从redis中查数据
List<HyImxfwF> hyImxfwFList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyImxfwF.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyImxfwF(hyImxfwFList, tableName);
}else if (tableName.equals(SWTableEnum.DP_FDHEEX.value())) {
//从redis中查数据
List<HyFdheexB> hyFdheexBList= JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyFdheexB.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyFdheexB(hyFdheexBList, tableName);
}else if (tableName.equals(SWTableEnum.DP_HLTDZ.value())) {
//从redis中查数据
List<HyHltdzB> hyHltdzBList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyHltdzB.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyHltdzB(hyHltdzBList, tableName);
}else if (tableName.equals(SWTableEnum.DP_HMXP.value())) {
//从redis中查数据
List<HyHmxpF> hyHmxpFList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyHmxpF.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyHmxpF(hyHmxpFList, tableName);
}else if (tableName.equals(SWTableEnum.DP_MMXP.value())) {
//从redis中查数据
List<HyMmxpF> hyMmxpFList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyMmxpF.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyMmxpF(hyMmxpFList, tableName);
}else if (tableName.equals(SWTableEnum.MONTH_MTCS.value())) {
//从redis中查数据
List<HyMtcsE> hyMtcsEList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyMtcsE.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyMtcsE(hyMtcsEList, tableName);
}else if (tableName.equals(SWTableEnum.MONTH_RAIN.value())) {
//从redis中查数据
List<HyMtpE> hyMtpEList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyMtpE.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyMtpEList(hyMtpEList, tableName);
}else if (tableName.equals(SWTableEnum.MONTH_Q.value())) {
//从redis中查数据
List<HyMtqE> hyMtqEList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyMtqE.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyMtqE(hyMtqEList, tableName);
}else if (tableName.equals(SWTableEnum.MONTH_MTQS.value())) {
//从redis中查数据
List<HyMtqsE> hyMtqsEList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyMtqsE.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyMtqsEList(hyMtqsEList, tableName);
}else if (tableName.equals(SWTableEnum.MONTH_MTWE.value())) {
//从redis中查数据
List<HyMtweE> hyMtweEList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyMtweE.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyMtweE(hyMtweEList, tableName);
}else if (tableName.equals(SWTableEnum.MONTH_MTWT.value())) {
//从redis中查数据
List<HyMtwtE> hyMtwtEList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyMtwtE.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyMtwtE(hyMtwtEList, tableName);
}else if (tableName.equals(SWTableEnum.MONTH_RIVER.value())) {
//从redis中查数据
List<HyMtzE> hyMtzEList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyMtzE.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyMtzE(hyMtzEList, tableName);
}else if (tableName.equals(SWTableEnum.DP_HOUR.value())) {
//从redis中查数据
List<HyPrexB> hyPrexBList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyPrexB.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyPrexBList(hyPrexBList, tableName);
}else if (tableName.equals(SWTableEnum.DP_RVFHEX.value())) {
//从redis中查数据
List<HyRvfhexB> hyRvfhexBList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyRvfhexB.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyRvfhexBList(hyRvfhexBList, tableName);
}else if (tableName.equals(SWTableEnum.DP_WSFHEX.value())) {
//从redis中查数据
List<HyWsfhexB> hyWsfhexBList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyWsfhexB.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyWsfhexBList(hyWsfhexBList, tableName);
}else if (tableName.equals(SWTableEnum.YEAR_YRCS.value())) {
//从redis中查数据
List<HyYrcsF> hyYrcsFList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyYrcsF.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyYrcsFList(hyYrcsFList, tableName);
}else if (tableName.equals(SWTableEnum.YEAR_Q.value())) {
//从redis中查数据
List<HyYrqF> hyYrqFList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyYrqF.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyYrqFList(hyYrqFList, tableName);
}else if (tableName.equals(SWTableEnum.YEAR_RAIN.value())) {
//从redis中查数据
List<HyYrpF> hyYrpFList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyYrpF.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyYrpFList(hyYrpFList, tableName);
}else if (tableName.equals(SWTableEnum.YEAR_TIDE.value())) {
//从redis中查数据
List<HyYrtdzF> hyYrtdzFList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyYrtdzF.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyYrtdzFList(hyYrtdzFList, tableName);
}else if (tableName.equals(SWTableEnum.YEAR_YRWE.value())) {
//从redis中查数据
List<HyYrweF> hyYrweFList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyYrweF.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyYrweFList(hyYrweFList, tableName);
}else if (tableName.equals(SWTableEnum.YEAR_YRWT.value())) {
//从redis中查数据
List<HyYrwtF> hyYrwtFList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyYrwtF.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyYrwtFList(hyYrwtFList, tableName);
}else if (tableName.equals(SWTableEnum.YEAR_RIVER.value())) {
//从redis中查数据
List<HyYrzF> hyYrzFList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyYrzF.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyYrzFList(hyYrzFList, tableName);
}else if (tableName.equals(SWTableEnum.MONTH_MTTDZ.value())) {
//从redis中查数据
List<HyMttdzE> hyMttdzEList = JSON.parseArray(stringRedisTemplate.opsForValue().get(stcd), HyMttdzE.class);
//更新新增操作
timeTasksMapper.insertOrUpdateHyMttdzEList(hyMttdzEList, tableName);
}
}
//清除redis缓存
for (String stcd : stcds) {
stringRedisTemplate.delete(stcd);
}
}
}

1347
swlscx/src/main/java/com/ruoyi/swlscx/synchronousData/service/impl/TimeTasksServiceImpl.java

File diff suppressed because it is too large Load Diff

3
swlscx/src/main/java/com/ruoyi/swlscx/year/service/HyYrzFService.java

@ -1,11 +1,13 @@ @@ -1,11 +1,13 @@
package com.ruoyi.swlscx.year.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.page.R;
import com.ruoyi.swlscx.common.PageParams;
import com.ruoyi.swlscx.year.domain.po.HyYrzF;
import com.ruoyi.swlscx.year.domain.vo.HyYrzFVo;
import io.lettuce.core.ScanIterator;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
@ -32,4 +34,5 @@ public interface HyYrzFService extends IService<HyYrzF> { @@ -32,4 +34,5 @@ public interface HyYrzFService extends IService<HyYrzF> {
R exportYearWaterLeverList(HttpServletResponse response, String startTime, String endTime, String stcd, String stnm);
R importDateTosoft(String startTime, String endTime);
}

172
swlscx/src/main/resources/mapper/basic/HyStscAMapper.xml

@ -58,55 +58,157 @@ @@ -58,55 +58,157 @@
<if test="map.stnm != null and map.stnm != ''">
and hme.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in <foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
</trim>
</where>
order by hme.esstyr
</select>
<delete id="deleteTempData" >
TRUNCATE TABLE hy_stsc_a_temp;
<delete id="deleteData" >
TRUNCATE TABLE hy_stsc_a;
</delete>
<insert id="insertData" >
insert into hy_stsc_a (
stcd, stnm, stct, bshncd, hnnm, rvnm, obitmcd, addvcd, wrrgcd,
esstyr, esstmth, wdstyr, wdstmth, drar, flto, dstrvm, fdtmnm,
admag, admnst, stlc, lgtd, lttd, stgrd, frgrd, nt
) values <foreach collection="list" item="item" separator=",">
(
#{item.stcd}, #{item.stnm}, #{item.stct}, #{item.bshncd}, #{item.hnnm}, #{item.rvnm},
#{item.obitmcd}, #{item.addvcd}, #{item.wrrgcd}, #{item.esstyr}, #{item.esstmth},
#{item.wdstyr}, #{item.wdstmth}, #{item.drar}, #{item.flto}, #{item.dstrvm},
#{item.fdtmnm}, #{item.admag}, #{item.admnst}, #{item.stlc}, #{item.lgtd},
#{item.lttd}, #{item.stgrd}, #{item.frgrd}, #{item.nt}
)
</foreach>
</insert>
<!-- MyBatis映射文件 -->
<select id="copyFile" statementType="CALLABLE">
{call sp_backup_hy_shdp(#{path})}
</select>
<select id="remoteFile" >
RESTORE DATABASE [HyShdp_Temp] -- 使用自定义名称
FROM DISK = 'D:\\gongxiang\\backup.bak'
WITH
MOVE 'HY_shdp_Data' TO 'D:\\gongxiang\\HY_shdp_Data.mdf',
MOVE 'HY_shdp_Log' TO 'D:\\gongxiang\\HY_shdp_Log.ldf',
REPLACE, RECOVERY;
</select>
<insert id="mergeToData" >
MERGE INTO hy_stsc_a AS a
USING hy_stsc_a_temp AS temp
ON (a.stcd = temp.stcd)
MERGE INTO hy_stsc_a WITH (HOLDLOCK) AS a <!-- 防止并发唯一键冲突 [6,8](@ref) -->
USING (
SELECT
<foreach collection="list" item="item" separator=" UNION ALL ">
SELECT
#{item.stcd} AS stcd,
#{item.stnm} AS stnm,
#{item.stct} AS stct,
#{item.bshncd} AS bshncd,
#{item.hnnm} AS hnnm,
#{item.rvnm} AS rvnm,
#{item.obitmcd} AS obitmcd,
#{item.addvcd} AS addvcd,
#{item.wrrgcd} AS wrrgcd,
#{item.esstyr} AS esstyr,
#{item.esstmth} AS esstmth,
#{item.wdstyr} AS wdstyr,
#{item.wdstmth} AS wdstmth,
#{item.drar} AS drar,
#{item.flto} AS flto,
#{item.dstrvm} AS dstrvm,
#{item.fdtmnm} AS fdtmnm,
#{item.admag} AS admag,
#{item.admnst} AS admnst,
#{item.stlc} AS stlc,
#{item.lgtd} AS lgtd,
#{item.lttd} AS lttd,
#{item.stgrd} AS stgrd,
#{item.frgrd} AS frgrd,
#{item.nt} AS nt
</foreach>
FROM (VALUES (0)) AS dummy(col) <!-- SQL Server虚拟行占位符 -->
) AS temp ON (a.stcd = temp.stcd)
WHEN MATCHED THEN
UPDATE SET
a.stnm = temp.stnm,
a.stct = temp.stct,
a.bshncd = temp.bshncd,
a.hnnm = temp.hnnm,
a.rvnm = temp.rvnm,
a.obitmcd = temp.obitmcd,
a.addvcd = temp.addvcd,
a.wrrgcd = temp.wrrgcd,
a.esstyr = temp.esstyr,
a.esstmth = temp.esstmth,
a.wdstyr = temp.wdstyr,
a.wdstmth = temp.wdstmth,
a.drar = temp.drar,
a.flto = temp.flto,
a.dstrvm = temp.dstrvm,
a.fdtmnm = temp.fdtmnm,
a.admag = temp.admag,
a.admnst = temp.admnst,
a.stlc = temp.stlc,
a.lgtd = temp.lgtd,
a.lttd = temp.lttd,
a.stgrd = temp.stgrd,
a.frgrd = temp.frgrd,
a.nt = temp.nt
WHEN NOT MATCHED THEN
INSERT (stcd, stnm, stct, bshncd, hnnm, rvnm, obitmcd, addvcd, wrrgcd, esstyr, esstmth, wdstyr, wdstmth, drar, flto, dstrvm, fdtmnm, admag, admnst, stlc, lgtd, lttd, stgrd, frgrd, nt)
VALUES
(temp.stcd, temp.stnm, temp.stct, temp.bshncd, temp.hnnm, temp.rvnm, temp.obitmcd, temp.addvcd, temp.wrrgcd, temp.esstyr, temp.esstmth, temp.wdstyr, temp.wdstmth, temp.drar, temp.flto, temp.dstrvm, temp.fdtmnm, temp.admag, temp.admnst, temp.stlc, temp.lgtd, temp.lttd, temp.stgrd, temp.frgrd, temp.nt);
a.stnm = temp.stnm,
a.stct = temp.stct,
a.bshncd = temp.bshncd,
a.hnnm = temp.hnnm,
a.rvnm = temp.rvnm,
a.obitmcd = temp.obitmcd,
a.addvcd = temp.addvcd,
a.wrrgcd = temp.wrrgcd,
a.esstyr = temp.esstyr,
a.esstmth = temp.esstmth,
a.wdstyr = temp.wdstyr,
a.wdstmth = temp.wdstmth,
a.drar = temp.drar,
a.flto = temp.flto,
a.dstrvm = temp.dstrvm,
a.fdtmnm = temp.fdtmnm,
a.admag = temp.admag,
a.admnst = temp.admnst,
a.stlc = temp.stlc,
a.lgtd = temp.lgtd,
a.lttd = temp.lttd,
a.stgrd = temp.stgrd,
a.frgrd = temp.frgrd,
a.nt = temp.nt
WHEN NOT MATCHED BY TARGET THEN
INSERT (
stcd, stnm, stct, bshncd, hnnm, rvnm, obitmcd, addvcd, wrrgcd,
esstyr, esstmth, wdstyr, wdstmth, drar, flto, dstrvm, fdtmnm,
admag, admnst, stlc, lgtd, lttd, stgrd, frgrd, nt
) VALUES (
temp.stcd, temp.stnm, temp.stct, temp.bshncd, temp.hnnm, temp.rvnm,
temp.obitmcd, temp.addvcd, temp.wrrgcd, temp.esstyr, temp.esstmth,
temp.wdstyr, temp.wdstmth, temp.drar, temp.flto, temp.dstrvm, temp.fdtmnm,
temp.admag, temp.admnst, temp.stlc, temp.lgtd, temp.lttd, temp.stgrd,
temp.frgrd, temp.nt
)
</insert>
<select id="getRainStationListByType" resultType="com.ruoyi.swlscx.synchronousData.dto.JHDayData">
SELECT stcd, yr, mth
FROM hy_mtp_e
WHERE
(yr = #{startYear} AND mth >= #{startMth})
OR
(yr = #{endYear} AND mth &lt;= #{endMth})
ORDER BY yr ASC, mth ASC;
</select>
<select id="getYcShdpInfoByTableId" resultType="com.ruoyi.swlscx.basic.domain.po.YcShdpInfo">
SELECT *
FROM yc_shdp_info
WHERE table_id in (
<foreach collection="ids" item="item" separator=",">
#{item}
</foreach>
)
</select>
<select id="testSqlServer" resultType="map">
SELECT TOP 10 *
FROM hy_dp_c
</select>
<select id="listByHyWfdzF" resultType="com.ruoyi.swlscx.basic.domain.po.HyWfdzF">
SELECT *
FROM hy_wfdz_f
WHERE yr between (#{startYear} and #{endYear})
and stcd in(<foreach collection="list" item="stcd" separator=",">
#{stcd}
</foreach>)
</select>
</mapper>

49
swlscx/src/main/resources/mapper/basic/YcExportTaskMapper.xml

@ -16,4 +16,53 @@ @@ -16,4 +16,53 @@
<select id="test" resultType="map">
select TOP 10 * from hy_dp_c
</select>
<select id="getDataBySqlServer" resultType="com.ruoyi.swlscx.synchronousData.dto.JHDayData">
select * from HY_STSC_A
</select>
<insert id="insertOrUpataData">
INSERT INTO hy_stsc_a (
stcd, stnm, stct, bshncd, hnnm, rvnm, obitmcd,
addvcd, wrrgcd, esstyr, esstmth, wdstyr, wdstmth,
drar, flto, dstrvm, fdtmnm, admag, admnst, stlc,
lgtd, lttd, stgrd, frgrd, nt
)
VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.stcd}, #{item.stnm}, #{item.stct}, #{item.bshncd},
#{item.hnnm}, #{item.rvnm}, #{item.obitmcd}, #{item.addvcd},
#{item.wrrgcd}, #{item.esstyr}, #{item.esstmth}, #{item.wdstyr},
#{item.wdstmth}, #{item.drar}, #{item.flto}, #{item.dstrvm},
#{item.fdtmnm}, #{item.admag}, #{item.admnst}, #{item.stlc},
#{item.lgtd}, #{item.lttd}, #{item.stgrd}, #{item.frgrd}, #{item.nt}
)
</foreach>
ON DUPLICATE KEY UPDATE
stnm = VALUES(stnm),
stct = VALUES(stct),
bshncd = VALUES(bshncd),
hnnm = VALUES(hnnm),
rvnm = VALUES(rvnm),
obitmcd = VALUES(obitmcd),
addvcd = VALUES(addvcd),
wrrgcd = VALUES(wrrgcd),
esstyr = VALUES(esstyr),
esstmth = VALUES(esstmth),
wdstyr = VALUES(wdstyr),
wdstmth = VALUES(wdstmth),
drar = VALUES(drar),
flto = VALUES(flto),
dstrvm = VALUES(dstrvm),
fdtmnm = VALUES(fdtmnm),
admag = VALUES(admag),
admnst = VALUES(admnst),
stlc = VALUES(stlc),
lgtd = VALUES(lgtd),
lttd = VALUES(lttd),
stgrd = VALUES(stgrd),
frgrd = VALUES(frgrd),
nt = VALUES(nt)
</insert>
</mapper>

7
swlscx/src/main/resources/mapper/day/HyDcsFMapper.xml

@ -44,8 +44,11 @@ @@ -44,8 +44,11 @@
<if test="map.stnm != null and map.stnm != ''">
and hme.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in
<foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.dt >= #{map.startTime}

6
swlscx/src/main/resources/mapper/day/HyDpCMapper.xml

@ -50,8 +50,10 @@ @@ -50,8 +50,10 @@
<if test="map.stnm != null and map.stnm != ''">
and hme.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in <foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.dt >= #{map.startTime}

6
swlscx/src/main/resources/mapper/day/HyDqCMapper.xml

@ -47,8 +47,10 @@ @@ -47,8 +47,10 @@
<if test="map.stnm != null and map.stnm != ''">
and hme.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in <foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.dt >= #{map.startTime}

6
swlscx/src/main/resources/mapper/day/HyDweCMapper.xml

@ -53,8 +53,10 @@ @@ -53,8 +53,10 @@
<if test="map.stnm != null and map.stnm != ''">
and hme.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in <foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.dt >= #{map.startTime}

7
swlscx/src/main/resources/mapper/day/HyDwtCMapper.xml

@ -16,8 +16,11 @@ @@ -16,8 +16,11 @@
<if test="map.stnm != null and map.stnm != ''">
and hme.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in
<foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.dt >= #{map.startTime}

6
swlscx/src/main/resources/mapper/day/HyDzCMapper.xml

@ -48,8 +48,10 @@ @@ -48,8 +48,10 @@
<if test="map.stnm != null and map.stnm != ''">
and hme.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in <foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.dt >= #{map.startTime}

38
swlscx/src/main/resources/mapper/day/HyZscsBMapper.xml

@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.swlscx.day.mapper.HyZscsBMapper">
<select id="selectHyZscsBDataByPageAndInfo" resultType="com.ruoyi.swlscx.day.domain.vo.HyZscsBVo">
select
hme.stcd,
hme.stnm ,
hme.tm,
hme.tdr,
hme.tdz,
hme.tdzrcd
from hy_zscs_b hme
<where>
<trim prefixOverrides="and">
<if test="map.stnm != null and map.stnm != ''">
and hme.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in
<foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.tm >= #{map.startTime}
</if>
<if test="map.endTime != null and map.endTime != ''">
and hme.tm &lt;= #{map.endTime}
</if>
</trim>
</where>
order by hme.stcd,hme.tm
</select>
</mapper>

7
swlscx/src/main/resources/mapper/excerpt/HyFdheexBMapper.xml

@ -53,8 +53,11 @@ @@ -53,8 +53,11 @@
<if test="map.stnm != null and map.stnm != ''">
and hme.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in
<foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.tm >= #{map.startTime}

7
swlscx/src/main/resources/mapper/excerpt/HyPrexBMapper.xml

@ -49,8 +49,11 @@ @@ -49,8 +49,11 @@
<if test="map.stnm != null and map.stnm != ''">
and hme.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in
<foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.bgtm >= #{map.startTime}

7
swlscx/src/main/resources/mapper/excerpt/HyRvfhexBMapper.xml

@ -60,8 +60,11 @@ @@ -60,8 +60,11 @@
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in
<foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.tm >= #{map.startTime}

7
swlscx/src/main/resources/mapper/excerpt/HyWsfhexBMapper.xml

@ -21,8 +21,11 @@ @@ -21,8 +21,11 @@
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in
<foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.tm >= #{map.startTime}

7
swlscx/src/main/resources/mapper/month/HyMtcsEMapper.xml

@ -18,18 +18,15 @@ @@ -18,18 +18,15 @@
left join hy_stsc_a hsa on hme.stcd = hsa.stcd
<where>
<trim prefixOverrides="and">
<if test="map.stcds !=null and map.stcds != '' and map.stcds.size() > 0">
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in
<foreach collection="map.stcds" index="index" item="stcd" open="(" separator="," close=")">
<foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
</if>
<if test="map.startYear != null and map.startYear != ''">
and hme.yr >= #{map.startYear}
</if>

12
swlscx/src/main/resources/mapper/month/HyMtpEMapper.xml

@ -9,14 +9,10 @@ @@ -9,14 +9,10 @@
left join hy_stsc_a hsa on hme.stcd = hsa.stcd
<where>
<trim prefixOverrides="and">
<if test="map.stcds !=null and map.stcds != '' and map.stcds.size() > 0">
and hme.stcd in
<foreach collection="map.stcds" index="index" item="stcd" open="(" separator="," close=")">
#{stcd}
</foreach>
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in <foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')

7
swlscx/src/main/resources/mapper/month/HyMtqEMapper.xml

@ -29,8 +29,11 @@ @@ -29,8 +29,11 @@
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in
<foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startYear != null and map.startYear != ''">
and hme.yr >= #{map.startYear}

12
swlscx/src/main/resources/mapper/month/HyMtqsEMapper.xml

@ -29,14 +29,10 @@ @@ -29,14 +29,10 @@
left join hy_stsc_a hsa on hme.stcd = hsa.stcd
<where>
<trim prefixOverrides="and">
<if test="map.stcds !=null and map.stcds != '' and map.stcds.size() > 0">
and hme.stcd in
<foreach collection="map.stcds" index="index" item="stcd" open="(" separator="," close=")">
#{stcd}
</foreach>
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in <foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')

12
swlscx/src/main/resources/mapper/month/HyMttdzEMapper.xml

@ -92,17 +92,13 @@ @@ -92,17 +92,13 @@
left join hy_stsc_a hsa on hme.stcd = hsa.stcd
<where>
<trim prefixOverrides="and">
<if test="map.stcds !=null and map.stcds != '' and map.stcds.size() > 0">
and hme.stcd in
<foreach collection="map.stcds" index="index" item="stcd" open="(" separator="," close=")">
#{stcd}
</foreach>
</if>
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in <foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startYear != null and map.startYear != ''">
and hme.yr >= #{map.startYear}

7
swlscx/src/main/resources/mapper/month/HyMtweEMapper.xml

@ -30,15 +30,12 @@ @@ -30,15 +30,12 @@
left join hy_stsc_a hsa on hme.stcd = hsa.stcd
<where>
<trim prefixOverrides="and">
<if test="map.stcds !=null and map.stcds != '' and map.stcds.size() > 0">
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in
<foreach collection="map.stcds" index="index" item="stcd" open="(" separator="," close=")">
<foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
</if>
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')
</if>

7
swlscx/src/main/resources/mapper/month/HyMtwtEMapper.xml

@ -30,8 +30,11 @@ @@ -30,8 +30,11 @@
left join hy_stsc_a hsa on hme.stcd = hsa.stcd
<where>
<trim prefixOverrides="and">
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in
<foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')

12
swlscx/src/main/resources/mapper/month/HyMtzEMapper.xml

@ -21,17 +21,13 @@ @@ -21,17 +21,13 @@
left join hy_stsc_a hsa on hme.stcd = hsa.stcd
<where>
<trim prefixOverrides="and">
<if test="map.stcds !=null and map.stcds != '' and map.stcds.size() > 0">
and hme.stcd in
<foreach collection="map.stcds" index="index" item="stcd" open="(" separator="," close=")">
#{stcd}
</foreach>
</if>
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in <foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startYear != null and map.startYear != ''">
and hme.yr >= #{map.startYear}

1037
swlscx/src/main/resources/mapper/synchronousData/TimeTasksMapper.xml

File diff suppressed because it is too large Load Diff

7
swlscx/src/main/resources/mapper/year/HyDmxpFMapper.xml

@ -14,8 +14,11 @@ @@ -14,8 +14,11 @@
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in
<foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.yr >= #{map.startTime}

7
swlscx/src/main/resources/mapper/year/HyHmxpFMapper.xml

@ -22,8 +22,11 @@ @@ -22,8 +22,11 @@
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in
<foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.yr >= #{map.startTime}

7
swlscx/src/main/resources/mapper/year/HyImxfwFMapper.xml

@ -14,8 +14,11 @@ @@ -14,8 +14,11 @@
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in
<foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.yr >= #{map.startTime}

7
swlscx/src/main/resources/mapper/year/HyMmxpFMapper.xml

@ -22,8 +22,11 @@ @@ -22,8 +22,11 @@
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in
<foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.yr >= #{map.startTime}

6
swlscx/src/main/resources/mapper/year/HyYrcsFMapper.xml

@ -15,8 +15,10 @@ @@ -15,8 +15,10 @@
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in <foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.yr >= #{map.startTime}

7
swlscx/src/main/resources/mapper/year/HyYrpFMapper.xml

@ -82,8 +82,11 @@ @@ -82,8 +82,11 @@
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0 ">
and hme.stcd in
<foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.yr >= #{map.startTime}

6
swlscx/src/main/resources/mapper/year/HyYrqFMapper.xml

@ -27,8 +27,10 @@ @@ -27,8 +27,10 @@
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in <foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.yr >= #{map.startTime}

6
swlscx/src/main/resources/mapper/year/HyYrqsFMapper.xml

@ -28,8 +28,10 @@ @@ -28,8 +28,10 @@
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in <foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.yr >= #{map.startTime}

7
swlscx/src/main/resources/mapper/year/HyYrtdzFMapper.xml

@ -12,8 +12,11 @@ @@ -12,8 +12,11 @@
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in
<foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.yr >= #{map.startTime}

6
swlscx/src/main/resources/mapper/year/HyYrweFMapper.xml

@ -28,8 +28,10 @@ @@ -28,8 +28,10 @@
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in <foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.yr >= #{map.startTime}

6
swlscx/src/main/resources/mapper/year/HyYrwtFMapper.xml

@ -23,8 +23,10 @@ @@ -23,8 +23,10 @@
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in <foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.yr >= #{map.startTime}

6
swlscx/src/main/resources/mapper/year/HyYrzFMapper.xml

@ -22,8 +22,10 @@ @@ -22,8 +22,10 @@
<if test="map.stnm != null and map.stnm != ''">
and hsa.stnm like concat('%',#{map.stnm},'%')
</if>
<if test="map.stcd != null and map.stcd != ''">
and hme.stcd like concat('%',#{map.stcd},'%')
<if test="map.stcd != null and map.stcd.size >0">
and hme.stcd in <foreach collection="map.stcd" item="stcd" separator="," open="(" close=")">
#{stcd}
</foreach>
</if>
<if test="map.startTime != null and map.startTime != ''">
and hme.yr >= #{map.startTime}

Loading…
Cancel
Save