Update service mapping tindakan

Mengganti virtual object menjadi dto produk
This commit is contained in:
Salman Manoe 2023-08-10 08:52:09 +07:00
parent f8ff638bca
commit 1421ee878f
5 changed files with 149 additions and 174 deletions

View File

@ -399,4 +399,7 @@ public interface ProdukDao extends PagingAndSortingRepository<Produk, Integer> {
+ "and mpr.ruanganId = :ruanganId " + "and hnp.statusEnabled is true " + "and mpr.kodeExternal = '2017' "
+ "and hnp.kodeExternal = '2017' " + "order by prd.namaProduk")
List<Map<String, Object>> findDaftarInputTindakanByRuangan(@Param("ruanganId") Integer idRuangan);
@Query("select produk from Produk produk where produk.id in (:listId)")
List<Produk> findAllByIds(@Param("listId") List<Integer> listId);
}

View File

@ -1,20 +1,25 @@
package com.jasamedika.medifirst2000.service.impl;
import com.jasamedika.medifirst2000.converter.base.BaseVoConverter;
import com.jasamedika.medifirst2000.dao.MapProdukPaketToProdukDao;
import com.jasamedika.medifirst2000.vo.MapProdukPaketToProdukVO;
import com.jasamedika.medifirst2000.entities.MapProdukPaketToProduk;
import com.jasamedika.medifirst2000.entities.Produk;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.MapProdukPaketToProdukService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.vo.ProdukVO;
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 java.util.ArrayList;
import java.util.List;
import com.jasamedika.medifirst2000.converter.base.BaseVoConverter;
import com.jasamedika.medifirst2000.dao.MapProdukPaketToProdukDao;
import com.jasamedika.medifirst2000.dao.ProdukDao;
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;
/**
* @author Salman
@ -28,24 +33,30 @@ public class MapProdukPaketToProdukServiceImpl implements MapProdukPaketToProduk
private BaseVoConverter<MapProdukPaketToProdukVO, MapProdukPaketToProduk> mapProdukPaketConverter;
@Autowired
private BaseVoConverter<ProdukVO, Produk> produkConverter;
private MapProdukPaketToProdukDao mapProdukPaketToProdukDao;
@Autowired
private MapProdukPaketToProdukDao mapProdukPaketToProdukDao;
private ProdukDao produkDao;
@Override
public void save(MapProdukPaketToProdukVO vo) {
MapProdukPaketToProduk model = new MapProdukPaketToProduk();
model = mapProdukPaketConverter.transferVOToModel(vo, model);
Produk paket = new Produk();
paket = produkConverter.transferVOToModel(vo.getPaket(), paket);
model.setPaket(paket);
Produk produkPaket = new Produk();
produkPaket = produkConverter.transferVOToModel(vo.getProdukPaket(), produkPaket);
model.setProdukPaket(produkPaket);
Produk produk = new Produk();
produk = produkConverter.transferVOToModel(vo.getProduk(), produk);
model.setProduk(produk);
{
Produk paket = new Produk();
paket.setId(vo.getPaket().getId());
model.setPaket(paket);
}
{
Produk produkPaket = new Produk();
produkPaket.setId(vo.getProdukPaket().getId());
model.setProdukPaket(produkPaket);
}
{
Produk produk = new Produk();
produk.setId(vo.getProduk().getId());
model.setProduk(produk);
}
model.setKdProfile((short) 0);
mapProdukPaketToProdukDao.save(model);
}
@ -53,49 +64,72 @@ public class MapProdukPaketToProdukServiceImpl implements MapProdukPaketToProduk
@Override
public List<MapProdukPaketToProdukVO> get() {
List<MapProdukPaketToProduk> models = mapProdukPaketToProdukDao.findAll();
List<MapProdukPaketToProdukVO> data = new ArrayList<>();
models.forEach(m -> {
MapProdukPaketToProdukVO vo = new MapProdukPaketToProdukVO();
vo = mapProdukPaketConverter.transferModelToVO(m, vo);
ProdukVO paketVO = new ProdukVO();
Produk paket = m.getPaket();
paketVO = produkConverter.transferModelToVO(paket, paketVO);
vo.setPaket(paketVO);
ProdukVO produkPaketVO = new ProdukVO();
Produk produkPaket = m.getProdukPaket();
produkPaketVO = produkConverter.transferModelToVO(produkPaket, produkPaketVO);
vo.setProdukPaket(produkPaketVO);
ProdukVO produkVO = new ProdukVO();
Produk produk = m.getProduk();
produkVO = produkConverter.transferModelToVO(produk, produkVO);
vo.setProduk(produkVO);
data.add(vo);
});
return data;
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<>();
}
@Override
public List<MapProdukPaketToProdukVO> get(Integer paketId) {
List<MapProdukPaketToProduk> models = mapProdukPaketToProdukDao.findAllByPaketId(paketId);
List<MapProdukPaketToProdukVO> data = new ArrayList<>();
models.forEach(m -> {
MapProdukPaketToProdukVO vo = new MapProdukPaketToProdukVO();
vo = mapProdukPaketConverter.transferModelToVO(m, vo);
ProdukVO paketVO = new ProdukVO();
Produk paket = m.getPaket();
paketVO = produkConverter.transferModelToVO(paket, paketVO);
vo.setPaket(paketVO);
ProdukVO produkPaketVO = new ProdukVO();
Produk produkPaket = m.getProdukPaket();
produkPaketVO = produkConverter.transferModelToVO(produkPaket, produkPaketVO);
vo.setProdukPaket(produkPaketVO);
ProdukVO produkVO = new ProdukVO();
Produk produk = m.getProduk();
produkVO = produkConverter.transferModelToVO(produk, produkVO);
vo.setProduk(produkVO);
data.add(vo);
});
return data;
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<>();
}
@Override
@ -103,21 +137,16 @@ public class MapProdukPaketToProdukServiceImpl implements MapProdukPaketToProduk
MapProdukPaketToProduk model = mapProdukPaketToProdukDao.findOne(noRec);
if (CommonUtil.isNullOrEmpty(model))
return null;
MapProdukPaketToProdukVO data = new MapProdukPaketToProdukVO();
data = mapProdukPaketConverter.transferModelToVO(model, data);
ProdukVO paketVO = new ProdukVO();
Produk paket = model.getPaket();
paketVO = produkConverter.transferModelToVO(paket, paketVO);
data.setPaket(paketVO);
ProdukVO produkPaketVO = new ProdukVO();
Produk produkPaket = model.getProdukPaket();
produkPaketVO = produkConverter.transferModelToVO(produkPaket, produkPaketVO);
data.setProdukPaket(produkPaketVO);
ProdukVO produkVO = new ProdukVO();
Produk produk = model.getProduk();
produkVO = produkConverter.transferModelToVO(produk, produkVO);
data.setProduk(produkVO);
return data;
MapProdukPaketToProdukVO result = mapProdukPaketConverter.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());
Produk produk = produkDao.findById(result.getProdukId());
result.setProduk(ProdukDto.builder().id(produk.getId()).namaProduk(produk.getNamaProduk()).build());
return result;
}
@Override

View File

@ -2,6 +2,8 @@ package com.jasamedika.medifirst2000.entities;
import com.jasamedika.medifirst2000.base.BaseTransaction;
import com.jasamedika.medifirst2000.helper.Caption;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
@ -13,6 +15,8 @@ import static javax.persistence.FetchType.LAZY;
* @version 1.0.0
* @since 03 Aug 2023
*/
@Getter
@Setter
@Entity
@Table(name = "mapprodukpakettoproduk_m", uniqueConstraints = @UniqueConstraint(columnNames = { "paketfk",
"produkpaketfk", "produkfk" }))
@ -45,52 +49,4 @@ public class MapProdukPaketToProduk extends BaseTransaction {
@Column(name = "produkfk", insertable = false, updatable = false, nullable = false)
private Integer produkId;
public Produk getPaket() {
return paket;
}
public void setPaket(Produk paket) {
this.paket = paket;
}
public Integer getPaketId() {
return paketId;
}
public void setPaketId(Integer paketId) {
this.paketId = paketId;
}
public Produk getProdukPaket() {
return produkPaket;
}
public void setProdukPaket(Produk produkPaket) {
this.produkPaket = produkPaket;
}
public Integer getProdukPaketId() {
return produkPaketId;
}
public void setProdukPaketId(Integer produkPaketId) {
this.produkPaketId = produkPaketId;
}
public Produk getProduk() {
return produk;
}
public void setProduk(Produk produk) {
this.produk = produk;
}
public Integer getProdukId() {
return produkId;
}
public void setProdukId(Integer produkId) {
this.produkId = produkId;
}
}

View File

@ -0,0 +1,21 @@
package com.jasamedika.medifirst2000.entities;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* DTO for {@link Produk}
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProdukDto {
private Integer id;
private String namaProduk;
}

View File

@ -3,74 +3,40 @@ package com.jasamedika.medifirst2000.vo;
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.helper.Caption;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotNull;
/**
* DTO for {@link com.jasamedika.medifirst2000.entities.MapProdukPaketToProduk}
*/
@Getter
@Setter
@JsonInclude(Include.NON_NULL)
public class MapProdukPaketToProdukVO extends BaseTransactionVO {
@NotNull(message = "Paket tidak boleh kosong")
private ProdukVO paket;
@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")
private ProdukVO produkPaket;
@Caption(value = "Produk Paket")
private ProdukDto produkPaket;
@Caption(value = "ID Produk Paket")
private Integer produkPaketId;
@NotNull(message = "Produk tidak boleh kosong")
private ProdukVO produk;
@Caption(value = "Produk")
private ProdukDto produk;
@Caption(value = "ID Produk")
private Integer produkId;
public ProdukVO getPaket() {
return paket;
}
public void setPaket(ProdukVO paket) {
this.paket = paket;
}
public Integer getPaketId() {
return paketId;
}
public void setPaketId(Integer paketId) {
this.paketId = paketId;
}
public ProdukVO getProdukPaket() {
return produkPaket;
}
public void setProdukPaket(ProdukVO produkPaket) {
this.produkPaket = produkPaket;
}
public Integer getProdukPaketId() {
return produkPaketId;
}
public void setProdukPaketId(Integer produkPaketId) {
this.produkPaketId = produkPaketId;
}
public ProdukVO getProduk() {
return produk;
}
public void setProduk(ProdukVO produk) {
this.produk = produk;
}
public Integer getProdukId() {
return produkId;
}
public void setProdukId(Integer produkId) {
this.produkId = produkId;
}
}