鞍钢鲅鱼圈能源管控系统后端代码
潘志宝
9 天以前 a820fdb9c9f648f171f73dc55b1a4f2a055ead29
Merge remote-tracking branch 'origin/master'
已修改4个文件
已添加5个文件
336 ■■■■■ 文件已修改
ansteel-biz/src/main/java/com/iailab/module/ansteel/ems/dao/ByqlzAdsDao.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/ems/entity/ByqlzAdsEntity.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/ems/service/ByqlzAdsService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/ems/service/impl/ByqlzAdsServiceImpl.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/SyncEmsTask.java 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/sync/dao/SyncLogDao.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/sync/entity/SyncLogEntity.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/sync/service/SyncLogService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/sync/service/impl/SyncLogServiceImpl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/ems/dao/ByqlzAdsDao.java
对比新文件
@@ -0,0 +1,15 @@
package com.iailab.module.ansteel.ems.dao;
import com.iailab.framework.common.dao.BaseDao;
import com.iailab.module.ansteel.ems.entity.ByqlzAdsEntity;
import org.apache.ibatis.annotations.Mapper;
/**
 * @author lirm
 * @Description
 * @createTime 2025年06月18日
 */
@Mapper
public interface ByqlzAdsDao extends BaseDao<ByqlzAdsEntity> {
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/ems/entity/ByqlzAdsEntity.java
对比新文件
@@ -0,0 +1,64 @@
package com.iailab.module.ansteel.ems.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.util.UUID;
/**
 * @author lirm
 * @Description
 * @createTime 2025年06月18日
 */
@Data
@TableName("byqlz_ads_wh_cl_jh01_byq")
public class ByqlzAdsEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(type = IdType.ASSIGN_UUID)
    private String recId;          // 分区键
    private String recCreateTime;  // 记录创建时刻
    private String recCreator;     // 记录创建人
    private String recReviseTime;  // 记录修改时刻
    private String recRevisor;     // 记录修改人
    private String dateCode;       // 日期编码
    private String mscLine;        // 产线
    private String indexCode;      // 指标编码
    private String monthlyPlat;    // 月计划产量
    private String val1;           // 1日计划产量
    private String val2;           // 2日计划产量
    private String val3;           // 3日计划产量
    private String val4;           // 4日计划产量
    private String val5;           // 5日计划产量
    private String val6;           // 6日计划产量
    private String val7;           // 7日计划产量
    private String val8;           // 8日计划产量
    private String val9;           // 9日计划产量
    private String val10;          // 10日计划产量
    private String val11;          // 11日计划产量
    private String val12;          // 12日计划产量
    private String val13;          // 13日计划产量
    private String val14;          // 14日计划产量
    private String val15;          // 15日计划产量
    private String val16;          // 16日计划产量
    private String val17;          // 17日计划产量
    private String val18;          // 18日计划产量
    private String val19;          // 19日计划产量
    private String val20;          // 20日计划产量
    private String val21;          // 21日计划产量
    private String val22;          // 22日计划产量
    private String val23;          // 23日计划产量
    private String val24;          // 24日计划产量
    private String val25;          // 25日计划产量
    private String val26;          // 26日计划产量
    private String val27;          // 27日计划产量
    private String val28;          // 28日计划产量
    private String val29;          // 29日计划产量
    private String val30;          // 30日计划产量
    private String val31;          // 31日计划产量
    private String loadTime;       // 记录程序生成时刻
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/ems/service/ByqlzAdsService.java
对比新文件
@@ -0,0 +1,18 @@
package com.iailab.module.ansteel.ems.service;
import com.iailab.module.ansteel.ems.entity.ByqlzAdsEntity;
import java.util.List;
import java.util.Map;
/**
 * @author lirm
 * @Description
 * @createTime 2025年06月18日
 */
public interface ByqlzAdsService {
    void delete(String yearMonth);
    void save(List<ByqlzAdsEntity> resultList);
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/ems/service/impl/ByqlzAdsServiceImpl.java
对比新文件
@@ -0,0 +1,37 @@
package com.iailab.module.ansteel.ems.service.impl;
import com.iailab.module.ansteel.ems.dao.ByqlzAdsDao;
import com.iailab.module.ansteel.ems.entity.ByqlzAdsEntity;
import com.iailab.module.ansteel.ems.service.ByqlzAdsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * @author lirm
 * @Description
 * @createTime 2025年06月18日
 */
@Slf4j
@Service
public class ByqlzAdsServiceImpl implements ByqlzAdsService {
    @Resource
    private ByqlzAdsDao gasPredConfDao;
    @Override
    public void delete(String yearMonth) {
        Map<String,Object> map = new HashMap<>();
        map.put("date_code",yearMonth);
        gasPredConfDao.deleteByMap(map);
    }
    @Override
    public void save(List<ByqlzAdsEntity> resultList) {
        gasPredConfDao.insert(resultList);
    }
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/SyncEmsTask.java
对比新文件
@@ -0,0 +1,144 @@
package com.iailab.module.ansteel.job.task;
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 java.sql.*;
import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.Date;
/**
 * 同步ems.byqlz_ads_wh_cl_jh01_byq表定时任务
 */
@Component("syncEmsTask")
public class SyncEmsTask implements ITask {
    private Logger logger = LoggerFactory.getLogger(getClass());
    private static final String URL = "jdbc:oracle:thin:@//10.50.37.36:1521/ems";
    private static final String USER = "byqdg";
    private static final String PASSWORD = "ByqnyEn_0306";
    @Autowired
    private ByqlzAdsService byqlzAdsService;
    @Autowired
    private SyncLogService syncLogService;
    @Override
    public void run(String params) {
        logger.info("SyncEmsTask定时任务正在执行,参数为:{}", params);
        String remark = "同步成功";
        List<ByqlzAdsEntity> resultList = new ArrayList<>();
        Calendar cal = Calendar.getInstance();
        String currentDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(cal.getTime());//当前日期
        String yearMonth = new SimpleDateFormat("yyyyMM").format(cal.getTime());//当前年月
        cal.add(Calendar.MONTH, -1);
        String lastMonth = new SimpleDateFormat("yyyyMM").format(cal.getTime());//上月年月
        cal.add(Calendar.MONTH, -1);
        String upMonth = new SimpleDateFormat("yyyyMM").format(cal.getTime());//上上月年月
        String sql = "SELECT * FROM ems.BYQLZ_ADS_WH_CL_JH01_BYQ WHERE date_code = ?";
        try {
            Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
            PreparedStatement pstmt = conn.prepareStatement(sql);
            // 设置参数
            pstmt.setString(1, yearMonth);
            // 执行查询并处理结果
            ResultSet rs = pstmt.executeQuery();
            ResultSetMetaData meta = rs.getMetaData();
            int colCount = meta.getColumnCount();
            if(colCount == 0){
                pstmt.setString(1, lastMonth);
                meta = rs.getMetaData();
                rs = pstmt.executeQuery();
                colCount = meta.getColumnCount();
                if(colCount == 0){
                    pstmt.setString(1, upMonth);
                    rs = pstmt.executeQuery();
                    remark = "上月数据为空,同步上上月数据成功";
                }else{
                    remark = "本月数据为空,同步上月数据成功";
                }
            }
            byqlzAdsService.delete(yearMonth);
            while (rs.next()) {
                ByqlzAdsEntity entity = new ByqlzAdsEntity();
                // 映射基础字段
                entity.setRecCreateTime(currentDate);
                entity.setRecCreator(rs.getString("REC_CREATOR"));
                entity.setRecReviseTime(rs.getString("REC_REVISE_TIME"));
                entity.setRecRevisor(rs.getString("REC_REVISOR"));
                entity.setDateCode(yearMonth);
                entity.setMscLine(rs.getString("MSC_LINE"));
                entity.setIndexCode(rs.getString("INDEX_CODE"));
                entity.setMonthlyPlat(rs.getString("MONTHLY_PLAT"));
                // 映射每日产量字段
                for (int i = 1; i <= 31; i++) {
                    String val = rs.getString("VAL" + i);
                    switch (i) {
                        case 1: entity.setVal1(val); break;
                        case 2: entity.setVal2(val); break;
                        case 3: entity.setVal3(val); break;
                        case 4: entity.setVal4(val); break;
                        case 5: entity.setVal5(val); break;
                        case 6: entity.setVal6(val); break;
                        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 15: entity.setVal15(val); break;
                        case 16: entity.setVal16(val); break;
                        case 17: entity.setVal17(val); break;
                        case 18: entity.setVal18(val); break;
                        case 19: entity.setVal19(val); break;
                        case 20: entity.setVal20(val); break;
                        case 21: entity.setVal21(val); break;
                        case 22: entity.setVal22(val); break;
                        case 23: entity.setVal23(val); break;
                        case 24: entity.setVal24(val); break;
                        case 25: entity.setVal25(val); break;
                        case 26: entity.setVal26(val); break;
                        case 27: entity.setVal27(val); break;
                        case 28: entity.setVal28(val); break;
                        case 29: entity.setVal29(val); break;
                        case 30: entity.setVal30(val); break;
                        case 31: entity.setVal31(val); break;
                    }
                }
                entity.setLoadTime(currentDate);
                resultList.add(entity);
            }
            byqlzAdsService.save(resultList);
            syncLogService.save(remark);
            // 输出结果
            resultList.forEach(System.out::println);
        } catch (SQLException e) {
            logger.error("SyncEmsTask运行异常");
            e.printStackTrace();
        }
        logger.info("SyncEmsTask运行完成");
    }
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/sync/dao/SyncLogDao.java
@@ -1,9 +1,14 @@
package com.iailab.module.ansteel.sync.dao;
import com.iailab.framework.common.dao.BaseDao;
import com.iailab.module.ansteel.sync.entity.SyncLogEntity;
import org.apache.ibatis.annotations.Mapper;
/**
 * @author PanZhibao
 * @Description
 * @createTime 2025年06月18日
 */
public interface SyncLogDao {
@Mapper
public interface SyncLogDao extends BaseDao<SyncLogEntity> {
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/sync/entity/SyncLogEntity.java
@@ -1,9 +1,26 @@
package com.iailab.module.ansteel.sync.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @author PanZhibao
 * @Description
 * @createTime 2025年06月18日
 */
public class SyncLogEntity {
@Data
@TableName("t_sync_log")
public class SyncLogEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;
    private String tableName;
    private String remark;
    private Date createDate;
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/sync/service/SyncLogService.java
@@ -1,9 +1,11 @@
package com.iailab.module.ansteel.sync.service;
/**
 * @author PanZhibao
 * @author lirm
 * @Description
 * @createTime 2025年06月18日
 */
public class SyncLogService {
}
public interface SyncLogService {
    void save(String remark);
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/sync/service/impl/SyncLogServiceImpl.java
@@ -1,9 +1,31 @@
package com.iailab.module.ansteel.sync.service.impl;
import com.iailab.module.ansteel.sync.dao.SyncLogDao;
import com.iailab.module.ansteel.sync.entity.SyncLogEntity;
import com.iailab.module.ansteel.sync.service.SyncLogService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
/**
 * @author PanZhibao
 * @Description
 * @createTime 2025年06月18日
 */
public class SyncLogServiceImpl {
@Slf4j
@Service
public class SyncLogServiceImpl implements SyncLogService {
    @Resource
    private SyncLogDao syncLogDao;
    @Override
    public void save(String remark) {
        SyncLogEntity syncLogEntity = new SyncLogEntity();
        syncLogEntity.setTableName("t_sync_log");
        syncLogEntity.setRemark(remark);
        syncLogEntity.setCreateDate(new Date());
        syncLogDao.insert(syncLogEntity);
    }
}