From 2a55a324a1b04974f557257f6c738bc23aa50b69 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Mon, 3 Jan 2022 10:36:14 +0700 Subject: [PATCH] Add ProfesiService Pembuatan service daftar profesi berdasarkan id pegawai login dan jenis profesi --- .../medifirst2000/dao/ProfesiDao.java | 29 ++++++++++++++++++- .../medifirst2000/service/ProfesiService.java | 5 +++- .../service/impl/ProfesiServiceImpl.java | 19 ++++++++++++ 3 files changed, 51 insertions(+), 2 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProfesiDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProfesiDao.java index fef6558e..ba11fe0b 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProfesiDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProfesiDao.java @@ -1,9 +1,11 @@ package com.jasamedika.medifirst2000.dao; import java.util.List; +import java.util.Map; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import com.jasamedika.medifirst2000.entities.Profesi; @@ -14,8 +16,33 @@ import com.jasamedika.medifirst2000.entities.Profesi; */ @Repository("profesiDao") public interface ProfesiDao extends PagingAndSortingRepository { - + @Query("select prf from Profesi prf where prf.statusEnabled is true") public List findAllActive(); + String strAllActive = "select new Map(prf.id as id,prf.namaProfesi as namaProfesi) from Profesi prf where prf.statusEnabled is true"; + + String whrJenis = " and prf.jenisProfesi = :jenisId"; + + String srtNama = " order by prf.namaProfesi"; + + @Query(strAllActive + srtNama) + public List> findByStatus(); + + @Query(strAllActive + whrJenis + srtNama) + public List> findByStatus(@Param("jenisId") Short idJenis); + + String strAllJabatanActive = "select new Map(prf.id as id,prf.namaProfesi as namaProfesi) " + + "from MapPegawaiJabatanToUnitKerja mj, MapJabatanProfesi mjp " + "inner join mjp.profesi prf " + + "where mj.jabatanId = mjp.jabatanId " + "and mj.statusEnabled is true " + "and prf.statusEnabled is true"; + + String whrPegawai = " and mj.pegawaiId = :pegawaiId"; + + @Query(strAllJabatanActive + whrPegawai + srtNama) + public List> findByStatus(@Param("pegawaiId") Integer idPegawai); + + @Query(strAllJabatanActive + whrPegawai + whrJenis + srtNama) + public List> findByStatus(@Param("pegawaiId") Integer idPegawai, + @Param("jenisId") Short idJenis); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/ProfesiService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/ProfesiService.java index ea1439e6..1673f7b3 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/ProfesiService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/ProfesiService.java @@ -1,6 +1,7 @@ package com.jasamedika.medifirst2000.service; import java.util.List; +import java.util.Map; import org.springframework.orm.jpa.JpaSystemException; @@ -12,7 +13,9 @@ import com.jasamedika.medifirst2000.vo.ProfesiVO; * @since Oct 8, 2021 */ public interface ProfesiService extends BaseVoService { - + public List findAllActive() throws JpaSystemException; + + public List> findByStatus(Integer idPegawai, Short idJenis) throws JpaSystemException; } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ProfesiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ProfesiServiceImpl.java index 3d1d0966..2bd8b613 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ProfesiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ProfesiServiceImpl.java @@ -113,4 +113,23 @@ public class ProfesiServiceImpl extends BaseVoServiceImpl implements ProfesiServ return result; } + @Override + public List> findByStatus(Integer idPegawai, Short idJenis) throws JpaSystemException { + List> result = new ArrayList<>(); + + if (CommonUtil.isNotNullOrEmpty(idJenis)) { + result = profesiDao.findByStatus(idPegawai, idJenis); + if (CommonUtil.isNullOrEmpty(result)) { + result = profesiDao.findByStatus(idJenis); + } + } else { + result = profesiDao.findByStatus(idPegawai); + if (CommonUtil.isNullOrEmpty(result)) { + result = profesiDao.findByStatus(); + } + } + + return result; + } + }