Update IndekKinerjaService
Penghapusan service logbook poin dokter untuk simulasi
This commit is contained in:
parent
6539af0c2a
commit
72d5fc2041
@ -71,8 +71,6 @@ public interface IndekKinerjaService {
|
|||||||
List<Map<String, Object>> getAllTindakanByDokter(String periode, Integer idPegawai);
|
List<Map<String, Object>> getAllTindakanByDokter(String periode, Integer idPegawai);
|
||||||
|
|
||||||
List<Map<String, Object>> getAllTindakanByDokterReview(String periode, Integer idPegawai);
|
List<Map<String, Object>> getAllTindakanByDokterReview(String periode, Integer idPegawai);
|
||||||
|
|
||||||
List<Map<String, Object>> getAllPelayananByDokterReview(String periode, Integer idPegawai);
|
|
||||||
|
|
||||||
List<Map<String, Object>> getAllTindakanByDokterReviewForReport(String periode, Integer idPegawai);
|
List<Map<String, Object>> getAllTindakanByDokterReviewForReport(String periode, Integer idPegawai);
|
||||||
|
|
||||||
|
|||||||
@ -390,7 +390,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
|||||||
int idPegawai = pegawai.getId();
|
int idPegawai = pegawai.getId();
|
||||||
Long totalPerTanggal;
|
Long totalPerTanggal;
|
||||||
if (CommonUtil.isNullOrEmpty(listDetailException)) {
|
if (CommonUtil.isNullOrEmpty(listDetailException)) {
|
||||||
result = indekKinerjaDao.findTindakanByIdUserAndPeriod(idPegawai, start, end, splitIdProdukAdministrasi());
|
result = indekKinerjaDao.findTindakanByIdUserAndPeriod(idPegawai, start, end,
|
||||||
|
splitIdProdukAdministrasi());
|
||||||
totalPerTanggal = indekKinerjaDao.findTotalTindakanPerTanggal(idPegawai, date,
|
totalPerTanggal = indekKinerjaDao.findTotalTindakanPerTanggal(idPegawai, date,
|
||||||
splitIdProdukAdministrasi());
|
splitIdProdukAdministrasi());
|
||||||
} else {
|
} else {
|
||||||
@ -3320,665 +3321,6 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<Map<String, Object>> getAllPelayananByDokterReview(String periode, Integer idPegawai) {
|
|
||||||
if (pegawaiDao.getPegawaiByKategoryPegawai(Arrays.asList(Master.KategoryPegawai.DOKTER_LUAR))
|
|
||||||
.contains(idPegawai)) {
|
|
||||||
return new ArrayList<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
List<Map<String, Object>> result = new ArrayList<>();
|
|
||||||
List<Map<String, Object>> rawResult = new ArrayList<>();
|
|
||||||
List<Map<String, Object>> countResult = new ArrayList<>();
|
|
||||||
|
|
||||||
List<Integer> listProdukId = new ArrayList<>();
|
|
||||||
List<Integer> listKelasId = new ArrayList<>();
|
|
||||||
List<Integer> listPelaksanaId = new ArrayList<>();
|
|
||||||
List<Integer> listDetailJenisProduk = new ArrayList<>();
|
|
||||||
List<Integer> listDetailJenisProdukException = new ArrayList<>();
|
|
||||||
List<String> listTanggalPelayanan = new ArrayList<>();
|
|
||||||
|
|
||||||
Double harga = 0.0;
|
|
||||||
Double point = 0.0;
|
|
||||||
Double pointQty = 0.0;
|
|
||||||
Double formatPointQty = 0.0;
|
|
||||||
Double formatRpKontribusi = 0.0;
|
|
||||||
Double percentage = 0.0;
|
|
||||||
|
|
||||||
DecimalFormat df = new DecimalFormat("#.##");
|
|
||||||
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
||||||
|
|
||||||
LocalDateTime PSBBDate = LocalDateTime.of(2020, 9, 14, 0, 0, 0);
|
|
||||||
LocalDateTime PSBBEnd = LocalDateTime.parse(GetSettingDataFixed("psbbperiod"), dtf);
|
|
||||||
|
|
||||||
List<Integer> drAnastesiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_ANESTESI);
|
|
||||||
List<Integer> drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM);
|
|
||||||
List<Integer> laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog();
|
|
||||||
|
|
||||||
if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) {
|
|
||||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_ANATOMI));
|
|
||||||
} else if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_KLINIK).contains(idPegawai)) {
|
|
||||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_KLINIK));
|
|
||||||
} else if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_RADIOLOGI).contains(idPegawai)) {
|
|
||||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_RADIOLOGI));
|
|
||||||
} else {
|
|
||||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.MEDIS_UTAMA));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (laboranRadiologList.contains(idPegawai)) {
|
|
||||||
listDetailJenisProdukException = new ArrayList<>(
|
|
||||||
Arrays.asList(Master.DetailJenisProduk.ADMINISTRASI_PATOLOGI_KLINIK_EXCEPTION));
|
|
||||||
listDetailJenisProdukException.removeAll(listDetailJenisProduk);
|
|
||||||
}
|
|
||||||
|
|
||||||
List<Map<String, Object>> listData = revIndekKinerjaDao.getAllTindakanDokter(Master.Kelas.KELAS_SATU, idPegawai,
|
|
||||||
Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode);
|
|
||||||
|
|
||||||
// LOGIC_RULES_REMUN
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(listData)) {
|
|
||||||
for (Map<String, Object> map : listData) {
|
|
||||||
if (listDetailJenisProduk.contains(Integer.parseInt(map.get("detailId").toString()))) {
|
|
||||||
if (Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_ANATOMI)
|
|
||||||
.contains(Integer.parseInt(map.get("detailId").toString()))
|
|
||||||
|| Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_KLINIK)
|
|
||||||
.contains(Integer.parseInt(map.get("detailId").toString()))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (Master.KelompokPasien.BPJS
|
|
||||||
.equals(Integer.parseInt(map.get("kelompokPasienId").toString()))
|
|
||||||
|| Master.KelompokPasien.KEMENKES
|
|
||||||
.equals(Integer.parseInt(map.get("kelompokPasienId").toString()))
|
|
||||||
|| Master.KelompokPasien.JAMKESDA
|
|
||||||
.equals(Integer.parseInt(map.get("kelompokPasienId").toString()))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (CommonUtil.isNotNullOrEmpty(map.get("jamMasuk"))) {
|
|
||||||
Date tanggalPelayanan = (Date) map.get("tanggalPelayanan");
|
|
||||||
String tglPelayanan = new SimpleDateFormat("yyyy-MM-dd").format(tanggalPelayanan);
|
|
||||||
String waktuPelayanan = new SimpleDateFormat("HH:mm:ss").format(tanggalPelayanan);
|
|
||||||
LocalDate datePelayanan = LocalDate.parse(tglPelayanan);
|
|
||||||
LocalTime timePelayanan = LocalTime.parse(waktuPelayanan);
|
|
||||||
LocalDateTime dateTimePelayanan = LocalDateTime.of(datePelayanan, timePelayanan);
|
|
||||||
|
|
||||||
String jamMasuk = map.get("jamMasuk").toString().substring(0, 2) + ":"
|
|
||||||
+ map.get("jamMasuk").toString().substring(3) + ":00";
|
|
||||||
LocalTime timeMasuk = LocalTime.parse(jamMasuk);
|
|
||||||
LocalDateTime dateMasuk = LocalDateTime.of(datePelayanan, timeMasuk);
|
|
||||||
|
|
||||||
String jamPulang = map.get("jamPulang").toString().substring(0, 2) + ":"
|
|
||||||
+ map.get("jamPulang").toString().substring(3) + ":00";
|
|
||||||
LocalTime timePulang = LocalTime.parse(jamPulang);
|
|
||||||
LocalDateTime datePulang = LocalDateTime.of(datePelayanan, timePulang);
|
|
||||||
|
|
||||||
String jamPulangPSBB = "";
|
|
||||||
LocalTime timePulangPSBB = LocalTime.now();
|
|
||||||
LocalDateTime datePulangPSBB = LocalDateTime.now();
|
|
||||||
if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 1
|
|
||||||
|| getDayOfWeek((Date) map.get("tanggalPelayanan")) == 2
|
|
||||||
|| getDayOfWeek((Date) map.get("tanggalPelayanan")) == 3
|
|
||||||
|| getDayOfWeek((Date) map.get("tanggalPelayanan")) == 4) {
|
|
||||||
jamPulangPSBB = "14:00:00";
|
|
||||||
timePulangPSBB = LocalTime.parse(jamPulangPSBB);
|
|
||||||
datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB);
|
|
||||||
} else if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 5) {
|
|
||||||
jamPulangPSBB = "14:30:00";
|
|
||||||
timePulangPSBB = LocalTime.parse(jamPulangPSBB);
|
|
||||||
datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB);
|
|
||||||
} else {
|
|
||||||
datePulangPSBB = LocalDateTime.of(datePelayanan, timePulang);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (map.get("namaShift").toString().contains("Malam")) {
|
|
||||||
datePulang = datePulang.plusDays(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP)
|
|
||||||
.contains(Integer.parseInt(map.get("departemenId").toString()))
|
|
||||||
&& ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk))
|
|
||||||
&& dateTimePelayanan.isBefore(datePulang))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (map.get("departemenId").equals(Master.Departemen.RAWAT_INAP)
|
|
||||||
&& !Arrays.asList(Master.Ruangan.NONRANAP).contains(map.get("ruanganId"))
|
|
||||||
&& Arrays.stream(Master.KONSUL_VISIT)
|
|
||||||
.anyMatch(map.get("namaProduk").toString().toLowerCase()::contains)
|
|
||||||
&& (dateTimePelayanan.isBefore(dateMasuk) || dateTimePelayanan.isEqual(datePulang)
|
|
||||||
|| dateTimePelayanan.isAfter(datePulang))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP)
|
|
||||||
.contains(Integer.parseInt(map.get("departemenId").toString()))
|
|
||||||
&& (dateTimePelayanan.isBefore(dateMasuk) || dateTimePelayanan.isEqual(datePulang)
|
|
||||||
|| dateTimePelayanan.isAfter(datePulang))
|
|
||||||
&& Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS)
|
|
||||||
.contains(Integer.parseInt(map.get("idKelas").toString()))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (map.get("departemenId").equals(Master.Departemen.RAWAT_JALAN)
|
|
||||||
&& map.get("namaShift").toString().equals("Non Shift")
|
|
||||||
&& CommonUtil.isNotNullOrEmpty(jamPulangPSBB)
|
|
||||||
&& (dateTimePelayanan.isEqual(PSBBDate) || dateTimePelayanan.isAfter(PSBBDate))
|
|
||||||
&& (dateTimePelayanan.isBefore(PSBBEnd) || dateTimePelayanan.isEqual(PSBBEnd))) {
|
|
||||||
if (((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk))
|
|
||||||
&& dateTimePelayanan.isBefore(datePulangPSBB))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
}
|
|
||||||
} else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN)
|
|
||||||
.contains(Integer.parseInt(map.get("departemenId").toString()))
|
|
||||||
&& ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk))
|
|
||||||
&& dateTimePelayanan.isBefore(datePulang))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
}
|
|
||||||
} else if (CommonUtil.isNullOrEmpty(map.get("jamMasuk"))
|
|
||||||
&& Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP)
|
|
||||||
.contains(Integer.parseInt(map.get("departemenId").toString()))
|
|
||||||
&& Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS)
|
|
||||||
.contains(Integer.parseInt(map.get("idKelas").toString()))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
}
|
|
||||||
} else if (!listDetailJenisProduk.contains(Integer.parseInt(map.get("detailId").toString()))
|
|
||||||
&& map.get("departemenId").equals(Master.Departemen.IGD) && drKsmUmumList.contains(idPegawai)
|
|
||||||
&& Arrays.asList(Master.Produk.DOKTER_UMUM_IGD)
|
|
||||||
.contains(Integer.parseInt(map.get("idProduk").toString()))) {
|
|
||||||
if (Master.KelompokPasien.BPJS.equals(Integer.parseInt(map.get("kelompokPasienId").toString()))
|
|
||||||
|| Master.KelompokPasien.KEMENKES
|
|
||||||
.equals(Integer.parseInt(map.get("kelompokPasienId").toString()))
|
|
||||||
|| Master.KelompokPasien.JAMKESDA
|
|
||||||
.equals(Integer.parseInt(map.get("kelompokPasienId").toString()))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (CommonUtil.isNotNullOrEmpty(map.get("jamMasuk"))) {
|
|
||||||
Date tanggalPelayanan = (Date) map.get("tanggalPelayanan");
|
|
||||||
String tglPelayanan = new SimpleDateFormat("yyyy-MM-dd").format(tanggalPelayanan);
|
|
||||||
String waktuPelayanan = new SimpleDateFormat("HH:mm:ss").format(tanggalPelayanan);
|
|
||||||
LocalDate datePelayanan = LocalDate.parse(tglPelayanan);
|
|
||||||
LocalTime timePelayanan = LocalTime.parse(waktuPelayanan);
|
|
||||||
LocalDateTime dateTimePelayanan = LocalDateTime.of(datePelayanan, timePelayanan);
|
|
||||||
|
|
||||||
String jamMasuk = map.get("jamMasuk").toString().substring(0, 2) + ":"
|
|
||||||
+ map.get("jamMasuk").toString().substring(3) + ":00";
|
|
||||||
LocalTime timeMasuk = LocalTime.parse(jamMasuk);
|
|
||||||
LocalDateTime dateMasuk = LocalDateTime.of(datePelayanan, timeMasuk);
|
|
||||||
|
|
||||||
String jamPulang = map.get("jamPulang").toString().substring(0, 2) + ":"
|
|
||||||
+ map.get("jamPulang").toString().substring(3) + ":00";
|
|
||||||
LocalTime timePulang = LocalTime.parse(jamPulang);
|
|
||||||
LocalDateTime datePulang = LocalDateTime.of(datePelayanan, timePulang);
|
|
||||||
|
|
||||||
String jamPulangPSBB = "";
|
|
||||||
LocalTime timePulangPSBB = LocalTime.now();
|
|
||||||
LocalDateTime datePulangPSBB = LocalDateTime.now();
|
|
||||||
if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 1
|
|
||||||
|| getDayOfWeek((Date) map.get("tanggalPelayanan")) == 2
|
|
||||||
|| getDayOfWeek((Date) map.get("tanggalPelayanan")) == 3
|
|
||||||
|| getDayOfWeek((Date) map.get("tanggalPelayanan")) == 4) {
|
|
||||||
jamPulangPSBB = "14:00:00";
|
|
||||||
timePulangPSBB = LocalTime.parse(jamPulangPSBB);
|
|
||||||
datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB);
|
|
||||||
} else if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 5) {
|
|
||||||
jamPulangPSBB = "14:30:00";
|
|
||||||
timePulangPSBB = LocalTime.parse(jamPulangPSBB);
|
|
||||||
datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB);
|
|
||||||
} else {
|
|
||||||
datePulangPSBB = LocalDateTime.of(datePelayanan, timePulang);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (map.get("namaShift").toString().contains("Malam")) {
|
|
||||||
datePulang = datePulang.plusDays(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP)
|
|
||||||
.contains(Integer.parseInt(map.get("departemenId").toString()))
|
|
||||||
&& ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk))
|
|
||||||
&& dateTimePelayanan.isBefore(datePulang))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (map.get("departemenId").equals(Master.Departemen.RAWAT_INAP)
|
|
||||||
&& !Arrays.asList(Master.Ruangan.NONRANAP).contains(map.get("ruanganId"))
|
|
||||||
&& Arrays.stream(Master.KONSUL_VISIT)
|
|
||||||
.anyMatch(map.get("namaProduk").toString().toLowerCase()::contains)
|
|
||||||
&& (dateTimePelayanan.isBefore(dateMasuk) || dateTimePelayanan.isEqual(datePulang)
|
|
||||||
|| dateTimePelayanan.isAfter(datePulang))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP)
|
|
||||||
.contains(Integer.parseInt(map.get("departemenId").toString()))
|
|
||||||
&& (dateTimePelayanan.isBefore(dateMasuk) || dateTimePelayanan.isEqual(datePulang)
|
|
||||||
|| dateTimePelayanan.isAfter(datePulang))
|
|
||||||
&& Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS)
|
|
||||||
.contains(Integer.parseInt(map.get("idKelas").toString()))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (map.get("departemenId").equals(Master.Departemen.RAWAT_JALAN)
|
|
||||||
&& map.get("namaShift").toString().equals("Non Shift")
|
|
||||||
&& CommonUtil.isNotNullOrEmpty(jamPulangPSBB)
|
|
||||||
&& (dateTimePelayanan.isEqual(PSBBDate) || dateTimePelayanan.isAfter(PSBBDate))
|
|
||||||
&& (dateTimePelayanan.isBefore(PSBBEnd) || dateTimePelayanan.isEqual(PSBBEnd))) {
|
|
||||||
if (((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk))
|
|
||||||
&& dateTimePelayanan.isBefore(datePulangPSBB))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
}
|
|
||||||
} else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN)
|
|
||||||
.contains(Integer.parseInt(map.get("departemenId").toString()))
|
|
||||||
&& ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk))
|
|
||||||
&& dateTimePelayanan.isBefore(datePulang))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
}
|
|
||||||
} else if (CommonUtil.isNullOrEmpty(map.get("jamMasuk"))
|
|
||||||
&& Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP)
|
|
||||||
.contains(Integer.parseInt(map.get("departemenId").toString()))
|
|
||||||
&& Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS)
|
|
||||||
.contains(Integer.parseInt(map.get("idKelas").toString()))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
}
|
|
||||||
} else if (CommonUtil.isNotNullOrEmpty(listDetailJenisProdukException)
|
|
||||||
&& listDetailJenisProdukException.contains(Integer.parseInt(map.get("detailId").toString()))) {
|
|
||||||
if (Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_ANATOMI)
|
|
||||||
.contains(Integer.parseInt(map.get("detailId").toString()))
|
|
||||||
|| Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_KLINIK)
|
|
||||||
.contains(Integer.parseInt(map.get("detailId").toString()))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (Master.KelompokPasien.BPJS
|
|
||||||
.equals(Integer.parseInt(map.get("kelompokPasienId").toString()))
|
|
||||||
|| Master.KelompokPasien.KEMENKES
|
|
||||||
.equals(Integer.parseInt(map.get("kelompokPasienId").toString()))
|
|
||||||
|| Master.KelompokPasien.JAMKESDA
|
|
||||||
.equals(Integer.parseInt(map.get("kelompokPasienId").toString()))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (CommonUtil.isNotNullOrEmpty(map.get("jamMasuk"))) {
|
|
||||||
Date tanggalPelayanan = (Date) map.get("tanggalPelayanan");
|
|
||||||
String tglPelayanan = new SimpleDateFormat("yyyy-MM-dd").format(tanggalPelayanan);
|
|
||||||
String waktuPelayanan = new SimpleDateFormat("HH:mm:ss").format(tanggalPelayanan);
|
|
||||||
LocalDate datePelayanan = LocalDate.parse(tglPelayanan);
|
|
||||||
LocalTime timePelayanan = LocalTime.parse(waktuPelayanan);
|
|
||||||
LocalDateTime dateTimePelayanan = LocalDateTime.of(datePelayanan, timePelayanan);
|
|
||||||
|
|
||||||
String jamMasuk = map.get("jamMasuk").toString().substring(0, 2) + ":"
|
|
||||||
+ map.get("jamMasuk").toString().substring(3) + ":00";
|
|
||||||
LocalTime timeMasuk = LocalTime.parse(jamMasuk);
|
|
||||||
LocalDateTime dateMasuk = LocalDateTime.of(datePelayanan, timeMasuk);
|
|
||||||
|
|
||||||
String jamPulang = map.get("jamPulang").toString().substring(0, 2) + ":"
|
|
||||||
+ map.get("jamPulang").toString().substring(3) + ":00";
|
|
||||||
LocalTime timePulang = LocalTime.parse(jamPulang);
|
|
||||||
LocalDateTime datePulang = LocalDateTime.of(datePelayanan, timePulang);
|
|
||||||
|
|
||||||
String jamPulangPSBB = "";
|
|
||||||
LocalTime timePulangPSBB = LocalTime.now();
|
|
||||||
LocalDateTime datePulangPSBB = LocalDateTime.now();
|
|
||||||
if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 1
|
|
||||||
|| getDayOfWeek((Date) map.get("tanggalPelayanan")) == 2
|
|
||||||
|| getDayOfWeek((Date) map.get("tanggalPelayanan")) == 3
|
|
||||||
|| getDayOfWeek((Date) map.get("tanggalPelayanan")) == 4) {
|
|
||||||
jamPulangPSBB = "14:00:00";
|
|
||||||
timePulangPSBB = LocalTime.parse(jamPulangPSBB);
|
|
||||||
datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB);
|
|
||||||
} else if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 5) {
|
|
||||||
jamPulangPSBB = "14:30:00";
|
|
||||||
timePulangPSBB = LocalTime.parse(jamPulangPSBB);
|
|
||||||
datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB);
|
|
||||||
} else {
|
|
||||||
datePulangPSBB = LocalDateTime.of(datePelayanan, timePulang);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (map.get("namaShift").toString().contains("Malam")) {
|
|
||||||
datePulang = datePulang.plusDays(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP)
|
|
||||||
.contains(Integer.parseInt(map.get("departemenId").toString()))
|
|
||||||
&& ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk))
|
|
||||||
&& dateTimePelayanan.isBefore(datePulang))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (map.get("departemenId").equals(Master.Departemen.RAWAT_INAP)
|
|
||||||
&& !Arrays.asList(Master.Ruangan.NONRANAP).contains(map.get("ruanganId"))
|
|
||||||
&& Arrays.stream(Master.KONSUL_VISIT)
|
|
||||||
.anyMatch(map.get("namaProduk").toString().toLowerCase()::contains)
|
|
||||||
&& (dateTimePelayanan.isBefore(dateMasuk) || dateTimePelayanan.isEqual(datePulang)
|
|
||||||
|| dateTimePelayanan.isAfter(datePulang))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP)
|
|
||||||
.contains(Integer.parseInt(map.get("departemenId").toString()))
|
|
||||||
&& (dateTimePelayanan.isBefore(dateMasuk) || dateTimePelayanan.isEqual(datePulang)
|
|
||||||
|| dateTimePelayanan.isAfter(datePulang))
|
|
||||||
&& Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS)
|
|
||||||
.contains(Integer.parseInt(map.get("idKelas").toString()))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (map.get("departemenId").equals(Master.Departemen.RAWAT_JALAN)
|
|
||||||
&& map.get("namaShift").toString().equals("Non Shift")
|
|
||||||
&& CommonUtil.isNotNullOrEmpty(jamPulangPSBB)
|
|
||||||
&& (dateTimePelayanan.isEqual(PSBBDate) || dateTimePelayanan.isAfter(PSBBDate))
|
|
||||||
&& (dateTimePelayanan.isBefore(PSBBEnd) || dateTimePelayanan.isEqual(PSBBEnd))) {
|
|
||||||
if (((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk))
|
|
||||||
&& dateTimePelayanan.isBefore(datePulangPSBB))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
}
|
|
||||||
} else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN)
|
|
||||||
.contains(Integer.parseInt(map.get("departemenId").toString()))
|
|
||||||
&& ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk))
|
|
||||||
&& dateTimePelayanan.isBefore(datePulang))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
}
|
|
||||||
} else if (CommonUtil.isNullOrEmpty(map.get("jamMasuk"))
|
|
||||||
&& Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP)
|
|
||||||
.contains(Integer.parseInt(map.get("departemenId").toString()))
|
|
||||||
&& Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS)
|
|
||||||
.contains(Integer.parseInt(map.get("idKelas").toString()))) {
|
|
||||||
rawResult.add(map);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(rawResult)) {
|
|
||||||
for (Map<String, Object> map : rawResult) {
|
|
||||||
if (!Arrays.asList(Master.JenisPetugasPelaksana.DOKTER_ANASTESI_OR_ASISTEN_SPESIALIS)
|
|
||||||
.contains(Integer.parseInt(map.get("idJenisPelaksana").toString()))) {
|
|
||||||
map.put("idJenisPelaksana", Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA);
|
|
||||||
}
|
|
||||||
if (!listProdukId.contains(Integer.parseInt(map.get("idProduk").toString()))) {
|
|
||||||
listProdukId.add(Integer.parseInt(map.get("idProduk").toString()));
|
|
||||||
}
|
|
||||||
if (!listKelasId.contains(Integer.parseInt(map.get("idKelas").toString()))) {
|
|
||||||
listKelasId.add(Integer.parseInt(map.get("idKelas").toString()));
|
|
||||||
}
|
|
||||||
if (!listTanggalPelayanan.contains(map.get("tanggal").toString())) {
|
|
||||||
listTanggalPelayanan.add(map.get("tanggal").toString());
|
|
||||||
}
|
|
||||||
if (!listPelaksanaId.contains(Integer.parseInt(map.get("idJenisPelaksana").toString()))) {
|
|
||||||
listPelaksanaId.add(Integer.parseInt(map.get("idJenisPelaksana").toString()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Collections.sort(listKelasId, Collections.reverseOrder());
|
|
||||||
for (Integer idProduk : listProdukId) {
|
|
||||||
for (Integer idKelas : listKelasId) {
|
|
||||||
for (Integer idPelaksana : listPelaksanaId) {
|
|
||||||
for (String tanggal : listTanggalPelayanan) {
|
|
||||||
Map<String, Object> mapResult1 = new HashMap<>();
|
|
||||||
Map<String, Object> mapResult2 = new HashMap<>();
|
|
||||||
double count1 = 0.0;
|
|
||||||
double count2 = 0.0;
|
|
||||||
int dataCount1 = 0;
|
|
||||||
int dataCount2 = 0;
|
|
||||||
for (Map<String, Object> map : rawResult) {
|
|
||||||
if (Integer.parseInt(map.get("idProduk").toString()) == idProduk
|
|
||||||
&& Integer.parseInt(map.get("idKelas").toString()) == idKelas
|
|
||||||
&& Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana
|
|
||||||
&& map.get("tanggal").toString().equals(tanggal)
|
|
||||||
&& (Double.parseDouble(map.get("diskon").toString()) > 0
|
|
||||||
&& (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer
|
|
||||||
.valueOf(map.get("statusDiskon").toString()).equals(0)))) {
|
|
||||||
count1 = count1 + Double.parseDouble(map.get("count").toString());
|
|
||||||
dataCount1 = dataCount1 + 1;
|
|
||||||
if (dataCount1 == 1) {
|
|
||||||
mapResult1.putAll(map);
|
|
||||||
}
|
|
||||||
} else if (Integer.parseInt(map.get("idProduk").toString()) == idProduk
|
|
||||||
&& Integer.parseInt(map.get("idKelas").toString()) == idKelas
|
|
||||||
&& Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana
|
|
||||||
&& map.get("tanggal").toString().equals(tanggal)) {
|
|
||||||
count2 = count2 + Double.parseDouble(map.get("count").toString());
|
|
||||||
dataCount2 = dataCount2 + 1;
|
|
||||||
if (dataCount2 == 1) {
|
|
||||||
mapResult2.putAll(map);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(mapResult1.get("count"))) {
|
|
||||||
mapResult1.put("count", count1);
|
|
||||||
countResult.add(mapResult1);
|
|
||||||
}
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(mapResult2.get("count"))) {
|
|
||||||
mapResult2.put("count", count2);
|
|
||||||
countResult.add(mapResult2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Integer idProduk : listProdukId) {
|
|
||||||
for (Integer idKelas : listKelasId) {
|
|
||||||
for (Integer idPelaksana : listPelaksanaId) {
|
|
||||||
Map<String, Object> mapResult1 = new HashMap<>();
|
|
||||||
Map<String, Object> mapResult2 = new HashMap<>();
|
|
||||||
List<Map<String, Object>> datas1 = new ArrayList<>();
|
|
||||||
List<Map<String, Object>> datas2 = new ArrayList<>();
|
|
||||||
Double totalKonsul1 = 0.0;
|
|
||||||
Double totalKonsul2 = 0.0;
|
|
||||||
Double totalVisit1 = 0.0;
|
|
||||||
Double totalVisit2 = 0.0;
|
|
||||||
Double totalTindakan1 = 0.0;
|
|
||||||
Double totalTindakan2 = 0.0;
|
|
||||||
Double totalProduk1 = 0.0;
|
|
||||||
Double totalProduk2 = 0.0;
|
|
||||||
int counter1 = 0;
|
|
||||||
int counter2 = 0;
|
|
||||||
boolean isDiskonJasamedis1 = false;
|
|
||||||
boolean isDiskonJasamedis2 = false;
|
|
||||||
for (Map<String, Object> map : countResult) {
|
|
||||||
Map<String, Object> countMap = new HashMap<>();
|
|
||||||
if (Integer.parseInt(map.get("idProduk").toString()) == idProduk
|
|
||||||
&& Integer.parseInt(map.get("idKelas").toString()) == idKelas
|
|
||||||
&& Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana
|
|
||||||
&& (Double.parseDouble(map.get("diskon").toString()) > 0
|
|
||||||
&& (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer
|
|
||||||
.valueOf(map.get("statusDiskon").toString()).equals(0)))) {
|
|
||||||
countMap.put("count", map.get("count"));
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(map.get("hargaKelas1"))) {
|
|
||||||
countMap.put("harga", map.get("hargaKelas1"));
|
|
||||||
} else {
|
|
||||||
countMap.put("harga", map.get("harga"));
|
|
||||||
}
|
|
||||||
countMap.put("tanggal", map.get("tanggal"));
|
|
||||||
datas1.add(countMap);
|
|
||||||
if (map.get("namaProduk").toString().toLowerCase().contains("konsul")) {
|
|
||||||
totalKonsul1 = totalKonsul1 + Double.parseDouble(map.get("count").toString());
|
|
||||||
} else if (map.get("namaProduk").toString().toLowerCase().contains("visit")) {
|
|
||||||
totalVisit1 = totalVisit1 + Double.parseDouble(map.get("count").toString());
|
|
||||||
} else {
|
|
||||||
totalTindakan1 = totalTindakan1 + Double.parseDouble(map.get("count").toString());
|
|
||||||
}
|
|
||||||
totalProduk1 = totalProduk1 + Double.parseDouble(map.get("count").toString());
|
|
||||||
counter1 = counter1 + 1;
|
|
||||||
if (counter1 == 1) {
|
|
||||||
mapResult1.putAll(map);
|
|
||||||
}
|
|
||||||
} else if (Integer.parseInt(map.get("idProduk").toString()) == idProduk
|
|
||||||
&& Integer.parseInt(map.get("idKelas").toString()) == idKelas
|
|
||||||
&& Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana) {
|
|
||||||
countMap.put("count", map.get("count"));
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(map.get("hargaKelas1"))) {
|
|
||||||
countMap.put("harga", map.get("hargaKelas1"));
|
|
||||||
} else {
|
|
||||||
countMap.put("harga", map.get("harga"));
|
|
||||||
}
|
|
||||||
countMap.put("tanggal", map.get("tanggal"));
|
|
||||||
datas2.add(countMap);
|
|
||||||
if (map.get("namaProduk").toString().toLowerCase().contains("konsul")) {
|
|
||||||
totalKonsul2 = totalKonsul2 + Double.parseDouble(map.get("count").toString());
|
|
||||||
} else if (map.get("namaProduk").toString().toLowerCase().contains("visit")) {
|
|
||||||
totalVisit2 = totalVisit2 + Double.parseDouble(map.get("count").toString());
|
|
||||||
} else {
|
|
||||||
totalTindakan2 = totalTindakan2 + Double.parseDouble(map.get("count").toString());
|
|
||||||
}
|
|
||||||
totalProduk2 = totalProduk2 + Double.parseDouble(map.get("count").toString());
|
|
||||||
counter2 = counter2 + 1;
|
|
||||||
if (counter2 == 1) {
|
|
||||||
mapResult2.putAll(map);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(mapResult1.get("count"))) {
|
|
||||||
harga = Double.parseDouble(mapResult1.get("harga").toString());
|
|
||||||
|
|
||||||
if (drAnastesiList.contains(idPegawai)) {
|
|
||||||
if (Arrays.asList(Master.Produk.PENUNJANG_BUKAN_ANASTESI)
|
|
||||||
.contains(mapResult1.get("idProduk"))) {
|
|
||||||
percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_PENUNJANG_BUKAN_ANASTESI;
|
|
||||||
} else if ((Integer) mapResult1
|
|
||||||
.get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) {
|
|
||||||
percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_PEMERIKSA;
|
|
||||||
if (Double.parseDouble(mapResult1.get("diskon").toString()) > 0
|
|
||||||
&& (CommonUtil.isNullOrEmpty(mapResult1.get("statusDiskon")) || Integer
|
|
||||||
.valueOf(mapResult1.get("statusDiskon").toString()).equals(0))) {
|
|
||||||
Double totalDiskonJasamedis = pelayananPasienDetailDao
|
|
||||||
.totalDiskonJasamedis(mapResult1.get("noRec").toString());
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis)
|
|
||||||
&& totalDiskonJasamedis > 0.0) {
|
|
||||||
isDiskonJasamedis1 = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_ANASTESI;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if ((Integer) mapResult1
|
|
||||||
.get("idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) {
|
|
||||||
percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_ASISTEN_SPESIALIS;
|
|
||||||
} else {
|
|
||||||
percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_PEMERIKSA;
|
|
||||||
if (Double.parseDouble(mapResult1.get("diskon").toString()) > 0
|
|
||||||
&& (CommonUtil.isNullOrEmpty(mapResult1.get("statusDiskon")) || Integer
|
|
||||||
.valueOf(mapResult1.get("statusDiskon").toString()).equals(0))) {
|
|
||||||
Double totalDiskonJasamedis = pelayananPasienDetailDao
|
|
||||||
.totalDiskonJasamedis(mapResult1.get("noRec").toString());
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis)
|
|
||||||
&& totalDiskonJasamedis > 0.0) {
|
|
||||||
isDiskonJasamedis1 = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
percentage = percentage / 100;
|
|
||||||
point = getPoinLogbookDokter(harga, percentage, Master.LogbookDokter.TARIF_REMUNERASI,
|
|
||||||
isDiskonJasamedis1);
|
|
||||||
pointQty = point * totalProduk1.doubleValue();
|
|
||||||
formatPointQty = Double.parseDouble(df.format(pointQty));
|
|
||||||
|
|
||||||
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA
|
|
||||||
.equals(mapResult1.get("idJenisPelaksana"))) {
|
|
||||||
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
|
|
||||||
Master.KomponenHarga.JASA_DOKTER,
|
|
||||||
Integer.parseInt(mapResult1.get("idProduk").toString()),
|
|
||||||
Integer.parseInt(mapResult1.get("idKelas").toString()));
|
|
||||||
formatRpKontribusi = totalProduk1
|
|
||||||
* (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0);
|
|
||||||
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI
|
|
||||||
.equals(mapResult1.get("idJenisPelaksana"))) {
|
|
||||||
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
|
|
||||||
Master.KomponenHarga.JASA_DOKTER_ANASTESI,
|
|
||||||
Integer.parseInt(mapResult1.get("idProduk").toString()),
|
|
||||||
Integer.parseInt(mapResult1.get("idKelas").toString()));
|
|
||||||
formatRpKontribusi = totalProduk1
|
|
||||||
* (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0);
|
|
||||||
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS
|
|
||||||
.equals(mapResult1.get("idJenisPelaksana"))) {
|
|
||||||
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
|
|
||||||
Master.KomponenHarga.JASA_ASISTEN_SPESIALIS,
|
|
||||||
Integer.parseInt(mapResult1.get("idProduk").toString()),
|
|
||||||
Integer.parseInt(mapResult1.get("idKelas").toString()));
|
|
||||||
formatRpKontribusi = totalProduk1
|
|
||||||
* (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
mapResult1.put("totalKonsul", totalKonsul1.longValue());
|
|
||||||
mapResult1.put("totalVisit", totalVisit1.longValue());
|
|
||||||
mapResult1.put("totalTindakan", totalTindakan1.longValue());
|
|
||||||
mapResult1.put("totalProduk", totalProduk1.longValue());
|
|
||||||
mapResult1.put("datas", datas1);
|
|
||||||
mapResult1.put("poin", point);
|
|
||||||
mapResult1.put("pointQty", formatPointQty);
|
|
||||||
mapResult1.put("kontribusi", formatRpKontribusi);
|
|
||||||
|
|
||||||
result.add(mapResult1);
|
|
||||||
}
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(mapResult2.get("count"))) {
|
|
||||||
harga = Double.parseDouble(mapResult2.get("harga").toString());
|
|
||||||
|
|
||||||
if (drAnastesiList.contains(idPegawai)) {
|
|
||||||
if (Arrays.asList(Master.Produk.PENUNJANG_BUKAN_ANASTESI)
|
|
||||||
.contains(mapResult2.get("idProduk"))) {
|
|
||||||
percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_PENUNJANG_BUKAN_ANASTESI;
|
|
||||||
} else if ((Integer) mapResult2
|
|
||||||
.get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) {
|
|
||||||
percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_PEMERIKSA;
|
|
||||||
if (Double.parseDouble(mapResult2.get("diskon").toString()) > 0
|
|
||||||
&& (CommonUtil.isNullOrEmpty(mapResult2.get("statusDiskon")) || Integer
|
|
||||||
.valueOf(mapResult2.get("statusDiskon").toString()).equals(0))) {
|
|
||||||
Double totalDiskonJasamedis = pelayananPasienDetailDao
|
|
||||||
.totalDiskonJasamedis(mapResult2.get("noRec").toString());
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis)
|
|
||||||
&& totalDiskonJasamedis > 0.0) {
|
|
||||||
isDiskonJasamedis2 = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_ANASTESI;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if ((Integer) mapResult2
|
|
||||||
.get("idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) {
|
|
||||||
percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_ASISTEN_SPESIALIS;
|
|
||||||
} else {
|
|
||||||
percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_PEMERIKSA;
|
|
||||||
if (Double.parseDouble(mapResult2.get("diskon").toString()) > 0
|
|
||||||
&& (CommonUtil.isNullOrEmpty(mapResult2.get("statusDiskon")) || Integer
|
|
||||||
.valueOf(mapResult2.get("statusDiskon").toString()).equals(0))) {
|
|
||||||
Double totalDiskonJasamedis = pelayananPasienDetailDao
|
|
||||||
.totalDiskonJasamedis(mapResult2.get("noRec").toString());
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis)
|
|
||||||
&& totalDiskonJasamedis > 0.0) {
|
|
||||||
isDiskonJasamedis2 = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
percentage = percentage / 100;
|
|
||||||
point = getPoinLogbookDokter(harga, percentage, Master.LogbookDokter.TARIF_REMUNERASI,
|
|
||||||
isDiskonJasamedis2);
|
|
||||||
pointQty = point * totalProduk2.doubleValue();
|
|
||||||
formatPointQty = Double.parseDouble(df.format(pointQty));
|
|
||||||
|
|
||||||
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA
|
|
||||||
.equals(mapResult2.get("idJenisPelaksana"))) {
|
|
||||||
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
|
|
||||||
Master.KomponenHarga.JASA_DOKTER,
|
|
||||||
Integer.parseInt(mapResult2.get("idProduk").toString()),
|
|
||||||
Integer.parseInt(mapResult2.get("idKelas").toString()));
|
|
||||||
formatRpKontribusi = totalProduk2
|
|
||||||
* (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0);
|
|
||||||
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI
|
|
||||||
.equals(mapResult2.get("idJenisPelaksana"))) {
|
|
||||||
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
|
|
||||||
Master.KomponenHarga.JASA_DOKTER_ANASTESI,
|
|
||||||
Integer.parseInt(mapResult2.get("idProduk").toString()),
|
|
||||||
Integer.parseInt(mapResult2.get("idKelas").toString()));
|
|
||||||
formatRpKontribusi = totalProduk2
|
|
||||||
* (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0);
|
|
||||||
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS
|
|
||||||
.equals(mapResult2.get("idJenisPelaksana"))) {
|
|
||||||
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
|
|
||||||
Master.KomponenHarga.JASA_ASISTEN_SPESIALIS,
|
|
||||||
Integer.parseInt(mapResult2.get("idProduk").toString()),
|
|
||||||
Integer.parseInt(mapResult2.get("idKelas").toString()));
|
|
||||||
formatRpKontribusi = totalProduk2
|
|
||||||
* (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
mapResult2.put("totalKonsul", totalKonsul2.longValue());
|
|
||||||
mapResult2.put("totalVisit", totalVisit2.longValue());
|
|
||||||
mapResult2.put("totalTindakan", totalTindakan2.longValue());
|
|
||||||
mapResult2.put("totalProduk", totalProduk2.longValue());
|
|
||||||
mapResult2.put("datas", datas2);
|
|
||||||
mapResult2.put("poin", point);
|
|
||||||
mapResult2.put("pointQty", formatPointQty);
|
|
||||||
mapResult2.put("kontribusi", formatRpKontribusi);
|
|
||||||
|
|
||||||
result.add(mapResult2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, Object>> getAllTindakanByDokterReviewForReport(String periode, Integer idPegawai) {
|
public List<Map<String, Object>> getAllTindakanByDokterReviewForReport(String periode, Integer idPegawai) {
|
||||||
if (pegawaiDao.getPegawaiByKategoryPegawai(Arrays.asList(Master.KategoryPegawai.DOKTER_LUAR))
|
if (pegawaiDao.getPegawaiByKategoryPegawai(Arrays.asList(Master.KategoryPegawai.DOKTER_LUAR))
|
||||||
|
|||||||
@ -4823,21 +4823,6 @@ public class SdmController extends LocaleController<AkunVO> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "/get-all-pelayanan-dokter/{month}/{idPegawai}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
public ResponseEntity<List<Map<String, Object>>> getAllPelayananDokter(@PathVariable("month") String month,
|
|
||||||
@PathVariable("idPegawai") Integer idPegawai, HttpServletRequest request) {
|
|
||||||
try {
|
|
||||||
List<Map<String, Object>> result = indekKinerjaService.getAllPelayananByDokterReview(month, idPegawai);
|
|
||||||
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
|
|
||||||
getMessage(MessageResource.LABEL_SUCCESS, request));
|
|
||||||
|
|
||||||
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping(value = "/get-all-tindakan-dokter/{month}/{idPegawai}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
@RequestMapping(value = "/get-all-tindakan-dokter/{month}/{idPegawai}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
public ResponseEntity<List<Map<String, Object>>> getAllTindakan(@PathVariable("month") String month,
|
public ResponseEntity<List<Map<String, Object>>> getAllTindakan(@PathVariable("month") String month,
|
||||||
@PathVariable("idPegawai") Integer idPegawai, HttpServletRequest request) {
|
@PathVariable("idPegawai") Integer idPegawai, HttpServletRequest request) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user