- perbaikan service get nilai batas terendah dan tertinggi di evaluasi jabatan
- perbaikan format lintang bujur saat pengecekan swafoto dan lokasi presensi
This commit is contained in:
parent
edace95838
commit
050fdcc0e3
@ -147,6 +147,10 @@ public class Master {
|
||||
public static final Integer NONKELAS = 6;
|
||||
}
|
||||
|
||||
public static final class KelompokJabatan {
|
||||
public static final Integer[] RANGE_REMUN = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
|
||||
}
|
||||
|
||||
public static final class KelompokPasien {
|
||||
public static final Integer BPJS = 2;
|
||||
public static final Integer UMUM = 1;
|
||||
|
||||
@ -72,9 +72,12 @@ public interface JabatanDao extends PagingAndSortingRepository<Jabatan, Integer>
|
||||
String strJabatan = "select new Map(jb.id as id,jb.namaJabatan as namaJabatan,"
|
||||
+ "jb.levelJabatan as levelJabatan,jb.subLevelJabatan as levelDireksi,"
|
||||
+ "jj.id as jenisJabatanId,jj.jenisJabatan as jenisJabatan," + "uk.id as unitKerjaId,uk.name as unitKerja,"
|
||||
+ "el.id as eselonId,el.eselon as eselon) " + "from Jabatan jb " + "inner join jb.jenisJabatan jj "
|
||||
+ "inner join jb.unitKerja uk " + "left join jb.eselon el with el.statusEnabled is true "
|
||||
+ "where jb.statusEnabled is true " + "and jj.statusEnabled is true " + "and uk.statusEnabled is true";
|
||||
+ "el.id as eselonId,el.eselon as eselon,"
|
||||
+ "kj.id as kelompokJabatanId,kj.namaKelompokJabatan as kelompokJabatan) " + "from Jabatan jb "
|
||||
+ "inner join jb.jenisJabatan jj " + "inner join jb.unitKerja uk "
|
||||
+ "left join jb.eselon el with el.statusEnabled is true "
|
||||
+ "left join jb.kelompokJabatan kj with kj.id between 1 and 10 " + "where jb.statusEnabled is true "
|
||||
+ "and jj.statusEnabled is true " + "and uk.statusEnabled is true";
|
||||
|
||||
String namaJabatan = " and lower(jb.namaJabatan) like %:namaJabatan%";
|
||||
|
||||
@ -112,4 +115,17 @@ public interface JabatanDao extends PagingAndSortingRepository<Jabatan, Integer>
|
||||
List<Map<String, Object>> findJabatanByNamaJenisUnit(@Param("namaJabatan") String namaJabatan,
|
||||
@Param("jenisJabatanId") Integer idJenisJabatan, @Param("unitKerjaId") Integer idUnitKerja);
|
||||
|
||||
@Query("select new Map(jb.id as id,jb.namaJabatan as namaJabatan," + "jb.kelompokJabatanId as kelompokJabatanId) "
|
||||
+ "from Jabatan jb " + "where jb.statusEnabled is true " + "and jb.unitKerjaId = :unitKerjaId "
|
||||
+ "and jb.jenisJabatanId = :jenisJabatanId " + "group by jb.id, jb.namaJabatan "
|
||||
+ "order by jb.namaJabatan")
|
||||
List<Map<String, Object>> findJabatan(@Param("jenisJabatanId") Integer idJenisJabatan,
|
||||
@Param("unitKerjaId") Integer idUnitKerja);
|
||||
|
||||
@Query("select new Map(nj.kelompokJabatanId as kelompokJabatanId," + "min(nj.nilaiTerendah) as nilaiTerendah,"
|
||||
+ "max(nj.nilaiTertinggi) as nilaiTertinggi) " + "from NilaiKelompokJabatan nj "
|
||||
+ "where nj.statusEnabled is true " + "and nj.kelompokJabatanId in (:listKelompokJabatanId) "
|
||||
+ "group by nj.kelompokJabatanId " + "order by min(nj.nilaiTerendah)")
|
||||
List<Map<String, Object>> findPeringkatJabatan(@Param("listKelompokJabatanId") List<Integer> listIdKelompokJabatan);
|
||||
|
||||
}
|
||||
|
||||
@ -35,4 +35,7 @@ public interface JabatanService extends BaseVoService<Jabatan, JabatanVO, Intege
|
||||
|
||||
List<Map<String, Object>> findPegawaiByJabatan(Integer idJabatan) throws JpaSystemException;
|
||||
|
||||
List<Map<String, Object>> findJabatanDanBatasNilai(Integer idJenisJabatan, Integer idUnitKerja)
|
||||
throws JpaSystemException;
|
||||
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.text.DateFormat;
|
||||
import java.text.NumberFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
@ -127,11 +128,11 @@ public class AbsensiPegawaiServiceImpl extends BaseVoServiceImpl implements Abse
|
||||
model.setLoc_code(Master.PresensiPegawai.SMART_LOC_CODE);
|
||||
model.setRemoteno(Master.PresensiPegawai.SMART_REMOTE_NO);
|
||||
model.setAcc_code(Master.PresensiPegawai.DEFAULT_ACC_CODE);
|
||||
|
||||
|
||||
// automatic reverse geocoding was disabled
|
||||
// due to too many request to nominatim.openstreetmap.org
|
||||
model.setLokasi(null);
|
||||
|
||||
|
||||
model.setTr_date(newDate);
|
||||
model.setTr_time(newDate);
|
||||
|
||||
@ -207,6 +208,48 @@ public class AbsensiPegawaiServiceImpl extends BaseVoServiceImpl implements Abse
|
||||
|
||||
}
|
||||
|
||||
private Double getDecimal(Double n) {
|
||||
return n - Math.floor(n);
|
||||
}
|
||||
|
||||
private String getCoordinateFormatted(Double latitude, Double longitude) {
|
||||
NumberFormat nf = NumberFormat.getNumberInstance();
|
||||
|
||||
nf.setMaximumFractionDigits(0);
|
||||
String latDegStr = nf.format(Math.floor(Math.abs(latitude)));
|
||||
String latMinStr = nf.format(Math.floor(getDecimal(Math.abs(latitude)) * 60));
|
||||
|
||||
nf.setMaximumFractionDigits(2);
|
||||
String latSecStr = nf.format(getDecimal(getDecimal(Math.abs(latitude)) * 60) * 60);
|
||||
|
||||
String latStr = "";
|
||||
if (latitude < 0) {
|
||||
latStr = latDegStr + "\u00B0" + latMinStr + "\u2032" + latSecStr + "\u2033 LS";
|
||||
} else if (latitude > 0) {
|
||||
latStr = latDegStr + "\u00B0" + latMinStr + "\u2032" + latSecStr + "\u2033 LU";
|
||||
} else {
|
||||
latStr = latDegStr + "\u00B0" + latMinStr + "\u2032" + latSecStr + "\u2033";
|
||||
}
|
||||
|
||||
nf.setMaximumFractionDigits(0);
|
||||
String longDegStr = nf.format(Math.floor(Math.abs(longitude)));
|
||||
String longMinStr = nf.format(Math.floor(getDecimal(Math.abs(longitude)) * 60));
|
||||
|
||||
nf.setMaximumFractionDigits(2);
|
||||
String longSecStr = nf.format(getDecimal(getDecimal(Math.abs(longitude)) * 60) * 60);
|
||||
|
||||
String longStr = "";
|
||||
if (longitude < 0) {
|
||||
longStr = longDegStr + "\u00B0" + longMinStr + "\u2032" + longSecStr + "\u2033 BB";
|
||||
} else if (longitude > 0) {
|
||||
longStr = longDegStr + "\u00B0" + longMinStr + "\u2032" + longSecStr + "\u2033 BT";
|
||||
} else {
|
||||
longStr = longDegStr + "\u00B0" + longMinStr + "\u2032" + longSecStr + "\u2033";
|
||||
}
|
||||
|
||||
return latStr + ", " + longStr;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> findDetailPresensi(List<Integer> listTrNo) {
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
@ -224,12 +267,14 @@ public class AbsensiPegawaiServiceImpl extends BaseVoServiceImpl implements Abse
|
||||
if (CommonUtil.isNotNullOrEmpty(encodeRs) && CommonUtil.isNotNullOrEmpty(map.get("akurasi"))
|
||||
&& CommonUtil.isNotNullOrEmpty(map.get("lintang"))
|
||||
&& CommonUtil.isNotNullOrEmpty(map.get("bujur"))) {
|
||||
|
||||
mapRs.put("imageURLData", imageURLData);
|
||||
mapRs.put("date", map.get("tanggal"));
|
||||
mapRs.put("latitude", map.get("lintang"));
|
||||
mapRs.put("longitude", map.get("bujur"));
|
||||
mapRs.put("accuracy", map.get("akurasi").toString());
|
||||
mapRs.put("location", map.get("lintang").toString() + ", " + map.get("bujur").toString());
|
||||
mapRs.put("location", getCoordinateFormatted(Double.valueOf(map.get("lintang").toString()),
|
||||
Double.valueOf(map.get("bujur").toString())));
|
||||
} else if (CommonUtil.isNullOrEmpty(encodeRs) && CommonUtil.isNotNullOrEmpty(map.get("akurasi"))
|
||||
&& CommonUtil.isNotNullOrEmpty(map.get("lintang"))
|
||||
&& CommonUtil.isNotNullOrEmpty(map.get("bujur"))) {
|
||||
@ -238,7 +283,8 @@ public class AbsensiPegawaiServiceImpl extends BaseVoServiceImpl implements Abse
|
||||
mapRs.put("latitude", map.get("lintang"));
|
||||
mapRs.put("longitude", map.get("bujur"));
|
||||
mapRs.put("accuracy", map.get("akurasi").toString());
|
||||
mapRs.put("location", map.get("lintang").toString() + ", " + map.get("bujur").toString());
|
||||
mapRs.put("location", getCoordinateFormatted(Double.valueOf(map.get("lintang").toString()),
|
||||
Double.valueOf(map.get("bujur").toString())));
|
||||
} else if (CommonUtil.isNotNullOrEmpty(encodeRs) && CommonUtil.isNullOrEmpty(map.get("akurasi"))
|
||||
&& CommonUtil.isNullOrEmpty(map.get("lintang")) && CommonUtil.isNullOrEmpty(map.get("bujur"))) {
|
||||
mapRs.put("imageURLData", imageURLData);
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.jasamedika.medifirst2000.service.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -10,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.orm.jpa.JpaSystemException;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Master;
|
||||
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
|
||||
import com.jasamedika.medifirst2000.dao.JabatanDao;
|
||||
import com.jasamedika.medifirst2000.dao.KelompokJabatanDao;
|
||||
@ -85,20 +87,18 @@ public class JabatanServiceImpl extends BaseVoServiceImpl implements JabatanServ
|
||||
public JabatanVO add(JabatanVO vo) throws JpaSystemException, ServiceVOException {
|
||||
Jabatan jabatan = jabatanConverter.transferVOToModel(vo, new Jabatan());
|
||||
|
||||
JenisJabatan jenisJabatan = jenisJabatanConverter.transferVOToModel(vo.getJenisJabatan(), new JenisJabatan());
|
||||
UnitKerjaPegawai unitKerja = unitKerjaConverter.transferVOToModel(vo.getUnitKerja(), new UnitKerjaPegawai());
|
||||
JenisJabatan jenisJabatan = jenisJabatanConverter.transferVOToModel(vo.getJenisJabatan(), new JenisJabatan());
|
||||
KelompokJabatan kelompokJabatan = kelompokJabatanConverter.transferVOToModel(vo.getKelompokJabatan(),
|
||||
new KelompokJabatan());
|
||||
|
||||
if (CommonUtil.isNotNullOrEmpty(vo.getKelompokJabatan())) {
|
||||
KelompokJabatan kelompokJabatan = kelompokJabatanConverter.transferVOToModel(vo.getKelompokJabatan(),
|
||||
new KelompokJabatan());
|
||||
jabatan.setKelompokJabatan(kelompokJabatan);
|
||||
}
|
||||
if (CommonUtil.isNotNullOrEmpty(vo.getEselon())) {
|
||||
Eselon eselon = eselonConverter.transferVOToModel(vo.getEselon(), new Eselon());
|
||||
jabatan.setEselon(eselon);
|
||||
}
|
||||
jabatan.setUnitKerja(unitKerja);
|
||||
jabatan.setJenisJabatan(jenisJabatan);
|
||||
jabatan.setKelompokJabatan(kelompokJabatan);
|
||||
Jabatan resultModel = jabatanDao.save(jabatan);
|
||||
|
||||
JabatanVO resultVO = new JabatanVO();
|
||||
@ -112,14 +112,11 @@ public class JabatanServiceImpl extends BaseVoServiceImpl implements JabatanServ
|
||||
Jabatan jabatanLama = jabatanDao.findOne(vo.getId());
|
||||
Jabatan jabatanBaru = jabatanConverter.transferVOToModel(vo, jabatanLama);
|
||||
|
||||
JenisJabatan jenisJabatan = jenisJabatanConverter.transferVOToModel(vo.getJenisJabatan(), new JenisJabatan());
|
||||
UnitKerjaPegawai unitKerja = unitKerjaConverter.transferVOToModel(vo.getUnitKerja(), new UnitKerjaPegawai());
|
||||
JenisJabatan jenisJabatan = jenisJabatanConverter.transferVOToModel(vo.getJenisJabatan(), new JenisJabatan());
|
||||
KelompokJabatan kelompokJabatan = kelompokJabatanConverter.transferVOToModel(vo.getKelompokJabatan(),
|
||||
new KelompokJabatan());
|
||||
|
||||
if (CommonUtil.isNotNullOrEmpty(vo.getKelompokJabatan())) {
|
||||
KelompokJabatan kelompokJabatan = kelompokJabatanConverter.transferVOToModel(vo.getKelompokJabatan(),
|
||||
new KelompokJabatan());
|
||||
jabatanBaru.setKelompokJabatan(kelompokJabatan);
|
||||
}
|
||||
if (CommonUtil.isNotNullOrEmpty(vo.getEselon())) {
|
||||
Eselon eselon = eselonConverter.transferVOToModel(vo.getEselon(), new Eselon());
|
||||
jabatanBaru.setEselon(eselon);
|
||||
@ -129,6 +126,7 @@ public class JabatanServiceImpl extends BaseVoServiceImpl implements JabatanServ
|
||||
}
|
||||
jabatanBaru.setUnitKerja(unitKerja);
|
||||
jabatanBaru.setJenisJabatan(jenisJabatan);
|
||||
jabatanBaru.setKelompokJabatan(kelompokJabatan);
|
||||
Jabatan resultModel = jabatanDao.save(jabatanBaru);
|
||||
|
||||
JabatanVO resultVO = new JabatanVO();
|
||||
@ -351,4 +349,33 @@ public class JabatanServiceImpl extends BaseVoServiceImpl implements JabatanServ
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> findJabatanDanBatasNilai(Integer idJenisJabatan, Integer idUnitKerja)
|
||||
throws JpaSystemException {
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
|
||||
List<Map<String, Object>> dataPeringkat = jabatanDao
|
||||
.findPeringkatJabatan(Arrays.asList(Master.KelompokJabatan.RANGE_REMUN));
|
||||
List<Map<String, Object>> dataJabatan = jabatanDao.findJabatan(idJenisJabatan, idUnitKerja);
|
||||
for (Map<String, Object> jabatan : dataJabatan) {
|
||||
Integer nilaiTerendah = null;
|
||||
Integer nilaiTertinggi = null;
|
||||
for (Map<String, Object> peringkat : dataPeringkat) {
|
||||
if (CommonUtil.isNotNullOrEmpty(jabatan.get("kelompokJabatanId"))
|
||||
&& jabatan.get("kelompokJabatanId").equals(peringkat.get("kelompokJabatanId"))) {
|
||||
nilaiTerendah = Integer.valueOf(peringkat.get("nilaiTerendah").toString());
|
||||
nilaiTertinggi = Integer.valueOf(peringkat.get("nilaiTertinggi").toString());
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
jabatan.put("nilaiTerendah", nilaiTerendah);
|
||||
jabatan.put("nilaiTertinggi", nilaiTertinggi);
|
||||
|
||||
result.add(jabatan);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
@ -252,4 +252,23 @@ public class JabatanController extends LocaleController<JabatanVO> {
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/get-jabatan-dan-batas-nilai", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<List<Map<String, Object>>> getJabatanDanBatasNilai(HttpServletRequest request,
|
||||
@RequestParam(value = "jenisJabatanId", required = true) Integer idJenisJabatan,
|
||||
@RequestParam(value = "unitKerjaId", required = true) Integer idUnitKerja) {
|
||||
try {
|
||||
List<Map<String, Object>> result = jabatanService.findJabatanDanBatasNilai(idJenisJabatan, idUnitKerja);
|
||||
|
||||
return RestUtil.getJsonResponse(result, HttpStatus.OK);
|
||||
} catch (ServiceVOException e) {
|
||||
LOGGER.error("Got exception {} when get jabatan dan batas nilai jabatan", e.getMessage());
|
||||
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage());
|
||||
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage);
|
||||
} catch (JpaSystemException jse) {
|
||||
LOGGER.error("Got exception {} when get jabatan dan batas nilai jabatan", jse.getMessage());
|
||||
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
|
||||
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user