|
@@ -5,35 +5,7 @@ const handleError = require('../../utils/v1/handleError')
|
|
|
const response = require('../../utils/responseHandler')
|
|
const response = require('../../utils/responseHandler')
|
|
|
const coba = require('../../utils/coba')
|
|
const coba = require('../../utils/coba')
|
|
|
|
|
|
|
|
-exports.pengajuan = handleError(async (req, res) => {
|
|
|
|
|
- const [keberatan, banding] = await Promise.all([
|
|
|
|
|
- (() =>
|
|
|
|
|
- sanksiModel.find({
|
|
|
|
|
- ['pengajuan.keberatan']: { $ne: null, $exists: true },
|
|
|
|
|
- is_pengajuan_keberatan: { $eq: null, $exists: false }
|
|
|
|
|
- }))(),
|
|
|
|
|
- (() =>
|
|
|
|
|
- sanksiModel.find({
|
|
|
|
|
- ['jawaban.keberatan']: { $ne: null, $exists: true },
|
|
|
|
|
- ['pengajuan.banding']: { $ne: null, $exists: true },
|
|
|
|
|
- is_pengajuan_banding: { $eq: null, $exists: false }
|
|
|
|
|
- }))()
|
|
|
|
|
- ])
|
|
|
|
|
- await Promise.all([
|
|
|
|
|
- ...keberatan.map(async (e) => {
|
|
|
|
|
- await sanksiModel.findOneAndUpdate({ _id: e._id }, { is_pengajuan_keberatan: true })
|
|
|
|
|
- }),
|
|
|
|
|
- ...banding.map(async (e) => {
|
|
|
|
|
- await sanksiModel.findOneAndUpdate({ _id: e._id }, { is_pengajuan_banding: true })
|
|
|
|
|
- })
|
|
|
|
|
- ])
|
|
|
|
|
-
|
|
|
|
|
- return response.success(res, {
|
|
|
|
|
- message: 'Berhasil migrasi pengajuan'
|
|
|
|
|
- })
|
|
|
|
|
-})
|
|
|
|
|
-
|
|
|
|
|
-exports.dokumen = handleError(async (req, res) => {
|
|
|
|
|
|
|
+const migrateDokumenInBackground = async () => {
|
|
|
const dokumen = await dokumenModel.find()
|
|
const dokumen = await dokumenModel.find()
|
|
|
const BATCH_SIZE = 10 // Proses 10 dokumen per batch
|
|
const BATCH_SIZE = 10 // Proses 10 dokumen per batch
|
|
|
const DELAY_MS = 100 // Delay 100ms antar batch
|
|
const DELAY_MS = 100 // Delay 100ms antar batch
|
|
@@ -62,62 +34,125 @@ exports.dokumen = handleError(async (req, res) => {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+exports.pengajuan = handleError(async (req, res) => {
|
|
|
|
|
+ const [keberatan, banding] = await Promise.all([
|
|
|
|
|
+ (() =>
|
|
|
|
|
+ sanksiModel.find({
|
|
|
|
|
+ ['pengajuan.keberatan']: { $ne: null, $exists: true },
|
|
|
|
|
+ is_pengajuan_keberatan: { $eq: null, $exists: false },
|
|
|
|
|
+ }))(),
|
|
|
|
|
+ (() =>
|
|
|
|
|
+ sanksiModel.find({
|
|
|
|
|
+ ['jawaban.keberatan']: { $ne: null, $exists: true },
|
|
|
|
|
+ ['pengajuan.banding']: { $ne: null, $exists: true },
|
|
|
|
|
+ is_pengajuan_banding: { $eq: null, $exists: false },
|
|
|
|
|
+ }))(),
|
|
|
|
|
+ ])
|
|
|
|
|
+ await Promise.all([
|
|
|
|
|
+ ...keberatan.map(async (e) => {
|
|
|
|
|
+ await sanksiModel.findOneAndUpdate(
|
|
|
|
|
+ { _id: e._id },
|
|
|
|
|
+ { is_pengajuan_keberatan: true }
|
|
|
|
|
+ )
|
|
|
|
|
+ }),
|
|
|
|
|
+ ...banding.map(async (e) => {
|
|
|
|
|
+ await sanksiModel.findOneAndUpdate(
|
|
|
|
|
+ { _id: e._id },
|
|
|
|
|
+ { is_pengajuan_banding: true }
|
|
|
|
|
+ )
|
|
|
|
|
+ }),
|
|
|
|
|
+ ])
|
|
|
|
|
|
|
|
return response.success(res, {
|
|
return response.success(res, {
|
|
|
- message: `Berhasil migrasi ${dokumen?.length || 0} dokumen`,
|
|
|
|
|
|
|
+ message: 'Berhasil migrasi pengajuan',
|
|
|
})
|
|
})
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
-exports.pelanggaranSanksi = handleError(async (req, res) => {
|
|
|
|
|
- const sanksi = await sanksiModel.find({
|
|
|
|
|
- sanksi: {
|
|
|
|
|
- $eq: []
|
|
|
|
|
- }
|
|
|
|
|
- }).populate('pelanggaran')
|
|
|
|
|
|
|
+exports.dokumen = handleError(async (req, res) => {
|
|
|
|
|
+ setImmediate(() => {
|
|
|
|
|
+ migrateDokumenInBackground().catch((error) => {
|
|
|
|
|
+ console.error('Gagal migrasi dokumen di background:', error)
|
|
|
|
|
+ })
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ return response.success(res, {
|
|
|
|
|
+ message: 'Migrasi dokumen dijalankan di background',
|
|
|
|
|
+ })
|
|
|
|
|
+})
|
|
|
|
|
|
|
|
- if (sanksi?.length) await Promise.all(sanksi.map(async e => {
|
|
|
|
|
- await sanksiModel.findOneAndUpdate({
|
|
|
|
|
- _id: e._id
|
|
|
|
|
- }, {
|
|
|
|
|
- sanksi: e.pelanggaran.map(e2 => ({ label: e2.label_sanksi, description: e2.sanksi, level: e2.level_sanksi }))
|
|
|
|
|
|
|
+exports.pelanggaranSanksi = handleError(async (req, res) => {
|
|
|
|
|
+ const sanksi = await sanksiModel
|
|
|
|
|
+ .find({
|
|
|
|
|
+ sanksi: {
|
|
|
|
|
+ $eq: [],
|
|
|
|
|
+ },
|
|
|
})
|
|
})
|
|
|
- }))
|
|
|
|
|
|
|
+ .populate('pelanggaran')
|
|
|
|
|
+
|
|
|
|
|
+ if (sanksi?.length)
|
|
|
|
|
+ await Promise.all(
|
|
|
|
|
+ sanksi.map(async (e) => {
|
|
|
|
|
+ await sanksiModel.findOneAndUpdate(
|
|
|
|
|
+ {
|
|
|
|
|
+ _id: e._id,
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ sanksi: e.pelanggaran.map((e2) => ({
|
|
|
|
|
+ label: e2.label_sanksi,
|
|
|
|
|
+ description: e2.sanksi,
|
|
|
|
|
+ level: e2.level_sanksi,
|
|
|
|
|
+ })),
|
|
|
|
|
+ }
|
|
|
|
|
+ )
|
|
|
|
|
+ })
|
|
|
|
|
+ )
|
|
|
|
|
|
|
|
return response.success(res, {
|
|
return response.success(res, {
|
|
|
- message: 'Berhasil migrasi pelanggaran sanksi'
|
|
|
|
|
|
|
+ message: 'Berhasil migrasi pelanggaran sanksi',
|
|
|
})
|
|
})
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
exports.tambahStep = handleError(async (req, res) => {
|
|
exports.tambahStep = handleError(async (req, res) => {
|
|
|
const laporan = await laporanModel.find()
|
|
const laporan = await laporanModel.find()
|
|
|
- await Promise.all(laporan.map(e => {
|
|
|
|
|
- let step = ['pelaporan']
|
|
|
|
|
- if (e.jadwal) step.push('penjadwalan')
|
|
|
|
|
- if (e.evaluasi.length) step.push('pemeriksaan')
|
|
|
|
|
- if (e.sanksi) step.push('sanksi')
|
|
|
|
|
- return laporanModel.updateOne({ _id: e._id }, { step })
|
|
|
|
|
- }))
|
|
|
|
|
|
|
+ await Promise.all(
|
|
|
|
|
+ laporan.map((e) => {
|
|
|
|
|
+ let step = ['pelaporan']
|
|
|
|
|
+ if (e.jadwal) step.push('penjadwalan')
|
|
|
|
|
+ if (e.evaluasi.length) step.push('pemeriksaan')
|
|
|
|
|
+ if (e.sanksi) step.push('sanksi')
|
|
|
|
|
+ return laporanModel.updateOne({ _id: e._id }, { step })
|
|
|
|
|
+ })
|
|
|
|
|
+ )
|
|
|
const sanksi = await sanksiModel.find()
|
|
const sanksi = await sanksiModel.find()
|
|
|
- await Promise.all(sanksi.map(e => {
|
|
|
|
|
- let step = []
|
|
|
|
|
- if (e.pengajuan?.keberatan) step.push('keberatan')
|
|
|
|
|
- if (e.pengajuan?.banding) step.push('banding')
|
|
|
|
|
- if (e.perbaikan.length) step.push('dokumen_perbaikan')
|
|
|
|
|
- if (e.pengajuan?.cabut_sanksi) step.push('cabut_sanksi')
|
|
|
|
|
- return sanksiModel.updateOne({ _id: e._id }, { step })
|
|
|
|
|
- }))
|
|
|
|
|
|
|
+ await Promise.all(
|
|
|
|
|
+ sanksi.map((e) => {
|
|
|
|
|
+ let step = []
|
|
|
|
|
+ if (e.pengajuan?.keberatan) step.push('keberatan')
|
|
|
|
|
+ if (e.pengajuan?.banding) step.push('banding')
|
|
|
|
|
+ if (e.perbaikan.length) step.push('dokumen_perbaikan')
|
|
|
|
|
+ if (e.pengajuan?.cabut_sanksi) step.push('cabut_sanksi')
|
|
|
|
|
+ return sanksiModel.updateOne({ _id: e._id }, { step })
|
|
|
|
|
+ })
|
|
|
|
|
+ )
|
|
|
return laporan
|
|
return laporan
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
exports.backToSanksi = handleError(async (req, res) => {
|
|
exports.backToSanksi = handleError(async (req, res) => {
|
|
|
const sanksi = await sanksiModel.find({
|
|
const sanksi = await sanksiModel.find({
|
|
|
'masa_berlaku.to_date': {
|
|
'masa_berlaku.to_date': {
|
|
|
- $lte: new Date().toISOString()
|
|
|
|
|
|
|
+ $lte: new Date().toISOString(),
|
|
|
},
|
|
},
|
|
|
- aktif: false
|
|
|
|
|
|
|
+ aktif: false,
|
|
|
})
|
|
})
|
|
|
- await Promise.all(sanksi.map(e => sanksiModel.findOneAndUpdate({ _id: e._id }, { aktif: true, 'masa_berlaku.berakhir': true })))
|
|
|
|
|
|
|
+ await Promise.all(
|
|
|
|
|
+ sanksi.map((e) =>
|
|
|
|
|
+ sanksiModel.findOneAndUpdate(
|
|
|
|
|
+ { _id: e._id },
|
|
|
|
|
+ { aktif: true, 'masa_berlaku.berakhir': true }
|
|
|
|
|
+ )
|
|
|
|
|
+ )
|
|
|
|
|
+ )
|
|
|
return sanksi
|
|
return sanksi
|
|
|
})
|
|
})
|
|
|
-
|
|
|
|
|
-
|
|
|