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;
|
package com.jasamedika.medifirst2000.service.impl;
|
||||||
|
|
||||||
|
import com.jasamedika.medifirst2000.base.BaseTransaction;
|
||||||
import com.jasamedika.medifirst2000.constants.Master;
|
import com.jasamedika.medifirst2000.constants.Master;
|
||||||
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
|
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
|
||||||
import com.jasamedika.medifirst2000.dao.*;
|
import com.jasamedika.medifirst2000.dao.*;
|
||||||
@ -114,6 +115,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
@Autowired
|
@Autowired
|
||||||
private RacikanDetailDao racikanDetailDao;
|
private RacikanDetailDao racikanDetailDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MapPelayananPasienPetugasToPegawaiDao mapPelayananPasienPetugasToPegawaiDao;
|
||||||
|
|
||||||
@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<>();
|
||||||
@ -2330,6 +2334,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
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<>();
|
List<RacikanDetail> racikanDetail = new ArrayList<>();
|
||||||
|
List<MapPelayananPasienPetugasToPegawai> mapPetugasPegawai = 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()))
|
||||||
@ -2339,6 +2344,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
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<RacikanDetail> splitRacikanDetail = new ArrayList<>();
|
||||||
|
List<MapPelayananPasienPetugasToPegawai> splitMapPetugasPegawai = 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();
|
||||||
@ -2363,6 +2369,16 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
List<PelayananPasienPetugas> originPetugas = splitPetugasPelayanan.stream()
|
List<PelayananPasienPetugas> originPetugas = splitPetugasPelayanan.stream()
|
||||||
.filter(pt -> pt.getNoRec() != null).collect(Collectors.toList());
|
.filter(pt -> pt.getNoRec() != null).collect(Collectors.toList());
|
||||||
petugasPelayanan.addAll(originPetugas);
|
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
|
List<PelayananPasienTidakTerklaim> pelayananTidakTerklaimOrigin = pelayananPasienTidakTerklaimDao
|
||||||
@ -2398,7 +2414,17 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
{
|
{
|
||||||
List<PelayananPasienPetugas> duplicatePetugas = splitPetugasPelayanan.stream()
|
List<PelayananPasienPetugas> duplicatePetugas = splitPetugasPelayanan.stream()
|
||||||
.filter(pt -> pt.getNoRec() == null).collect(Collectors.toList());
|
.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);
|
petugasPelayanan.addAll(duplicatePetugas);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
@ -2423,6 +2449,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
pelayananPasienPetugasDao.save(petugasPelayanan);
|
pelayananPasienPetugasDao.save(petugasPelayanan);
|
||||||
pelayananPasienTidakTerklaimDao.save(pelayananPasienTidakTerklaim);
|
pelayananPasienTidakTerklaimDao.save(pelayananPasienTidakTerklaim);
|
||||||
racikanDetailDao.save(racikanDetail);
|
racikanDetailDao.save(racikanDetail);
|
||||||
|
mapPelayananPasienPetugasToPegawaiDao.save(mapPetugasPegawai);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2797,4 +2824,22 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
});
|
});
|
||||||
return duplicateRacikanDetail;
|
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