Update service pelayanan pasien
Pembuatan fitur duplikasi relasi mapping petugas pegawai karena split jumlah pelayanan di diskon paket dan dampaknya pada catatan petugas pelayanan
This commit is contained in:
parent
a9624ed220
commit
c39750c6b4
@ -0,0 +1,23 @@
|
||||
package com.jasamedika.medifirst2000.dao;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.MapPelayananPasienPetugasToPegawai;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Salman
|
||||
* @version 1.0.0
|
||||
* @since 26 Aug 2023
|
||||
*/
|
||||
@Repository
|
||||
public interface MapPelayananPasienPetugasToPegawaiDao
|
||||
extends JpaRepository<MapPelayananPasienPetugasToPegawai, String> {
|
||||
@Query("select mptp from MapPelayananPasienPetugasToPegawai mptp " + "left join mptp.pelayananPasienPetugas ppp "
|
||||
+ "where ppp.norec in (:norecs)")
|
||||
List<MapPelayananPasienPetugasToPegawai> findByPelayananPasienPetugas(@Param("norecs") List<String> norecs);
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
package com.jasamedika.medifirst2000.service.impl;
|
||||
|
||||
import com.jasamedika.medifirst2000.base.BaseTransaction;
|
||||
import com.jasamedika.medifirst2000.constants.Master;
|
||||
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
|
||||
import com.jasamedika.medifirst2000.dao.*;
|
||||
@ -114,6 +115,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
@Autowired
|
||||
private RacikanDetailDao racikanDetailDao;
|
||||
|
||||
@Autowired
|
||||
private MapPelayananPasienPetugasToPegawaiDao mapPelayananPasienPetugasToPegawaiDao;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> savePelayananPasien(PelayananPasienVO vo) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
@ -2330,6 +2334,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<PelayananPasienPetugas> petugasPelayanan = new ArrayList<>();
|
||||
List<PelayananPasienTidakTerklaim> pelayananPasienTidakTerklaim = new ArrayList<>();
|
||||
List<RacikanDetail> racikanDetail = new ArrayList<>();
|
||||
List<MapPelayananPasienPetugasToPegawai> mapPetugasPegawai = new ArrayList<>();
|
||||
dtoList.forEach(dto -> {
|
||||
Optional<PelayananPasien> pelayananReducedQty = pelayananChecked.stream()
|
||||
.filter(p -> p.getNoRec().equals(dto.getNoRec()))
|
||||
@ -2339,6 +2344,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<PelayananPasienPetugas> splitPetugasPelayanan = new ArrayList<>();
|
||||
List<PelayananPasienTidakTerklaim> splitPelayananTidakTerklaim = new ArrayList<>();
|
||||
List<RacikanDetail> splitRacikanDetail = new ArrayList<>();
|
||||
List<MapPelayananPasienPetugasToPegawai> splitMapPetugasPegawai = new ArrayList<>();
|
||||
List<PelayananPasien> splitPelayanan = copyPelayananSplitQty(p);
|
||||
Optional<PelayananPasien> origin = splitPelayanan.stream().filter(cp -> cp.getNoRec() != null)
|
||||
.findFirst();
|
||||
@ -2363,6 +2369,16 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<PelayananPasienPetugas> originPetugas = splitPetugasPelayanan.stream()
|
||||
.filter(pt -> pt.getNoRec() != null).collect(Collectors.toList());
|
||||
petugasPelayanan.addAll(originPetugas);
|
||||
{
|
||||
List<String> norecs = petugasOrigin.stream().map(BaseTransaction::getNoRec)
|
||||
.collect(Collectors.toList());
|
||||
List<MapPelayananPasienPetugasToPegawai> mapPetugasPegawaiOrigin = mapPelayananPasienPetugasToPegawaiDao
|
||||
.findByPelayananPasienPetugas(norecs);
|
||||
splitMapPetugasPegawai = copyMapPetugasPegawaiSplitQty(mapPetugasPegawaiOrigin);
|
||||
List<MapPelayananPasienPetugasToPegawai> originMapPetugasPegawai = splitMapPetugasPegawai
|
||||
.stream().filter(mpp -> mpp.getNoRec() != null).collect(Collectors.toList());
|
||||
mapPetugasPegawai.addAll(originMapPetugasPegawai);
|
||||
}
|
||||
}
|
||||
{
|
||||
List<PelayananPasienTidakTerklaim> pelayananTidakTerklaimOrigin = pelayananPasienTidakTerklaimDao
|
||||
@ -2398,7 +2414,17 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
{
|
||||
List<PelayananPasienPetugas> duplicatePetugas = splitPetugasPelayanan.stream()
|
||||
.filter(pt -> pt.getNoRec() == null).collect(Collectors.toList());
|
||||
duplicatePetugas.forEach(dp -> dp.setPelayananPasien(duplicate.get()));
|
||||
List<MapPelayananPasienPetugasToPegawai> finalSplitMapPetugasPegawai = splitMapPetugasPegawai;
|
||||
duplicatePetugas.forEach(dp -> {
|
||||
dp.setPelayananPasien(duplicate.get());
|
||||
{
|
||||
List<MapPelayananPasienPetugasToPegawai> duplicateMapPetugasPegawai = finalSplitMapPetugasPegawai
|
||||
.stream().filter(mpp -> mpp.getNoRec() == null)
|
||||
.collect(Collectors.toList());
|
||||
duplicateMapPetugasPegawai.forEach(dm -> dm.setPelayananPasienPetugas(dp));
|
||||
mapPetugasPegawai.addAll(duplicateMapPetugasPegawai);
|
||||
}
|
||||
});
|
||||
petugasPelayanan.addAll(duplicatePetugas);
|
||||
}
|
||||
{
|
||||
@ -2423,6 +2449,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
pelayananPasienPetugasDao.save(petugasPelayanan);
|
||||
pelayananPasienTidakTerklaimDao.save(pelayananPasienTidakTerklaim);
|
||||
racikanDetailDao.save(racikanDetail);
|
||||
mapPelayananPasienPetugasToPegawaiDao.save(mapPetugasPegawai);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2797,4 +2824,22 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
});
|
||||
return duplicateRacikanDetail;
|
||||
}
|
||||
|
||||
List<MapPelayananPasienPetugasToPegawai> copyMapPetugasPegawaiSplitQty(
|
||||
List<MapPelayananPasienPetugasToPegawai> originMapPetugasPegawai) {
|
||||
List<MapPelayananPasienPetugasToPegawai> duplicateMapPetugasPegawai = new ArrayList<>();
|
||||
originMapPetugasPegawai.forEach(origin -> {
|
||||
MapPelayananPasienPetugasToPegawai duplicate;
|
||||
duplicate = origin;
|
||||
{
|
||||
Pegawai pegawai = origin.getPegawai();
|
||||
if (CommonUtil.isNotNullOrEmpty(pegawai))
|
||||
duplicate.setPegawai(pegawai);
|
||||
}
|
||||
duplicate.setNoRec(null);
|
||||
duplicateMapPetugasPegawai.add(duplicate);
|
||||
duplicateMapPetugasPegawai.add(origin);
|
||||
});
|
||||
return duplicateMapPetugasPegawai;
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user