Update service pelayanan pasien

Pembuatan fitur pengecekan hak akses
This commit is contained in:
Salman Manoe 2023-08-08 11:38:25 +07:00
parent d5b211d577
commit 3d21fe9c86
5 changed files with 253 additions and 229 deletions

View File

@ -1,16 +1,15 @@
package com.jasamedika.medifirst2000.dao;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import com.jasamedika.medifirst2000.entities.MapPegawaiJabatanToUnitKerja;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import com.jasamedika.medifirst2000.entities.MapPegawaiJabatanToUnitKerja;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
* Repository class for AbsensiPegawai
@ -559,4 +558,9 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends CrudRepository<MapPegaw
+ "and mj.unitKerjaPegawaiId = :unitKerjaPegawaiId " + "order by pg.namaLengkap")
List<Map<String, Object>> findPegawaiByUnitKerja(@Param("unitKerjaPegawaiId") Integer unitKerjaPegawaiId);
@Query("select pg.id from MapPegawaiJabatanToUnitKerja mj " + "inner join mj.pegawai pg "
+ "where mj.statusEnabled is true " + "and pg.statusEnabled is true "
+ "and mj.unitKerjaPegawaiId = :unitKerjaId " + "and mj.jabatanId = :jabatanId")
List<Integer> findPegawaiIdByUnitKerjaIdAndJabatanId(@Param("unitKerjaId") Integer unitKerjaId,
@Param("jabatanId") Integer jabatanId);
}

View File

@ -1,16 +1,14 @@
package com.jasamedika.medifirst2000.service;
import java.util.List;
import java.util.Map;
import org.springframework.orm.jpa.JpaSystemException;
import com.jasamedika.medifirst2000.entities.LoginUser;
import com.jasamedika.medifirst2000.entities.Ruangan;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.vo.LoginUserVO;
import com.jasamedika.medifirst2000.vo.custom.AuthVO;
import org.springframework.orm.jpa.JpaSystemException;
import java.util.List;
import java.util.Map;
public interface LoginUserService extends BaseVoService<LoginUser, LoginUserVO, Integer> {
@ -24,7 +22,8 @@ public interface LoginUserService extends BaseVoService<LoginUser, LoginUserVO,
List<LoginUserVO> findAll() throws JpaSystemException;
Map<String, Object> findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit, String sort, String dir);
Map<String, Object> findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit, String sort,
String dir);
Boolean delete(Integer key) throws JpaSystemException;
@ -35,18 +34,28 @@ public interface LoginUserService extends BaseVoService<LoginUser, LoginUserVO,
// -------------------------------------------------------------------------------------------------------------------------------
public Map<String, Object> getLoadData();
public List<Map<String, Object>> getListSideMenu();
public Map<String, Object> saveLoginUser(LoginUserVO vo);
public Map<String, Object> getListRuangan(Integer loginUserId);
public Map<String, Object> getListModulAplikasi(Integer modulAplikasiId);
public List<Map<String, Object>> getListObjectModulAplikasi(Integer modulAplikasiId);
// Alter Syamsu
List<LoginUser> findByNamaUser(String namaUser);
Ruangan getCurrentRuangan();
Integer getCurrentRuanganId();
Map<String, Object> saveUpdateLoginUser(LoginUserVO vo);
public LoginUser setLoginUser(LoginUserVO vo);
boolean accessGranted(LoginUser loginUser, List<Integer> listIdPegawai);
}

View File

@ -1,16 +1,18 @@
package com.jasamedika.medifirst2000.service.impl;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.converter.LoginUserAuthConverter;
import com.jasamedika.medifirst2000.converter.LoginUserConverter;
import com.jasamedika.medifirst2000.dao.HistoryLoginModulAplikasiDao;
import com.jasamedika.medifirst2000.dao.LoginUserDao;
import com.jasamedika.medifirst2000.dao.MapPegawaiToModulAplikasiDao;
import com.jasamedika.medifirst2000.entities.*;
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.*;
import com.jasamedika.medifirst2000.vo.custom.AuthVO;
import org.apache.commons.collections.IteratorUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -21,32 +23,10 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.converter.LoginUserAuthConverter;
import com.jasamedika.medifirst2000.converter.LoginUserConverter;
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;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.NoSuchAlgorithmException;
import java.util.*;
@Service("LoginUserService")
public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUserService {
@ -106,7 +86,8 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
Ruangan ruangan;
List<HistoryLoginModulAplikasi> historyS = historyLoginModulAplikasiDao.findCurrentRuangan(loginUser.getNamaUser(), new Date());
List<HistoryLoginModulAplikasi> historyS = historyLoginModulAplikasiDao
.findCurrentRuangan(loginUser.getNamaUser(), new Date());
if (CommonUtil.isNullOrEmpty(historyS) || CommonUtil.isNullOrEmpty(historyS.get(0).getRuanganUserId())) {
ruangan = loginUser.getPegawai().getRuangan();
@ -153,7 +134,6 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
PasswordUtil passwordUtil = new PasswordUtil();
loginUserConverter.transferVOToModel(vo, loginUserLama);
try {
@ -265,14 +245,12 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
if (CommonUtil.isNotNullOrEmpty(list)) {
result.put("data", list);
result.put("dataFound", true);
}
else{
} else {
result.put("dataFound", false);
}
return result;
}
// Reza
// -----------------------------------------------------------------------------------------------
@ -309,7 +287,8 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
mapRuangan.put("namaRuangan", ruangan.get("namaRuangan"));
List<Map<String, Object>> listModul = new ArrayList<>();
for(Map<String, Object> modul : loginUserDao.getModulByDepartemen((Integer)ruangan.get("departemenId"))){
for (Map<String, Object> modul : loginUserDao
.getModulByDepartemen((Integer) ruangan.get("departemenId"))) {
Map<String, Object> mapModul = new HashMap<>();
if (CommonUtil.isNotNullOrEmpty(modul)) {
@ -318,17 +297,20 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
mapModul.put("noUrut", modul.get("modulNoUrut"));
List<Map<String, Object>> listObjectModulHead = new ArrayList<>();
for(Map<String, Object> objectModulHead : loginUserDao.getObjectModulHeadByModul((Integer)modul.get("id"))){
for (Map<String, Object> objectModulHead : loginUserDao
.getObjectModulHeadByModul((Integer) modul.get("id"))) {
Map<String, Object> mapObjectModulHead = new HashMap<>();
if (CommonUtil.isNotNullOrEmpty(objectModulHead)) {
mapObjectModulHead.put("objectModulHeadId", objectModulHead.get("id"));
mapObjectModulHead.put("namaObjekModulHead", objectModulHead.get("objekModulAplikasi"));
mapObjectModulHead.put("namaObjekModulHead",
objectModulHead.get("objekModulAplikasi"));
mapObjectModulHead.put("linkAplikasi", objectModulHead.get("alamatUrlForm"));
mapObjectModulHead.put("noUrut", objectModulHead.get("objekModulNoUrut"));
List<Map<String, Object>> listObjectModul = new ArrayList<>();
for(Map<String, Object> objectModul: loginUserDao.getModulByModulHead((Integer)objectModulHead.get("id"))){
for (Map<String, Object> objectModul : loginUserDao
.getModulByModulHead((Integer) objectModulHead.get("id"))) {
Map<String, Object> mapObjectModul = new HashMap<>();
if (CommonUtil.isNotNullOrEmpty(objectModul)) {
@ -392,7 +374,8 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
loginUser.setReportDisplay(vo.getNamaUser());
}
if (CommonUtil.isNotNullOrEmpty(vo.getKelompokUser())) {
loginUser.setKelompokUser(kelompokUserConverter.transferVOToModel(vo.getKelompokUser(), new KelompokUser()));
loginUser
.setKelompokUser(kelompokUserConverter.transferVOToModel(vo.getKelompokUser(), new KelompokUser()));
}
if (CommonUtil.isNotNullOrEmpty(vo.getKataSandi())) {
try {
@ -411,11 +394,13 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
MapLoginUserToRuangan mapLoginUserToRuangan = new MapLoginUserToRuangan();
if (CommonUtil.isNotNullOrEmpty(loginUserToRuanganVO)) {
mapLoginUserToRuangan = mapLoginUserToRuanganConverter.transferVOToModel(loginUserToRuanganVO, new MapLoginUserToRuangan());
mapLoginUserToRuangan = mapLoginUserToRuanganConverter.transferVOToModel(loginUserToRuanganVO,
new MapLoginUserToRuangan());
mapLoginUserToRuangan.setLoginUser(loginUser);
}
if (CommonUtil.isNotNullOrEmpty(loginUserToRuanganVO.getRuangan())) {
mapLoginUserToRuangan.setRuangan(ruanganConverter.transferVOToModel(loginUserToRuanganVO.getRuangan(), new Ruangan()));
mapLoginUserToRuangan.setRuangan(
ruanganConverter.transferVOToModel(loginUserToRuanganVO.getRuangan(), new Ruangan()));
}
if (CommonUtil.isNotNullOrEmpty(mapLoginUserToRuangan)) {
loginUserToRuanganSet.add(mapLoginUserToRuangan);
@ -430,11 +415,14 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
MapPegawaiToModulAplikasi mapPegawaiToModulAplikasi = new MapPegawaiToModulAplikasi();
if (CommonUtil.isNotNullOrEmpty(pegawaiToModulVO)) {
mapPegawaiToModulAplikasi = mapPegawaiToModulAplikasiConverter.transferVOToModel(pegawaiToModulVO, new MapPegawaiToModulAplikasi());
mapPegawaiToModulAplikasi.setPegawai(pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai()));
mapPegawaiToModulAplikasi = mapPegawaiToModulAplikasiConverter.transferVOToModel(pegawaiToModulVO,
new MapPegawaiToModulAplikasi());
mapPegawaiToModulAplikasi
.setPegawai(pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai()));
}
if (CommonUtil.isNotNullOrEmpty(pegawaiToModulVO.getModulAplikasi())) {
mapPegawaiToModulAplikasi.setModulAplikasi(modulAplikasiConverter.transferVOToModel(pegawaiToModulVO.getModulAplikasi(), new ModulAplikasi()));
mapPegawaiToModulAplikasi.setModulAplikasi(modulAplikasiConverter
.transferVOToModel(pegawaiToModulVO.getModulAplikasi(), new ModulAplikasi()));
}
if (CommonUtil.isNotNullOrEmpty(mapPegawaiToModulAplikasi)) {
mapPegawaiToModulAplikasiDao.save(mapPegawaiToModulAplikasi);
@ -472,14 +460,16 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
@Override
public List<Map<String, Object>> getListObjectModulAplikasi(Integer modulAplikasiId) {
List<Map<String, Object>> result = new ArrayList<>();
// for(Map<String, Object> objectModulHead : loginUserDao.getObjectModulHeadByModul(modulAplikasiId)){
// 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"));
// List<Map<String, Object>> listObjectModul =
// loginUserDao.getModulByModulHead((Integer)objectModulHead.get("id"));
// if(CommonUtil.isNullOrEmpty(listObjectModul)){
// parent.put("link", objectModulHead.get("alamatUrlForm"));
// }
@ -560,7 +550,8 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
loginUser.setReportDisplay(vo.getNamaUser());
}
if (CommonUtil.isNotNullOrEmpty(vo.getKelompokUser())) {
loginUser.setKelompokUser(kelompokUserConverter.transferVOToModel(vo.getKelompokUser(), new KelompokUser()));
loginUser
.setKelompokUser(kelompokUserConverter.transferVOToModel(vo.getKelompokUser(), new KelompokUser()));
}
if (CommonUtil.isNotNullOrEmpty(vo.getKataSandi())) {
try {
@ -574,4 +565,9 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
}
return loginUser;
}
@Override
public boolean accessGranted(LoginUser loginUser, List<Integer> listIdPegawai) {
return listIdPegawai.contains(loginUser.getPegawai().getId());
}
}

View File

@ -5,6 +5,8 @@ import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.dao.*;
import com.jasamedika.medifirst2000.dto.TagihanPendaftaranDto;
import com.jasamedika.medifirst2000.entities.*;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.LoginUserService;
import com.jasamedika.medifirst2000.service.PelayananPasienService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.util.DateUtil;
@ -57,6 +59,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
@Autowired
private BaseConverterImpl<ProdukVO, Produk> produkConverter;
@Autowired
private LoginUserService loginUserService;
@Autowired
private PasienDaftarDao pasienDaftarDao;
@ -78,6 +83,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
@Autowired
private TargetRemunDokterDetailDao targetRemunDokterDetailDao;
@Autowired
private MapPegawaiJabatanToUnitKerjaDao mapPegawaiJabatanToUnitKerjaDao;
@Autowired
private PegawaiDao pegawaiDao;
@ -2191,6 +2199,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
@Override
public void diskonTagihan(List<TagihanPendaftaranDto> dtoList) {
{
List<Integer> listIdPegawai = mapPegawaiJabatanToUnitKerjaDao.findPegawaiIdByUnitKerjaIdAndJabatanId(48,
1075);
boolean accessGranted = loginUserService.accessGranted(loginUserService.getLoginUser(), listIdPegawai);
if (!accessGranted)
throw new ServiceVOException("Tidak memiliki akses diskon total");
}
List<String> listNoRec = dtoList.stream().map(TagihanPendaftaranDto::getNoRec).collect(Collectors.toList());
List<PelayananPasien> listPelayanan = pelayananPasienDao.findAll(listNoRec);
listPelayanan.forEach(p -> {

View File

@ -226,12 +226,12 @@ public class PelayananController extends LocaleController<PelayananPasienVO> {
getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(dtoList, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) {
LOGGER.error("Got exception {} when simpan diskon tagihan {}", e.getMessage(), null);
LOGGER.error("Got exception {} when simpan diskon tagihan", e.getMessage());
Map<String, String> error = new HashMap<>();
error.put("bad-request", e.getMessage());
error.put("bad_request", e.getMessage());
return RestUtil.getJsonResponse(null, HttpStatus.BAD_REQUEST, error);
} catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when simpan diskon tagihan {}", jse.getMessage(), null);
LOGGER.error("Got exception {} when simpan diskon tagihan", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}