Update service login

Perbaikan serialisasi jenis pegawai karena lazy fetching
This commit is contained in:
Salman Manoe 2023-10-19 08:26:00 +07:00
parent ca1a915123
commit a7511efe36
4 changed files with 315 additions and 153 deletions

View File

@ -1,15 +1,21 @@
package com.jasamedika.medifirst2000.converter; package com.jasamedika.medifirst2000.converter;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.jasamedika.medifirst2000.converter.base.BaseVoConverter; import com.jasamedika.medifirst2000.converter.base.BaseVoConverter;
import com.jasamedika.medifirst2000.dao.custom.base.impl.FindConverterDao; import com.jasamedika.medifirst2000.dao.custom.base.impl.FindConverterDao;
import com.jasamedika.medifirst2000.entities.KelompokUser; import com.jasamedika.medifirst2000.entities.KelompokUser;
import com.jasamedika.medifirst2000.entities.LoginUser; import com.jasamedika.medifirst2000.entities.LoginUser;
import com.jasamedika.medifirst2000.service.KelompokUserService;
import com.jasamedika.medifirst2000.service.PegawaiService;
import com.jasamedika.medifirst2000.util.ExtendedSpringBeanUtil; import com.jasamedika.medifirst2000.util.ExtendedSpringBeanUtil;
import com.jasamedika.medifirst2000.vo.KelompokUserVO;
import com.jasamedika.medifirst2000.vo.LoginUserVO; import com.jasamedika.medifirst2000.vo.LoginUserVO;
import org.springframework.stereotype.Component; import com.jasamedika.medifirst2000.vo.PegawaiVO;
import java.util.ArrayList;
import java.util.List;
/** /**
* Converter class between LoginUser and LoginUserVO * Converter class between LoginUser and LoginUserVO
@ -18,9 +24,46 @@ import java.util.List;
*/ */
@Component @Component
public class LoginUserAuthConverter extends FindConverterDao implements BaseVoConverter<LoginUserVO, LoginUser> { public class LoginUserAuthConverter extends FindConverterDao implements BaseVoConverter<LoginUserVO, LoginUser> {
/*
* @Override public LoginUser transferVOToModel(LoginUserVO vo, LoginUser
* model) { if (null == model) model = new LoginUser();
*
* 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, LoginUser.class); } catch (Exception e) {
* e.printStackTrace(); }
*
* return model; }
*
* @Override public List<LoginUserVO>
* transferListOfModelToListOfVO(List<LoginUser> models, List<LoginUserVO>
* vos) { if (null == vos) vos = new ArrayList<LoginUserVO>();
*
* if (null == models) return vos;
*
* for (LoginUser loginUser : models) { LoginUserVO vo = new LoginUserVO();
* vo=transferModelToVO(loginUser, vo); vos.add(vo); }
*
* return vos; }
*
* @Override public LoginUserVO transferModelToVO(LoginUser model,
* LoginUserVO vo) { if (null == vo) vo = new LoginUserVO(); 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,
* LoginUserVO.class); } catch (Exception e) { e.printStackTrace(); }
*
* return vo; }
*/
public LoginUser transferVOToModel(LoginUserVO vo, LoginUser model) { public LoginUser transferVOToModel(LoginUserVO vo, LoginUser model) {
if (null == model) if (null == model)
model = new LoginUser(); model = new LoginUser();
// fix this
ExtendedSpringBeanUtil.copySpecificProperties(vo, model, new String[] { "id", "kataSandi", "namaUser", }, ExtendedSpringBeanUtil.copySpecificProperties(vo, model, new String[] { "id", "kataSandi", "namaUser", },
new String[] { "id", "kataSandi", "namaUser", }); new String[] { "id", "kataSandi", "namaUser", });
if (vo.getKelompokUser() != null) { if (vo.getKelompokUser() != null) {
@ -28,11 +71,13 @@ public class LoginUserAuthConverter extends FindConverterDao implements BaseVoCo
model.setKelompokUser(kelompokUser); model.setKelompokUser(kelompokUser);
} }
return model; return model;
} }
public List<LoginUserVO> transferListOfModelToListOfVO(List<LoginUser> models, List<LoginUserVO> vos) { public List<LoginUserVO> transferListOfModelToListOfVO(List<LoginUser> models, List<LoginUserVO> vos) {
if (null == vos) if (null == vos)
vos = new ArrayList<>(); vos = new ArrayList<LoginUserVO>();
if (null == models) if (null == models)
return vos; return vos;
@ -41,14 +86,32 @@ public class LoginUserAuthConverter extends FindConverterDao implements BaseVoCo
transferModelToVO(loginUser, loginUserVO); transferModelToVO(loginUser, loginUserVO);
vos.add(loginUserVO); vos.add(loginUserVO);
} }
return vos; return vos;
} }
public LoginUserVO transferModelToVO(LoginUser model, LoginUserVO vo) { public LoginUserVO transferModelToVO(LoginUser model, LoginUserVO vo) {
if (null == vo) if (null == vo)
vo = new LoginUserVO(); vo = new LoginUserVO();
// fix this
ExtendedSpringBeanUtil.copySpecificProperties(model, vo, new String[] { "id", "kataSandi", "namaUser", }, ExtendedSpringBeanUtil.copySpecificProperties(model, vo, new String[] { "id", "kataSandi", "namaUser", },
new String[] { "id", "kataSandi", "namaUser", }); new String[] { "id", "kataSandi", "namaUser", });
if (model.getKelompokUser() != null) {
KelompokUserVO kelompokUserVo = kelompokUserService.findById(model.getKelompokUser().getId());
vo.setKelompokUser(kelompokUserVo);
}
if (model.getPegawai() != null) {
PegawaiVO kelompokUserVo = pgawaiService.findById(model.getPegawai().getId());
vo.setPegawai(kelompokUserVo);
}
return vo; return vo;
} }
@Autowired
private KelompokUserService kelompokUserService;
@Autowired
private PegawaiService pgawaiService;
} }

View File

@ -32,14 +32,14 @@ public class PegawaiConverter implements BaseVoConverter<PegawaiVO, Pegawai> {
try { try {
String[] fieldsToInclude = null; String[] fieldsToInclude = null;
Map<String, Object> serialized = vo.serialize(fieldsToInclude,vo.getClass().getName()); Map<String, Object> serialized = vo.serialize(fieldsToInclude, vo.getClass().getName());
Gson gson = new Gson(); Gson gson = new Gson();
String json = gson.toJson(serialized); String json = gson.toJson(serialized);
model = gson.fromJson(json, Pegawai.class); model = gson.fromJson(json, Pegawai.class);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return model; return model;
} }
@ -54,7 +54,7 @@ public class PegawaiConverter implements BaseVoConverter<PegawaiVO, Pegawai> {
for (Pegawai pegawai : models) { for (Pegawai pegawai : models) {
PegawaiVO vo = new PegawaiVO(); PegawaiVO vo = new PegawaiVO();
vo=transferModelToVO(pegawai, vo); vo = transferModelToVO(pegawai, vo);
vos.add(vo); vos.add(vo);
} }
@ -66,109 +66,113 @@ public class PegawaiConverter implements BaseVoConverter<PegawaiVO, Pegawai> {
if (null == vo) if (null == vo)
vo = new PegawaiVO(); vo = new PegawaiVO();
try { try {
List<String> fieldsToInclude = new ArrayList<String>(); List<String> fieldsToInclude = new ArrayList<String>();
for (Field field : model.GetFields(model.getClass())) { for (Field field : model.GetFields(model.getClass())) {
String str = field.getName(); String str = field.getName();
String name = field.getName(); String name = field.getName();
if(name.equals("serialVersionUID"))continue; if (name.equals("serialVersionUID"))
continue;
Boolean valid = false; Boolean valid = false;
for (java.lang.annotation.Annotation annotation : field.getDeclaredAnnotations()) { for (java.lang.annotation.Annotation annotation : field.getDeclaredAnnotations()) {
if (annotation instanceof JoinColumn) { if (annotation instanceof JoinColumn) {
valid=true; valid = true;
} else if (annotation instanceof Column) { } else if (annotation instanceof Column) {
Column column = (Column)annotation; Column column = (Column) annotation;
if(column.name().endsWith("Fk")) if (column.name().endsWith("Fk"))
if(field.getName().endsWith("Id")==false) if (field.getName().endsWith("Id") == false)
valid=true; valid = true;
}else if (annotation instanceof OneToMany) { } else if (annotation instanceof OneToMany) {
valid=true; valid = true;
} }
} }
if(valid ==false) if (valid == false)
fieldsToInclude.add(str); fieldsToInclude.add(str);
} }
Map<String, Object> serialized =model.ToMap(); Map<String, Object> serialized = model.ToMap();
Gson gson = new Gson(); Gson gson = new Gson();
serialized.put("jenisPegawai", model.getJenisPegawai()); // serialized.put("jenisPegawai", model.getJenisPegawai());
String json = gson.toJson(serialized); String json = gson.toJson(serialized);
vo = gson.fromJson(json, PegawaiVO.class); vo = gson.fromJson(json, PegawaiVO.class);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return vo; return vo;
} }
public PegawaiVO transferModelToVOCustom(Pegawai model, PegawaiVO vo,String[] fieldsToInclude) { public PegawaiVO transferModelToVOCustom(Pegawai model, PegawaiVO vo, String[] fieldsToInclude) {
if (null == vo) if (null == vo)
vo = new PegawaiVO(); vo = new PegawaiVO();
try { try {
Map<String, Object> serialized = model.serialize(fieldsToInclude,model.getClass().getSimpleName()); Map<String, Object> serialized = model.serialize(fieldsToInclude, model.getClass().getSimpleName());
Gson gson = new Gson(); Gson gson = new Gson();
String json = gson.toJson(serialized); String json = gson.toJson(serialized);
vo = gson.fromJson(json, PegawaiVO.class); vo = gson.fromJson(json, PegawaiVO.class);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return vo; return vo;
} }
public Pegawai transferVOToModel(RekamDataPegawaiVO vo, Pegawai model) { public Pegawai transferVOToModel(RekamDataPegawaiVO vo, Pegawai model) {
if (null == model) if (null == model)
model = new Pegawai(); model = new Pegawai();
try { try {
String[] fieldsToInclude = null; String[] fieldsToInclude = null;
Map<String, Object> serialized = vo.serialize(fieldsToInclude,vo.getClass().getName()); Map<String, Object> serialized = vo.serialize(fieldsToInclude, vo.getClass().getName());
Gson gson = new Gson(); Gson gson = new Gson();
String json = gson.toJson(serialized); String json = gson.toJson(serialized);
model = gson.fromJson(json, Pegawai.class); model = gson.fromJson(json, Pegawai.class);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return model; return model;
} }
public RekamDataPegawaiVO transferModelToVO(Pegawai model, RekamDataPegawaiVO vo) { public RekamDataPegawaiVO transferModelToVO(Pegawai model, RekamDataPegawaiVO vo) {
if (null == vo) if (null == vo)
vo = new RekamDataPegawaiVO(); vo = new RekamDataPegawaiVO();
try { try {
List<String> fieldsToInclude = new ArrayList<String>(); List<String> fieldsToInclude = new ArrayList<String>();
for (Field field : model.GetFields(model.getClass())) { for (Field field : model.GetFields(model.getClass())) {
String str = field.getName(); String str = field.getName();
String name = field.getName(); String name = field.getName();
if(name.equals("serialVersionUID"))continue; if (name.equals("serialVersionUID"))
continue;
Boolean valid = false; Boolean valid = false;
for (java.lang.annotation.Annotation annotation : field.getDeclaredAnnotations()) { for (java.lang.annotation.Annotation annotation : field.getDeclaredAnnotations()) {
if (annotation instanceof JoinColumn) { if (annotation instanceof JoinColumn) {
valid=true; valid = true;
} else if (annotation instanceof Column) { } else if (annotation instanceof Column) {
Column column = (Column)annotation; Column column = (Column) annotation;
if(column.name().endsWith("Fk")) if (column.name().endsWith("Fk"))
if(field.getName().endsWith("Id")==false) if (field.getName().endsWith("Id") == false)
valid=true; valid = true;
}else if (annotation instanceof OneToMany) { } else if (annotation instanceof OneToMany) {
valid=true; valid = true;
} }
} }
if(valid ==false) if (valid == false)
fieldsToInclude.add(str); fieldsToInclude.add(str);
} }
Map<String, Object> serialized =model.ToMap(); Map<String, Object> serialized = model.ToMap();
Gson gson = new Gson(); Gson gson = new Gson();
serialized.put("jenisPegawai", model.getJenisPegawai()); serialized.put("jenisPegawai", model.getJenisPegawai());
// serialized.put("pangkat", model.getPangkat()); // serialized.put("pangkat", model.getPangkat());
String json = gson.toJson(serialized); String json = gson.toJson(serialized);
vo = gson.fromJson(json, RekamDataPegawaiVO.class); vo = gson.fromJson(json, RekamDataPegawaiVO.class);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }

View File

@ -1,15 +1,15 @@
package com.jasamedika.medifirst2000.service.impl; package com.jasamedika.medifirst2000.service.impl;
import com.google.gson.Gson; import java.net.URISyntaxException;
import com.jasamedika.medifirst2000.dao.ActivityPegawaiDao; import java.util.ArrayList;
import com.jasamedika.medifirst2000.dao.PegawaiDao; import java.util.Date;
import com.jasamedika.medifirst2000.entities.ActivityPegawai; import java.util.List;
import com.jasamedika.medifirst2000.entities.Pegawai; import java.util.Map;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.ActivityPegawaiService; import javax.persistence.EntityManager;
import com.jasamedika.medifirst2000.util.CommonUtil; import javax.persistence.PersistenceContext;
import com.jasamedika.medifirst2000.vo.PegawaiVO; import javax.persistence.Query;
import io.socket.client.IO;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -19,19 +19,27 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.persistence.EntityManager; import com.google.gson.Gson;
import javax.persistence.PersistenceContext; import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import javax.persistence.Query; import com.jasamedika.medifirst2000.dao.ActivityPegawaiDao;
import java.net.URISyntaxException; import com.jasamedika.medifirst2000.dao.PegawaiDao;
import java.util.*; import com.jasamedika.medifirst2000.entities.ActivityPegawai;
import com.jasamedika.medifirst2000.entities.Pegawai;
import com.jasamedika.medifirst2000.service.ActivityPegawaiService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.vo.PegawaiVO;
import io.socket.client.IO;
/** /**
* Implement class for PelayananObatService * Implement class for PelayananObatService
* *
* @author Generator * @author Generator
* @param <T>
*/ */
@Service("activityPegawaiServiceImpl") @Service("activityPegawaiServiceImpl")
public class ActivityPegawaiServiceImpl implements ActivityPegawaiService { public class ActivityPegawaiServiceImpl implements ActivityPegawaiService {
private static final Logger LOGGER = LoggerFactory.getLogger(ActivityPegawaiService.class); private static final Logger LOGGER = LoggerFactory.getLogger(ActivityPegawaiService.class);
static io.socket.client.Socket socket = null; static io.socket.client.Socket socket = null;
@ -39,35 +47,41 @@ public class ActivityPegawaiServiceImpl implements ActivityPegawaiService {
@PersistenceContext @PersistenceContext
protected EntityManager em; protected EntityManager em;
@Autowired
private ActivityPegawaiDao activityPegawaiDao;
@Autowired
private PegawaiDao pegawaiDao;
@Override @Override
@Transactional @Transactional(readOnly = false)
public String GetSettingDataFixed(String prefix) { public String GetSettingDataFixed(String prefix) {
String buffer = "select model.nilaiField from SettingDataFixed " + " model where model.namaField ='" + prefix StringBuffer buffer = new StringBuffer();
+ "' "; buffer.append("select model.nilaiField from SettingDataFixed ")
Query query = em.createQuery(buffer); .append(" model where model.namaField ='" + prefix + "' ");
return (String) query.getSingleResult(); Query query = em.createQuery(buffer.toString());
String result = (String) query.getSingleResult();
return result;
} }
protected void BroadcastMessage(final String to, final Map<String, Object> data) { protected void BroadcastMessage(final String to, final Map data) {
try { try {
if (socket == null) { if (socket == null) {
socket = IO.socket(GetSettingDataFixed("UrlSocketMessaging")); socket = IO.socket(GetSettingDataFixed("UrlSocketMessaging"));
socket.on(io.socket.client.Socket.EVENT_CONNECT, args -> {
try { socket.on(io.socket.client.Socket.EVENT_CONNECT, new io.socket.emitter.Emitter.Listener() {
Gson gson = new Gson();
JSONObject item = new JSONObject( @Override
"{\"to\":\"" + to + "\",\"message\":" + gson.toJson(data) + "}"); public void call(Object... args) {
LOGGER.info("{\"to\":\"" + to + "\",\"message\":" + gson.toJson(data) + "}");
socket.emit("subscribe", item); try {
} catch (JSONException e) { Gson gson = new Gson();
throw new ServiceVOException(e.getMessage()); JSONObject item = new JSONObject(
"{\"to\":\"" + to + "\",\"message\":" + gson.toJson(data) + "}");
LOGGER.info("{\"to\":\"" + to + "\",\"message\":" + gson.toJson(data) + "}");
socket.emit("subscribe", item);
// socket.disconnect();
} catch (JSONException e) {
e.printStackTrace();
}
} }
}); });
socket.connect(); socket.connect();
} else { } else {
@ -76,17 +90,27 @@ public class ActivityPegawaiServiceImpl implements ActivityPegawaiService {
JSONObject item = new JSONObject("{\"to\":\"" + to + "\",\"message\":" + gson.toJson(data) + "}"); JSONObject item = new JSONObject("{\"to\":\"" + to + "\",\"message\":" + gson.toJson(data) + "}");
LOGGER.info("{\"to\":\"" + to + "\",\"message\":" + gson.toJson(data) + "}"); LOGGER.info("{\"to\":\"" + to + "\",\"message\":" + gson.toJson(data) + "}");
socket.emit("subscribe", item); socket.emit("subscribe", item);
// socket.disconnect();
} catch (JSONException e) { } catch (JSONException e) {
throw new ServiceVOException(e.getMessage()); e.printStackTrace();
} }
} }
} catch (URISyntaxException e) { } catch (URISyntaxException e) {
throw new ServiceVOException(e.getMessage()); e.printStackTrace();
} }
} }
@Autowired
private BaseConverterImpl<PegawaiVO, Pegawai> pelayananObatConverter;
@Autowired
private ActivityPegawaiDao activityPegawaiDao;
@Autowired
private PegawaiDao pegawaiDao;
@Override @Override
@Transactional @Transactional(readOnly = false)
public Boolean record(PegawaiVO pegawai, Date tanggal, String keterangan) { public Boolean record(PegawaiVO pegawai, Date tanggal, String keterangan) {
Pegawai pegawaiSave = new Pegawai(); Pegawai pegawaiSave = new Pegawai();
pegawaiSave.setId(pegawai.getId()); pegawaiSave.setId(pegawai.getId());
@ -94,18 +118,20 @@ public class ActivityPegawaiServiceImpl implements ActivityPegawaiService {
act.setKeterangan(keterangan); act.setKeterangan(keterangan);
act.setPegawai(pegawaiSave); act.setPegawai(pegawaiSave);
act.setTanggalKejadian(new Date()); act.setTanggalKejadian(new Date());
act = activityPegawaiDao.save(act); act = activityPegawaiDao.save(act);
act = activityPegawaiDao.findOne(act.getNoRec()); act = activityPegawaiDao.findOne(act.getNoRec());
act.setPegawai(pegawaiDao.findById(pegawai.getId()));
try { try {
BroadcastMessage("IKI", act.ToMap()); BroadcastMessage("IKI", act.ToMap());
} catch (IllegalArgumentException | IllegalAccessException e) { } catch (IllegalArgumentException | IllegalAccessException e) {
throw new ServiceVOException(e.getMessage()); e.printStackTrace();
} }
return !Objects.equals(act.getNoRec(), ""); return act.getNoRec() != "";
} }
@Override @Override
@Transactional @Transactional(readOnly = false)
public Boolean record(PegawaiVO pegawai, Date tanggal, String keterangan, String group) { public Boolean record(PegawaiVO pegawai, Date tanggal, String keterangan, String group) {
Pegawai pegawaiSave = new Pegawai(); Pegawai pegawaiSave = new Pegawai();
pegawaiSave.setId(pegawai.getId()); pegawaiSave.setId(pegawai.getId());
@ -114,34 +140,40 @@ public class ActivityPegawaiServiceImpl implements ActivityPegawaiService {
act.setGroup(group); act.setGroup(group);
act.setPegawai(pegawaiSave); act.setPegawai(pegawaiSave);
act.setTanggalKejadian(new Date()); act.setTanggalKejadian(new Date());
act = activityPegawaiDao.save(act); act = activityPegawaiDao.save(act);
act = activityPegawaiDao.findOne(act.getNoRec()); act = activityPegawaiDao.findOne(act.getNoRec());
act.setPegawai(pegawaiDao.findById(pegawai.getId())); act.setPegawai(pegawaiDao.findById(pegawai.getId()));
try { try {
BroadcastMessage("IKI", act.ToMap()); BroadcastMessage("IKI", act.ToMap());
} catch (IllegalArgumentException | IllegalAccessException e) { } catch (IllegalArgumentException | IllegalAccessException e) {
throw new ServiceVOException(e.getMessage()); e.printStackTrace();
} }
return !Objects.equals(act.getNoRec(), ""); return act.getNoRec() != "";
} }
@Override @Override
public List<ActivityPegawai> getData() { public List<ActivityPegawai> getData() {
return activityPegawaiDao.findDescending(); return (List<ActivityPegawai>) activityPegawaiDao.findDescending();
} }
@Override @Override
public List<ActivityPegawai> getData(Date start, Date until, Integer top) { public List<ActivityPegawai> getData(Date start, Date until, Integer top) {
return activityPegawaiDao.findDescending(start, until, new PageRequest(0, top)); return (List<ActivityPegawai>) activityPegawaiDao.findDescending(start, until, new PageRequest(0, top));
} }
@Override @Override
public List<Map<String, Object>> getActivityData(String tanggal, Integer idPegawai) { public List<Map<String, Object>> getActivityData(String tanggal, Integer idPegawai) {
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
if (CommonUtil.isNotNullOrEmpty(tanggal) && CommonUtil.isNotNullOrEmpty(idPegawai)) { if (CommonUtil.isNotNullOrEmpty(tanggal) && CommonUtil.isNotNullOrEmpty(idPegawai)) {
return activityPegawaiDao.aktivitasByDatePegawai(tanggal, idPegawai); result = activityPegawaiDao.aktivitasByDatePegawai(tanggal, idPegawai);
} else if (CommonUtil.isNotNullOrEmpty(tanggal) && CommonUtil.isNullOrEmpty(idPegawai)) { } else if (CommonUtil.isNotNullOrEmpty(tanggal) && CommonUtil.isNullOrEmpty(idPegawai)) {
return activityPegawaiDao.aktivitasByDate(tanggal); result = activityPegawaiDao.aktivitasByDate(tanggal);
} else {
result = activityPegawaiDao.aktivitasHariIni();
} }
return activityPegawaiDao.aktivitasHariIni();
return result;
} }
} }

View File

@ -1,17 +1,16 @@
package com.jasamedika.medifirst2000.service.impl; package com.jasamedika.medifirst2000.service.impl;
import com.jasamedika.medifirst2000.converter.BaseConverterImpl; import java.io.IOException;
import com.jasamedika.medifirst2000.converter.LoginUserAuthConverter; import java.io.UnsupportedEncodingException;
import com.jasamedika.medifirst2000.dao.HistoryLoginModulAplikasiDao; import java.security.NoSuchAlgorithmException;
import com.jasamedika.medifirst2000.dao.LoginUserDao; import java.util.ArrayList;
import com.jasamedika.medifirst2000.dao.MapPegawaiToModulAplikasiDao; import java.util.Date;
import com.jasamedika.medifirst2000.entities.*; import java.util.HashMap;
import com.jasamedika.medifirst2000.exception.ServiceVOException; import java.util.HashSet;
import com.jasamedika.medifirst2000.service.LoginUserService; import java.util.List;
import com.jasamedika.medifirst2000.util.CommonUtil; import java.util.Map;
import com.jasamedika.medifirst2000.util.PasswordUtil; import java.util.Set;
import com.jasamedika.medifirst2000.vo.*;
import com.jasamedika.medifirst2000.vo.custom.AuthVO;
import org.apache.commons.collections.IteratorUtils; import org.apache.commons.collections.IteratorUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -22,13 +21,36 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.io.IOException; import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import java.io.UnsupportedEncodingException; import com.jasamedika.medifirst2000.converter.LoginUserAuthConverter;
import java.security.NoSuchAlgorithmException; import com.jasamedika.medifirst2000.converter.LoginUserConverter;
import java.util.*; import com.jasamedika.medifirst2000.dao.HistoryLoginModulAplikasiDao;
import com.jasamedika.medifirst2000.dao.LoginUserDao;
import com.jasamedika.medifirst2000.dao.MapPegawaiToModulAplikasiDao;
import com.jasamedika.medifirst2000.entities.HistoryLoginModulAplikasi;
import com.jasamedika.medifirst2000.entities.KelompokUser;
import com.jasamedika.medifirst2000.entities.LoginUser;
import com.jasamedika.medifirst2000.entities.MapLoginUserToRuangan;
import com.jasamedika.medifirst2000.entities.MapPegawaiToModulAplikasi;
import com.jasamedika.medifirst2000.entities.ModulAplikasi;
import com.jasamedika.medifirst2000.entities.Pegawai;
import com.jasamedika.medifirst2000.entities.Ruangan;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.LoginUserService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.util.PasswordUtil;
import com.jasamedika.medifirst2000.vo.KelompokUserVO;
import com.jasamedika.medifirst2000.vo.LoginUserVO;
import com.jasamedika.medifirst2000.vo.MapLoginUserToRuanganVO;
import com.jasamedika.medifirst2000.vo.MapPegawaiToModulAplikasiVO;
import com.jasamedika.medifirst2000.vo.ModulAplikasiVO;
import com.jasamedika.medifirst2000.vo.PegawaiVO;
import com.jasamedika.medifirst2000.vo.RuanganVO;
import com.jasamedika.medifirst2000.vo.custom.AuthVO;
@Service("LoginUserService") @Service("LoginUserService")
public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUserService { public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUserService {
private static final Logger LOGGER = LoggerFactory.getLogger(LoginUserServiceImpl.class); private static final Logger LOGGER = LoggerFactory.getLogger(LoginUserServiceImpl.class);
@Autowired @Autowired
@ -41,7 +63,10 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
private LoginUserAuthConverter loginUserAuthConverter; private LoginUserAuthConverter loginUserAuthConverter;
@Autowired @Autowired
private BaseConverterImpl<LoginUserVO, LoginUser> loginUserConverter; private LoginUserConverter loginUserConverter;
@Autowired
private BaseConverterImpl<LoginUserVO, LoginUser> loginUserConverters;
@Autowired @Autowired
private BaseConverterImpl<PegawaiVO, Pegawai> pegawaiConverter; private BaseConverterImpl<PegawaiVO, Pegawai> pegawaiConverter;
@ -98,7 +123,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
} }
@Override @Override
@Transactional @Transactional(readOnly = false)
public LoginUserVO add(LoginUserVO vo) throws JpaSystemException, ServiceVOException { public LoginUserVO add(LoginUserVO vo) throws JpaSystemException, ServiceVOException {
// convert to model and call repository // convert to model and call repository
LoginUser loginUser = new LoginUser(); LoginUser loginUser = new LoginUser();
@ -108,7 +133,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
try { try {
loginUser.setKataSandi(passwordUtil.encryptPassword(loginUser.getKataSandi())); loginUser.setKataSandi(passwordUtil.encryptPassword(loginUser.getKataSandi()));
} catch (NoSuchAlgorithmException | UnsupportedEncodingException e) { } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
throw new ServiceVOException(e.getMessage()); e.printStackTrace();
} }
LoginUser resultModel = loginUserDao.save(loginUser); LoginUser resultModel = loginUserDao.save(loginUser);
@ -121,7 +146,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
} }
@Override @Override
@Transactional @Transactional(readOnly = false)
public LoginUserVO update(LoginUserVO vo) throws JpaSystemException, ServiceVOException { public LoginUserVO update(LoginUserVO vo) throws JpaSystemException, ServiceVOException {
// Alter Syamsu // Alter Syamsu
@ -134,7 +159,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
try { try {
loginUserLama.setKataSandi(passwordUtil.encryptPassword(loginUserLama.getKataSandi())); loginUserLama.setKataSandi(passwordUtil.encryptPassword(loginUserLama.getKataSandi()));
} catch (NoSuchAlgorithmException | UnsupportedEncodingException e) { } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
throw new ServiceVOException(e.getMessage()); e.printStackTrace();
} }
loginUserDao.save(loginUserLama); loginUserDao.save(loginUserLama);
@ -147,7 +172,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
} }
@Override @Override
@Transactional @Transactional(readOnly = false)
public Boolean delete(Integer key) throws JpaSystemException { public Boolean delete(Integer key) throws JpaSystemException {
if (loginUserDao.exists(key)) { if (loginUserDao.exists(key)) {
loginUserDao.delete(key); loginUserDao.delete(key);
@ -175,7 +200,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
List<LoginUser> loginUserList = IteratorUtils.toList(loginUserDao.findAll().iterator()); List<LoginUser> loginUserList = IteratorUtils.toList(loginUserDao.findAll().iterator());
List<LoginUserVO> loginUserVOList = new ArrayList<>(); List<LoginUserVO> loginUserVOList = new ArrayList<LoginUserVO>();
loginUserConverter.transferListOfModelToListOfVO(loginUserList, loginUserVOList); loginUserConverter.transferListOfModelToListOfVO(loginUserList, loginUserVOList);
return loginUserVOList; return loginUserVOList;
@ -197,7 +222,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
LoginUser loginUser = loginUsers.get(0); LoginUser loginUser = loginUsers.get(0);
PasswordUtil passwordUtil = new PasswordUtil(); PasswordUtil passwordUtil = new PasswordUtil();
boolean isValidPassword; Boolean isValidPassword = false;
try { try {
isValidPassword = passwordUtil.isPasswordEqual(authVO.getKataSandi(), loginUser.getKataSandi()); isValidPassword = passwordUtil.isPasswordEqual(authVO.getKataSandi(), loginUser.getKataSandi());
} catch (IOException ioe) { } catch (IOException ioe) {
@ -209,19 +234,11 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
return null; return null;
} }
// to do validasi yang advanced di sini // to do validasi yang advanced di sini
LoginUserVO vo = new LoginUserVO(); LoginUserVO vo = new LoginUserVO();
vo = loginUserAuthConverter.transferModelToVO(loginUser, vo); loginUserAuthConverter.transferModelToVO(loginUser, vo);
if (CommonUtil.isNotNullOrEmpty(loginUser.getKelompokUser())) {
KelompokUserVO kelompokUserVO = new KelompokUserVO();
kelompokUserVO = kelompokUserConverter.transferModelToVO(loginUser.getKelompokUser(), kelompokUserVO);
vo.setKelompokUser(kelompokUserVO);
}
if (CommonUtil.isNotNullOrEmpty(loginUser.getPegawai())) {
PegawaiVO pegawaiVO = new PegawaiVO();
pegawaiVO = pegawaiConverter.transferModelToVO(loginUser.getPegawai(), pegawaiVO);
vo.setPegawai(pegawaiVO);
}
return vo; return vo;
} else { } else {
throw new RuntimeException("User account is unauthorized : username : " + authVO.getNamaUser()); throw new RuntimeException("User account is unauthorized : username : " + authVO.getNamaUser());
} }
@ -229,20 +246,22 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
@Override @Override
public LoginUser getLoginUser() { public LoginUser getLoginUser() {
List<LoginUser> loginUser = null;
try { try {
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
String namaUser = principal.toString(); String namaUser = principal.toString();
List<LoginUser> loginUser = loginUserDao.findByNamaUser(namaUser); loginUser = loginUserDao.findByNamaUser(namaUser);
return loginUser.get(0);
} catch (Exception e) { } catch (Exception e) {
throw new ServiceVOException(e.getMessage()); e.printStackTrace();
} }
return loginUser.get(0);
} }
@Override @Override
public Map<String, Object> getAllUser() { public Map<String, Object> getAllUser() {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<String, Object>();
List<LoginUser> list = loginUserDao.findAllUser(); List<LoginUser> list = new ArrayList<LoginUser>();
list = (List<LoginUser>) loginUserDao.findAllUser();
if (CommonUtil.isNotNullOrEmpty(list)) { if (CommonUtil.isNotNullOrEmpty(list)) {
result.put("data", list); result.put("data", list);
result.put("dataFound", true); result.put("dataFound", true);
@ -252,9 +271,12 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
return result; return result;
} }
// Reza
// -----------------------------------------------------------------------------------------------
@Override @Override
public Map<String, Object> getLoadData() { public Map<String, Object> getLoadData() {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<String, Object>();
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
List<Map<String, Object>> listPegawai = loginUserDao.listPegawai(); List<Map<String, Object>> listPegawai = loginUserDao.listPegawai();
if (CommonUtil.isNotNullOrEmpty(listPegawai)) { if (CommonUtil.isNotNullOrEmpty(listPegawai)) {
@ -346,7 +368,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
} }
} }
} catch (Exception ex) { } catch (Exception ex) {
throw new ServiceVOException(ex.getMessage()); ex.printStackTrace();
} }
return listSideMenu; return listSideMenu;
} }
@ -364,7 +386,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
LoginUser loginUser = new LoginUser(); LoginUser loginUser = new LoginUser();
if (CommonUtil.isNotNullOrEmpty(vo)) { if (CommonUtil.isNotNullOrEmpty(vo)) {
loginUser = loginUserConverter.transferVOToModel(vo, new LoginUser()); loginUser = loginUserConverters.transferVOToModel(vo, new LoginUser());
loginUser.setKdProfile((short) 0); loginUser.setKdProfile((short) 0);
loginUser.setStatusEnabled(true); loginUser.setStatusEnabled(true);
loginUser.setKodeExternal(""); loginUser.setKodeExternal("");
@ -379,7 +401,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
try { try {
loginUser.setKataSandi(new PasswordUtil().encryptPassword(vo.getKataSandi())); loginUser.setKataSandi(new PasswordUtil().encryptPassword(vo.getKataSandi()));
} catch (NoSuchAlgorithmException | UnsupportedEncodingException e) { } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
throw new ServiceVOException(e.getMessage()); e.printStackTrace();
} }
} }
if (CommonUtil.isNotNullOrEmpty(vo.getPegawai())) { if (CommonUtil.isNotNullOrEmpty(vo.getPegawai())) {
@ -439,8 +461,9 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
public Map<String, Object> getListRuangan(Integer loginUserId) { public Map<String, Object> getListRuangan(Integer loginUserId) {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
List<Map<String, Object>> listRuangan = loginUserDao.getListRuangan(loginUserId); List<Map<String, Object>> listRuangan = loginUserDao.getListRuangan(loginUserId);
if (CommonUtil.isNotNullOrEmpty(listRuangan)) if (CommonUtil.isNotNullOrEmpty(listRuangan)) {
result.put("listRuangan", listRuangan); result.put("listRuangan", listRuangan);
}
return result; return result;
} }
@ -448,22 +471,62 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
public Map<String, Object> getListModulAplikasi(Integer pegawaiId) { public Map<String, Object> getListModulAplikasi(Integer pegawaiId) {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
List<Map<String, Object>> listModulAplikasi = loginUserDao.getListModulAplikasi(pegawaiId); List<Map<String, Object>> listModulAplikasi = loginUserDao.getListModulAplikasi(pegawaiId);
if (CommonUtil.isNotNullOrEmpty(listModulAplikasi)) if (CommonUtil.isNotNullOrEmpty(listModulAplikasi)) {
result.put("listModulAplikasi", listModulAplikasi); result.put("listModulAplikasi", listModulAplikasi);
}
return result; return result;
} }
@Override @Override
public List<Map<String, Object>> getListObjectModulAplikasi(Integer modulAplikasiId) { public List<Map<String, Object>> getListObjectModulAplikasi(Integer modulAplikasiId) {
return new ArrayList<>(); List<Map<String, Object>> result = new ArrayList<>();
// for(Map<String, Object> objectModulHead :
// loginUserDao.getObjectModulHeadByModul(modulAplikasiId)){
// Map<String, Object> parent = new HashMap<>();
//
// if(CommonUtil.isNotNullOrEmpty(objectModulHead)){
// parent.put("name", objectModulHead.get("objekModulAplikasi"));
// parent.put("noUrut", objectModulHead.get("objekModulNoUrut"));
//
// List<Map<String, Object>> listObjectModul =
// loginUserDao.getModulByModulHead((Integer)objectModulHead.get("id"));
// if(CommonUtil.isNullOrEmpty(listObjectModul)){
// parent.put("link", objectModulHead.get("alamatUrlForm"));
// }
//
// List<Map<String, Object>> listChildren = new ArrayList<>();
// for(Map<String, Object> objectModul: listObjectModul){
// Map<String, Object> children = new HashMap<>();
//
// if(CommonUtil.isNotNullOrEmpty(objectModul)){
// children.put("name", objectModul.get("objekModulAplikasi"));
// children.put("link", objectModul.get("alamatUrlForm"));
// children.put("noUrut", objectModul.get("objekModulNoUrut"));
// }
// if(CommonUtil.isNotNullOrEmpty(children)){
// listChildren.add(children);
// }
// }
// if(CommonUtil.isNotNullOrEmpty(listChildren)){
// parent.put("children", listChildren);
// }
// }
// if(CommonUtil.isNotNullOrEmpty(parent)){
// result.add(parent);
// }
// }
return result;
} }
@Override @Override
public Map<String, Object> saveUpdateLoginUser(LoginUserVO vo) { public Map<String, Object> saveUpdateLoginUser(LoginUserVO vo) {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
if (CommonUtil.isNotNullOrEmpty(vo)) { if (CommonUtil.isNotNullOrEmpty(vo)) {
LoginUser loginUser = new LoginUser();
if (CommonUtil.isNotNullOrEmpty(vo.getId())) { if (CommonUtil.isNotNullOrEmpty(vo.getId())) {
LoginUser loginUser = setLoginUser(vo); loginUser = setLoginUser(vo);
if (CommonUtil.isNotNullOrEmpty(loginUser)) { if (CommonUtil.isNotNullOrEmpty(loginUser)) {
LoginUser loginUserResult = loginUserDao.save(loginUser); LoginUser loginUserResult = loginUserDao.save(loginUser);
result.put("namaUser", loginUserResult.getNamaUser()); result.put("namaUser", loginUserResult.getNamaUser());
@ -475,7 +538,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
if (CommonUtil.isNotNullOrEmpty(users)) { if (CommonUtil.isNotNullOrEmpty(users)) {
result.put("statusError", "Nama user sudah ada, silahkan input nama user lainya"); result.put("statusError", "Nama user sudah ada, silahkan input nama user lainya");
} else { } else {
LoginUser loginUser = setLoginUser(vo); loginUser = setLoginUser(vo);
if (CommonUtil.isNotNullOrEmpty(loginUser)) { if (CommonUtil.isNotNullOrEmpty(loginUser)) {
LoginUser loginUserResult = loginUserDao.save(loginUser); LoginUser loginUserResult = loginUserDao.save(loginUser);
result.put("namaUser", loginUserResult.getNamaUser()); result.put("namaUser", loginUserResult.getNamaUser());
@ -514,7 +577,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
try { try {
loginUser.setKataSandi(new PasswordUtil().encryptPassword(vo.getKataSandi())); loginUser.setKataSandi(new PasswordUtil().encryptPassword(vo.getKataSandi()));
} catch (NoSuchAlgorithmException | UnsupportedEncodingException e) { } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
throw new ServiceVOException(e.getMessage()); e.printStackTrace();
} }
} }
if (CommonUtil.isNotNullOrEmpty(vo.getPegawai())) { if (CommonUtil.isNotNullOrEmpty(vo.getPegawai())) {