This commit is contained in:
dirgantarasiahaan 2023-06-05 09:36:43 +07:00
parent abc89d32d0
commit 180575ce4f
24 changed files with 747 additions and 0 deletions

View File

@ -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);
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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<RksDaftarIsiResponse> data;
private Pagination pagination;
}

View File

@ -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<RksIsiResponse> data;
private Pagination pagination;
}

View File

@ -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<RksTemplate> data;
private Pagination pagination;
}

View File

@ -17,5 +17,6 @@ public class ParentMenusResponse extends BaseResponse {
private Long id;
private String text;
private String icon;
private String path;
private List<MenusResponse> items;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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<RksDaftarIsi, Long> {
@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<RksDaftarIsiView> getListRksDaftarIsi(Pageable pageable);
Optional<RksDaftarIsi> findByKodeTemplateAndIsDeleteFalse(String kodeTemplate);
}

View File

@ -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<RksIsi, Long> {
Page<RksIsi> findByRksDaftarIsiIdAndIsDeleteFalse(Long rksDaftarIsiId, Pageable pageable);
}

View File

@ -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<RksTemplate, Long> {
Optional<RksTemplate> findByKodeTemplateAndIsDeleteFalse(String kodeTemplate);
}

View File

@ -87,6 +87,7 @@ public class LoginService implements BaseService<LoginRequest, LoginResponse> {
.id(menus.getId())
.text(menus.getNama())
.icon(menus.getIcon())
.path(menus.getLink())
.items(new ArrayList<>())
.build();
parentMenusResponseList.add(parentMenusResponse);

View File

@ -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<RksDaftarIsiRequest, ListRksDaftarIsiResponse> {
private final RksDaftarIsiRepository rksDaftarIsiRepository;
public GetListRksDaftarIsiService(RksDaftarIsiRepository rksDaftarIsiRepository) {
this.rksDaftarIsiRepository = rksDaftarIsiRepository;
}
@Override
public ListRksDaftarIsiResponse execute(RksDaftarIsiRequest input) {
List<RksDaftarIsiResponse> 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();
}
}

View File

@ -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<RksIsiRequest, ListRksIsiResponse> {
private final RksIsiRepository rksIsiRepository;
public GetListRksIsiService(RksIsiRepository rksIsiRepository) {
this.rksIsiRepository = rksIsiRepository;
}
@Override
public ListRksIsiResponse execute(RksIsiRequest input) {
List<RksIsiResponse> 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();
}
}

View File

@ -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<RksTemplateRequest, ListRksTemplateResponse> {
private final RksTemplateRepository rksTemplateRepository;
public GetListRksTemplateService(RksTemplateRepository rksTemplateRepository) {
this.rksTemplateRepository = rksTemplateRepository;
}
@Override
public ListRksTemplateResponse execute(RksTemplateRequest input) throws Exception {
return null;
}
}

View File

@ -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<RksDaftarIsiRequest, RksDaftarIsiResponse> {
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();
}
}

View File

@ -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<RksTemplateRequest, RksTemplateResponse> {
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();
}
}