Update service pelayanan pasien
Rombak tabel mapping paket untuk validasi jumlah list tindakan paket
This commit is contained in:
parent
c26c8ff975
commit
4d85001b0c
@ -0,0 +1,12 @@
|
|||||||
|
package com.jasamedika.medifirst2000.dao;
|
||||||
|
|
||||||
|
import com.jasamedika.medifirst2000.entities.MapProdukPaket;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Salman Manoe
|
||||||
|
* @version 1.0.0
|
||||||
|
* @since 21 Sep 2023
|
||||||
|
*/
|
||||||
|
public interface MapProdukPaketDao extends JpaRepository<MapProdukPaket, String> {
|
||||||
|
}
|
||||||
@ -2,6 +2,8 @@ package com.jasamedika.medifirst2000.dao;
|
|||||||
|
|
||||||
import com.jasamedika.medifirst2000.entities.MapProdukPaketToProduk;
|
import com.jasamedika.medifirst2000.entities.MapProdukPaketToProduk;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
import org.springframework.data.repository.query.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -16,26 +18,7 @@ public interface MapProdukPaketToProdukDao extends JpaRepository<MapProdukPaketT
|
|||||||
* id produk yang dijadikan nama paket
|
* id produk yang dijadikan nama paket
|
||||||
* @return daftar mapping antara produk paket dan paketnya sebagai produk
|
* @return daftar mapping antara produk paket dan paketnya sebagai produk
|
||||||
*/
|
*/
|
||||||
List<MapProdukPaketToProduk> findAllByPaketId(Integer paketId);
|
@Query("select mpaket from MapProdukPaketToProduk mpaket " + "inner join mpaket.produkPaket mproduk "
|
||||||
|
+ "where mproduk.paketId = :paketId")
|
||||||
/**
|
List<MapProdukPaketToProduk> findAllByPaketId(@Param("paketId") Integer paketId);
|
||||||
* @param paketId
|
|
||||||
* id produk yang dijadikan nama paket
|
|
||||||
* @param produkPaketId
|
|
||||||
* id produk breakdown di dalam paket
|
|
||||||
* @return daftar mapping antara produk paket dan paketnya sebagai produk
|
|
||||||
*/
|
|
||||||
List<MapProdukPaketToProduk> findByPaketIdAndProdukPaketId(Integer paketId, Integer produkPaketId);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param paketId
|
|
||||||
* id produk yang dijadikan nama paket
|
|
||||||
* @param produkPaketId
|
|
||||||
* id produk breakdown di dalam paket
|
|
||||||
* @param noRec
|
|
||||||
* identifier mapping paket dan produk
|
|
||||||
* @return daftar mapping antara produk paket dan paketnya sebagai produk
|
|
||||||
*/
|
|
||||||
List<MapProdukPaketToProduk> findByPaketIdAndProdukPaketIdAndNoRecNot(Integer paketId, Integer produkPaketId,
|
|
||||||
String noRec);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -23,10 +23,10 @@ public interface VoucherPaketDao extends JpaRepository<VoucherPaket, String> {
|
|||||||
*/
|
*/
|
||||||
VoucherPaket findByKode(String kode);
|
VoucherPaket findByKode(String kode);
|
||||||
|
|
||||||
@Query("select new Map(vp.noRec as idVoucher,vp.paketId as idPaket,"
|
@Query("select new Map(vp.noRec as idVoucher,vp.paketId as idPaket," + "mpaket.produkId as idProduk,"
|
||||||
+ "mpaket.produkId as idProduk,mpaket.produkPaketId as idProdukPaket,"
|
+ "mproduk.produkPaketId as idProdukPaket," + "mproduk.jenisMapping as jenisMapping) "
|
||||||
+ "mpaket.jenisMapping as jenisMapping) " + "from VoucherPaket vp, MapProdukPaketToProduk mpaket "
|
+ "from MapProdukPaketToProduk mpaket " + "inner join mpaket.produkPaket mproduk, VoucherPaket vp "
|
||||||
+ "where vp.paketId = mpaket.paketId " + "and vp.isSelesai is true and vp.isBatal is false "
|
+ "where vp.paketId = mproduk.paketId " + "and vp.isSelesai is true and vp.isBatal is false "
|
||||||
+ "and vp.noRec in (:listNorec)")
|
+ "and vp.noRec in (:listNorec)")
|
||||||
List<Map<String, Object>> findPelayananPaket(@Param("listNorec") List<String> listIdVoucherPaket);
|
List<Map<String, Object>> findPelayananPaket(@Param("listNorec") List<String> listIdVoucherPaket);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,25 +1,22 @@
|
|||||||
package com.jasamedika.medifirst2000.service.impl;
|
package com.jasamedika.medifirst2000.service.impl;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.converter.base.BaseVoConverter;
|
import com.jasamedika.medifirst2000.converter.base.BaseVoConverter;
|
||||||
import com.jasamedika.medifirst2000.dao.MapProdukPaketToProdukDao;
|
import com.jasamedika.medifirst2000.dao.MapProdukPaketToProdukDao;
|
||||||
import com.jasamedika.medifirst2000.dao.ProdukDao;
|
import com.jasamedika.medifirst2000.dao.ProdukDao;
|
||||||
|
import com.jasamedika.medifirst2000.entities.MapProdukPaket;
|
||||||
import com.jasamedika.medifirst2000.entities.MapProdukPaketToProduk;
|
import com.jasamedika.medifirst2000.entities.MapProdukPaketToProduk;
|
||||||
import com.jasamedika.medifirst2000.entities.Produk;
|
import com.jasamedika.medifirst2000.entities.Produk;
|
||||||
import com.jasamedika.medifirst2000.entities.ProdukDto;
|
import com.jasamedika.medifirst2000.entities.ProdukDto;
|
||||||
import com.jasamedika.medifirst2000.exception.ServiceVOException;
|
|
||||||
import com.jasamedika.medifirst2000.service.MapProdukPaketToProdukService;
|
import com.jasamedika.medifirst2000.service.MapProdukPaketToProdukService;
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||||
import com.jasamedika.medifirst2000.vo.MapProdukPaketToProdukVO;
|
import com.jasamedika.medifirst2000.vo.MapProdukPaketToProdukVO;
|
||||||
|
import com.jasamedika.medifirst2000.vo.MapProdukPaketVO;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Salman
|
* @author Salman
|
||||||
@ -29,8 +26,12 @@ import com.jasamedika.medifirst2000.vo.MapProdukPaketToProdukVO;
|
|||||||
@Service
|
@Service
|
||||||
@Transactional
|
@Transactional
|
||||||
public class MapProdukPaketToProdukServiceImpl implements MapProdukPaketToProdukService {
|
public class MapProdukPaketToProdukServiceImpl implements MapProdukPaketToProdukService {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private BaseVoConverter<MapProdukPaketToProdukVO, MapProdukPaketToProduk> mapProdukPaketConverter;
|
private BaseVoConverter<MapProdukPaketVO, MapProdukPaket> mapProdukPaketConverter;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private BaseVoConverter<MapProdukPaketToProdukVO, MapProdukPaketToProduk> mapPaketProdukConverter;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private MapProdukPaketToProdukDao mapProdukPaketToProdukDao;
|
private MapProdukPaketToProdukDao mapProdukPaketToProdukDao;
|
||||||
@ -41,16 +42,11 @@ public class MapProdukPaketToProdukServiceImpl implements MapProdukPaketToProduk
|
|||||||
@Override
|
@Override
|
||||||
public void save(MapProdukPaketToProdukVO vo) {
|
public void save(MapProdukPaketToProdukVO vo) {
|
||||||
MapProdukPaketToProduk model = new MapProdukPaketToProduk();
|
MapProdukPaketToProduk model = new MapProdukPaketToProduk();
|
||||||
model = mapProdukPaketConverter.transferVOToModel(vo, model);
|
model = mapPaketProdukConverter.transferVOToModel(vo, model);
|
||||||
{
|
{
|
||||||
Produk paket = new Produk();
|
MapProdukPaket mapProdukPaket = new MapProdukPaket();
|
||||||
paket.setId(vo.getPaket().getId());
|
mapProdukPaket.setNoRec(vo.getProdukPaket().getNoRec());
|
||||||
model.setPaket(paket);
|
model.setProdukPaket(mapProdukPaket);
|
||||||
}
|
|
||||||
{
|
|
||||||
Produk produkPaket = new Produk();
|
|
||||||
produkPaket.setId(vo.getProdukPaket().getId());
|
|
||||||
model.setProdukPaket(produkPaket);
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
Produk produk = new Produk();
|
Produk produk = new Produk();
|
||||||
@ -63,72 +59,11 @@ public class MapProdukPaketToProdukServiceImpl implements MapProdukPaketToProduk
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<MapProdukPaketToProdukVO> get() {
|
public List<MapProdukPaketToProdukVO> get() {
|
||||||
List<MapProdukPaketToProduk> models = mapProdukPaketToProdukDao.findAll();
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(models)) {
|
|
||||||
Set<Integer> setIdPaket = models.stream().map(MapProdukPaketToProduk::getPaketId)
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
List<Integer> listIdPaket = new ArrayList<>(setIdPaket);
|
|
||||||
List<Produk> listPaket = produkDao.findAllByIds(listIdPaket);
|
|
||||||
Set<Integer> setIdProdukPaket = models.stream().map(MapProdukPaketToProduk::getProdukPaketId)
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
List<Integer> listIdProdukPaket = new ArrayList<>(setIdProdukPaket);
|
|
||||||
List<Produk> listProdukPaket = produkDao.findAllByIds(listIdProdukPaket);
|
|
||||||
Set<Integer> setIdProduk = models.stream().map(MapProdukPaketToProduk::getProdukId)
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
List<Integer> listIdProduk = new ArrayList<>(setIdProduk);
|
|
||||||
List<Produk> listProduk = produkDao.findAllByIds(listIdProduk);
|
|
||||||
List<MapProdukPaketToProdukVO> result = models.stream()
|
|
||||||
.map(m -> mapProdukPaketConverter.transferModelToVO(m, new MapProdukPaketToProdukVO()))
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
result.forEach(r -> {
|
|
||||||
Optional<Produk> paket = listPaket.stream().filter(p -> p.getId().equals(r.getPaketId())).findFirst();
|
|
||||||
paket.ifPresent(
|
|
||||||
p -> r.setPaket(ProdukDto.builder().id(p.getId()).namaProduk(p.getNamaProduk()).build()));
|
|
||||||
Optional<Produk> produkPaket = listProdukPaket.stream()
|
|
||||||
.filter(p -> p.getId().equals(r.getProdukPaketId())).findFirst();
|
|
||||||
produkPaket.ifPresent(
|
|
||||||
p -> r.setProdukPaket(ProdukDto.builder().id(p.getId()).namaProduk(p.getNamaProduk()).build()));
|
|
||||||
Optional<Produk> produk = listProduk.stream().filter(p -> p.getId().equals(r.getProdukId()))
|
|
||||||
.findFirst();
|
|
||||||
produk.ifPresent(
|
|
||||||
p -> r.setProduk(ProdukDto.builder().id(p.getId()).namaProduk(p.getNamaProduk()).build()));
|
|
||||||
});
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<MapProdukPaketToProdukVO> get(Integer paketId) {
|
public List<MapProdukPaketToProdukVO> get(Integer paketId) {
|
||||||
List<MapProdukPaketToProduk> models = mapProdukPaketToProdukDao.findAllByPaketId(paketId);
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(models)) {
|
|
||||||
Set<Integer> listIdPaket = models.stream().map(MapProdukPaketToProduk::getPaketId)
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
List<Produk> listPaket = produkDao.findAllByIds(new ArrayList<>(listIdPaket));
|
|
||||||
Set<Integer> listIdProdukPaket = models.stream().map(MapProdukPaketToProduk::getProdukPaketId)
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
List<Produk> listProdukPaket = produkDao.findAllByIds(new ArrayList<>(listIdProdukPaket));
|
|
||||||
Set<Integer> listIdProduk = models.stream().map(MapProdukPaketToProduk::getProdukId)
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
List<Produk> listProduk = produkDao.findAllByIds(new ArrayList<>(listIdProduk));
|
|
||||||
List<MapProdukPaketToProdukVO> result = models.stream()
|
|
||||||
.map(m -> mapProdukPaketConverter.transferModelToVO(m, new MapProdukPaketToProdukVO()))
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
result.forEach(r -> {
|
|
||||||
Optional<Produk> paket = listPaket.stream().filter(p -> p.getId().equals(r.getPaketId())).findFirst();
|
|
||||||
paket.ifPresent(
|
|
||||||
p -> r.setPaket(ProdukDto.builder().id(p.getId()).namaProduk(p.getNamaProduk()).build()));
|
|
||||||
Optional<Produk> produkPaket = listProdukPaket.stream()
|
|
||||||
.filter(p -> p.getId().equals(r.getProdukPaketId())).findFirst();
|
|
||||||
produkPaket.ifPresent(
|
|
||||||
p -> r.setProdukPaket(ProdukDto.builder().id(p.getId()).namaProduk(p.getNamaProduk()).build()));
|
|
||||||
Optional<Produk> produk = listProduk.stream().filter(p -> p.getId().equals(r.getProdukId()))
|
|
||||||
.findFirst();
|
|
||||||
produk.ifPresent(
|
|
||||||
p -> r.setProduk(ProdukDto.builder().id(p.getId()).namaProduk(p.getNamaProduk()).build()));
|
|
||||||
});
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -137,13 +72,19 @@ public class MapProdukPaketToProdukServiceImpl implements MapProdukPaketToProduk
|
|||||||
MapProdukPaketToProduk model = mapProdukPaketToProdukDao.findOne(noRec);
|
MapProdukPaketToProduk model = mapProdukPaketToProdukDao.findOne(noRec);
|
||||||
if (CommonUtil.isNullOrEmpty(model))
|
if (CommonUtil.isNullOrEmpty(model))
|
||||||
return null;
|
return null;
|
||||||
MapProdukPaketToProdukVO result = mapProdukPaketConverter.transferModelToVO(model,
|
MapProdukPaketToProdukVO result = mapPaketProdukConverter.transferModelToVO(model,
|
||||||
new MapProdukPaketToProdukVO());
|
new MapProdukPaketToProdukVO());
|
||||||
Produk paket = produkDao.findById(result.getPaketId());
|
MapProdukPaket mapProdukPaket = model.getProdukPaket();
|
||||||
result.setPaket(ProdukDto.builder().id(paket.getId()).namaProduk(paket.getNamaProduk()).build());
|
MapProdukPaketVO mapProdukPaketVO = mapProdukPaketConverter.transferModelToVO(mapProdukPaket,
|
||||||
Produk produkPaket = produkDao.findById(result.getProdukPaketId());
|
new MapProdukPaketVO());
|
||||||
result.setProdukPaket(
|
{
|
||||||
ProdukDto.builder().id(produkPaket.getId()).namaProduk(produkPaket.getNamaProduk()).build());
|
Produk paket = produkDao.findById(mapProdukPaket.getPaket().getId());
|
||||||
|
mapProdukPaketVO.setPaket(ProdukDto.builder().id(paket.getId()).namaProduk(paket.getNamaProduk()).build());
|
||||||
|
Produk produkPaket = produkDao.findById(mapProdukPaket.getProdukPaket().getId());
|
||||||
|
mapProdukPaketVO.setProdukPaket(
|
||||||
|
ProdukDto.builder().id(produkPaket.getId()).namaProduk(produkPaket.getNamaProduk()).build());
|
||||||
|
result.setProdukPaket(mapProdukPaketVO);
|
||||||
|
}
|
||||||
Produk produk = produkDao.findById(result.getProdukId());
|
Produk produk = produkDao.findById(result.getProdukId());
|
||||||
result.setProduk(ProdukDto.builder().id(produk.getId()).namaProduk(produk.getNamaProduk()).build());
|
result.setProduk(ProdukDto.builder().id(produk.getId()).namaProduk(produk.getNamaProduk()).build());
|
||||||
return result;
|
return result;
|
||||||
@ -157,16 +98,6 @@ public class MapProdukPaketToProdukServiceImpl implements MapProdukPaketToProduk
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean exists(MapProdukPaketToProdukVO vo) {
|
public boolean exists(MapProdukPaketToProdukVO vo) {
|
||||||
List<MapProdukPaketToProduk> models;
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(vo.getNoRec())) {
|
|
||||||
models = mapProdukPaketToProdukDao.findByPaketIdAndProdukPaketIdAndNoRecNot(vo.getProduk().getId(),
|
|
||||||
vo.getProdukPaket().getId(), vo.getNoRec());
|
|
||||||
} else {
|
|
||||||
models = mapProdukPaketToProdukDao.findByPaketIdAndProdukPaketId(vo.getProduk().getId(),
|
|
||||||
vo.getProdukPaket().getId());
|
|
||||||
}
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(models))
|
|
||||||
throw new ServiceVOException("Mapping sudah tersedia");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -569,9 +569,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
&& CommonUtil.isNotNullOrEmpty(d.get("idPaketLayanan"))
|
&& CommonUtil.isNotNullOrEmpty(d.get("idPaketLayanan"))
|
||||||
&& Integer.valueOf(d.get("idProduk").toString()).equals(d.get("idPaketLayanan")))
|
&& Integer.valueOf(d.get("idProduk").toString()).equals(d.get("idPaketLayanan")))
|
||||||
|| (CommonUtil.isNotNullOrEmpty(d.get("idVoucherLayanan"))
|
|| (CommonUtil.isNotNullOrEmpty(d.get("idVoucherLayanan"))
|
||||||
&& Boolean.parseBoolean(d.get("isPaket").toString())
|
&& Boolean.parseBoolean(d.get("isPaket").toString()) && CommonUtil
|
||||||
&& CommonUtil.isNotNullOrEmpty(d.get("idPaketLayanan")) && !Integer
|
.isNotNullOrEmpty(d.get("idPaketLayanan"))
|
||||||
.valueOf(d.get("idProduk").toString()).equals(d.get("idPaketLayanan"))))
|
&& !Integer.valueOf(d.get("idProduk").toString()).equals(d.get("idPaketLayanan"))))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
/*
|
/*
|
||||||
* Set persen jasa dan harga jasa pasien bpjs di ibs, icu
|
* Set persen jasa dan harga jasa pasien bpjs di ibs, icu
|
||||||
@ -581,7 +581,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
/*
|
/*
|
||||||
* Mapping set awal persentase jasa remunerasi dan harga jasa remunerasi
|
* Mapping set awal persentase jasa remunerasi dan harga jasa remunerasi
|
||||||
*/
|
*/
|
||||||
for (Map<String, Object> d : listRatedPay)
|
for (Map<String, Object> d : listData)
|
||||||
if (DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")) && CommonUtil.isNotNullOrEmpty(d.get("totalDiskon"))
|
if (DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")) && CommonUtil.isNotNullOrEmpty(d.get("totalDiskon"))
|
||||||
&& Double.parseDouble(d.get("totalDiskon").toString()) > 0.0
|
&& Double.parseDouble(d.get("totalDiskon").toString()) > 0.0
|
||||||
&& CommonUtil.isNullOrEmpty(d.get("idSayatan"))) {
|
&& CommonUtil.isNullOrEmpty(d.get("idSayatan"))) {
|
||||||
@ -682,7 +682,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
* Alokasi data diambil terlebih dahulu untuk kelompok BPJS, Jaminan
|
* Alokasi data diambil terlebih dahulu untuk kelompok BPJS, Jaminan
|
||||||
* Kemenkes
|
* Kemenkes
|
||||||
*/
|
*/
|
||||||
List<Map<String, Object>> rawDataBpjs0 = listRatedPay
|
List<Map<String, Object>> rawDataBpjs0 = listData
|
||||||
.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien")) && Arrays
|
.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien")) && Arrays
|
||||||
.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString())))
|
.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString())))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
@ -996,7 +996,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
* nonshift
|
* nonshift
|
||||||
*/
|
*/
|
||||||
List<Map<String, Object>> listDataJamKerja = new ArrayList<>();
|
List<Map<String, Object>> listDataJamKerja = new ArrayList<>();
|
||||||
for (Map<String, Object> d : listRatedPay) {
|
for (Map<String, Object> d : listData) {
|
||||||
if (CommonUtil.isNotNullOrEmpty(d.get("tglPelayanan"))) {
|
if (CommonUtil.isNotNullOrEmpty(d.get("tglPelayanan"))) {
|
||||||
LocalDate tglPelayanan = ((Date) d.get("tglPelayanan")).toInstant().atZone(ZoneId.systemDefault())
|
LocalDate tglPelayanan = ((Date) d.get("tglPelayanan")).toInstant().atZone(ZoneId.systemDefault())
|
||||||
.toLocalDate();
|
.toLocalDate();
|
||||||
@ -1028,7 +1028,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
* Asumsi jam kerja dokter nonshift
|
* Asumsi jam kerja dokter nonshift
|
||||||
*/
|
*/
|
||||||
List<Map<String, Object>> listDataLuarJamKerja = new ArrayList<>();
|
List<Map<String, Object>> listDataLuarJamKerja = new ArrayList<>();
|
||||||
for (Map<String, Object> d : listRatedPay) {
|
for (Map<String, Object> d : listData) {
|
||||||
if (CommonUtil.isNotNullOrEmpty(d.get("tglPelayanan"))) {
|
if (CommonUtil.isNotNullOrEmpty(d.get("tglPelayanan"))) {
|
||||||
LocalDate tglPelayanan = ((Date) d.get("tglPelayanan")).toInstant().atZone(ZoneId.systemDefault())
|
LocalDate tglPelayanan = ((Date) d.get("tglPelayanan")).toInstant().atZone(ZoneId.systemDefault())
|
||||||
.toLocalDate();
|
.toLocalDate();
|
||||||
@ -1486,10 +1486,11 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
.sorted(Comparator.comparing(o -> o.get("namaProduk").toString())).collect(Collectors.toList());
|
.sorted(Comparator.comparing(o -> o.get("namaProduk").toString())).collect(Collectors.toList());
|
||||||
result.put("klaim-mpp", listPelayananKlaimMpp);
|
result.put("klaim-mpp", listPelayananKlaimMpp);
|
||||||
}
|
}
|
||||||
{
|
// {
|
||||||
List<Map<String, Object>> listPelayananFixedPay = setPelayananFixedPay(listFixedPay);
|
// List<Map<String, Object>> listPelayananFixedPay =
|
||||||
result.put("fixed-pay", listPelayananFixedPay);
|
// setPelayananFixedPay(listFixedPay);
|
||||||
}
|
// result.put("fixed-pay", listPelayananFixedPay);
|
||||||
|
// }
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1509,22 +1510,19 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
&& CommonUtil.isNotNullOrEmpty(d.get("idPaketLayanan"))
|
&& CommonUtil.isNotNullOrEmpty(d.get("idPaketLayanan"))
|
||||||
&& Integer.valueOf(d.get("idProduk").toString()).equals(d.get("idPaketLayanan"))))
|
&& Integer.valueOf(d.get("idProduk").toString()).equals(d.get("idPaketLayanan"))))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
Set<String> listIdVoucherKepalaPaket = listKepalaPaket.stream().map(p -> p.get("idVoucherLayanan").toString())
|
Set<String> listIdVoucherKepalaPaket = listKepalaPaket.stream()
|
||||||
.collect(Collectors.toSet());
|
.map(p -> p.get("idVoucherLayanan").toString()).collect(Collectors.toSet());
|
||||||
List<Map<String, Object>> pelayananKepalaPaket = voucherPaketDao
|
List<Map<String, Object>> pelayananKepalaPaket = voucherPaketDao
|
||||||
.findPelayananPaket(new ArrayList<>(listIdVoucherKepalaPaket));
|
.findPelayananPaket(new ArrayList<>(listIdVoucherKepalaPaket));
|
||||||
List<Integer> listIdEntri = pelayananKepalaPaket.stream()
|
Set<Integer> listIdEntri = pelayananKepalaPaket.stream()
|
||||||
.filter(kp -> TINDAKAN_UTAMA.name().equals(kp.get("jenisMapping").toString()))
|
.filter(kp -> TINDAKAN_UTAMA.name().equals(kp.get("jenisMapping").toString()))
|
||||||
.map(kp -> Integer.valueOf(kp.get("idProduk").toString()))
|
.map(kp -> Integer.valueOf(kp.get("idProduk").toString())).collect(Collectors.toSet());
|
||||||
.collect(Collectors.toList());
|
|
||||||
List<Map<String, Object>> listDataUtama = listData.stream()
|
List<Map<String, Object>> listDataUtama = listData.stream()
|
||||||
.filter(d -> listIdEntri.contains(Integer.parseInt(d.get("idProduk").toString())))
|
.filter(d -> listIdEntri.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
listIdVoucherKepalaPaket.forEach(idVoucher -> {
|
listIdVoucherKepalaPaket.forEach(idVoucher -> {
|
||||||
List<Map<String, Object>> dataUtama = listDataUtama.stream()
|
List<Map<String, Object>> dataUtama = listDataUtama.stream()
|
||||||
.filter(d -> idVoucher.equals(d.get("idVoucherLayanan")))
|
.filter(d -> idVoucher.equals(d.get("idVoucherLayanan"))).collect(Collectors.toList());
|
||||||
.collect(Collectors.toList());
|
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
@ -2586,12 +2584,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
List<Integer> idProdukPaketDto = dtoList.stream().map(TagihanPendaftaranDto::getIdProduk)
|
List<Integer> idProdukPaketDto = dtoList.stream().map(TagihanPendaftaranDto::getIdProduk)
|
||||||
.filter(dto -> !dto.equals(voucher.getPaketId())).collect(Collectors.toList());
|
.filter(dto -> !dto.equals(voucher.getPaketId())).collect(Collectors.toList());
|
||||||
mappingProdukPaket.stream().filter(d -> idProdukPaketDto.contains(d.getProdukId())).forEach(d -> {
|
mappingProdukPaket.stream().filter(d -> idProdukPaketDto.contains(d.getProdukId())).forEach(d -> {
|
||||||
|
Produk produkPaket = d.getProdukPaket().getProdukPaket();
|
||||||
List<Map<String, Object>> tarifProdukPaket = hargaNettoProdukByKelasDao
|
List<Map<String, Object>> tarifProdukPaket = hargaNettoProdukByKelasDao
|
||||||
.checkExisting(voucher.getKelasId(), d.getProdukPaketId());
|
.checkExisting(voucher.getKelasId(), produkPaket.getId());
|
||||||
if (CommonUtil.isNullOrEmpty(tarifProdukPaket) && tarifProdukPaket.isEmpty())
|
if (CommonUtil.isNullOrEmpty(tarifProdukPaket) && tarifProdukPaket.isEmpty())
|
||||||
throw new ServiceVOException("Harga tarif tidak ditemukan untuk produk "
|
throw new ServiceVOException(
|
||||||
+ d.getProduk().getNamaProduk() + " (" + d.getProdukPaket().getNamaProduk() + ") dan kelas "
|
"Harga tarif tidak ditemukan untuk produk " + d.getProduk().getNamaProduk() + " ("
|
||||||
+ voucher.getKelas().getNamaKelas());
|
+ produkPaket.getNamaProduk() + ") dan kelas " + voucher.getKelas().getNamaKelas());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
|||||||
@ -0,0 +1,52 @@
|
|||||||
|
package com.jasamedika.medifirst2000.entities;
|
||||||
|
|
||||||
|
import com.jasamedika.medifirst2000.base.BaseTransaction;
|
||||||
|
import com.jasamedika.medifirst2000.enums.JenisMappingProdukPaket;
|
||||||
|
import com.jasamedika.medifirst2000.helper.Caption;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
import static javax.persistence.EnumType.STRING;
|
||||||
|
import static javax.persistence.FetchType.LAZY;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Salman Manoe
|
||||||
|
* @version 1.0.0
|
||||||
|
* @since 21 Sep 2023
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Entity
|
||||||
|
@Table(name = "mapprodukpaket_m", uniqueConstraints = {
|
||||||
|
@UniqueConstraint(columnNames = { "paketfk", "produkPaketfk" }), })
|
||||||
|
public class MapProdukPaket extends BaseTransaction implements Serializable {
|
||||||
|
private static final long serialVersionUID = 8425001074293272466L;
|
||||||
|
|
||||||
|
@ManyToOne(fetch = LAZY)
|
||||||
|
@JoinColumn(name = "paketfk")
|
||||||
|
@NotNull(message = "Paket tidak boleh kosong")
|
||||||
|
@Caption(value = "Paket")
|
||||||
|
private Produk paket;
|
||||||
|
|
||||||
|
@Column(name = "paketfk", insertable = false, updatable = false, nullable = false)
|
||||||
|
private Integer paketId;
|
||||||
|
|
||||||
|
@ManyToOne(fetch = LAZY)
|
||||||
|
@JoinColumn(name = "produkpaketfk")
|
||||||
|
@NotNull(message = "Produk paket tidak boleh kosong")
|
||||||
|
@Caption(value = "Produk paket")
|
||||||
|
private Produk produkPaket;
|
||||||
|
|
||||||
|
@Column(name = "produkpaketfk", insertable = false, updatable = false, nullable = false)
|
||||||
|
private Integer produkPaketId;
|
||||||
|
|
||||||
|
private Integer jumlah;
|
||||||
|
|
||||||
|
@Column(length = 100)
|
||||||
|
@Enumerated(STRING)
|
||||||
|
private JenisMappingProdukPaket jenisMapping;
|
||||||
|
}
|
||||||
@ -1,7 +1,6 @@
|
|||||||
package com.jasamedika.medifirst2000.entities;
|
package com.jasamedika.medifirst2000.entities;
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.base.BaseTransaction;
|
import com.jasamedika.medifirst2000.base.BaseTransaction;
|
||||||
import com.jasamedika.medifirst2000.enums.JenisMappingProdukPaket;
|
|
||||||
import com.jasamedika.medifirst2000.helper.Caption;
|
import com.jasamedika.medifirst2000.helper.Caption;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
@ -9,7 +8,6 @@ import lombok.Setter;
|
|||||||
import javax.persistence.*;
|
import javax.persistence.*;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
import static javax.persistence.EnumType.STRING;
|
|
||||||
import static javax.persistence.FetchType.LAZY;
|
import static javax.persistence.FetchType.LAZY;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -20,29 +18,18 @@ import static javax.persistence.FetchType.LAZY;
|
|||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "mapprodukpakettoproduk_m", uniqueConstraints = {
|
@Table(name = "mapprodukpakettoproduk_m")
|
||||||
@UniqueConstraint(columnNames = { "paketfk", "produkpaketfk", "produkfk" }),
|
|
||||||
@UniqueConstraint(columnNames = { "paketfk", "produkfk" }), })
|
|
||||||
public class MapProdukPaketToProduk extends BaseTransaction {
|
public class MapProdukPaketToProduk extends BaseTransaction {
|
||||||
private static final long serialVersionUID = -7737789789022355198L;
|
private static final long serialVersionUID = 8688145804014486942L;
|
||||||
|
|
||||||
@ManyToOne(fetch = LAZY)
|
@ManyToOne(fetch = LAZY)
|
||||||
@JoinColumn(name = "paketfk")
|
@JoinColumn(name = "mappaketfk")
|
||||||
@NotNull(message = "Paket tidak boleh kosong")
|
@NotNull(message = "Mapping produk paket tidak boleh kosong")
|
||||||
@Caption(value = "Paket")
|
@Caption(value = "Mapping produk paket")
|
||||||
private Produk paket;
|
private MapProdukPaket produkPaket;
|
||||||
|
|
||||||
@Column(name = "paketfk", insertable = false, updatable = false, nullable = false)
|
@Column(name = "mappaketfk", insertable = false, updatable = false, nullable = false)
|
||||||
private Integer paketId;
|
private String produkPaketId;
|
||||||
|
|
||||||
@ManyToOne(fetch = LAZY)
|
|
||||||
@JoinColumn(name = "produkpaketfk")
|
|
||||||
@NotNull(message = "Produk paket tidak boleh kosong")
|
|
||||||
@Caption(value = "Produk paket")
|
|
||||||
private Produk produkPaket;
|
|
||||||
|
|
||||||
@Column(name = "produkpaketfk", insertable = false, updatable = false, nullable = false)
|
|
||||||
private Integer produkPaketId;
|
|
||||||
|
|
||||||
@ManyToOne(fetch = LAZY)
|
@ManyToOne(fetch = LAZY)
|
||||||
@JoinColumn(name = "produkfk")
|
@JoinColumn(name = "produkfk")
|
||||||
@ -52,8 +39,4 @@ public class MapProdukPaketToProduk extends BaseTransaction {
|
|||||||
|
|
||||||
@Column(name = "produkfk", insertable = false, updatable = false, nullable = false)
|
@Column(name = "produkfk", insertable = false, updatable = false, nullable = false)
|
||||||
private Integer produkId;
|
private Integer produkId;
|
||||||
|
|
||||||
@Column(length = 100)
|
|
||||||
@Enumerated(STRING)
|
|
||||||
private JenisMappingProdukPaket jenisMapping;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonInclude;
|
|||||||
import com.fasterxml.jackson.annotation.JsonInclude.Include;
|
import com.fasterxml.jackson.annotation.JsonInclude.Include;
|
||||||
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
|
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
|
||||||
import com.jasamedika.medifirst2000.entities.ProdukDto;
|
import com.jasamedika.medifirst2000.entities.ProdukDto;
|
||||||
import com.jasamedika.medifirst2000.enums.JenisMappingProdukPaket;
|
|
||||||
import com.jasamedika.medifirst2000.helper.Caption;
|
import com.jasamedika.medifirst2000.helper.Caption;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
@ -18,20 +17,11 @@ import javax.validation.constraints.NotNull;
|
|||||||
@Setter
|
@Setter
|
||||||
@JsonInclude(Include.NON_NULL)
|
@JsonInclude(Include.NON_NULL)
|
||||||
public class MapProdukPaketToProdukVO extends BaseTransactionVO {
|
public class MapProdukPaketToProdukVO extends BaseTransactionVO {
|
||||||
|
@NotNull(message = "Mapping produk paket tidak boleh kosong")
|
||||||
|
@Caption(value = "Mapping produk paket")
|
||||||
|
private MapProdukPaketVO produkPaket;
|
||||||
|
|
||||||
@NotNull(message = "Paket tidak boleh kosong")
|
private String produkPaketId;
|
||||||
@Caption(value = "Paket")
|
|
||||||
private ProdukDto paket;
|
|
||||||
|
|
||||||
@Caption(value = "ID Paket")
|
|
||||||
private Integer paketId;
|
|
||||||
|
|
||||||
@NotNull(message = "Produk paket tidak boleh kosong")
|
|
||||||
@Caption(value = "Produk Paket")
|
|
||||||
private ProdukDto produkPaket;
|
|
||||||
|
|
||||||
@Caption(value = "ID Produk Paket")
|
|
||||||
private Integer produkPaketId;
|
|
||||||
|
|
||||||
@NotNull(message = "Produk tidak boleh kosong")
|
@NotNull(message = "Produk tidak boleh kosong")
|
||||||
@Caption(value = "Produk")
|
@Caption(value = "Produk")
|
||||||
@ -39,7 +29,4 @@ public class MapProdukPaketToProdukVO extends BaseTransactionVO {
|
|||||||
|
|
||||||
@Caption(value = "ID Produk")
|
@Caption(value = "ID Produk")
|
||||||
private Integer produkId;
|
private Integer produkId;
|
||||||
|
|
||||||
private JenisMappingProdukPaket jenisMapping;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -0,0 +1,41 @@
|
|||||||
|
package com.jasamedika.medifirst2000.vo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
|
||||||
|
import com.jasamedika.medifirst2000.entities.ProdukDto;
|
||||||
|
import com.jasamedika.medifirst2000.enums.JenisMappingProdukPaket;
|
||||||
|
import com.jasamedika.medifirst2000.helper.Caption;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Salman Manoe
|
||||||
|
* @version 1.0.0
|
||||||
|
* @since 21 Sep 2023
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||||
|
public class MapProdukPaketVO extends BaseTransactionVO {
|
||||||
|
|
||||||
|
@NotNull(message = "Paket tidak boleh kosong")
|
||||||
|
@Caption(value = "Paket")
|
||||||
|
private ProdukDto paket;
|
||||||
|
|
||||||
|
@Caption(value = "ID Paket")
|
||||||
|
private Integer paketId;
|
||||||
|
|
||||||
|
@NotNull(message = "Produk paket tidak boleh kosong")
|
||||||
|
@Caption(value = "Produk Paket")
|
||||||
|
private ProdukDto produkPaket;
|
||||||
|
|
||||||
|
@Caption(value = "ID Produk Paket")
|
||||||
|
private Integer produkPaketId;
|
||||||
|
|
||||||
|
private Integer jumlah;
|
||||||
|
|
||||||
|
private JenisMappingProdukPaket jenisMapping;
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user