Update AntrianPasienDiPeriksaService

Pembuatan service hitung sisa antrian berdasarkan pengecekan sisa antrean dari mobile jkn
This commit is contained in:
salmanoe 2023-02-14 10:35:57 +07:00
parent 9589d39b44
commit 90e54b9c66
4 changed files with 26 additions and 1 deletions

View File

@ -735,4 +735,11 @@ public class BridgingDaftarOnlineController {
String noantrean = antrianService.currentAntrian(idRuangan);
return new ResponseEntity<>(noantrean, HttpStatus.OK);
}
@RequestMapping(value = "/bpjs/antrian/sisa/{idRuangan}/{estimasiDilayani}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Integer> getSisaAntrian(@PathVariable Integer idRuangan,
@PathVariable Long estimasiDilayani) {
Integer countantrean = antrianService.countSisaAntrian(idRuangan, estimasiDilayani);
return new ResponseEntity<>(countantrean, HttpStatus.OK);
}
}

View File

@ -201,4 +201,10 @@ public interface AntrianPasienDiPeriksaDao extends PagingAndSortingRepository<An
+ "ORDER BY apd.tgldipanggildokter DESC LIMIT 1", nativeQuery = true)
String currentAntrian(@Param("ruanganId") Integer ruanganId, @Param("start") Date start, @Param("end") Date end,
@Param("tanggal") Date tanggal);
@Query(value = "SELECT COUNT(apd) FROM antrianpasiendiperiksa_t apd " + "WHERE apd.objectruanganfk = :ruanganId "
+ "AND (apd.tglmasuk BETWEEN :start AND :end " + "OR apd.tglkeluar BETWEEN :start AND :end) "
+ "AND tgldipanggildokter IS NULL AND apd.tglregistrasi < :estimasiDilayani", nativeQuery = true)
Integer countSisaAntrian(@Param("ruanganId") Integer ruanganId, @Param("start") Date start, @Param("end") Date end,
@Param("estimasiDilayani") Date estimasiDilayani);
}

View File

@ -34,6 +34,8 @@ public interface AntrianPasienDiPeriksaService
Integer getFormatNumberByMonthYearBilik(Integer idRuangan);
Map<String, Object> getAntreanByRuangan(LocalDate tglMasuk, Integer ruanganId);
String currentAntrian(Integer idRuangan);
Integer countSisaAntrian(Integer idRuangan, Long estimasiDilayani);
}

View File

@ -315,4 +315,14 @@ public class AntrianPasienDiPeriksaServiceImpl extends BaseVoServiceImpl impleme
Date tglAkhir = Date.from(end.atZone(ZoneId.systemDefault()).toInstant());
return antrianPasienDiPeriksaDao.currentAntrian(idRuangan, tglAwal, tglAkhir, tgl);
}
@Override
public Integer countSisaAntrian(Integer idRuangan, Long estimasiDilayani) {
LocalDate dateNow = LocalDate.now();
LocalDateTime start = LocalDateTime.of(dateNow, LocalTime.MIN);
Date tglAwal = Date.from(start.atZone(ZoneId.systemDefault()).toInstant());
LocalDateTime end = LocalDateTime.of(dateNow, LocalTime.MAX);
Date tglAkhir = Date.from(end.atZone(ZoneId.systemDefault()).toInstant());
return antrianPasienDiPeriksaDao.countSisaAntrian(idRuangan, tglAwal, tglAkhir, new Date(estimasiDilayani));
}
}