Files
webstatement/app
Daeng Deni Mardaeni 57463f2429 fix(webstatement): optimasi proses pengelolaan statement dan perbaikan logika pemrosesan data
- Menghilangkan pengecekan data yang sebelumnya diproses dengan memindahkan logika perbandingan jumlah data ke dalam fungsi `processStatementData`.
- Menambahkan beberapa fungsi baru untuk memisahkan logika ke dalam unit yang lebih kecil:
  1. `getTotalEntryCount`: Menghitung total jumlah data berdasarkan kriteria akun dan periode.
  2. `getExistingProcessedCount`: Menghitung jumlah data yang sudah diproses.
  3. `deleteExistingProcessedData`: Menghapus data hasil proses sebelumnya jika ada ketidaksesuaian jumlah.
  4. `processAndSaveStatementEntries`: Memproses dan menyimpan data dalam batch untuk efisiensi memori.
  5. `prepareProcessedData`: Menyiapkan array data hasil pemrosesan sebelum disimpan ke database.
  6. `formatTransactionDate`: Memformat tanggal transaksi dengan logika fallback pada error parsing.
  7. `formatActualDate`: Memformat tanggal aktual dengan fallback dan logging untuk error parsing.
- Memperbaiki logika pemrosesan data statement:
  - Menambahkan validasi jumlah data yang diproses untuk menghindari duplikasi atau penghapusan data yang tidak semestinya.
  - Menghapus semua data hasil proses sebelumnya untuk satu kombinasi akun dan periode hanya jika terjadi ketidaksesuaian jumlah data.
- Menggunakan chunk batch untuk memproses data dengan lebih efisien, mengurangi penggunaan memori, dan meningkatkan kestabilan aplikasi.
- Menyempurnakan logging untuk memberikan informasi lebih rinci terkait proses pemrosesan data dan mengantisipasi error.
- Mengubah format data waktu pada proses narasi dengan fallback yang lebih aman guna mencegah kegagalan parsing.
- Menambahkan penghapusan data lama sebelum proses penyimpanan ulang guna memastikan konsistensi.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-23 21:28:39 +07:00
..