Update service pelayanan pasien

Perbaikan bug jumlah pelayanan tidak berkurang dan penerapan mekanisme cloning object persistence
This commit is contained in:
Salman Manoe 2023-08-26 23:23:44 +07:00
parent 8fb26ced95
commit c9508a70d0
3 changed files with 64 additions and 25 deletions

View File

@ -18,6 +18,6 @@ import java.util.List;
public interface MapPelayananPasienPetugasToPegawaiDao
extends JpaRepository<MapPelayananPasienPetugasToPegawai, String> {
@Query("select mptp from MapPelayananPasienPetugasToPegawai mptp " + "left join mptp.pelayananPasienPetugas ppp "
+ "where ppp.norec in (:norecs)")
+ "where ppp.noRec in (:norecs)")
List<MapPelayananPasienPetugasToPegawai> findByPelayananPasienPetugas(@Param("norecs") List<String> norecs);
}

View File

@ -12,11 +12,10 @@ import com.jasamedika.medifirst2000.service.LoginUserService;
import com.jasamedika.medifirst2000.service.PelayananPasienService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.util.DateUtil;
import com.jasamedika.medifirst2000.vo.JenisObatVO;
import com.jasamedika.medifirst2000.vo.PelayananPasienVO;
import com.jasamedika.medifirst2000.vo.ProdukVO;
import com.jasamedika.medifirst2000.vo.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.*;
import java.time.LocalDate;
@ -50,11 +49,27 @@ import static com.jasamedika.medifirst2000.constants.Master.TipePegawai.PURNA_WA
* @author Generator
*/
@Service("pelayananPasienService")
@Transactional
public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements PelayananPasienService {
@Autowired
private BaseConverterImpl<PelayananPasienVO, PelayananPasien> pelayananPasienConverter;
@Autowired
private BaseConverterImpl<PelayananPasienDetailVO, PelayananPasienDetail> pelayananPasienDetailConverter;
@Autowired
private BaseConverterImpl<PelayananPasienPetugasVO, PelayananPasienPetugas> pelayananPasienPetugasConverter;
@Autowired
private BaseConverterImpl<MapPelayananPasienPetugasToPegawaiVO, MapPelayananPasienPetugasToPegawai> mapPelayananPasienPetugasToPegawaiConverter;
@Autowired
private BaseConverterImpl<PelayananPasienTidakTerklaimVO, PelayananPasienTidakTerklaim> pelayananPasienTidakTerklaimConverter;
@Autowired
private BaseConverterImpl<RacikanDetailVO, RacikanDetail> racikanDetailConverter;
@Autowired
private BaseConverterImpl<JenisObatVO, JenisObat> jenisObatConverter;
@ -2401,8 +2416,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
}
Optional<PelayananPasien> duplicate = splitPelayanan.stream().filter(cp -> cp.getNoRec() == null)
.findFirst();
if (duplicate.isPresent()) {
duplicate.get().setJumlah(pelayananReducedQty.get().getJumlah() - dto.getJumlah());
if (duplicate.isPresent() && origin.isPresent()) {
duplicate.get().setJumlah(duplicate.get().getJumlah() - origin.get().getJumlah());
duplicate.get().setIsPaket(false);
duplicate.get().setVoucherPaket(voucher);
{
@ -2527,8 +2542,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
private List<PelayananPasien> copyPelayananSplitQty(PelayananPasien originPelayanan) {
List<PelayananPasien> result = new ArrayList<>();
PelayananPasien duplicatePelayanan;
duplicatePelayanan = originPelayanan;
PelayananPasien duplicatePelayanan = new PelayananPasien();
try {
duplicatePelayanan = pelayananPasienConverter.clone(originPelayanan, duplicatePelayanan, new String[] {
"serialVersionUID", "noRec", "pelayananPasienPetugasSet", "racikan", "pelayananPasienDetailSet" });
} catch (IllegalAccessException e) {
throw new ServiceVOException(e.getMessage());
}
{
AntrianPasienDiPeriksa antrian = originPelayanan.getPasien();
if (CommonUtil.isNotNullOrEmpty(antrian))
@ -2609,7 +2629,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
if (CommonUtil.isNotNullOrEmpty(voucherPaket))
duplicatePelayanan.setVoucherPaket(voucherPaket);
}
duplicatePelayanan.setNoRec(null);
result.add(duplicatePelayanan);
result.add(originPelayanan);
return result;
@ -2618,8 +2637,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
private List<PelayananPasienDetail> copyPelayananDetailSplitQty(List<PelayananPasienDetail> originDetail) {
List<PelayananPasienDetail> duplicateDetail = new ArrayList<>();
originDetail.forEach(origin -> {
PelayananPasienDetail duplicate;
duplicate = origin;
PelayananPasienDetail duplicate = new PelayananPasienDetail();
try {
duplicate = pelayananPasienDetailConverter.clone(origin, duplicate,
new String[] { "serialVersionUID", "noRec" });
} catch (IllegalAccessException e) {
throw new ServiceVOException(e.getMessage());
}
{
AntrianPasienDiPeriksa pasien = origin.getPasien();
if (CommonUtil.isNotNullOrEmpty(pasien))
@ -2660,7 +2684,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
if (CommonUtil.isNotNullOrEmpty(strukOrder))
duplicate.setStrukOrder(strukOrder);
}
duplicate.setNoRec(null);
duplicateDetail.add(duplicate);
duplicateDetail.add(origin);
});
@ -2671,8 +2694,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
List<PelayananPasienPetugas> originPetugas) {
List<PelayananPasienPetugas> duplicatePetugas = new ArrayList<>();
originPetugas.forEach(origin -> {
PelayananPasienPetugas duplicate;
duplicate = origin;
PelayananPasienPetugas duplicate = new PelayananPasienPetugas();
try {
duplicate = pelayananPasienPetugasConverter.clone(origin, duplicate,
new String[] { "serialVersionUID", "noRec" });
} catch (IllegalAccessException e) {
throw new ServiceVOException(e.getMessage());
}
{
AntrianPasienDiPeriksa nomasuk = origin.getNomasuk();
if (CommonUtil.isNotNullOrEmpty(nomasuk))
@ -2703,7 +2731,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
if (CommonUtil.isNotNullOrEmpty(kdruangan))
duplicate.setKdruangan(kdruangan);
}
duplicate.setNoRec(null);
duplicatePetugas.add(duplicate);
duplicatePetugas.add(origin);
});
@ -2714,8 +2741,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
List<PelayananPasienTidakTerklaim> originPelayananTidakTerklaim) {
List<PelayananPasienTidakTerklaim> duplicatePelayananTidakTerklaim = new ArrayList<>();
originPelayananTidakTerklaim.forEach(origin -> {
PelayananPasienTidakTerklaim duplicate;
duplicate = origin;
PelayananPasienTidakTerklaim duplicate = new PelayananPasienTidakTerklaim();
try {
duplicate = pelayananPasienTidakTerklaimConverter.clone(origin, duplicate,
new String[] { "serialVersionUID", "noRec" });
} catch (IllegalAccessException e) {
throw new ServiceVOException(e.getMessage());
}
{
AntrianPasienDiPeriksa antrian = origin.getPasien();
if (CommonUtil.isNotNullOrEmpty(antrian))
@ -2791,7 +2823,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
if (CommonUtil.isNotNullOrEmpty(strukResep))
duplicate.setStrukResep(strukResep);
}
duplicate.setNoRec(null);
duplicatePelayananTidakTerklaim.add(duplicate);
duplicatePelayananTidakTerklaim.add(origin);
});
@ -2801,8 +2832,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
List<RacikanDetail> copyDetailRacikanSplitQty(List<RacikanDetail> originRacikanDetail) {
List<RacikanDetail> duplicateRacikanDetail = new ArrayList<>();
originRacikanDetail.forEach(origin -> {
RacikanDetail duplicate;
duplicate = origin;
RacikanDetail duplicate = new RacikanDetail();
try {
duplicate = racikanDetailConverter.clone(origin, duplicate,
new String[] { "serialVersionUID", "noRec" });
} catch (IllegalAccessException e) {
throw new ServiceVOException(e.getMessage());
}
{
Produk produk = origin.getProduk();
if (CommonUtil.isNotNullOrEmpty(produk))
@ -2818,7 +2854,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
if (CommonUtil.isNotNullOrEmpty(strukRacikan))
duplicate.setStrukRacikan(strukRacikan);
}
duplicate.setNoRec(null);
duplicateRacikanDetail.add(duplicate);
duplicateRacikanDetail.add(origin);
});
@ -2829,14 +2864,18 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
List<MapPelayananPasienPetugasToPegawai> originMapPetugasPegawai) {
List<MapPelayananPasienPetugasToPegawai> duplicateMapPetugasPegawai = new ArrayList<>();
originMapPetugasPegawai.forEach(origin -> {
MapPelayananPasienPetugasToPegawai duplicate;
duplicate = origin;
MapPelayananPasienPetugasToPegawai duplicate = new MapPelayananPasienPetugasToPegawai();
try {
duplicate = mapPelayananPasienPetugasToPegawaiConverter.clone(origin, duplicate,
new String[] { "serialVersionUID", "noRec" });
} catch (IllegalAccessException e) {
throw new ServiceVOException(e.getMessage());
}
{
Pegawai pegawai = origin.getPegawai();
if (CommonUtil.isNotNullOrEmpty(pegawai))
duplicate.setPegawai(pegawai);
}
duplicate.setNoRec(null);
duplicateMapPetugasPegawai.add(duplicate);
duplicateMapPetugasPegawai.add(origin);
});

View File

@ -261,7 +261,7 @@ public class PelayananPasienTidakTerklaim extends MedicalRecordTransaction {
@Column(name = "pelayananpasien", insertable = false, updatable = false)
private String pelayananPasienId;
@Column(name = "No Masuk", length = 32)
@Column(name = "nomasukfk", length = 32)
@Caption(value = "nomasukfk")
private String noMasuk;
}