Update service pelayanan pasien
Pembuatan split quantity dan simpan relasi pelayanan
This commit is contained in:
parent
2135d3b921
commit
be5b921da4
@ -4,8 +4,8 @@ import com.jasamedika.medifirst2000.entities.PelayananPasien;
|
||||
import com.jasamedika.medifirst2000.entities.PelayananPasienDetail;
|
||||
import com.jasamedika.medifirst2000.entities.StrukPelayanan;
|
||||
import com.jasamedika.medifirst2000.entities.StrukResep;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@ -19,7 +19,7 @@ import java.util.Map;
|
||||
* @author Generator
|
||||
*/
|
||||
@Repository("PelayananPasienDao")
|
||||
public interface PelayananPasienDao extends PagingAndSortingRepository<PelayananPasien, String> {
|
||||
public interface PelayananPasienDao extends JpaRepository<PelayananPasien, String> {
|
||||
|
||||
@Query("select p from PelayananPasien p where p.noRec=:noRec ")
|
||||
PelayananPasien findByNoRec(@Param("noRec") String noRec);
|
||||
|
||||
@ -2280,7 +2280,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
{
|
||||
pelayananChecked.forEach(p -> {
|
||||
Optional<TagihanPendaftaranDto> dtoChecked = dtoList.stream()
|
||||
.filter(d -> d.getNoRec().equals(p.getNoRec())).findFirst();
|
||||
.filter(d -> d.getNoRec().equals(p.getNoRec()))
|
||||
.filter(d -> d.getJumlah().equals(p.getJumlah())).findFirst();
|
||||
dtoChecked.ifPresent(d -> {
|
||||
p.setHargaDiscount(d.getHargaDiskon());
|
||||
p.setJasa(d.getHargaJasa());
|
||||
@ -2290,6 +2291,30 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
});
|
||||
pelayananPasienDao.save(pelayananChecked);
|
||||
}
|
||||
{
|
||||
dtoList.forEach(dto -> {
|
||||
Optional<PelayananPasien> pelayananSplitQty = pelayananChecked.stream()
|
||||
.filter(p -> p.getNoRec().equals(dto.getNoRec()))
|
||||
.filter(p -> !p.getJumlah().equals(dto.getJumlah())).findFirst();
|
||||
pelayananSplitQty.ifPresent(p -> {
|
||||
List<PelayananPasien> copyPelayanan = copyPelayananSplitQty(p);
|
||||
Optional<PelayananPasien> origin = copyPelayanan.stream()
|
||||
.filter(cp -> cp.getNoRec() != null)
|
||||
.findFirst();
|
||||
if (origin.isPresent()) {
|
||||
origin.get().setJumlah(dto.getJumlah());
|
||||
origin.get().setHargaDiscount(dto.getHargaDiskon());
|
||||
origin.get().setJasa(dto.getHargaJasa());
|
||||
origin.get().setIsPaket(dto.getIsPaket());
|
||||
origin.get().setVoucherPaket(voucher);
|
||||
}
|
||||
Optional<PelayananPasien> duplicate = copyPelayanan.stream()
|
||||
.filter(cp -> cp.getNoRec() == null)
|
||||
.findFirst();
|
||||
duplicate.ifPresent(d -> d.setJumlah(pelayananSplitQty.get().getJumlah() - dto.getJumlah()));
|
||||
});
|
||||
});
|
||||
}
|
||||
} else {
|
||||
List<String> listNoRec = dtoList.stream().map(TagihanPendaftaranDto::getNoRec).collect(Collectors.toList());
|
||||
List<PelayananPasien> listPelayanan = pelayananPasienDao.findAll(listNoRec);
|
||||
@ -2376,4 +2401,94 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
}
|
||||
}
|
||||
|
||||
private List<PelayananPasien> copyPelayananSplitQty(PelayananPasien originPelayanan) {
|
||||
List<PelayananPasien> result = new ArrayList<>();
|
||||
PelayananPasien duplicatePelayanan;
|
||||
duplicatePelayanan = originPelayanan;
|
||||
{
|
||||
AntrianPasienDiPeriksa antrian = originPelayanan.getPasien();
|
||||
if (CommonUtil.isNotNullOrEmpty(antrian))
|
||||
duplicatePelayanan.setPasien(antrian);
|
||||
}
|
||||
{
|
||||
JenisKemasan jenisKemasan = originPelayanan.getJenisKemasan();
|
||||
if (CommonUtil.isNotNullOrEmpty(jenisKemasan))
|
||||
duplicatePelayanan.setJenisKemasan(jenisKemasan);
|
||||
}
|
||||
{
|
||||
Kelas kelas = originPelayanan.getKelas();
|
||||
if (CommonUtil.isNotNullOrEmpty(kelas))
|
||||
duplicatePelayanan.setKelas(kelas);
|
||||
}
|
||||
{
|
||||
KelompokTransaksi kelompokTransaksi = originPelayanan.getKelompokTransaksi();
|
||||
if (CommonUtil.isNotNullOrEmpty(kelompokTransaksi))
|
||||
duplicatePelayanan.setKelompokTransaksi(kelompokTransaksi);
|
||||
}
|
||||
{
|
||||
Produk produk = originPelayanan.getProduk();
|
||||
if (CommonUtil.isNotNullOrEmpty(produk))
|
||||
duplicatePelayanan.setProduk(produk);
|
||||
}
|
||||
{
|
||||
Generik generik = originPelayanan.getGenerik();
|
||||
if (CommonUtil.isNotNullOrEmpty(generik))
|
||||
duplicatePelayanan.setGenerik(generik);
|
||||
}
|
||||
{
|
||||
JenisObat jenisObat = originPelayanan.getJenisObat();
|
||||
if (CommonUtil.isNotNullOrEmpty(jenisObat))
|
||||
duplicatePelayanan.setJenisObat(jenisObat);
|
||||
}
|
||||
{
|
||||
RouteFarmasi route = originPelayanan.getRoute();
|
||||
if (CommonUtil.isNotNullOrEmpty(route))
|
||||
duplicatePelayanan.setRoute(route);
|
||||
}
|
||||
{
|
||||
SatuanStandar satuanView = originPelayanan.getSatuanView();
|
||||
if (CommonUtil.isNotNullOrEmpty(satuanView))
|
||||
duplicatePelayanan.setSatuanView(satuanView);
|
||||
}
|
||||
{
|
||||
Stigma keteranganPakai = originPelayanan.getKeteranganPakai();
|
||||
if (CommonUtil.isNotNullOrEmpty(keteranganPakai))
|
||||
duplicatePelayanan.setKeteranganPakai(keteranganPakai);
|
||||
}
|
||||
{
|
||||
StrukOrder strukOrder = originPelayanan.getStrukOrder();
|
||||
if (CommonUtil.isNotNullOrEmpty(strukOrder))
|
||||
duplicatePelayanan.setStrukOrder(strukOrder);
|
||||
}
|
||||
{
|
||||
StrukPelayanan strukPelayanan = originPelayanan.getStrukPelayanan();
|
||||
if (CommonUtil.isNotNullOrEmpty(strukPelayanan))
|
||||
duplicatePelayanan.setStrukPelayanan(strukPelayanan);
|
||||
}
|
||||
{
|
||||
StrukPelayanan strukTerima = originPelayanan.getStrukTerima();
|
||||
if (CommonUtil.isNotNullOrEmpty(strukTerima))
|
||||
duplicatePelayanan.setStrukTerima(strukTerima);
|
||||
}
|
||||
{
|
||||
StrukPelayananDNoBatch noBatch = originPelayanan.getNoBatch();
|
||||
if (CommonUtil.isNotNullOrEmpty(noBatch))
|
||||
duplicatePelayanan.setNoBatch(noBatch);
|
||||
}
|
||||
{
|
||||
StrukResep strukResep = originPelayanan.getStrukResep();
|
||||
if (CommonUtil.isNotNullOrEmpty(strukResep))
|
||||
duplicatePelayanan.setStrukResep(strukResep);
|
||||
}
|
||||
{
|
||||
VoucherPaket voucherPaket = originPelayanan.getVoucherPaket();
|
||||
if (CommonUtil.isNotNullOrEmpty(voucherPaket))
|
||||
duplicatePelayanan.setVoucherPaket(voucherPaket);
|
||||
}
|
||||
duplicatePelayanan.setNoRec(null);
|
||||
result.add(duplicatePelayanan);
|
||||
result.add(originPelayanan);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user