This commit is contained in:
salmanoe 2021-10-11 20:25:52 +07:00
parent 51e63a3432
commit 38da44389a
4 changed files with 76 additions and 56 deletions

View File

@ -76,8 +76,8 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository<Monitorin
@Query("select new map(tanggal.namaHari as namaHari, " + "tanggal.hariKeDlmBulan as hari, "
+ "tanggal.namaBulan as bulan, " + "tanggal.tahunKalender as tahun, " + "tanggal.hariKeDlmBulan as tgl, "
+ "tanggal.tanggal as tanggal,to_char(tanggal.tanggal,'yyyy-MM-dd') as tanggal2) " + "from Kalender tanggal "
+ "where to_char(tanggal.tanggal,'yyyy-MM-dd') between :startDate and :endDate "
+ "tanggal.tanggal as tanggal,to_char(tanggal.tanggal,'yyyy-MM-dd') as tanggal2) "
+ "from Kalender tanggal " + "where to_char(tanggal.tanggal,'yyyy-MM-dd') between :startDate and :endDate "
+ "order by tanggal.tanggal asc")
public List<Map<String, Object>> findKalender(@Param("startDate") String startDate,
@Param("endDate") String endDate);
@ -160,28 +160,21 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository<Monitorin
+ "and pegawai.statusEnabled is true " + "order by pegawai.nama asc")
public List<Map<String, Object>> findPegawaiAktifDanKaryawan(@Param("pegawaiId") Integer idPegawai);
@Query("select new map(pegawai.id as pegawaiId," + "pegawai.nipPns as nip, " + "pegawai.namaLengkap as nama, "
+ "jabatanInternal.namaJabatan as jabatanInternal, " + "ruangan.namaRuangan as namaRuangan, "
+ "unitKerja.name as unitKerja, " + "pegawai.idFinger as fingerId) "
+ "from Pegawai pegawai, MapPegawaiJabatanToUnitKerja mapPegawai " + "left join pegawai.ruangan ruangan "
@Query("select pegawai.id " + "from MapPegawaiJabatanToUnitKerja mapPegawai "
+ "left join mapPegawai.pegawai pegawai " + "left join pegawai.shiftKerja shiftKerja "
+ "left join mapPegawai.subUnitKerjaPegawai subUnitKerja "
+ "left join mapPegawai.unitKerjaPegawai unitKerja " + "left join mapPegawai.jabatan jabatanInternal "
+ "where pegawai.id = mapPegawai.pegawaiId " + "and mapPegawai.isPrimary is true "
+ "and mapPegawai.statusEnabled is true " + "and unitKerja.id = :idUnitKerja "
+ "and pegawai.statusEnabled is true " + "order by pegawai.nama asc")
public List<Map<String, Object>> findPegawaiAktifDanKaryawanByUnitKerja(@Param("idUnitKerja") Integer idUnitKerja);
+ "left join mapPegawai.unitKerjaPegawai unitKerja " + "where mapPegawai.statusEnabled is true "
+ "and unitKerja.id = :idUnitKerja " + "and pegawai.statusEnabled is not false "
+ "and pegawai.idFinger is not null " + "order by pegawai.nama asc")
public List<Integer> findPegawaiAktifDanKaryawanByUnitKerja(@Param("idUnitKerja") Integer idUnitKerja);
@Query("select new map(pegawai.id as pegawaiId," + "pegawai.nipPns as nip, " + "pegawai.namaLengkap as nama, "
+ "jabatanInternal.namaJabatan as jabatanInternal, " + "ruangan.namaRuangan as namaRuangan, "
+ "unitKerja.name as unitKerja, " + "pegawai.idFinger as fingerId) "
+ "from Pegawai pegawai, MapPegawaiJabatanToUnitKerja mapPegawai " + "left join pegawai.ruangan ruangan "
@Query("select pegawai.id " + "from MapPegawaiJabatanToUnitKerja mapPegawai "
+ "left join mapPegawai.pegawai pegawai " + "left join pegawai.shiftKerja shiftKerja "
+ "left join mapPegawai.subUnitKerjaPegawai subUnitKerja "
+ "left join mapPegawai.unitKerjaPegawai unitKerja " + "left join mapPegawai.jabatan jabatanInternal "
+ "where pegawai.id = mapPegawai.pegawaiId " + "and mapPegawai.isPrimary is true "
+ "and mapPegawai.statusEnabled is true " + "and unitKerja.id = :idUnitKerja "
+ "and subUnitKerja.id = :idSubUnitKerja " + "and pegawai.statusEnabled is true "
+ "order by pegawai.nama asc")
public List<Map<String, Object>> findPegawaiAktifDanKaryawanByUnitKerjaAndSubUnitKerja(
+ "left join mapPegawai.unitKerjaPegawai unitKerja " + "where unitKerja.id = :idUnitKerja "
+ "and subUnitKerja.id = :idSubUnitKerja " + "and mapPegawai.statusEnabled is true "
+ "and pegawai.idFinger is not null " + "and pegawai.statusEnabled is true " + "order by pegawai.nama asc")
public List<Integer> findPegawaiAktifDanKaryawanByUnitKerjaAndSubUnitKerja(
@Param("idUnitKerja") Integer idUnitKerja, @Param("idSubUnitKerja") Integer idSubUnitKerja);
@Query(" select pegawai.id" + " from Pegawai pegawai" + " left join pegawai.ruangan ruangan"

View File

@ -5,7 +5,6 @@ import java.math.RoundingMode;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.Month;
import java.time.ZoneId;
@ -1356,7 +1355,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
List<Map<String, Object>> rawDataPresensi = new ArrayList<>();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
List<Integer> listIdShiftMalam = splitDataSettingDatafixed("daftarShiftMalam");
// List<Integer> listIdShiftMalam =
// splitDataSettingDatafixed("daftarShiftMalam");
String prevTglAwal = df.format(addOrMinDays(startDate, -1));
String prevTglAkhir = df.format(addOrMinDays(endDate, 1));
@ -1452,20 +1452,19 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
String startDate, String endDate) {
Map<String, Object> result = new HashMap<>();
List<Map<String, Object>> listRs = new ArrayList<Map<String, Object>>();
List<Map<String, Object>> listPegawaiMonitoring = new ArrayList<>();
List<Integer> listIdPegawai = new ArrayList<>();
if (CommonUtil.isNotNullOrEmpty(idPegawai)) {
listPegawaiMonitoring = monitoringAbsenDao.findPegawaiAktifDanKaryawan(idPegawai);
listIdPegawai.add(idPegawai);
} else if (CommonUtil.isNullOrEmpty(idPegawai) && CommonUtil.isNotNullOrEmpty(subUnitKerjaId)) {
listPegawaiMonitoring = monitoringAbsenDao
.findPegawaiAktifDanKaryawanByUnitKerjaAndSubUnitKerja(unitKerjaId, subUnitKerjaId);
listIdPegawai = monitoringAbsenDao.findPegawaiAktifDanKaryawanByUnitKerjaAndSubUnitKerja(unitKerjaId,
subUnitKerjaId);
} else if (CommonUtil.isNullOrEmpty(idPegawai) && CommonUtil.isNullOrEmpty(subUnitKerjaId)) {
listPegawaiMonitoring = monitoringAbsenDao.findPegawaiAktifDanKaryawanByUnitKerja(unitKerjaId);
listIdPegawai = monitoringAbsenDao.findPegawaiAktifDanKaryawanByUnitKerja(unitKerjaId);
}
List<Map<String, Object>> listKomponenJadwal = monitoringAbsenDao.findKalender(startDate, endDate);
for (Map<String, Object> pegawaiMonitoring : listPegawaiMonitoring) {
String idFinger = pegawaiMonitoring.get("fingerId").toString();
for (Integer id : listIdPegawai) {
String idFinger = pegawaiDao.getidFinger(id);
Map<String, Object> rsMap = new HashMap<String, Object>();
List<Map<String, Object>> listkehadiran = new ArrayList<Map<String, Object>>();
Integer harikerja = 0;
@ -1493,7 +1492,12 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
DateFormat sdf = new SimpleDateFormat("HH.mm");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
DateFormat stf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Map<String, Object> pegawaiMonitoring = new HashMap<>();
if (CommonUtil.isNotNullOrEmpty(idFinger)) {
pegawaiMonitoring = pegawaiDao.getPegawaiToMonitoringAbsen(idFinger);
}
List<Map<String, Object>> listKomponenJadwal = monitoringAbsenDao.findKalender(startDate, endDate);
for (Map<String, Object> data : listKomponenJadwal) {
String alasanCuti = "";
// put everything data needs
@ -1517,7 +1521,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
String jamPulang = (String) data.get("jamPulang");
String tgl = df.format(tanggal);
data.put("dates", tanggal.getTime());
data.put("idPegawai", pegawaiMonitoring.get("pegawaiId"));
data.put("idPegawai", id);
data.put("tanggal", data.get("tgl").toString() + "-" + data.get("bulan").toString() + "-"
+ data.get("tahun").toString());
@ -1529,10 +1533,9 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
sakit++;
}
if (!((String) data.get("namaShift")).equals("Libur")) {
alasanCuti = this.wfh(Integer.valueOf(pegawaiMonitoring.get("pegawaiId").toString()), tgl,
tanggal, tglRilisFiturPresensi);
alasanCuti = this.wfh(id, tgl, tanggal, tglRilisFiturPresensi);
if (CommonUtil.isNullOrEmpty(alasanCuti)) {
alasanCuti = this.cuti(Integer.valueOf(pegawaiMonitoring.get("pegawaiId").toString()), tgl);
alasanCuti = this.cuti(id, tgl);
}
}
}
@ -1831,9 +1834,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
}
// Ambil data monitoringAbsen
MonitoringAbsen monitoringAbsen = monitoringAbsenDao
.findByIdPegawaiAndTanggalMonitoringAbsen(
Integer.valueOf(pegawaiMonitoring.get("pegawaiId").toString()),
data.get("tanggal").toString());
.findByIdPegawaiAndTanggalMonitoringAbsen(id, data.get("tanggal").toString());
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen)) {
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen.getAlasan())) {
alasanCuti += monitoringAbsen.getAlasan();
@ -1897,6 +1898,22 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
dataPM.put("penanggungJawabSDM", pegawaiPenanggungJawabSDM);
}
} else if (CommonUtil.isNullOrEmpty(monitoringAbsen)) {
if (CommonUtil.isNullOrEmpty(dataPM.get("isFotoSesuai"))) {
dataPM.put("isFotoSesuai", false);
}
if (CommonUtil.isNullOrEmpty(dataPM.get("isLokasiSesuai"))) {
dataPM.put("isLokasiSesuai", false);
}
if (CommonUtil.isNullOrEmpty(dataPM.get("isAtributLengkap"))) {
dataPM.put("isAtributLengkap", false);
}
if (CommonUtil.isNullOrEmpty(dataPM.get("isVerifikasi"))) {
dataPM.put("isVerifikasi", false);
}
if (CommonUtil.isNullOrEmpty(dataPM.get("verifikasi"))) {
dataPM.put("verifikasi", "X");
}
}
dataPM.put("jamEfektif", jamEf);
dataPM.put("kelebihanJamKerja", kelebihanJamKerja);
@ -2042,8 +2059,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
data.put("terlambat", (long) 0);
}
// Ambil data monitoringAbsen
MonitoringAbsen monitoringAbsen = monitoringAbsenDao.findByIdPegawaiAndTanggalMonitoringAbsen(
Integer.valueOf(pegawaiMonitoring.get("pegawaiId").toString()),
MonitoringAbsen monitoringAbsen = monitoringAbsenDao.findByIdPegawaiAndTanggalMonitoringAbsen(id,
data.get("tanggal").toString());
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen)) {
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen.getAlasan())) {
@ -2106,6 +2122,22 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
data.put("penanggungJawabSDM", pegawaiPenanggungJawabSDM);
}
} else if (CommonUtil.isNullOrEmpty(monitoringAbsen)) {
if (CommonUtil.isNullOrEmpty(data.get("isFotoSesuai"))) {
data.put("isFotoSesuai", false);
}
if (CommonUtil.isNullOrEmpty(data.get("isLokasiSesuai"))) {
data.put("isLokasiSesuai", false);
}
if (CommonUtil.isNullOrEmpty(data.get("isAtributLengkap"))) {
data.put("isAtributLengkap", false);
}
if (CommonUtil.isNullOrEmpty(data.get("isVerifikasi"))) {
data.put("isVerifikasi", false);
}
if (CommonUtil.isNullOrEmpty(data.get("verifikasi"))) {
data.put("verifikasi", "X");
}
}
data.put("jamEfektif", jamEf);
data.put("kelebihanJamKerja", kelebihanJamKerja);
@ -2140,7 +2172,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
rsMap.put("menitPulangAwal", jumlahPulangAwal);
rsMap.put("jumlahCountPulangAwal", jumlahCountPulangAwal);
rsMap.put("jumlahHariKerja", harikerja);
rsMap.put("idPegawai", Integer.valueOf(pegawaiMonitoring.get("pegawaiId").toString()));
rsMap.put("idPegawai", id);
rsMap.put("mangkir", mangkir);
rsMap.put("hariKerja", hariKerja);
rsMap.put("listkehadiran", listkehadiran);
@ -2148,9 +2180,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
listRs.addAll(listkehadiran);
result.putAll(rsMap);
}
result.put("listkehadiran", listRs);
return result;
}

View File

@ -427,10 +427,9 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic
String endDate) {
Map<String, Object> temp = new HashMap<String, Object>();
List<Map<String, Object>> listkehadiran = new ArrayList<Map<String, Object>>();
List<Map<String, Object>> listPegawai = monitoringAbsenDao.findPegawaiAktifDanKaryawanByUnitKerja(idRuangan);
for (Map<String, Object> pegawai : listPegawai) {
temp = monitoringAbsenService.rekapitulasiKehadiranByPegawai(
Integer.valueOf(pegawai.get("pegawaiId").toString()), startDate, endDate);
List<Integer> listIdPegawai = monitoringAbsenDao.findPegawaiAktifDanKaryawanByUnitKerja(idRuangan);
for (Integer idPegawai : listIdPegawai) {
temp = monitoringAbsenService.rekapitulasiKehadiranByPegawai(idPegawai, startDate, endDate);
if (CommonUtil.isNotNullOrEmpty(temp)) {
listkehadiran.add(temp);
}

View File

@ -4630,19 +4630,16 @@ public class ReportingController extends LocaleController<RegistrasiPelayananVO>
Map<String, Object> kehadiran = new HashMap<String, Object>();
if (CommonUtil.isNotNullOrEmpty(subUnitKerja) && CommonUtil.isNullOrEmpty(idPegawai)) {
List<Map<String, Object>> listPegawai = monitoringAbsenDao
List<Integer> listIdPegawai = monitoringAbsenDao
.findPegawaiAktifDanKaryawanByUnitKerjaAndSubUnitKerja(unitKerja, subUnitKerja);
for (Map<String, Object> pegawai : listPegawai) {
kehadiran = monitoringAbsenService.jumlahKehadiran(null, null,
Integer.valueOf(pegawai.get("pegawaiId").toString()), startDate, endDate);
for (Integer id : listIdPegawai) {
kehadiran = monitoringAbsenService.jumlahKehadiran(null, null, id, startDate, endDate);
listkehadiran.addAll((List<Map<String, Object>>) kehadiran.get("listkehadiran"));
}
} else if (CommonUtil.isNullOrEmpty(subUnitKerja) && CommonUtil.isNullOrEmpty(idPegawai)) {
List<Map<String, Object>> listPegawai = monitoringAbsenDao
.findPegawaiAktifDanKaryawanByUnitKerja(unitKerja);
for (Map<String, Object> pegawai : listPegawai) {
kehadiran = monitoringAbsenService.jumlahKehadiran(null, null,
Integer.valueOf(pegawai.get("pegawaiId").toString()), startDate, endDate);
List<Integer> listIdPegawai = monitoringAbsenDao.findPegawaiAktifDanKaryawanByUnitKerja(unitKerja);
for (Integer id : listIdPegawai) {
kehadiran = monitoringAbsenService.jumlahKehadiran(null, null, id, startDate, endDate);
listkehadiran.addAll((List<Map<String, Object>>) kehadiran.get("listkehadiran"));
}
} else if (CommonUtil.isNotNullOrEmpty(idPegawai)) {