diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/MapProdukPaketService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/MapProdukPaketService.java new file mode 100644 index 00000000..7a483572 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/MapProdukPaketService.java @@ -0,0 +1,9 @@ +package com.jasamedika.medifirst2000.service; + +import com.jasamedika.medifirst2000.vo.MapProdukPaketVO; + +import java.util.List; + +public interface MapProdukPaketService { + void saveAll(List vos); +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/MapProdukPaketToProdukService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/MapProdukPaketToProdukService.java index 981b0120..f4ee445a 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/MapProdukPaketToProdukService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/MapProdukPaketToProdukService.java @@ -10,9 +10,11 @@ import java.util.List; * @since 7 Aug 2023 */ public interface MapProdukPaketToProdukService { + void saveAll(List vos); + /** * Menyimpan mapping paket dan produk yang baru - * + * * @param vo * virtual object sebagai data transfer object */ diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapProdukPaketServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapProdukPaketServiceImpl.java new file mode 100644 index 00000000..71de881c --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapProdukPaketServiceImpl.java @@ -0,0 +1,47 @@ +package com.jasamedika.medifirst2000.service.impl; + +import com.jasamedika.medifirst2000.converter.base.BaseVoConverter; +import com.jasamedika.medifirst2000.dao.MapProdukPaketDao; +import com.jasamedika.medifirst2000.entities.MapProdukPaket; +import com.jasamedika.medifirst2000.entities.Produk; +import com.jasamedika.medifirst2000.service.MapProdukPaketService; +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; + +@Service +@Transactional +public class MapProdukPaketServiceImpl implements MapProdukPaketService { + + @Autowired + private BaseVoConverter mapProdukPaketConverter; + + @Autowired + private MapProdukPaketDao mapProdukPaketDao; + + @Override + public void saveAll(List vos) { + List models = new ArrayList<>(); + vos.forEach(vo -> { + MapProdukPaket model = new MapProdukPaket(); + model = mapProdukPaketConverter.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); + } + model.setKdProfile((short) 0); + models.add(model); + }); + mapProdukPaketDao.save(models); + } +} 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 f0562017..e5ade9a4 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 @@ -39,6 +39,28 @@ public class MapProdukPaketToProdukServiceImpl implements MapProdukPaketToProduk @Autowired private ProdukDao produkDao; + @Override + public void saveAll(List vos) { + List models = new ArrayList<>(); + vos.forEach(vo -> { + MapProdukPaketToProduk model = new MapProdukPaketToProduk(); + model = mapPaketProdukConverter.transferVOToModel(vo, model); + { + MapProdukPaket mapProdukPaket = new MapProdukPaket(); + mapProdukPaket.setNoRec(vo.getProdukPaket().getNoRec()); + model.setProdukPaket(mapProdukPaket); + } + { + Produk produk = new Produk(); + produk.setId(vo.getProduk().getId()); + model.setProduk(produk); + } + model.setKdProfile((short) 0); + models.add(model); + }); + mapProdukPaketToProdukDao.save(models); + } + @Override public void save(MapProdukPaketToProdukVO vo) { MapProdukPaketToProduk model = new MapProdukPaketToProduk(); 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 40d293ab..6334bf46 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 @@ -28,7 +28,7 @@ public class MapProdukPaketToProduk extends BaseTransaction { @Caption(value = "Mapping produk paket") private MapProdukPaket produkPaket; - @Column(name = "mappaketfk", insertable = false, updatable = false, nullable = false) + @Column(name = "mappaketfk", columnDefinition = "CHAR(32)", insertable = false, updatable = false, nullable = false) private String produkPaketId; @ManyToOne(fetch = LAZY) diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java index 2dc43508..03832a1a 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java @@ -7,11 +7,10 @@ import com.jasamedika.medifirst2000.core.web.WebConstants; import com.jasamedika.medifirst2000.dto.BatalPaketProdukDto; import com.jasamedika.medifirst2000.dto.TagihanPendaftaranDto; import com.jasamedika.medifirst2000.exception.ServiceVOException; -import com.jasamedika.medifirst2000.service.PasienDaftarService; -import com.jasamedika.medifirst2000.service.PelayananPasienService; -import com.jasamedika.medifirst2000.service.ProdukService; -import com.jasamedika.medifirst2000.service.SatuanStandarService; +import com.jasamedika.medifirst2000.service.*; import com.jasamedika.medifirst2000.util.rest.RestUtil; +import com.jasamedika.medifirst2000.vo.MapProdukPaketToProdukVO; +import com.jasamedika.medifirst2000.vo.MapProdukPaketVO; import com.jasamedika.medifirst2000.vo.PelayananPasienVO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,6 +44,12 @@ public class PelayananController extends LocaleController { @Autowired private SatuanStandarService satuanStandarService; + @Autowired + private MapProdukPaketService mapProdukPaketService; + + @Autowired + private MapProdukPaketToProdukService mapProdukPaketToProdukService; + @RequestMapping(value = "/calculate-indikator-pelayanan", method = RequestMethod.GET) public ResponseEntity>> calculateIndikatorPelayanan(HttpServletRequest request, @RequestParam("tahun") String tahun) { @@ -276,4 +281,44 @@ public class PelayananController extends LocaleController { return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); } } + + @RequestMapping(value = "/produk-paket/paket", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity simpanMappingListProdukPaket(HttpServletRequest request, + @RequestBody List vos) { + try { + mapProdukPaketService.saveAll(vos); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(vos, HttpStatus.OK, mapHeaderMessage); + } catch (ServiceVOException e) { + LOGGER.error("Got exception {} when simpan mapping list produk paket", e.getMessage()); + Map error = new HashMap<>(); + error.put("bad_request", e.getMessage()); + return RestUtil.getJsonResponse(null, HttpStatus.BAD_REQUEST, error); + } catch (JpaSystemException jse) { + LOGGER.error("Got exception {} when simpan mapping list produk paket", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + + @RequestMapping(value = "/produk-paket/produk", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity simpanMappingEntriProdukPaket(HttpServletRequest request, + @RequestBody List vos) { + try { + mapProdukPaketToProdukService.saveAll(vos); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(vos, HttpStatus.OK, mapHeaderMessage); + } catch (ServiceVOException e) { + LOGGER.error("Got exception {} when simpan mapping entri produk paket", e.getMessage()); + Map error = new HashMap<>(); + error.put("bad_request", e.getMessage()); + return RestUtil.getJsonResponse(null, HttpStatus.BAD_REQUEST, error); + } catch (JpaSystemException jse) { + LOGGER.error("Got exception {} when simpan mapping entri produk paket", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } }