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 mpr.ruanganId = :ruanganId " + "and hnp.statusEnabled is true " + "and mpr.kodeExternal = '2017' "
+ "and hnp.kodeExternal = '2017' " + "order by prd.namaProduk") + "and hnp.kodeExternal = '2017' " + "order by prd.namaProduk")
List<Map<String, Object>> findDaftarInputTindakanByRuangan(@Param("ruanganId") Integer idRuangan); 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; package com.jasamedika.medifirst2000.service.impl;
import com.jasamedika.medifirst2000.converter.base.BaseVoConverter; import java.util.ArrayList;
import com.jasamedika.medifirst2000.dao.MapProdukPaketToProdukDao; import java.util.List;
import com.jasamedika.medifirst2000.vo.MapProdukPaketToProdukVO; import java.util.Optional;
import com.jasamedika.medifirst2000.entities.MapProdukPaketToProduk; import java.util.Set;
import com.jasamedika.medifirst2000.entities.Produk; import java.util.stream.Collectors;
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 org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import com.jasamedika.medifirst2000.converter.base.BaseVoConverter;
import java.util.List; 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 * @author Salman
@ -28,24 +33,30 @@ public class MapProdukPaketToProdukServiceImpl implements MapProdukPaketToProduk
private BaseVoConverter<MapProdukPaketToProdukVO, MapProdukPaketToProduk> mapProdukPaketConverter; private BaseVoConverter<MapProdukPaketToProdukVO, MapProdukPaketToProduk> mapProdukPaketConverter;
@Autowired @Autowired
private BaseVoConverter<ProdukVO, Produk> produkConverter; private MapProdukPaketToProdukDao mapProdukPaketToProdukDao;
@Autowired @Autowired
private MapProdukPaketToProdukDao mapProdukPaketToProdukDao; private ProdukDao produkDao;
@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 = mapProdukPaketConverter.transferVOToModel(vo, model);
Produk paket = new Produk(); {
paket = produkConverter.transferVOToModel(vo.getPaket(), paket); Produk paket = new Produk();
model.setPaket(paket); paket.setId(vo.getPaket().getId());
Produk produkPaket = new Produk(); model.setPaket(paket);
produkPaket = produkConverter.transferVOToModel(vo.getProdukPaket(), produkPaket); }
model.setProdukPaket(produkPaket); {
Produk produk = new Produk(); Produk produkPaket = new Produk();
produk = produkConverter.transferVOToModel(vo.getProduk(), produk); produkPaket.setId(vo.getProdukPaket().getId());
model.setProduk(produk); model.setProdukPaket(produkPaket);
}
{
Produk produk = new Produk();
produk.setId(vo.getProduk().getId());
model.setProduk(produk);
}
model.setKdProfile((short) 0); model.setKdProfile((short) 0);
mapProdukPaketToProdukDao.save(model); mapProdukPaketToProdukDao.save(model);
} }
@ -53,49 +64,72 @@ public class MapProdukPaketToProdukServiceImpl implements MapProdukPaketToProduk
@Override @Override
public List<MapProdukPaketToProdukVO> get() { public List<MapProdukPaketToProdukVO> get() {
List<MapProdukPaketToProduk> models = mapProdukPaketToProdukDao.findAll(); List<MapProdukPaketToProduk> models = mapProdukPaketToProdukDao.findAll();
List<MapProdukPaketToProdukVO> data = new ArrayList<>(); if (CommonUtil.isNotNullOrEmpty(models)) {
models.forEach(m -> { Set<Integer> setIdPaket = models.stream().map(MapProdukPaketToProduk::getPaketId)
MapProdukPaketToProdukVO vo = new MapProdukPaketToProdukVO(); .collect(Collectors.toSet());
vo = mapProdukPaketConverter.transferModelToVO(m, vo); List<Integer> listIdPaket = new ArrayList<>(setIdPaket);
ProdukVO paketVO = new ProdukVO(); List<Produk> listPaket = produkDao.findAllByIds(listIdPaket);
Produk paket = m.getPaket(); Set<Integer> setIdProdukPaket = models.stream().map(MapProdukPaketToProduk::getProdukPaketId)
paketVO = produkConverter.transferModelToVO(paket, paketVO); .collect(Collectors.toSet());
vo.setPaket(paketVO); List<Integer> listIdProdukPaket = new ArrayList<>(setIdProdukPaket);
ProdukVO produkPaketVO = new ProdukVO(); List<Produk> listProdukPaket = produkDao.findAllByIds(listIdProdukPaket);
Produk produkPaket = m.getProdukPaket(); Set<Integer> setIdProduk = models.stream().map(MapProdukPaketToProduk::getProdukId)
produkPaketVO = produkConverter.transferModelToVO(produkPaket, produkPaketVO); .collect(Collectors.toSet());
vo.setProdukPaket(produkPaketVO); List<Integer> listIdProduk = new ArrayList<>(setIdProduk);
ProdukVO produkVO = new ProdukVO(); List<Produk> listProduk = produkDao.findAllByIds(listIdProduk);
Produk produk = m.getProduk(); List<MapProdukPaketToProdukVO> result = models.stream()
produkVO = produkConverter.transferModelToVO(produk, produkVO); .map(m -> mapProdukPaketConverter.transferModelToVO(m, new MapProdukPaketToProdukVO()))
vo.setProduk(produkVO); .collect(Collectors.toList());
data.add(vo); result.forEach(r -> {
}); Optional<Produk> paket = listPaket.stream().filter(p -> p.getId().equals(r.getPaketId())).findFirst();
return data; 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 @Override
public List<MapProdukPaketToProdukVO> get(Integer paketId) { public List<MapProdukPaketToProdukVO> get(Integer paketId) {
List<MapProdukPaketToProduk> models = mapProdukPaketToProdukDao.findAllByPaketId(paketId); List<MapProdukPaketToProduk> models = mapProdukPaketToProdukDao.findAllByPaketId(paketId);
List<MapProdukPaketToProdukVO> data = new ArrayList<>(); if (CommonUtil.isNotNullOrEmpty(models)) {
models.forEach(m -> { Set<Integer> listIdPaket = models.stream().map(MapProdukPaketToProduk::getPaketId)
MapProdukPaketToProdukVO vo = new MapProdukPaketToProdukVO(); .collect(Collectors.toSet());
vo = mapProdukPaketConverter.transferModelToVO(m, vo); List<Produk> listPaket = produkDao.findAllByIds(new ArrayList<>(listIdPaket));
ProdukVO paketVO = new ProdukVO(); Set<Integer> listIdProdukPaket = models.stream().map(MapProdukPaketToProduk::getProdukPaketId)
Produk paket = m.getPaket(); .collect(Collectors.toSet());
paketVO = produkConverter.transferModelToVO(paket, paketVO); List<Produk> listProdukPaket = produkDao.findAllByIds(new ArrayList<>(listIdProdukPaket));
vo.setPaket(paketVO); Set<Integer> listIdProduk = models.stream().map(MapProdukPaketToProduk::getProdukId)
ProdukVO produkPaketVO = new ProdukVO(); .collect(Collectors.toSet());
Produk produkPaket = m.getProdukPaket(); List<Produk> listProduk = produkDao.findAllByIds(new ArrayList<>(listIdProduk));
produkPaketVO = produkConverter.transferModelToVO(produkPaket, produkPaketVO); List<MapProdukPaketToProdukVO> result = models.stream()
vo.setProdukPaket(produkPaketVO); .map(m -> mapProdukPaketConverter.transferModelToVO(m, new MapProdukPaketToProdukVO()))
ProdukVO produkVO = new ProdukVO(); .collect(Collectors.toList());
Produk produk = m.getProduk(); result.forEach(r -> {
produkVO = produkConverter.transferModelToVO(produk, produkVO); Optional<Produk> paket = listPaket.stream().filter(p -> p.getId().equals(r.getPaketId())).findFirst();
vo.setProduk(produkVO); paket.ifPresent(
data.add(vo); p -> r.setPaket(ProdukDto.builder().id(p.getId()).namaProduk(p.getNamaProduk()).build()));
}); Optional<Produk> produkPaket = listProdukPaket.stream()
return data; .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 @Override
@ -103,21 +137,16 @@ 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 data = new MapProdukPaketToProdukVO(); MapProdukPaketToProdukVO result = mapProdukPaketConverter.transferModelToVO(model,
data = mapProdukPaketConverter.transferModelToVO(model, data); new MapProdukPaketToProdukVO());
ProdukVO paketVO = new ProdukVO(); Produk paket = produkDao.findById(result.getPaketId());
Produk paket = model.getPaket(); result.setPaket(ProdukDto.builder().id(paket.getId()).namaProduk(paket.getNamaProduk()).build());
paketVO = produkConverter.transferModelToVO(paket, paketVO); Produk produkPaket = produkDao.findById(result.getProdukPaketId());
data.setPaket(paketVO); result.setProdukPaket(
ProdukVO produkPaketVO = new ProdukVO(); ProdukDto.builder().id(produkPaket.getId()).namaProduk(produkPaket.getNamaProduk()).build());
Produk produkPaket = model.getProdukPaket(); Produk produk = produkDao.findById(result.getProdukId());
produkPaketVO = produkConverter.transferModelToVO(produkPaket, produkPaketVO); result.setProduk(ProdukDto.builder().id(produk.getId()).namaProduk(produk.getNamaProduk()).build());
data.setProdukPaket(produkPaketVO); return result;
ProdukVO produkVO = new ProdukVO();
Produk produk = model.getProduk();
produkVO = produkConverter.transferModelToVO(produk, produkVO);
data.setProduk(produkVO);
return data;
} }
@Override @Override

View File

@ -2,6 +2,8 @@ package com.jasamedika.medifirst2000.entities;
import com.jasamedika.medifirst2000.base.BaseTransaction; import com.jasamedika.medifirst2000.base.BaseTransaction;
import com.jasamedika.medifirst2000.helper.Caption; import com.jasamedika.medifirst2000.helper.Caption;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*; import javax.persistence.*;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
@ -13,6 +15,8 @@ import static javax.persistence.FetchType.LAZY;
* @version 1.0.0 * @version 1.0.0
* @since 03 Aug 2023 * @since 03 Aug 2023
*/ */
@Getter
@Setter
@Entity @Entity
@Table(name = "mapprodukpakettoproduk_m", uniqueConstraints = @UniqueConstraint(columnNames = { "paketfk", @Table(name = "mapprodukpakettoproduk_m", uniqueConstraints = @UniqueConstraint(columnNames = { "paketfk",
"produkpaketfk", "produkfk" })) "produkpaketfk", "produkfk" }))
@ -45,52 +49,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;
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;
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.helper.Caption;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
/** /**
* DTO for {@link com.jasamedika.medifirst2000.entities.MapProdukPaketToProduk} * DTO for {@link com.jasamedika.medifirst2000.entities.MapProdukPaketToProduk}
*/ */
@Getter
@Setter
@JsonInclude(Include.NON_NULL) @JsonInclude(Include.NON_NULL)
public class MapProdukPaketToProdukVO extends BaseTransactionVO { 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; private Integer paketId;
@NotNull(message = "Produk paket tidak boleh kosong") @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; private Integer produkPaketId;
@NotNull(message = "Produk tidak boleh kosong") @NotNull(message = "Produk tidak boleh kosong")
private ProdukVO produk; @Caption(value = "Produk")
private ProdukDto produk;
@Caption(value = "ID Produk")
private Integer produkId; 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;
}
} }