From a01eec9f761ffcc11d42da0a82595e720427dd68 Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期二, 24 六月 2025 23:15:52 +0800 Subject: [PATCH] 望铁关口触发边界 --- ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/SyncEmsTask.java | 44 +++++++++++++++++++++++++------------------- 1 files changed, 25 insertions(+), 19 deletions(-) diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/SyncEmsTask.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/SyncEmsTask.java index 253c87d..64f38cd 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/SyncEmsTask.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/SyncEmsTask.java @@ -3,19 +3,17 @@ import com.iailab.module.ansteel.ems.entity.ByqlzAdsEntity; import com.iailab.module.ansteel.ems.service.ByqlzAdsService; import com.iailab.module.ansteel.sync.service.SyncLogService; -import com.iailab.module.model.api.mdk.MdkApi; -import com.iailab.module.model.api.mdk.dto.MdkScheduleReqDTO; -import com.iailab.module.model.api.mdk.dto.MdkScheduleRespDTO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; import java.sql.*; import java.text.SimpleDateFormat; -import java.time.format.DateTimeFormatter; -import java.util.*; -import java.util.Date; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; /** * 同步ems.byqlz_ads_wh_cl_jh01_byq表定时任务 @@ -35,6 +33,7 @@ private SyncLogService syncLogService; @Override + @Transactional(rollbackFor = Exception.class) public void run(String params) { logger.info("SyncEmsTask定时任务正在执行,参数为:{}", params); String remark = "同步成功"; @@ -49,20 +48,21 @@ String sql = "SELECT * FROM ems.BYQLZ_ADS_WH_CL_JH01_BYQ WHERE date_code = ?"; + Connection conn = null; + PreparedStatement pstmt = null; + ResultSet rs = null; try { - Connection conn = DriverManager.getConnection(URL, USER, PASSWORD); - PreparedStatement pstmt = conn.prepareStatement(sql); + conn = DriverManager.getConnection(URL, USER, PASSWORD); + pstmt = conn.prepareStatement(sql); // 设置参数 pstmt.setString(1, yearMonth); // 执行查询并处理结果 - ResultSet rs = pstmt.executeQuery(); - boolean colCount = rs.next(); - if(!colCount){ + rs = pstmt.executeQuery(); + if(!rs.isBeforeFirst()){ pstmt.setString(1, lastMonth); rs = pstmt.executeQuery(); - colCount = rs.next(); - if(!colCount){ + if(!rs.isBeforeFirst()){ pstmt.setString(1, upMonth); rs = pstmt.executeQuery(); remark = "上月数据为空,同步上上月数据成功"; @@ -71,7 +71,7 @@ } } byqlzAdsService.delete(yearMonth); - while (colCount) { + while (rs.next()) { ByqlzAdsEntity entity = new ByqlzAdsEntity(); // 映射基础字段 @@ -125,16 +125,22 @@ entity.setLoadTime(rs.getString("LOAD_TIME")); resultList.add(entity); } - - byqlzAdsService.save(resultList); - - syncLogService.save(remark); - // 输出结果 resultList.forEach(System.out::println); + byqlzAdsService.save(resultList); + syncLogService.save(remark); + resultList.clear(); } catch (SQLException e) { logger.error("SyncEmsTask运行异常"); e.printStackTrace(); + } finally { + try { + if (rs != null) rs.close(); // 先关闭结果集 + if (pstmt != null) pstmt.close(); // 再关闭语句 + if (conn != null) conn.close(); // 最后关闭连接 + } catch (SQLException e) { + e.printStackTrace(); + } } logger.info("SyncEmsTask运行完成"); } -- Gitblit v1.9.3