From f276817f26ab11f418c53f4c85df9f9083f42173 Mon Sep 17 00:00:00 2001 From: salmanoe Date: Fri, 15 Jan 2021 08:56:18 +0700 Subject: [PATCH] perbaikan get mapping akomadasi karena lazy relation --- .../dao/MapRuanganToAkomodasiDao.java | 17 ++- .../service/MapRuanganToAkomodasiService.java | 7 +- .../MapRuanganToAkomodasiServiceImpl.java | 100 +++++++++++++----- .../controller/AkomodasiController.java | 2 +- 4 files changed, 94 insertions(+), 32 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapRuanganToAkomodasiDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapRuanganToAkomodasiDao.java index bbd56736..3abc9733 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapRuanganToAkomodasiDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapRuanganToAkomodasiDao.java @@ -1,6 +1,7 @@ package com.jasamedika.medifirst2000.dao; import java.util.List; +import java.util.Map; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; @@ -10,8 +11,16 @@ import com.jasamedika.medifirst2000.entities.MapRuanganToAkomodasi; @Repository("mapRuanganToAkomodasiDao") public interface MapRuanganToAkomodasiDao extends CrudRepository { - - @Query("select model from MapRuanganToAkomodasi model where model.statusEnabled is true") - List findAllActiveAkomodasi(); - + + @Query("select new Map(model.id as id,model.isRawatGabung as isRawatGabung," + + "kamar.id as idKamar,kamar.namaKamar as namaKamar," + + "model.kdProfile as kdProfile,model.kodeExternal as kodeExternal,model.namaExternal as namaExternal,model.noRec as noRec," + + "produk.id as idProduk,produk.namaProduk as namaProduk," + "model.reportDisplay as reportDisplay," + + "ruangan.id as idRuangan,ruangan.namaRuangan as namaRuangan," + "model.statusEnabled as statusEnabled) " + + "from MapRuanganToAkomodasi model " + "left join model.kamar kamar with kamar.statusEnabled is true " + + "left join model.produk produk with produk.statusEnabled is true " + + "left join model.ruangan ruangan with ruangan.statusEnabled is true " + + "where model.statusEnabled is true") + List> findAllActiveAkomodasi(); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/MapRuanganToAkomodasiService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/MapRuanganToAkomodasiService.java index 3cce89d7..31ad6640 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/MapRuanganToAkomodasiService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/MapRuanganToAkomodasiService.java @@ -6,10 +6,11 @@ import java.util.Map; import com.jasamedika.medifirst2000.entities.MapRuanganToAkomodasi; import com.jasamedika.medifirst2000.vo.MapRuanganToAkomodasiVO; -public interface MapRuanganToAkomodasiService extends BaseVoService { - +public interface MapRuanganToAkomodasiService + extends BaseVoService { + List getAllActiveAkomodasi(); - + List> getAkomodasiRuanganByMapProduk(Integer idRuangan); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapRuanganToAkomodasiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapRuanganToAkomodasiServiceImpl.java index 76ff3ab3..a5d3453f 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapRuanganToAkomodasiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapRuanganToAkomodasiServiceImpl.java @@ -15,25 +15,29 @@ import com.jasamedika.medifirst2000.entities.MapRuanganToAkomodasi; import com.jasamedika.medifirst2000.exception.ServiceVOException; import com.jasamedika.medifirst2000.service.MapRuanganToAkomodasiService; import com.jasamedika.medifirst2000.util.CommonUtil; +import com.jasamedika.medifirst2000.vo.KamarVO; import com.jasamedika.medifirst2000.vo.MapRuanganToAkomodasiVO; +import com.jasamedika.medifirst2000.vo.ProdukVO; +import com.jasamedika.medifirst2000.vo.RuanganVO; @Service("mapRuanganToAkomodasiService") public class MapRuanganToAkomodasiServiceImpl implements MapRuanganToAkomodasiService { - + @Autowired private MapRuanganToAkomodasiConverter mapRuanganToAkomodasiConverter; - + @Autowired private MapRuanganToAkomodasiDao mapRuanganToAkomodasiDao; - + @Autowired private MapRuanganToProdukDao mapRuanganToProdukDao; @Override public MapRuanganToAkomodasiVO add(MapRuanganToAkomodasiVO vo) throws JpaSystemException, ServiceVOException { - MapRuanganToAkomodasi mappingAkomodasi = mapRuanganToAkomodasiConverter.transferVOToModel(vo, new MapRuanganToAkomodasi()); + MapRuanganToAkomodasi mappingAkomodasi = mapRuanganToAkomodasiConverter.transferVOToModel(vo, + new MapRuanganToAkomodasi()); MapRuanganToAkomodasi resultModel = mapRuanganToAkomodasiDao.save(mappingAkomodasi); - + MapRuanganToAkomodasiVO resultVo = new MapRuanganToAkomodasiVO(); resultVo = mapRuanganToAkomodasiConverter.transferModelToVO(resultModel, resultVo); return resultVo; @@ -42,9 +46,10 @@ public class MapRuanganToAkomodasiServiceImpl implements MapRuanganToAkomodasiSe @Override public MapRuanganToAkomodasiVO update(MapRuanganToAkomodasiVO vo) throws JpaSystemException, ServiceVOException { MapRuanganToAkomodasi mappingAkomodasiLama = mapRuanganToAkomodasiDao.findOne(vo.getId()); - MapRuanganToAkomodasi mappingAkomodasiBaru = mapRuanganToAkomodasiConverter.transferVOToModel(vo, mappingAkomodasiLama); + MapRuanganToAkomodasi mappingAkomodasiBaru = mapRuanganToAkomodasiConverter.transferVOToModel(vo, + mappingAkomodasiLama); MapRuanganToAkomodasi resultModel = mapRuanganToAkomodasiDao.save(mappingAkomodasiBaru); - + MapRuanganToAkomodasiVO resultVo = new MapRuanganToAkomodasiVO(); resultVo = mapRuanganToAkomodasiConverter.transferModelToVO(resultModel, resultVo); return resultVo; @@ -59,47 +64,94 @@ public class MapRuanganToAkomodasiServiceImpl implements MapRuanganToAkomodasiSe @Override public MapRuanganToAkomodasiVO findById(Integer key) throws JpaSystemException { MapRuanganToAkomodasiVO result = new MapRuanganToAkomodasiVO(); - + MapRuanganToAkomodasi mappingAkomodasi = mapRuanganToAkomodasiDao.findOne(key); if (CommonUtil.isNotNullOrEmpty(mappingAkomodasi)) { result = mapRuanganToAkomodasiConverter.transferModelToVO(mappingAkomodasi, result); } - + return result; } @Override public List findAll() throws JpaSystemException { List result = new ArrayList(); - + Iterable models = mapRuanganToAkomodasiDao.findAll(); if (CommonUtil.isNotNullOrEmpty(models)) { for (MapRuanganToAkomodasi model : models) { - MapRuanganToAkomodasiVO vo = new MapRuanganToAkomodasiVO(); + MapRuanganToAkomodasiVO vo = new MapRuanganToAkomodasiVO(); vo = mapRuanganToAkomodasiConverter.transferModelToVO(model, vo); result.add(vo); } } - + return result; } - + @Override public List getAllActiveAkomodasi() { - List result = new ArrayList(); - - Iterable models = mapRuanganToAkomodasiDao.findAllActiveAkomodasi(); - if (CommonUtil.isNotNullOrEmpty(models)) { - for (MapRuanganToAkomodasi model : models) { - MapRuanganToAkomodasiVO vo = new MapRuanganToAkomodasiVO(); - vo = mapRuanganToAkomodasiConverter.transferModelToVO(model, vo); - result.add(vo); + List result = new ArrayList<>(); + + List> data = mapRuanganToAkomodasiDao.findAllActiveAkomodasi(); + for (Map map : data) { + KamarVO kamar = new KamarVO(); + RuanganVO ruangan = new RuanganVO(); + ProdukVO produk = new ProdukVO(); + if (CommonUtil.isNotNullOrEmpty(map.get("idKamar"))) { + kamar.setId(Integer.valueOf(map.get("idKamar").toString())); + kamar.setNamaKamar(map.get("namaKamar").toString()); } + if (CommonUtil.isNotNullOrEmpty(map.get("idRuangan"))) { + ruangan.setId(Integer.valueOf(map.get("idRuangan").toString())); + ruangan.setNamaRuangan(map.get("namaRuangan").toString()); + } + if (CommonUtil.isNotNullOrEmpty(map.get("idProduk"))) { + produk.setId(Integer.valueOf(map.get("idProduk").toString())); + produk.setNamaProduk(map.get("namaProduk").toString()); + } + map.put("kamar", kamar); + map.put("ruangan", ruangan); + map.put("produk", produk); + + MapRuanganToAkomodasiVO rsMap = new MapRuanganToAkomodasiVO(); + rsMap.setId(Integer.valueOf(map.get("id").toString())); + if (CommonUtil.isNotNullOrEmpty(map.get("isRawatGabung"))) { + rsMap.setIsRawatGabung(Integer.valueOf(map.get("isRawatGabung").toString())); + } + if (CommonUtil.isNotNullOrEmpty(kamar)) { + rsMap.setKamar(kamar); + } + if (CommonUtil.isNotNullOrEmpty(map.get("kdProfile"))) { + rsMap.setKdProfile(Short.valueOf(map.get("kdProfile").toString())); + } + if (CommonUtil.isNotNullOrEmpty(map.get("kodeExternal"))) { + rsMap.setKodeExternal(map.get("kodeExternal").toString()); + } + if (CommonUtil.isNotNullOrEmpty(map.get("namaExternal"))) { + rsMap.setNamaExternal(map.get("namaExternal").toString()); + } + if (CommonUtil.isNotNullOrEmpty(map.get("noRec"))) { + rsMap.setNoRec(map.get("noRec").toString()); + } + if (CommonUtil.isNotNullOrEmpty(produk)) { + rsMap.setProduk(produk); + } + if (CommonUtil.isNotNullOrEmpty(map.get("reportDisplay"))) { + rsMap.setReportDisplay(map.get("reportDisplay").toString()); + } + if (CommonUtil.isNotNullOrEmpty(ruangan)) { + rsMap.setRuangan(ruangan); + } + if (CommonUtil.isNotNullOrEmpty(map.get("statusEnabled"))) { + rsMap.setStatusEnabled(Boolean.valueOf(map.get("statusEnabled").toString())); + } + result.add(rsMap); } - + return result; } - + @Override public List> getAkomodasiRuanganByMapProduk(Integer idRuangan) { List> result = mapRuanganToProdukDao.findProdukRuanganByMapProduk(idRuangan, "Akomodasi"); @@ -111,5 +163,5 @@ public class MapRuanganToAkomodasiServiceImpl implements MapRuanganToAkomodasiSe String sort, String dir) { return null; } - + } diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/AkomodasiController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/AkomodasiController.java index 38c93552..354dc220 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/AkomodasiController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/AkomodasiController.java @@ -143,7 +143,7 @@ public class AkomodasiController extends LocaleController>> getAkomodasiRuanganByMappingProduk(HttpServletRequest request, @RequestParam(value = "idRuangan", required = true) Integer idRuangan) {