feat(webstatement): tingkatkan validasi dan logging pada ProcessStmtEntryDataJob
- **Validasi Data:** - Menambahkan validasi untuk memastikan bahwa setiap `entryData` adalah array dan memiliki properti `stmt_entry_id`. - Log peringatan ditambahkan untuk mendeteksi struktur data yang tidak valid. - **Perbaikan Logging:** - Logging ditingkatkan untuk mencatat data invalid yang ditemukan selama proses. - Menambahkan log peringatan dengan struktur data detail saat validasi gagal. - **Penghapusan Nested Loop:** - Memperbaiki logika iterasi dengan menghapus nested loop dan langsung memproses tiap elemen `entryBatch`. - **Penghitungan Kesalahan:** - Menambahkan penghitungan `errorCount` untuk melacak jumlah data yang mengalami validasi gagal. Perubahan ini meningkatkan keandalan proses dengan validasi tambahan, mencegah error akibat struktur data tidak valid, serta memberikan informasi log yang lebih rinci. Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
This commit is contained in:
@@ -1,7 +1,4 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
namespace Modules\Webstatement\Jobs;
|
||||
|
||||
use Exception;
|
||||
@@ -13,6 +10,7 @@ use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Modules\Webstatement\Models\StmtEntry;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class ProcessStmtEntryDataJob implements ShouldQueue
|
||||
{
|
||||
@@ -201,9 +199,10 @@ use Illuminate\Support\Facades\DB;
|
||||
if (!empty($this->entryBatch)) {
|
||||
$totalProcessed = 0;
|
||||
|
||||
// Process in smaller chunks for better memory management
|
||||
foreach ($this->entryBatch as $entryChunk) {
|
||||
foreach ($entryChunk as $entryData) {
|
||||
// Process each entry data directly (tidak ada nested array)
|
||||
foreach ($this->entryBatch as $entryData) {
|
||||
// Validasi bahwa entryData adalah array dan memiliki stmt_entry_id
|
||||
if (is_array($entryData) && isset($entryData['stmt_entry_id'])) {
|
||||
// Gunakan updateOrCreate untuk menghindari duplicate key error
|
||||
StmtEntry::updateOrCreate(
|
||||
[
|
||||
@@ -213,6 +212,9 @@ use Illuminate\Support\Facades\DB;
|
||||
);
|
||||
|
||||
$totalProcessed++;
|
||||
} else {
|
||||
Log::warning('Invalid entry data structure', ['data' => $entryData]);
|
||||
$this->errorCount++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user