diff --git a/jasamedika-bridging/src/main/resources/hibernate.cfg.xml b/jasamedika-bridging/src/main/resources/hibernate.cfg.xml index dda65cba..3ef2c10c 100644 --- a/jasamedika-bridging/src/main/resources/hibernate.cfg.xml +++ b/jasamedika-bridging/src/main/resources/hibernate.cfg.xml @@ -1,5 +1,5 @@ - + diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDetailLogDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDetailLogDao.java index 254c35e0..fcd2ecd0 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDetailLogDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDetailLogDao.java @@ -7,6 +7,8 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; +import java.util.Date; + /** * @author salmanoe * @version 1.0.0 @@ -15,17 +17,115 @@ import org.springframework.data.repository.query.Param; public interface LogbookKinerjaDetailLogDao extends JpaRepository { @Query("select log from LogbookKinerjaDetailLog log " + "inner join log.catatanKinerja lkd " - + "inner join lkd.logbookKinerja lk " + "inner join lk.indikatorKinerja ikm " - + "inner join lk.pegawai pg " + "inner join log.pegawai ats " - + "where lower(ikm.namaIndikator) like %:querySearch% " + "or lower(lkd.namaKegiatan) like %:querySearch% " - + "or to_char(lkd.tanggalKegiatan, 'yyyy') like %:querySearch% " - + "or to_char(lkd.tanggalKegiatan, 'MM/yyyy') like %:querySearch% " - + "or to_char(lkd.tanggalKegiatan, 'dd/MM/yyyy') like %:querySearch% " - + "or lower(pg.namaLengkap) like %:querySearch% " + "or lower(log.jenisLog) like %:querySearch% " - + "or to_char(log.tanggalDibuat, 'yyyy') like %:querySearch% " - + "or to_char(log.tanggalDibuat, 'MM/yyyy') like %:querySearch% " - + "or to_char(log.tanggalDibuat, 'dd/MM/yyyy') like %:querySearch% " - + "or lower(ats.nipPns) like %:querySearch% " + "or lower(ats.namaLengkap) like %:querySearch%") - Page findBySearchQuery(@Param("querySearch") String querySearch, Pageable pageable); + + "inner join lkd.logbookKinerja lk " + "inner join lk.indikatorKinerja ikm " + "inner join lk.pegawai pg " + + "inner join log.pegawai ats " + "where lower(ikm.namaIndikator) like %:indikator% " + + "order by log.tanggalDibuat asc") + Page findBySearchIndikator(@Param("indikator") String indikator, Pageable pageable); + + @Query("select log from LogbookKinerjaDetailLog log " + "inner join log.catatanKinerja lkd " + + "inner join lkd.logbookKinerja lk " + "inner join lk.indikatorKinerja ikm " + "inner join lk.pegawai pg " + + "inner join log.pegawai ats " + "where lower(lkd.namaKegiatan) like %:kegiatan% " + + "order by log.tanggalDibuat asc") + Page findBySearchKegiatan(@Param("kegiatan") String kegiatan, Pageable pageable); + + @Query("select log from LogbookKinerjaDetailLog log " + "inner join log.catatanKinerja lkd " + + "inner join lkd.logbookKinerja lk " + "inner join lk.indikatorKinerja ikm " + "inner join lk.pegawai pg " + + "inner join log.pegawai ats " + "where lkd.tanggalKegiatan between :startDate and :endDate " + + "order by log.tanggalDibuat asc") + Page findBySearchTanggal(@Param("startDate") Date startDate, + @Param("endDate") Date endDate, Pageable pageable); + + @Query("select log from LogbookKinerjaDetailLog log " + "inner join log.catatanKinerja lkd " + + "inner join lkd.logbookKinerja lk " + "inner join lk.indikatorKinerja ikm " + "inner join lk.pegawai pg " + + "inner join log.pegawai ats " + "where lower(pg.namaLengkap) like %:pegawai% " + + "order by log.tanggalDibuat asc") + Page findBySearchPegawai(@Param("pegawai") String pegawai, Pageable pageable); + + @Query("select log from LogbookKinerjaDetailLog log " + "inner join log.catatanKinerja lkd " + + "inner join lkd.logbookKinerja lk " + "inner join lk.indikatorKinerja ikm " + "inner join lk.pegawai pg " + + "inner join log.pegawai ats " + "where lower(ikm.namaIndikator) like %:indikator% " + + "and lower(lkd.namaKegiatan) like %:kegiatan% " + "order by log.tanggalDibuat asc") + Page findBySearchIndikatorKegiatan(@Param("indikator") String indikator, + @Param("kegiatan") String kegiatan, Pageable pageable); + + @Query("select log from LogbookKinerjaDetailLog log " + "inner join log.catatanKinerja lkd " + + "inner join lkd.logbookKinerja lk " + "inner join lk.indikatorKinerja ikm " + "inner join lk.pegawai pg " + + "inner join log.pegawai ats " + "where lower(ikm.namaIndikator) like %:indikator% " + + "and lkd.tanggalKegiatan between :startDate and :endDate " + "order by log.tanggalDibuat asc") + Page findBySearchIndikatorTanggal(@Param("indikator") String indikator, + @Param("startDate") Date startDate, @Param("endDate") Date endDate, Pageable pageable); + + @Query("select log from LogbookKinerjaDetailLog log " + "inner join log.catatanKinerja lkd " + + "inner join lkd.logbookKinerja lk " + "inner join lk.indikatorKinerja ikm " + "inner join lk.pegawai pg " + + "inner join log.pegawai ats " + "where lower(ikm.namaIndikator) like %:indikator% " + + "and lower(pg.namaLengkap) like %:pegawai% " + "order by log.tanggalDibuat asc") + Page findBySearchIndikatorPegawai(@Param("indikator") String indikator, + @Param("pegawai") String pegawai, Pageable pageable); + + @Query("select log from LogbookKinerjaDetailLog log " + "inner join log.catatanKinerja lkd " + + "inner join lkd.logbookKinerja lk " + "inner join lk.indikatorKinerja ikm " + "inner join lk.pegawai pg " + + "inner join log.pegawai ats " + "where lower(lkd.namaKegiatan) like %:kegiatan% " + + "and lkd.tanggalKegiatan between :startDate and :endDate " + "order by log.tanggalDibuat asc") + Page findBySearchKegiatanTanggal(@Param("kegiatan") String kegiatan, + @Param("startDate") Date startDate, @Param("endDate") Date endDate, Pageable pageable); + + @Query("select log from LogbookKinerjaDetailLog log " + "inner join log.catatanKinerja lkd " + + "inner join lkd.logbookKinerja lk " + "inner join lk.indikatorKinerja ikm " + "inner join lk.pegawai pg " + + "inner join log.pegawai ats " + "where lower(lkd.namaKegiatan) like %:kegiatan% " + + "and lower(pg.namaLengkap) like %:pegawai% " + "order by log.tanggalDibuat asc") + Page findBySearchKegiatanPegawai(@Param("kegiatan") String kegiatan, + @Param("pegawai") String pegawai, Pageable pageable); + + @Query("select log from LogbookKinerjaDetailLog log " + "inner join log.catatanKinerja lkd " + + "inner join lkd.logbookKinerja lk " + "inner join lk.indikatorKinerja ikm " + "inner join lk.pegawai pg " + + "inner join log.pegawai ats " + "where lkd.tanggalKegiatan between :startDate and :endDate " + + "and lower(pg.namaLengkap) like %:pegawai% " + "order by log.tanggalDibuat asc") + Page findBySearchTanggalPegawai(@Param("startDate") Date startDate, + @Param("endDate") Date endDate, @Param("pegawai") String pegawai, Pageable pageable); + + @Query("select log from LogbookKinerjaDetailLog log " + "inner join log.catatanKinerja lkd " + + "inner join lkd.logbookKinerja lk " + "inner join lk.indikatorKinerja ikm " + "inner join lk.pegawai pg " + + "inner join log.pegawai ats " + "where lower(ikm.namaIndikator) like %:indikator% " + + "and lower(lkd.namaKegiatan) like %:kegiatan% " + + "and lkd.tanggalKegiatan between :startDate and :endDate " + "order by log.tanggalDibuat asc") + Page findBySearchIndikatorKegiatanTanggal(@Param("indikator") String indikator, + @Param("kegiatan") String kegiatan, @Param("startDate") Date startDate, @Param("endDate") Date endDate, + Pageable pageable); + + @Query("select log from LogbookKinerjaDetailLog log " + "inner join log.catatanKinerja lkd " + + "inner join lkd.logbookKinerja lk " + "inner join lk.indikatorKinerja ikm " + "inner join lk.pegawai pg " + + "inner join log.pegawai ats " + "where lower(ikm.namaIndikator) like %:indikator% " + + "and lkd.tanggalKegiatan between :startDate and :endDate " + "and lower(pg.namaLengkap) like %:pegawai% " + + "order by log.tanggalDibuat asc") + Page findBySearchIndikatorTanggalPegawai(@Param("indikator") String indikator, + @Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("pegawai") String pegawai, + Pageable pageable); + + @Query("select log from LogbookKinerjaDetailLog log " + "inner join log.catatanKinerja lkd " + + "inner join lkd.logbookKinerja lk " + "inner join lk.indikatorKinerja ikm " + "inner join lk.pegawai pg " + + "inner join log.pegawai ats " + "where lower(ikm.namaIndikator) like %:indikator% " + + "and lower(lkd.namaKegiatan) like %:kegiatan% " + "and lower(pg.namaLengkap) like %:pegawai% " + + "order by log.tanggalDibuat asc") + Page findBySearchIndikatorKegiatanPegawai(@Param("indikator") String indikator, + @Param("kegiatan") String kegiatan, @Param("pegawai") String pegawai, Pageable pageable); + + @Query("select log from LogbookKinerjaDetailLog log " + "inner join log.catatanKinerja lkd " + + "inner join lkd.logbookKinerja lk " + "inner join lk.indikatorKinerja ikm " + "inner join lk.pegawai pg " + + "inner join log.pegawai ats " + "where lower(lkd.namaKegiatan) like %:kegiatan% " + + "and lkd.tanggalKegiatan between :startDate and :endDate " + "and lower(pg.namaLengkap) like %:pegawai% " + + "order by log.tanggalDibuat asc") + Page findBySearchKegiatanTanggalPegawai(@Param("kegiatan") String kegiatan, + @Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("pegawai") String pegawai, + Pageable pageable); + + @Query("select log from LogbookKinerjaDetailLog log " + "inner join log.catatanKinerja lkd " + + "inner join lkd.logbookKinerja lk " + "inner join lk.indikatorKinerja ikm " + "inner join lk.pegawai pg " + + "inner join log.pegawai ats " + "where lower(ikm.namaIndikator) like %:indikator% " + + "and lower(lkd.namaKegiatan) like %:kegiatan% " + + "and lkd.tanggalKegiatan between :startDate and :endDate " + "and lower(pg.namaLengkap) like %:pegawai% " + + "order by log.tanggalDibuat asc") + Page findBySearchIndikatorKegiatanTanggalPegawai(@Param("indikator") String indikator, + @Param("kegiatan") String kegiatan, @Param("startDate") Date startDate, @Param("endDate") Date endDate, + @Param("pegawai") String pegawai, Pageable pageable); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapProdukPaketDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapProdukPaketDao.java index b5a5b914..bece140e 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapProdukPaketDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapProdukPaketDao.java @@ -13,9 +13,11 @@ import java.util.Set; * @since 21 Sep 2023 */ public interface MapProdukPaketDao extends JpaRepository { + @Query("select mpaket.paketId from MapProdukPaket mpaket") Set findPaketId(); @Query("select mpaket.produkEntriId from MapProdukPaket mpaket") List findProdukEntriId(); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProdukPaketDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProdukPaketDao.java new file mode 100644 index 00000000..c1e1b55e --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProdukPaketDao.java @@ -0,0 +1,17 @@ +package com.jasamedika.medifirst2000.dao; + +import com.jasamedika.medifirst2000.entities.ProdukPaket; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.Optional; + +/** + * @author salmanoe + * @version 1.0.0 + * @since 14/11/2024 + */ +public interface ProdukPaketDao extends JpaRepository { + + Optional findById(Integer id); + +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaDetailLogService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaDetailLogService.java index 4c6be046..a2f80cbb 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaDetailLogService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaDetailLogService.java @@ -14,6 +14,7 @@ public interface LogbookKinerjaDetailLogService { void save(LogbookKinerjaDetailLogReqDto dto); - Page list(Pageable pageable); + Page search(String indikator, String kegiatan, Long tglAwalKegiatan, + Long tglAkhirKegiatan, String pegawai, Pageable pageable); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/ProdukPaketService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/ProdukPaketService.java new file mode 100644 index 00000000..cf9243dc --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/ProdukPaketService.java @@ -0,0 +1,14 @@ +package com.jasamedika.medifirst2000.service; + +import com.jasamedika.medifirst2000.dto.ProdukPaketDto; + +/** + * @author salmanoe + * @version 1.0.0 + * @since 14/11/2024 + */ +public interface ProdukPaketService { + + void save(ProdukPaketDto dto); + +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailLogServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailLogServiceImpl.java index 6b6fc14c..df05b468 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailLogServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailLogServiceImpl.java @@ -10,6 +10,7 @@ import com.jasamedika.medifirst2000.entities.LogbookKinerjaDetailLog; import com.jasamedika.medifirst2000.entities.Pegawai; import com.jasamedika.medifirst2000.service.LogbookKinerjaDetailLogService; import com.jasamedika.medifirst2000.service.LoginUserService; +import com.jasamedika.medifirst2000.util.CommonUtil; import com.jasamedika.medifirst2000.vo.LogbookKinerjaDetailVO; import com.jasamedika.medifirst2000.vo.PegawaiVO; import org.springframework.beans.factory.annotation.Autowired; @@ -67,8 +68,64 @@ public class LogbookKinerjaDetailLogServiceImpl implements LogbookKinerjaDetailL } @Override - public Page list(Pageable pageable) { - Page logPage = logbookKinerjaDetailLogDao.findAll(pageable); + public Page search(String indikator, String kegiatan, Long tglAwalKegiatan, + Long tglAkhirKegiatan, String pegawai, Pageable pageable) { + Page logPage; + if (CommonUtil.isNotNullOrEmpty(indikator) && CommonUtil.isNotNullOrEmpty(kegiatan) + && CommonUtil.isNotNullOrEmpty(tglAwalKegiatan) && CommonUtil.isNotNullOrEmpty(tglAkhirKegiatan) + && CommonUtil.isNotNullOrEmpty(pegawai)) { + logPage = logbookKinerjaDetailLogDao.findBySearchIndikatorKegiatanTanggalPegawai(indikator.toLowerCase(), + kegiatan.toLowerCase(), new Date(tglAwalKegiatan), new Date(tglAkhirKegiatan), + pegawai.toLowerCase(), pageable); + } else if (CommonUtil.isNotNullOrEmpty(kegiatan) && CommonUtil.isNotNullOrEmpty(tglAwalKegiatan) + && CommonUtil.isNotNullOrEmpty(tglAkhirKegiatan) && CommonUtil.isNotNullOrEmpty(pegawai)) { + logPage = logbookKinerjaDetailLogDao.findBySearchKegiatanTanggalPegawai(kegiatan.toLowerCase(), + new Date(tglAwalKegiatan), new Date(tglAkhirKegiatan), pegawai.toLowerCase(), pageable); + } else if (CommonUtil.isNotNullOrEmpty(indikator) && CommonUtil.isNotNullOrEmpty(kegiatan) + && CommonUtil.isNotNullOrEmpty(pegawai)) { + logPage = logbookKinerjaDetailLogDao.findBySearchIndikatorKegiatanPegawai(indikator.toLowerCase(), + kegiatan.toLowerCase(), pegawai.toLowerCase(), pageable); + } else if (CommonUtil.isNotNullOrEmpty(indikator) && CommonUtil.isNotNullOrEmpty(tglAwalKegiatan) + && CommonUtil.isNotNullOrEmpty(tglAkhirKegiatan) && CommonUtil.isNotNullOrEmpty(pegawai)) { + logPage = logbookKinerjaDetailLogDao.findBySearchIndikatorTanggalPegawai(indikator.toLowerCase(), + new Date(tglAwalKegiatan), new Date(tglAkhirKegiatan), pegawai.toLowerCase(), pageable); + } else if (CommonUtil.isNotNullOrEmpty(indikator) && CommonUtil.isNotNullOrEmpty(kegiatan) + && CommonUtil.isNotNullOrEmpty(tglAwalKegiatan) && CommonUtil.isNotNullOrEmpty(tglAkhirKegiatan)) { + logPage = logbookKinerjaDetailLogDao.findBySearchIndikatorKegiatanTanggal(indikator.toLowerCase(), + kegiatan.toLowerCase(), new Date(tglAwalKegiatan), new Date(tglAkhirKegiatan), pageable); + } else if (CommonUtil.isNotNullOrEmpty(tglAwalKegiatan) && CommonUtil.isNotNullOrEmpty(tglAkhirKegiatan) + && CommonUtil.isNotNullOrEmpty(pegawai)) { + logPage = logbookKinerjaDetailLogDao.findBySearchTanggalPegawai(new Date(tglAwalKegiatan), + new Date(tglAkhirKegiatan), pegawai.toLowerCase(), pageable); + } else if (CommonUtil.isNotNullOrEmpty(kegiatan) && CommonUtil.isNotNullOrEmpty(pegawai)) { + logPage = logbookKinerjaDetailLogDao.findBySearchKegiatanPegawai(kegiatan.toLowerCase(), + pegawai.toLowerCase(), pageable); + } else if (CommonUtil.isNotNullOrEmpty(kegiatan) && CommonUtil.isNotNullOrEmpty(tglAwalKegiatan) + && CommonUtil.isNotNullOrEmpty(tglAkhirKegiatan)) { + logPage = logbookKinerjaDetailLogDao.findBySearchKegiatanTanggal(kegiatan.toLowerCase(), + new Date(tglAwalKegiatan), new Date(tglAkhirKegiatan), pageable); + } else if (CommonUtil.isNotNullOrEmpty(indikator) && CommonUtil.isNotNullOrEmpty(pegawai)) { + logPage = logbookKinerjaDetailLogDao.findBySearchIndikatorPegawai(indikator.toLowerCase(), + pegawai.toLowerCase(), pageable); + } else if (CommonUtil.isNotNullOrEmpty(indikator) && CommonUtil.isNotNullOrEmpty(tglAwalKegiatan) + && CommonUtil.isNotNullOrEmpty(tglAkhirKegiatan)) { + logPage = logbookKinerjaDetailLogDao.findBySearchIndikatorTanggal(indikator.toLowerCase(), + new Date(tglAwalKegiatan), new Date(tglAkhirKegiatan), pageable); + } else if (CommonUtil.isNotNullOrEmpty(indikator) && CommonUtil.isNotNullOrEmpty(kegiatan)) { + logPage = logbookKinerjaDetailLogDao.findBySearchIndikatorKegiatan(indikator.toLowerCase(), + kegiatan.toLowerCase(), pageable); + } else if (CommonUtil.isNotNullOrEmpty(pegawai)) { + logPage = logbookKinerjaDetailLogDao.findBySearchPegawai(pegawai.toLowerCase(), pageable); + } else if (CommonUtil.isNotNullOrEmpty(tglAwalKegiatan) && CommonUtil.isNotNullOrEmpty(tglAkhirKegiatan)) { + logPage = logbookKinerjaDetailLogDao.findBySearchTanggal(new Date(tglAwalKegiatan), + new Date(tglAkhirKegiatan), pageable); + } else if (CommonUtil.isNotNullOrEmpty(kegiatan)) { + logPage = logbookKinerjaDetailLogDao.findBySearchKegiatan(kegiatan.toLowerCase(), pageable); + } else if (CommonUtil.isNotNullOrEmpty(indikator)) { + logPage = logbookKinerjaDetailLogDao.findBySearchIndikator(indikator.toLowerCase(), pageable); + } else { + logPage = logbookKinerjaDetailLogDao.findAll(pageable); + } List dtoList = new ArrayList<>(); logPage.getContent().forEach(log -> { LogbookKinerjaDetailLogDto.LogbookKinerjaDetailLogDtoBuilder dtoBuilder = LogbookKinerjaDetailLogDto diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PegawaiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PegawaiServiceImpl.java index ac40fd94..c01b72b8 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PegawaiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PegawaiServiceImpl.java @@ -6,8 +6,8 @@ import com.jasamedika.medifirst2000.constants.Master; import com.jasamedika.medifirst2000.converter.PegawaiConverter; import com.jasamedika.medifirst2000.dao.*; import com.jasamedika.medifirst2000.dao.custom.PegawaiDaoCustom; -import com.jasamedika.medifirst2000.dto.compreface.request.FaceSubjectReq; import com.jasamedika.medifirst2000.dto.PegawaiDto; +import com.jasamedika.medifirst2000.dto.compreface.request.FaceSubjectReq; import com.jasamedika.medifirst2000.dto.compreface.response.FaceSubjectRes; import com.jasamedika.medifirst2000.entities.*; import com.jasamedika.medifirst2000.exception.ServiceVOException; @@ -36,7 +36,9 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; -import org.springframework.http.*; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.ResponseEntity; import org.springframework.orm.jpa.JpaSystemException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; @@ -51,7 +53,6 @@ import java.util.*; import static org.springframework.http.HttpMethod.GET; import static org.springframework.http.HttpMethod.POST; -import static org.springframework.http.HttpStatus.CREATED; import static org.springframework.http.HttpStatus.OK; import static org.springframework.http.MediaType.APPLICATION_JSON; @@ -65,9 +66,6 @@ public class PegawaiServiceImpl extends BaseVoServiceImpl implements PegawaiServ private static final Logger log = LoggerFactory.getLogger(PegawaiServiceImpl.class); - @Autowired - private ObjectMapper objectMapper; - @Value("${systemDirectory}") String systemDirectory; @@ -2398,7 +2396,7 @@ public class PegawaiServiceImpl extends BaseVoServiceImpl implements PegawaiServ listLabelDokter.forEach(s -> { try { FaceSubjectReq dto = FaceSubjectReq.builder().subject(s).build(); - JSONObject jsonObject = new JSONObject(objectMapper.writeValueAsString(dto)); + JSONObject jsonObject = new JSONObject(new ObjectMapper().writeValueAsString(dto)); HttpEntity httpEntity = new HttpEntity<>(jsonObject.toString(), headers); ResponseEntity exchange = template.exchange(uri, POST, httpEntity, FaceSubjectReq.class); @@ -2427,7 +2425,7 @@ public class PegawaiServiceImpl extends BaseVoServiceImpl implements PegawaiServ ResponseEntity response = template.exchange(uri, GET, httpEntity, Object.class); if (CommonUtil.isNotNullOrEmpty(response.getBody())) { if (OK.equals(response.getStatusCode())) { - return objectMapper.convertValue(response.getBody(), FaceSubjectRes.class); + return new ObjectMapper().convertValue(response.getBody(), FaceSubjectRes.class); } else { log.error(response.getBody().toString()); return null; 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 f249b7ba..60d172e5 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 @@ -46,6 +46,7 @@ import static com.jasamedika.medifirst2000.constants.Master.Ruangan.*; import static com.jasamedika.medifirst2000.constants.Master.SubUnitKerja.*; import static com.jasamedika.medifirst2000.constants.Master.TipePegawai.PURNA_WAKTU; import static com.jasamedika.medifirst2000.constants.Master.UnitKerja.KSM_OBGYN; +import static com.jasamedika.medifirst2000.entities.constant.TipePaket.PERSALINAN; import static com.jasamedika.medifirst2000.enums.JenisMappingProdukPaket.PERAWAT; import static com.jasamedika.medifirst2000.enums.JenisMappingProdukPaket.TINDAKAN_UTAMA; @@ -151,6 +152,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel @Autowired private MapJabatanProfesiDao mapJabatanProfesiDao; + @Autowired + private ProdukPaketDao produkPaketDao; + @Override public Map savePelayananPasien(PelayananPasienVO vo) { Map result = new HashMap<>(); @@ -3663,6 +3667,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel private void diskonPaket(String kodeVoucher, List dtoList) { VoucherPaket voucher = getVoucher(kodeVoucher, false); + Optional produkPaket = produkPaketDao.findById(voucher.getPaketId()); List norecPelayanan = dtoList.stream().map(TagihanPendaftaranDto::getNoRec) .collect(Collectors.toList()); List byNorecPelayanan = pelayananPasienDao.findAll(norecPelayanan); @@ -3675,11 +3680,14 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel Integer ibuId = null; if (CommonUtil.isNotNullOrEmpty(ibuNoCm)) ibuId = pasienDao.findIdByNoCm(ibuNoCm); - if ((CommonUtil.isNotNullOrEmpty(ibuId) && !voucher.getPasienId().equals(ibuId)) - || (CommonUtil.isNullOrEmpty(ibuId) && !voucher.getPasienId().equals(pasienId))) - throw new ServiceVOException("Kode voucher tidak sesuai dengan pasien yang diperuntukkan"); - p.setVoucherPaket(voucher); - pasienDaftarDao.save(p); + if (CommonUtil.isNotNullOrEmpty(produkPaket) && produkPaket.isPresent() + && PERSALINAN.equals(produkPaket.get().getTipePaket())) { + if ((CommonUtil.isNotNullOrEmpty(ibuId) && !voucher.getPasienId().equals(ibuId)) + || (CommonUtil.isNullOrEmpty(ibuId) && !voucher.getPasienId().equals(pasienId))) + throw new ServiceVOException("Kode voucher tidak sesuai dengan pasien yang diperuntukkan"); + p.setVoucherPaket(voucher); + pasienDaftarDao.save(p); + } }); } { @@ -3945,15 +3953,19 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel if (noRegistrasi.isEmpty()) throw new ServiceVOException("Nomor registrasi harus diisi"); VoucherPaket voucher = getVoucher(kodeVoucher, basicValidation); + Optional produkPaket = produkPaketDao.findById(voucher.getPaketId()); PasienDaftar pendaftaran = pasienDaftarDao.findByNoRegistrasi(noRegistrasi); String ibuNoCm = pendaftaran.getPasien().getReportDisplay(); Integer ibuId = null; if (CommonUtil.isNotNullOrEmpty(ibuNoCm)) ibuId = pasienDao.findIdByNoCm(ibuNoCm); - if ((CommonUtil.isNotNullOrEmpty(ibuId) && !voucher.getPasienId().equals(ibuId)) - || (CommonUtil.isNullOrEmpty(ibuId) && CommonUtil.isNotNullOrEmpty(pendaftaran) - && !pendaftaran.getPasien().getId().equals(voucher.getPasienId()))) - throw new ServiceVOException("Kode voucher tidak sesuai dengan pasien yang diperuntukkan"); + if (CommonUtil.isNotNullOrEmpty(produkPaket) && produkPaket.isPresent() + && PERSALINAN.equals(produkPaket.get().getTipePaket())) { + if ((CommonUtil.isNotNullOrEmpty(ibuId) && !voucher.getPasienId().equals(ibuId)) + || (CommonUtil.isNullOrEmpty(ibuId) && CommonUtil.isNotNullOrEmpty(pendaftaran) + && !pendaftaran.getPasien().getId().equals(voucher.getPasienId()))) + throw new ServiceVOException("Kode voucher tidak sesuai dengan pasien yang diperuntukkan"); + } return voucher; } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ProdukPaketServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ProdukPaketServiceImpl.java new file mode 100644 index 00000000..2392d75b --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ProdukPaketServiceImpl.java @@ -0,0 +1,37 @@ +package com.jasamedika.medifirst2000.service.impl; + +import com.jasamedika.medifirst2000.dao.ProdukDao; +import com.jasamedika.medifirst2000.dao.ProdukPaketDao; +import com.jasamedika.medifirst2000.dto.ProdukPaketDto; +import com.jasamedika.medifirst2000.entities.Produk; +import com.jasamedika.medifirst2000.entities.ProdukPaket; +import com.jasamedika.medifirst2000.service.ProdukPaketService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * @author salmanoe + * @version 1.0.0 + * @since 14/11/2024 + */ +@Service +@Transactional +public class ProdukPaketServiceImpl implements ProdukPaketService { + + @Autowired + private ProdukPaketDao produkPaketDao; + + @Autowired + private ProdukDao produkDao; + + @Override + public void save(ProdukPaketDto dto) { + Produk paket = produkDao.findByIdProduk(dto.getProduk().getId()); + ProdukPaket produkPaket = ProdukPaket.builder().produk(paket).tipePaket(dto.getTipePaket()).build(); + produkPaket.setStatusEnabled(true); + produkPaket.setKdProfile((short) 0); + produkPaketDao.save(produkPaket); + } + +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/ProdukPaketDto.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/ProdukPaketDto.java new file mode 100644 index 00000000..23a5328c --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/ProdukPaketDto.java @@ -0,0 +1,30 @@ +package com.jasamedika.medifirst2000.dto; + +import com.jasamedika.medifirst2000.entities.ProdukDto; +import com.jasamedika.medifirst2000.entities.constant.TipePaket; +import com.jasamedika.medifirst2000.helper.Caption; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author salmanoe + * @version 1.0.0 + * @since 14/11/2024 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ProdukPaketDto { + + private Integer id; + + @Caption(value = "Produk") + private ProdukDto produk; + + @Caption("Tipe paket") + private TipePaket tipePaket; + +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapProdukPaket.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapProdukPaket.java index d6b3f48e..11afbe4e 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapProdukPaket.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapProdukPaket.java @@ -23,6 +23,7 @@ import static javax.persistence.FetchType.LAZY; @Table(name = "mapprodukpaket_m", uniqueConstraints = { @UniqueConstraint(columnNames = { "paketfk", "produkPaketfk" }), }) public class MapProdukPaket extends BaseTransaction { + @ManyToOne(fetch = LAZY) @JoinColumn(name = "paketfk") @NotNull(message = "Paket tidak boleh kosong") @@ -51,4 +52,5 @@ public class MapProdukPaket extends BaseTransaction { @NotNull(message = "Status aktif tidak boleh kosong") @Caption(value = "Status Aktif") private Boolean isAktif; + } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/ProdukPaket.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/ProdukPaket.java new file mode 100644 index 00000000..47b3f10e --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/ProdukPaket.java @@ -0,0 +1,46 @@ +package com.jasamedika.medifirst2000.entities; + +import com.jasamedika.medifirst2000.base.BaseActive; +import com.jasamedika.medifirst2000.entities.constant.TipePaket; +import com.jasamedika.medifirst2000.helper.Caption; +import lombok.*; + +import javax.persistence.*; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +import static javax.persistence.EnumType.STRING; +import static javax.persistence.GenerationType.SEQUENCE; + +/** + * @author salmanoe + * @version 1.0.0 + * @since 13/11/2024 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Entity +@Table(name = "produkpaket_m") +public class ProdukPaket extends BaseActive implements Serializable { + + @Id + @GeneratedValue(strategy = SEQUENCE) + @Column(name = "id") + private Integer id; + + @OneToOne + @MapsId + @JoinColumn(name = "id") + @NotNull(message = "Produk tidak boleh kosong") + @Caption(value = "Produk") + private Produk produk; + + @Column(length = 30) + @Enumerated(STRING) + @Caption("Tipe paket") + private TipePaket tipePaket; + +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/constant/TipePaket.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/constant/TipePaket.java new file mode 100644 index 00000000..3ba20251 --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/constant/TipePaket.java @@ -0,0 +1,42 @@ +package com.jasamedika.medifirst2000.entities.constant; + +import lombok.Getter; + +/** + * @author salmanoe + * @version 1.0.0 + * @since 13/11/2024 + */ +public enum TipePaket { + + PERSALINAN(1, "Persalinan"); + + private final long id; + + @Getter + private final String name; + + TipePaket(long id, String name) { + this.id = id; + this.name = name; + } + + public long id() { + return this.id; + } + + @Override + public String toString() { + return Long.toString(id); + } + + public static TipePaket valueOf(long id) { + for (TipePaket tipePaket : values()) { + if (tipePaket.id == id) { + return tipePaket; + } + } + throw new IllegalArgumentException("No matching constant for [" + id + "]"); + } + +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapProdukPaketVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapProdukPaketVO.java index 733840cd..c1c56efd 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapProdukPaketVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapProdukPaketVO.java @@ -40,4 +40,5 @@ public class MapProdukPaketVO extends BaseTransactionVO { @Caption(value = "Status Aktif") private Boolean isAktif; + } diff --git a/jasamedika-domain/src/main/resources/hibernate.cfg.xml b/jasamedika-domain/src/main/resources/hibernate.cfg.xml index 2da0e4f7..458f3d27 100644 --- a/jasamedika-domain/src/main/resources/hibernate.cfg.xml +++ b/jasamedika-domain/src/main/resources/hibernate.cfg.xml @@ -1,6 +1,6 @@ + "https://hibernate.org/dtd/hibernate-configuration-3.0.dtd"> diff --git a/jasamedika-pelayanan/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java b/jasamedika-pelayanan/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java index fbf152db..f26fe82c 100644 --- a/jasamedika-pelayanan/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java +++ b/jasamedika-pelayanan/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java @@ -59,11 +59,11 @@ public class PelayananController extends LocaleController { getMessage(MessageResource.LABEL_SUCCESS, request)); return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); } catch (ServiceVOException sve) { - LOGGER.error("Got exception {} when calculate indikator pelayanan", sve.getMessage()); + LOGGER.error("Got ServiceVOException {} when calculate indikator pelayanan", 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 calculate indikator pelayanan", jse.getMessage()); + LOGGER.error("Got JpaSystemException {} when calculate indikator pelayanan", jse.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); } @@ -78,11 +78,11 @@ public class PelayananController extends LocaleController { return RestUtil.getJsonResponse(result, HttpStatus.OK); } catch (ServiceVOException e) { - LOGGER.error("Got exception {} when validate nama produk", e.getMessage()); + LOGGER.error("Got ServiceVOException {} when validate nama produk", e.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); } catch (JpaSystemException jse) { - LOGGER.error("Got exception {} when validate nama produk", jse.getMessage()); + LOGGER.error("Got JpaSystemException {} when validate nama produk", jse.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); } @@ -95,11 +95,11 @@ public class PelayananController extends LocaleController { Map result = produkService.getMappingPaketToProduk(idMapping); return RestUtil.getJsonResponse(result, HttpStatus.OK); } catch (ServiceVOException e) { - LOGGER.error("Got exception {} when get mapping paket to produk", e.getMessage()); + LOGGER.error("Got ServiceVOException {} when get mapping paket to produk", e.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); } catch (JpaSystemException jse) { - LOGGER.error("Got exception {} when get mapping paket to produk", jse.getMessage()); + LOGGER.error("Got JpaSystemException {} when get mapping paket to produk", jse.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); } @@ -113,11 +113,11 @@ public class PelayananController extends LocaleController { getMessage(MessageResource.LABEL_SUCCESS, request)); return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); } catch (ServiceVOException sve) { - LOGGER.error("Got exception {} when get all data paket to produk", sve.getMessage()); + LOGGER.error("Got ServiceVOException {} when get all data paket to produk", 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 all data paket to produk", jse.getMessage()); + LOGGER.error("Got JpaSystemException {} when get all data paket to produk", jse.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); } @@ -131,11 +131,11 @@ public class PelayananController extends LocaleController { getMessage(MessageResource.LABEL_SUCCESS, request)); return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); } catch (ServiceVOException sve) { - LOGGER.error("Got exception {} when get all master satuan standar distinct on", sve.getMessage()); + LOGGER.error("Got ServiceVOException {} when get all master satuan standar distinct on", 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 all master satuan standar distinct on", jse.getMessage()); + LOGGER.error("Got JpaSystemException {} when get all master satuan standar distinct on", jse.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); } @@ -152,11 +152,11 @@ public class PelayananController extends LocaleController { getMessage(MessageResource.LABEL_SUCCESS, request)); return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); } catch (ServiceVOException e) { - LOGGER.error("Got exception {} when klaim diskon karyawan", e.getMessage()); + LOGGER.error("Got ServiceVOException {} when klaim diskon karyawan", e.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); } catch (JpaSystemException jse) { - LOGGER.error("Got exception {} when klaim diskon karyawan", jse.getMessage()); + LOGGER.error("Got JpaSystemException {} when klaim diskon karyawan", jse.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); } @@ -172,11 +172,11 @@ public class PelayananController extends LocaleController { getMessage(MessageResource.LABEL_SUCCESS, request)); return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); } catch (ServiceVOException e) { - LOGGER.error("Got exception {} when klaim diskon karyawan", e.getMessage()); + LOGGER.error("Got ServiceVOException {} when reset klaim diskon karyawan", e.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); } catch (JpaSystemException jse) { - LOGGER.error("Got exception {} when klaim diskon karyawan", jse.getMessage()); + LOGGER.error("Got JpaSystemException {} when reset klaim diskon karyawan", jse.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); } @@ -193,11 +193,11 @@ public class PelayananController extends LocaleController { getMessage(MessageResource.LABEL_SUCCESS, request)); return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); } catch (ServiceVOException e) { - LOGGER.error("Got exception {} when check existing harga produk kelas", e.getMessage()); + LOGGER.error("Got ServiceVOException {} when check existing harga produk kelas", e.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); } catch (JpaSystemException jse) { - LOGGER.error("Got exception {} when check existing harga produk kelas", jse.getMessage()); + LOGGER.error("Got JpaSystemException {} when check existing harga produk kelas", jse.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); } @@ -212,11 +212,11 @@ public class PelayananController extends LocaleController { getMessage(MessageResource.LABEL_SUCCESS, request)); return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); } catch (ServiceVOException e) { - LOGGER.error("Got exception {} when get daftar tagihan {}", e.getMessage(), noRegistrasi); + LOGGER.error("Got ServiceVOException {} when get daftar tagihan {}", e.getMessage(), noRegistrasi); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); } catch (JpaSystemException jse) { - LOGGER.error("Got exception {} when get daftar tagihan {}", jse.getMessage(), noRegistrasi); + LOGGER.error("Got JpaSystemException {} when get daftar tagihan {}", jse.getMessage(), noRegistrasi); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); } @@ -232,12 +232,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()); + LOGGER.error("Got ServiceVOException {} when simpan diskon tagihan", e.getMessage()); Map error = new HashMap<>(); 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()); + LOGGER.error("Got JpaSystemException {} when simpan diskon tagihan", jse.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); } @@ -251,12 +251,12 @@ public class PelayananController extends LocaleController { getMessage(MessageResource.LABEL_SUCCESS, request)); return RestUtil.getJsonResponse(dto, HttpStatus.OK, mapHeaderMessage); } catch (ServiceVOException e) { - LOGGER.error("Got exception {} when batal diskon paket", e.getMessage()); + LOGGER.error("Got ServiceVOException {} when batal diskon paket", e.getMessage()); Map error = new HashMap<>(); error.put("bad_request", e.getMessage()); return RestUtil.getJsonResponse(null, HttpStatus.BAD_REQUEST, error); } catch (JpaSystemException jse) { - LOGGER.error("Got exception {} when batal diskon paket", jse.getMessage()); + LOGGER.error("Got JpaSystemException {} when batal diskon paket", jse.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); } @@ -271,12 +271,12 @@ public class PelayananController extends LocaleController { getMessage(MessageResource.LABEL_SUCCESS, request)); return RestUtil.getJsonResponse(validVoucher, HttpStatus.OK, mapHeaderMessage); } catch (ServiceVOException e) { - LOGGER.error("Got exception {} when check voucher validity", e.getMessage()); + LOGGER.error("Got ServiceVOException {} when check voucher validity", e.getMessage()); Map error = new HashMap<>(); error.put("bad_request", e.getMessage()); return RestUtil.getJsonResponse(false, HttpStatus.BAD_REQUEST, error); } catch (JpaSystemException jse) { - LOGGER.error("Got exception {} when check voucher validity", jse.getMessage()); + LOGGER.error("Got JpaSystemException {} when check voucher validity", jse.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); } @@ -291,12 +291,12 @@ public class PelayananController extends LocaleController { getMessage(MessageResource.LABEL_SUCCESS, request)); return RestUtil.getJsonResponse(vos, HttpStatus.OK, mapHeaderMessage); } catch (ServiceVOException e) { - LOGGER.error("Got exception {} when simpan mapping list produk paket", e.getMessage()); + LOGGER.error("Got ServiceVOException {} when simpan mapping list produk paket", e.getMessage()); Map error = new HashMap<>(); error.put("bad_request", e.getMessage()); return RestUtil.getJsonResponse(null, HttpStatus.BAD_REQUEST, error); } catch (JpaSystemException jse) { - LOGGER.error("Got exception {} when simpan mapping list produk paket", jse.getMessage()); + LOGGER.error("Got JpaSystemException {} when simpan mapping list produk paket", jse.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); } @@ -311,14 +311,15 @@ public class PelayananController extends LocaleController { getMessage(MessageResource.LABEL_SUCCESS, request)); return RestUtil.getJsonResponse(vos, HttpStatus.OK, mapHeaderMessage); } catch (ServiceVOException e) { - LOGGER.error("Got exception {} when simpan mapping entri produk paket", e.getMessage()); + LOGGER.error("Got ServiceVOException {} when simpan mapping entri produk paket", e.getMessage()); Map error = new HashMap<>(); error.put("bad_request", e.getMessage()); return RestUtil.getJsonResponse(null, HttpStatus.BAD_REQUEST, error); } catch (JpaSystemException jse) { - LOGGER.error("Got exception {} when simpan mapping entri produk paket", jse.getMessage()); + LOGGER.error("Got JpaSystemException {} when simpan mapping entri produk paket", jse.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); } } + } diff --git a/jasamedika-pelayanan/src/main/java/com/jasamedika/medifirst2000/controller/ProdukController.java b/jasamedika-pelayanan/src/main/java/com/jasamedika/medifirst2000/controller/ProdukController.java new file mode 100644 index 00000000..c7d6d9f6 --- /dev/null +++ b/jasamedika-pelayanan/src/main/java/com/jasamedika/medifirst2000/controller/ProdukController.java @@ -0,0 +1,63 @@ +package com.jasamedika.medifirst2000.controller; + +import com.jasamedika.medifirst2000.constants.Constants; +import com.jasamedika.medifirst2000.constants.MessageResource; +import com.jasamedika.medifirst2000.controller.base.LocaleController; +import com.jasamedika.medifirst2000.dto.ProdukPaketDto; +import com.jasamedika.medifirst2000.exception.ServiceVOException; +import com.jasamedika.medifirst2000.service.ProdukPaketService; +import com.jasamedika.medifirst2000.vo.ProdukVO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.orm.jpa.JpaSystemException; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.Map; + +import static com.jasamedika.medifirst2000.core.web.WebConstants.HttpHeaderInfo.LABEL_SUCCESS; +import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonHttptatus; +import static com.jasamedika.medifirst2000.util.rest.RestUtil.getJsonResponse; +import static org.springframework.http.HttpStatus.CREATED; +import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; +import static org.springframework.web.bind.annotation.RequestMethod.POST; + +/** + * @author salmanoe + * @version 1.0.0 + * @since 14/11/2024 + */ +@RestController +@RequestMapping("/produk") +public class ProdukController extends LocaleController { + + private static final Logger LOGGER = LoggerFactory.getLogger(ProdukController.class); + + @Autowired + private ProdukPaketService produkPaketService; + + @RequestMapping(value = "/paket", method = POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE) + public ResponseEntity simpanDiskonTagihan(HttpServletRequest request, @RequestBody ProdukPaketDto dto) { + try { + produkPaketService.save(dto); + mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); + return getJsonResponse(dto, CREATED, mapHeaderMessage); + } catch (ServiceVOException e) { + LOGGER.error("Got ServiceVOException {} when simpan produk paket", e.getMessage()); + Map error = new HashMap<>(); + error.put("bad_request", e.getMessage()); + return getJsonResponse(null, HttpStatus.BAD_REQUEST, error); + } catch (JpaSystemException jse) { + LOGGER.error("Got JpaSystemException {} when simpan produk paket", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + +} 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 d21cd852..5830ef9e 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 @@ -2858,10 +2858,22 @@ public class IkiDanRemunerasiController extends LocaleController> logsKinerja(HttpServletRequest request, - @RequestParam(value = "page") int page, @RequestParam(value = "size") int size) { + @RequestParam(value = "indikator", required = false) String indikator, + @RequestParam(value = "kegiatan", required = false) String kegiatan, + @RequestParam(value = "tgl_awal_kegiatan", required = false) String tglAwalKegiatan, + @RequestParam(value = "tgl_akhir_kegiatan", required = false) String tglAkhirKegiatan, + @RequestParam(value = "pegawai", required = false) String pegawai, @RequestParam(value = "page") int page, + @RequestParam(value = "size") int size) { try { Pageable pageable = new PageRequest(page, size); - Page dtoPage = logbookLogService.list(pageable); + Long startDate = null; + Long endDate = null; + if (CommonUtil.isNotNullOrEmpty(tglAwalKegiatan) && CommonUtil.isNotNullOrEmpty(tglAkhirKegiatan)) { + startDate = Long.parseLong(tglAwalKegiatan); + endDate = Long.parseLong(tglAkhirKegiatan); + } + Page dtoPage = logbookLogService.search(indikator, kegiatan, startDate, + endDate, pegawai, pageable); mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); return RestUtil.getJsonResponse(dtoPage, HttpStatus.OK, mapHeaderMessage); diff --git a/jasamedika-web/src/main/resources/hibernate.cfg.xml b/jasamedika-web/src/main/resources/hibernate.cfg.xml index c2b2c716..f44bad09 100644 --- a/jasamedika-web/src/main/resources/hibernate.cfg.xml +++ b/jasamedika-web/src/main/resources/hibernate.cfg.xml @@ -1,5 +1,5 @@ - +