鞍钢鲅鱼圈能源管控系统后端代码
潘志宝
4 天以前 a01eec9f761ffcc11d42da0a82595e720427dd68
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运行完成");
    }