From fe72608465d8239757a7a29454e06c7a0dfb4720 Mon Sep 17 00:00:00 2001 From: dirgantarasiahaan Date: Fri, 26 May 2023 10:39:31 +0700 Subject: [PATCH] add master data api --- .../controller/JenisKontrakController.java | 110 +++++++++------- .../controller/LokasiController.java | 98 +++++++------- .../controller/MetodePengadaanController.java | 113 +++++++++-------- .../MetodePenyampaianController.java | 116 +++++++++-------- .../StrategiPengadaanController.java | 113 +++++++++-------- .../SupplyPositioningMatrixController.java | 120 ++++++++++-------- .../model/entity/MetodePengadaan.java | 4 + .../model/projection/JenisKontrakView.java | 15 +++ .../model/projection/LokasiView.java | 16 +++ .../model/projection/MetodePengadaanView.java | 16 +++ .../projection/MetodePenyampaianView.java | 16 +++ .../projection/StrategiPengadaanView.java | 16 +++ .../SupplyPositioningMatrixView.java | 16 +++ .../model/request/JenisKontrakRequest.java | 23 ++++ .../model/request/LokasiRequest.java | 23 ++++ .../model/request/MetodePengadaanRequest.java | 23 ++++ .../request/MetodePenyampaianRequest.java | 23 ++++ .../request/StrategiPengadaanRequest.java | 23 ++++ .../SupplyPositioningMatrixRequest.java | 23 ++++ .../response/GetListJenisKontrakResponse.java | 20 +++ .../model/response/GetListLokasiResponse.java | 20 +++ .../GetListMetodePengadaanResponse.java | 20 +++ .../GetListMetodePenyampaianResponse.java | 20 +++ .../GetListStrategiPengadaanResponse.java | 20 +++ ...etListSupplyPositioningMatrixResponse.java | 20 +++ .../model/response/JenisKontrakResponse.java | 21 +++ .../model/response/LokasiResponse.java | 21 +++ .../response/MetodePengadaanResponse.java | 21 +++ .../response/MetodePenyampaianResponse.java | 21 +++ .../response/StrategiPengadaanResponse.java | 21 +++ .../SupplyPositioningMatrixResponse.java | 21 +++ .../repository/JenisKontrakRepository.java | 26 +++- .../repository/LokasiRepository.java | 22 ++++ .../repository/MetodePengadaanRepository.java | 22 ++++ .../MetodePenyampaianRepository.java | 22 ++++ .../StrategiPengadaanRepository.java | 22 ++++ .../SupplyPositioningMatrixRepository.java | 22 ++++ .../DeleteJenisKontrakService.java | 38 ++++++ .../GetJenisKontrakByIdService.java | 40 ++++++ .../GetListJenisKontrakService.java | 61 +++++++++ .../PostCreateJenisKontrakService.java | 49 +++++++ .../PutUpdateJenisKontrakService.java | 45 +++++++ .../service/lokasi/DeleteLokasiService.java | 38 ++++++ .../service/lokasi/GetListLokasiService.java | 61 +++++++++ .../service/lokasi/GetLokasiByIdService.java | 43 +++++++ .../lokasi/PostCreateLokasiService.java | 49 +++++++ .../lokasi/PutUpdateLokasiService.java | 45 +++++++ .../DeleteMetodePengadaanService.java | 38 ++++++ .../GetListMetodePengadaanService.java | 61 +++++++++ .../GetMetodePengadaanByIdService.java | 40 ++++++ .../PostCreateMetodePengadaanService.java | 49 +++++++ .../PutUpdateMetodePengadaanService.java | 44 +++++++ .../DeleteMetodePenyampaianService.java | 38 ++++++ .../GetListMetodePenyampaianService.java | 61 +++++++++ .../GetMetodePenyampaianByIdService.java | 39 ++++++ .../PostCreateMetodePenyampaianService.java | 49 +++++++ .../PutUpdateMetodePenyampaianService.java | 44 +++++++ .../DeleteStrategiPengadaanService.java | 38 ++++++ .../GetListStrategiPengadaanService.java | 61 +++++++++ .../GetStrategiPengadaanByIdService.java | 39 ++++++ .../PostCreateStrategiPengadaanService.java | 49 +++++++ .../PutUpdateStrategiPengadaanService.java | 44 +++++++ .../DeleteSupplyPositioningMatrixService.java | 38 ++++++ ...GetListSupplyPositioningMatrixService.java | 61 +++++++++ ...GetSupplyPositioningMatrixByIdService.java | 39 ++++++ ...tCreateSupplyPositioningMatrixService.java | 49 +++++++ ...tUpdateSupplyPositioningMatrixService.java | 44 +++++++ 67 files changed, 2376 insertions(+), 307 deletions(-) create mode 100644 src/main/java/com/iconplus/smartproc/model/projection/JenisKontrakView.java create mode 100644 src/main/java/com/iconplus/smartproc/model/projection/LokasiView.java create mode 100644 src/main/java/com/iconplus/smartproc/model/projection/MetodePengadaanView.java create mode 100644 src/main/java/com/iconplus/smartproc/model/projection/MetodePenyampaianView.java create mode 100644 src/main/java/com/iconplus/smartproc/model/projection/StrategiPengadaanView.java create mode 100644 src/main/java/com/iconplus/smartproc/model/projection/SupplyPositioningMatrixView.java create mode 100644 src/main/java/com/iconplus/smartproc/model/request/JenisKontrakRequest.java create mode 100644 src/main/java/com/iconplus/smartproc/model/request/LokasiRequest.java create mode 100644 src/main/java/com/iconplus/smartproc/model/request/MetodePengadaanRequest.java create mode 100644 src/main/java/com/iconplus/smartproc/model/request/MetodePenyampaianRequest.java create mode 100644 src/main/java/com/iconplus/smartproc/model/request/StrategiPengadaanRequest.java create mode 100644 src/main/java/com/iconplus/smartproc/model/request/SupplyPositioningMatrixRequest.java create mode 100644 src/main/java/com/iconplus/smartproc/model/response/GetListJenisKontrakResponse.java create mode 100644 src/main/java/com/iconplus/smartproc/model/response/GetListLokasiResponse.java create mode 100644 src/main/java/com/iconplus/smartproc/model/response/GetListMetodePengadaanResponse.java create mode 100644 src/main/java/com/iconplus/smartproc/model/response/GetListMetodePenyampaianResponse.java create mode 100644 src/main/java/com/iconplus/smartproc/model/response/GetListStrategiPengadaanResponse.java create mode 100644 src/main/java/com/iconplus/smartproc/model/response/GetListSupplyPositioningMatrixResponse.java create mode 100644 src/main/java/com/iconplus/smartproc/model/response/JenisKontrakResponse.java create mode 100644 src/main/java/com/iconplus/smartproc/model/response/LokasiResponse.java create mode 100644 src/main/java/com/iconplus/smartproc/model/response/MetodePengadaanResponse.java create mode 100644 src/main/java/com/iconplus/smartproc/model/response/MetodePenyampaianResponse.java create mode 100644 src/main/java/com/iconplus/smartproc/model/response/StrategiPengadaanResponse.java create mode 100644 src/main/java/com/iconplus/smartproc/model/response/SupplyPositioningMatrixResponse.java create mode 100644 src/main/java/com/iconplus/smartproc/service/jeniskontrak/DeleteJenisKontrakService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/jeniskontrak/GetJenisKontrakByIdService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/jeniskontrak/GetListJenisKontrakService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/jeniskontrak/PostCreateJenisKontrakService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/jeniskontrak/PutUpdateJenisKontrakService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/lokasi/DeleteLokasiService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/lokasi/GetListLokasiService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/lokasi/GetLokasiByIdService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/lokasi/PostCreateLokasiService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/lokasi/PutUpdateLokasiService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/metodepengadaan/DeleteMetodePengadaanService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/metodepengadaan/GetListMetodePengadaanService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/metodepengadaan/GetMetodePengadaanByIdService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/metodepengadaan/PostCreateMetodePengadaanService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/metodepengadaan/PutUpdateMetodePengadaanService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/metodepenyampaian/DeleteMetodePenyampaianService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/metodepenyampaian/GetListMetodePenyampaianService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/metodepenyampaian/GetMetodePenyampaianByIdService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/metodepenyampaian/PostCreateMetodePenyampaianService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/metodepenyampaian/PutUpdateMetodePenyampaianService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/strategipengadaan/DeleteStrategiPengadaanService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/strategipengadaan/GetListStrategiPengadaanService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/strategipengadaan/GetStrategiPengadaanByIdService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/strategipengadaan/PostCreateStrategiPengadaanService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/strategipengadaan/PutUpdateStrategiPengadaanService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/supplypositioningmatrix/DeleteSupplyPositioningMatrixService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/supplypositioningmatrix/GetListSupplyPositioningMatrixService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/supplypositioningmatrix/GetSupplyPositioningMatrixByIdService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/supplypositioningmatrix/PostCreateSupplyPositioningMatrixService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/supplypositioningmatrix/PutUpdateSupplyPositioningMatrixService.java diff --git a/src/main/java/com/iconplus/smartproc/controller/JenisKontrakController.java b/src/main/java/com/iconplus/smartproc/controller/JenisKontrakController.java index 140820d..d0d65c2 100644 --- a/src/main/java/com/iconplus/smartproc/controller/JenisKontrakController.java +++ b/src/main/java/com/iconplus/smartproc/controller/JenisKontrakController.java @@ -1,65 +1,77 @@ package com.iconplus.smartproc.controller; -import com.iconplus.smartproc.model.entity.JenisKontrak; -import com.iconplus.smartproc.exception.ResourceNotFoundException; -import com.iconplus.smartproc.repository.JenisKontrakRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import com.iconplus.smartproc.helper.model.EmptyResponse; +import com.iconplus.smartproc.model.request.JenisKontrakRequest; +import com.iconplus.smartproc.model.response.GetListJenisKontrakResponse; +import com.iconplus.smartproc.model.response.JenisKontrakResponse; +import com.iconplus.smartproc.service.jeniskontrak.*; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.web.bind.annotation.*; @CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true") @RestController @RequestMapping("/api/jeniskontrak") public class JenisKontrakController { - @Autowired - private JenisKontrakRepository jeniskontrakRepository; - //get all data - @GetMapping - public List getAllJeniskontraks(){ - return jeniskontrakRepository.findAll(); - } + private final GetListJenisKontrakService getListJenisKontrakService; + private final GetJenisKontrakByIdService getJenisKontrakByIdService; + private final PostCreateJenisKontrakService postCreateJenisKontrakService; + private final PutUpdateJenisKontrakService putUpdateJenisKontrakService; + private final DeleteJenisKontrakService deleteJenisKontrakService; - // create - @PostMapping - public JenisKontrak createJeniskontrak(@RequestBody JenisKontrak jeniskontrak) { - return jeniskontrakRepository.save(jeniskontrak); - } + public JenisKontrakController(GetListJenisKontrakService getListJenisKontrakService, + GetJenisKontrakByIdService getJenisKontrakByIdService, + PostCreateJenisKontrakService postCreateJenisKontrakService, + PutUpdateJenisKontrakService putUpdateJenisKontrakService, + DeleteJenisKontrakService deleteJenisKontrakService) { + this.getListJenisKontrakService = getListJenisKontrakService; + this.getJenisKontrakByIdService = getJenisKontrakByIdService; + this.postCreateJenisKontrakService = postCreateJenisKontrakService; + this.putUpdateJenisKontrakService = putUpdateJenisKontrakService; + this.deleteJenisKontrakService = deleteJenisKontrakService; + } - // get jeniskontrak by id rest api - @GetMapping("/{id}") - public ResponseEntity getJeniskontrakById(@PathVariable Long id) { - JenisKontrak jeniskontrak = jeniskontrakRepository.findById(id) - .orElseThrow(() -> new ResourceNotFoundException("Jeniskontrak not exist with id :" + id)); - return ResponseEntity.ok(jeniskontrak); - } - // update jeniskontrak rest api - @PutMapping("/{id}") - public ResponseEntity updateJeniskontrak(@PathVariable Long id, @RequestBody JenisKontrak jenisKontrakDetails){ - JenisKontrak jeniskontrak = jeniskontrakRepository.findById(id) - .orElseThrow(() -> new ResourceNotFoundException("Jeniskontrak not exist with id :" + id)); + @GetMapping + public GetListJenisKontrakResponse getListJenisKontrak(@RequestParam(name = "search", required = false) String search, + @RequestParam(name = "page", defaultValue = "1") Integer page, + @RequestParam(name = "size", defaultValue = "5") Integer size){ - jeniskontrak.setJenisKontrak(jenisKontrakDetails.getJenisKontrak()); - jeniskontrak.setKeterangan(jenisKontrakDetails.getKeterangan()); + Pageable pageable = PageRequest.of((page - 1), size); + JenisKontrakRequest jenisKontrakRequest = JenisKontrakRequest.builder() + .search(search) + .pageable(pageable) + .build(); - JenisKontrak updatedJenisKontrak = jeniskontrakRepository.save(jeniskontrak); - return ResponseEntity.ok(updatedJenisKontrak); - } + return getListJenisKontrakService.execute(jenisKontrakRequest); + } - // delete jeniskontrak rest api - @DeleteMapping("/{id}") - public ResponseEntity> deleteJeniskontrak(@PathVariable Long id){ - JenisKontrak jeniskontrak = jeniskontrakRepository.findById(id) - .orElseThrow(() -> new ResourceNotFoundException("Jeniskontrak not exist with id :" + id)); + @PostMapping + public JenisKontrakResponse createJenisKontrak(@RequestBody JenisKontrakRequest jenisKontrakRequest) { + return postCreateJenisKontrakService.execute(jenisKontrakRequest); + } - jeniskontrakRepository.delete(jeniskontrak); - Map response = new HashMap<>(); - response.put("deleted", Boolean.TRUE); - return ResponseEntity.ok(response); - } -} \ No newline at end of file + @GetMapping("/{id}") + public JenisKontrakResponse getJenisKontrakById(@PathVariable Long id) { + return getJenisKontrakByIdService.execute(JenisKontrakRequest.builder() + .id(id) + .build()); + } + + + @PutMapping("/{id}") + public JenisKontrakResponse updateJeniskontrak(@PathVariable Long id, + @RequestBody JenisKontrakRequest jenisKontrakRequest){ + jenisKontrakRequest.setId(id); + return putUpdateJenisKontrakService.execute(jenisKontrakRequest); + } + + @DeleteMapping("/{id}") + public EmptyResponse deleteJenisKontrak(@PathVariable Long id) { + return deleteJenisKontrakService.execute(JenisKontrakRequest.builder() + .id(id) + .build()); + } +} diff --git a/src/main/java/com/iconplus/smartproc/controller/LokasiController.java b/src/main/java/com/iconplus/smartproc/controller/LokasiController.java index eaccfd8..9579ced 100644 --- a/src/main/java/com/iconplus/smartproc/controller/LokasiController.java +++ b/src/main/java/com/iconplus/smartproc/controller/LokasiController.java @@ -1,69 +1,77 @@ package com.iconplus.smartproc.controller; -import com.iconplus.smartproc.model.entity.Lokasi; -import com.iconplus.smartproc.exception.ResourceNotFoundException; -import com.iconplus.smartproc.repository.LokasiRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import com.iconplus.smartproc.helper.model.EmptyResponse; +import com.iconplus.smartproc.model.request.LokasiRequest; +import com.iconplus.smartproc.model.response.GetListLokasiResponse; +import com.iconplus.smartproc.model.response.LokasiResponse; +import com.iconplus.smartproc.service.lokasi.*; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.web.bind.annotation.*; @CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true") @RestController @RequestMapping("/api/lokasi") public class LokasiController { - @Autowired - private LokasiRepository lokasiRepository; - //get all data + private final GetListLokasiService getListLokasiService; + private final GetLokasiByIdService getLokasiByIdService; + private final PostCreateLokasiService postCreateLokasiService; + private final PutUpdateLokasiService putUpdateLokasiService; + private final DeleteLokasiService deleteLokasiService; + + public LokasiController(GetListLokasiService getListLokasiService, + GetLokasiByIdService getLokasiByIdService, + PostCreateLokasiService postCreateLokasiService, + PutUpdateLokasiService putUpdateLokasiService, + DeleteLokasiService deleteLokasiService) { + this.getListLokasiService = getListLokasiService; + this.getLokasiByIdService = getLokasiByIdService; + this.postCreateLokasiService = postCreateLokasiService; + this.putUpdateLokasiService = putUpdateLokasiService; + this.deleteLokasiService = deleteLokasiService; + } + + @GetMapping - public List getAllLokasis(){ - return lokasiRepository.findAll(); + public GetListLokasiResponse getListLokasi(@RequestParam(name = "search", required = false) String search, + @RequestParam(name = "page", defaultValue = "1") Integer page, + @RequestParam(name = "size", defaultValue = "5") Integer size){ + + Pageable pageable = PageRequest.of((page - 1), size); + LokasiRequest lokasiRequest = LokasiRequest.builder() + .search(search) + .pageable(pageable) + .build(); + + return getListLokasiService.execute(lokasiRequest); } - // create @PostMapping - public Lokasi createLokasi(@RequestBody Lokasi lokasi) { - return lokasiRepository.save(lokasi); + public LokasiResponse createLokasi(@RequestBody LokasiRequest lokasiRequest) { + return postCreateLokasiService.execute(lokasiRequest); } - // get lokasi by id rest api @GetMapping("/{id}") - public ResponseEntity getLokasiById(@PathVariable Long id) { - Lokasi lokasi = lokasiRepository.findById(id) - .orElseThrow(() -> new ResourceNotFoundException("Lokasi not exist with id :" + id)); - return ResponseEntity.ok(lokasi); + public LokasiResponse getLokasiById(@PathVariable Long id) { + return getLokasiByIdService.execute(LokasiRequest.builder() + .id(id) + .build()); } - // update lokasi rest api + @PutMapping("/{id}") - public ResponseEntity updateSumberdana(@PathVariable Long id, @RequestBody Lokasi lokasiDetails){ - Lokasi lokasi = lokasiRepository.findById(id) - .orElseThrow(() -> new ResourceNotFoundException("Lokasi not exist with id :" + id)); - - lokasi.setLokasi(lokasiDetails.getLokasi()); - lokasi.setKeterangan(lokasiDetails.getKeterangan()); - - Lokasi updatedLokasi = lokasiRepository.save(lokasi); - return ResponseEntity.ok(updatedLokasi); + public LokasiResponse updateLokasi(@PathVariable Long id, + @RequestBody LokasiRequest LokasiRequest){ + LokasiRequest.setId(id); + return putUpdateLokasiService.execute(LokasiRequest); } - // delete lokasi rest api @DeleteMapping("/{id}") - public ResponseEntity> deleteLokasi(@PathVariable Long id){ - Lokasi lokasi = lokasiRepository.findById(id) - .orElseThrow(() -> new ResourceNotFoundException("Lokasi not exist with id :" + id)); - - lokasiRepository.delete(lokasi); - Map response = new HashMap<>(); - response.put("deleted", Boolean.TRUE); - return ResponseEntity.ok(response); + public EmptyResponse deleteLokasi(@PathVariable Long id) { + return deleteLokasiService.execute(LokasiRequest.builder() + .id(id) + .build()); } - - - - } diff --git a/src/main/java/com/iconplus/smartproc/controller/MetodePengadaanController.java b/src/main/java/com/iconplus/smartproc/controller/MetodePengadaanController.java index 4a3f594..dbff546 100644 --- a/src/main/java/com/iconplus/smartproc/controller/MetodePengadaanController.java +++ b/src/main/java/com/iconplus/smartproc/controller/MetodePengadaanController.java @@ -1,68 +1,79 @@ package com.iconplus.smartproc.controller; -import com.iconplus.smartproc.model.entity.MetodePengadaan; -import com.iconplus.smartproc.exception.ResourceNotFoundException; -import com.iconplus.smartproc.repository.MetodePengadaanRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import com.iconplus.smartproc.helper.model.EmptyResponse; +import com.iconplus.smartproc.model.request.MetodePengadaanRequest; +import com.iconplus.smartproc.model.response.GetListMetodePengadaanResponse; +import com.iconplus.smartproc.model.response.MetodePengadaanResponse; +import com.iconplus.smartproc.repository.MetodePengadaanRepository; +import com.iconplus.smartproc.service.metodepengadaan.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.web.bind.annotation.*; @CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true") @RestController @RequestMapping("/api/metodepengadaan") public class MetodePengadaanController { - @Autowired - private MetodePengadaanRepository metodepengadaanRepository; - //get all data - @GetMapping - public List getAllMetodepengadaans(){ - return metodepengadaanRepository.findAll(); - } + private final GetListMetodePengadaanService getListMetodePengadaanService; + private final GetMetodePengadaanByIdService getMetodePengadaanByIdService; + private final PostCreateMetodePengadaanService postCreateMetodePengadaanService; + private final PutUpdateMetodePengadaanService putUpdateMetodePengadaanService; + private final DeleteMetodePengadaanService deleteMetodePengadaanService; - // create - @PostMapping - public MetodePengadaan createMetodepengadaan(@RequestBody MetodePengadaan metodepengadaan) { - return metodepengadaanRepository.save(metodepengadaan); - } + public MetodePengadaanController(GetListMetodePengadaanService getListMetodePengadaanService, + GetMetodePengadaanByIdService getMetodePengadaanByIdService, + PostCreateMetodePengadaanService postCreateMetodePengadaanService, + PutUpdateMetodePengadaanService putUpdateMetodePengadaanService, + DeleteMetodePengadaanService deleteMetodePengadaanService) { + this.getListMetodePengadaanService = getListMetodePengadaanService; + this.getMetodePengadaanByIdService = getMetodePengadaanByIdService; + this.postCreateMetodePengadaanService = postCreateMetodePengadaanService; + this.putUpdateMetodePengadaanService = putUpdateMetodePengadaanService; + this.deleteMetodePengadaanService = deleteMetodePengadaanService; + } - // get metodepengadaan by id rest api - @GetMapping("/{id}") - public ResponseEntity getMetodepengadaanById(@PathVariable Long id) { - MetodePengadaan metodepengadaan = metodepengadaanRepository.findById(id) - .orElseThrow(() -> new ResourceNotFoundException("Metodepengadaan not exist with id :" + id)); - return ResponseEntity.ok(metodepengadaan); - } - // update metodepengadaan rest api - @PutMapping("/{id}") - public ResponseEntity updateMetodepengadaan(@PathVariable Long id, @RequestBody MetodePengadaan metodePengadaanDetails){ - MetodePengadaan metodepengadaan = metodepengadaanRepository.findById(id) - .orElseThrow(() -> new ResourceNotFoundException("Metodepengadaan not exist with id :" + id)); + @GetMapping + public GetListMetodePengadaanResponse getListMetodePengadaan(@RequestParam(name = "search", required = false) String search, + @RequestParam(name = "page", defaultValue = "1") Integer page, + @RequestParam(name = "size", defaultValue = "5") Integer size){ - metodepengadaan.setMetodePengadaan(metodePengadaanDetails.getMetodePengadaan()); - metodepengadaan.setKeterangan(metodePengadaanDetails.getKeterangan()); + Pageable pageable = PageRequest.of((page - 1), size); + MetodePengadaanRequest metodePengadaanRequest = MetodePengadaanRequest.builder() + .search(search) + .pageable(pageable) + .build(); - MetodePengadaan updatedMetodePengadaan = metodepengadaanRepository.save(metodepengadaan); - return ResponseEntity.ok(updatedMetodePengadaan); - } + return getListMetodePengadaanService.execute(metodePengadaanRequest); + } - // delete metodepengadaan rest api - @DeleteMapping("/{id}") - public ResponseEntity> deleteMetodepengadaan(@PathVariable Long id){ - MetodePengadaan metodepengadaan = metodepengadaanRepository.findById(id) - .orElseThrow(() -> new ResourceNotFoundException("Metodepengadaan not exist with id :" + id)); + @PostMapping + public MetodePengadaanResponse createMetodePengadaan(@RequestBody MetodePengadaanRequest metodePengadaanRequest) { + return postCreateMetodePengadaanService.execute(metodePengadaanRequest); + } - metodepengadaanRepository.delete(metodepengadaan); - Map response = new HashMap<>(); - response.put("deleted", Boolean.TRUE); - return ResponseEntity.ok(response); - } + @GetMapping("/{id}") + public MetodePengadaanResponse getMetodePengadaanById(@PathVariable Long id) { + return getMetodePengadaanByIdService.execute(MetodePengadaanRequest.builder() + .id(id) + .build()); + } + + + @PutMapping("/{id}") + public MetodePengadaanResponse updateMetodepengadaan(@PathVariable Long id, + @RequestBody MetodePengadaanRequest metodePengadaanRequest){ + metodePengadaanRequest.setId(id); + return putUpdateMetodePengadaanService.execute(metodePengadaanRequest); + } + + @DeleteMapping("/{id}") + public EmptyResponse deleteMetodePengadaan(@PathVariable Long id) { + return deleteMetodePengadaanService.execute(MetodePengadaanRequest.builder() + .id(id) + .build()); + } } - - - diff --git a/src/main/java/com/iconplus/smartproc/controller/MetodePenyampaianController.java b/src/main/java/com/iconplus/smartproc/controller/MetodePenyampaianController.java index e26a782..0615825 100644 --- a/src/main/java/com/iconplus/smartproc/controller/MetodePenyampaianController.java +++ b/src/main/java/com/iconplus/smartproc/controller/MetodePenyampaianController.java @@ -1,68 +1,82 @@ package com.iconplus.smartproc.controller; -import com.iconplus.smartproc.model.entity.MetodePenyampaian; -import com.iconplus.smartproc.exception.ResourceNotFoundException; -import com.iconplus.smartproc.repository.MetodePenyampaianRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import com.iconplus.smartproc.helper.model.EmptyResponse; +import com.iconplus.smartproc.model.request.MetodePenyampaianRequest; +import com.iconplus.smartproc.model.response.GetListMetodePenyampaianResponse; +import com.iconplus.smartproc.model.response.MetodePenyampaianResponse; +import com.iconplus.smartproc.repository.MetodePenyampaianRepository; +import com.iconplus.smartproc.service.metodepenyampaian.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.web.bind.annotation.*; @CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true") @RestController @RequestMapping("/api/metodepenyampaian") public class MetodePenyampaianController { - @Autowired - private MetodePenyampaianRepository metodepenyampaianRepository; - //get all data - @GetMapping - public List getAllMetodepenyampaians(){ - return metodepenyampaianRepository.findAll(); - } + @Autowired + private MetodePenyampaianRepository metodepenyampaianRepository; - // create - @PostMapping - public MetodePenyampaian createMetodepenyampaian(@RequestBody MetodePenyampaian metodepenyampaian) { - return metodepenyampaianRepository.save(metodepenyampaian); - } + private final GetListMetodePenyampaianService getListMetodePenyampaianService; + private final GetMetodePenyampaianByIdService getMetodePenyampaianByIdService; + private final PostCreateMetodePenyampaianService postCreateMetodePenyampaianService; + private final PutUpdateMetodePenyampaianService putUpdateMetodePenyampaianService; + private final DeleteMetodePenyampaianService deleteMetodePenyampaianService; - // get metodepenyampaian by id rest api - @GetMapping("/{id}") - public ResponseEntity getMetodepenyampaianById(@PathVariable Long id) { - MetodePenyampaian metodepenyampaian = metodepenyampaianRepository.findById(id) - .orElseThrow(() -> new ResourceNotFoundException("Metodepenyampaian not exist with id :" + id)); - return ResponseEntity.ok(metodepenyampaian); - } + public MetodePenyampaianController(GetListMetodePenyampaianService getListMetodePenyampaianService, + GetMetodePenyampaianByIdService getMetodePenyampaianByIdService, + PostCreateMetodePenyampaianService postCreateMetodePenyampaianService, + PutUpdateMetodePenyampaianService putUpdateMetodePenyampaianService, + DeleteMetodePenyampaianService deleteMetodePenyampaianService) { + this.getListMetodePenyampaianService = getListMetodePenyampaianService; + this.getMetodePenyampaianByIdService = getMetodePenyampaianByIdService; + this.postCreateMetodePenyampaianService = postCreateMetodePenyampaianService; + this.putUpdateMetodePenyampaianService = putUpdateMetodePenyampaianService; + this.deleteMetodePenyampaianService = deleteMetodePenyampaianService; + } - // update metodepenyampaian rest api - @PutMapping("/{id}") - public ResponseEntity updateMetodepenyampaian(@PathVariable Long id, @RequestBody MetodePenyampaian metodePenyampaianDetails){ - MetodePenyampaian metodepenyampaian = metodepenyampaianRepository.findById(id) - .orElseThrow(() -> new ResourceNotFoundException("Metodepenyampaian not exist with id :" + id)); - metodepenyampaian.setMetodePenyampaian(metodePenyampaianDetails.getMetodePenyampaian()); - metodepenyampaian.setKeterangan(metodePenyampaianDetails.getKeterangan()); + @GetMapping + public GetListMetodePenyampaianResponse getListMetodePenyampaian(@RequestParam(name = "search", required = false) String search, + @RequestParam(name = "page", defaultValue = "1") Integer page, + @RequestParam(name = "size", defaultValue = "5") Integer size){ - MetodePenyampaian updatedMetodePenyampaian = metodepenyampaianRepository.save(metodepenyampaian); - return ResponseEntity.ok(updatedMetodePenyampaian); - } + Pageable pageable = PageRequest.of((page - 1), size); + MetodePenyampaianRequest metodePenyampaianRequest = MetodePenyampaianRequest.builder() + .search(search) + .pageable(pageable) + .build(); - // delete metodepenyampaian rest api - @DeleteMapping("/{id}") - public ResponseEntity> deleteMetodepenyampaian(@PathVariable Long id){ - MetodePenyampaian metodepenyampaian = metodepenyampaianRepository.findById(id) - .orElseThrow(() -> new ResourceNotFoundException("Metodepenyampaian not exist with id :" + id)); + return getListMetodePenyampaianService.execute(metodePenyampaianRequest); + } - metodepenyampaianRepository.delete(metodepenyampaian); - Map response = new HashMap<>(); - response.put("deleted", Boolean.TRUE); - return ResponseEntity.ok(response); - } + @PostMapping + public MetodePenyampaianResponse createMetodePenyampaian(@RequestBody MetodePenyampaianRequest metodePenyampaianRequest) { + return postCreateMetodePenyampaianService.execute(metodePenyampaianRequest); + } + + @GetMapping("/{id}") + public MetodePenyampaianResponse getMetodePenyampaianById(@PathVariable Long id) { + return getMetodePenyampaianByIdService.execute(MetodePenyampaianRequest.builder() + .id(id) + .build()); + } + + + @PutMapping("/{id}") + public MetodePenyampaianResponse updateMetodepenyampaian(@PathVariable Long id, + @RequestBody MetodePenyampaianRequest metodePenyampaianRequest){ + metodePenyampaianRequest.setId(id); + return putUpdateMetodePenyampaianService.execute(metodePenyampaianRequest); + } + + @DeleteMapping("/{id}") + public EmptyResponse deleteMetodePenyampaian(@PathVariable Long id) { + return deleteMetodePenyampaianService.execute(MetodePenyampaianRequest.builder() + .id(id) + .build()); + } } - - - diff --git a/src/main/java/com/iconplus/smartproc/controller/StrategiPengadaanController.java b/src/main/java/com/iconplus/smartproc/controller/StrategiPengadaanController.java index 6321505..7575d5e 100644 --- a/src/main/java/com/iconplus/smartproc/controller/StrategiPengadaanController.java +++ b/src/main/java/com/iconplus/smartproc/controller/StrategiPengadaanController.java @@ -1,69 +1,76 @@ package com.iconplus.smartproc.controller; -import com.iconplus.smartproc.model.entity.StrategiPengadaan; -import com.iconplus.smartproc.exception.ResourceNotFoundException; -import com.iconplus.smartproc.repository.StrategiPengadaanRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; +import com.iconplus.smartproc.helper.model.EmptyResponse; +import com.iconplus.smartproc.model.request.StrategiPengadaanRequest; +import com.iconplus.smartproc.model.response.GetListStrategiPengadaanResponse; +import com.iconplus.smartproc.model.response.StrategiPengadaanResponse; +import com.iconplus.smartproc.service.strategipengadaan.*; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.web.bind.annotation.*; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - @CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true") @RestController @RequestMapping("/api/strategipengadaan") public class StrategiPengadaanController { - @Autowired - private StrategiPengadaanRepository strategipengadaanRepository; - //get all data - @GetMapping - public List getAllstrategipengadaans(){ - return strategipengadaanRepository.findAll(); - } + private final DeleteStrategiPengadaanService deleteStrategiPengadaanService; + private final GetListStrategiPengadaanService getListStrategiPengadaanService; + private final GetStrategiPengadaanByIdService getStrategiPengadaanByIdService; + private final PostCreateStrategiPengadaanService postCreateStrategiPengadaanService; + private final PutUpdateStrategiPengadaanService putUpdateStrategiPengadaanService; - // create - @PostMapping - public StrategiPengadaan createStrategipengadaan(@RequestBody StrategiPengadaan strategipengadaan) { - return strategipengadaanRepository.save(strategipengadaan); - } + public StrategiPengadaanController(DeleteStrategiPengadaanService deleteStrategiPengadaanService, + GetListStrategiPengadaanService getListStrategiPengadaanService, + GetStrategiPengadaanByIdService getStrategiPengadaanByIdService, + PostCreateStrategiPengadaanService postCreateStrategiPengadaanService, + PutUpdateStrategiPengadaanService putUpdateStrategiPengadaanService) { + this.deleteStrategiPengadaanService = deleteStrategiPengadaanService; + this.getListStrategiPengadaanService = getListStrategiPengadaanService; + this.getStrategiPengadaanByIdService = getStrategiPengadaanByIdService; + this.postCreateStrategiPengadaanService = postCreateStrategiPengadaanService; + this.putUpdateStrategiPengadaanService = putUpdateStrategiPengadaanService; - // get strategipengadaan by id rest api - @GetMapping("/{id}") - public ResponseEntity getStrategipengadaanById(@PathVariable Long id) { - StrategiPengadaan strategipengadaan = strategipengadaanRepository.findById(id) - .orElseThrow(() -> new ResourceNotFoundException("Strategipengadaan not exist with id :" + id)); - return ResponseEntity.ok(strategipengadaan); - } - - // update strategipengadaan rest api - @PutMapping("/{id}") - public ResponseEntity updateStrategipengadaan(@PathVariable Long id, @RequestBody StrategiPengadaan strategiPengadaanDetails){ - StrategiPengadaan strategipengadaan = strategipengadaanRepository.findById(id) - .orElseThrow(() -> new ResourceNotFoundException("Strategipengadaan not exist with id :" + id)); - - strategipengadaan.setStrategiPengadaan(strategiPengadaanDetails.getStrategiPengadaan()); - strategipengadaan.setKeterangan(strategiPengadaanDetails.getKeterangan()); - - StrategiPengadaan updatedStrategiPengadaan = strategipengadaanRepository.save(strategipengadaan); - return ResponseEntity.ok(updatedStrategiPengadaan); - } - - // delete strategipengadaan rest api - @DeleteMapping("/{id}") - public ResponseEntity> deleteStrategipengadaan(@PathVariable Long id){ - StrategiPengadaan strategipengadaan = strategipengadaanRepository.findById(id) - .orElseThrow(() -> new ResourceNotFoundException("Strategipengadaan not exist with id :" + id)); - - strategipengadaanRepository.delete(strategipengadaan); - Map response = new HashMap<>(); - response.put("deleted", Boolean.TRUE); - return ResponseEntity.ok(response); - } + } + @GetMapping + public GetListStrategiPengadaanResponse getListStrategiPengadaan(@RequestParam(name = "search", required = false) String search, + @RequestParam(name = "page", defaultValue = "1") Integer page, + @RequestParam(name = "size", defaultValue = "5") Integer size){ + Pageable pageable = PageRequest.of((page - 1), size); + StrategiPengadaanRequest strategiPengadaanRequest = StrategiPengadaanRequest.builder() + .search(search) + .pageable(pageable) + .build(); + return getListStrategiPengadaanService.execute(strategiPengadaanRequest); + } + + @PostMapping + public StrategiPengadaanResponse createStrategiPengadaan(@RequestBody StrategiPengadaanRequest strategiPengadaanRequest) { + return postCreateStrategiPengadaanService.execute(strategiPengadaanRequest); + } + + @GetMapping("/{id}") + public StrategiPengadaanResponse getStrategiPengadaan(@PathVariable Long id) { + return getStrategiPengadaanByIdService.execute(StrategiPengadaanRequest.builder() + .id(id) + .build()); + } + + @PutMapping("/{id}") + public StrategiPengadaanResponse updateStrategiPengadaan(@PathVariable Long id, + @RequestBody StrategiPengadaanRequest strategiPengadaanRequest){ + strategiPengadaanRequest.setId(id); + return putUpdateStrategiPengadaanService.execute(strategiPengadaanRequest); + } + + @DeleteMapping("/{id}") + public EmptyResponse deleteStrategiPengadaan(@PathVariable Long id) { + return deleteStrategiPengadaanService.execute(StrategiPengadaanRequest.builder() + .id(id) + .build()); + } } diff --git a/src/main/java/com/iconplus/smartproc/controller/SupplyPositioningMatrixController.java b/src/main/java/com/iconplus/smartproc/controller/SupplyPositioningMatrixController.java index 36b00ce..79a3791 100644 --- a/src/main/java/com/iconplus/smartproc/controller/SupplyPositioningMatrixController.java +++ b/src/main/java/com/iconplus/smartproc/controller/SupplyPositioningMatrixController.java @@ -1,74 +1,82 @@ package com.iconplus.smartproc.controller; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.CrossOrigin; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.iconplus.smartproc.exception.ResourceNotFoundException; -import com.iconplus.smartproc.model.entity.SupplyPositioningMatrix; +import com.iconplus.smartproc.helper.model.EmptyResponse; +import com.iconplus.smartproc.model.request.SupplyPositioningMatrixRequest; +import com.iconplus.smartproc.model.response.GetListSupplyPositioningMatrixResponse; +import com.iconplus.smartproc.model.response.SupplyPositioningMatrixResponse; import com.iconplus.smartproc.repository.SupplyPositioningMatrixRepository; +import com.iconplus.smartproc.service.supplypositioningmatrix.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.web.bind.annotation.*; @CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true") @RestController @RequestMapping("/api/supplypositioningmatrix") public class SupplyPositioningMatrixController { - @Autowired - private SupplyPositioningMatrixRepository supplypositioningmatrixRepository; - //get all data - @GetMapping - public List getAllSupplypositioningmatrix(){ - return supplypositioningmatrixRepository.findAll(); - } + @Autowired + private SupplyPositioningMatrixRepository supplypositioningmatrixRepository; - // create - @PostMapping - public SupplyPositioningMatrix createSupplypositioningmatrix(@RequestBody SupplyPositioningMatrix supplypositioningmatrix) { - return supplypositioningmatrixRepository.save(supplypositioningmatrix); - } + private final GetListSupplyPositioningMatrixService getListSupplyPositioningMatrixService; + private final GetSupplyPositioningMatrixByIdService getSupplyPositioningMatrixByIdService; + private final PostCreateSupplyPositioningMatrixService postCreateSupplyPositioningMatrixService; + private final PutUpdateSupplyPositioningMatrixService putUpdateSupplyPositioningMatrixService; + private final DeleteSupplyPositioningMatrixService deleteSupplyPositioningMatrixService; - // get supplypositioningmatrix by id rest api - @GetMapping("/{id}") - public ResponseEntity getSupplypositioningmatrixById(@PathVariable Long id) { - SupplyPositioningMatrix supplypositioningmatrix = supplypositioningmatrixRepository.findById(id) - .orElseThrow(() -> new ResourceNotFoundException("Supplypositioningmatrix not exist with id :" + id)); - return ResponseEntity.ok(supplypositioningmatrix); - } + public SupplyPositioningMatrixController(GetListSupplyPositioningMatrixService getListSupplyPositioningMatrixService, + GetSupplyPositioningMatrixByIdService getSupplyPositioningMatrixByIdService, + PostCreateSupplyPositioningMatrixService postCreateSupplyPositioningMatrixService, + PutUpdateSupplyPositioningMatrixService putUpdateSupplyPositioningMatrixService, + DeleteSupplyPositioningMatrixService deleteSupplyPositioningMatrixService) { + this.getListSupplyPositioningMatrixService = getListSupplyPositioningMatrixService; + this.getSupplyPositioningMatrixByIdService = getSupplyPositioningMatrixByIdService; + this.postCreateSupplyPositioningMatrixService = postCreateSupplyPositioningMatrixService; + this.putUpdateSupplyPositioningMatrixService = putUpdateSupplyPositioningMatrixService; + this.deleteSupplyPositioningMatrixService = deleteSupplyPositioningMatrixService; + } - // update jenispengadaan rest api - @PutMapping("/{id}") - public ResponseEntity updateSupplypositioningmatrix(@PathVariable Long id, @RequestBody SupplyPositioningMatrix supplyPositioningMatrixDetails){ - SupplyPositioningMatrix supplypositioningmatrix = supplypositioningmatrixRepository.findById(id) - .orElseThrow(() -> new ResourceNotFoundException("Supplypositioningmatrix not exist with id :" + id)); - supplypositioningmatrix.setSupplyPositioningMatrix(supplyPositioningMatrixDetails.getSupplyPositioningMatrix()); - supplypositioningmatrix.setKeterangan(supplyPositioningMatrixDetails.getKeterangan()); + @GetMapping + public GetListSupplyPositioningMatrixResponse getListSupplyPositioningMatrix(@RequestParam(name = "search", required = false) String search, + @RequestParam(name = "page", defaultValue = "1") Integer page, + @RequestParam(name = "size", defaultValue = "5") Integer size){ - SupplyPositioningMatrix updatedSupplyPositioningMatrix = supplypositioningmatrixRepository.save(supplypositioningmatrix); - return ResponseEntity.ok(updatedSupplyPositioningMatrix); - } + Pageable pageable = PageRequest.of((page - 1), size); + SupplyPositioningMatrixRequest supplyPositioningMatrixRequest = SupplyPositioningMatrixRequest.builder() + .search(search) + .pageable(pageable) + .build(); - // delete jenispengadaan rest api - @DeleteMapping("/{id}") - public ResponseEntity> deleteSupplypositioningmatrix(@PathVariable Long id){ - SupplyPositioningMatrix supplypositioningmatrix = supplypositioningmatrixRepository.findById(id) - .orElseThrow(() -> new ResourceNotFoundException("Unit inisiator not exist with id :" + id)); + return getListSupplyPositioningMatrixService.execute(supplyPositioningMatrixRequest); + } - supplypositioningmatrixRepository.delete(supplypositioningmatrix); - Map response = new HashMap<>(); - response.put("deleted", Boolean.TRUE); - return ResponseEntity.ok(response); - } + @PostMapping + public SupplyPositioningMatrixResponse createSupplyPositioningMatrix(@RequestBody SupplyPositioningMatrixRequest supplyPositioningMatrixRequest) { + return postCreateSupplyPositioningMatrixService.execute(supplyPositioningMatrixRequest); + } + + @GetMapping("/{id}") + public SupplyPositioningMatrixResponse getSupplyPositioningMatrixById(@PathVariable Long id) { + return getSupplyPositioningMatrixByIdService.execute(SupplyPositioningMatrixRequest.builder() + .id(id) + .build()); + } + + + @PutMapping("/{id}") + public SupplyPositioningMatrixResponse updateSupplyPositioningmatrix(@PathVariable Long id, + @RequestBody SupplyPositioningMatrixRequest supplyPositioningMatrixRequest){ + supplyPositioningMatrixRequest.setId(id); + return putUpdateSupplyPositioningMatrixService.execute(supplyPositioningMatrixRequest); + } + + @DeleteMapping("/{id}") + public EmptyResponse deleteSupplyPositioningMatrix(@PathVariable Long id) { + return deleteSupplyPositioningMatrixService.execute(SupplyPositioningMatrixRequest.builder() + .id(id) + .build()); + } } diff --git a/src/main/java/com/iconplus/smartproc/model/entity/MetodePengadaan.java b/src/main/java/com/iconplus/smartproc/model/entity/MetodePengadaan.java index aa6a2bf..ad83b9f 100644 --- a/src/main/java/com/iconplus/smartproc/model/entity/MetodePengadaan.java +++ b/src/main/java/com/iconplus/smartproc/model/entity/MetodePengadaan.java @@ -29,6 +29,10 @@ public class MetodePengadaan extends BaseEntity { @Column(name = "is_active") @Type(type = "org.hibernate.type.NumericBooleanType") + private Boolean isActive; + + @Column(name = "is_delete") + @Type(type = "org.hibernate.type.NumericBooleanType") private Boolean isDelete; } diff --git a/src/main/java/com/iconplus/smartproc/model/projection/JenisKontrakView.java b/src/main/java/com/iconplus/smartproc/model/projection/JenisKontrakView.java new file mode 100644 index 0000000..c5d1018 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/projection/JenisKontrakView.java @@ -0,0 +1,15 @@ +package com.iconplus.smartproc.model.projection; + +public interface JenisKontrakView { + Long getId(); + String getJenisKontrak(); + String getKeterangan(); + Boolean getIsActive(); + Boolean getIsDelete(); + + void setId(Long id); + void setJenisKontrak(String jenisKontrak); + void setKeterangan(String keterangan); + void setIsActive(Boolean isActive); + void setIsDelete(Boolean isDelete); +} diff --git a/src/main/java/com/iconplus/smartproc/model/projection/LokasiView.java b/src/main/java/com/iconplus/smartproc/model/projection/LokasiView.java new file mode 100644 index 0000000..3854c8e --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/projection/LokasiView.java @@ -0,0 +1,16 @@ +package com.iconplus.smartproc.model.projection; + +public interface LokasiView { + + Long getId(); + String getLokasi(); + String getKeterangan(); + Boolean getIsActive(); + Boolean getIsDelete(); + + void setId(Long id); + void setLokasi(String lokasi); + void setKeterangan(String keterangan); + void setIsActive(Boolean isActive); + void setIsDelete(Boolean isDelete); +} diff --git a/src/main/java/com/iconplus/smartproc/model/projection/MetodePengadaanView.java b/src/main/java/com/iconplus/smartproc/model/projection/MetodePengadaanView.java new file mode 100644 index 0000000..d8601ac --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/projection/MetodePengadaanView.java @@ -0,0 +1,16 @@ +package com.iconplus.smartproc.model.projection; + +public interface MetodePengadaanView { + + Long getId(); + String getMetodePengadaan(); + String getKeterangan(); + Boolean getIsActive(); + Boolean getIsDelete(); + + void setId(Long id); + void setMetodePengadaan(String metodePengadaan); + void setKeterangan(String keterangan); + void setIsActive(Boolean isActive); + void setIsDelete(Boolean isDelete); +} diff --git a/src/main/java/com/iconplus/smartproc/model/projection/MetodePenyampaianView.java b/src/main/java/com/iconplus/smartproc/model/projection/MetodePenyampaianView.java new file mode 100644 index 0000000..423549f --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/projection/MetodePenyampaianView.java @@ -0,0 +1,16 @@ +package com.iconplus.smartproc.model.projection; + +public interface MetodePenyampaianView { + + Long getId(); + String getMetodePenyampaian(); + String getKeterangan(); + Boolean getIsActive(); + Boolean getIsDelete(); + + void setId(Long id); + void setMetodePenyampaian(String metodePenyampaian); + void setKeterangan(String keterangan); + void setIsActive(Boolean isActive); + void setIsDelete(Boolean isDelete); +} diff --git a/src/main/java/com/iconplus/smartproc/model/projection/StrategiPengadaanView.java b/src/main/java/com/iconplus/smartproc/model/projection/StrategiPengadaanView.java new file mode 100644 index 0000000..417435b --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/projection/StrategiPengadaanView.java @@ -0,0 +1,16 @@ +package com.iconplus.smartproc.model.projection; + +public interface StrategiPengadaanView { + + Long getId(); + String getStrategiPengadaan(); + String getKeterangan(); + Boolean getIsActive(); + Boolean getIsDelete(); + + void setId(Long id); + void setStrategiPengadaan(String strategiPengadaan); + void setKeterangan(String keterangan); + void setIsActive(Boolean isActive); + void setIsDelete(Boolean isDelete); +} diff --git a/src/main/java/com/iconplus/smartproc/model/projection/SupplyPositioningMatrixView.java b/src/main/java/com/iconplus/smartproc/model/projection/SupplyPositioningMatrixView.java new file mode 100644 index 0000000..9f84160 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/projection/SupplyPositioningMatrixView.java @@ -0,0 +1,16 @@ +package com.iconplus.smartproc.model.projection; + +public interface SupplyPositioningMatrixView { + + Long getId(); + String getSupplyPositioningMatrix(); + String getKeterangan(); + Boolean getIsActive(); + Boolean getIsDelete(); + + void setId(Long id); + void setSupplyPositioningMatrix(String supplyPositioningMatrix); + void setKeterangan(String keterangan); + void setIsActive(Boolean isActive); + void setIsDelete(Boolean isDelete); +} diff --git a/src/main/java/com/iconplus/smartproc/model/request/JenisKontrakRequest.java b/src/main/java/com/iconplus/smartproc/model/request/JenisKontrakRequest.java new file mode 100644 index 0000000..e3c1f4e --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/request/JenisKontrakRequest.java @@ -0,0 +1,23 @@ +package com.iconplus.smartproc.model.request; + +import com.iconplus.smartproc.helper.base.BaseRequest; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.data.domain.Pageable; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class JenisKontrakRequest extends BaseRequest { + + private Long id; + private String jenisKontrak; + private String keterangan; + private Boolean isActive; + private Boolean isDelete; + private String search; + private transient Pageable pageable; +} diff --git a/src/main/java/com/iconplus/smartproc/model/request/LokasiRequest.java b/src/main/java/com/iconplus/smartproc/model/request/LokasiRequest.java new file mode 100644 index 0000000..5df5a09 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/request/LokasiRequest.java @@ -0,0 +1,23 @@ +package com.iconplus.smartproc.model.request; + +import com.iconplus.smartproc.helper.base.BaseRequest; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.data.domain.Pageable; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class LokasiRequest extends BaseRequest { + + private Long id; + private String lokasi; + private String keterangan; + private Boolean isActive; + private Boolean isDelete; + private String search; + private transient Pageable pageable; +} diff --git a/src/main/java/com/iconplus/smartproc/model/request/MetodePengadaanRequest.java b/src/main/java/com/iconplus/smartproc/model/request/MetodePengadaanRequest.java new file mode 100644 index 0000000..28d825d --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/request/MetodePengadaanRequest.java @@ -0,0 +1,23 @@ +package com.iconplus.smartproc.model.request; + +import com.iconplus.smartproc.helper.base.BaseRequest; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.data.domain.Pageable; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MetodePengadaanRequest extends BaseRequest { + + private Long id; + private String metodePengadaan; + private String keterangan; + private Boolean isActive; + private Boolean isDelete; + private String search; + private transient Pageable pageable; +} diff --git a/src/main/java/com/iconplus/smartproc/model/request/MetodePenyampaianRequest.java b/src/main/java/com/iconplus/smartproc/model/request/MetodePenyampaianRequest.java new file mode 100644 index 0000000..26f32ef --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/request/MetodePenyampaianRequest.java @@ -0,0 +1,23 @@ +package com.iconplus.smartproc.model.request; + +import com.iconplus.smartproc.helper.base.BaseRequest; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.data.domain.Pageable; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MetodePenyampaianRequest extends BaseRequest { + + private Long id; + private String metodePenyampaian; + private String keterangan; + private Boolean isActive; + private Boolean isDelete; + private String search; + private transient Pageable pageable; +} diff --git a/src/main/java/com/iconplus/smartproc/model/request/StrategiPengadaanRequest.java b/src/main/java/com/iconplus/smartproc/model/request/StrategiPengadaanRequest.java new file mode 100644 index 0000000..be306f9 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/request/StrategiPengadaanRequest.java @@ -0,0 +1,23 @@ +package com.iconplus.smartproc.model.request; + +import com.iconplus.smartproc.helper.base.BaseRequest; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.data.domain.Pageable; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class StrategiPengadaanRequest extends BaseRequest { + + private Long id; + private String strategiPengadaan; + private String keterangan; + private Boolean isActive; + private Boolean isDelete; + private String search; + private transient Pageable pageable; +} diff --git a/src/main/java/com/iconplus/smartproc/model/request/SupplyPositioningMatrixRequest.java b/src/main/java/com/iconplus/smartproc/model/request/SupplyPositioningMatrixRequest.java new file mode 100644 index 0000000..b010ef6 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/request/SupplyPositioningMatrixRequest.java @@ -0,0 +1,23 @@ +package com.iconplus.smartproc.model.request; + +import com.iconplus.smartproc.helper.base.BaseRequest; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.data.domain.Pageable; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SupplyPositioningMatrixRequest extends BaseRequest { + + private Long id; + private String supplyPositioningMatrix; + private String keterangan; + private Boolean isActive; + private Boolean isDelete; + private String search; + private transient Pageable pageable; +} diff --git a/src/main/java/com/iconplus/smartproc/model/response/GetListJenisKontrakResponse.java b/src/main/java/com/iconplus/smartproc/model/response/GetListJenisKontrakResponse.java new file mode 100644 index 0000000..0e530af --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/response/GetListJenisKontrakResponse.java @@ -0,0 +1,20 @@ +package com.iconplus.smartproc.model.response; + +import com.iconplus.smartproc.helper.base.BaseResponse; +import com.iconplus.smartproc.helper.model.Pagination; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class GetListJenisKontrakResponse extends BaseResponse { + + private List data; + private Pagination pagination; +} diff --git a/src/main/java/com/iconplus/smartproc/model/response/GetListLokasiResponse.java b/src/main/java/com/iconplus/smartproc/model/response/GetListLokasiResponse.java new file mode 100644 index 0000000..ddf4fba --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/response/GetListLokasiResponse.java @@ -0,0 +1,20 @@ +package com.iconplus.smartproc.model.response; + +import com.iconplus.smartproc.helper.base.BaseResponse; +import com.iconplus.smartproc.helper.model.Pagination; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class GetListLokasiResponse extends BaseResponse { + + private List data; + private Pagination pagination; +} diff --git a/src/main/java/com/iconplus/smartproc/model/response/GetListMetodePengadaanResponse.java b/src/main/java/com/iconplus/smartproc/model/response/GetListMetodePengadaanResponse.java new file mode 100644 index 0000000..8e4287c --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/response/GetListMetodePengadaanResponse.java @@ -0,0 +1,20 @@ +package com.iconplus.smartproc.model.response; + +import com.iconplus.smartproc.helper.base.BaseResponse; +import com.iconplus.smartproc.helper.model.Pagination; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class GetListMetodePengadaanResponse extends BaseResponse { + + private List data; + private Pagination pagination; +} diff --git a/src/main/java/com/iconplus/smartproc/model/response/GetListMetodePenyampaianResponse.java b/src/main/java/com/iconplus/smartproc/model/response/GetListMetodePenyampaianResponse.java new file mode 100644 index 0000000..58fc020 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/response/GetListMetodePenyampaianResponse.java @@ -0,0 +1,20 @@ +package com.iconplus.smartproc.model.response; + +import com.iconplus.smartproc.helper.base.BaseResponse; +import com.iconplus.smartproc.helper.model.Pagination; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class GetListMetodePenyampaianResponse extends BaseResponse { + + private List data; + private Pagination pagination; +} diff --git a/src/main/java/com/iconplus/smartproc/model/response/GetListStrategiPengadaanResponse.java b/src/main/java/com/iconplus/smartproc/model/response/GetListStrategiPengadaanResponse.java new file mode 100644 index 0000000..68e64a4 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/response/GetListStrategiPengadaanResponse.java @@ -0,0 +1,20 @@ +package com.iconplus.smartproc.model.response; + +import com.iconplus.smartproc.helper.base.BaseResponse; +import com.iconplus.smartproc.helper.model.Pagination; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class GetListStrategiPengadaanResponse extends BaseResponse { + + private List data; + private Pagination pagination; +} diff --git a/src/main/java/com/iconplus/smartproc/model/response/GetListSupplyPositioningMatrixResponse.java b/src/main/java/com/iconplus/smartproc/model/response/GetListSupplyPositioningMatrixResponse.java new file mode 100644 index 0000000..ed3efb6 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/response/GetListSupplyPositioningMatrixResponse.java @@ -0,0 +1,20 @@ +package com.iconplus.smartproc.model.response; + +import com.iconplus.smartproc.helper.base.BaseResponse; +import com.iconplus.smartproc.helper.model.Pagination; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class GetListSupplyPositioningMatrixResponse extends BaseResponse { + + private List data; + private Pagination pagination; +} diff --git a/src/main/java/com/iconplus/smartproc/model/response/JenisKontrakResponse.java b/src/main/java/com/iconplus/smartproc/model/response/JenisKontrakResponse.java new file mode 100644 index 0000000..6ff9ad1 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/response/JenisKontrakResponse.java @@ -0,0 +1,21 @@ +package com.iconplus.smartproc.model.response; + +import com.iconplus.smartproc.helper.base.BaseResponse; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class JenisKontrakResponse extends BaseResponse { + + private Long id; + private String jenisKontrak; + private String keterangan; + private Boolean isActive; + private Boolean isDelete; + +} diff --git a/src/main/java/com/iconplus/smartproc/model/response/LokasiResponse.java b/src/main/java/com/iconplus/smartproc/model/response/LokasiResponse.java new file mode 100644 index 0000000..774d422 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/response/LokasiResponse.java @@ -0,0 +1,21 @@ +package com.iconplus.smartproc.model.response; + +import com.iconplus.smartproc.helper.base.BaseResponse; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class LokasiResponse extends BaseResponse { + + private long id; + private String lokasi; + private String keterangan; + private Boolean isActive; + private Boolean isDelete; + +} diff --git a/src/main/java/com/iconplus/smartproc/model/response/MetodePengadaanResponse.java b/src/main/java/com/iconplus/smartproc/model/response/MetodePengadaanResponse.java new file mode 100644 index 0000000..b32cdfa --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/response/MetodePengadaanResponse.java @@ -0,0 +1,21 @@ +package com.iconplus.smartproc.model.response; + +import com.iconplus.smartproc.helper.base.BaseResponse; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MetodePengadaanResponse extends BaseResponse { + + private long id; + private String metodePengadaan; + private String keterangan; + private Boolean isActive; + private Boolean isDelete; + +} diff --git a/src/main/java/com/iconplus/smartproc/model/response/MetodePenyampaianResponse.java b/src/main/java/com/iconplus/smartproc/model/response/MetodePenyampaianResponse.java new file mode 100644 index 0000000..9538e96 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/response/MetodePenyampaianResponse.java @@ -0,0 +1,21 @@ +package com.iconplus.smartproc.model.response; + +import com.iconplus.smartproc.helper.base.BaseResponse; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MetodePenyampaianResponse extends BaseResponse { + + private long id; + private String metodePenyampaian; + private String keterangan; + private Boolean isActive; + private Boolean isDelete; + +} diff --git a/src/main/java/com/iconplus/smartproc/model/response/StrategiPengadaanResponse.java b/src/main/java/com/iconplus/smartproc/model/response/StrategiPengadaanResponse.java new file mode 100644 index 0000000..2e43692 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/response/StrategiPengadaanResponse.java @@ -0,0 +1,21 @@ +package com.iconplus.smartproc.model.response; + +import com.iconplus.smartproc.helper.base.BaseResponse; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class StrategiPengadaanResponse extends BaseResponse { + + private long id; + private String strategiPengadaan; + private String keterangan; + private Boolean isActive; + private Boolean isDelete; + +} diff --git a/src/main/java/com/iconplus/smartproc/model/response/SupplyPositioningMatrixResponse.java b/src/main/java/com/iconplus/smartproc/model/response/SupplyPositioningMatrixResponse.java new file mode 100644 index 0000000..4f0dd29 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/response/SupplyPositioningMatrixResponse.java @@ -0,0 +1,21 @@ +package com.iconplus.smartproc.model.response; + +import com.iconplus.smartproc.helper.base.BaseResponse; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SupplyPositioningMatrixResponse extends BaseResponse { + + private long id; + private String supplyPositioningMatrix; + private String keterangan; + private Boolean isActive; + private Boolean isDelete; + +} diff --git a/src/main/java/com/iconplus/smartproc/repository/JenisKontrakRepository.java b/src/main/java/com/iconplus/smartproc/repository/JenisKontrakRepository.java index efeb796..187e656 100644 --- a/src/main/java/com/iconplus/smartproc/repository/JenisKontrakRepository.java +++ b/src/main/java/com/iconplus/smartproc/repository/JenisKontrakRepository.java @@ -1,10 +1,32 @@ package com.iconplus.smartproc.repository; import com.iconplus.smartproc.model.entity.JenisKontrak; +import com.iconplus.smartproc.model.projection.JenisKontrakView; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; +import java.util.Optional; + @Repository public interface JenisKontrakRepository extends JpaRepository { - -} + + @Query(value = "SELECT jk.id as id, " + + "jk.jenisKontrak as jenisKontrak, " + + "jk.keterangan as keterangan, " + + "jk.isActive as isActive, " + + "jk.isDelete as isDelete " + + "FROM JenisKontrak jk " + + "WHERE jk.isDelete = false " + + "AND (:search is '' " + + "or UPPER(jk.jenisKontrak) like :search) " + + "ORDER BY jk.id") + Page getAllJenisKontrak(String search, Pageable pageable); + + Optional findByIdAndIsDeleteFalse(Long id); + + Optional findByJenisKontrakAndIsDeleteFalse(String jenisKontrak); + +} \ No newline at end of file diff --git a/src/main/java/com/iconplus/smartproc/repository/LokasiRepository.java b/src/main/java/com/iconplus/smartproc/repository/LokasiRepository.java index f3e178b..b48a040 100644 --- a/src/main/java/com/iconplus/smartproc/repository/LokasiRepository.java +++ b/src/main/java/com/iconplus/smartproc/repository/LokasiRepository.java @@ -1,10 +1,32 @@ package com.iconplus.smartproc.repository; import com.iconplus.smartproc.model.entity.Lokasi; +import com.iconplus.smartproc.model.projection.LokasiView; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; +import java.util.Optional; + @Repository public interface LokasiRepository extends JpaRepository { + + @Query(value = "SELECT l.id as id, " + + "l.lokasi as lokasi, " + + "l.keterangan as keterangan, " + + "l.isActive as isActive, " + + "l.isDelete as isDelete " + + "FROM Lokasi l " + + "WHERE l.isDelete = false " + + "AND (:search = '' " + + "or UPPER(l.lokasi) like :search) " + + "ORDER BY l.id") + Page getAllLokasi(String search, Pageable pageable); + + Optional findByIdAndIsDeleteFalse(Long id); + + Optional findByLokasiAndIsDeleteFalse(String lokasi); } diff --git a/src/main/java/com/iconplus/smartproc/repository/MetodePengadaanRepository.java b/src/main/java/com/iconplus/smartproc/repository/MetodePengadaanRepository.java index 8eeb1f9..b8a18aa 100644 --- a/src/main/java/com/iconplus/smartproc/repository/MetodePengadaanRepository.java +++ b/src/main/java/com/iconplus/smartproc/repository/MetodePengadaanRepository.java @@ -1,10 +1,32 @@ package com.iconplus.smartproc.repository; import com.iconplus.smartproc.model.entity.MetodePengadaan; +import com.iconplus.smartproc.model.projection.MetodePengadaanView; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; +import java.util.Optional; + @Repository public interface MetodePengadaanRepository extends JpaRepository { + + @Query(value = "SELECT mp.id as id, " + + "mp.metodePengadaan as metodePengadaan, " + + "mp.keterangan as keterangan, " + + "mp.isActive as isActive, " + + "mp.isDelete as isDelete " + + "FROM MetodePengadaan mp " + + "WHERE mp.isDelete = false " + + "AND (:search = '' " + + "or UPPER(mp.metodePengadaan) like :search) " + + "ORDER BY mp.id") + Page getAllMetodePengadaan(String search, Pageable pageable); + + Optional findByIdAndIsDeleteFalse(Long id); + + Optional findByMetodePengadaanAndIsDeleteFalse(String metodePengadaan); } diff --git a/src/main/java/com/iconplus/smartproc/repository/MetodePenyampaianRepository.java b/src/main/java/com/iconplus/smartproc/repository/MetodePenyampaianRepository.java index 1132dde..2c4f633 100644 --- a/src/main/java/com/iconplus/smartproc/repository/MetodePenyampaianRepository.java +++ b/src/main/java/com/iconplus/smartproc/repository/MetodePenyampaianRepository.java @@ -1,10 +1,32 @@ package com.iconplus.smartproc.repository; import com.iconplus.smartproc.model.entity.MetodePenyampaian; +import com.iconplus.smartproc.model.projection.MetodePenyampaianView; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; +import java.util.Optional; + @Repository public interface MetodePenyampaianRepository extends JpaRepository { + + @Query(value = "SELECT mp.id as id, " + + "mp.metodePenyampaian as metodePenyampaian, " + + "mp.keterangan as keterangan, " + + "mp.isActive as isActive, " + + "mp.isDelete as isDelete " + + "FROM MetodePenyampaian mp " + + "WHERE mp.isDelete = false " + + "AND (:search = '' " + + "or UPPER(mp.metodePenyampaian) like :search) " + + "ORDER BY mp.id") + Page getAllMetodePenyampaian(String search, Pageable pageable); + + Optional findByIdAndIsDeleteFalse(Long id); + + Optional findByMetodePenyampaianAndIsDeleteFalse(String metodePenyampaian); } diff --git a/src/main/java/com/iconplus/smartproc/repository/StrategiPengadaanRepository.java b/src/main/java/com/iconplus/smartproc/repository/StrategiPengadaanRepository.java index 4efbab5..df56f9e 100644 --- a/src/main/java/com/iconplus/smartproc/repository/StrategiPengadaanRepository.java +++ b/src/main/java/com/iconplus/smartproc/repository/StrategiPengadaanRepository.java @@ -1,10 +1,32 @@ package com.iconplus.smartproc.repository; import com.iconplus.smartproc.model.entity.StrategiPengadaan; +import com.iconplus.smartproc.model.projection.StrategiPengadaanView; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; +import java.util.Optional; + @Repository public interface StrategiPengadaanRepository extends JpaRepository { + + @Query(value = "SELECT sp.id as id, " + + "sp.strategiPengadaan as strategiPengadaan, " + + "sp.keterangan as keterangan, " + + "sp.isActive as isActive, " + + "sp.isDelete as isDelete " + + "FROM StrategiPengadaan sp " + + "WHERE sp.isDelete = false " + + "AND (:search = '' " + + "or UPPER(sp.strategiPengadaan) like :search) " + + "ORDER BY sp.id") + Page getAllStrategiPengadaan(String search, Pageable pageable); + + Optional findByIdAndIsDeleteFalse(Long id); + + Optional findByStrategiPengadaanAndIsDeleteFalse(String strategiPengadaan); } diff --git a/src/main/java/com/iconplus/smartproc/repository/SupplyPositioningMatrixRepository.java b/src/main/java/com/iconplus/smartproc/repository/SupplyPositioningMatrixRepository.java index ff1a570..85c2c48 100644 --- a/src/main/java/com/iconplus/smartproc/repository/SupplyPositioningMatrixRepository.java +++ b/src/main/java/com/iconplus/smartproc/repository/SupplyPositioningMatrixRepository.java @@ -1,10 +1,32 @@ package com.iconplus.smartproc.repository; +import com.iconplus.smartproc.model.projection.SupplyPositioningMatrixView; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; import com.iconplus.smartproc.model.entity.SupplyPositioningMatrix; +import java.util.Optional; + @Repository public interface SupplyPositioningMatrixRepository extends JpaRepository { + + @Query(value = "SELECT spm.id as id, " + + "spm.supplyPositioningMatrix as supplyPositioningMatrix, " + + "spm.keterangan as keterangan, " + + "spm.isActive as isActive, " + + "spm.isDelete as isDelete " + + "FROM SupplyPositioningMatrix spm " + + "WHERE spm.isDelete = false " + + "AND (:search = '' " + + "or UPPER(spm.supplyPositioningMatrix) like :search) " + + "ORDER BY spm.id") + Page getAllSupplyPositioningMatrix(String search, Pageable pageable); + + Optional findByIdAndIsDeleteFalse(Long id); + + Optional findBySupplyPositioningMatrixAndIsDeleteFalse(String supplyPositioningMatrix); } diff --git a/src/main/java/com/iconplus/smartproc/service/jeniskontrak/DeleteJenisKontrakService.java b/src/main/java/com/iconplus/smartproc/service/jeniskontrak/DeleteJenisKontrakService.java new file mode 100644 index 0000000..ed98e81 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/jeniskontrak/DeleteJenisKontrakService.java @@ -0,0 +1,38 @@ +package com.iconplus.smartproc.service.jeniskontrak; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.model.EmptyResponse; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.JenisKontrakRequest; +import com.iconplus.smartproc.repository.JenisKontrakRepository; +import com.iconplus.smartproc.util.Constants; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class DeleteJenisKontrakService implements BaseService { + + private JenisKontrakRepository jenisKontrakRepository; + + public DeleteJenisKontrakService(JenisKontrakRepository jenisKontrakRepository) { + this.jenisKontrakRepository = jenisKontrakRepository; + } + + + @Override + public EmptyResponse execute(JenisKontrakRequest input) { + + var jenisKontrak = jenisKontrakRepository.findByIdAndIsDeleteFalse(input.getId()) + .orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, input.getId()))); + + jenisKontrak.setIsDelete(true); + jenisKontrakRepository.save(jenisKontrak); + log.info("success delete jenis kontrak id {}", jenisKontrak.getIsDelete()); + return new EmptyResponse(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/jeniskontrak/GetJenisKontrakByIdService.java b/src/main/java/com/iconplus/smartproc/service/jeniskontrak/GetJenisKontrakByIdService.java new file mode 100644 index 0000000..e9b3ac6 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/jeniskontrak/GetJenisKontrakByIdService.java @@ -0,0 +1,40 @@ +package com.iconplus.smartproc.service.jeniskontrak; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.JenisKontrakRequest; +import com.iconplus.smartproc.model.response.JenisKontrakResponse; +import com.iconplus.smartproc.repository.JenisKontrakRepository; +import com.iconplus.smartproc.util.Constants; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + + +@Service +public class GetJenisKontrakByIdService implements BaseService { + + private final JenisKontrakRepository jenisKontrakRepository; + + public GetJenisKontrakByIdService(JenisKontrakRepository jenisKontrakRepository) { + this.jenisKontrakRepository = jenisKontrakRepository; + } + + @Override + public JenisKontrakResponse execute(JenisKontrakRequest input) { + var jenisKontrakView = jenisKontrakRepository.findByIdAndIsDeleteFalse(input.getId()); + if (jenisKontrakView.isEmpty()) { + throw new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, input.getId())); + } + + return JenisKontrakResponse.builder() + .id(jenisKontrakView.get().getId()) + .jenisKontrak(jenisKontrakView.get().getJenisKontrak()) + .keterangan(jenisKontrakView.get().getKeterangan()) + .isActive(jenisKontrakView.get().getIsActive()) + .isDelete(jenisKontrakView.get().getIsDelete()) + .build(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/jeniskontrak/GetListJenisKontrakService.java b/src/main/java/com/iconplus/smartproc/service/jeniskontrak/GetListJenisKontrakService.java new file mode 100644 index 0000000..ca09313 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/jeniskontrak/GetListJenisKontrakService.java @@ -0,0 +1,61 @@ +package com.iconplus.smartproc.service.jeniskontrak; + +import com.iconplus.smartproc.helper.model.Pagination; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.projection.JenisKontrakView; +import com.iconplus.smartproc.model.request.JenisKontrakRequest; +import com.iconplus.smartproc.model.response.GetListJenisKontrakResponse; +import com.iconplus.smartproc.model.response.JenisKontrakResponse; +import com.iconplus.smartproc.repository.JenisKontrakRepository; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + + +@Service +public class GetListJenisKontrakService implements BaseService { + + private JenisKontrakRepository jenisKontrakRepository; + + public GetListJenisKontrakService(JenisKontrakRepository jenisKontrakRepository) { + this.jenisKontrakRepository = jenisKontrakRepository; + } + + @Override + public GetListJenisKontrakResponse execute(JenisKontrakRequest input) { + validateRequest(input); + List jenisKontrakResponseList = new ArrayList<>(); + var jenisKontrakViews = jenisKontrakRepository.getAllJenisKontrak(input.getSearch(), input.getPageable()); + + for (JenisKontrakView jenisKontrakView : jenisKontrakViews) { + JenisKontrakResponse jenisKontrakResponse = JenisKontrakResponse.builder() + .id(jenisKontrakView.getId()) + .jenisKontrak(jenisKontrakView.getJenisKontrak()) + .keterangan(jenisKontrakView.getKeterangan()) + .isActive(jenisKontrakView.getIsActive()) + .isDelete(jenisKontrakView.getIsDelete()) + .build(); + jenisKontrakResponseList.add(jenisKontrakResponse); + } + + return GetListJenisKontrakResponse.builder() + .data(jenisKontrakResponseList) + .pagination(Pagination.builder() + .pageSize(input.getPageable().getPageSize()) + .currentPage(input.getPageable().getPageNumber()) + .totalPages(jenisKontrakViews.getTotalPages()) + .totalRecords(jenisKontrakViews.getTotalElements()) + .isFirstPage(jenisKontrakViews.isFirst()) + .isLastPage(jenisKontrakViews.isLast()) + .build()) + .build(); + } + + private void validateRequest(JenisKontrakRequest input) { + if (StringUtils.isNotBlank(input.getSearch())) { + input.setSearch('%'+ input.getSearch().toUpperCase()+'%'); + } + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/jeniskontrak/PostCreateJenisKontrakService.java b/src/main/java/com/iconplus/smartproc/service/jeniskontrak/PostCreateJenisKontrakService.java new file mode 100644 index 0000000..548f843 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/jeniskontrak/PostCreateJenisKontrakService.java @@ -0,0 +1,49 @@ +package com.iconplus.smartproc.service.jeniskontrak; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.entity.JenisKontrak; +import com.iconplus.smartproc.model.request.JenisKontrakRequest; +import com.iconplus.smartproc.model.response.JenisKontrakResponse; +import com.iconplus.smartproc.repository.JenisKontrakRepository; +import com.iconplus.smartproc.util.Constants; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class PostCreateJenisKontrakService implements BaseService { + + private final JenisKontrakRepository jenisKontrakRepository; + + public PostCreateJenisKontrakService(JenisKontrakRepository jenisKontrakRepository) { + this.jenisKontrakRepository = jenisKontrakRepository; + } + + @Override + public JenisKontrakResponse execute(JenisKontrakRequest input) { + + var existJenisKontrak = jenisKontrakRepository.findByJenisKontrakAndIsDeleteFalse(input.getJenisKontrak()); + if (existJenisKontrak.isPresent()) { + throw new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10002, + Constants.ERR_TTL_10002, + String.format(Constants.ERR_MSG_10002, existJenisKontrak.get().getId())); + } + + JenisKontrak jenisKontrak = JenisKontrak.builder() + .jenisKontrak(input.getJenisKontrak()) + .isActive(input.getIsActive()) + .keterangan(input.getKeterangan()) + .isDelete(false) + .build(); + + var result = jenisKontrakRepository.save(jenisKontrak); + log.info("success insert jenis kontrak id : {}", result.getId()); + return JenisKontrakResponse.builder() + .id(result.getId()) + .build(); + + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/jeniskontrak/PutUpdateJenisKontrakService.java b/src/main/java/com/iconplus/smartproc/service/jeniskontrak/PutUpdateJenisKontrakService.java new file mode 100644 index 0000000..fca124f --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/jeniskontrak/PutUpdateJenisKontrakService.java @@ -0,0 +1,45 @@ +package com.iconplus.smartproc.service.jeniskontrak; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.JenisKontrakRequest; +import com.iconplus.smartproc.model.response.JenisKontrakResponse; +import com.iconplus.smartproc.repository.JenisKontrakRepository; +import com.iconplus.smartproc.util.Constants; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.BooleanUtils; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +import java.sql.Timestamp; + + +@Service +@Slf4j +public class PutUpdateJenisKontrakService implements BaseService { + + private JenisKontrakRepository jenisKontrakRepository; + + public PutUpdateJenisKontrakService(JenisKontrakRepository jenisKontrakRepository) { + this.jenisKontrakRepository = jenisKontrakRepository; + } + + @Override + public JenisKontrakResponse execute(JenisKontrakRequest input) { + + var jenisKontrak = jenisKontrakRepository.findByIdAndIsDeleteFalse(input.getId()) + .orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, input.getId()))); + + jenisKontrak.setJenisKontrak(input.getJenisKontrak()); + jenisKontrak.setKeterangan(input.getKeterangan()); + jenisKontrak.setIsActive(input.getIsActive()); + jenisKontrakRepository.save(jenisKontrak); + log.info("Success edit jenis kontrak id {}", jenisKontrak.getId()); + return JenisKontrakResponse.builder() + .id(jenisKontrak.getId()) + .build(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/lokasi/DeleteLokasiService.java b/src/main/java/com/iconplus/smartproc/service/lokasi/DeleteLokasiService.java new file mode 100644 index 0000000..5d5d64d --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/lokasi/DeleteLokasiService.java @@ -0,0 +1,38 @@ +package com.iconplus.smartproc.service.lokasi; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.model.EmptyResponse; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.LokasiRequest; +import com.iconplus.smartproc.repository.LokasiRepository; +import com.iconplus.smartproc.util.Constants; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class DeleteLokasiService implements BaseService { + + private LokasiRepository lokasiRepository; + + public DeleteLokasiService(LokasiRepository lokasiRepository) { + this.lokasiRepository = lokasiRepository; + } + + + @Override + public EmptyResponse execute(LokasiRequest input) { + + var lokasi = lokasiRepository.findByIdAndIsDeleteFalse(input.getId()) + .orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, input.getId()))); + + lokasi.setIsDelete(true); + lokasiRepository.save(lokasi); + log.info("success delete jenis lokasi id {}", lokasi.getIsDelete()); + return new EmptyResponse(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/lokasi/GetListLokasiService.java b/src/main/java/com/iconplus/smartproc/service/lokasi/GetListLokasiService.java new file mode 100644 index 0000000..cb64713 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/lokasi/GetListLokasiService.java @@ -0,0 +1,61 @@ +package com.iconplus.smartproc.service.lokasi; + +import com.iconplus.smartproc.helper.model.Pagination; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.projection.LokasiView; +import com.iconplus.smartproc.model.request.LokasiRequest; +import com.iconplus.smartproc.model.response.GetListLokasiResponse; +import com.iconplus.smartproc.model.response.LokasiResponse; +import com.iconplus.smartproc.repository.LokasiRepository; +import org.apache.commons.lang3.StringUtils; +import org.springframework.data.domain.Page; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class GetListLokasiService implements BaseService { + + private LokasiRepository lokasiRepository; + + public GetListLokasiService(LokasiRepository lokasiRepository) { + this.lokasiRepository = lokasiRepository; + } + + @Override + public GetListLokasiResponse execute(LokasiRequest input) { + validateRequest(input); + List lokasiResponseList = new ArrayList<>(); + Page lokasiViews = lokasiRepository.getAllLokasi(input.getSearch(), input.getPageable()); + + for (LokasiView lokasiView : lokasiViews) { + LokasiResponse lokasiResponse = LokasiResponse.builder() + .id(lokasiView.getId()) + .lokasi(lokasiView.getLokasi()) + .keterangan(lokasiView.getKeterangan()) + .isActive(lokasiView.getIsActive()) + .isDelete(lokasiView.getIsDelete()) + .build(); + lokasiResponseList.add(lokasiResponse); + } + + return GetListLokasiResponse.builder() + .data(lokasiResponseList) + .pagination(Pagination.builder() + .pageSize(input.getPageable().getPageSize()) + .currentPage(input.getPageable().getPageNumber()) + .totalPages(lokasiViews.getTotalPages()) + .totalRecords(lokasiViews.getTotalElements()) + .isFirstPage(lokasiViews.isFirst()) + .isLastPage(lokasiViews.isLast()) + .build()) + .build(); + } + + private void validateRequest(LokasiRequest input) { + if (StringUtils.isNotBlank(input.getSearch())) { + input.setSearch('%'+ input.getSearch().toUpperCase()+'%'); + } + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/lokasi/GetLokasiByIdService.java b/src/main/java/com/iconplus/smartproc/service/lokasi/GetLokasiByIdService.java new file mode 100644 index 0000000..8a83ef4 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/lokasi/GetLokasiByIdService.java @@ -0,0 +1,43 @@ +package com.iconplus.smartproc.service.lokasi; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.LokasiRequest; +import com.iconplus.smartproc.model.response.LokasiResponse; +import com.iconplus.smartproc.repository.LokasiRepository; +import com.iconplus.smartproc.util.Constants; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +@Service +public class GetLokasiByIdService implements BaseService { + + private final LokasiRepository lokasiRepository; + + public GetLokasiByIdService(LokasiRepository lokasiRepository) { + this.lokasiRepository = lokasiRepository; + } + + @Override + public LokasiResponse execute(LokasiRequest input) { + LokasiResponse lokasiResponse = new LokasiResponse(); + var lokasiView = lokasiRepository.findByIdAndIsDeleteFalse(input.getId()); + if (lokasiView.isEmpty()) { + throw new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, input.getId())); + } + + lokasiResponse.setLokasi(lokasiView.get().getLokasi()); + lokasiResponse.setKeterangan(lokasiView.get().getKeterangan()); + lokasiResponse.setIsDelete(lokasiView.get().getIsDelete()); + + return LokasiResponse.builder() + .id(lokasiView.get().getId()) + .lokasi(lokasiView.get().getLokasi()) + .keterangan(lokasiView.get().getKeterangan()) + .isDelete(lokasiView.get().getIsDelete()) + .build(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/lokasi/PostCreateLokasiService.java b/src/main/java/com/iconplus/smartproc/service/lokasi/PostCreateLokasiService.java new file mode 100644 index 0000000..53f5391 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/lokasi/PostCreateLokasiService.java @@ -0,0 +1,49 @@ +package com.iconplus.smartproc.service.lokasi; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.entity.Lokasi; +import com.iconplus.smartproc.model.request.LokasiRequest; +import com.iconplus.smartproc.model.response.LokasiResponse; +import com.iconplus.smartproc.repository.LokasiRepository; +import com.iconplus.smartproc.util.Constants; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class PostCreateLokasiService implements BaseService { + + private final LokasiRepository lokasiRepository; + + public PostCreateLokasiService(LokasiRepository lokasiRepository) { + this.lokasiRepository = lokasiRepository; + } + + @Override + public LokasiResponse execute(LokasiRequest input) { + + var existLokasi = lokasiRepository.findByLokasiAndIsDeleteFalse(input.getLokasi()); + if (existLokasi.isPresent()) { + throw new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10002, + Constants.ERR_TTL_10002, + String.format(Constants.ERR_MSG_10002, input.getLokasi())); + } + + Lokasi lokasi = Lokasi.builder() + .lokasi(input.getLokasi()) + .keterangan(input.getKeterangan()) + .isDelete(false) + .isActive(input.getIsActive()) + .build(); + + var result = lokasiRepository.save(lokasi); + log.info("success insert lokasi id : {}", result.getId()); + return LokasiResponse.builder() + .id(result.getId()) + .build(); + + } +} \ No newline at end of file diff --git a/src/main/java/com/iconplus/smartproc/service/lokasi/PutUpdateLokasiService.java b/src/main/java/com/iconplus/smartproc/service/lokasi/PutUpdateLokasiService.java new file mode 100644 index 0000000..7769f6c --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/lokasi/PutUpdateLokasiService.java @@ -0,0 +1,45 @@ +package com.iconplus.smartproc.service.lokasi; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.LokasiRequest; +import com.iconplus.smartproc.model.response.LokasiResponse; +import com.iconplus.smartproc.repository.LokasiRepository; +import com.iconplus.smartproc.util.Constants; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.BooleanUtils; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +import java.sql.Timestamp; + +@Service +@Slf4j +public class PutUpdateLokasiService implements BaseService { + + private LokasiRepository lokasiRepository; + + public PutUpdateLokasiService(LokasiRepository lokasiRepository) { + this.lokasiRepository = lokasiRepository; + } + + @Override + public LokasiResponse execute(LokasiRequest input) { + + var lokasi = lokasiRepository.findByIdAndIsDeleteFalse(input.getId()) + .orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, input.getId()))); + + lokasi.setLokasi(input.getLokasi()); + lokasi.setKeterangan(input.getKeterangan()); + lokasi.setIsDelete(BooleanUtils.isTrue(input.getIsDelete())); + lokasi.setLastUpdate(new Timestamp(System.currentTimeMillis())); + lokasiRepository.save(lokasi); + log.info("Success edit lokasi id {}", lokasi.getId()); + return LokasiResponse.builder() + .id(lokasi.getId()) + .build(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/metodepengadaan/DeleteMetodePengadaanService.java b/src/main/java/com/iconplus/smartproc/service/metodepengadaan/DeleteMetodePengadaanService.java new file mode 100644 index 0000000..41c6f1d --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/metodepengadaan/DeleteMetodePengadaanService.java @@ -0,0 +1,38 @@ +package com.iconplus.smartproc.service.metodepengadaan; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.model.EmptyResponse; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.MetodePengadaanRequest; +import com.iconplus.smartproc.repository.MetodePengadaanRepository; +import com.iconplus.smartproc.util.Constants; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class DeleteMetodePengadaanService implements BaseService { + + private MetodePengadaanRepository metodePengadaanRepository; + + public DeleteMetodePengadaanService(MetodePengadaanRepository metodePengadaanRepository) { + this.metodePengadaanRepository = metodePengadaanRepository; + } + + + @Override + public EmptyResponse execute(MetodePengadaanRequest input) { + + var metodePengadaan = metodePengadaanRepository.findByIdAndIsDeleteFalse(input.getId()) + .orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, input.getId()))); + + metodePengadaan.setIsDelete(true); + metodePengadaanRepository.save(metodePengadaan); + log.info("success delete metode pengadaan id {}", metodePengadaan.getIsDelete()); + return new EmptyResponse(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/metodepengadaan/GetListMetodePengadaanService.java b/src/main/java/com/iconplus/smartproc/service/metodepengadaan/GetListMetodePengadaanService.java new file mode 100644 index 0000000..8669c5d --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/metodepengadaan/GetListMetodePengadaanService.java @@ -0,0 +1,61 @@ +package com.iconplus.smartproc.service.metodepengadaan; + +import com.iconplus.smartproc.helper.model.Pagination; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.projection.MetodePengadaanView; +import com.iconplus.smartproc.model.request.MetodePengadaanRequest; +import com.iconplus.smartproc.model.response.GetListMetodePengadaanResponse; +import com.iconplus.smartproc.model.response.MetodePengadaanResponse; +import com.iconplus.smartproc.repository.MetodePengadaanRepository; +import org.apache.commons.lang3.StringUtils; +import org.springframework.data.domain.Page; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class GetListMetodePengadaanService implements BaseService { + + private MetodePengadaanRepository metodePengadaanRepository; + + public GetListMetodePengadaanService(MetodePengadaanRepository metodePengadaanRepository) { + this.metodePengadaanRepository = metodePengadaanRepository; + } + + @Override + public GetListMetodePengadaanResponse execute(MetodePengadaanRequest input) { + validateRequest(input); + List metodePengadaanResponseList = new ArrayList<>(); + Page metodePengadaanViews = metodePengadaanRepository.getAllMetodePengadaan(input.getSearch(), input.getPageable()); + + for (MetodePengadaanView metodePengadaanView : metodePengadaanViews) { + MetodePengadaanResponse metodePengadaanResponse = MetodePengadaanResponse.builder() + .id(metodePengadaanView.getId()) + .metodePengadaan(metodePengadaanView.getMetodePengadaan()) + .keterangan(metodePengadaanView.getKeterangan()) + .isActive(metodePengadaanView.getIsActive()) + .isDelete(metodePengadaanView.getIsDelete()) + .build(); + metodePengadaanResponseList.add(metodePengadaanResponse); + } + + return GetListMetodePengadaanResponse.builder() + .data(metodePengadaanResponseList) + .pagination(Pagination.builder() + .pageSize(input.getPageable().getPageSize()) + .currentPage(input.getPageable().getPageNumber()) + .totalPages(metodePengadaanViews.getTotalPages()) + .totalRecords(metodePengadaanViews.getTotalElements()) + .isFirstPage(metodePengadaanViews.isFirst()) + .isLastPage(metodePengadaanViews.isLast()) + .build()) + .build(); + } + + private void validateRequest(MetodePengadaanRequest input) { + if (StringUtils.isNotBlank(input.getSearch())) { + input.setSearch('%'+ input.getSearch().toUpperCase()+'%'); + } + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/metodepengadaan/GetMetodePengadaanByIdService.java b/src/main/java/com/iconplus/smartproc/service/metodepengadaan/GetMetodePengadaanByIdService.java new file mode 100644 index 0000000..6977d75 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/metodepengadaan/GetMetodePengadaanByIdService.java @@ -0,0 +1,40 @@ +package com.iconplus.smartproc.service.metodepengadaan; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.MetodePengadaanRequest; +import com.iconplus.smartproc.model.response.MetodePengadaanResponse; +import com.iconplus.smartproc.repository.MetodePengadaanRepository; +import com.iconplus.smartproc.util.Constants; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +@Service +public class GetMetodePengadaanByIdService implements BaseService { + + private final MetodePengadaanRepository metodePengadaanRepository; + + public GetMetodePengadaanByIdService(MetodePengadaanRepository metodePengadaanRepository) { + this.metodePengadaanRepository = metodePengadaanRepository; + } + + @Override + public MetodePengadaanResponse execute(MetodePengadaanRequest input) { + + var metodePengadaanView = metodePengadaanRepository.findByIdAndIsDeleteFalse(input.getId()); + if (metodePengadaanView.isEmpty()) { + throw new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, input.getId())); + } + + return MetodePengadaanResponse.builder() + .id(metodePengadaanView.get().getId()) + .metodePengadaan(metodePengadaanView.get().getMetodePengadaan()) + .keterangan(metodePengadaanView.get().getKeterangan()) + .isActive(metodePengadaanView.get().getIsActive()) + .isDelete(metodePengadaanView.get().getIsDelete()) + .build(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/metodepengadaan/PostCreateMetodePengadaanService.java b/src/main/java/com/iconplus/smartproc/service/metodepengadaan/PostCreateMetodePengadaanService.java new file mode 100644 index 0000000..e172e37 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/metodepengadaan/PostCreateMetodePengadaanService.java @@ -0,0 +1,49 @@ +package com.iconplus.smartproc.service.metodepengadaan; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.entity.MetodePengadaan; +import com.iconplus.smartproc.model.request.MetodePengadaanRequest; +import com.iconplus.smartproc.model.response.MetodePengadaanResponse; +import com.iconplus.smartproc.repository.MetodePengadaanRepository; +import com.iconplus.smartproc.util.Constants; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class PostCreateMetodePengadaanService implements BaseService { + + private final MetodePengadaanRepository metodePengadaanRepository; + + public PostCreateMetodePengadaanService(MetodePengadaanRepository metodePengadaanRepository) { + this.metodePengadaanRepository = metodePengadaanRepository; + } + + @Override + public MetodePengadaanResponse execute(MetodePengadaanRequest input) { + + var existMetodePengadaan = metodePengadaanRepository.findByMetodePengadaanAndIsDeleteFalse(input.getMetodePengadaan()); + if (existMetodePengadaan.isPresent()) { + throw new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10002, + Constants.ERR_TTL_10002, + String.format(Constants.ERR_MSG_10002, input.getMetodePengadaan())); + } + + MetodePengadaan metodePengadaan = MetodePengadaan.builder() + .metodePengadaan(input.getMetodePengadaan()) + .keterangan(input.getKeterangan()) + .isActive(input.getIsActive()) + .isDelete(false) + .build(); + + var result = metodePengadaanRepository.save(metodePengadaan); + log.info("success insert metode pengadaan id : {}", result.getId()); + return MetodePengadaanResponse.builder() + .id(result.getId()) + .build(); + + } +} \ No newline at end of file diff --git a/src/main/java/com/iconplus/smartproc/service/metodepengadaan/PutUpdateMetodePengadaanService.java b/src/main/java/com/iconplus/smartproc/service/metodepengadaan/PutUpdateMetodePengadaanService.java new file mode 100644 index 0000000..c1f02d3 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/metodepengadaan/PutUpdateMetodePengadaanService.java @@ -0,0 +1,44 @@ +package com.iconplus.smartproc.service.metodepengadaan; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.MetodePengadaanRequest; +import com.iconplus.smartproc.model.response.MetodePengadaanResponse; +import com.iconplus.smartproc.repository.MetodePengadaanRepository; +import com.iconplus.smartproc.util.Constants; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.BooleanUtils; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +import java.sql.Timestamp; + +@Service +@Slf4j +public class PutUpdateMetodePengadaanService implements BaseService { + + private MetodePengadaanRepository metodePengadaanRepository; + + public PutUpdateMetodePengadaanService(MetodePengadaanRepository metodePengadaanRepository) { + this.metodePengadaanRepository = metodePengadaanRepository; + } + + @Override + public MetodePengadaanResponse execute(MetodePengadaanRequest input) { + + var metodePengadaan = metodePengadaanRepository.findByIdAndIsDeleteFalse(input.getId()) + .orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, input.getId()))); + + metodePengadaan.setMetodePengadaan(input.getMetodePengadaan()); + metodePengadaan.setKeterangan(input.getKeterangan()); + metodePengadaan.setIsActive(input.getIsActive()); + metodePengadaanRepository.save(metodePengadaan); + log.info("Success edit metode pengadaan id {}", metodePengadaan.getId()); + return MetodePengadaanResponse.builder() + .id(metodePengadaan.getId()) + .build(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/metodepenyampaian/DeleteMetodePenyampaianService.java b/src/main/java/com/iconplus/smartproc/service/metodepenyampaian/DeleteMetodePenyampaianService.java new file mode 100644 index 0000000..b615274 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/metodepenyampaian/DeleteMetodePenyampaianService.java @@ -0,0 +1,38 @@ +package com.iconplus.smartproc.service.metodepenyampaian; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.model.EmptyResponse; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.MetodePenyampaianRequest; +import com.iconplus.smartproc.repository.MetodePenyampaianRepository; +import com.iconplus.smartproc.util.Constants; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class DeleteMetodePenyampaianService implements BaseService { + + private MetodePenyampaianRepository metodePenyampaianRepository; + + public DeleteMetodePenyampaianService(MetodePenyampaianRepository metodePenyampaianRepository) { + this.metodePenyampaianRepository = metodePenyampaianRepository; + } + + + @Override + public EmptyResponse execute(MetodePenyampaianRequest input) { + + var metodePenyampaian = metodePenyampaianRepository.findByIdAndIsDeleteFalse(input.getId()) + .orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, input.getId()))); + + metodePenyampaian.setIsDelete(true); + metodePenyampaianRepository.save(metodePenyampaian); + log.info("success delete metode penyampaian id {}", metodePenyampaian.getIsDelete()); + return new EmptyResponse(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/metodepenyampaian/GetListMetodePenyampaianService.java b/src/main/java/com/iconplus/smartproc/service/metodepenyampaian/GetListMetodePenyampaianService.java new file mode 100644 index 0000000..32d68a3 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/metodepenyampaian/GetListMetodePenyampaianService.java @@ -0,0 +1,61 @@ +package com.iconplus.smartproc.service.metodepenyampaian; + +import com.iconplus.smartproc.helper.model.Pagination; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.projection.MetodePenyampaianView; +import com.iconplus.smartproc.model.request.MetodePenyampaianRequest; +import com.iconplus.smartproc.model.response.GetListMetodePenyampaianResponse; +import com.iconplus.smartproc.model.response.MetodePenyampaianResponse; +import com.iconplus.smartproc.repository.MetodePenyampaianRepository; +import org.apache.commons.lang3.StringUtils; +import org.springframework.data.domain.Page; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class GetListMetodePenyampaianService implements BaseService { + + private MetodePenyampaianRepository metodePenyampaianRepository; + + public GetListMetodePenyampaianService(MetodePenyampaianRepository metodePenyampaianRepository) { + this.metodePenyampaianRepository = metodePenyampaianRepository; + } + + @Override + public GetListMetodePenyampaianResponse execute(MetodePenyampaianRequest input) { + validateRequest(input); + List metodePenyampaianResponseList = new ArrayList<>(); + Page metodePenyampaianViews = metodePenyampaianRepository.getAllMetodePenyampaian(input.getSearch(), input.getPageable()); + + for (MetodePenyampaianView metodePenyampaianView : metodePenyampaianViews) { + MetodePenyampaianResponse metodePenyampaianResponse = MetodePenyampaianResponse.builder() + .id(metodePenyampaianView.getId()) + .metodePenyampaian(metodePenyampaianView.getMetodePenyampaian()) + .keterangan(metodePenyampaianView.getKeterangan()) + .isActive(metodePenyampaianView.getIsActive()) + .isDelete(metodePenyampaianView.getIsDelete()) + .build(); + metodePenyampaianResponseList.add(metodePenyampaianResponse); + } + + return GetListMetodePenyampaianResponse.builder() + .data(metodePenyampaianResponseList) + .pagination(Pagination.builder() + .pageSize(input.getPageable().getPageSize()) + .currentPage(input.getPageable().getPageNumber()) + .totalPages(metodePenyampaianViews.getTotalPages()) + .totalRecords(metodePenyampaianViews.getTotalElements()) + .isFirstPage(metodePenyampaianViews.isFirst()) + .isLastPage(metodePenyampaianViews.isLast()) + .build()) + .build(); + } + + private void validateRequest(MetodePenyampaianRequest input) { + if (StringUtils.isNotBlank(input.getSearch())) { + input.setSearch('%'+ input.getSearch().toUpperCase()+'%'); + } + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/metodepenyampaian/GetMetodePenyampaianByIdService.java b/src/main/java/com/iconplus/smartproc/service/metodepenyampaian/GetMetodePenyampaianByIdService.java new file mode 100644 index 0000000..694afdb --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/metodepenyampaian/GetMetodePenyampaianByIdService.java @@ -0,0 +1,39 @@ +package com.iconplus.smartproc.service.metodepenyampaian; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.MetodePenyampaianRequest; +import com.iconplus.smartproc.model.response.MetodePenyampaianResponse; +import com.iconplus.smartproc.repository.MetodePenyampaianRepository; +import com.iconplus.smartproc.util.Constants; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +@Service +public class GetMetodePenyampaianByIdService implements BaseService { + + private final MetodePenyampaianRepository metodePenyampaianRepository; + + public GetMetodePenyampaianByIdService(MetodePenyampaianRepository metodePenyampaianRepository) { + this.metodePenyampaianRepository = metodePenyampaianRepository; + } + + @Override + public MetodePenyampaianResponse execute(MetodePenyampaianRequest input) { + var metodePenyampaianView = metodePenyampaianRepository.findByIdAndIsDeleteFalse(input.getId()); + if (metodePenyampaianView.isEmpty()) { + throw new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, input.getId())); + } + + return MetodePenyampaianResponse.builder() + .id(metodePenyampaianView.get().getId()) + .metodePenyampaian(metodePenyampaianView.get().getMetodePenyampaian()) + .keterangan(metodePenyampaianView.get().getKeterangan()) + .isActive(metodePenyampaianView.get().getIsActive()) + .isDelete(metodePenyampaianView.get().getIsDelete()) + .build(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/metodepenyampaian/PostCreateMetodePenyampaianService.java b/src/main/java/com/iconplus/smartproc/service/metodepenyampaian/PostCreateMetodePenyampaianService.java new file mode 100644 index 0000000..cc933e9 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/metodepenyampaian/PostCreateMetodePenyampaianService.java @@ -0,0 +1,49 @@ +package com.iconplus.smartproc.service.metodepenyampaian; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.entity.MetodePenyampaian; +import com.iconplus.smartproc.model.request.MetodePenyampaianRequest; +import com.iconplus.smartproc.model.response.MetodePenyampaianResponse; +import com.iconplus.smartproc.repository.MetodePenyampaianRepository; +import com.iconplus.smartproc.util.Constants; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class PostCreateMetodePenyampaianService implements BaseService { + + private final MetodePenyampaianRepository metodePenyampaianRepository; + + public PostCreateMetodePenyampaianService(MetodePenyampaianRepository metodePenyampaianRepository) { + this.metodePenyampaianRepository = metodePenyampaianRepository; + } + + @Override + public MetodePenyampaianResponse execute(MetodePenyampaianRequest input) { + + var existMetodePenyampaian = metodePenyampaianRepository.findByMetodePenyampaianAndIsDeleteFalse(input.getMetodePenyampaian()); + if (existMetodePenyampaian.isPresent()) { + throw new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10002, + Constants.ERR_TTL_10002, + String.format(Constants.ERR_MSG_10002, input.getMetodePenyampaian())); + } + + MetodePenyampaian metodePenyampaian = MetodePenyampaian.builder() + .metodePenyampaian(input.getMetodePenyampaian()) + .keterangan(input.getKeterangan()) + .isActive(input.getIsActive()) + .isDelete(false) + .build(); + + var result = metodePenyampaianRepository.save(metodePenyampaian); + log.info("success insert metode penyampaian id : {}", result.getId()); + return MetodePenyampaianResponse.builder() + .id(result.getId()) + .build(); + + } +} \ No newline at end of file diff --git a/src/main/java/com/iconplus/smartproc/service/metodepenyampaian/PutUpdateMetodePenyampaianService.java b/src/main/java/com/iconplus/smartproc/service/metodepenyampaian/PutUpdateMetodePenyampaianService.java new file mode 100644 index 0000000..704cf50 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/metodepenyampaian/PutUpdateMetodePenyampaianService.java @@ -0,0 +1,44 @@ +package com.iconplus.smartproc.service.metodepenyampaian; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.MetodePenyampaianRequest; +import com.iconplus.smartproc.model.response.MetodePenyampaianResponse; +import com.iconplus.smartproc.repository.MetodePenyampaianRepository; +import com.iconplus.smartproc.util.Constants; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.BooleanUtils; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +import java.sql.Timestamp; + +@Service +@Slf4j +public class PutUpdateMetodePenyampaianService implements BaseService { + + private MetodePenyampaianRepository metodePenyampaianRepository; + + public PutUpdateMetodePenyampaianService(MetodePenyampaianRepository metodePenyampaianRepository) { + this.metodePenyampaianRepository = metodePenyampaianRepository; + } + + @Override + public MetodePenyampaianResponse execute(MetodePenyampaianRequest input) { + + var metodePenyampaian = metodePenyampaianRepository.findByIdAndIsDeleteFalse(input.getId()) + .orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, input.getId()))); + + metodePenyampaian.setMetodePenyampaian(input.getMetodePenyampaian()); + metodePenyampaian.setKeterangan(input.getKeterangan()); + metodePenyampaian.setIsActive(input.getIsActive()); + metodePenyampaianRepository.save(metodePenyampaian); + log.info("Success edit metode penyampaian id {}", metodePenyampaian.getId()); + return MetodePenyampaianResponse.builder() + .id(metodePenyampaian.getId()) + .build(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/strategipengadaan/DeleteStrategiPengadaanService.java b/src/main/java/com/iconplus/smartproc/service/strategipengadaan/DeleteStrategiPengadaanService.java new file mode 100644 index 0000000..c117292 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/strategipengadaan/DeleteStrategiPengadaanService.java @@ -0,0 +1,38 @@ +package com.iconplus.smartproc.service.strategipengadaan; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.model.EmptyResponse; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.StrategiPengadaanRequest; +import com.iconplus.smartproc.repository.StrategiPengadaanRepository; +import com.iconplus.smartproc.util.Constants; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class DeleteStrategiPengadaanService implements BaseService { + + private StrategiPengadaanRepository strategiPengadaanRepository; + + public DeleteStrategiPengadaanService(StrategiPengadaanRepository strategiPengadaanRepository) { + this.strategiPengadaanRepository = strategiPengadaanRepository; + } + + + @Override + public EmptyResponse execute(StrategiPengadaanRequest input) { + + var strategiPengadaan = strategiPengadaanRepository.findByIdAndIsDeleteFalse(input.getId()) + .orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, input.getId()))); + + strategiPengadaan.setIsDelete(true); + strategiPengadaanRepository.save(strategiPengadaan); + log.info("success delete strategi pengadaan id {}", strategiPengadaan.getIsDelete()); + return new EmptyResponse(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/strategipengadaan/GetListStrategiPengadaanService.java b/src/main/java/com/iconplus/smartproc/service/strategipengadaan/GetListStrategiPengadaanService.java new file mode 100644 index 0000000..c118610 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/strategipengadaan/GetListStrategiPengadaanService.java @@ -0,0 +1,61 @@ +package com.iconplus.smartproc.service.strategipengadaan; + +import com.iconplus.smartproc.helper.model.Pagination; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.projection.StrategiPengadaanView; +import com.iconplus.smartproc.model.request.StrategiPengadaanRequest; +import com.iconplus.smartproc.model.response.GetListStrategiPengadaanResponse; +import com.iconplus.smartproc.model.response.StrategiPengadaanResponse; +import com.iconplus.smartproc.repository.StrategiPengadaanRepository; +import org.apache.commons.lang3.StringUtils; +import org.springframework.data.domain.Page; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class GetListStrategiPengadaanService implements BaseService { + + private StrategiPengadaanRepository strategiPengadaanRepository; + + public GetListStrategiPengadaanService(StrategiPengadaanRepository strategiPengadaanRepository) { + this.strategiPengadaanRepository = strategiPengadaanRepository; + } + + @Override + public GetListStrategiPengadaanResponse execute(StrategiPengadaanRequest input) { + validateRequest(input); + List strategiPengadaanResponseList = new ArrayList<>(); + Page strategiPengadaanViews = strategiPengadaanRepository.getAllStrategiPengadaan(input.getSearch(), input.getPageable()); + + for (StrategiPengadaanView strategiPengadaanView : strategiPengadaanViews) { + StrategiPengadaanResponse strategiPengadaanResponse = StrategiPengadaanResponse.builder() + .id(strategiPengadaanView.getId()) + .strategiPengadaan(strategiPengadaanView.getStrategiPengadaan()) + .keterangan(strategiPengadaanView.getKeterangan()) + .isActive(strategiPengadaanView.getIsActive()) + .isDelete(strategiPengadaanView.getIsDelete()) + .build(); + strategiPengadaanResponseList.add(strategiPengadaanResponse); + } + + return GetListStrategiPengadaanResponse.builder() + .data(strategiPengadaanResponseList) + .pagination(Pagination.builder() + .pageSize(input.getPageable().getPageSize()) + .currentPage(input.getPageable().getPageNumber()) + .totalPages(strategiPengadaanViews.getTotalPages()) + .totalRecords(strategiPengadaanViews.getTotalElements()) + .isFirstPage(strategiPengadaanViews.isFirst()) + .isLastPage(strategiPengadaanViews.isLast()) + .build()) + .build(); + } + + private void validateRequest(StrategiPengadaanRequest input) { + if (StringUtils.isNotBlank(input.getSearch())) { + input.setSearch('%'+ input.getSearch().toUpperCase()+'%'); + } + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/strategipengadaan/GetStrategiPengadaanByIdService.java b/src/main/java/com/iconplus/smartproc/service/strategipengadaan/GetStrategiPengadaanByIdService.java new file mode 100644 index 0000000..05fcba0 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/strategipengadaan/GetStrategiPengadaanByIdService.java @@ -0,0 +1,39 @@ +package com.iconplus.smartproc.service.strategipengadaan; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.StrategiPengadaanRequest; +import com.iconplus.smartproc.model.response.StrategiPengadaanResponse; +import com.iconplus.smartproc.repository.StrategiPengadaanRepository; +import com.iconplus.smartproc.util.Constants; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +@Service +public class GetStrategiPengadaanByIdService implements BaseService { + + private final StrategiPengadaanRepository strategiPengadaanRepository; + + public GetStrategiPengadaanByIdService(StrategiPengadaanRepository strategiPengadaanRepository) { + this.strategiPengadaanRepository = strategiPengadaanRepository; + } + + @Override + public StrategiPengadaanResponse execute(StrategiPengadaanRequest input) { + var strategiPengadaanView = strategiPengadaanRepository.findByIdAndIsDeleteFalse(input.getId()); + if (strategiPengadaanView.isEmpty()) { + throw new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, input.getId())); + } + + return StrategiPengadaanResponse.builder() + .id(strategiPengadaanView.get().getId()) + .strategiPengadaan(strategiPengadaanView.get().getStrategiPengadaan()) + .keterangan(strategiPengadaanView.get().getKeterangan()) + .isActive(strategiPengadaanView.get().getIsActive()) + .isDelete(strategiPengadaanView.get().getIsDelete()) + .build(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/strategipengadaan/PostCreateStrategiPengadaanService.java b/src/main/java/com/iconplus/smartproc/service/strategipengadaan/PostCreateStrategiPengadaanService.java new file mode 100644 index 0000000..a5d8672 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/strategipengadaan/PostCreateStrategiPengadaanService.java @@ -0,0 +1,49 @@ +package com.iconplus.smartproc.service.strategipengadaan; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.entity.StrategiPengadaan; +import com.iconplus.smartproc.model.request.StrategiPengadaanRequest; +import com.iconplus.smartproc.model.response.StrategiPengadaanResponse; +import com.iconplus.smartproc.repository.StrategiPengadaanRepository; +import com.iconplus.smartproc.util.Constants; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class PostCreateStrategiPengadaanService implements BaseService { + + private final StrategiPengadaanRepository strategiPengadaanRepository; + + public PostCreateStrategiPengadaanService(StrategiPengadaanRepository strategiPengadaanRepository) { + this.strategiPengadaanRepository = strategiPengadaanRepository; + } + + @Override + public StrategiPengadaanResponse execute(StrategiPengadaanRequest input) { + + var existStrategiPengadaan = strategiPengadaanRepository.findByStrategiPengadaanAndIsDeleteFalse(input.getStrategiPengadaan()); + if (existStrategiPengadaan.isPresent()) { + throw new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10002, + Constants.ERR_TTL_10002, + String.format(Constants.ERR_MSG_10002, input.getStrategiPengadaan())); + } + + StrategiPengadaan strategiPengadaan = StrategiPengadaan.builder() + .strategiPengadaan(input.getStrategiPengadaan()) + .keterangan(input.getKeterangan()) + .isActive(input.getIsActive()) + .isDelete(false) + .build(); + + var result = strategiPengadaanRepository.save(strategiPengadaan); + log.info("success insert strategi pengadaan id : {}", result.getId()); + return StrategiPengadaanResponse.builder() + .id(result.getId()) + .build(); + + } +} \ No newline at end of file diff --git a/src/main/java/com/iconplus/smartproc/service/strategipengadaan/PutUpdateStrategiPengadaanService.java b/src/main/java/com/iconplus/smartproc/service/strategipengadaan/PutUpdateStrategiPengadaanService.java new file mode 100644 index 0000000..1310f46 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/strategipengadaan/PutUpdateStrategiPengadaanService.java @@ -0,0 +1,44 @@ +package com.iconplus.smartproc.service.strategipengadaan; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.StrategiPengadaanRequest; +import com.iconplus.smartproc.model.response.StrategiPengadaanResponse; +import com.iconplus.smartproc.repository.StrategiPengadaanRepository; +import com.iconplus.smartproc.util.Constants; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.BooleanUtils; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +import java.sql.Timestamp; + +@Service +@Slf4j +public class PutUpdateStrategiPengadaanService implements BaseService { + + private StrategiPengadaanRepository strategiPengadaanRepository; + + public PutUpdateStrategiPengadaanService(StrategiPengadaanRepository strategiPengadaanRepository) { + this.strategiPengadaanRepository = strategiPengadaanRepository; + } + + @Override + public StrategiPengadaanResponse execute(StrategiPengadaanRequest input) { + + var strategiPengadaan = strategiPengadaanRepository.findByIdAndIsDeleteFalse(input.getId()) + .orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, input.getId()))); + + strategiPengadaan.setStrategiPengadaan(input.getStrategiPengadaan()); + strategiPengadaan.setKeterangan(input.getKeterangan()); + strategiPengadaan.setIsActive(input.getIsActive()); + strategiPengadaanRepository.save(strategiPengadaan); + log.info("Success edit strategi pengadaan id {}", strategiPengadaan.getId()); + return StrategiPengadaanResponse.builder() + .id(strategiPengadaan.getId()) + .build(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/supplypositioningmatrix/DeleteSupplyPositioningMatrixService.java b/src/main/java/com/iconplus/smartproc/service/supplypositioningmatrix/DeleteSupplyPositioningMatrixService.java new file mode 100644 index 0000000..b6f8df8 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/supplypositioningmatrix/DeleteSupplyPositioningMatrixService.java @@ -0,0 +1,38 @@ +package com.iconplus.smartproc.service.supplypositioningmatrix; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.model.EmptyResponse; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.SupplyPositioningMatrixRequest; +import com.iconplus.smartproc.repository.SupplyPositioningMatrixRepository; +import com.iconplus.smartproc.util.Constants; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class DeleteSupplyPositioningMatrixService implements BaseService { + + private SupplyPositioningMatrixRepository supplyPositioningMatrixRepository; + + public DeleteSupplyPositioningMatrixService(SupplyPositioningMatrixRepository supplyPositioningMatrixRepository) { + this.supplyPositioningMatrixRepository = supplyPositioningMatrixRepository; + } + + + @Override + public EmptyResponse execute(SupplyPositioningMatrixRequest input) { + + var supplyPositioningMatrix = supplyPositioningMatrixRepository.findByIdAndIsDeleteFalse(input.getId()) + .orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, input.getId()))); + + supplyPositioningMatrix.setIsDelete(true); + supplyPositioningMatrixRepository.save(supplyPositioningMatrix); + log.info("success delete supply positioning matrix id {}", supplyPositioningMatrix.getIsDelete()); + return new EmptyResponse(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/supplypositioningmatrix/GetListSupplyPositioningMatrixService.java b/src/main/java/com/iconplus/smartproc/service/supplypositioningmatrix/GetListSupplyPositioningMatrixService.java new file mode 100644 index 0000000..af75ca4 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/supplypositioningmatrix/GetListSupplyPositioningMatrixService.java @@ -0,0 +1,61 @@ +package com.iconplus.smartproc.service.supplypositioningmatrix; + +import com.iconplus.smartproc.helper.model.Pagination; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.projection.SupplyPositioningMatrixView; +import com.iconplus.smartproc.model.request.SupplyPositioningMatrixRequest; +import com.iconplus.smartproc.model.response.GetListSupplyPositioningMatrixResponse; +import com.iconplus.smartproc.model.response.SupplyPositioningMatrixResponse; +import com.iconplus.smartproc.repository.SupplyPositioningMatrixRepository; +import org.apache.commons.lang3.StringUtils; +import org.springframework.data.domain.Page; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class GetListSupplyPositioningMatrixService implements BaseService { + + private SupplyPositioningMatrixRepository supplyPositioningMatrixRepository; + + public GetListSupplyPositioningMatrixService(SupplyPositioningMatrixRepository supplyPositioningMatrixRepository) { + this.supplyPositioningMatrixRepository = supplyPositioningMatrixRepository; + } + + @Override + public GetListSupplyPositioningMatrixResponse execute(SupplyPositioningMatrixRequest input) { + validateRequest(input); + List supplyPositioningMatrixResponseList = new ArrayList<>(); + Page supplyPositioningMatrixViews = supplyPositioningMatrixRepository.getAllSupplyPositioningMatrix(input.getSearch(), input.getPageable()); + + for (SupplyPositioningMatrixView supplyPositioningMatrixView : supplyPositioningMatrixViews) { + SupplyPositioningMatrixResponse supplyPositioningMatrixResponse = SupplyPositioningMatrixResponse.builder() + .id(supplyPositioningMatrixView.getId()) + .supplyPositioningMatrix(supplyPositioningMatrixView.getSupplyPositioningMatrix()) + .keterangan(supplyPositioningMatrixView.getKeterangan()) + .isActive(supplyPositioningMatrixView.getIsActive()) + .isDelete(supplyPositioningMatrixView.getIsDelete()) + .build(); + supplyPositioningMatrixResponseList.add(supplyPositioningMatrixResponse); + } + + return GetListSupplyPositioningMatrixResponse.builder() + .data(supplyPositioningMatrixResponseList) + .pagination(Pagination.builder() + .pageSize(input.getPageable().getPageSize()) + .currentPage(input.getPageable().getPageNumber()) + .totalPages(supplyPositioningMatrixViews.getTotalPages()) + .totalRecords(supplyPositioningMatrixViews.getTotalElements()) + .isFirstPage(supplyPositioningMatrixViews.isFirst()) + .isLastPage(supplyPositioningMatrixViews.isLast()) + .build()) + .build(); + } + + private void validateRequest(SupplyPositioningMatrixRequest input) { + if (StringUtils.isNotBlank(input.getSearch())) { + input.setSearch('%'+ input.getSearch().toUpperCase()+'%'); + } + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/supplypositioningmatrix/GetSupplyPositioningMatrixByIdService.java b/src/main/java/com/iconplus/smartproc/service/supplypositioningmatrix/GetSupplyPositioningMatrixByIdService.java new file mode 100644 index 0000000..65a8982 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/supplypositioningmatrix/GetSupplyPositioningMatrixByIdService.java @@ -0,0 +1,39 @@ +package com.iconplus.smartproc.service.supplypositioningmatrix; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.SupplyPositioningMatrixRequest; +import com.iconplus.smartproc.model.response.SupplyPositioningMatrixResponse; +import com.iconplus.smartproc.repository.SupplyPositioningMatrixRepository; +import com.iconplus.smartproc.util.Constants; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +@Service +public class GetSupplyPositioningMatrixByIdService implements BaseService { + + private final SupplyPositioningMatrixRepository supplyPositioningMatrixRepository; + + public GetSupplyPositioningMatrixByIdService(SupplyPositioningMatrixRepository supplyPositioningMatrixRepository) { + this.supplyPositioningMatrixRepository = supplyPositioningMatrixRepository; + } + + @Override + public SupplyPositioningMatrixResponse execute(SupplyPositioningMatrixRequest input) { + var supplyPositioningMatrixView = supplyPositioningMatrixRepository.findByIdAndIsDeleteFalse(input.getId()); + if (supplyPositioningMatrixView.isEmpty()) { + throw new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, input.getId())); + } + + return SupplyPositioningMatrixResponse.builder() + .id(supplyPositioningMatrixView.get().getId()) + .supplyPositioningMatrix(supplyPositioningMatrixView.get().getSupplyPositioningMatrix()) + .keterangan(supplyPositioningMatrixView.get().getKeterangan()) + .isActive(supplyPositioningMatrixView.get().getIsActive()) + .isDelete(supplyPositioningMatrixView.get().getIsDelete()) + .build(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/supplypositioningmatrix/PostCreateSupplyPositioningMatrixService.java b/src/main/java/com/iconplus/smartproc/service/supplypositioningmatrix/PostCreateSupplyPositioningMatrixService.java new file mode 100644 index 0000000..6a03e52 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/supplypositioningmatrix/PostCreateSupplyPositioningMatrixService.java @@ -0,0 +1,49 @@ +package com.iconplus.smartproc.service.supplypositioningmatrix; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.entity.SupplyPositioningMatrix; +import com.iconplus.smartproc.model.request.SupplyPositioningMatrixRequest; +import com.iconplus.smartproc.model.response.SupplyPositioningMatrixResponse; +import com.iconplus.smartproc.repository.SupplyPositioningMatrixRepository; +import com.iconplus.smartproc.util.Constants; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class PostCreateSupplyPositioningMatrixService implements BaseService { + + private final SupplyPositioningMatrixRepository supplyPositioningMatrixRepository; + + public PostCreateSupplyPositioningMatrixService(SupplyPositioningMatrixRepository supplyPositioningMatrixRepository) { + this.supplyPositioningMatrixRepository = supplyPositioningMatrixRepository; + } + + @Override + public SupplyPositioningMatrixResponse execute(SupplyPositioningMatrixRequest input) { + + var existSupplyPositioningMatrix = supplyPositioningMatrixRepository.findBySupplyPositioningMatrixAndIsDeleteFalse(input.getSupplyPositioningMatrix()); + if (existSupplyPositioningMatrix.isPresent()) { + throw new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10002, + Constants.ERR_TTL_10002, + String.format(Constants.ERR_MSG_10002, input.getSupplyPositioningMatrix())); + } + + SupplyPositioningMatrix supplyPositioningMatrix = SupplyPositioningMatrix.builder() + .supplyPositioningMatrix(input.getSupplyPositioningMatrix()) + .keterangan(input.getKeterangan()) + .isActive(input.getIsActive()) + .isDelete(false) + .build(); + + var result = supplyPositioningMatrixRepository.save(supplyPositioningMatrix); + log.info("success insert supply positioning matrix id : {}", result.getId()); + return SupplyPositioningMatrixResponse.builder() + .id(result.getId()) + .build(); + + } +} \ No newline at end of file diff --git a/src/main/java/com/iconplus/smartproc/service/supplypositioningmatrix/PutUpdateSupplyPositioningMatrixService.java b/src/main/java/com/iconplus/smartproc/service/supplypositioningmatrix/PutUpdateSupplyPositioningMatrixService.java new file mode 100644 index 0000000..321a744 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/supplypositioningmatrix/PutUpdateSupplyPositioningMatrixService.java @@ -0,0 +1,44 @@ +package com.iconplus.smartproc.service.supplypositioningmatrix; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.SupplyPositioningMatrixRequest; +import com.iconplus.smartproc.model.response.SupplyPositioningMatrixResponse; +import com.iconplus.smartproc.repository.SupplyPositioningMatrixRepository; +import com.iconplus.smartproc.util.Constants; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.BooleanUtils; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +import java.sql.Timestamp; + +@Service +@Slf4j +public class PutUpdateSupplyPositioningMatrixService implements BaseService { + + private SupplyPositioningMatrixRepository supplyPositioningMatrixRepository; + + public PutUpdateSupplyPositioningMatrixService(SupplyPositioningMatrixRepository supplyPositioningMatrixRepository) { + this.supplyPositioningMatrixRepository = supplyPositioningMatrixRepository; + } + + @Override + public SupplyPositioningMatrixResponse execute(SupplyPositioningMatrixRequest input) { + + var supplyPositioningMatrix = supplyPositioningMatrixRepository.findByIdAndIsDeleteFalse(input.getId()) + .orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT, + Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, input.getId()))); + + supplyPositioningMatrix.setSupplyPositioningMatrix(input.getSupplyPositioningMatrix()); + supplyPositioningMatrix.setKeterangan(input.getKeterangan()); + supplyPositioningMatrix.setIsActive(input.getIsActive()); + supplyPositioningMatrixRepository.save(supplyPositioningMatrix); + log.info("Success edit supply positioning matrix id {}", supplyPositioningMatrix.getId()); + return SupplyPositioningMatrixResponse.builder() + .id(supplyPositioningMatrix.getId()) + .build(); + } +}