✨ Add Compliance History Value Change Manage Step
This commit is contained in:
부모
020f16035b
커밋
1d2a3c53c8
@ -26,6 +26,12 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.web.reactive.function.client.WebClient;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneOffset;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
@Configuration
|
||||
public class ComplianceImportRangeJobConfig extends BaseMultiStepJobConfig<ComplianceDto, ComplianceEntity> {
|
||||
@ -76,7 +82,8 @@ public class ComplianceImportRangeJobConfig extends BaseMultiStepJobConfig<Compl
|
||||
return jobBuilder
|
||||
.start(complianceImportRangeStep()) // 1단계 실행
|
||||
.next(currentComplianceUpdateStep()) // 2단계 실행 (1단계 실패 시 실행 안 됨)
|
||||
.next(complianceLastExecutionUpdateStep()) // 3단계: 모두 완료 시, BATCH_LAST_EXECUTION 마지막 성공일자 업데이트
|
||||
.next(complianceHistoryValueChangeManageStep()) // 3단계 실행 (2단계 실패 시 실행 안 됨)
|
||||
.next(complianceLastExecutionUpdateStep()) // 4단계: 모두 완료 시, BATCH_LAST_EXECUTION 마지막 성공일자 업데이트
|
||||
.build();
|
||||
}
|
||||
|
||||
@ -132,7 +139,44 @@ public class ComplianceImportRangeJobConfig extends BaseMultiStepJobConfig<Compl
|
||||
}
|
||||
|
||||
/**
|
||||
* 3단계: 모든 스텝 성공 시 배치 실행 로그(날짜) 업데이트
|
||||
* 3단계: Compliance History Value Change 관리
|
||||
*/
|
||||
@Bean
|
||||
public Tasklet complianceHistoryValueChangeManageTasklet() {
|
||||
return (contribution, chunkContext) -> {
|
||||
log.info(">>>>> Compliance History Value Change Manage 프로시저 호출 시작");
|
||||
|
||||
// 1. 입력 포맷 및 타겟 포맷 정의
|
||||
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SS'Z'");
|
||||
DateTimeFormatter targetFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
|
||||
|
||||
Map<String, String> params = batchDateService.getRiskComplianceApiDateParams(getApiKey());
|
||||
|
||||
// 2. String -> LocalDateTime (또는 OffsetDateTime) -> String 변환
|
||||
String rawFromDate = params.get("fromDate");
|
||||
String rawToDate = params.get("toDate");
|
||||
|
||||
String startDt = LocalDateTime.parse(rawFromDate, inputFormatter).format(targetFormatter);
|
||||
String endDt = LocalDateTime.parse(rawToDate, inputFormatter).format(targetFormatter);
|
||||
|
||||
log.info("Compliance History Value Change Manage 프로시저 변수 : 시작일: {}, 종료일: {}", startDt, endDt);
|
||||
|
||||
// 3. 프로시저 호출 (SQL 인젝션 방지를 위해 Prepared Statement 방식 권장)
|
||||
jdbcTemplate.execute(String.format("CALL snp.sp_sync_compliance_history('%s', '%s')", startDt, endDt));
|
||||
|
||||
log.info(">>>>> Compliance History Value Change Manage 프로시저 호출 완료");
|
||||
return RepeatStatus.FINISHED;
|
||||
};
|
||||
}
|
||||
@Bean(name = "ComplianceHistoryValueChangeManageStep")
|
||||
public Step complianceHistoryValueChangeManageStep() {
|
||||
return new StepBuilder("ComplianceHistoryValueChangeManageStep", jobRepository)
|
||||
.tasklet(complianceHistoryValueChangeManageTasklet(), transactionManager)
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 4단계: 모든 스텝 성공 시 배치 실행 로그(날짜) 업데이트
|
||||
*/
|
||||
@Bean
|
||||
public Tasklet complianceLastExecutionUpdateTasklet() {
|
||||
|
||||
불러오는 중...
Reference in New Issue
Block a user