diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapProdukPaketDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapProdukPaketDao.java new file mode 100644 index 00000000..915b8e55 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapProdukPaketDao.java @@ -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 { +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapProdukPaketToProdukDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapProdukPaketToProdukDao.java index 6dd9346f..5458b388 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapProdukPaketToProdukDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapProdukPaketToProdukDao.java @@ -2,6 +2,8 @@ package com.jasamedika.medifirst2000.dao; import com.jasamedika.medifirst2000.entities.MapProdukPaketToProduk; 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; @@ -16,26 +18,7 @@ public interface MapProdukPaketToProdukDao extends JpaRepository findAllByPaketId(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 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 findByPaketIdAndProdukPaketIdAndNoRecNot(Integer paketId, Integer produkPaketId, - String noRec); + @Query("select mpaket from MapProdukPaketToProduk mpaket " + "inner join mpaket.produkPaket mproduk " + + "where mproduk.paketId = :paketId") + List findAllByPaketId(@Param("paketId") Integer paketId); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/VoucherPaketDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/VoucherPaketDao.java index f65f6c9a..35615af9 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/VoucherPaketDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/VoucherPaketDao.java @@ -23,10 +23,10 @@ public interface VoucherPaketDao extends JpaRepository { */ VoucherPaket findByKode(String kode); - @Query("select new Map(vp.noRec as idVoucher,vp.paketId as idPaket," - + "mpaket.produkId as idProduk,mpaket.produkPaketId as idProdukPaket," - + "mpaket.jenisMapping as jenisMapping) " + "from VoucherPaket vp, MapProdukPaketToProduk mpaket " - + "where vp.paketId = mpaket.paketId " + "and vp.isSelesai is true and vp.isBatal is false " + @Query("select new Map(vp.noRec as idVoucher,vp.paketId as idPaket," + "mpaket.produkId as idProduk," + + "mproduk.produkPaketId as idProdukPaket," + "mproduk.jenisMapping as jenisMapping) " + + "from MapProdukPaketToProduk mpaket " + "inner join mpaket.produkPaket mproduk, VoucherPaket vp " + + "where vp.paketId = mproduk.paketId " + "and vp.isSelesai is true and vp.isBatal is false " + "and vp.noRec in (:listNorec)") List> findPelayananPaket(@Param("listNorec") List listIdVoucherPaket); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapProdukPaketToProdukServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapProdukPaketToProdukServiceImpl.java index 866cf0ae..f0562017 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapProdukPaketToProdukServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapProdukPaketToProdukServiceImpl.java @@ -1,25 +1,22 @@ 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.dao.MapProdukPaketToProdukDao; import com.jasamedika.medifirst2000.dao.ProdukDao; +import com.jasamedika.medifirst2000.entities.MapProdukPaket; import com.jasamedika.medifirst2000.entities.MapProdukPaketToProduk; import com.jasamedika.medifirst2000.entities.Produk; import com.jasamedika.medifirst2000.entities.ProdukDto; -import com.jasamedika.medifirst2000.exception.ServiceVOException; import com.jasamedika.medifirst2000.service.MapProdukPaketToProdukService; import com.jasamedika.medifirst2000.util.CommonUtil; 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 @@ -29,8 +26,12 @@ import com.jasamedika.medifirst2000.vo.MapProdukPaketToProdukVO; @Service @Transactional public class MapProdukPaketToProdukServiceImpl implements MapProdukPaketToProdukService { + @Autowired - private BaseVoConverter mapProdukPaketConverter; + private BaseVoConverter mapProdukPaketConverter; + + @Autowired + private BaseVoConverter mapPaketProdukConverter; @Autowired private MapProdukPaketToProdukDao mapProdukPaketToProdukDao; @@ -41,16 +42,11 @@ public class MapProdukPaketToProdukServiceImpl implements MapProdukPaketToProduk @Override public void save(MapProdukPaketToProdukVO vo) { MapProdukPaketToProduk model = new MapProdukPaketToProduk(); - model = mapProdukPaketConverter.transferVOToModel(vo, model); + model = mapPaketProdukConverter.transferVOToModel(vo, model); { - Produk paket = new Produk(); - paket.setId(vo.getPaket().getId()); - model.setPaket(paket); - } - { - Produk produkPaket = new Produk(); - produkPaket.setId(vo.getProdukPaket().getId()); - model.setProdukPaket(produkPaket); + MapProdukPaket mapProdukPaket = new MapProdukPaket(); + mapProdukPaket.setNoRec(vo.getProdukPaket().getNoRec()); + model.setProdukPaket(mapProdukPaket); } { Produk produk = new Produk(); @@ -63,72 +59,11 @@ public class MapProdukPaketToProdukServiceImpl implements MapProdukPaketToProduk @Override public List get() { - List models = mapProdukPaketToProdukDao.findAll(); - if (CommonUtil.isNotNullOrEmpty(models)) { - Set setIdPaket = models.stream().map(MapProdukPaketToProduk::getPaketId) - .collect(Collectors.toSet()); - List listIdPaket = new ArrayList<>(setIdPaket); - List listPaket = produkDao.findAllByIds(listIdPaket); - Set setIdProdukPaket = models.stream().map(MapProdukPaketToProduk::getProdukPaketId) - .collect(Collectors.toSet()); - List listIdProdukPaket = new ArrayList<>(setIdProdukPaket); - List listProdukPaket = produkDao.findAllByIds(listIdProdukPaket); - Set setIdProduk = models.stream().map(MapProdukPaketToProduk::getProdukId) - .collect(Collectors.toSet()); - List listIdProduk = new ArrayList<>(setIdProduk); - List listProduk = produkDao.findAllByIds(listIdProduk); - List result = models.stream() - .map(m -> mapProdukPaketConverter.transferModelToVO(m, new MapProdukPaketToProdukVO())) - .collect(Collectors.toList()); - result.forEach(r -> { - Optional 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 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 = 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<>(); } @Override public List get(Integer paketId) { - List models = mapProdukPaketToProdukDao.findAllByPaketId(paketId); - if (CommonUtil.isNotNullOrEmpty(models)) { - Set listIdPaket = models.stream().map(MapProdukPaketToProduk::getPaketId) - .collect(Collectors.toSet()); - List listPaket = produkDao.findAllByIds(new ArrayList<>(listIdPaket)); - Set listIdProdukPaket = models.stream().map(MapProdukPaketToProduk::getProdukPaketId) - .collect(Collectors.toSet()); - List listProdukPaket = produkDao.findAllByIds(new ArrayList<>(listIdProdukPaket)); - Set listIdProduk = models.stream().map(MapProdukPaketToProduk::getProdukId) - .collect(Collectors.toSet()); - List listProduk = produkDao.findAllByIds(new ArrayList<>(listIdProduk)); - List result = models.stream() - .map(m -> mapProdukPaketConverter.transferModelToVO(m, new MapProdukPaketToProdukVO())) - .collect(Collectors.toList()); - result.forEach(r -> { - Optional 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 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 = 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<>(); } @@ -137,13 +72,19 @@ public class MapProdukPaketToProdukServiceImpl implements MapProdukPaketToProduk MapProdukPaketToProduk model = mapProdukPaketToProdukDao.findOne(noRec); if (CommonUtil.isNullOrEmpty(model)) return null; - MapProdukPaketToProdukVO result = mapProdukPaketConverter.transferModelToVO(model, + MapProdukPaketToProdukVO result = mapPaketProdukConverter.transferModelToVO(model, new MapProdukPaketToProdukVO()); - Produk paket = produkDao.findById(result.getPaketId()); - result.setPaket(ProdukDto.builder().id(paket.getId()).namaProduk(paket.getNamaProduk()).build()); - Produk produkPaket = produkDao.findById(result.getProdukPaketId()); - result.setProdukPaket( - ProdukDto.builder().id(produkPaket.getId()).namaProduk(produkPaket.getNamaProduk()).build()); + MapProdukPaket mapProdukPaket = model.getProdukPaket(); + MapProdukPaketVO mapProdukPaketVO = mapProdukPaketConverter.transferModelToVO(mapProdukPaket, + new MapProdukPaketVO()); + { + 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()); result.setProduk(ProdukDto.builder().id(produk.getId()).namaProduk(produk.getNamaProduk()).build()); return result; @@ -157,16 +98,6 @@ public class MapProdukPaketToProdukServiceImpl implements MapProdukPaketToProduk @Override public boolean exists(MapProdukPaketToProdukVO vo) { - List 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; } } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java index fb3c2aa0..beea14d8 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java @@ -569,9 +569,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel && CommonUtil.isNotNullOrEmpty(d.get("idPaketLayanan")) && Integer.valueOf(d.get("idProduk").toString()).equals(d.get("idPaketLayanan"))) || (CommonUtil.isNotNullOrEmpty(d.get("idVoucherLayanan")) - && Boolean.parseBoolean(d.get("isPaket").toString()) - && CommonUtil.isNotNullOrEmpty(d.get("idPaketLayanan")) && !Integer - .valueOf(d.get("idProduk").toString()).equals(d.get("idPaketLayanan")))) + && Boolean.parseBoolean(d.get("isPaket").toString()) && CommonUtil + .isNotNullOrEmpty(d.get("idPaketLayanan")) + && !Integer.valueOf(d.get("idProduk").toString()).equals(d.get("idPaketLayanan")))) .collect(Collectors.toList()); /* * 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 */ - for (Map d : listRatedPay) + for (Map d : listData) if (DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")) && CommonUtil.isNotNullOrEmpty(d.get("totalDiskon")) && Double.parseDouble(d.get("totalDiskon").toString()) > 0.0 && 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 * Kemenkes */ - List> rawDataBpjs0 = listRatedPay + List> rawDataBpjs0 = listData .stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien")) && Arrays .asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))) .collect(Collectors.toList()); @@ -996,7 +996,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * nonshift */ List> listDataJamKerja = new ArrayList<>(); - for (Map d : listRatedPay) { + for (Map d : listData) { if (CommonUtil.isNotNullOrEmpty(d.get("tglPelayanan"))) { LocalDate tglPelayanan = ((Date) d.get("tglPelayanan")).toInstant().atZone(ZoneId.systemDefault()) .toLocalDate(); @@ -1028,7 +1028,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * Asumsi jam kerja dokter nonshift */ List> listDataLuarJamKerja = new ArrayList<>(); - for (Map d : listRatedPay) { + for (Map d : listData) { if (CommonUtil.isNotNullOrEmpty(d.get("tglPelayanan"))) { LocalDate tglPelayanan = ((Date) d.get("tglPelayanan")).toInstant().atZone(ZoneId.systemDefault()) .toLocalDate(); @@ -1486,10 +1486,11 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel .sorted(Comparator.comparing(o -> o.get("namaProduk").toString())).collect(Collectors.toList()); result.put("klaim-mpp", listPelayananKlaimMpp); } - { - List> listPelayananFixedPay = setPelayananFixedPay(listFixedPay); - result.put("fixed-pay", listPelayananFixedPay); - } + // { + // List> listPelayananFixedPay = + // setPelayananFixedPay(listFixedPay); + // result.put("fixed-pay", listPelayananFixedPay); + // } return result; } @@ -1509,22 +1510,19 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel && CommonUtil.isNotNullOrEmpty(d.get("idPaketLayanan")) && Integer.valueOf(d.get("idProduk").toString()).equals(d.get("idPaketLayanan")))) .collect(Collectors.toList()); - Set listIdVoucherKepalaPaket = listKepalaPaket.stream().map(p -> p.get("idVoucherLayanan").toString()) - .collect(Collectors.toSet()); + Set listIdVoucherKepalaPaket = listKepalaPaket.stream() + .map(p -> p.get("idVoucherLayanan").toString()).collect(Collectors.toSet()); List> pelayananKepalaPaket = voucherPaketDao .findPelayananPaket(new ArrayList<>(listIdVoucherKepalaPaket)); - List listIdEntri = pelayananKepalaPaket.stream() + Set listIdEntri = pelayananKepalaPaket.stream() .filter(kp -> TINDAKAN_UTAMA.name().equals(kp.get("jenisMapping").toString())) - .map(kp -> Integer.valueOf(kp.get("idProduk").toString())) - .collect(Collectors.toList()); + .map(kp -> Integer.valueOf(kp.get("idProduk").toString())).collect(Collectors.toSet()); List> listDataUtama = listData.stream() .filter(d -> listIdEntri.contains(Integer.parseInt(d.get("idProduk").toString()))) .collect(Collectors.toList()); listIdVoucherKepalaPaket.forEach(idVoucher -> { List> dataUtama = listDataUtama.stream() - .filter(d -> idVoucher.equals(d.get("idVoucherLayanan"))) - .collect(Collectors.toList()); - + .filter(d -> idVoucher.equals(d.get("idVoucherLayanan"))).collect(Collectors.toList()); }); } /* @@ -2586,12 +2584,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel List idProdukPaketDto = dtoList.stream().map(TagihanPendaftaranDto::getIdProduk) .filter(dto -> !dto.equals(voucher.getPaketId())).collect(Collectors.toList()); mappingProdukPaket.stream().filter(d -> idProdukPaketDto.contains(d.getProdukId())).forEach(d -> { + Produk produkPaket = d.getProdukPaket().getProdukPaket(); List> tarifProdukPaket = hargaNettoProdukByKelasDao - .checkExisting(voucher.getKelasId(), d.getProdukPaketId()); + .checkExisting(voucher.getKelasId(), produkPaket.getId()); if (CommonUtil.isNullOrEmpty(tarifProdukPaket) && tarifProdukPaket.isEmpty()) - throw new ServiceVOException("Harga tarif tidak ditemukan untuk produk " - + d.getProduk().getNamaProduk() + " (" + d.getProdukPaket().getNamaProduk() + ") dan kelas " - + voucher.getKelas().getNamaKelas()); + throw new ServiceVOException( + "Harga tarif tidak ditemukan untuk produk " + d.getProduk().getNamaProduk() + " (" + + produkPaket.getNamaProduk() + ") dan kelas " + voucher.getKelas().getNamaKelas()); }); } { diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapProdukPaket.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapProdukPaket.java new file mode 100644 index 00000000..28e654d5 --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapProdukPaket.java @@ -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; +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapProdukPaketToProduk.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapProdukPaketToProduk.java index b369c036..40d293ab 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapProdukPaketToProduk.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapProdukPaketToProduk.java @@ -1,7 +1,6 @@ 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; @@ -9,7 +8,6 @@ import lombok.Setter; import javax.persistence.*; import javax.validation.constraints.NotNull; -import static javax.persistence.EnumType.STRING; import static javax.persistence.FetchType.LAZY; /** @@ -20,29 +18,18 @@ import static javax.persistence.FetchType.LAZY; @Getter @Setter @Entity -@Table(name = "mapprodukpakettoproduk_m", uniqueConstraints = { - @UniqueConstraint(columnNames = { "paketfk", "produkpaketfk", "produkfk" }), - @UniqueConstraint(columnNames = { "paketfk", "produkfk" }), }) +@Table(name = "mapprodukpakettoproduk_m") public class MapProdukPaketToProduk extends BaseTransaction { - private static final long serialVersionUID = -7737789789022355198L; + private static final long serialVersionUID = 8688145804014486942L; @ManyToOne(fetch = LAZY) - @JoinColumn(name = "paketfk") - @NotNull(message = "Paket tidak boleh kosong") - @Caption(value = "Paket") - private Produk paket; + @JoinColumn(name = "mappaketfk") + @NotNull(message = "Mapping produk paket tidak boleh kosong") + @Caption(value = "Mapping produk paket") + private MapProdukPaket produkPaket; - @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; + @Column(name = "mappaketfk", insertable = false, updatable = false, nullable = false) + private String produkPaketId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "produkfk") @@ -52,8 +39,4 @@ public class MapProdukPaketToProduk extends BaseTransaction { @Column(name = "produkfk", insertable = false, updatable = false, nullable = false) private Integer produkId; - - @Column(length = 100) - @Enumerated(STRING) - private JenisMappingProdukPaket jenisMapping; } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapProdukPaketToProdukVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapProdukPaketToProdukVO.java index e6132fde..28e4a233 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapProdukPaketToProdukVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapProdukPaketToProdukVO.java @@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; 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; @@ -18,20 +17,11 @@ import javax.validation.constraints.NotNull; @Setter @JsonInclude(Include.NON_NULL) 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") - @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 String produkPaketId; @NotNull(message = "Produk tidak boleh kosong") @Caption(value = "Produk") @@ -39,7 +29,4 @@ public class MapProdukPaketToProdukVO extends BaseTransactionVO { @Caption(value = "ID Produk") private Integer produkId; - - private JenisMappingProdukPaket jenisMapping; - } \ No newline at end of file diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapProdukPaketVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapProdukPaketVO.java new file mode 100644 index 00000000..18ee0256 --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapProdukPaketVO.java @@ -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; + +}