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 |   54 ++++++++++++++++++++++++++++++------------------------
 1 files changed, 30 insertions(+), 24 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 623c76e..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();
 
                 // 映射基础字段
@@ -97,11 +97,11 @@
                         case 7: entity.setVal7(val); break;
                         case 8: entity.setVal8(val); break;
                         case 9: entity.setVal9(val); break;
-                        case 10: entity.setVal11(val); break;
-                        case 11: entity.setVal12(val); break;
-                        case 12: entity.setVal13(val); break;
-                        case 13: entity.setVal14(val); break;
-                        case 14: entity.setVal2(val); break;
+                        case 10: entity.setVal10(val); break;
+                        case 11: entity.setVal11(val); break;
+                        case 12: entity.setVal12(val); break;
+                        case 13: entity.setVal13(val); break;
+                        case 14: entity.setVal14(val); break;
                         case 15: entity.setVal15(val); break;
                         case 16: entity.setVal16(val); break;
                         case 17: entity.setVal17(val); break;
@@ -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