Update service pelayanan pasien

Pembuatan fitur duplikasi relasi pelayanan pasien tidak terklaim karena split jumlah pelayanan di diskon paket
This commit is contained in:
Salman Manoe 2023-08-26 10:24:38 +07:00
parent 56160b11a3
commit 43467935a9
2 changed files with 115 additions and 1 deletions

View File

@ -1,10 +1,14 @@
package com.jasamedika.medifirst2000.dao; package com.jasamedika.medifirst2000.dao;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.jasamedika.medifirst2000.entities.PelayananPasienTidakTerklaim; import com.jasamedika.medifirst2000.entities.PelayananPasienTidakTerklaim;
import java.util.List;
/** /**
* Repository class for PelayananPasienTidakTerklaim * Repository class for PelayananPasienTidakTerklaim
* *
@ -12,5 +16,6 @@ import com.jasamedika.medifirst2000.entities.PelayananPasienTidakTerklaim;
*/ */
@Repository("pelayananPasienTidakTerklaimDao") @Repository("pelayananPasienTidakTerklaimDao")
public interface PelayananPasienTidakTerklaimDao extends JpaRepository<PelayananPasienTidakTerklaim, String> { public interface PelayananPasienTidakTerklaimDao extends JpaRepository<PelayananPasienTidakTerklaim, String> {
@Query("select pptt from PelayananPasienTidakTerklaim pptt left join pptt.pelayananPasien pp where pp.noRec = :norec")
List<PelayananPasienTidakTerklaim> findByPelayananPasien(@Param("norec") String norec);
} }

View File

@ -108,6 +108,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
@Autowired @Autowired
private PelayananPasienPetugasDao pelayananPasienPetugasDao; private PelayananPasienPetugasDao pelayananPasienPetugasDao;
@Autowired
private PelayananPasienTidakTerklaimDao pelayananPasienTidakTerklaimDao;
@Override @Override
public Map<String, Object> savePelayananPasien(PelayananPasienVO vo) { public Map<String, Object> savePelayananPasien(PelayananPasienVO vo) {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
@ -2322,6 +2325,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
List<PelayananPasien> pelayanan = new ArrayList<>(); List<PelayananPasien> pelayanan = new ArrayList<>();
List<PelayananPasienDetail> detailPelayanan = new ArrayList<>(); List<PelayananPasienDetail> detailPelayanan = new ArrayList<>();
List<PelayananPasienPetugas> petugasPelayanan = new ArrayList<>(); List<PelayananPasienPetugas> petugasPelayanan = new ArrayList<>();
List<PelayananPasienTidakTerklaim> pelayananPasienTidakTerklaim = new ArrayList<>();
dtoList.forEach(dto -> { dtoList.forEach(dto -> {
Optional<PelayananPasien> pelayananReducedQty = pelayananChecked.stream() Optional<PelayananPasien> pelayananReducedQty = pelayananChecked.stream()
.filter(p -> p.getNoRec().equals(dto.getNoRec())) .filter(p -> p.getNoRec().equals(dto.getNoRec()))
@ -2329,6 +2333,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
pelayananReducedQty.ifPresent(p -> { pelayananReducedQty.ifPresent(p -> {
List<PelayananPasienDetail> splitDetailPelayanan = new ArrayList<>(); List<PelayananPasienDetail> splitDetailPelayanan = new ArrayList<>();
List<PelayananPasienPetugas> splitPetugasPelayanan = new ArrayList<>(); List<PelayananPasienPetugas> splitPetugasPelayanan = new ArrayList<>();
List<PelayananPasienTidakTerklaim> splitPelayananTidakTerklaim = new ArrayList<>();
List<PelayananPasien> splitPelayanan = copyPelayananSplitQty(p); List<PelayananPasien> splitPelayanan = copyPelayananSplitQty(p);
Optional<PelayananPasien> origin = splitPelayanan.stream().filter(cp -> cp.getNoRec() != null) Optional<PelayananPasien> origin = splitPelayanan.stream().filter(cp -> cp.getNoRec() != null)
.findFirst(); .findFirst();
@ -2354,6 +2359,15 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
.filter(pt -> pt.getNoRec() != null).collect(Collectors.toList()); .filter(pt -> pt.getNoRec() != null).collect(Collectors.toList());
petugasPelayanan.addAll(originPetugas); petugasPelayanan.addAll(originPetugas);
} }
{
List<PelayananPasienTidakTerklaim> pelayananTidakTerklaimOrigin = pelayananPasienTidakTerklaimDao
.findByPelayananPasien(origin.get().getNoRec());
splitPelayananTidakTerklaim = copyPelayananTidakTerklaimSplitQty(
pelayananTidakTerklaimOrigin);
List<PelayananPasienTidakTerklaim> originPelayananTidakTerklaim = splitPelayananTidakTerklaim
.stream().filter(ptt -> ptt.getNoRec() != null).collect(Collectors.toList());
pelayananPasienTidakTerklaim.addAll(originPelayananTidakTerklaim);
}
pelayanan.add(origin.get()); pelayanan.add(origin.get());
} }
Optional<PelayananPasien> duplicate = splitPelayanan.stream().filter(cp -> cp.getNoRec() == null) Optional<PelayananPasien> duplicate = splitPelayanan.stream().filter(cp -> cp.getNoRec() == null)
@ -2374,6 +2388,12 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
duplicatePetugas.forEach(dp -> dp.setPelayananPasien(duplicate.get())); duplicatePetugas.forEach(dp -> dp.setPelayananPasien(duplicate.get()));
petugasPelayanan.addAll(duplicatePetugas); petugasPelayanan.addAll(duplicatePetugas);
} }
{
List<PelayananPasienTidakTerklaim> duplicatePelayananTidakTerklaim = splitPelayananTidakTerklaim
.stream().filter(pt -> pt.getNoRec() == null).collect(Collectors.toList());
duplicatePelayananTidakTerklaim.forEach(dp -> dp.setPelayananPasien(duplicate.get()));
pelayananPasienTidakTerklaim.addAll(duplicatePelayananTidakTerklaim);
}
pelayanan.add(duplicate.get()); pelayanan.add(duplicate.get());
} }
}); });
@ -2382,6 +2402,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
pelayananPasienDao.save(pelayanan); pelayananPasienDao.save(pelayanan);
pelayananPasienDetailDao.save(detailPelayanan); pelayananPasienDetailDao.save(detailPelayanan);
pelayananPasienPetugasDao.save(petugasPelayanan); pelayananPasienPetugasDao.save(petugasPelayanan);
pelayananPasienTidakTerklaimDao.save(pelayananPasienTidakTerklaim);
} }
} }
} }
@ -2641,4 +2662,92 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
}); });
return duplicatePetugas; return duplicatePetugas;
} }
private List<PelayananPasienTidakTerklaim> copyPelayananTidakTerklaimSplitQty(
List<PelayananPasienTidakTerklaim> originPelayananTidakTerklaim) {
List<PelayananPasienTidakTerklaim> duplicatePelayananTidakTerklaim = new ArrayList<>();
originPelayananTidakTerklaim.forEach(origin -> {
PelayananPasienTidakTerklaim duplicate;
duplicate = origin;
{
AntrianPasienDiPeriksa antrian = origin.getPasien();
if (CommonUtil.isNotNullOrEmpty(antrian))
duplicate.setPasien(antrian);
}
{
JenisKemasan jenisKemasan = origin.getJenisKemasan();
if (CommonUtil.isNotNullOrEmpty(jenisKemasan))
duplicate.setJenisKemasan(jenisKemasan);
}
{
Kelas kelas = origin.getKelas();
if (CommonUtil.isNotNullOrEmpty(kelas))
duplicate.setKelas(kelas);
}
{
KelompokTransaksi kelompokTransaksi = origin.getKelompokTransaksi();
if (CommonUtil.isNotNullOrEmpty(kelompokTransaksi))
duplicate.setKelompokTransaksi(kelompokTransaksi);
}
{
Produk produk = origin.getProduk();
if (CommonUtil.isNotNullOrEmpty(produk))
duplicate.setProduk(produk);
}
{
Generik generik = origin.getGenerik();
if (CommonUtil.isNotNullOrEmpty(generik))
duplicate.setGenerik(generik);
}
{
JenisObat jenisObat = origin.getJenisObat();
if (CommonUtil.isNotNullOrEmpty(jenisObat))
duplicate.setJenisObat(jenisObat);
}
{
RouteFarmasi route = origin.getRoute();
if (CommonUtil.isNotNullOrEmpty(route))
duplicate.setRoute(route);
}
{
SatuanStandar satuanView = origin.getSatuanView();
if (CommonUtil.isNotNullOrEmpty(satuanView))
duplicate.setSatuanView(satuanView);
}
{
Stigma keteranganPakai = origin.getKeteranganPakai();
if (CommonUtil.isNotNullOrEmpty(keteranganPakai))
duplicate.setKeteranganPakai(keteranganPakai);
}
{
StrukOrder strukOrder = origin.getStrukOrder();
if (CommonUtil.isNotNullOrEmpty(strukOrder))
duplicate.setStrukOrder(strukOrder);
}
{
StrukPelayanan strukPelayanan = origin.getStrukPelayanan();
if (CommonUtil.isNotNullOrEmpty(strukPelayanan))
duplicate.setStrukPelayanan(strukPelayanan);
}
{
StrukPelayanan strukTerima = origin.getStrukTerima();
if (CommonUtil.isNotNullOrEmpty(strukTerima))
duplicate.setStrukTerima(strukTerima);
}
{
StrukPelayananDNoBatch noBatch = origin.getNoBatch();
if (CommonUtil.isNotNullOrEmpty(noBatch))
duplicate.setNoBatch(noBatch);
}
{
StrukResep strukResep = origin.getStrukResep();
if (CommonUtil.isNotNullOrEmpty(strukResep))
duplicate.setStrukResep(strukResep);
}
duplicate.setNoRec(null);
duplicatePelayananTidakTerklaim.add(duplicate);
duplicatePelayananTidakTerklaim.add(origin);
});
return duplicatePelayananTidakTerklaim;
}
} }