From 3d21fe9c86f51e50b78b3aa820461a8dc5ee157b Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Tue, 8 Aug 2023 11:38:25 +0700 Subject: [PATCH] Update service pelayanan pasien Pembuatan fitur pengecekan hak akses --- .../dao/MapPegawaiJabatanToUnitKerjaDao.java | 14 +- .../service/LoginUserService.java | 37 +- .../service/impl/LoginUserServiceImpl.java | 410 +++++++++--------- .../impl/PelayananPasienServiceImpl.java | 15 + .../controller/PelayananController.java | 6 +- 5 files changed, 253 insertions(+), 229 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java index a720777a..8a00de7c 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java @@ -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> 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 findPegawaiIdByUnitKerjaIdAndJabatanId(@Param("unitKerjaId") Integer unitKerjaId, + @Param("jabatanId") Integer jabatanId); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LoginUserService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LoginUserService.java index 2c6fff7b..105866e7 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LoginUserService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LoginUserService.java @@ -1,19 +1,17 @@ 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 { - + LoginUserVO signIn(AuthVO authVO) throws Exception; LoginUserVO add(LoginUserVO vo) throws JpaSystemException, ServiceVOException; @@ -24,29 +22,40 @@ public interface LoginUserService extends BaseVoService findAll() throws JpaSystemException; - Map findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit, String sort, String dir); + Map findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit, String sort, + String dir); Boolean delete(Integer key) throws JpaSystemException; LoginUser getLoginUser(); - + Map getAllUser(); - - //------------------------------------------------------------------------------------------------------------------------------- - + + // ------------------------------------------------------------------------------------------------------------------------------- + public Map getLoadData(); + public List> getListSideMenu(); + public Map saveLoginUser(LoginUserVO vo); + public Map getListRuangan(Integer loginUserId); + public Map getListModulAplikasi(Integer modulAplikasiId); + public List> getListObjectModulAplikasi(Integer modulAplikasiId); - + // Alter Syamsu - + List findByNamaUser(String namaUser); + Ruangan getCurrentRuangan(); + Integer getCurrentRuanganId(); + Map saveUpdateLoginUser(LoginUserVO vo); + public LoginUser setLoginUser(LoginUserVO vo); - + + boolean accessGranted(LoginUser loginUser, List listIdPegawai); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LoginUserServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LoginUserServiceImpl.java index 6b82abba..c6c3b813 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LoginUserServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LoginUserServiceImpl.java @@ -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,41 +23,19 @@ 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 { - + private static final Logger LOGGER = LoggerFactory.getLogger(LoginUserServiceImpl.class); @Autowired private LoginUserDao loginUserDao; - + @Autowired private MapPegawaiToModulAplikasiDao mapPegawaiToModulAplikasiDao; @@ -64,63 +44,64 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser @Autowired private LoginUserConverter loginUserConverter; - + @Autowired private BaseConverterImpl loginUserConverters; - + @Autowired private BaseConverterImpl pegawaiConverter; - + @Autowired private BaseConverterImpl kelompokUserConverter; - + @Autowired private BaseConverterImpl mapPegawaiToModulAplikasiConverter; - + @Autowired private BaseConverterImpl modulAplikasiConverter; - + @Autowired private BaseConverterImpl mapLoginUserToRuanganConverter; - + @Autowired private BaseConverterImpl ruanganConverter; - + @Autowired private HistoryLoginModulAplikasiDao historyLoginModulAplikasiDao; - + @Override public Integer getCurrentRuanganId() { Ruangan ruangan = getCurrentRuangan(); - if (CommonUtil.isNullOrEmpty(ruangan)){ + if (CommonUtil.isNullOrEmpty(ruangan)) { return 0; } - + return ruangan.getId(); } - + @Override - public Ruangan getCurrentRuangan(){ - + public Ruangan getCurrentRuangan() { + LoginUser loginUser = getLoginUser(); - + Ruangan ruangan; - - List historyS = historyLoginModulAplikasiDao.findCurrentRuangan(loginUser.getNamaUser(), new Date()); - - if (CommonUtil.isNullOrEmpty(historyS) || CommonUtil.isNullOrEmpty(historyS.get(0).getRuanganUserId())){ + + List historyS = historyLoginModulAplikasiDao + .findCurrentRuangan(loginUser.getNamaUser(), new Date()); + + if (CommonUtil.isNullOrEmpty(historyS) || CommonUtil.isNullOrEmpty(historyS.get(0).getRuanganUserId())) { ruangan = loginUser.getPegawai().getRuangan(); } else { ruangan = historyS.get(0).getRuanganUser(); } - + return ruangan; } - - public List findByNamaUser(String namaUser){ + + public List findByNamaUser(String namaUser) { return loginUserDao.findByNamaUser(namaUser); } - + @Override @Transactional(readOnly = false) public LoginUserVO add(LoginUserVO vo) throws JpaSystemException, ServiceVOException { @@ -143,25 +124,24 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser return resultVo; } - + @Override @Transactional(readOnly = false) public LoginUserVO update(LoginUserVO vo) throws JpaSystemException, ServiceVOException { - //Alter Syamsu + // Alter Syamsu LoginUser loginUserLama = loginUserDao.findOne(vo.getId()); - + PasswordUtil passwordUtil = new PasswordUtil(); - loginUserConverter.transferVOToModel(vo, loginUserLama); - + try { loginUserLama.setKataSandi(passwordUtil.encryptPassword(loginUserLama.getKataSandi())); } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) { e.printStackTrace(); } - + loginUserDao.save(loginUserLama); // return VO @@ -243,147 +223,149 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser throw new RuntimeException("User account is unauthorized : username : " + authVO.getNamaUser()); } } - + @Override - public LoginUser getLoginUser(){ + public LoginUser getLoginUser() { List loginUser = null; - try { - Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); - String namaUser = principal.toString(); - loginUser = loginUserDao.findByNamaUser(namaUser); - } catch (Exception e) { - e.printStackTrace(); - } - return loginUser.get(0); - } + try { + Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + String namaUser = principal.toString(); + loginUser = loginUserDao.findByNamaUser(namaUser); + } catch (Exception e) { + e.printStackTrace(); + } + return loginUser.get(0); + } @Override public Map getAllUser() { Map result = new HashMap(); List list = new ArrayList(); list = (List) loginUserDao.findAllUser(); - if(CommonUtil.isNotNullOrEmpty(list)){ + if (CommonUtil.isNotNullOrEmpty(list)) { result.put("data", list); result.put("dataFound", true); - } - else{ + } else { result.put("dataFound", false); } return result; } - - //Reza - //----------------------------------------------------------------------------------------------- + // Reza + // ----------------------------------------------------------------------------------------------- @Override - public Map getLoadData(){ + public Map getLoadData() { Map result = new HashMap(); - //-------------------------------------------------------------------------- + // -------------------------------------------------------------------------- List> listPegawai = loginUserDao.listPegawai(); - if(CommonUtil.isNotNullOrEmpty(listPegawai)){ + if (CommonUtil.isNotNullOrEmpty(listPegawai)) { result.put("listPegawai", listPegawai); } - //-------------------------------------------------------------------------- + // -------------------------------------------------------------------------- List> listKelompokUser = loginUserDao.listKelompokUser(); - if(CommonUtil.isNotNullOrEmpty(listKelompokUser)){ + if (CommonUtil.isNotNullOrEmpty(listKelompokUser)) { result.put("listKelompokUser", listKelompokUser); } - //-------------------------------------------------------------------------- + // -------------------------------------------------------------------------- List> listSideMenu = getListSideMenu(); - if(CommonUtil.isNotNullOrEmpty(listSideMenu)){ + if (CommonUtil.isNotNullOrEmpty(listSideMenu)) { result.put("listSideMenu", listSideMenu); } return result; } - + @Override - public List> getListSideMenu(){ + public List> getListSideMenu() { List> listSideMenu = new ArrayList<>(); - try{ - for(Map ruangan : loginUserDao.listRuangan()){ + try { + for (Map ruangan : loginUserDao.listRuangan()) { Map mapRuangan = new HashMap<>(); - - if(CommonUtil.isNotNullOrEmpty(ruangan)){ + + if (CommonUtil.isNotNullOrEmpty(ruangan)) { mapRuangan.put("ruanganId", ruangan.get("id")); mapRuangan.put("namaRuangan", ruangan.get("namaRuangan")); - + List> listModul = new ArrayList<>(); - for(Map modul : loginUserDao.getModulByDepartemen((Integer)ruangan.get("departemenId"))){ + for (Map modul : loginUserDao + .getModulByDepartemen((Integer) ruangan.get("departemenId"))) { Map mapModul = new HashMap<>(); - - if(CommonUtil.isNotNullOrEmpty(modul)){ + + if (CommonUtil.isNotNullOrEmpty(modul)) { mapModul.put("modulId", modul.get("id")); mapModul.put("namaModul", modul.get("modulAplikasi")); mapModul.put("noUrut", modul.get("modulNoUrut")); - + List> listObjectModulHead = new ArrayList<>(); - for(Map objectModulHead : loginUserDao.getObjectModulHeadByModul((Integer)modul.get("id"))){ + for (Map objectModulHead : loginUserDao + .getObjectModulHeadByModul((Integer) modul.get("id"))) { Map mapObjectModulHead = new HashMap<>(); - - if(CommonUtil.isNotNullOrEmpty(objectModulHead)){ + + 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> listObjectModul = new ArrayList<>(); - for(Map objectModul: loginUserDao.getModulByModulHead((Integer)objectModulHead.get("id"))){ + for (Map objectModul : loginUserDao + .getModulByModulHead((Integer) objectModulHead.get("id"))) { Map mapObjectModul = new HashMap<>(); - - if(CommonUtil.isNotNullOrEmpty(objectModul)){ + + if (CommonUtil.isNotNullOrEmpty(objectModul)) { mapObjectModul.put("objectModulId", objectModul.get("id")); mapObjectModul.put("namaObjekModul", objectModul.get("objekModulAplikasi")); mapObjectModul.put("linkAplikasi", objectModul.get("alamatUrlForm")); mapObjectModul.put("noUrut", objectModul.get("objekModulNoUrut")); } - if(CommonUtil.isNotNullOrEmpty(mapObjectModul)){ + if (CommonUtil.isNotNullOrEmpty(mapObjectModul)) { listObjectModul.add(mapObjectModul); } } - if(CommonUtil.isNotNullOrEmpty(listObjectModul)){ + if (CommonUtil.isNotNullOrEmpty(listObjectModul)) { mapObjectModulHead.put("listObjectModul", listObjectModul); } } - if(CommonUtil.isNotNullOrEmpty(mapObjectModulHead)){ + if (CommonUtil.isNotNullOrEmpty(mapObjectModulHead)) { listObjectModulHead.add(mapObjectModulHead); } } - if(CommonUtil.isNotNullOrEmpty(listObjectModulHead)){ + if (CommonUtil.isNotNullOrEmpty(listObjectModulHead)) { mapModul.put("listObjectModulHead", listObjectModulHead); } } - if(CommonUtil.isNotNullOrEmpty(mapModul)){ + if (CommonUtil.isNotNullOrEmpty(mapModul)) { listModul.add(mapModul); } } - if(CommonUtil.isNotNullOrEmpty(listModul)){ + if (CommonUtil.isNotNullOrEmpty(listModul)) { mapRuangan.put("listModul", listModul); } } - if(CommonUtil.isNotNullOrEmpty(mapRuangan)){ + if (CommonUtil.isNotNullOrEmpty(mapRuangan)) { listSideMenu.add(mapRuangan); } } - }catch (Exception ex){ + } catch (Exception ex) { ex.printStackTrace(); } return listSideMenu; } - + @Override - public Map saveLoginUser(LoginUserVO vo){ + public Map saveLoginUser(LoginUserVO vo) { Map result = new HashMap<>(); - + if (CommonUtil.isNotNullOrEmpty(vo.getNamaUser())) { List users = loginUserDao.findByNamaUser(vo.getNamaUser()); if (!users.isEmpty()) { throw new ServiceVOException("Nama user sudah ada, ganti atau pakai nama user yang lain"); } } - + LoginUser loginUser = new LoginUser(); - if(CommonUtil.isNotNullOrEmpty(vo)){ + if (CommonUtil.isNotNullOrEmpty(vo)) { loginUser = loginUserConverters.transferVOToModel(vo, new LoginUser()); loginUser.setKdProfile((short) 0); loginUser.setStatusEnabled(true); @@ -391,145 +373,153 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser loginUser.setNamaExternal(vo.getNamaUser()); loginUser.setReportDisplay(vo.getNamaUser()); } - if(CommonUtil.isNotNullOrEmpty(vo.getKelompokUser())){ - loginUser.setKelompokUser(kelompokUserConverter.transferVOToModel(vo.getKelompokUser(), new KelompokUser())); + if (CommonUtil.isNotNullOrEmpty(vo.getKelompokUser())) { + loginUser + .setKelompokUser(kelompokUserConverter.transferVOToModel(vo.getKelompokUser(), new KelompokUser())); } - if(CommonUtil.isNotNullOrEmpty(vo.getKataSandi())){ + if (CommonUtil.isNotNullOrEmpty(vo.getKataSandi())) { try { loginUser.setKataSandi(new PasswordUtil().encryptPassword(vo.getKataSandi())); } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) { e.printStackTrace(); } } - if(CommonUtil.isNotNullOrEmpty(vo.getPegawai())){ + if (CommonUtil.isNotNullOrEmpty(vo.getPegawai())) { loginUser.setPegawai(pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai())); } - if(CommonUtil.isNotNullOrEmpty(vo.getMapLoginUserToRuanganSet())){ + if (CommonUtil.isNotNullOrEmpty(vo.getMapLoginUserToRuanganSet())) { Set loginUserToRuanganSet = new HashSet<>(); - - for(MapLoginUserToRuanganVO loginUserToRuanganVO : vo.getMapLoginUserToRuanganSet()){ - + + for (MapLoginUserToRuanganVO loginUserToRuanganVO : vo.getMapLoginUserToRuanganSet()) { + MapLoginUserToRuangan mapLoginUserToRuangan = new MapLoginUserToRuangan(); - if(CommonUtil.isNotNullOrEmpty(loginUserToRuanganVO)){ - mapLoginUserToRuangan = mapLoginUserToRuanganConverter.transferVOToModel(loginUserToRuanganVO, new MapLoginUserToRuangan()); + if (CommonUtil.isNotNullOrEmpty(loginUserToRuanganVO)) { + mapLoginUserToRuangan = mapLoginUserToRuanganConverter.transferVOToModel(loginUserToRuanganVO, + new MapLoginUserToRuangan()); mapLoginUserToRuangan.setLoginUser(loginUser); } - if(CommonUtil.isNotNullOrEmpty(loginUserToRuanganVO.getRuangan())){ - mapLoginUserToRuangan.setRuangan(ruanganConverter.transferVOToModel(loginUserToRuanganVO.getRuangan(), new Ruangan())); + if (CommonUtil.isNotNullOrEmpty(loginUserToRuanganVO.getRuangan())) { + mapLoginUserToRuangan.setRuangan( + ruanganConverter.transferVOToModel(loginUserToRuanganVO.getRuangan(), new Ruangan())); } - if(CommonUtil.isNotNullOrEmpty(mapLoginUserToRuangan)){ + if (CommonUtil.isNotNullOrEmpty(mapLoginUserToRuangan)) { loginUserToRuanganSet.add(mapLoginUserToRuangan); } } - if(CommonUtil.isNotNullOrEmpty(loginUserToRuanganSet)){ + if (CommonUtil.isNotNullOrEmpty(loginUserToRuanganSet)) { loginUser.setMapLoginUserToRuanganSet(loginUserToRuanganSet); } } - if(CommonUtil.isNotNullOrEmpty(vo.getMapPegawaiToModulAplikasiSet())){ - for(MapPegawaiToModulAplikasiVO pegawaiToModulVO : vo.getMapPegawaiToModulAplikasiSet()){ - + if (CommonUtil.isNotNullOrEmpty(vo.getMapPegawaiToModulAplikasiSet())) { + for (MapPegawaiToModulAplikasiVO pegawaiToModulVO : vo.getMapPegawaiToModulAplikasiSet()) { + MapPegawaiToModulAplikasi mapPegawaiToModulAplikasi = new MapPegawaiToModulAplikasi(); - if(CommonUtil.isNotNullOrEmpty(pegawaiToModulVO)){ - mapPegawaiToModulAplikasi = mapPegawaiToModulAplikasiConverter.transferVOToModel(pegawaiToModulVO, new MapPegawaiToModulAplikasi()); - mapPegawaiToModulAplikasi.setPegawai(pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai())); + if (CommonUtil.isNotNullOrEmpty(pegawaiToModulVO)) { + 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())); + if (CommonUtil.isNotNullOrEmpty(pegawaiToModulVO.getModulAplikasi())) { + mapPegawaiToModulAplikasi.setModulAplikasi(modulAplikasiConverter + .transferVOToModel(pegawaiToModulVO.getModulAplikasi(), new ModulAplikasi())); } - if(CommonUtil.isNotNullOrEmpty(mapPegawaiToModulAplikasi)){ + if (CommonUtil.isNotNullOrEmpty(mapPegawaiToModulAplikasi)) { mapPegawaiToModulAplikasiDao.save(mapPegawaiToModulAplikasi); } } - + } - if(CommonUtil.isNotNullOrEmpty(loginUser)){ + if (CommonUtil.isNotNullOrEmpty(loginUser)) { LoginUser loginUserResult = loginUserDao.save(loginUser); result.put("id", loginUserResult.getId()); } return result; } - + @Override - public Map getListRuangan(Integer loginUserId){ + public Map getListRuangan(Integer loginUserId) { Map result = new HashMap<>(); List> listRuangan = loginUserDao.getListRuangan(loginUserId); - if(CommonUtil.isNotNullOrEmpty(listRuangan)){ + if (CommonUtil.isNotNullOrEmpty(listRuangan)) { result.put("listRuangan", listRuangan); } return result; } - + @Override - public Map getListModulAplikasi(Integer pegawaiId){ + public Map getListModulAplikasi(Integer pegawaiId) { Map result = new HashMap<>(); List> listModulAplikasi = loginUserDao.getListModulAplikasi(pegawaiId); - if(CommonUtil.isNotNullOrEmpty(listModulAplikasi)){ + if (CommonUtil.isNotNullOrEmpty(listModulAplikasi)) { result.put("listModulAplikasi", listModulAplikasi); } return result; } - + @Override - public List> getListObjectModulAplikasi(Integer modulAplikasiId){ + public List> getListObjectModulAplikasi(Integer modulAplikasiId) { List> result = new ArrayList<>(); -// for(Map objectModulHead : loginUserDao.getObjectModulHeadByModul(modulAplikasiId)){ -// Map parent = new HashMap<>(); -// -// if(CommonUtil.isNotNullOrEmpty(objectModulHead)){ -// parent.put("name", objectModulHead.get("objekModulAplikasi")); -// parent.put("noUrut", objectModulHead.get("objekModulNoUrut")); -// -// List> listObjectModul = loginUserDao.getModulByModulHead((Integer)objectModulHead.get("id")); -// if(CommonUtil.isNullOrEmpty(listObjectModul)){ -// parent.put("link", objectModulHead.get("alamatUrlForm")); -// } -// -// List> listChildren = new ArrayList<>(); -// for(Map objectModul: listObjectModul){ -// Map 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); -// } -// } + // for(Map objectModulHead : + // loginUserDao.getObjectModulHeadByModul(modulAplikasiId)){ + // Map parent = new HashMap<>(); + // + // if(CommonUtil.isNotNullOrEmpty(objectModulHead)){ + // parent.put("name", objectModulHead.get("objekModulAplikasi")); + // parent.put("noUrut", objectModulHead.get("objekModulNoUrut")); + // + // List> listObjectModul = + // loginUserDao.getModulByModulHead((Integer)objectModulHead.get("id")); + // if(CommonUtil.isNullOrEmpty(listObjectModul)){ + // parent.put("link", objectModulHead.get("alamatUrlForm")); + // } + // + // List> listChildren = new ArrayList<>(); + // for(Map objectModul: listObjectModul){ + // Map 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 - public Map saveUpdateLoginUser(LoginUserVO vo){ + public Map saveUpdateLoginUser(LoginUserVO vo) { Map 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 = setLoginUser(vo); - if(CommonUtil.isNotNullOrEmpty(loginUser)) { + if (CommonUtil.isNotNullOrEmpty(loginUser)) { LoginUser loginUserResult = loginUserDao.save(loginUser); result.put("namaUser", loginUserResult.getNamaUser()); result.put("statusError", ""); } } else { List users = loginUserDao.findByNamaUser(vo.getNamaUser()); - - if(CommonUtil.isNotNullOrEmpty(users)) { + + if (CommonUtil.isNotNullOrEmpty(users)) { result.put("statusError", "Nama user sudah ada, silahkan input nama user lainya"); } else { loginUser = setLoginUser(vo); - if(CommonUtil.isNotNullOrEmpty(loginUser)) { + if (CommonUtil.isNotNullOrEmpty(loginUser)) { LoginUser loginUserResult = loginUserDao.save(loginUser); result.put("namaUser", loginUserResult.getNamaUser()); result.put("statusError", ""); @@ -544,34 +534,40 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser public LoginUser setLoginUser(LoginUserVO vo) { LoginUser loginUser; - if(CommonUtil.isNotNullOrEmpty(vo.getId())) { + if (CommonUtil.isNotNullOrEmpty(vo.getId())) { loginUser = loginUserDao.findOne(vo.getId()); } else { loginUser = loginUserConverter.transferVOToModel(vo, new LoginUser()); } - if(CommonUtil.isNotNullOrEmpty(vo)){ + if (CommonUtil.isNotNullOrEmpty(vo)) { loginUser.setKdProfile((short) 0); loginUser.setStatusEnabled(true); loginUser.setKodeExternal(""); } - if(CommonUtil.isNotNullOrEmpty(vo.getNamaUser())) { + if (CommonUtil.isNotNullOrEmpty(vo.getNamaUser())) { loginUser.setNamaUser(vo.getNamaUser()); loginUser.setNamaExternal(vo.getNamaUser()); loginUser.setReportDisplay(vo.getNamaUser()); } - if(CommonUtil.isNotNullOrEmpty(vo.getKelompokUser())){ - loginUser.setKelompokUser(kelompokUserConverter.transferVOToModel(vo.getKelompokUser(), new KelompokUser())); + if (CommonUtil.isNotNullOrEmpty(vo.getKelompokUser())) { + loginUser + .setKelompokUser(kelompokUserConverter.transferVOToModel(vo.getKelompokUser(), new KelompokUser())); } - if(CommonUtil.isNotNullOrEmpty(vo.getKataSandi())){ + if (CommonUtil.isNotNullOrEmpty(vo.getKataSandi())) { try { loginUser.setKataSandi(new PasswordUtil().encryptPassword(vo.getKataSandi())); } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) { e.printStackTrace(); } } - if(CommonUtil.isNotNullOrEmpty(vo.getPegawai())){ + if (CommonUtil.isNotNullOrEmpty(vo.getPegawai())) { loginUser.setPegawai(pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai())); } return loginUser; } + + @Override + public boolean accessGranted(LoginUser loginUser, List listIdPegawai) { + return listIdPegawai.contains(loginUser.getPegawai().getId()); + } } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java index 30a4865f..1df788c6 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java @@ -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 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 dtoList) { + { + List listIdPegawai = mapPegawaiJabatanToUnitKerjaDao.findPegawaiIdByUnitKerjaIdAndJabatanId(48, + 1075); + boolean accessGranted = loginUserService.accessGranted(loginUserService.getLoginUser(), listIdPegawai); + if (!accessGranted) + throw new ServiceVOException("Tidak memiliki akses diskon total"); + } List listNoRec = dtoList.stream().map(TagihanPendaftaranDto::getNoRec).collect(Collectors.toList()); List listPelayanan = pelayananPasienDao.findAll(listNoRec); listPelayanan.forEach(p -> { diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java index 90ea112e..467549cf 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java @@ -226,12 +226,12 @@ public class PelayananController extends LocaleController { 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 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); }