From 8b53722f907a0723823060a7d6d55226d9acc2dc Mon Sep 17 00:00:00 2001 From: king Date: Mon, 30 Mar 2026 11:27:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E7=B3=BB=E7=BB=9F=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../job/OracleProcedureUpdateCoreJob.java | 53 +++++++++++++++++++ .../mapper/OracleProcedureMapper.java | 10 ++++ .../framework/OracleProcedureMapper.xml | 4 ++ 3 files changed, 67 insertions(+) create mode 100644 lidee-core/src/main/java/com/lideeyunji/core/framework/config/job/OracleProcedureUpdateCoreJob.java diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/config/job/OracleProcedureUpdateCoreJob.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/config/job/OracleProcedureUpdateCoreJob.java new file mode 100644 index 0000000..35948ae --- /dev/null +++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/config/job/OracleProcedureUpdateCoreJob.java @@ -0,0 +1,53 @@ +package com.lideeyunji.core.framework.config.job; + +import com.lideeyunji.core.framework.mapper.OracleProcedureMapper; +import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant; +import com.lideeyunji.tool.framework.quartz.core.handler.JobHandler; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * Oracle 存储过程调用定时任务 ,用于更新核心、高频的数据 + * 用于定时调用 Oracle 存储过程进行数据处理 + */ +@Slf4j +@Component("oracleProcedureUpdateCoreJob") +public class OracleProcedureUpdateCoreJob implements JobHandler { + + @Resource + private OracleProcedureMapper oracleProcedureMapper; + + @Override + public String execute(String param) throws Exception { + log.info("========== 开始执行 Oracle 存储过程定时任务 ,用于更新核心、高频的数据,参数:{} ==========", param); + + try { + callUpdateCore(); + log.info("========== Oracle 存储过程定时任务,用于更新核心、高频的数据 执行成功 =========="); + return "Oracle 存储过程定时任务,用于更新核心、高频的数据 执行成功"; + } catch (Exception e) { + log.error("========== Oracle 存储过程定时任务,用于更新核心、高频的数据 执行失败 ==========", e); + throw new RuntimeException("Oracle 存储过程,用于更新核心、高频的数据 调用失败:" + e.getMessage(), e); + } + } + + /** + * 调用简单存储过程 + */ + private void callUpdateCore() { + log.info("开始调用存储过程..."); + + Map params = new HashMap<>(); + params.put("result", new Object()); // 用于接收输出参数 + + oracleProcedureMapper.callUpdateCore(lideeYunJiBaseConstant.DS_ORACLE_GRYYBI); + + // 获取输出参数值 + Object result = params.get("result"); + log.info("存储过程执行结果:{}", result); + } +} diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/mapper/OracleProcedureMapper.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/mapper/OracleProcedureMapper.java index f1f60a9..159e97b 100644 --- a/lidee-core/src/main/java/com/lideeyunji/core/framework/mapper/OracleProcedureMapper.java +++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/mapper/OracleProcedureMapper.java @@ -24,4 +24,14 @@ public interface OracleProcedureMapper { @DataPermission(enable = false) void callAllProcedure(@Param("dataSourceType") String dataSourceType); + /** + * 调用 Oracle 存储过程 - 示例 + * + * @param dataSourceType 存储过程参数 + * @return 执行结果 + */ + @DS(value = "#dataSourceType") + @DataPermission(enable = false) + void callUpdateCore(@Param("dataSourceType") String dataSourceType); + } diff --git a/lidee-core/src/main/resources/mapper/framework/OracleProcedureMapper.xml b/lidee-core/src/main/resources/mapper/framework/OracleProcedureMapper.xml index 8ab23b8..452a6c7 100644 --- a/lidee-core/src/main/resources/mapper/framework/OracleProcedureMapper.xml +++ b/lidee-core/src/main/resources/mapper/framework/OracleProcedureMapper.xml @@ -7,4 +7,8 @@ {call P_ERP_DATA_NEW()} + +