diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/TargetSkorDokterDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/TargetSkorDokterDao.java index e190654e..a5e7ca42 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/TargetSkorDokterDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/TargetSkorDokterDao.java @@ -1,6 +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.TargetSkorDokter; @@ -12,4 +17,13 @@ import com.jasamedika.medifirst2000.entities.TargetSkorDokter; @Repository("targetSkorDokterDao") public interface TargetSkorDokterDao extends PagingAndSortingRepository { + @Query("select new Map(tsd.noRec as noRec," + "uk.id as unitKerjaId,uk.name as unitKerja," + + "sk.id as subunitKerjaId,sk.name as subunitKerja," + "tsd.totalSkorDasar as totalTargetSkor," + + "tsd.tmt as tmt,to_char(tsd.tmt,'dd-MM-yyyy') as tmtFormatted," + + "tsd.tglHitung as tglHitung,to_char(tsd.tglHitung,'dd-MM-yyyy') as tglHitungFormatted) " + + "from TargetSkorDokter tsd " + "inner join tsd.unitKerjaPegawai uk " + + "inner join tsd.subUnitKerjaPegawai sk " + "where tsd.statusEnabled is true " + + "and to_char(tsd.tmt,'yyyy') = :tahun " + "order by uk.name, sk.name") + List> findAll(@Param("tahun") String tahun); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananNakesService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananNakesService.java index c92071d3..6828d7bf 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananNakesService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananNakesService.java @@ -1,10 +1,5 @@ package com.jasamedika.medifirst2000.service; -import java.util.List; -import java.util.Map; - -import org.springframework.orm.jpa.JpaSystemException; - import com.jasamedika.medifirst2000.entities.PelayananNakes; import com.jasamedika.medifirst2000.vo.PelayananNakesVO; @@ -14,6 +9,4 @@ import com.jasamedika.medifirst2000.vo.PelayananNakesVO; */ public interface PelayananNakesService extends BaseVoService { - List> findDetailLogbook(Long bulan, Integer idPegawai) throws JpaSystemException; - } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananNakesServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananNakesServiceImpl.java index c573abf9..540ae757 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananNakesServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananNakesServiceImpl.java @@ -152,13 +152,4 @@ public class PelayananNakesServiceImpl extends BaseVoServiceImpl implements Pela return null; } - @Override - public List> findDetailLogbook(Long bulan, Integer idPegawai) throws JpaSystemException { - DateFormat mf = new SimpleDateFormat("yyyy-MM"); - - List> result = pelayananNakesDao.findDetailLogbook(mf.format(new Date(bulan)), idPegawai); - - return result; - } - } diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java index 4e063d08..f6d6aede 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java @@ -47,6 +47,7 @@ import com.jasamedika.medifirst2000.service.RemunerasiOperasionalService; import com.jasamedika.medifirst2000.service.SkoringTindakanMedisService; import com.jasamedika.medifirst2000.service.SkoringTindakanNakesService; import com.jasamedika.medifirst2000.service.SkoringTindakanPerawatService; +import com.jasamedika.medifirst2000.service.TargetSkorDokterService; import com.jasamedika.medifirst2000.util.CommonUtil; import com.jasamedika.medifirst2000.util.rest.RestUtil; import com.jasamedika.medifirst2000.vo.AnggaranRemunerasiVO; @@ -72,6 +73,7 @@ import com.jasamedika.medifirst2000.vo.SkoringTindakanMedisVO; import com.jasamedika.medifirst2000.vo.SkoringTindakanNakesVO; import com.jasamedika.medifirst2000.vo.SkoringTindakanPerawatVO; import com.jasamedika.medifirst2000.vo.StrukHistoriVO; +import com.jasamedika.medifirst2000.vo.TargetSkorDokterVO; import com.jasamedika.medifirst2000.vo.custom.CpptDokterVo; import com.jasamedika.medifirst2000.vo.custom.TargetLayananJamKerjaVO; import com.jasamedika.medifirst2000.vo.custom.TargetLayananLuarJamKerjaVO; @@ -145,6 +147,9 @@ public class IkiDanRemunerasiController extends LocaleController> getLoadData(HttpServletRequest request) { try { @@ -2062,26 +2067,6 @@ public class IkiDanRemunerasiController extends LocaleController>> getPelayananNakes(HttpServletRequest request, - @RequestParam(value = "bulan", required = true) Long bulan, - @RequestParam(value = "pegawaiId", required = true) Integer idPegawai) { - try { - List> result = pelayananNakesService.findDetailLogbook(bulan, idPegawai); - mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, - getMessage(MessageResource.LABEL_SUCCESS, request)); - return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); - } catch (ServiceVOException sve) { - LOGGER.error("Got exception {} when get pelayanan nonpasien oleh nakes lain", sve.getMessage()); - addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage()); - return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); - } catch (JpaSystemException jse) { - LOGGER.error("Got exception {} when get pelayanan nonpasien oleh nakes lain", jse.getMessage()); - addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); - return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); - } - } - @RequestMapping(value = "/get-skor-dokter", method = RequestMethod.GET) public ResponseEntity> getSkorDokter(HttpServletRequest request, @RequestParam(value = "tahun", required = true) String tahun) throws ParseException { @@ -2147,19 +2132,43 @@ public class IkiDanRemunerasiController extends LocaleController hitungTargetSkorDokter(HttpServletRequest request) throws ParseException { + @RequestMapping(value = "/update-target-skor-dokter", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateTargetSkorDokter(HttpServletRequest request, + @Valid @RequestBody TargetSkorDokterVO vo) { try { - service.autoSaveTargetCapaianLayananJamKerja(); - mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, - getMessage(MessageResource.LABEL_SUCCESS, request)); - return RestUtil.getJsonResponse(true, HttpStatus.CREATED, mapHeaderMessage); + TargetSkorDokterVO result = targetSkorDokterService.update(vo); + if (CommonUtil.isNotNullOrEmpty(result)) { + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(result, HttpStatus.CREATED, mapHeaderMessage); + } else { + return RestUtil.getJsonHttptatus(HttpStatus.NO_CONTENT); + } } catch (ServiceVOException sve) { - LOGGER.error("Got exception {} when hitung target skor dokter", sve.getMessage()); + LOGGER.error("Got exception {} when update target skor dokter", sve.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); } catch (JpaSystemException jse) { - LOGGER.error("Got exception {} when hitung target skor dokter", jse.getMessage()); + LOGGER.error("Got exception {} when update target skor dokter", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + + @RequestMapping(value = "/get-target-skor-kelompok-kerja", method = RequestMethod.GET) + public ResponseEntity>> getTargetSkorKelompokKerja(HttpServletRequest request, + @RequestParam(value = "tahun", required = true) Long tahun) throws ParseException { + try { + List> result = targetSkorDokterService.findAll(tahun); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); + } catch (ServiceVOException sve) { + LOGGER.error("Got exception {} when get target skor kelompok kerja dokter", sve.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); + } catch (JpaSystemException jse) { + LOGGER.error("Got exception {} when get target skor kelompok kerja dokter", jse.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); }