2 Commits

Author SHA1 Message Date
king
564e119bc3 Merge branch 'refs/heads/dev_js_20260325' 2026-03-27 09:11:01 +08:00
king
5c998db1ed 新增 定时任务 2026-03-26 17:49:34 +08:00
3 changed files with 92 additions and 0 deletions

View File

@@ -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<String, Object> params = new HashMap<>();
params.put("result", new Object()); // 用于接收输出参数
oracleProcedureMapper.callAllProcedure(lideeYunJiBaseConstant.DS_ORACLE_GRYYBI);
// 获取输出参数值
Object result = params.get("result");
log.info("存储过程执行结果:{}", result);
}
}

View File

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

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lideeyunji.core.framework.mapper.OracleProcedureMapper">
<!-- 调用示例存储过程 -->
<select id="callAllProcedure" statementType="CALLABLE" >
{call P_ERP_DATA_NEW()}
</select>
</mapper>