[agent-pipeline] pipe-20260318044621-56k5 round-2

This commit is contained in:
DDD1542
2026-03-18 13:56:03 +09:00
parent 8e4791c57a
commit 351e57dd31
5 changed files with 136 additions and 4 deletions

View File

@@ -165,8 +165,20 @@ export class BatchSchedulerService {
executionLog = executionLogResponse.data;
// 실제 배치 실행 로직 (수동 실행과 동일한 로직 사용)
const result = await this.executeBatchMappings(config);
// 실행 유형에 따라 분기: node_flow면 노드 플로우 실행, 아니면 매핑 배치 실행
let result: {
totalRecords: number;
successRecords: number;
failedRecords: number;
};
if (
config.execution_type === "node_flow" &&
config.node_flow_id != null
) {
result = await this.executeNodeFlow(config);
} else {
result = await this.executeBatchMappings(config);
}
// 실행 로그 업데이트 (성공)
await BatchExecutionLogService.updateExecutionLog(executionLog.id, {
@@ -207,6 +219,50 @@ export class BatchSchedulerService {
}
}
/**
* 노드 플로우 실행 (execution_type === 'node_flow'일 때)
* node_flows 테이블의 플로우를 NodeFlowExecutionService로 실행하고 결과를 배치 로그 형식으로 반환
*/
private static async executeNodeFlow(config: any): Promise<{
totalRecords: number;
successRecords: number;
failedRecords: number;
}> {
const { NodeFlowExecutionService } = await import(
"./nodeFlowExecutionService"
);
// 플로우 존재 여부 확인
const flowCheck = await query<{ flow_id: number; flow_name: string }>(
"SELECT flow_id, flow_name FROM node_flows WHERE flow_id = $1",
[config.node_flow_id]
);
if (flowCheck.length === 0) {
throw new Error(
`노드 플로우를 찾을 수 없습니다 (flow_id: ${config.node_flow_id})`
);
}
const contextData: Record<string, any> = {
...(config.node_flow_context || {}),
_batchId: config.id,
_batchName: config.batch_name,
_companyCode: config.company_code,
_executedBy: "batch_system",
};
const flowResult = await NodeFlowExecutionService.executeFlow(
config.node_flow_id,
contextData
);
return {
totalRecords: flowResult.summary.total,
successRecords: flowResult.summary.success,
failedRecords: flowResult.summary.failed,
};
}
/**
* 배치 매핑 실행 (수동 실행과 동일한 로직)
*/