|
|
@@ -7,6 +7,7 @@ const {
|
|
|
cekBanyakDataSanksi,
|
|
|
} = require('../utils/cekData')
|
|
|
const laporanModel = require('../model/laporan.model')
|
|
|
+const sanksiModel = require('../model/sanksi.model')
|
|
|
const moment = require('moment')
|
|
|
|
|
|
exports.laporan = handleError(async (req, res) => {
|
|
|
@@ -392,3 +393,108 @@ exports.laporanSelesai = handleError(async (req, res) => {
|
|
|
data,
|
|
|
})
|
|
|
})
|
|
|
+
|
|
|
+exports.jumlahStatusLaporan = handleError(async (req, res) => {
|
|
|
+ const pembina = await laporanModel.distinct('pt.pembina.nama')
|
|
|
+
|
|
|
+ let data = await Promise.all(
|
|
|
+ pembina.map(async (e) => {
|
|
|
+ return {
|
|
|
+ [e]: {
|
|
|
+ jumlah_jadwal_evaluasi: await laporanModel
|
|
|
+ .find({
|
|
|
+ jadwal: {
|
|
|
+ $ne: null,
|
|
|
+ $exists: true,
|
|
|
+ },
|
|
|
+ 'pt.pembina.nama': e,
|
|
|
+ })
|
|
|
+ .count(),
|
|
|
+ jumlah_pemeriksaan: await laporanModel
|
|
|
+ .find({
|
|
|
+ evaluasi: {
|
|
|
+ $ne: [],
|
|
|
+ $exists: true,
|
|
|
+ },
|
|
|
+ 'pt.pembina.nama': e,
|
|
|
+ })
|
|
|
+ .count(),
|
|
|
+ jumlah_sanksi: await laporanModel
|
|
|
+ .find({
|
|
|
+ sanksi: {
|
|
|
+ $ne: null,
|
|
|
+ $exists: true,
|
|
|
+ },
|
|
|
+ 'pt.pembina.nama': e,
|
|
|
+ })
|
|
|
+ .count(),
|
|
|
+ jumlah_keberatan: (
|
|
|
+ await sanksiModel
|
|
|
+ .find({
|
|
|
+ 'pengajuan.keberatan': {
|
|
|
+ $ne: null,
|
|
|
+ $exists: true,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ .populate({
|
|
|
+ path: 'laporan',
|
|
|
+ match: {
|
|
|
+ 'pt.pembina.nama': e,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ ).filter((e) => e.laporan != null).length,
|
|
|
+ jumlah_banding: (
|
|
|
+ await sanksiModel
|
|
|
+ .find({
|
|
|
+ 'pengajuan.banding': {
|
|
|
+ $ne: null,
|
|
|
+ $exists: true,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ .populate({
|
|
|
+ path: 'laporan',
|
|
|
+ match: {
|
|
|
+ 'pt.pembina.nama': e,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ ).filter((e) => e.laporan != null).length,
|
|
|
+ jumlah_pemantauan_perbaikan: (
|
|
|
+ await sanksiModel
|
|
|
+ .find({
|
|
|
+ perbaikan: {
|
|
|
+ $ne: [],
|
|
|
+ $exists: true,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ .populate({
|
|
|
+ path: 'laporan',
|
|
|
+ match: {
|
|
|
+ 'pt.pembina.nama': e,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ ).filter((e) => e.laporan != null).length,
|
|
|
+ jumlah_pencabutan_sanksi: (
|
|
|
+ await sanksiModel
|
|
|
+ .find({
|
|
|
+ 'pengajuan.cabut_sanksi': {
|
|
|
+ $ne: null,
|
|
|
+ $exists: true,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ .populate({
|
|
|
+ path: 'laporan',
|
|
|
+ match: {
|
|
|
+ 'pt.pembina.nama': e,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ ).filter((e) => e.laporan != null).length,
|
|
|
+ },
|
|
|
+ }
|
|
|
+ })
|
|
|
+ )
|
|
|
+
|
|
|
+ return response.success(res, {
|
|
|
+ message: 'Berhasil menganalisis data',
|
|
|
+ data,
|
|
|
+ })
|
|
|
+})
|