feat(webstatement): tambah ProcessProvinceDataJob untuk import data provinsi
Perubahan yang dilakukan: - Membuat job baru ProcessProvinceDataJob dengan referensi dari ProcessSectorDataJob. - Menggunakan model ProvinceCore untuk menyimpan data provinsi. - Mendukung format file ST.PROVINCE.csv dengan delimiter khusus tilde (~). - Menambahkan validasi untuk kolom: id, date_time, province, dan province_name. - Mengabaikan baris header pada file saat proses import. - Menggunakan database transaction untuk menjaga konsistensi data. - Menambahkan counter untuk memantau jumlah record yang dilewati (skipped). - Mengimplementasikan error handling dan logging yang detail. - Menggunakan updateOrCreate untuk mencegah duplikasi data. - Menambahkan method failed() untuk menangani kasus job failure. - Melakukan mapping field province ke code dan province_name ke name. - Melakukan validasi data wajib sebelum menyimpan ke database. Tujuan perubahan: - Memfasilitasi proses import data provinsi dari file eksternal secara otomatis dan aman. - Menjamin data yang masuk telah tervalidasi dan bebas duplikasi. - Menyediakan log dan feedback yang cukup saat terjadi kegagalan.
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Webstatement\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
@@ -6,7 +7,7 @@
|
||||
use Exception;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Log;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Modules\Webstatement\Jobs\{ProcessAccountDataJob,
|
||||
ProcessArrangementDataJob,
|
||||
ProcessAtmTransactionJob,
|
||||
@@ -22,7 +23,8 @@
|
||||
ProcessStmtNarrParamDataJob,
|
||||
ProcessTellerDataJob,
|
||||
ProcessTransactionDataJob,
|
||||
ProcessSectorDataJob};
|
||||
ProcessSectorDataJob,
|
||||
ProcessProvinceDataJob};
|
||||
|
||||
class MigrasiController extends Controller
|
||||
{
|
||||
@@ -42,7 +44,8 @@
|
||||
'atmTransaction' => ProcessAtmTransactionJob::class,
|
||||
'arrangement' => ProcessArrangementDataJob::class,
|
||||
'billDetail' => ProcessBillDetailDataJob::class,
|
||||
'sector' => ProcessSectorDataJob::class
|
||||
'sector' => ProcessSectorDataJob::class,
|
||||
'province' => ProcessProvinceDataJob::class
|
||||
];
|
||||
|
||||
private const PARAMETER_PROCESSES = [
|
||||
@@ -50,7 +53,8 @@
|
||||
'stmtNarrParam',
|
||||
'stmtNarrFormat',
|
||||
'ftTxnTypeCondition',
|
||||
'sector'
|
||||
'sector',
|
||||
'province'
|
||||
];
|
||||
|
||||
private const DATA_PROCESSES = [
|
||||
|
||||
Reference in New Issue
Block a user