diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/config/job/OracleProcedureJob.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/config/job/OracleProcedureJob.java new file mode 100644 index 0000000..d06c589 --- /dev/null +++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/config/job/OracleProcedureJob.java @@ -0,0 +1,55 @@ +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.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.HashMap; +import java.util.Map; + +/** + * Oracle 存储过程调用定时任务 + * 用于定时调用 Oracle 存储过程进行数据处理 + */ +@Slf4j +@Component("oracleProcedureJob") +public class OracleProcedureJob implements JobHandler { + + @Resource + private OracleProcedureMapper oracleProcedureMapper; + + @Override + public String execute(String param) throws Exception { + log.info("========== 开始执行 Oracle 存储过程定时任务,参数:{} ==========", param); + + try { + callAllProcedure(); + log.info("========== Oracle 存储过程定时任务执行成功 =========="); + return "Oracle 存储过程定时任务执行成功"; + } catch (Exception e) { + log.error("========== Oracle 存储过程定时任务执行失败 ==========", e); + throw new RuntimeException("Oracle 存储过程调用失败:" + e.getMessage(), e); + } + } + + /** + * 调用简单存储过程 + */ + private void callAllProcedure() { + log.info("开始调用存储过程..."); + + Map params = new HashMap<>(); + params.put("result", new Object()); // 用于接收输出参数 + + oracleProcedureMapper.callAllProcedure(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 new file mode 100644 index 0000000..f1f60a9 --- /dev/null +++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/mapper/OracleProcedureMapper.java @@ -0,0 +1,27 @@ +package com.lideeyunji.core.framework.mapper; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.lideeyunji.tool.framework.permission.core.annotation.DataPermission; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Map; + +/** + * Oracle 存储过程调用 Mapper + */ +@Mapper +public interface OracleProcedureMapper { + + /** + * 调用 Oracle 存储过程 - 示例 + * + * @param dataSourceType 存储过程参数 + * @return 执行结果 + */ + @DS(value = "#dataSourceType") + @DataPermission(enable = false) + void callAllProcedure(@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 new file mode 100644 index 0000000..8ab23b8 --- /dev/null +++ b/lidee-core/src/main/resources/mapper/framework/OracleProcedureMapper.xml @@ -0,0 +1,10 @@ + + + + + + + +