update migration file, dan laporan
This commit is contained in:
@@ -12,17 +12,17 @@ use Modules\Lpj\Models\Permohonan;
|
||||
|
||||
class MigrationPembandingSeeder extends Seeder
|
||||
{
|
||||
protected $errorLogFile = __DIR__ . '/csv/inspeksi/mig_penilai_pembanding_error.csv';
|
||||
protected $errorLogFile = __DIR__ . '/csv/inspeksi/mig_pembanding_2025_error.csv';
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
// Path ke file csv
|
||||
$filePath = realpath(__DIR__ . '/csv/inspeksi/mig_penilai_pembanding.csv');
|
||||
$filePath = realpath(__DIR__ . '/csv/inspeksi/mig_pembanding_2025.csv');
|
||||
|
||||
if (!$filePath) {
|
||||
Log::error('File csv tidak ditemukan: ' . __DIR__ . '/csv/inspeksi/mig_penilai_pembanding.csv');
|
||||
Log::error('File csv tidak ditemukan: ' . __DIR__ . '/csv/inspeksi/mig_pembanding_2025.csv');
|
||||
$this->command->error('File csv tidak ditemukan.');
|
||||
return;
|
||||
}
|
||||
@@ -85,6 +85,8 @@ class MigrationPembandingSeeder extends Seeder
|
||||
// Kelompokkan berdasarkan mig_nomor_lpj
|
||||
$groupedRows = $this->groupRowsByJaminan($rows);
|
||||
|
||||
print_r($groupedRows);
|
||||
|
||||
foreach ($groupedRows as $nomorLpj => $groupRows) {
|
||||
try {
|
||||
// Dapatkan info permohonan untuk update inspeksi
|
||||
@@ -99,6 +101,8 @@ class MigrationPembandingSeeder extends Seeder
|
||||
// Bangun JSON data pembanding
|
||||
$pembandingJson = $this->checkPembanding($groupRows);
|
||||
|
||||
print_r($pembandingJson);
|
||||
|
||||
// Update ke tabel inspeksi
|
||||
|
||||
// print_r($pembandingJson);
|
||||
@@ -119,7 +123,8 @@ class MigrationPembandingSeeder extends Seeder
|
||||
}
|
||||
}
|
||||
}
|
||||
private function groupRowsByJaminan(array $rows): array {
|
||||
private function groupRowsByJaminan(array $rows): array
|
||||
{
|
||||
$grouped = [];
|
||||
|
||||
foreach ($rows as $row) {
|
||||
@@ -140,20 +145,16 @@ class MigrationPembandingSeeder extends Seeder
|
||||
foreach ($rows as $row) {
|
||||
// Pastikan kolom penting tersedia
|
||||
$urutan = (int)($row['mig_urutan'] ?? 999);
|
||||
$sumber = trim($row['mig_keterangan'] ?? '');
|
||||
$pembanding = trim($row['mig_pembanding'] ?? '');
|
||||
$linkGambar = trim($row['mig_path'] ?? '');
|
||||
|
||||
if (empty($pembanding) || empty($linkGambar)) {
|
||||
// CUKUP VALIDASI PEMBANDING SAJA
|
||||
if (empty($pembanding)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
$pembandingList[] = [
|
||||
'urutan' => $urutan,
|
||||
'sumber' => $sumber,
|
||||
'keterangan' => $pembanding,
|
||||
'foto_objek' => $linkGambar
|
||||
];
|
||||
}
|
||||
|
||||
@@ -172,53 +173,53 @@ class MigrationPembandingSeeder extends Seeder
|
||||
'data_pembanding' => $finalPembanding
|
||||
], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
|
||||
}
|
||||
private function getNomorRegistrasiPermohonan($nomor_jaminan_id, array &$cache)
|
||||
{
|
||||
if (isset($cache[$nomor_jaminan_id])) {
|
||||
return $cache[$nomor_jaminan_id];
|
||||
}
|
||||
|
||||
$permohonan = Permohonan::where('nomor_lpj', $nomor_jaminan_id)->first();
|
||||
|
||||
if (!$permohonan) {
|
||||
$cache[$nomor_jaminan_id] = null;
|
||||
return null;
|
||||
}
|
||||
|
||||
$dokumenJaminan = DokumenJaminan::where('permohonan_id', $permohonan->id)->first();
|
||||
|
||||
$result = [
|
||||
'id' => $permohonan->id,
|
||||
'dokument_id' => $dokumenJaminan ? $dokumenJaminan->id : null
|
||||
];
|
||||
|
||||
$cache[$nomor_jaminan_id] = $result;
|
||||
|
||||
return $result;
|
||||
private function getNomorRegistrasiPermohonan($nomor_jaminan_id, array &$cache)
|
||||
{
|
||||
if (isset($cache[$nomor_jaminan_id])) {
|
||||
return $cache[$nomor_jaminan_id];
|
||||
}
|
||||
|
||||
private function initializeErrorLog()
|
||||
{
|
||||
$file = $this->errorLogFile;
|
||||
$permohonan = Permohonan::where('nomor_lpj', $nomor_jaminan_id)->first();
|
||||
|
||||
// Hapus file lama jika ada
|
||||
if (file_exists($file)) {
|
||||
unlink($file);
|
||||
}
|
||||
|
||||
// Buat file baru dengan header
|
||||
$handle = fopen($file, 'w');
|
||||
fputcsv($handle, ['mig_mst_jaminan_nomor_jaminan', 'Error']);
|
||||
fclose($handle);
|
||||
if (!$permohonan) {
|
||||
$cache[$nomor_jaminan_id] = null;
|
||||
return null;
|
||||
}
|
||||
|
||||
private function logError( $nomorJaminan, string $message)
|
||||
{
|
||||
Log::error("Error migrasi permohonan [$nomorJaminan]: $message");
|
||||
$dokumenJaminan = DokumenJaminan::where('permohonan_id', $permohonan->id)->first();
|
||||
|
||||
// Tulis ke file error
|
||||
$handle = fopen($this->errorLogFile, 'a');
|
||||
fputcsv($handle, [$nomorJaminan, $message]);
|
||||
$result = [
|
||||
'id' => $permohonan->id,
|
||||
'dokument_id' => $dokumenJaminan ? $dokumenJaminan->id : null
|
||||
];
|
||||
|
||||
$cache[$nomor_jaminan_id] = $result;
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
private function initializeErrorLog()
|
||||
{
|
||||
$file = $this->errorLogFile;
|
||||
|
||||
// Hapus file lama jika ada
|
||||
if (file_exists($file)) {
|
||||
unlink($file);
|
||||
}
|
||||
|
||||
// Buat file baru dengan header
|
||||
$handle = fopen($file, 'w');
|
||||
fputcsv($handle, ['mig_mst_jaminan_nomor_jaminan', 'Error']);
|
||||
fclose($handle);
|
||||
}
|
||||
|
||||
private function logError($nomorJaminan, string $message)
|
||||
{
|
||||
Log::error("Error migrasi permohonan [$nomorJaminan]: $message");
|
||||
|
||||
// Tulis ke file error
|
||||
$handle = fopen($this->errorLogFile, 'a');
|
||||
fputcsv($handle, [$nomorJaminan, $message]);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user