diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java index 6bf11d5a..c9af4388 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java @@ -263,16 +263,16 @@ public interface PelayananPasienDao extends JpaRepository> findPelayananPasienByPetugasAndPelayananPasien(@Param("pegawaiId") Integer idPegawai, @Param("norecs") List norecs); - @Query("select new Map(pp.noRec as noRec," + "ru.id as idRuangan,ru.namaRuangan as namaRuangan," - + "pp.tglPelayanan as tglPelayanan,to_char(pp.tglPelayanan,'dd/MM/yyyy') as tglPelayananStr," - + "pr.id as idProduk,pr.namaProduk as namaProduk," + "kls.id as idKelas,kls.namaKelas as namaKelas," - + "pg.id as idPegawai,pg.namaLengkap as namaPegawai," - + "coalesce(pp.jumlah,0) as jumlah,coalesce(pp.hargaJual,0) as hargaJual,coalesce(pp.hargaDiscount,0) as hargaDiskon,coalesce(pp.jasa,0) as hargaJasa," - + "((coalesce(pp.hargaJual,0)-coalesce(pp.hargaDiscount,0))*coalesce(pp.jumlah,0)+coalesce(pp.jasa,0)) as totalHargaJual,coalesce(pp.isPaket, false) as isPaket) " - + "from PelayananPasienPetugas ppp " + "inner join ppp.pelayananPasien pp " + @Query("select new Map(pp.noRec as noRec," + "ru.id as idRuangan," + "ru.namaRuangan as namaRuangan," + + "pp.tglPelayanan as tglPelayanan," + "to_char(pp.tglPelayanan,'dd/MM/yyyy') as tglPelayananStr," + + "pr.id as idProduk," + "pr.namaProduk as namaProduk," + "kls.id as idKelas," + + "kls.namaKelas as namaKelas," + "coalesce(pp.jumlah,0) as jumlah," + + "coalesce(pp.hargaJual,0) as hargaJual," + "coalesce(pp.hargaDiscount,0) as hargaDiskon," + + "coalesce(pp.jasa,0) as hargaJasa," + + "((coalesce(pp.hargaJual,0)-coalesce(pp.hargaDiscount,0))*coalesce(pp.jumlah,0)+coalesce(pp.jasa,0)) as totalHargaJual," + + "coalesce(pp.isPaket, false) as isPaket) " + "from PelayananPasien pp " + "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd " + "inner join apd.ruangan ru " - + "inner join pp.produk pr " + "inner join pp.kelas kls " + "inner join ppp.kdpegawai pg " - + "where pd.noRegistrasi = :noRegistrasi") + + "inner join pp.produk pr " + "inner join pp.kelas kls " + "where pd.noRegistrasi = :noRegistrasi") List> findPelayananPasienByTagihanPendaftaran(@Param("noRegistrasi") String noRegistrasi); List findByPasienDaftarPasienDaftarNoRecIn(List idDaftarList); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienPetugasDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienPetugasDao.java index 3e9491b2..29b17e99 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienPetugasDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienPetugasDao.java @@ -48,4 +48,6 @@ public interface PelayananPasienPetugasDao extends PagingAndSortingRepository findByPelayananPasien(@Param("noRec") String noRec); + + List findAllByPelayananPasienNoRecIn(List listNoRecPelayanan); } 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 998a3266..fb3c2aa0 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 @@ -2498,18 +2498,25 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel List result = new ArrayList<>(); TagihanPendaftaranDto.TagihanPendaftaranDtoBuilder dtoBuilder = TagihanPendaftaranDto.builder(); List> tagihan = pelayananPasienDao.findPelayananPasienByTagihanPendaftaran(noRegistrasi); + List noRec = tagihan.stream().map(t -> t.get("noRec").toString()).collect(Collectors.toList()); + List listPetugas = pelayananPasienPetugasDao.findAllByPelayananPasienNoRecIn(noRec); tagihan.forEach(t -> { dtoBuilder.noRec(t.get("noRec").toString()).idRuangan(Integer.parseInt(t.get("idRuangan").toString())) .namaRuangan(t.get("namaRuangan").toString()).tglPelayanan((Date) t.get("tglPelayanan")) .tglPelayananStr(t.get("tglPelayananStr").toString()) .idProduk(Integer.parseInt(t.get("idProduk").toString())).namaProduk(t.get("namaProduk").toString()) .idKelas(Integer.parseInt(t.get("idKelas").toString())).namaKelas(t.get("namaKelas").toString()) - .idPegawai(Integer.parseInt(t.get("idPegawai").toString())) - .namaPegawai(t.get("namaPegawai").toString()).jumlah(Double.parseDouble(t.get("jumlah").toString())) + .jumlah(Double.parseDouble(t.get("jumlah").toString())) .hargaJual(Double.parseDouble(t.get("hargaJual").toString())) .hargaDiskon(Double.parseDouble(t.get("hargaDiskon").toString())) .hargaJasa(Double.parseDouble(t.get("hargaJasa").toString())) .isPaket(Boolean.parseBoolean(t.get("isPaket").toString())); + Optional dpjp = listPetugas.stream() + .filter(p -> p.getPelayananPasienId().equals(t.get("noRec").toString()) + && DOKTER_PEMERIKSA.equals(p.getObjectJenisPetugasPeId())) + .findFirst(); + dpjp.ifPresent(pelayananPasienPetugas -> dtoBuilder.idPegawai(pelayananPasienPetugas.getObjectPegawaiId()) + .namaPegawai(pelayananPasienPetugas.getKdpegawai().getNamaLengkap())); result.add(dtoBuilder.build()); }); return result; diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/TagihanPendaftaranDto.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/TagihanPendaftaranDto.java index 01612e14..1994c39a 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/TagihanPendaftaranDto.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/TagihanPendaftaranDto.java @@ -26,8 +26,10 @@ public class TagihanPendaftaranDto { private String namaProduk; private Integer idKelas; private String namaKelas; - private Integer idPegawai; - private String namaPegawai; + @Builder.Default + private Integer idPegawai = null; + @Builder.Default + private String namaPegawai = "-"; private Double jumlah; private Double hargaJual; private Double hargaDiskon; diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananPasienPetugas.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananPasienPetugas.java index 07a3bb98..118cea6a 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananPasienPetugas.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananPasienPetugas.java @@ -8,6 +8,9 @@ import org.joda.time.DateTime; import javax.persistence.*; import javax.validation.constraints.NotNull; +import java.io.Serializable; + +import static javax.persistence.FetchType.LAZY; /** * class PelayananPasienPetugas @@ -18,22 +21,20 @@ import javax.validation.constraints.NotNull; @Setter @Entity @Table(name = "PelayananPasienPetugas_T") -public class PelayananPasienPetugas extends BaseTransaction { - private static final long serialVersionUID = -2586717488353074662L; - +public class PelayananPasienPetugas extends BaseTransaction implements Serializable { @Caption(value = "Deskripsi Tugas Fungsi") private String deskripsitugasfungsi; @Caption(value = "Is Petugas Pe P Jawab") private Byte ispetugaspepjawab; - @ManyToOne + @ManyToOne(fetch = LAZY) @JoinColumn(name = "PelayananPasien") @NotNull(message = "Object Asal Produk Harus Diisi") @Caption(value = "Object Asal Produk") private PelayananPasien pelayananPasien; - @ManyToOne + @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectAsalProdukFk") @NotNull(message = "Object Asal Produk Harus Diisi") @Caption(value = "Object Asal Produk") @@ -45,7 +46,7 @@ public class PelayananPasienPetugas extends BaseTransaction { @Column(name = "PelayananPasien", insertable = false, updatable = false) private String pelayananPasienId; - @ManyToOne + @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectJenisPetugasPeFk") @NotNull(message = "Object Jenis Petugas Pe Harus Diisi") @Caption(value = "Object Jenis Petugas Pe") @@ -54,7 +55,7 @@ public class PelayananPasienPetugas extends BaseTransaction { @Column(name = "ObjectJenisPetugasPeFk", insertable = false, updatable = false) private Integer ObjectJenisPetugasPeId; - @ManyToOne + @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectPegawaiFk") @NotNull(message = "Object Pegawai Harus Diisi") @Caption(value = "Object Pegawai") @@ -63,7 +64,7 @@ public class PelayananPasienPetugas extends BaseTransaction { @Column(name = "ObjectPegawaiFk", insertable = false, updatable = false) private Integer ObjectPegawaiId; - @ManyToOne + @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectProdukFk") @NotNull(message = "Object Produk Harus Diisi") @Caption(value = "Object Produk") @@ -72,7 +73,7 @@ public class PelayananPasienPetugas extends BaseTransaction { @Column(name = "ObjectProdukFk", insertable = false, updatable = false) private Integer ObjectProdukId; - @ManyToOne + @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectRuanganFk") @NotNull(message = "Object Ruangan Harus Diisi") @Caption(value = "Object Ruangan") @@ -81,7 +82,7 @@ public class PelayananPasienPetugas extends BaseTransaction { @Column(name = "ObjectRuanganFk", insertable = false, updatable = false) private Integer ObjectRuanganId; - @ManyToOne + @ManyToOne(fetch = LAZY) @JoinColumn(name = "NoMasukFk") @NotNull(message = "No Masuk Harus Diisi") @Caption(value = "No Masuk")