feat(webstatement): tambahkan fitur schedule dan console command untuk migrasi dan ekspor data harian

- Menambahkan dua console command baru:
  1. `webstatement:process-daily-migration` untuk memproses migrasi data harian.
  2. `webstatement:export-statements` untuk mengekspor laporan harian.

- Mendefinisikan command `webstatement:process-daily-migration`:
  - Menggunakan `MigrasiController` untuk memproses data migrasi.
  - Menangkap error selama proses migrasi dan memberikan output informasi status.

- Mendefinisikan command `webstatement:export-statements`:
  - Menggunakan `WebstatementController` untuk memproses ekspor laporan harian.
  - Memberikan informasi terkait jumlah job ekspor yang berhasil di-queue dan menangkap error selama proses.

- Menambahkan schedule untuk kedua command:
  1. `webstatement:process-daily-migration` dijalankan setiap hari pukul 09:00 dan log aktivitas disimpan di `daily-migration.log`.
  2. `webstatement:export-statements` dijalankan setiap hari pukul 09:30 dan log aktivitas disimpan di `statement-export.log`.

- Melengkapi `WebstatementServiceProvider` dengan pendaftaran command dan konfigurasi jadwal baru.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
This commit is contained in:
Daeng Deni Mardaeni
2025-05-24 16:12:33 +07:00
parent 29ed72ad8b
commit b894a2c9c4
3 changed files with 116 additions and 1 deletions

View File

@@ -5,8 +5,10 @@ namespace Modules\Webstatement\Providers;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;
use Modules\Webstatement\Console\ExportDailyStatements;
use Modules\Webstatement\Console\GenerateBiayakartuCommand;
use Modules\Webstatement\Console\GenerateBiayaKartuCsvCommand;
use Modules\Webstatement\Console\ProcessDailyMigration;
use Modules\Webstatement\Jobs\UpdateAtmCardBranchCurrencyJob;
use Nwidart\Modules\Traits\PathNamespace;
@@ -52,7 +54,9 @@ class WebstatementServiceProvider extends ServiceProvider
{
$this->commands([
GenerateBiayakartuCommand::class,
GenerateBiayaKartuCsvCommand::class
GenerateBiayaKartuCsvCommand::class,
ProcessDailyMigration::class,
ExportDailyStatements::class,
]);
}
@@ -82,6 +86,19 @@ class WebstatementServiceProvider extends ServiceProvider
->appendOutputTo(storage_path('logs/biaya-kartu-csv-scheduler.log'));
// Schedule the daily migration process to run at 1:00 AM (from previous task)
$schedule->command('webstatement:process-daily-migration')
->dailyAt('09:00')
->withoutOverlapping()
->appendOutputTo(storage_path('logs/daily-migration.log'));
// Schedule the statement export to run at 2:00 AM (after migration is likely complete)
$schedule->command('webstatement:export-statements')
->dailyAt('09:30')
->withoutOverlapping()
->appendOutputTo(storage_path('logs/statement-export.log'));
}
/**