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); } }