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;
|
package com.jasamedika.medifirst2000.dao;
|
||||||
|
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||||
|
import org.springframework.data.repository.query.Param;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.entities.RacikanDetail;
|
import com.jasamedika.medifirst2000.entities.RacikanDetail;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Repository("RacikanDetailDao")
|
@Repository("RacikanDetailDao")
|
||||||
public interface RacikanDetailDao extends PagingAndSortingRepository<RacikanDetail, String> {
|
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
|
@Autowired
|
||||||
private PelayananPasienTidakTerklaimDao pelayananPasienTidakTerklaimDao;
|
private PelayananPasienTidakTerklaimDao pelayananPasienTidakTerklaimDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RacikanDetailDao racikanDetailDao;
|
||||||
|
|
||||||
@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<>();
|
||||||
@ -2326,6 +2329,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
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<>();
|
List<PelayananPasienTidakTerklaim> pelayananPasienTidakTerklaim = new ArrayList<>();
|
||||||
|
List<RacikanDetail> racikanDetail = 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()))
|
||||||
@ -2334,6 +2338,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
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<PelayananPasienTidakTerklaim> splitPelayananTidakTerklaim = new ArrayList<>();
|
||||||
|
List<RacikanDetail> splitRacikanDetail = 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();
|
||||||
@ -2368,6 +2373,14 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
.stream().filter(ptt -> ptt.getNoRec() != null).collect(Collectors.toList());
|
.stream().filter(ptt -> ptt.getNoRec() != null).collect(Collectors.toList());
|
||||||
pelayananPasienTidakTerklaim.addAll(originPelayananTidakTerklaim);
|
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());
|
pelayanan.add(origin.get());
|
||||||
}
|
}
|
||||||
Optional<PelayananPasien> duplicate = splitPelayanan.stream().filter(cp -> cp.getNoRec() == null)
|
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()));
|
duplicatePelayananTidakTerklaim.forEach(dp -> dp.setPelayananPasien(duplicate.get()));
|
||||||
pelayananPasienTidakTerklaim.addAll(duplicatePelayananTidakTerklaim);
|
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());
|
pelayanan.add(duplicate.get());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -2403,6 +2422,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
pelayananPasienDetailDao.save(detailPelayanan);
|
pelayananPasienDetailDao.save(detailPelayanan);
|
||||||
pelayananPasienPetugasDao.save(petugasPelayanan);
|
pelayananPasienPetugasDao.save(petugasPelayanan);
|
||||||
pelayananPasienTidakTerklaimDao.save(pelayananPasienTidakTerklaim);
|
pelayananPasienTidakTerklaimDao.save(pelayananPasienTidakTerklaim);
|
||||||
|
racikanDetailDao.save(racikanDetail);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2750,4 +2770,31 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
});
|
});
|
||||||
return duplicatePelayananTidakTerklaim;
|
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