Update MonitoringAbsenService

Penyesuaian informasi presensi pegawai dengan VPN
This commit is contained in:
salmanoe 2023-01-11 20:52:32 +07:00
parent c197f2c381
commit 2d7667861a
6 changed files with 48 additions and 28 deletions

View File

@ -279,6 +279,7 @@ public class Master {
public static final String DEFAULT_ACC_CODE = "x";
public static final String SMART_LOC_CODE = "99999";
public static final Integer SMART_REMOTE_NO = 99;
public static final String VPN = "103.144.126.78";
public static final String[] INET_PROVIDERS = { "103.116.203.91", "103.116.203.92", "103.116.203.93",
"43.225.67.209" };

View File

@ -42,8 +42,8 @@ public interface HabsenDao extends PagingAndSortingRepository<Habsen, Integer> {
+ "where jk.pegawaiId = :idPegawai " + "and to_char(kd.tanggal, 'yyyy-MM-dd') = :tanggalJadwal")
String getPegawaiJadwal(@Param("idPegawai") Integer idPegawai, @Param("tanggalJadwal") String tanggalJadwal);
@Query("select new Map(to_char(hb.tr_time, 'HH24:MI:SS') as tr_time,"
+ "hb.processtatus as processtatus,hb.ip_addr as ip_addr," + "hb.tag as tag,"
@Query("select new Map(to_char(hb.tr_time, 'HH24:MI:SS') as tr_time," + "hb.processtatus as processtatus,"
+ "hb.ip_addr as ip_addr," + "hb.clientIPAddress as client_ip_addr," + "hb.tag as tag,"
+ "(case when hb.tag = 1 then 'Presensi masuk' "
+ "when hb.tag = 0 then 'Presensi keluar/pulang' end) as tagDesc) " + "from Habsen hb, Pegawai pg "
+ "where hb.empl_code = pg.idFinger " + "and pg.id = :idPegawai "
@ -81,7 +81,7 @@ public interface HabsenDao extends PagingAndSortingRepository<Habsen, Integer> {
String strQryHabsen = "select new Map(pg.id as id,pg.namaLengkap as namaLengkap,"
+ "hb.tr_no as tr_no,to_char(hb.tr_date,'dd-MM-yyyy') as tr_date,to_char(hb.tr_time,'HH24:MI:ss') as tr_time,"
+ "hb.processtatus as processtatus,hb.ip_addr as ip_addr,"
+ "hb.processtatus as processtatus,hb.ip_addr as ip_addr,hb.clientIPAddress as client_ip_addr,"
+ "hb.latitude as latitude,hb.longitude as longitude,hb.akurasi as akurasi,hb.lokasi as lokasi) "
+ "from Habsen hb, Pegawai pg " + "where hb.empl_code = pg.idFinger " + "and pg.statusEnabled is true";

View File

@ -56,8 +56,8 @@ public interface IndekKinerjaDao extends PagingAndSortingRepository<IndekKinerja
+ " (select distinct harga.hargaNetto1 from HargaNettoProdukByKelas harga where harga.produkId = produk.id "
+ "and ((harga.statusEnabled is true and harga.reportDisplay = 'tarif_2022_Nov') "
+ "or (harga.statusEnabled is false and harga.reportDisplay <> 'tarif_2022_Nov')) "
+ "and harga.kelasId = 3) as hargaKelas1, "
+ " dokter.id as idPegawai) " + " from PelayananPasienPetugas pelayananPasienPetugas"
+ "and harga.kelasId = 3) as hargaKelas1, " + " dokter.id as idPegawai) "
+ " from PelayananPasienPetugas pelayananPasienPetugas"
+ " left join pelayananPasienPetugas.kdpegawai dokter"
+ " left join pelayananPasienPetugas.pelayananPasien pelayananPasien"
+ " left join pelayananPasien.produk produk " + " left join pelayananPasien.kelas kelas "
@ -74,8 +74,8 @@ public interface IndekKinerjaDao extends PagingAndSortingRepository<IndekKinerja
+ " (select distinct harga.hargaNetto1 from HargaNettoProdukByKelas harga where harga.produkId = produk.id"
+ " and ((harga.statusEnabled is true and harga.reportDisplay = 'tarif_2022_Nov') "
+ "or (harga.statusEnabled is false and harga.reportDisplay <> 'tarif_2022_Nov')) "
+ "and harga.kelasId = 3) as hargaKelas1, "
+ " dokter.id as idPegawai) " + " from PelayananPasienPetugas pelayananPasienPetugas"
+ "and harga.kelasId = 3) as hargaKelas1, " + " dokter.id as idPegawai) "
+ " from PelayananPasienPetugas pelayananPasienPetugas"
+ " left join pelayananPasienPetugas.kdpegawai dokter"
+ " left join pelayananPasienPetugas.pelayananPasien pelayananPasien"
+ " left join pelayananPasien.produk produk " + " left join pelayananPasien.kelas kelas "
@ -368,16 +368,16 @@ public interface IndekKinerjaDao extends PagingAndSortingRepository<IndekKinerja
@Param("date") String date);
@Query(" select new map (absen.tr_no as tr_no," + "absen.tr_date as date," + "absen.tr_time as time,"
+ "absen.empl_code as employee," + "absen.ip_addr as ip_addr," + "absen.processtatus as processtatus)"
+ " from Habsen absen" + " where absen.empl_code = :idFinger"
+ "absen.empl_code as employee," + "absen.ip_addr as ip_addr," + "absen.clientIPAddress as client_ip_addr,"
+ "absen.processtatus as processtatus)" + " from Habsen absen" + " where absen.empl_code = :idFinger"
+ " and to_char(absen.tr_date,'yyyy-MM-dd') = :date" + " and loc_code = '99999'" + " and remoteno = '99'"
+ " order by absen.tr_date, absen.tr_time asc")
public List<Map<String, Object>> findAbsensiAplikasiPegawai(@Param("idFinger") String idFinger,
@Param("date") String date);
@Query(" select new map (absen.tr_no as tr_no," + "absen.tr_date as date," + "absen.tr_time as time,"
+ "absen.empl_code as employee," + "absen.ip_addr as ip_addr," + "absen.processtatus as processtatus)"
+ " from Habsen absen" + " where absen.empl_code = :idFinger"
+ "absen.empl_code as employee," + "absen.ip_addr as ip_addr," + "absen.clientIPAddress as client_ip_addr,"
+ "absen.processtatus as processtatus)" + " from Habsen absen" + " where absen.empl_code = :idFinger"
+ " and to_char(absen.tr_date,'yyyy-MM-dd') = :date" + " and loc_code <> '99999'" + " and remoteno <> '99'"
+ " order by absen.tr_date, absen.tr_time asc")
public List<Map<String, Object>> findAbsensiPegawai(@Param("idFinger") String idFinger, @Param("date") String date);

View File

@ -451,7 +451,7 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository<Monitorin
String jumPresHab = "select new Map(kl.tanggal as date," + "mj.unitKerjaPegawaiId as unitKerjaId,"
+ "mj.subUnitKerjaPegawaiId as subunitKerjaId," + "mj.pegawaiId as pegawaiId," + "hab.tr_no as trNo,"
+ "hab.tr_time as trTime," + "hab.processtatus as procesStatus," + "hab.ip_addr as ipAddr) "
+ "hab.tr_time as trTime," + "hab.processtatus as procesStatus," + "hab.ip_addr as ipAddr," + "hab.clientIPAddress as client_ip_addr) "
+ "from MapPegawaiJabatanToUnitKerja mj, " + "Kalender kl, " + "Habsen hab " + "left join mj.pegawai pg "
+ "where kl.tanggal = hab.tr_date " + "and hab.empl_code = pg.idFinger " + "and mj.statusEnabled is true "
+ "and pg.statusEnabled is true " + "and pg.idFinger is not null " + "and hab.loc_code = '99999' "

View File

@ -156,7 +156,7 @@ public class AbsensiPegawaiServiceImpl extends BaseVoServiceImpl implements Abse
uploadPhotoCapture(vo.getImageURLData(), idFinger, model.getTr_date(), model.getTr_time(),
resultDomain.getTr_no());
}
HabsenVO resultVO = new HabsenVO();
resultVO = presensiConverter.transferModelToVO(resultDomain, resultVO);
resultVO.setPegawai(vo.getPegawai());
@ -361,12 +361,21 @@ public class AbsensiPegawaiServiceImpl extends BaseVoServiceImpl implements Abse
} else {
map.put("processtatus", "WFO");
}
if (listIp.contains(map.get("ip_addr"))) {
map.put("ip_addr", "menggunakan jaringan internet RSAB");
} else if (CommonUtil.isNullOrEmpty(map.get("ip_addr"))) {
map.put("ip_addr", "jaringan internet tidak terdeteksi");
if (Master.PresensiPegawai.VPN.equals(map.get("ip_addr"))) {
if (map.get("client_ip_addr").toString().startsWith("172.16.198")) {
map.put("ip_addr", "bukan menggunakan jaringan internet RSAB");
map.put("processtatus", "VPN");
} else {
map.put("ip_addr", "menggunakan jaringan internet RSAB");
}
} else {
map.put("ip_addr", "bukan menggunakan jaringan internet RSAB");
if (listIp.contains(map.get("ip_addr"))) {
map.put("ip_addr", "menggunakan jaringan internet RSAB");
} else if (CommonUtil.isNullOrEmpty(map.get("ip_addr"))) {
map.put("ip_addr", "jaringan internet tidak terdeteksi");
} else {
map.put("ip_addr", "bukan menggunakan jaringan internet RSAB");
}
}
}
}

View File

@ -1753,8 +1753,10 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
dataPM.put("absensiMasuk", sdf.format(time));
if (CommonUtil.isNotNullOrEmpty(temp.get("ip_addr"))
&& CommonUtil.isNotNullOrEmpty(temp.get("processtatus"))) {
dataPM.put("validMasuk", validate(temp.get("ip_addr").toString(),
Integer.valueOf(temp.get("processtatus").toString())));
dataPM.put("validMasuk",
validate(temp.get("ip_addr").toString(),
temp.get("client_ip_addr").toString(),
Integer.valueOf(temp.get("processtatus").toString())));
} else {
dataPM.put("validMasuk", "Y");
}
@ -1771,8 +1773,10 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
dataPM.put("absensiPulang", sdf.format(time));
if (CommonUtil.isNotNullOrEmpty(temp.get("ip_addr"))
&& CommonUtil.isNotNullOrEmpty(temp.get("processtatus"))) {
dataPM.put("validPulang", validate(temp.get("ip_addr").toString(),
Integer.valueOf(temp.get("processtatus").toString())));
dataPM.put("validPulang",
validate(temp.get("ip_addr").toString(),
temp.get("client_ip_addr").toString(),
Integer.valueOf(temp.get("processtatus").toString())));
} else {
dataPM.put("validPulang", "Y");
}
@ -1987,8 +1991,9 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
data.put("absensiMasuk", sdf.format(time));
if (CommonUtil.isNotNullOrEmpty(temp.get("ip_addr"))
&& CommonUtil.isNotNullOrEmpty(temp.get("processtatus"))) {
data.put("validMasuk", validate(temp.get("ip_addr").toString(),
Integer.valueOf(temp.get("processtatus").toString())));
data.put("validMasuk",
validate(temp.get("ip_addr").toString(), temp.get("client_ip_addr").toString(),
Integer.valueOf(temp.get("processtatus").toString())));
} else {
data.put("validMasuk", "Y");
}
@ -2005,8 +2010,9 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
data.put("absensiPulang", sdf.format(time));
if (CommonUtil.isNotNullOrEmpty(temp.get("ip_addr"))
&& CommonUtil.isNotNullOrEmpty(temp.get("processtatus"))) {
data.put("validPulang", validate(temp.get("ip_addr").toString(),
Integer.valueOf(temp.get("processtatus").toString())));
data.put("validPulang",
validate(temp.get("ip_addr").toString(), temp.get("client_ip_addr").toString(),
Integer.valueOf(temp.get("processtatus").toString())));
} else {
data.put("validPulang", "Y");
}
@ -2267,7 +2273,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
}
@Transactional(readOnly = true)
public String validate(String ipAddress, Integer processStatus) {
public String validate(String ipAddress, String clientIPAddress, Integer processStatus) {
List<String> listIp = stringSplitDataSettingDatafixed("ip_addr");
if (CommonUtil.isNotNullOrEmpty(listIp)) {
if (processStatus.equals(1) && listIp.contains(ipAddress)) {
@ -2278,7 +2284,11 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
&& !listIp.contains(ipAddress)) {
return "T";
} else {
return "Y";
if (ipAddress.equals(Master.PresensiPegawai.VPN) && clientIPAddress.startsWith("172.16.198")) {
return "T";
} else {
return "Y";
}
}
} else {
return "";