Update service pelayanan pasien
Pembuatan fitur duplikasi relasi racikan detail karena split jumlah pelayanan di diskon paket
This commit is contained in:
parent
c3d5c67ba7
commit
54f6f9543d
@ -1,11 +1,16 @@
|
||||
package com.jasamedika.medifirst2000.dao;
|
||||
|
||||
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;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.RacikanDetail;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Repository("RacikanDetailDao")
|
||||
public interface RacikanDetailDao extends PagingAndSortingRepository<RacikanDetail, String> {
|
||||
|
||||
@Query("select rd from RacikanDetail rd left join rd.pelayananPasien pp where pp.noRec = :norec")
|
||||
List<RacikanDetail> findByPelayananPasien(@Param("norec") String norec);
|
||||
}
|
||||
|
||||
@ -111,6 +111,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
@Autowired
|
||||
private PelayananPasienTidakTerklaimDao pelayananPasienTidakTerklaimDao;
|
||||
|
||||
@Autowired
|
||||
private RacikanDetailDao racikanDetailDao;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> savePelayananPasien(PelayananPasienVO vo) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
@ -2326,6 +2329,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<PelayananPasienDetail> detailPelayanan = new ArrayList<>();
|
||||
List<PelayananPasienPetugas> petugasPelayanan = new ArrayList<>();
|
||||
List<PelayananPasienTidakTerklaim> pelayananPasienTidakTerklaim = new ArrayList<>();
|
||||
List<RacikanDetail> racikanDetail = new ArrayList<>();
|
||||
dtoList.forEach(dto -> {
|
||||
Optional<PelayananPasien> pelayananReducedQty = pelayananChecked.stream()
|
||||
.filter(p -> p.getNoRec().equals(dto.getNoRec()))
|
||||
@ -2334,6 +2338,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<PelayananPasienDetail> splitDetailPelayanan = new ArrayList<>();
|
||||
List<PelayananPasienPetugas> splitPetugasPelayanan = new ArrayList<>();
|
||||
List<PelayananPasienTidakTerklaim> splitPelayananTidakTerklaim = new ArrayList<>();
|
||||
List<RacikanDetail> splitRacikanDetail = new ArrayList<>();
|
||||
List<PelayananPasien> splitPelayanan = copyPelayananSplitQty(p);
|
||||
Optional<PelayananPasien> origin = splitPelayanan.stream().filter(cp -> cp.getNoRec() != null)
|
||||
.findFirst();
|
||||
@ -2368,6 +2373,14 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
.stream().filter(ptt -> ptt.getNoRec() != null).collect(Collectors.toList());
|
||||
pelayananPasienTidakTerklaim.addAll(originPelayananTidakTerklaim);
|
||||
}
|
||||
{
|
||||
List<RacikanDetail> racikanDetailOrigin = racikanDetailDao
|
||||
.findByPelayananPasien(origin.get().getNoRec());
|
||||
splitRacikanDetail = copyDetailRacikanSplitQty(racikanDetailOrigin);
|
||||
List<RacikanDetail> originRacikanDetail = splitRacikanDetail.stream()
|
||||
.filter(rd -> rd.getNoRec() != null).collect(Collectors.toList());
|
||||
racikanDetail.addAll(originRacikanDetail);
|
||||
}
|
||||
pelayanan.add(origin.get());
|
||||
}
|
||||
Optional<PelayananPasien> duplicate = splitPelayanan.stream().filter(cp -> cp.getNoRec() == null)
|
||||
@ -2394,6 +2407,12 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
duplicatePelayananTidakTerklaim.forEach(dp -> dp.setPelayananPasien(duplicate.get()));
|
||||
pelayananPasienTidakTerklaim.addAll(duplicatePelayananTidakTerklaim);
|
||||
}
|
||||
{
|
||||
List<RacikanDetail> duplicateRacikanDetail = splitRacikanDetail.stream()
|
||||
.filter(rd -> rd.getNoRec() == null).collect(Collectors.toList());
|
||||
duplicateRacikanDetail.forEach(drd -> drd.setPelayananPasien(duplicate.get()));
|
||||
racikanDetail.addAll(duplicateRacikanDetail);
|
||||
}
|
||||
pelayanan.add(duplicate.get());
|
||||
}
|
||||
});
|
||||
@ -2403,6 +2422,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
pelayananPasienDetailDao.save(detailPelayanan);
|
||||
pelayananPasienPetugasDao.save(petugasPelayanan);
|
||||
pelayananPasienTidakTerklaimDao.save(pelayananPasienTidakTerklaim);
|
||||
racikanDetailDao.save(racikanDetail);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2750,4 +2770,31 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
});
|
||||
return duplicatePelayananTidakTerklaim;
|
||||
}
|
||||
|
||||
List<RacikanDetail> copyDetailRacikanSplitQty(List<RacikanDetail> originRacikanDetail) {
|
||||
List<RacikanDetail> duplicateRacikanDetail = new ArrayList<>();
|
||||
originRacikanDetail.forEach(origin -> {
|
||||
RacikanDetail duplicate;
|
||||
duplicate = origin;
|
||||
{
|
||||
Produk produk = origin.getProduk();
|
||||
if (CommonUtil.isNotNullOrEmpty(produk))
|
||||
duplicate.setProduk(produk);
|
||||
}
|
||||
{
|
||||
Generik generik = origin.getGenerik();
|
||||
if (CommonUtil.isNotNullOrEmpty(generik))
|
||||
duplicate.setGenerik(generik);
|
||||
}
|
||||
{
|
||||
StrukRacikan strukRacikan = origin.getStrukRacikan();
|
||||
if (CommonUtil.isNotNullOrEmpty(strukRacikan))
|
||||
duplicate.setStrukRacikan(strukRacikan);
|
||||
}
|
||||
duplicate.setNoRec(null);
|
||||
duplicateRacikanDetail.add(duplicate);
|
||||
duplicateRacikanDetail.add(origin);
|
||||
});
|
||||
return duplicateRacikanDetail;
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user