diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SubUnitKerjaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SubUnitKerjaDao.java index 0c3b8e21..8406b459 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SubUnitKerjaDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SubUnitKerjaDao.java @@ -51,6 +51,16 @@ public interface SubUnitKerjaDao extends PagingAndSortingRepository getSubunitKerjaByUnitKerja(@Param("listUnitKerjaId") List listIdUnitKerja); + /** + * @param listIdUnitKerja Kelompok unit kerja tertentu + * @return Daftar unit kerja dan subunit kerja dari kelompok unit kerja tertentu + */ + @Query("select new Map(skr.id as subunitKerjaId, skr.name as subunitKerja, " + + "ukr.id as unitKerjaId, ukr.name as unitKerja) " + "from SubUnitKerjaPegawai skr " + + "inner join skr.unitKerja ukr " + "where skr.statusEnabled is true " + "and ukr.id in (:listUnitKerjaId) " + + "order by ukr.name, skr.name") + List> findSubunitKerjaByUnitKerja(@Param("listUnitKerjaId") List listIdUnitKerja); + @Query("select new Map(model.id as id, model.name as name) " + "from SubUnitKerjaPegawai model " + "where model.id=:id and model.statusEnabled is true") Map getSubunitKerjaById(@Param("id") Integer id); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/UnitKerjaPegawaiService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/UnitKerjaPegawaiService.java index d4458968..fdfdcccf 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/UnitKerjaPegawaiService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/UnitKerjaPegawaiService.java @@ -3,29 +3,28 @@ package com.jasamedika.medifirst2000.service; import java.util.List; import java.util.Map; -import com.jasamedika.medifirst2000.entities.SubUnitKerjaPegawai; import com.jasamedika.medifirst2000.entities.UnitKerjaPegawai; import com.jasamedika.medifirst2000.vo.SubUnitKerjaPegawaiVO; import com.jasamedika.medifirst2000.vo.UnitKerjaPegawaiVO; public interface UnitKerjaPegawaiService { - - Map saveUnitkerja(UnitKerjaPegawaiVO vo); - + + Map saveUnitkerja(UnitKerjaPegawaiVO vo); + List getAllUnitKerja(); - + List getUnitKerjaByName(String nama); - - Map saveSubUnitkerja(SubUnitKerjaPegawaiVO vo); - - List> getAllSubUnitKerja(); - - List> getAllSubUnitKerjaByUnitKerja(Integer id); - - List> getAllSubunitKerjaByUnitKerja(Integer idUnitKerjaPegawai); - - List> getSubUnitKerjaByName(String nama); - - + + Map saveSubUnitkerja(SubUnitKerjaPegawaiVO vo); + + List> getAllSubUnitKerja(); + + List> getAllSubUnitKerjaByUnitKerja(Integer id); + + List> getAllSubunitKerjaByUnitKerja(Integer idUnitKerjaPegawai); + + List> getSubUnitKerjaByName(String nama); + + List> findAllKelompokKerja(); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/UnitKerjaPegawaiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/UnitKerjaPegawaiServiceImpl.java index 4eae176d..9251e334 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/UnitKerjaPegawaiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/UnitKerjaPegawaiServiceImpl.java @@ -1,6 +1,7 @@ package com.jasamedika.medifirst2000.service.impl; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -9,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import com.jasamedika.medifirst2000.constants.Master; import com.jasamedika.medifirst2000.converter.BaseConverterImpl; import com.jasamedika.medifirst2000.dao.SubUnitKerjaDao; import com.jasamedika.medifirst2000.dao.UnitKerjaDao; @@ -146,4 +148,23 @@ public class UnitKerjaPegawaiServiceImpl implements UnitKerjaPegawaiService { return result; } + @Override + public List> findAllKelompokKerja() { + List> result = new ArrayList<>(); + + List> data = subUnitKerjaDao + .findSubunitKerjaByUnitKerja(Arrays.asList(Master.UnitKerja.KSM)); + for (Map map : data) { + if (map.get("subunitKerja").toString().contains("KK")) { + Map mapResult = new HashMap<>(); + mapResult.put("id", map.get("subunitKerjaId")); + mapResult.put("name", + map.get("subunitKerja").toString() + " (" + map.get("unitKerja").toString() + ")"); + result.add(mapResult); + } + } + + return result; + } + } diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java index 9c119962..59698669 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java @@ -6049,4 +6049,23 @@ public class SdmController extends LocaleController { } } + @RequestMapping(value = "/get-daftar-kelompok-kerja", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity>> getDaftarKelompokKerja(HttpServletRequest request) { + try { + List> result = unitKerjaPegawaiService.findAllKelompokKerja(); + if (null != result) + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); + } catch (ServiceVOException e) { + LOGGER.error("Got exception {} when get daftar kelompok kerja staf medik", e.getMessage()); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, e.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); + } catch (JpaSystemException jse) { + LOGGER.error("Got exception {} when get daftar kelompok kerja staf medik", jse.getMessage()); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + }