feat(webstatement): support batch processing for export statement jobs

- Ubah data menjadi array untuk memungkinkan pemrosesan batch.
- Tambahkan loop untuk memproses setiap data entry dan mendispatch job secara individual.
- Simpan job id dari setiap job yang didispatch ke array `jobIds`.
- Update respons JSON untuk mencantumkan daftar job yang telah didispatch:
  - Tambahkan informasi `job_id`, `account_number`, `period`, dan `file_name` untuk setiap job.
- Memperbaiki pesan respons agar sesuai dengan perubahan proses yang mendukung banyak job.
This commit is contained in:
daengdeni
2025-05-22 11:55:32 +07:00
parent 04f6f02702
commit eab14ff1e1

View File

@@ -21,18 +21,39 @@
*/
public function index()
{
$account_number = '1080425781';
$period = '20250512';
$saldo = '23984352604';
$data = [[
'account_number' => '1080425781',
'period' => '2025012',
'saldo' => '23984352604'
],[
'account_number' => '1080425781',
'period' => '2025013',
'saldo' => '13984352604'
]];
// Dispatch the job to export the statement
ExportStatementJob::dispatch($account_number, $period, $saldo);
$jobIds = [];
// Process each data entry
foreach ($data as $entry) {
// Dispatch job for each entry
$job = new ExportStatementJob(
$entry['account_number'],
$entry['period'],
$entry['saldo']
);
$jobIds[] = app(Dispatcher::class)->dispatch($job);
}
return response()->json([
'message' => 'Statement export job has been queued',
'account_number' => $account_number,
'period' => $period,
'file_name' => "{$account_number}_{$period}.csv"
'message' => 'Statement export jobs have been queued',
'jobs' => array_map(function($index, $jobId) use ($data) {
return [
'job_id' => $jobId,
'account_number' => $data[$index]['account_number'],
'period' => $data[$index]['period'],
'file_name' => "{$data[$index]['account_number']}_{$data[$index]['period']}.csv"
];
}, array_keys($jobIds), $jobIds)
]);
}