Update AbsensiPegawaiService

Perbaikan format dan storing data untuk log elasticsearch
This commit is contained in:
salmanoe 2022-07-13 07:19:11 +07:00
parent 8a3b285e17
commit 3e9d684dc3
7 changed files with 142 additions and 36 deletions

View File

@ -234,6 +234,10 @@ public class Master {
public static final Double PERSENTASE_TINDAKAN_PENUNJANG_BUKAN_ANASTESI = 30.0; public static final Double PERSENTASE_TINDAKAN_PENUNJANG_BUKAN_ANASTESI = 30.0;
public static final Double TARIF_REMUNERASI = 45000.0; public static final Double TARIF_REMUNERASI = 45000.0;
} }
public static final class Logging {
public static final String PRESENSI_PEGAWAI = "logging-presensi-pegawai";
}
public static final class LoginUser { public static final class LoginUser {
public static final int GENERATED_NEW_LOGIN = 1; public static final int GENERATED_NEW_LOGIN = 1;

View File

@ -0,0 +1,73 @@
package com.jasamedika.medifirst2000.converter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Component;
import com.google.gson.Gson;
import com.jasamedika.medifirst2000.converter.base.BaseVoConverter;
import com.jasamedika.medifirst2000.entities.Habsen;
import com.jasamedika.medifirst2000.vo.HabsenVO;
/**
* @author salmanoe
* @since Jul 12, 2022
*
*/
@Component
public class PresensiConverter implements BaseVoConverter<HabsenVO, Habsen> {
@Override
public Habsen transferVOToModel(HabsenVO vo, Habsen model) {
if (null == model)
model = new Habsen();
try {
String[] fieldsToInclude = null;
Map<String, Object> serialized = vo.serialize(fieldsToInclude,vo.getClass().getName());
Gson gson = new Gson();
String json = gson.toJson(serialized);
model = gson.fromJson(json, Habsen.class);
} catch (Exception e) {
e.printStackTrace();
}
return model;
}
@Override
public List<HabsenVO> transferListOfModelToListOfVO(List<Habsen> models, List<HabsenVO> vos) {
if (null == vos)
vos = new ArrayList<HabsenVO>();
if (null == models)
return vos;
for (Habsen habsen : models) {
HabsenVO vo = new HabsenVO();
vo = transferModelToVO(habsen, vo);
vos.add(vo);
}
return vos;
}
@Override
public HabsenVO transferModelToVO(Habsen model, HabsenVO vo) {
if (null == vo)
vo = new HabsenVO();
try {
String[] fieldsToInclude = null;
Map<String, Object> serialized = model.serialize(fieldsToInclude,model.getClass().getSimpleName());
Gson gson = new Gson();
String json = gson.toJson(serialized);
vo = gson.fromJson(json, HabsenVO.class);
} catch (Exception e) {
e.printStackTrace();
}
return vo;
}
}

View File

@ -22,6 +22,7 @@ import org.springframework.stereotype.Service;
import com.jasamedika.medifirst2000.constants.Master; import com.jasamedika.medifirst2000.constants.Master;
import com.jasamedika.medifirst2000.converter.BaseConverterImpl; import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.converter.PresensiConverter;
import com.jasamedika.medifirst2000.dao.AbsensiPegawaiDao; import com.jasamedika.medifirst2000.dao.AbsensiPegawaiDao;
import com.jasamedika.medifirst2000.dao.HabsenDao; import com.jasamedika.medifirst2000.dao.HabsenDao;
import com.jasamedika.medifirst2000.dao.JadwalDokterDao; import com.jasamedika.medifirst2000.dao.JadwalDokterDao;
@ -31,6 +32,7 @@ import com.jasamedika.medifirst2000.entities.Habsen;
import com.jasamedika.medifirst2000.entities.JadwalDokter; import com.jasamedika.medifirst2000.entities.JadwalDokter;
import com.jasamedika.medifirst2000.entities.ShiftKerja; import com.jasamedika.medifirst2000.entities.ShiftKerja;
import com.jasamedika.medifirst2000.service.AbsensiPegawaiService; import com.jasamedika.medifirst2000.service.AbsensiPegawaiService;
import com.jasamedika.medifirst2000.service.LogAccService;
import com.jasamedika.medifirst2000.util.CommonUtil; import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.util.ImageUtil; import com.jasamedika.medifirst2000.util.ImageUtil;
import com.jasamedika.medifirst2000.vo.AbsensiPegawaiVO; import com.jasamedika.medifirst2000.vo.AbsensiPegawaiVO;
@ -52,7 +54,7 @@ public class AbsensiPegawaiServiceImpl extends BaseVoServiceImpl implements Abse
private BaseConverterImpl<AbsensiPegawaiVO, AbsensiPegawai> absensiPegawaiConverter; private BaseConverterImpl<AbsensiPegawaiVO, AbsensiPegawai> absensiPegawaiConverter;
@Autowired @Autowired
private BaseConverterImpl<HabsenVO, Habsen> habsenConverter; private PresensiConverter presensiConverter;
@Autowired @Autowired
private AbsensiPegawaiDao absensiPegawaiDao; private AbsensiPegawaiDao absensiPegawaiDao;
@ -66,6 +68,9 @@ public class AbsensiPegawaiServiceImpl extends BaseVoServiceImpl implements Abse
@Autowired @Autowired
private JadwalDokterDao jadwalDokterDao; private JadwalDokterDao jadwalDokterDao;
@Autowired
private LogAccService logAccService;
@Override @Override
public Map<String, Object> saveAbsensiPegawai(AbsensiPegawaiVO vo) { public Map<String, Object> saveAbsensiPegawai(AbsensiPegawaiVO vo) {
Map<String, Object> result = new HashMap<String, Object>(); Map<String, Object> result = new HashMap<String, Object>();
@ -118,13 +123,12 @@ public class AbsensiPegawaiServiceImpl extends BaseVoServiceImpl implements Abse
@Override @Override
public Map<String, Object> saveHabsensiPegawai(HabsenVO vo) { public Map<String, Object> saveHabsensiPegawai(HabsenVO vo) {
Map<String, Object> result = new HashMap<String, Object>(); Map<String, Object> result = new HashMap<String, Object>();
Habsen model = new Habsen();
Date newDate = new Date(); Habsen model = presensiConverter.transferVOToModel(vo, new Habsen());
String idFinger = pegawaiDao.getidFinger(vo.getPegawai().getId()); String idFinger = pegawaiDao.getidFinger(vo.getPegawai().getId());
model = habsenConverter.transferVOToModel(vo, model);
model.setEmpl_code(idFinger); model.setEmpl_code(idFinger);
model.setLoc_code(Master.PresensiPegawai.SMART_LOC_CODE); model.setLoc_code(Master.PresensiPegawai.SMART_LOC_CODE);
model.setRemoteno(Master.PresensiPegawai.SMART_REMOTE_NO); model.setRemoteno(Master.PresensiPegawai.SMART_REMOTE_NO);
model.setAcc_code(Master.PresensiPegawai.DEFAULT_ACC_CODE); model.setAcc_code(Master.PresensiPegawai.DEFAULT_ACC_CODE);
@ -135,8 +139,9 @@ public class AbsensiPegawaiServiceImpl extends BaseVoServiceImpl implements Abse
*/ */
model.setLokasi(null); model.setLokasi(null);
model.setTr_date(newDate); Date now = new Date();
model.setTr_time(newDate); model.setTr_date(now);
model.setTr_time(now);
if (CommonUtil.isNotNullOrEmpty(vo.getIp_addr())) { if (CommonUtil.isNotNullOrEmpty(vo.getIp_addr())) {
model.setIp_addr(vo.getIp_addr()); model.setIp_addr(vo.getIp_addr());
@ -155,6 +160,11 @@ public class AbsensiPegawaiServiceImpl extends BaseVoServiceImpl implements Abse
} }
} }
HabsenVO resultVO = new HabsenVO();
resultVO = presensiConverter.transferModelToVO(resultDomain, resultVO);
resultVO.setPegawai(vo.getPegawai());
logAccService.putToLog(resultVO);
return result; return result;
} }

View File

@ -15,15 +15,21 @@ import java.util.Map;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.jasamedika.medifirst2000.constants.Master;
import com.jasamedika.medifirst2000.dao.SettingDataFixedDao;
import com.jasamedika.medifirst2000.service.LogAccService; import com.jasamedika.medifirst2000.service.LogAccService;
import com.jasamedika.medifirst2000.util.CommonUtil; import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.vo.HabsenVO; import com.jasamedika.medifirst2000.vo.HabsenVO;
@Service("logAccService") @Service("logAccService")
public class LogAccServiceImpl extends BaseVoServiceImpl implements LogAccService { public class LogAccServiceImpl extends BaseVoServiceImpl implements LogAccService {
@Autowired
private static SettingDataFixedDao settingDataFixedDao;
public static Map<String, Object> jsonToMap(JSONObject json) throws JSONException { public static Map<String, Object> jsonToMap(JSONObject json) throws JSONException {
Map<String, Object> retMap = new HashMap<String, Object>(); Map<String, Object> retMap = new HashMap<String, Object>();
@ -69,7 +75,8 @@ public class LogAccServiceImpl extends BaseVoServiceImpl implements LogAccServic
@Override @Override
public void putToLog(HabsenVO vo) { public void putToLog(HabsenVO vo) {
try { try {
URL url = new URL("http://172.16.55.22:38080/logs/absensi"); String urlToString = settingDataFixedDao.getSettingDataFixed(Master.Logging.PRESENSI_PEGAWAI);
URL url = new URL(urlToString);
HttpURLConnection con = (HttpURLConnection) url.openConnection(); HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("PUT"); con.setRequestMethod("PUT");
con.setRequestProperty("Content-Type", "application/json; utf-8"); con.setRequestProperty("Content-Type", "application/json; utf-8");
@ -77,8 +84,9 @@ public class LogAccServiceImpl extends BaseVoServiceImpl implements LogAccServic
con.setDoOutput(true); con.setDoOutput(true);
OutputStream os = con.getOutputStream(); OutputStream os = con.getOutputStream();
String jsonOutputString = "{\"tr_no\":\"" + vo.getTr_no() + "\",\"empl_code\":" + vo.getEmpl_code() String jsonOutputString = "{tr_no:" + vo.getTr_no() + ",empl_code:\"" + vo.getEmpl_code() + "\",ip_addr:\""
+ ",\"ip_addr\":" + vo.getIp_addr() + ",\"client_ip_addr\":" + vo.getClientIPAddress() + "\"}"; + vo.getIp_addr() + "\",client_ip_addr:\"" + vo.getClientIPAddress() + "\"}";
byte[] requestBody = jsonOutputString.getBytes("UTF-8"); byte[] requestBody = jsonOutputString.getBytes("UTF-8");
os.write(requestBody, 0, requestBody.length); os.write(requestBody, 0, requestBody.length);

View File

@ -18,6 +18,8 @@ import com.jasamedika.medifirst2000.helper.Caption;
@Table(name = "Habsen") @Table(name = "Habsen")
public class Habsen extends BaseModel { public class Habsen extends BaseModel {
private static final long serialVersionUID = 6197131414965211726L;
@Id @Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "native") @GeneratedValue(strategy = GenerationType.AUTO, generator = "native")
@GenericGenerator(name = "native", strategy = "native") @GenericGenerator(name = "native", strategy = "native")
@ -76,6 +78,10 @@ public class Habsen extends BaseModel {
@Column(name = "lokasi", nullable = true, length = 1000) @Column(name = "lokasi", nullable = true, length = 1000)
@Caption(value = "lokasi") @Caption(value = "lokasi")
private String lokasi; private String lokasi;
@Column(name = "image_url", nullable = true)
@Caption(value = "Image URL")
private byte[] imageUrl;
@Column(name = "jenispresensi", nullable = true) @Column(name = "jenispresensi", nullable = true)
@Caption(value = "Jenis Presensi") @Caption(value = "Jenis Presensi")
@ -201,6 +207,14 @@ public class Habsen extends BaseModel {
this.lokasi = lokasi; this.lokasi = lokasi;
} }
public byte[] getImageUrl() {
return imageUrl;
}
public void setImageUrl(byte[] imageUrl) {
this.imageUrl = imageUrl;
}
public Integer getJenisPresensi() { public Integer getJenisPresensi() {
return jenisPresensi; return jenisPresensi;
} }

View File

@ -2,10 +2,10 @@ package com.jasamedika.medifirst2000.vo;
import java.util.Date; import java.util.Date;
import com.jasamedika.medifirst2000.base.vo.BaseMasterVO; import com.jasamedika.medifirst2000.base.vo.BaseModelVO;
import com.jasamedika.medifirst2000.helper.Caption; import com.jasamedika.medifirst2000.helper.Caption;
public class HabsenVO extends BaseMasterVO { public class HabsenVO extends BaseModelVO {
@Caption(value = "tr_no") @Caption(value = "tr_no")
private Integer tr_no; private Integer tr_no;
@ -21,8 +21,8 @@ public class HabsenVO extends BaseMasterVO {
@Caption(value = "tr_time") @Caption(value = "tr_time")
private Date tr_time; private Date tr_time;
@Caption(value = "pegawai") @Caption(value = "Pegawai")
private PegawaiVO pegawai; private PegawaiVO pegawai;
@Caption(value = "empl_code") @Caption(value = "empl_code")
@ -37,7 +37,7 @@ public class HabsenVO extends BaseMasterVO {
@Caption(value = "ip_addr") @Caption(value = "ip_addr")
private String ip_addr; private String ip_addr;
@Caption(value = "clientIPAddress") @Caption(value = "client_ip_addr")
private String clientIPAddress; private String clientIPAddress;
@Caption(value = "latitude") @Caption(value = "latitude")
@ -52,13 +52,17 @@ public class HabsenVO extends BaseMasterVO {
@Caption(value = "lokasi") @Caption(value = "lokasi")
private String lokasi; private String lokasi;
@Caption(value = "jenispresensi") @Caption(value = "Jenis Presensi")
private Integer jenisPresensi; private Integer jenisPresensi;
@Caption(value = "imageURLData") @Caption(value = "Image URL Data")
private String imageURLData; private String imageURLData;
@Caption(value = "tag") /**
* 0. Presensi keluar/pulang<br/>
* 1. Presensi masuk
*/
@Caption(value = "Tag")
private Short tag; private Short tag;
public Integer getTr_no() { public Integer getTr_no() {
@ -101,14 +105,6 @@ public class HabsenVO extends BaseMasterVO {
this.tr_time = tr_time; this.tr_time = tr_time;
} }
public String getEmpl_code() {
return empl_code;
}
public void setEmpl_code(String empl_code) {
this.empl_code = empl_code;
}
public PegawaiVO getPegawai() { public PegawaiVO getPegawai() {
return pegawai; return pegawai;
} }
@ -117,6 +113,14 @@ public class HabsenVO extends BaseMasterVO {
this.pegawai = pegawai; this.pegawai = pegawai;
} }
public String getEmpl_code() {
return empl_code;
}
public void setEmpl_code(String empl_code) {
this.empl_code = empl_code;
}
public String getAcc_code() { public String getAcc_code() {
return acc_code; return acc_code;
} }

View File

@ -78,7 +78,6 @@ import com.jasamedika.medifirst2000.service.KategoryTugasService;
import com.jasamedika.medifirst2000.service.KedudukanService; import com.jasamedika.medifirst2000.service.KedudukanService;
import com.jasamedika.medifirst2000.service.KelompokKompetensiService; import com.jasamedika.medifirst2000.service.KelompokKompetensiService;
import com.jasamedika.medifirst2000.service.KompetensiService; import com.jasamedika.medifirst2000.service.KompetensiService;
import com.jasamedika.medifirst2000.service.LogAccService;
import com.jasamedika.medifirst2000.service.MapJabatanProfesiService; import com.jasamedika.medifirst2000.service.MapJabatanProfesiService;
import com.jasamedika.medifirst2000.service.MappingPegawaiToAtasanService; import com.jasamedika.medifirst2000.service.MappingPegawaiToAtasanService;
import com.jasamedika.medifirst2000.service.MasterEvaluasiJabatanService; import com.jasamedika.medifirst2000.service.MasterEvaluasiJabatanService;
@ -428,9 +427,6 @@ public class SdmController extends LocaleController<AkunVO> {
@Autowired @Autowired
private ProfesiService profesiService; private ProfesiService profesiService;
@Autowired
private LogAccService logService;
@RequestMapping(value = "/save-custom-uraian-kerja", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/save-custom-uraian-kerja", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> saveBerkasLamaran(@Valid @RequestBody CustomIndexKerjaVO vo, public ResponseEntity<Map<String, Object>> saveBerkasLamaran(@Valid @RequestBody CustomIndexKerjaVO vo,
HttpServletRequest request) throws ParseException { HttpServletRequest request) throws ParseException {
@ -5616,12 +5612,9 @@ public class SdmController extends LocaleController<AkunVO> {
vo.setClientIPAddress(getClientIpAddress(request)); vo.setClientIPAddress(getClientIpAddress(request));
Map<String, Object> result = absensiPegawaiService.saveHabsensiPegawai(vo); Map<String, Object> result = absensiPegawaiService.saveHabsensiPegawai(vo);
if (null != result) { if (null != result)
logService.putToLog(vo);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request)); getMessage(MessageResource.LABEL_SUCCESS, request));
}
return RestUtil.getJsonResponse(result, HttpStatus.CREATED, mapHeaderMessage); return RestUtil.getJsonResponse(result, HttpStatus.CREATED, mapHeaderMessage);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {
LOGGER.error("Got exception {} when save presensi pegawai", e.getMessage()); LOGGER.error("Got exception {} when save presensi pegawai", e.getMessage());