feat(excoil): 添加出口卷数据同步功能

- 新增 MesExCoil 实体类定义数据库表结构
- 创建 MesExCoilBo 业务对象用于数据传输
- 实现 IMesExCoilService 接口及 MesExCoilServiceImpl 服务类
- 添加 MesExCoilController 控制器提供 REST API 接口
- 集成 MyBatis Plus 持久层框架实现数据库操作
- 实现出入口厚度、宽度、重量等完整字段映射
- 添加同步 L2 系统出口卷实绩数据功能
- 支持首次全量同步和后续增量同步模式
- 实现数据校验、分页查询、导出等功能
- 配置数据写入时间和同步时间字段处理
This commit is contained in:
2026-05-21 15:26:46 +08:00
parent 52cbc21088
commit baed852ff4
11 changed files with 1279 additions and 1 deletions

View File

@@ -428,6 +428,21 @@ public class SqlServerApiClient {
return executeSql("oracle", sql.toString(), params);
}
public ExecuteSqlResponse queryExcoilByInsdateRange(String startTime, String endTime) {
Map<String, Object> params = new java.util.HashMap<>();
StringBuilder sql = new StringBuilder("SELECT * FROM JXPLTCM.PLTCM_PDO_EXCOIL WHERE 1=1");
if (startTime != null && !startTime.trim().isEmpty()) {
sql.append(" AND INSDATE > TO_DATE(:startTime, 'YYYY-MM-DD HH24:MI:SS')");
params.put("startTime", startTime.trim());
}
if (endTime != null && !endTime.trim().isEmpty()) {
sql.append(" AND INSDATE <= TO_DATE(:endTime, 'YYYY-MM-DD HH24:MI:SS')");
params.put("endTime", endTime.trim());
}
sql.append(" ORDER BY INSDATE ASC");
return executeSql("oracle", sql.toString(), params);
}
public ExecuteSqlResponse queryExcoilList(int page, int pageSize) {
int endRow = page * pageSize;
int startRow = endRow - pageSize;

View File

@@ -161,6 +161,13 @@ public class SqlServerApiBusinessService {
return asRowList(client.queryExcoilByTimeRange(startTime, endTime));
}
/**
* 出口卷实绩列表(按数据写入时间),用于增量同步。
*/
public List<Map<String, Object>> getExcoilByInsdateRange(String startTime, String endTime) {
return asRowList(client.queryExcoilByInsdateRange(startTime, endTime));
}
/**
* 出口卷实绩列表(分页),来自 PLTCM_PDO_EXCOIL。
*/

View File

@@ -156,7 +156,7 @@ public class SqlServerApiController {
}
/**
* 出口卷实绩列表(按时间),来自 PLTCM_PDO_EXCOIL。
* 出口卷实绩列表(按下线时间),来自 PLTCM_PDO_EXCOIL。
* startTime / endTime 格式yyyy-MM-dd HH:mm:ss
*/
@GetMapping("/excoil/by-time")
@@ -166,6 +166,17 @@ public class SqlServerApiController {
return R.ok(businessService.getExcoilByTimeRange(startTime, endTime));
}
/**
* 出口卷实绩列表(按数据写入时间),用于增量同步。
* startTimeexclusive/ endTimeinclusive格式yyyy-MM-dd HH:mm:ss
*/
@GetMapping("/excoil/by-insdate")
public R<List<Map<String, Object>>> excoilByInsdate(
@RequestParam(required = false) String startTime,
@RequestParam(required = false) String endTime) {
return R.ok(businessService.getExcoilByInsdateRange(startTime, endTime));
}
/**
* 出口卷实绩列表(分页),来自 PLTCM_PDO_EXCOIL。
*/