From 180575ce4f4c76d417dcfc36e704657481c3ddae Mon Sep 17 00:00:00 2001 From: dirgantarasiahaan Date: Mon, 5 Jun 2023 09:36:43 +0700 Subject: [PATCH] add path --- .../smartproc/controller/RksController.java | 74 +++++++++++++++++++ .../smartproc/model/entity/RksDaftarIsi.java | 45 +++++++++++ .../smartproc/model/entity/RksIsi.java | 58 +++++++++++++++ .../smartproc/model/entity/RksTemplate.java | 47 ++++++++++++ .../model/projection/RksDaftarIsiView.java | 29 ++++++++ .../model/request/RksDaftarIsiRequest.java | 24 ++++++ .../model/request/RksIsiRequest.java | 36 +++++++++ .../model/request/RksTemplateRequest.java | 26 +++++++ .../response/ListRksDaftarIsiResponse.java | 20 +++++ .../model/response/ListRksIsiResponse.java | 20 +++++ .../response/ListRksTemplateResponse.java | 21 ++++++ .../model/response/ParentMenusResponse.java | 1 + .../model/response/RksDaftarIsiResponse.java | 22 ++++++ .../model/response/RksIsiResponse.java | 25 +++++++ .../model/response/RksTemplateResponse.java | 24 ++++++ .../repository/RksDaftarIsiRepository.java | 29 ++++++++ .../repository/RksIsiRepository.java | 13 ++++ .../repository/RksTemplateRepository.java | 14 ++++ .../service/authentication/LoginService.java | 1 + .../rks/GetListRksDaftarIsiService.java | 52 +++++++++++++ .../service/rks/GetListRksIsiService.java | 56 ++++++++++++++ .../rks/GetListRksTemplateService.java | 21 ++++++ .../rks/PostCreateRksDaftarIsiService.java | 44 +++++++++++ .../rks/PostCreateRksTemplateService.java | 45 +++++++++++ 24 files changed, 747 insertions(+) create mode 100644 src/main/java/com/iconplus/smartproc/controller/RksController.java create mode 100644 src/main/java/com/iconplus/smartproc/model/entity/RksDaftarIsi.java create mode 100644 src/main/java/com/iconplus/smartproc/model/entity/RksIsi.java create mode 100644 src/main/java/com/iconplus/smartproc/model/entity/RksTemplate.java create mode 100644 src/main/java/com/iconplus/smartproc/model/projection/RksDaftarIsiView.java create mode 100644 src/main/java/com/iconplus/smartproc/model/request/RksDaftarIsiRequest.java create mode 100644 src/main/java/com/iconplus/smartproc/model/request/RksIsiRequest.java create mode 100644 src/main/java/com/iconplus/smartproc/model/request/RksTemplateRequest.java create mode 100644 src/main/java/com/iconplus/smartproc/model/response/ListRksDaftarIsiResponse.java create mode 100644 src/main/java/com/iconplus/smartproc/model/response/ListRksIsiResponse.java create mode 100644 src/main/java/com/iconplus/smartproc/model/response/ListRksTemplateResponse.java create mode 100644 src/main/java/com/iconplus/smartproc/model/response/RksDaftarIsiResponse.java create mode 100644 src/main/java/com/iconplus/smartproc/model/response/RksIsiResponse.java create mode 100644 src/main/java/com/iconplus/smartproc/model/response/RksTemplateResponse.java create mode 100644 src/main/java/com/iconplus/smartproc/repository/RksDaftarIsiRepository.java create mode 100644 src/main/java/com/iconplus/smartproc/repository/RksIsiRepository.java create mode 100644 src/main/java/com/iconplus/smartproc/repository/RksTemplateRepository.java create mode 100644 src/main/java/com/iconplus/smartproc/service/rks/GetListRksDaftarIsiService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/rks/GetListRksIsiService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/rks/GetListRksTemplateService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/rks/PostCreateRksDaftarIsiService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/rks/PostCreateRksTemplateService.java diff --git a/src/main/java/com/iconplus/smartproc/controller/RksController.java b/src/main/java/com/iconplus/smartproc/controller/RksController.java new file mode 100644 index 0000000..1dff2cf --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/controller/RksController.java @@ -0,0 +1,74 @@ +package com.iconplus.smartproc.controller; + +import com.iconplus.smartproc.model.request.RksDaftarIsiRequest; +import com.iconplus.smartproc.model.request.RksIsiRequest; +import com.iconplus.smartproc.model.request.RksTemplateRequest; +import com.iconplus.smartproc.model.response.ListRksDaftarIsiResponse; +import com.iconplus.smartproc.model.response.ListRksIsiResponse; +import com.iconplus.smartproc.model.response.RksDaftarIsiResponse; +import com.iconplus.smartproc.model.response.RksTemplateResponse; +import com.iconplus.smartproc.service.rks.GetListRksDaftarIsiService; +import com.iconplus.smartproc.service.rks.GetListRksIsiService; +import com.iconplus.smartproc.service.rks.PostCreateRksDaftarIsiService; +import com.iconplus.smartproc.service.rks.PostCreateRksTemplateService; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.web.bind.annotation.*; + +@CrossOrigin(origins = "${fe.server}", allowCredentials = "true") +@RestController +@RequestMapping("/api/rks") +public class RksController { + + private final GetListRksDaftarIsiService getListRksDaftarIsiService; + private final PostCreateRksDaftarIsiService postCreateRksDaftarIsiService; + private final GetListRksIsiService getListRksIsiService; + private final PostCreateRksTemplateService postCreateRksTemplateService; + public RksController(GetListRksDaftarIsiService getListRksDaftarIsiService, + PostCreateRksDaftarIsiService postCreateRksDaftarIsiService, + GetListRksIsiService getListRksIsiService, + PostCreateRksTemplateService postCreateRksTemplateService) { + this.getListRksDaftarIsiService = getListRksDaftarIsiService; + this.postCreateRksDaftarIsiService = postCreateRksDaftarIsiService; + this.getListRksIsiService = getListRksIsiService; + this.postCreateRksTemplateService = postCreateRksTemplateService; + } + + + @GetMapping("/daftar-isi") + public ListRksDaftarIsiResponse getAllRksDaftarIsi(@RequestParam(name = "page", defaultValue = "1") Integer page, + @RequestParam(name = "size", defaultValue = "5") Integer size){ + + Pageable pageable = PageRequest.of((page - 1), size); + RksDaftarIsiRequest rksDaftarIsiRequest = RksDaftarIsiRequest.builder() + .pageable(pageable) + .build(); + + return getListRksDaftarIsiService.execute(rksDaftarIsiRequest); + + } + + @PostMapping("/daftar-isi") + public RksDaftarIsiResponse createRksDaftarIsi(@RequestBody RksDaftarIsiRequest rksDaftarIsiRequest) { + return postCreateRksDaftarIsiService.execute(rksDaftarIsiRequest); + } + + @GetMapping("/daftar-isi/{id}/isi") + public ListRksIsiResponse getListRksIsi(@PathVariable(name = "id") Long id, + @RequestParam(name = "page", defaultValue = "1") Integer page, + @RequestParam(name = "size", defaultValue = "5") Integer size) { + + Pageable pageable = PageRequest.of((page - 1), size); + RksIsiRequest rksIsiRequest = RksIsiRequest.builder() + .rksDaftarIsiId(id) + .pageable(pageable) + .build(); + return getListRksIsiService.execute(rksIsiRequest); + } + + @PostMapping("/template") + public RksTemplateResponse createRksTemplate(@RequestBody RksTemplateRequest rksTemplateRequest) { + return postCreateRksTemplateService.execute(rksTemplateRequest); + } + +} diff --git a/src/main/java/com/iconplus/smartproc/model/entity/RksDaftarIsi.java b/src/main/java/com/iconplus/smartproc/model/entity/RksDaftarIsi.java new file mode 100644 index 0000000..8741fe1 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/entity/RksDaftarIsi.java @@ -0,0 +1,45 @@ +package com.iconplus.smartproc.model.entity; + +import com.iconplus.smartproc.helper.base.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.Type; + +import javax.persistence.*; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Entity +@Table(name = "rks_daftar_isi") +public class RksDaftarIsi extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id") + private Long id; + + @Column(name = "kode_template") + private String kodeTemplate; + + @Column(name = "nama_template") + private String namaTemplate; + + @Column(name = "metode_pengadaan_id") + private Long metodePengadaanId; + + @Column(name = "versi") + private String versi; + + @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/entity/RksIsi.java b/src/main/java/com/iconplus/smartproc/model/entity/RksIsi.java new file mode 100644 index 0000000..0b64b47 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/entity/RksIsi.java @@ -0,0 +1,58 @@ +package com.iconplus.smartproc.model.entity; + +import com.iconplus.smartproc.helper.base.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.Type; + +import javax.persistence.*; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Entity +@Table(name = "rks_isi") +public class RksIsi extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id") + private Long id; + + @Column(name = "rks_daftar_isi_id") + private Long rksDaftarIsiId; + + @Column(name = "nomor") + private String nomor; + + @Column(name = "parent_id") + private Integer parentId; + + @Column(name = "nama") + private String nama; + + @Column(name = "bab") + private String bab; + + @Column(name = "sub_bab") + private String subBab; + + @Column(name = "urutan") + private String urutan; + + @Column(name = "is_kontrak") + @Type(type = "org.hibernate.type.NumericBooleanType") + private Boolean isKontrak; + + @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/entity/RksTemplate.java b/src/main/java/com/iconplus/smartproc/model/entity/RksTemplate.java new file mode 100644 index 0000000..ffd9031 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/entity/RksTemplate.java @@ -0,0 +1,47 @@ +package com.iconplus.smartproc.model.entity; + +import com.iconplus.smartproc.helper.base.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.Type; + +import javax.persistence.*; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Entity +@Table(name = "rks_template") +public class RksTemplate extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id") + private Long id; + + @Column(name = "kode_template") + private String kodeTemplate; + + @Column(name = "nama_template") + private String namaTemplate; + + @Column(name = "metode_pengadaan_id") + private Long metodePengadaanId; + + @Column(name = "versi") + private String versi; + + @Column(name = "rks_daftar_isi_id") + private Long rksDaftarIsiId; + + @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/RksDaftarIsiView.java b/src/main/java/com/iconplus/smartproc/model/projection/RksDaftarIsiView.java new file mode 100644 index 0000000..cdfe389 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/projection/RksDaftarIsiView.java @@ -0,0 +1,29 @@ +package com.iconplus.smartproc.model.projection; + +public interface RksDaftarIsiView { + + Long getId(); + void setId(Long id); + + String getKodeTemplate(); + void setKodeTemplate(String kodeTemplate); + + String getNamaTemplate(); + void setNamaTemplate(String namaTemplate); + + Long getMetodePengadaanId(); + void setMetodePengadaanId(Long metodePengadaanId); + + String getMetodePengadaan(); + void setMetodePengadaan(String metodePengadaan); + + String getVersi(); + void setVersi(String versi); + + Boolean getIsActive(); + void setIsActive(Boolean isActive); + + Boolean getIsDelete(); + void setIsDelete(Boolean isDelete); + +} diff --git a/src/main/java/com/iconplus/smartproc/model/request/RksDaftarIsiRequest.java b/src/main/java/com/iconplus/smartproc/model/request/RksDaftarIsiRequest.java new file mode 100644 index 0000000..c8b4d4a --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/request/RksDaftarIsiRequest.java @@ -0,0 +1,24 @@ +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 +@AllArgsConstructor +@NoArgsConstructor +public class RksDaftarIsiRequest extends BaseRequest { + + private Long id; + private String kodeTemplate; + private String namaTemplate; + private Long metodePengadaanId; + private String versi; + + private transient Pageable pageable; + +} diff --git a/src/main/java/com/iconplus/smartproc/model/request/RksIsiRequest.java b/src/main/java/com/iconplus/smartproc/model/request/RksIsiRequest.java new file mode 100644 index 0000000..ae8cf4d --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/request/RksIsiRequest.java @@ -0,0 +1,36 @@ +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.hibernate.annotations.Type; +import org.springframework.data.domain.Pageable; + +import javax.persistence.Column; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class RksIsiRequest extends BaseRequest { + + private Long id; + private Long rksDaftarIsiId; + private String nomor; + private Integer parentId; + private String nama; + private String bab; + private String subBab; + private String urutan; + private Boolean isKontrak; + private Boolean isActive; + private Boolean isDelete; + + private transient Pageable pageable; + +} diff --git a/src/main/java/com/iconplus/smartproc/model/request/RksTemplateRequest.java b/src/main/java/com/iconplus/smartproc/model/request/RksTemplateRequest.java new file mode 100644 index 0000000..0fdfcab --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/request/RksTemplateRequest.java @@ -0,0 +1,26 @@ +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 +@AllArgsConstructor +@NoArgsConstructor +public class RksTemplateRequest extends BaseRequest { + + private Long id; + private String kodeTemplate; + private String namaTemplate; + private Long metodePengadaanId; + private String versi; + private Long rksDaftarIsiId; + private Boolean isActive; + private Boolean isDelete; + + private transient Pageable pageable; +} diff --git a/src/main/java/com/iconplus/smartproc/model/response/ListRksDaftarIsiResponse.java b/src/main/java/com/iconplus/smartproc/model/response/ListRksDaftarIsiResponse.java new file mode 100644 index 0000000..d41d1a0 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/response/ListRksDaftarIsiResponse.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 +@AllArgsConstructor +@NoArgsConstructor +public class ListRksDaftarIsiResponse extends BaseResponse { + + private List data; + private Pagination pagination; +} diff --git a/src/main/java/com/iconplus/smartproc/model/response/ListRksIsiResponse.java b/src/main/java/com/iconplus/smartproc/model/response/ListRksIsiResponse.java new file mode 100644 index 0000000..fbd17d3 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/response/ListRksIsiResponse.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 +@AllArgsConstructor +@NoArgsConstructor +public class ListRksIsiResponse extends BaseResponse { + + private List data; + private Pagination pagination; +} diff --git a/src/main/java/com/iconplus/smartproc/model/response/ListRksTemplateResponse.java b/src/main/java/com/iconplus/smartproc/model/response/ListRksTemplateResponse.java new file mode 100644 index 0000000..61e957c --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/response/ListRksTemplateResponse.java @@ -0,0 +1,21 @@ +package com.iconplus.smartproc.model.response; + +import com.iconplus.smartproc.helper.base.BaseResponse; +import com.iconplus.smartproc.helper.model.Pagination; +import com.iconplus.smartproc.model.entity.RksTemplate; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ListRksTemplateResponse extends BaseResponse { + + private List data; + private Pagination pagination; +} diff --git a/src/main/java/com/iconplus/smartproc/model/response/ParentMenusResponse.java b/src/main/java/com/iconplus/smartproc/model/response/ParentMenusResponse.java index b2c78cf..3245894 100644 --- a/src/main/java/com/iconplus/smartproc/model/response/ParentMenusResponse.java +++ b/src/main/java/com/iconplus/smartproc/model/response/ParentMenusResponse.java @@ -17,5 +17,6 @@ public class ParentMenusResponse extends BaseResponse { private Long id; private String text; private String icon; + private String path; private List items; } diff --git a/src/main/java/com/iconplus/smartproc/model/response/RksDaftarIsiResponse.java b/src/main/java/com/iconplus/smartproc/model/response/RksDaftarIsiResponse.java new file mode 100644 index 0000000..755a1c3 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/response/RksDaftarIsiResponse.java @@ -0,0 +1,22 @@ +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 +@AllArgsConstructor +@NoArgsConstructor +public class RksDaftarIsiResponse extends BaseResponse { + + private Long id; + private String kodeTemplate; + private String namaTemplate; + private Long metodePengadaanId; + private String metodePengadaan; + private String versi; + +} diff --git a/src/main/java/com/iconplus/smartproc/model/response/RksIsiResponse.java b/src/main/java/com/iconplus/smartproc/model/response/RksIsiResponse.java new file mode 100644 index 0000000..db72bd6 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/response/RksIsiResponse.java @@ -0,0 +1,25 @@ +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 +@AllArgsConstructor +@NoArgsConstructor +public class RksIsiResponse extends BaseResponse { + private Long id; + private Long rksDaftarIsiId; + private String nomor; + private Integer parentId; + private String nama; + private String bab; + private String subBab; + private String urutan; + private Boolean isKontrak; + private Boolean isActive; + private Boolean isDelete; +} diff --git a/src/main/java/com/iconplus/smartproc/model/response/RksTemplateResponse.java b/src/main/java/com/iconplus/smartproc/model/response/RksTemplateResponse.java new file mode 100644 index 0000000..e9a669b --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/response/RksTemplateResponse.java @@ -0,0 +1,24 @@ +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 +@AllArgsConstructor +@NoArgsConstructor +public class RksTemplateResponse extends BaseResponse { + + private Long id; + private String kodeTemplate; + private String namaTemplate; + private Long metodePengadaanId; + private String versi; + private Long rksDaftarIsiId; + private Boolean isActive; + private Boolean isDelete; + +} diff --git a/src/main/java/com/iconplus/smartproc/repository/RksDaftarIsiRepository.java b/src/main/java/com/iconplus/smartproc/repository/RksDaftarIsiRepository.java new file mode 100644 index 0000000..80cb02f --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/repository/RksDaftarIsiRepository.java @@ -0,0 +1,29 @@ +package com.iconplus.smartproc.repository; + +import com.iconplus.smartproc.model.entity.RksDaftarIsi; +import com.iconplus.smartproc.model.projection.RksDaftarIsiView; +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 RksDaftarIsiRepository extends JpaRepository { + + @Query(value = "SELECT rki.id as id, " + + "rki.kodeTemplate as kodeTemplate, " + + "rki.namaTemplate as namaTemplate, " + + "rki.metodePengadaanId as metodePengadaanId, " + + "mp.metodePengadaan as metodePengadaan " + + "FROM RksDaftarIsi rki " + + "JOIN MetodePengadaan mp ON mp.id = rki.metodePengadaanId " + + "WHERE rki.isDelete = false " + + "ORDER BY rki.kodeTemplate") + Page getListRksDaftarIsi(Pageable pageable); + + Optional findByKodeTemplateAndIsDeleteFalse(String kodeTemplate); + +} diff --git a/src/main/java/com/iconplus/smartproc/repository/RksIsiRepository.java b/src/main/java/com/iconplus/smartproc/repository/RksIsiRepository.java new file mode 100644 index 0000000..e110686 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/repository/RksIsiRepository.java @@ -0,0 +1,13 @@ +package com.iconplus.smartproc.repository; + +import com.iconplus.smartproc.model.entity.RksIsi; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface RksIsiRepository extends JpaRepository { + + Page findByRksDaftarIsiIdAndIsDeleteFalse(Long rksDaftarIsiId, Pageable pageable); +} diff --git a/src/main/java/com/iconplus/smartproc/repository/RksTemplateRepository.java b/src/main/java/com/iconplus/smartproc/repository/RksTemplateRepository.java new file mode 100644 index 0000000..a87a56d --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/repository/RksTemplateRepository.java @@ -0,0 +1,14 @@ +package com.iconplus.smartproc.repository; + +import com.iconplus.smartproc.model.entity.RksTemplate; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + +@Repository +public interface RksTemplateRepository extends JpaRepository { + + Optional findByKodeTemplateAndIsDeleteFalse(String kodeTemplate); + +} diff --git a/src/main/java/com/iconplus/smartproc/service/authentication/LoginService.java b/src/main/java/com/iconplus/smartproc/service/authentication/LoginService.java index 5c5cec3..06e0d64 100644 --- a/src/main/java/com/iconplus/smartproc/service/authentication/LoginService.java +++ b/src/main/java/com/iconplus/smartproc/service/authentication/LoginService.java @@ -87,6 +87,7 @@ public class LoginService implements BaseService { .id(menus.getId()) .text(menus.getNama()) .icon(menus.getIcon()) + .path(menus.getLink()) .items(new ArrayList<>()) .build(); parentMenusResponseList.add(parentMenusResponse); diff --git a/src/main/java/com/iconplus/smartproc/service/rks/GetListRksDaftarIsiService.java b/src/main/java/com/iconplus/smartproc/service/rks/GetListRksDaftarIsiService.java new file mode 100644 index 0000000..18b2361 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/rks/GetListRksDaftarIsiService.java @@ -0,0 +1,52 @@ +package com.iconplus.smartproc.service.rks; + +import com.iconplus.smartproc.helper.model.Pagination; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.projection.RksDaftarIsiView; +import com.iconplus.smartproc.model.request.RksDaftarIsiRequest; +import com.iconplus.smartproc.model.response.ListRksDaftarIsiResponse; +import com.iconplus.smartproc.model.response.RksDaftarIsiResponse; +import com.iconplus.smartproc.repository.RksDaftarIsiRepository; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class GetListRksDaftarIsiService implements BaseService { + + private final RksDaftarIsiRepository rksDaftarIsiRepository; + public GetListRksDaftarIsiService(RksDaftarIsiRepository rksDaftarIsiRepository) { + this.rksDaftarIsiRepository = rksDaftarIsiRepository; + } + + @Override + public ListRksDaftarIsiResponse execute(RksDaftarIsiRequest input) { + + List rksDaftarIsiResponseList = new ArrayList<>(); + var rksDaftarIsiViews= rksDaftarIsiRepository.getListRksDaftarIsi(input.getPageable()); + for (RksDaftarIsiView rksDaftarIsiView : rksDaftarIsiViews) { + RksDaftarIsiResponse rksDaftarIsiResponse = RksDaftarIsiResponse.builder() + .id(rksDaftarIsiView.getId()) + .kodeTemplate(rksDaftarIsiView.getKodeTemplate()) + .namaTemplate(rksDaftarIsiView.getNamaTemplate()) + .metodePengadaanId(rksDaftarIsiView.getMetodePengadaanId()) + .metodePengadaan(rksDaftarIsiView.getMetodePengadaan()) + .versi(rksDaftarIsiView.getVersi()) + .build(); + rksDaftarIsiResponseList.add(rksDaftarIsiResponse); + } + + return ListRksDaftarIsiResponse.builder() + .data(rksDaftarIsiResponseList) + .pagination(Pagination.builder() + .pageSize(input.getPageable().getPageSize()) + .currentPage(input.getPageable().getPageNumber()) + .totalPages(rksDaftarIsiViews.getTotalPages()) + .totalRecords(rksDaftarIsiViews.getTotalElements()) + .isFirstPage(rksDaftarIsiViews.isFirst()) + .isLastPage(rksDaftarIsiViews.isLast()) + .build()) + .build(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/rks/GetListRksIsiService.java b/src/main/java/com/iconplus/smartproc/service/rks/GetListRksIsiService.java new file mode 100644 index 0000000..38c58d2 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/rks/GetListRksIsiService.java @@ -0,0 +1,56 @@ +package com.iconplus.smartproc.service.rks; + +import com.iconplus.smartproc.helper.model.Pagination; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.entity.RksIsi; +import com.iconplus.smartproc.model.request.RksIsiRequest; +import com.iconplus.smartproc.model.response.ListRksIsiResponse; +import com.iconplus.smartproc.model.response.RksIsiResponse; +import com.iconplus.smartproc.repository.RksIsiRepository; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class GetListRksIsiService implements BaseService { + + private final RksIsiRepository rksIsiRepository; + + public GetListRksIsiService(RksIsiRepository rksIsiRepository) { + this.rksIsiRepository = rksIsiRepository; + } + + @Override + public ListRksIsiResponse execute(RksIsiRequest input) { + + List rksIsiResponseList = new ArrayList<>(); + var rksIsis = rksIsiRepository.findByRksDaftarIsiIdAndIsDeleteFalse(input.getRksDaftarIsiId(), input.getPageable()); + for (RksIsi rksIsi : rksIsis) { + RksIsiResponse rksIsiResponse = RksIsiResponse.builder() + .id(rksIsi.getId()) + .rksDaftarIsiId(rksIsi.getRksDaftarIsiId()) + .nomor(rksIsi.getNomor()) + .parentId(rksIsi.getParentId()) + .nama(rksIsi.getNama()) + .bab(rksIsi.getBab()) + .subBab(rksIsi.getSubBab()) + .urutan(rksIsi.getUrutan()) + .isKontrak(rksIsi.getIsKontrak()) + .build(); + rksIsiResponseList.add(rksIsiResponse); + } + + return ListRksIsiResponse.builder() + .data(rksIsiResponseList) + .pagination(Pagination.builder() + .pageSize(input.getPageable().getPageSize()) + .currentPage(input.getPageable().getPageNumber()) + .totalPages(rksIsis.getTotalPages()) + .totalRecords(rksIsis.getTotalElements()) + .isFirstPage(rksIsis.isFirst()) + .isLastPage(rksIsis.isLast()) + .build()) + .build(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/rks/GetListRksTemplateService.java b/src/main/java/com/iconplus/smartproc/service/rks/GetListRksTemplateService.java new file mode 100644 index 0000000..ca8c679 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/rks/GetListRksTemplateService.java @@ -0,0 +1,21 @@ +package com.iconplus.smartproc.service.rks; + +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.RksTemplateRequest; +import com.iconplus.smartproc.model.response.ListRksTemplateResponse; +import com.iconplus.smartproc.repository.RksTemplateRepository; +import org.springframework.stereotype.Service; + +@Service +public class GetListRksTemplateService implements BaseService { + + private final RksTemplateRepository rksTemplateRepository; + public GetListRksTemplateService(RksTemplateRepository rksTemplateRepository) { + this.rksTemplateRepository = rksTemplateRepository; + } + + @Override + public ListRksTemplateResponse execute(RksTemplateRequest input) throws Exception { + return null; + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/rks/PostCreateRksDaftarIsiService.java b/src/main/java/com/iconplus/smartproc/service/rks/PostCreateRksDaftarIsiService.java new file mode 100644 index 0000000..9a9a704 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/rks/PostCreateRksDaftarIsiService.java @@ -0,0 +1,44 @@ +package com.iconplus.smartproc.service.rks; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.entity.RksDaftarIsi; +import com.iconplus.smartproc.model.request.RksDaftarIsiRequest; +import com.iconplus.smartproc.model.response.RksDaftarIsiResponse; +import com.iconplus.smartproc.repository.RksDaftarIsiRepository; +import com.iconplus.smartproc.util.Constants; +import org.springframework.stereotype.Service; + +@Service +public class PostCreateRksDaftarIsiService implements BaseService { + + private final RksDaftarIsiRepository rksDaftarIsiRepository; + public PostCreateRksDaftarIsiService(RksDaftarIsiRepository rksDaftarIsiRepository) { + this.rksDaftarIsiRepository = rksDaftarIsiRepository; + } + + @Override + public RksDaftarIsiResponse execute(RksDaftarIsiRequest input) { + + var rksDaftarIsiOptional = rksDaftarIsiRepository.findByKodeTemplateAndIsDeleteFalse(input.getKodeTemplate()); + if (rksDaftarIsiOptional.isPresent()) { + throw new BusinessException(Constants.ERR_CODE_10002, + Constants.ERR_TTL_10002, + String.format(Constants.ERR_MSG_10002, "RKS Kode Template", input.getKodeTemplate())); + } + + + RksDaftarIsi rksDaftarIsi = RksDaftarIsi.builder() + .kodeTemplate(input.getKodeTemplate()) + .namaTemplate(input.getNamaTemplate()) + .metodePengadaanId(input.getMetodePengadaanId()) + .versi(input.getVersi()) + .isDelete(false) + .build(); + + var result = rksDaftarIsiRepository.save(rksDaftarIsi); + return RksDaftarIsiResponse.builder() + .id(result.getId()) + .build(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/rks/PostCreateRksTemplateService.java b/src/main/java/com/iconplus/smartproc/service/rks/PostCreateRksTemplateService.java new file mode 100644 index 0000000..ca20a00 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/rks/PostCreateRksTemplateService.java @@ -0,0 +1,45 @@ +package com.iconplus.smartproc.service.rks; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.entity.RksTemplate; +import com.iconplus.smartproc.model.request.RksTemplateRequest; +import com.iconplus.smartproc.model.response.RksTemplateResponse; +import com.iconplus.smartproc.repository.RksTemplateRepository; +import com.iconplus.smartproc.util.Constants; +import org.springframework.stereotype.Service; + +@Service +public class PostCreateRksTemplateService implements BaseService { + + private final RksTemplateRepository rksTemplateRepository; + public PostCreateRksTemplateService(RksTemplateRepository rksTemplateRepository) { + this.rksTemplateRepository = rksTemplateRepository; + } + + @Override + public RksTemplateResponse execute(RksTemplateRequest input) { + + var rksTemplateOptional= rksTemplateRepository.findByKodeTemplateAndIsDeleteFalse(input.getKodeTemplate()); + if (rksTemplateOptional.isPresent()) { + throw new BusinessException(Constants.ERR_CODE_10002, + Constants.ERR_TTL_10002, + String.format(Constants.ERR_MSG_10002, "RKS Kode Template", input.getKodeTemplate())); + } + + RksTemplate rksTemplate = RksTemplate.builder() + .kodeTemplate(input.getKodeTemplate()) + .namaTemplate(input.getNamaTemplate()) + .metodePengadaanId(input.getMetodePengadaanId()) + .rksDaftarIsiId(input.getRksDaftarIsiId()) + .versi(input.getVersi()) + .isDelete(false) + .build(); + + var result = rksTemplateRepository.save(rksTemplate); + + return RksTemplateResponse.builder() + .id(result.getId()) + .build(); + } +}