- perbaikan akses monitoring presensi karena rangkap jabatan di unit kerja yang sama

- refractoring service load data monitoring presensi untuk verifikasi indikator-indikator terkair kehadiran
- perbaikan informasi tanggal di detail presensi pegawai
- penambahan kolom status foto, lokasi, dan verifikasi monitoring presensi pegawai
This commit is contained in:
Salman Manoe 2021-10-04 20:25:24 +07:00
parent 9dfae7af0b
commit 77f12d97ad
8 changed files with 803 additions and 672 deletions

View File

@ -267,7 +267,9 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends CrudRepository<MapPegaw
Integer getIdJabatanByPegawaiUnitKerja(@Param("idPegawai") Integer idPegawai,
@Param("idUnitKerja") Integer idUnitKerja);
@Query("select mapp.jabatanId from MapPegawaiJabatanToUnitKerja mapp where mapp.statusEnabled is true and mapp.pegawaiId=:idPegawai and mapp.unitKerjaPegawaiId=:idUnitKerja")
@Query("select mapp.jabatanId from MapPegawaiJabatanToUnitKerja mapp " + "left join mapp.jabatan jb "
+ "where mapp.statusEnabled is true " + "and mapp.pegawaiId=:idPegawai "
+ "and mapp.unitKerjaPegawaiId=:idUnitKerja " + "order by jb.levelJabatan desc")
List<Integer> getListIdJabatanByPegawaiUnitKerja(@Param("idPegawai") Integer idPegawai,
@Param("idUnitKerja") Integer idUnitKerja);

View File

@ -17,11 +17,6 @@ public interface MonitoringAbsenService {
List<Map<String, Object>> findKehadiran(Integer idPegawai, String startDate, String endDate);
Map<String, Object> findKehadiranByRuangan(Integer ruanganId, String startDate, String endDate);
Map<String, Object> findKehadiranByRuangan(Integer unitKerjaId, Integer subUnitKerjaId, String startDate,
String endDate);
Map<String, Object> saveMonitoring(MonitoringAbsenCustomVO vo);
Map<String, Object> saveMonitoringVerifikasiSDM(MonitoringAbsenCustomVO vo);
@ -32,10 +27,11 @@ public interface MonitoringAbsenService {
Map<String, Object> findKehadiranPerPegawai(Integer idPegawai, String startDate, String endDate);
Map<String, Object> jumlahKehadiran(Integer idPegawai, String startDate, String endDate);
Map<String, Object> jumlahKehadiranRev(Integer idPegawai, String startDate, String endDate);
Map<String, Object> jumlahKehadiran(Integer unitKerjaId, Integer subUnitKerjaId, Integer idPegawai,
String startDate, String endDate);
Map<String, Object> rekapitulasiKehadiranByPegawai(Integer idPegawai, String startDate, String endDate);
Map<String, Object> rekapitulasiKehadiranByPegawai(Map<String, Object> dataPegawai, String startDate,

View File

@ -305,7 +305,7 @@ public class AbsensiPegawaiServiceImpl extends BaseVoServiceImpl implements Abse
mapRs.put("location", "");
} else {
mapRs.put("imageURLData", "");
mapRs.put("date", "");
mapRs.put("date", map.get("tanggal"));
mapRs.put("latitude", "");
mapRs.put("longitude", "");
mapRs.put("accuracy", "");

View File

@ -10,6 +10,7 @@ import java.time.Month;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
@ -638,7 +639,6 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
Map<String, Object> result = new HashMap<String, Object>();
LoginUser loginuser = loginUserConverter.transferVOToModel(vo.getLoginUser(), new LoginUser());
Pegawai pegawaiLogin = pegawaiConverter.transferVOToModel(vo.getPegawaiLogin(), new Pegawai());
KelompokTransaksi kelompokTransaksi = kelompokTransaksiDao
.findById(Integer.parseInt(GetSettingDataFixed("kelompokTransasiLemburAbsensi")));
@ -738,6 +738,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
monitoringAbsen.setShiftKerja(shiftKerja);
monitoringAbsen.setKdProfile((short) 0);
monitoringAbsen.setStatusEnabled(Master.STATUS_ENABLE_TRUE);
monitoringAbsen.setIsVerifikasi(Master.STATUS_ENABLE_TRUE);
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen)) {
MonitoringAbsen model = monitoringAbsenDao.save(monitoringAbsen);
@ -749,74 +750,6 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
return result;
}
@Override
@Transactional(readOnly = true)
public Map<String, Object> findKehadiranByRuangan(Integer idUnitKerja, String startDate, String endDate) {
Map<String, Object> result = new HashMap<String, Object>();
List<Map<String, Object>> listkehadiran = new ArrayList<Map<String, Object>>();
List<Integer> listId = monitoringAbsenDao.findPegawaiaAktifDanKaryawanByUnitKerja(idUnitKerja);
for (Integer idPegawai : listId) {
Map<String, Object> data = this.jumlahKehadiran(idPegawai, startDate, endDate);
if (CommonUtil.isNotNullOrEmpty(data)) {
if (CommonUtil.isNotNullOrEmpty(data.get("listkehadiran"))) {
listkehadiran.addAll((List<Map<String, Object>>) data.get("listkehadiran"));
}
}
}
result.put("listkehadiran", listkehadiran);
return result;
}
@Override
@Transactional(readOnly = true)
public Map<String, Object> findKehadiranByRuangan(Integer unitKerjaId, Integer subUnitKerjaId, String startDate,
String endDate) {
Map<String, Object> result = new HashMap<String, Object>();
List<Map<String, Object>> listkehadiran = new ArrayList<Map<String, Object>>();
List<Integer> listId = monitoringAbsenDao.findPegawaiaAktifDanKaryawanByUnitKerjaAndSubUnitKerja(unitKerjaId,
subUnitKerjaId);
for (Integer idPegawai : listId) {
Map<String, Object> data = this.jumlahKehadiran(idPegawai, startDate, endDate);
if (CommonUtil.isNotNullOrEmpty(data)) {
if (CommonUtil.isNotNullOrEmpty(data.get("listkehadiran"))) {
listkehadiran.addAll((List<Map<String, Object>>) data.get("listkehadiran"));
}
}
}
result.put("listkehadiran", listkehadiran);
return result;
}
@Override
@Transactional(readOnly = true)
public Map<String, Object> findKehadiranAllPegawai(String startDate, String endDate) {
Map<String, Object> result = new HashMap<String, Object>();
List<Map<String, Object>> listkehadiran = new ArrayList<Map<String, Object>>();
List<Integer> listId = pegawaiDao.findPegawaiStatusAktifAndKaryawan();
for (Integer idPegawai : listId) {
listkehadiran = this.findKehadiran(idPegawai, startDate, endDate);
}
result.put("listkehadiran", listkehadiran);
return result;
}
@Override
@Transactional(readOnly = true)
public Map<String, Object> findKehadiranPerPegawai(Integer idPegawai, String startDate, String endDate) {
Map<String, Object> result = new HashMap<String, Object>();
List<Map<String, Object>> listkehadiran = new ArrayList<Map<String, Object>>();
listkehadiran = this.findKehadiran(idPegawai, startDate, endDate);
result.put("listkehadiran", listkehadiran);
return result;
}
@Override
@Transactional(readOnly = true)
public Map<String, Object> jumlahKehadiranRev(Integer idPegawai, String startDate, String endDate) {
@ -1391,9 +1324,24 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
@Override
@Transactional(readOnly = true)
public Map<String, Object> jumlahKehadiran(Integer idPegawai, String startDate, String endDate) {
String idFinger = pegawaiDao.getidFinger(idPegawai);
Map<String, Object> result = new HashMap<String, Object>();
public Map<String, Object> jumlahKehadiran(Integer unitKerjaId, Integer subUnitKerjaId, Integer idPegawai,
String startDate, String endDate) {
Map<String, Object> result = new HashMap<>();
List<Map<String, Object>> listRs = new ArrayList<Map<String, Object>>();
List<Integer> listIdPegawai = new ArrayList<>();
if (CommonUtil.isNotNullOrEmpty(idPegawai)) {
listIdPegawai.add(idPegawai);
} else if (CommonUtil.isNullOrEmpty(idPegawai) && CommonUtil.isNotNullOrEmpty(subUnitKerjaId)) {
listIdPegawai = monitoringAbsenDao.findPegawaiaAktifDanKaryawanByUnitKerjaAndSubUnitKerja(unitKerjaId,
subUnitKerjaId);
} else if (CommonUtil.isNullOrEmpty(idPegawai) && CommonUtil.isNullOrEmpty(subUnitKerjaId)) {
listIdPegawai = monitoringAbsenDao.findPegawaiaAktifDanKaryawanByUnitKerja(unitKerjaId);
}
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;
Integer mangkir = 0;
@ -1449,7 +1397,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", idPegawai);
data.put("idPegawai", id);
data.put("tanggal", data.get("tgl").toString() + "-" + data.get("bulan").toString() + "-"
+ data.get("tahun").toString());
@ -1461,9 +1409,9 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
sakit++;
}
if (!((String) data.get("namaShift")).equals("Libur")) {
alasanCuti = this.wfh(idPegawai, tgl, tanggal, tglRilisFiturPresensi);
alasanCuti = this.wfh(id, tgl, tanggal, tglRilisFiturPresensi);
if (CommonUtil.isNullOrEmpty(alasanCuti)) {
alasanCuti = this.cuti(idPegawai, tgl);
alasanCuti = this.cuti(id, tgl);
}
}
}
@ -1516,7 +1464,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
for (int j = m + 1; j < listAbsensi.size(); j++, m++) {
checkTime1 = stf.parse(listAbsensi.get(m).get("time").toString());
checkTime2 = stf.parse(listAbsensi.get(j).get("time").toString());
long diff = TimeUnit.MILLISECONDS.toMinutes(checkTime2.getTime() - checkTime1.getTime());
long diff = TimeUnit.MILLISECONDS
.toMinutes(checkTime2.getTime() - checkTime1.getTime());
if (Math.abs(diff) > batasMultiFingerPrint) {
listAbsensiFilter.add(listAbsensi.get(i));
i++;
@ -1563,13 +1512,16 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
if (data.get("namaHari").equals("Senin") || data.get("namaHari").equals("Selasa")
|| data.get("namaHari").equals("Rabu") || data.get("namaHari").equals("Kamis")) {
detailShiftPMPagi = monitoringAbsenDao.findShiftPMDetail(
Integer.parseInt(data.get("idKelompokShiftKerja").toString()), "Non Shift", "SK");
Integer.parseInt(data.get("idKelompokShiftKerja").toString()), "Non Shift",
"SK");
} else if (data.get("namaHari").equals("Jumat")) {
detailShiftPMPagi = monitoringAbsenDao.findShiftPMDetail(
Integer.parseInt(data.get("idKelompokShiftKerja").toString()), "Non Shift", "J");
Integer.parseInt(data.get("idKelompokShiftKerja").toString()), "Non Shift",
"J");
}
detailShiftPMMalam = monitoringAbsenDao.findShiftPMDetail(
Integer.parseInt(data.get("idKelompokShiftKerja").toString()), "Malam MOD", "M-MOD");
Integer.parseInt(data.get("idKelompokShiftKerja").toString()), "Malam MOD",
"M-MOD");
}
String jamPulang1PM = detailShiftPMPagi.get("jamPulang").toString();
@ -1583,8 +1535,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
Date jam_masuk2PMActual = null;
if (CommonUtil.isNotNullOrEmpty(listAbsensiFilter)) {
if (listAbsensiFilter.size() > 1) {
jam_masuk2PMActual = stf
.parse(listAbsensiFilter.get(listAbsensiFilter.size() - 1).get("time").toString());
jam_masuk2PMActual = stf.parse(
listAbsensiFilter.get(listAbsensiFilter.size() - 1).get("time").toString());
}
if (listAbsensiFilter.size() == 3) {
@ -1694,7 +1646,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
(Integer) data.get("idKelompokShiftKerja"), waktuIstirahatPagi, "Pagi");
} else if (i == 2) {
jamEfektif = jamEfektif(absensiDate, absensiMasuk, jadwalPulang, jadwalMasuk,
(Integer) data.get("idKelompokShiftKerja"), waktuIstirahatMalam, "Malam");
(Integer) data.get("idKelompokShiftKerja"), waktuIstirahatMalam,
"Malam");
}
if (CommonUtil.isNotNullOrEmpty(jamEfektif)) {
@ -1727,11 +1680,13 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
}
if ((CommonUtil.isNullOrEmpty(dataPM.get("absensiPulang"))
&& CommonUtil.isNotNullOrEmpty(dataPM.get("absensiMasuk")))
&& (CommonUtil.isNotNullOrEmpty(jamMasuk) && CommonUtil.isNotNullOrEmpty(jamPulang))) {
&& (CommonUtil.isNotNullOrEmpty(jamMasuk)
&& CommonUtil.isNotNullOrEmpty(jamPulang))) {
absenTunggal++;
} else if ((CommonUtil.isNotNullOrEmpty(dataPM.get("absensiPulang"))
&& CommonUtil.isNullOrEmpty(dataPM.get("absensiMasuk")))
&& (CommonUtil.isNotNullOrEmpty(jamMasuk) && CommonUtil.isNotNullOrEmpty(jamPulang))) {
&& (CommonUtil.isNotNullOrEmpty(jamMasuk)
&& CommonUtil.isNotNullOrEmpty(jamPulang))) {
absenTunggal++;
}
if (CommonUtil.isNullOrEmpty(dataPM.get("absensiMasuk"))) {
@ -1755,13 +1710,40 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
}
// Ambil data monitoringAbsen
MonitoringAbsen monitoringAbsen = monitoringAbsenDao
.findByIdPegawaiAndTanggalMonitoringAbsen(idPegawai, data.get("tanggal").toString());
.findByIdPegawaiAndTanggalMonitoringAbsen(id, data.get("tanggal").toString());
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen)) {
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen.getAlasan())) {
alasanCuti += monitoringAbsen.getAlasan();
}
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen.getIsFotoSesuai())) {
dataPM.put("isFotoSesuai", monitoringAbsen.getIsFotoSesuai());
} else {
dataPM.put("isFotoSesuai", false);
}
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen.getIsLokasiSesuai())) {
dataPM.put("isLokasiSesuai", monitoringAbsen.getIsLokasiSesuai());
} else {
dataPM.put("isLokasiSesuai", false);
}
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen.getIsAtributLengkap())) {
dataPM.put("isAtributLengkap", monitoringAbsen.getIsAtributLengkap());
} else {
dataPM.put("isAtributLengkap", false);
}
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen.getIsVerifikasi())) {
dataPM.put("isVerifikasi", monitoringAbsen.getIsVerifikasi());
} else {
dataPM.put("isVerifikasi", false);
}
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen.getIsVerifikasi())
&& monitoringAbsen.getIsVerifikasi()) {
dataPM.put("verifikasi", "V");
} else {
dataPM.put("verifikasi", "X");
}
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen.getStrukVerifikasi())) {
dataPM.put("tanggalVerifikasiUnitKerja",
dateFormat.format(monitoringAbsen.getStrukVerifikasi().getTglverifikasi()));
@ -1769,22 +1751,26 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
.parseLong(monitoringAbsen.getStrukVerifikasi().getKeteranganlainnya());
dataPM.put("accKelebihanJamKerjaUnitKerja",
monitoringAbsen.getStrukVerifikasi().getKeteranganlainnya());
dataPM.put("norecVerifikasiUnitKerja", monitoringAbsen.getStrukVerifikasi().getNoRec());
dataPM.put("norecVerifikasiUnitKerja",
monitoringAbsen.getStrukVerifikasi().getNoRec());
Map<String, Object> pegawaiPenanggungJawab = strukVerifikasiDao
.findStrukVerifikasiByNoRec(monitoringAbsen.getStrukVerifikasi().getNoRec());
.findStrukVerifikasiByNoRec(
monitoringAbsen.getStrukVerifikasi().getNoRec());
dataPM.put("penanggungJawab", pegawaiPenanggungJawab);
}
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen.getStrukVerifikasiSdm())) {
dataPM.put("tglVerifikasiSdm",
dateFormat.format(monitoringAbsen.getStrukVerifikasiSdm().getTglverifikasi()));
dataPM.put("tglVerifikasiSdm", dateFormat
.format(monitoringAbsen.getStrukVerifikasiSdm().getTglverifikasi()));
jumlahJamLemburUnitSdm = Long
.parseLong(monitoringAbsen.getStrukVerifikasiSdm().getKeteranganlainnya());
dataPM.put("accKelebihanJamKerjaSDM",
monitoringAbsen.getStrukVerifikasiSdm().getKeteranganlainnya());
dataPM.put("norecVerifikasiSdm", monitoringAbsen.getStrukVerifikasiSdm().getNoRec());
dataPM.put("norecVerifikasiSdm",
monitoringAbsen.getStrukVerifikasiSdm().getNoRec());
Map<String, Object> pegawaiPenanggungJawabSDM = strukVerifikasiDao
.findStrukVerifikasiByNoRec(monitoringAbsen.getStrukVerifikasiSdm().getNoRec());
.findStrukVerifikasiByNoRec(
monitoringAbsen.getStrukVerifikasiSdm().getNoRec());
dataPM.put("penanggungJawabSDM", pegawaiPenanggungJawabSDM);
}
@ -1797,8 +1783,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
dataPM.put("alasan", alasanCuti);
listkehadiran.add(dataPM);
}
result.put("jumlahKelebihanJamKerja", jumlahKelebihanJamKerja / 60);
result.put("jumlahKelebihanMenitKerja", jumlahKelebihanJamKerja);
rsMap.put("jumlahKelebihanJamKerja", jumlahKelebihanJamKerja / 60);
rsMap.put("jumlahKelebihanMenitKerja", jumlahKelebihanJamKerja);
} catch (ParseException e) {
e.printStackTrace();
}
@ -1933,7 +1919,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
data.put("terlambat", (long) 0);
}
// Ambil data monitoringAbsen
MonitoringAbsen monitoringAbsen = monitoringAbsenDao.findByIdPegawaiAndTanggalMonitoringAbsen(idPegawai,
MonitoringAbsen monitoringAbsen = monitoringAbsenDao.findByIdPegawaiAndTanggalMonitoringAbsen(id,
data.get("tanggal").toString());
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen)) {
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen.getAlasan())) {
@ -1943,6 +1929,33 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
}
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen.getIsFotoSesuai())) {
data.put("isFotoSesuai", monitoringAbsen.getIsFotoSesuai());
} else {
data.put("isFotoSesuai", false);
}
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen.getIsLokasiSesuai())) {
data.put("isLokasiSesuai", monitoringAbsen.getIsLokasiSesuai());
} else {
data.put("isLokasiSesuai", false);
}
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen.getIsAtributLengkap())) {
data.put("isAtributLengkap", monitoringAbsen.getIsAtributLengkap());
} else {
data.put("isAtributLengkap", false);
}
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen.getIsVerifikasi())) {
data.put("isVerifikasi", monitoringAbsen.getIsVerifikasi());
} else {
data.put("isVerifikasi", false);
}
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen.getIsVerifikasi())
&& monitoringAbsen.getIsVerifikasi()) {
data.put("verifikasi", "V");
} else {
data.put("verifikasi", "X");
}
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen.getStrukVerifikasi())) {
data.put("tanggalVerifikasiUnitKerja",
dateFormat.format(monitoringAbsen.getStrukVerifikasi().getTglverifikasi()));
@ -1972,9 +1985,9 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
}
data.put("jamEfektif", jamEf);
data.put("kelebihanJamKerja", kelebihanJamKerja);
result.put("jumlahCountKelebihanJamKerja", jumlahCountKelebihanJamKerja);
result.put("jumlahKelebihanJamKerja", jumlahKelebihanJamKerja / 60);
result.put("jumlahKelebihanMenitKerja", jumlahKelebihanJamKerja);
rsMap.put("jumlahCountKelebihanJamKerja", jumlahCountKelebihanJamKerja);
rsMap.put("jumlahKelebihanJamKerja", jumlahKelebihanJamKerja / 60);
rsMap.put("jumlahKelebihanMenitKerja", jumlahKelebihanJamKerja);
data.put("jumlahTerlambat", jumlahTerlambat.toString());
data.put("jumlahJamEfektif", jumlahJamEfektif.toString());
data.put("jumlahPulangAwal", jumlahPulangAwal.toString());
@ -1993,19 +2006,50 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
mapKehadiran.put("cuti", cuti);
mapKehadiran.put("sakit", sakit);
}
result.put("jumlahJamLemburSdm", jumlahJamLemburUnitSdm);
result.put("jumlahJamLemburUnitKerja", jumlahJamLemburUnitKerja);
result.put("jumlahCountTerlambat", jumlahCountTerlambat);
result.put("jumlahTerlambat", jumlahTerlambat / 60);
result.put("menitTerlambat", jumlahTerlambat);
result.put("jumlahJamEfektif", jumlahJamEfektif / 60);
result.put("jumlahPulangAwal", jumlahPulangAwal / 60);
result.put("menitPulangAwal", jumlahPulangAwal);
result.put("jumlahCountPulangAwal", jumlahCountPulangAwal);
result.put("jumlahHariKerja", harikerja);
result.put("idPegawai", idPegawai);
result.put("mangkir", mangkir);
result.put("hariKerja", hariKerja);
rsMap.put("jumlahJamLemburSdm", jumlahJamLemburUnitSdm);
rsMap.put("jumlahJamLemburUnitKerja", jumlahJamLemburUnitKerja);
rsMap.put("jumlahCountTerlambat", jumlahCountTerlambat);
rsMap.put("jumlahTerlambat", jumlahTerlambat / 60);
rsMap.put("menitTerlambat", jumlahTerlambat);
rsMap.put("jumlahJamEfektif", jumlahJamEfektif / 60);
rsMap.put("jumlahPulangAwal", jumlahPulangAwal / 60);
rsMap.put("menitPulangAwal", jumlahPulangAwal);
rsMap.put("jumlahCountPulangAwal", jumlahCountPulangAwal);
rsMap.put("jumlahHariKerja", harikerja);
rsMap.put("idPegawai", id);
rsMap.put("mangkir", mangkir);
rsMap.put("hariKerja", hariKerja);
rsMap.put("listkehadiran", listkehadiran);
listRs.addAll((Collection<? extends Map<String, Object>>) rsMap.get("listkehadiran"));
}
result.put("listkehadiran", listRs);
return result;
}
@Override
@Transactional(readOnly = true)
public Map<String, Object> findKehadiranAllPegawai(String startDate, String endDate) {
Map<String, Object> result = new HashMap<String, Object>();
List<Map<String, Object>> listkehadiran = new ArrayList<Map<String, Object>>();
List<Integer> listId = pegawaiDao.findPegawaiStatusAktifAndKaryawan();
for (Integer idPegawai : listId) {
listkehadiran = this.findKehadiran(idPegawai, startDate, endDate);
}
result.put("listkehadiran", listkehadiran);
return result;
}
@Override
@Transactional(readOnly = true)
public Map<String, Object> findKehadiranPerPegawai(Integer idPegawai, String startDate, String endDate) {
Map<String, Object> result = new HashMap<String, Object>();
List<Map<String, Object>> listkehadiran = new ArrayList<Map<String, Object>>();
listkehadiran = this.findKehadiran(idPegawai, startDate, endDate);
result.put("listkehadiran", listkehadiran);
return result;
}
@ -2288,7 +2332,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
Integer headFactorRate = factorRateKelompokShiftDao.findFactorRateForEachKelompokShift(idKelompokShiftKerja,
periode);
result.put("headFactorRate", headFactorRate);
Map<String, Object> jumlahKehadiran = this.jumlahKehadiran(idPegawai, startDate, endDate);// get_kehadiran_terlambat_pulangawal
Map<String, Object> jumlahKehadiran = this.jumlahKehadiran(null, null, idPegawai, startDate, endDate);// get_kehadiran_terlambat_pulangawal
Integer p1 = 0;
Integer pagi = 0;
Integer sore = 0;

View File

@ -390,7 +390,7 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic
Map<String, Object> pirDanIku = ikiDanRemunerasiDao.getPirDanIku();
Double indeksKehadiran = ikiDanRemunerasiDao.getIndeksKehadiran(date, idPegawai);
Map<String, Object> monitoring = monitoringAbsenService.jumlahKehadiran(idPegawai, date,
Map<String, Object> monitoring = monitoringAbsenService.jumlahKehadiran(null, null, idPegawai, date,
periode + "-" + enDate);
Map<String, Object> result = pegawaiService.findPegawaiByIdCustom(idPegawai);
Map<String, Object> evaluasi = ikiDanRemunerasiDao.getEvaluasiJabatan(idPegawai);

View File

@ -94,6 +94,22 @@ public class MonitoringAbsen extends BaseTransaction {
@Column(name = "kelebihanJamKerja", nullable = true)
private Long kelebihanJamKerja;
@Caption(value = "Status Foto Sesuai")
@Column(name = "isfotosesuai", nullable = true)
private Boolean isFotoSesuai;
@Caption(value = "Status Lokasi Sesuai")
@Column(name = "islokasisesuai", nullable = true)
private Boolean isLokasiSesuai;
@Caption(value = "Status Atribut Lengkap")
@Column(name = "isatributlengkap", nullable = true)
private Boolean isAtributLengkap;
@Caption(value = "Status Verifikasi")
@Column(name = "isverifikasi", nullable = true)
private Boolean isVerifikasi;
public Pegawai getPegawai() {
return pegawai;
}
@ -206,8 +222,6 @@ public class MonitoringAbsen extends BaseTransaction {
this.strukVerifikasi = strukVerifikasi;
}
public StrukVerifikasi getStrukVerifikasiSdm() {
return strukVerifikasiSdm;
}
@ -216,7 +230,6 @@ public class MonitoringAbsen extends BaseTransaction {
this.strukVerifikasiSdm = strukVerifikasiSdm;
}
public Long getKelebihanJamKerja() {
return kelebihanJamKerja;
}
@ -249,4 +262,36 @@ public class MonitoringAbsen extends BaseTransaction {
this.verifiedLembur = verifiedLembur;
}
public Boolean getIsFotoSesuai() {
return isFotoSesuai;
}
public void setIsFotoSesuai(Boolean isFotoSesuai) {
this.isFotoSesuai = isFotoSesuai;
}
public Boolean getIsLokasiSesuai() {
return isLokasiSesuai;
}
public void setIsLokasiSesuai(Boolean isLokasiSesuai) {
this.isLokasiSesuai = isLokasiSesuai;
}
public Boolean getIsAtributLengkap() {
return isAtributLengkap;
}
public void setIsAtributLengkap(Boolean isAtributLengkap) {
this.isAtributLengkap = isAtributLengkap;
}
public Boolean getIsVerifikasi() {
return isVerifikasi;
}
public void setIsVerifikasi(Boolean isVerifikasi) {
this.isVerifikasi = isVerifikasi;
}
}

View File

@ -61,6 +61,18 @@ public class MonitoringAbsenVO extends BaseTransactionVO {
@Caption(value = "Verifikasi Lembur")
private Integer verifiedLembur;
@Caption(value = "Status Foto Sesuai")
private Boolean isFotoSesuai;
@Caption(value = "Status Lokasi Sesuai")
private Boolean isLokasiSesuai;
@Caption(value = "Status Atribut Lengkap")
private Boolean isAtributLengkap;
@Caption(value = "Status Verifikasi")
private Boolean isVerifikasi;
public PegawaiVO getPegawai() {
return pegawai;
}
@ -221,4 +233,36 @@ public class MonitoringAbsenVO extends BaseTransactionVO {
this.verifiedLembur = verifiedLembur;
}
public Boolean getIsFotoSesuai() {
return isFotoSesuai;
}
public void setIsFotoSesuai(Boolean isFotoSesuai) {
this.isFotoSesuai = isFotoSesuai;
}
public Boolean getIsLokasiSesuai() {
return isLokasiSesuai;
}
public void setIsLokasiSesuai(Boolean isLokasiSesuai) {
this.isLokasiSesuai = isLokasiSesuai;
}
public Boolean getIsAtributLengkap() {
return isAtributLengkap;
}
public void setIsAtributLengkap(Boolean isAtributLengkap) {
this.isAtributLengkap = isAtributLengkap;
}
public Boolean getIsVerifikasi() {
return isVerifikasi;
}
public void setIsVerifikasi(Boolean isVerifikasi) {
this.isVerifikasi = isVerifikasi;
}
}

View File

@ -2688,21 +2688,6 @@ public class SdmController extends LocaleController<AkunVO> {
}
}
@RequestMapping(value = "/get-kehadiran/{idPegawai}/{startDate}/{endDate}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> findKehadiran(@PathVariable("idPegawai") Integer idPegawai,
@PathVariable("startDate") String startDate, @PathVariable("endDate") String endDate,
HttpServletRequest request) {
Map<String, Object> result = null;
try {
result = monitoringAbsenService.jumlahKehadiran(idPegawai, startDate, endDate);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
} catch (Exception e) {
e.printStackTrace();
}
return RestUtil.getJsonResponse(result, HttpStatus.OK);
}
@RequestMapping(value = "/get-kehadiran-rev/{idPegawai}/{startDate}/{endDate}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> findKehadiranRev(@PathVariable("idPegawai") Integer idPegawai,
@PathVariable("startDate") String startDate, @PathVariable("endDate") String endDate,
@ -2753,13 +2738,28 @@ public class SdmController extends LocaleController<AkunVO> {
return RestUtil.getJsonResponse(result, HttpStatus.OK);
}
@RequestMapping(value = "/get-kehadiran/{idPegawai}/{startDate}/{endDate}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> findKehadiran(@PathVariable("idPegawai") Integer idPegawai,
@PathVariable("startDate") String startDate, @PathVariable("endDate") String endDate,
HttpServletRequest request) {
Map<String, Object> result = null;
try {
result = monitoringAbsenService.jumlahKehadiran(null, null, idPegawai, startDate, endDate);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
} catch (Exception e) {
e.printStackTrace();
}
return RestUtil.getJsonResponse(result, HttpStatus.OK);
}
@RequestMapping(value = "/get-kehadiran-by-ruangan/{idUnitKerja}/{startDate}/{endDate}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> findKehadiranByRuangan(@PathVariable("idUnitKerja") Integer idUnitKerja,
@PathVariable("startDate") String startDate, @PathVariable("endDate") String endDate,
HttpServletRequest request) {
Map<String, Object> result = null;
try {
result = monitoringAbsenService.findKehadiranByRuangan(idUnitKerja, startDate, endDate);
result = monitoringAbsenService.jumlahKehadiran(idUnitKerja, null, null, startDate, endDate);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
} catch (Exception e) {
@ -2774,7 +2774,7 @@ public class SdmController extends LocaleController<AkunVO> {
@PathVariable("endDate") String endDate, HttpServletRequest request) {
Map<String, Object> result = null;
try {
result = monitoringAbsenService.findKehadiranByRuangan(idUnitKerja, idSubUnitKerja, startDate, endDate);
result = monitoringAbsenService.jumlahKehadiran(idUnitKerja, idSubUnitKerja, null, startDate, endDate);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
} catch (Exception e) {