Merge branch 'dev'

This commit is contained in:
Salman Manoe 2023-10-19 08:26:17 +07:00
commit 7d6d5272f2
7 changed files with 375 additions and 178 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,7 +32,7 @@ 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);
@ -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);
} }
@ -71,29 +71,30 @@ public class PegawaiConverter implements BaseVoConverter<PegawaiVO, Pegawai> {
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) {
@ -103,13 +104,13 @@ public class PegawaiConverter implements BaseVoConverter<PegawaiVO, Pegawai> {
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);
@ -118,13 +119,14 @@ public class PegawaiConverter implements BaseVoConverter<PegawaiVO, Pegawai> {
} }
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);
@ -134,6 +136,7 @@ public class PegawaiConverter implements BaseVoConverter<PegawaiVO, Pegawai> {
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();
@ -143,30 +146,31 @@ public class PegawaiConverter implements BaseVoConverter<PegawaiVO, Pegawai> {
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) {

View File

@ -110,7 +110,7 @@ public interface PasienDao extends JpaRepository<Pasien, Integer> {
+ "and to_char(anak.tglLahir,'yyyy-MM-dd') between :tglAwal and :tglAkhir " + "order by ibu.namaPasien") + "and to_char(anak.tglLahir,'yyyy-MM-dd') between :tglAwal and :tglAkhir " + "order by ibu.namaPasien")
List<Map<String, Object>> findIbuAnak(@Param("tglAwal") String tglAwal, @Param("tglAkhir") String tglAkhir); List<Map<String, Object>> findIbuAnak(@Param("tglAwal") String tglAwal, @Param("tglAkhir") String tglAkhir);
@Query(value = "select ps.* " + "from pasien_m ps " + "where ps.statusenabled is true " @Query(value = "select ps.* " + "from pasien_m ps " + "where ps.statusenabled is true " + "and ps.kdProfile <> 1 "
+ "and (ps.nobpjs is not null " + "and trim(ps.nobpjs) <> '' " + "and ps.nobpjs <> '-' " + "and (ps.nobpjs is not null " + "and trim(ps.nobpjs) <> '' " + "and ps.nobpjs <> '-' "
+ "and ps.nobpjs ~ '[0-9]+' " + "and length(ps.nobpjs) = 13) " + "and (ps.noidentitas is null " + "and ps.nobpjs ~ '[0-9]+' " + "and length(ps.nobpjs) = 13) " + "and (ps.noidentitas is null "
+ "or length(ps.noidentitas) <> 16) " + "order by ps.statusenabled, ps.tgldaftar desc", nativeQuery = true) + "or length(ps.noidentitas) <> 16) " + "order by ps.statusenabled, ps.tgldaftar desc", nativeQuery = true)

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 -> {
socket.on(io.socket.client.Socket.EVENT_CONNECT, new io.socket.emitter.Emitter.Listener() {
@Override
public void call(Object... args) {
try { try {
Gson gson = new Gson(); Gson gson = new Gson();
JSONObject item = new JSONObject( JSONObject item = new JSONObject(
"{\"to\":\"" + to + "\",\"message\":" + gson.toJson(data) + "}"); "{\"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();
} }
}
}); });
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())) {

View File

@ -17,4 +17,5 @@ import lombok.NoArgsConstructor;
public class PesertaBpjsDto { public class PesertaBpjsDto {
private String noKartu; private String noKartu;
private String nik; private String nik;
private Short kdProfile;
} }

View File

@ -9,7 +9,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity; import org.springframework.http.HttpEntity;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -18,12 +17,12 @@ import org.springframework.web.client.RestTemplate;
import java.net.URI; import java.net.URI;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap; import java.util.stream.Collectors;
import java.util.List;
import java.util.Map;
import static org.springframework.http.HttpMethod.GET; import static org.springframework.http.HttpMethod.GET;
import static org.springframework.http.HttpStatus.CREATED;
import static org.springframework.http.HttpStatus.OK;
/** /**
* @author salmanoe * @author salmanoe
@ -43,7 +42,7 @@ public class PasienTask {
@Autowired @Autowired
private PasienDao pasienDao; private PasienDao pasienDao;
@Scheduled(fixedRate = 1000 * 60 * 60 * 24) @Scheduled(cron = "0 0 0 * * *")
public void nikPesertaBpjs() { public void nikPesertaBpjs() {
LOGGER.info("Task PasienTask.nikPesertaBpjs {}", LocalDateTime.now()); LOGGER.info("Task PasienTask.nikPesertaBpjs {}", LocalDateTime.now());
@ -52,26 +51,58 @@ public class PasienTask {
@Transactional @Transactional
private void adjustNikPesertaBpjs() { private void adjustNikPesertaBpjs() {
try {
LOGGER.info("Adjusting NIK Peserta BPJS {}", LocalDateTime.now()); LOGGER.info("Adjusting NIK Peserta BPJS {}", LocalDateTime.now());
List<Pasien> listPasien = new ArrayList<>(); List<PesertaBpjsDto> listDtoUpdate = new ArrayList<>();
List<PesertaBpjsDto> listDtoNotUpdate = new ArrayList<>();
List<Pasien> pasienValidBpjs = pasienDao.findByValidBpjs(); List<Pasien> pasienValidBpjs = pasienDao.findByValidBpjs();
for (Pasien pasien : pasienValidBpjs) { for (Pasien pasien : pasienValidBpjs) {
try {
PesertaBpjsDto pesertaBpjsDto = cekKepesertaan(pasien.getNoBpjs()); PesertaBpjsDto pesertaBpjsDto = cekKepesertaan(pasien.getNoBpjs());
if (pesertaBpjsDto != null) { if (pesertaBpjsDto.getKdProfile() == 0)
Pasien pasien_ = new Pasien(); listDtoUpdate.add(pesertaBpjsDto);
pasien_.setId(pasien.getId()); if (pesertaBpjsDto.getKdProfile() == 1)
pasien_.setNoIdentitas(pesertaBpjsDto.getNik()); listDtoNotUpdate.add(pesertaBpjsDto);
listPasien.add(pasien_);
}
Thread.sleep((long) (Math.random() * 1000 * 8)); Thread.sleep((long) (Math.random() * 1000 * 8));
}
if (CommonUtil.isNotNullOrEmpty(listPasien))
pasienDao.save(listPasien);
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("Error adjusting NIK Peserta BPJS {}", e.getMessage()); LOGGER.error("Error adjusting NIK Peserta BPJS {} -> {}", pasien.getNoBpjs(), e.getMessage());
}
}
{
List<String> listNoKartu = listDtoUpdate.stream().map(PesertaBpjsDto::getNoKartu)
.collect(Collectors.toList());
List<Pasien> availableValid = pasienValidBpjs.stream()
.filter(pasien -> listNoKartu.contains(pasien.getNoBpjs())).collect(Collectors.toList());
availableValid.forEach(pasien -> {
Optional<PesertaBpjsDto> first = listDtoUpdate.stream()
.filter(dto -> pasien.getNoBpjs().equals(dto.getNoKartu())).findFirst();
first.ifPresent(dto -> {
pasien.setKdProfile(dto.getKdProfile());
pasien.setNoIdentitas(dto.getNik());
});
});
if (CommonUtil.isNotNullOrEmpty(availableValid)) {
LOGGER.info("Save available valid data");
pasienDao.save(availableValid);
}
}
{
List<String> listNoKartu = listDtoNotUpdate.stream().map(PesertaBpjsDto::getNoKartu)
.collect(Collectors.toList());
List<Pasien> availableValid = pasienValidBpjs.stream()
.filter(pasien -> listNoKartu.contains(pasien.getNoBpjs())).collect(Collectors.toList());
availableValid.forEach(pasien -> {
Optional<PesertaBpjsDto> first = listDtoNotUpdate.stream()
.filter(dto -> pasien.getNoBpjs().equals(dto.getNoKartu())).findFirst();
first.ifPresent(dto -> pasien.setKdProfile(dto.getKdProfile()));
});
if (CommonUtil.isNotNullOrEmpty(availableValid)) {
LOGGER.info("Flag kdProfile can not update");
pasienDao.save(availableValid);
}
} }
} }
@ -82,20 +113,23 @@ public class PasienTask {
URI uri = new URI("https://daftar.rsabhk.co.id/api/data/pasien/jaminan/bpjs/cek-kepesertaan/" + noKartu); URI uri = new URI("https://daftar.rsabhk.co.id/api/data/pasien/jaminan/bpjs/cek-kepesertaan/" + noKartu);
HttpEntity<Object> request = new HttpEntity<>(null); HttpEntity<Object> request = new HttpEntity<>(null);
ResponseEntity<Object> response = restTemplate.exchange(uri, GET, request, Object.class); ResponseEntity<Object> response = restTemplate.exchange(uri, GET, request, Object.class);
if (HttpStatus.OK.equals(response.getStatusCode())) { if (OK.equals(response.getStatusCode()) || CREATED.equals(response.getStatusCode())) {
Map<String, Object> responseBody = objectMapper.convertValue(response.getBody(), Map.class); Map<String, Object> responseBody = objectMapper.convertValue(response.getBody(), Map.class);
Map<String, Object> responseMap = objectMapper.convertValue(responseBody.get("response"), Map<String, Object> responseMap = objectMapper.convertValue(responseBody.get("response"),
HashMap.class); HashMap.class);
Map<String, Object> responsePeserta = objectMapper.convertValue(responseMap.get("peserta"), Map<String, Object> responsePeserta = objectMapper.convertValue(responseMap.get("peserta"),
HashMap.class); HashMap.class);
return PesertaBpjsDto.builder().noKartu(responsePeserta.get("noKartu").toString()) return PesertaBpjsDto.builder().noKartu(responsePeserta.get("noKartu").toString())
.nik(responsePeserta.get("nik").toString()).build(); .nik(responsePeserta.get("nik").toString()).kdProfile((short) 0).build();
} else { } else {
LOGGER.error("Error handshake cek kepesertaan BPJS {}", response.getStatusCode().getReasonPhrase()); LOGGER.error("Error handshake cek kepesertaan BPJS {}", response.getStatusCode().getReasonPhrase());
return PesertaBpjsDto.builder().noKartu(noKartu).kdProfile((short) 1).build();
} }
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("Error cek kepesertaan BPJS {}", e.getMessage()); LOGGER.error("Error cek kepesertaan BPJS {}", e.getMessage());
return PesertaBpjsDto.builder().noKartu(noKartu).kdProfile((short) 1).build();
} }
return null;
} }
} }