add rks isi

This commit is contained in:
dirgantarasiahaan 2023-06-06 09:31:11 +07:00
parent f0f7a76f7c
commit 4877b84de0
11 changed files with 297 additions and 14 deletions

View File

@ -19,16 +19,28 @@ public class RksDaftarIsiController {
private final GetListRksIsiService getListRksIsiService; private final GetListRksIsiService getListRksIsiService;
private final DeleteRksDaftarIsiService deleteRksDaftarIsiService; private final DeleteRksDaftarIsiService deleteRksDaftarIsiService;
private final PutUpdateRksDaftarIsiService putUpdateRksDaftarIsiService; private final PutUpdateRksDaftarIsiService putUpdateRksDaftarIsiService;
private final GetListRksParentService getListRksParentService;
private final PostCreateRksIsiService postCreateRksIsiService;
private final DeleteRksIsiService deleteRksIsiService;
private final PutEditRksIsiService putEditRksIsiService;
public RksDaftarIsiController(GetListRksDaftarIsiService getListRksDaftarIsiService, public RksDaftarIsiController(GetListRksDaftarIsiService getListRksDaftarIsiService,
PostCreateRksDaftarIsiService postCreateRksDaftarIsiService, PostCreateRksDaftarIsiService postCreateRksDaftarIsiService,
GetListRksIsiService getListRksIsiService, GetListRksIsiService getListRksIsiService,
DeleteRksDaftarIsiService deleteRksDaftarIsiService, DeleteRksDaftarIsiService deleteRksDaftarIsiService,
PutUpdateRksDaftarIsiService putUpdateRksDaftarIsiService) { PutUpdateRksDaftarIsiService putUpdateRksDaftarIsiService,
GetListRksParentService getListRksParentService,
PostCreateRksIsiService postCreateRksIsiService,
DeleteRksIsiService deleteRksIsiService,
PutEditRksIsiService putEditRksIsiService) {
this.getListRksDaftarIsiService = getListRksDaftarIsiService; this.getListRksDaftarIsiService = getListRksDaftarIsiService;
this.postCreateRksDaftarIsiService = postCreateRksDaftarIsiService; this.postCreateRksDaftarIsiService = postCreateRksDaftarIsiService;
this.getListRksIsiService = getListRksIsiService; this.getListRksIsiService = getListRksIsiService;
this.deleteRksDaftarIsiService = deleteRksDaftarIsiService; this.deleteRksDaftarIsiService = deleteRksDaftarIsiService;
this.putUpdateRksDaftarIsiService = putUpdateRksDaftarIsiService; this.putUpdateRksDaftarIsiService = putUpdateRksDaftarIsiService;
this.getListRksParentService = getListRksParentService;
this.postCreateRksIsiService = postCreateRksIsiService;
this.deleteRksIsiService = deleteRksIsiService;
this.putEditRksIsiService = putEditRksIsiService;
} }
@ -50,19 +62,6 @@ public class RksDaftarIsiController {
return postCreateRksDaftarIsiService.execute(rksDaftarIsiRequest); return postCreateRksDaftarIsiService.execute(rksDaftarIsiRequest);
} }
@GetMapping("/{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);
}
@PutMapping("/{id}") @PutMapping("/{id}")
public RksDaftarIsiResponse editRksDaftarIsi(@PathVariable(name = "id") Long id, public RksDaftarIsiResponse editRksDaftarIsi(@PathVariable(name = "id") Long id,
@RequestBody RksDaftarIsiRequest rksDaftarIsiRequest) { @RequestBody RksDaftarIsiRequest rksDaftarIsiRequest) {
@ -78,4 +77,46 @@ public class RksDaftarIsiController {
} }
// perlu enhance
@GetMapping("/{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);
}
@GetMapping("/{id}/parent")
public ListRksIsiResponse getParentRksIsi(@PathVariable(name = "id") Long id) {
return getListRksParentService.execute(RksIsiRequest.builder()
.rksDaftarIsiId(id)
.build());
}
@PostMapping("/{id}/isi")
public RksIsiResponse createRksIsi(@PathVariable(name = "id") Long id,
@RequestBody RksIsiRequest rksIsiRequest) {
rksIsiRequest.setRksDaftarIsiId(id);
return postCreateRksIsiService.execute(rksIsiRequest);
}
@PutMapping("/isi/{id}")
public RksIsiResponse editRksIsi(@PathVariable(name = "id") Long id,
@RequestBody RksIsiRequest rksIsiRequest) {
rksIsiRequest.setId(id);
return putEditRksIsiService.execute(rksIsiRequest);
}
@DeleteMapping("/isi/{id}")
public EmptyResponse deleteRksIsi(@PathVariable(name = "id") Long id) {
return deleteRksIsiService.execute(RksIsiRequest.builder()
.id(id)
.build());
}
} }

View File

@ -31,12 +31,18 @@ public class RksIsi extends BaseEntity {
@Column(name = "parent_id") @Column(name = "parent_id")
private Integer parentId; private Integer parentId;
@Column(name = "parent")
private String parent;
@Column(name = "nama") @Column(name = "nama")
private String nama; private String nama;
@Column(name = "bab") @Column(name = "bab")
private String bab; private String bab;
@Column(name = "kelompok")
private String kelompok;
@Column(name = "sub_bab") @Column(name = "sub_bab")
private String subBab; private String subBab;

View File

@ -23,9 +23,11 @@ public class RksIsiRequest extends BaseRequest {
private Long rksDaftarIsiId; private Long rksDaftarIsiId;
private String nomor; private String nomor;
private Integer parentId; private Integer parentId;
private String parent;
private String nama; private String nama;
private String bab; private String bab;
private String subBab; private String subBab;
private String kelompok;
private String urutan; private String urutan;
private Boolean isKontrak; private Boolean isKontrak;
private Boolean isActive; private Boolean isActive;

View File

@ -15,6 +15,7 @@ public class RksIsiResponse extends BaseResponse {
private Long rksDaftarIsiId; private Long rksDaftarIsiId;
private String nomor; private String nomor;
private Integer parentId; private Integer parentId;
private String parent;
private String nama; private String nama;
private String bab; private String bab;
private String subBab; private String subBab;

View File

@ -1,6 +1,7 @@
package com.iconplus.smartproc.repository; package com.iconplus.smartproc.repository;
import com.iconplus.smartproc.model.entity.RksDaftarIsi; import com.iconplus.smartproc.model.entity.RksDaftarIsi;
import com.iconplus.smartproc.model.entity.RksIsi;
import com.iconplus.smartproc.model.projection.RksDaftarIsiView; import com.iconplus.smartproc.model.projection.RksDaftarIsiView;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
@ -8,6 +9,7 @@ import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional; import java.util.Optional;
@Repository @Repository

View File

@ -9,11 +9,26 @@ import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param; import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional;
@Repository @Repository
public interface RksIsiRepository extends JpaRepository<RksIsi, Long> { public interface RksIsiRepository extends JpaRepository<RksIsi, Long> {
Page<RksIsi> findByRksDaftarIsiIdAndIsDeleteFalse(Long rksDaftarIsiId, Pageable pageable); Page<RksIsi> findByRksDaftarIsiIdAndIsDeleteFalse(Long rksDaftarIsiId, Pageable pageable);
Optional<RksIsi> findByRksDaftarIsiIdAndNamaAndIsDeleteFalse(Long rksDaftarIsiId, String nama);
Optional<RksIsi> findByRksDaftarIsiIdAndBabAndIsDeleteFalse(Long rksDaftarIsiId, String bab);
Optional<RksIsi> findByRksDaftarIsiIdAndSubBabAndIsDeleteFalse(Long rksDaftarIsiId, String subBab);
Optional<RksIsi> findByRksDaftarIsiIdAndKelompokAndIsDeleteFalse(Long rksDaftarIsiId, String kelompok);
Optional<RksIsi> findByIdAndIsDeleteFalse(Long id);
List<RksIsi> findByRksDaftarIsiIdAndIsDeleteFalse(Long rksDaftarIsiId);
@Modifying @Modifying
@Query(value = "update RksIsi ri " + @Query(value = "update RksIsi ri " +
"set ri.isDelete = true " + "set ri.isDelete = true " +

View File

@ -65,6 +65,7 @@ public class GetDrpService implements BaseService<DrpRequest, DrpResponse> {
.drpId(drpDokumen.getDrpId()) .drpId(drpDokumen.getDrpId())
.jenisDokumenId(drpDokumen.getJenisDokumenId()) .jenisDokumenId(drpDokumen.getJenisDokumenId())
.filename(drpDokumen.getFilename()) .filename(drpDokumen.getFilename())
.keterangan(drpDokumen.getKeterangan())
.build(); .build();
drpDokumenResponseList.add(drpDokumenResponse); drpDokumenResponseList.add(drpDokumenResponse);
} else { } else {
@ -73,6 +74,7 @@ public class GetDrpService implements BaseService<DrpRequest, DrpResponse> {
.drpId(drpDokumen.getDrpId()) .drpId(drpDokumen.getDrpId())
.jenisDokumenId(drpDokumen.getJenisDokumenId()) .jenisDokumenId(drpDokumen.getJenisDokumenId())
.filename(drpDokumen.getFilename()) .filename(drpDokumen.getFilename())
.keterangan(drpDokumen.getKeterangan())
.build(); .build();
drpDokumenPendukungList.add(drpDokumenResponse); drpDokumenPendukungList.add(drpDokumenResponse);
} }

View File

@ -0,0 +1,33 @@
package com.iconplus.smartproc.service.rksdaftarisi;
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.RksIsiRequest;
import com.iconplus.smartproc.repository.RksIsiRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
@Service
public class DeleteRksIsiService implements BaseService<RksIsiRequest, EmptyResponse> {
private final RksIsiRepository rksIsiRepository;
public DeleteRksIsiService(RksIsiRepository rksIsiRepository) {
this.rksIsiRepository = rksIsiRepository;
}
@Override
public EmptyResponse execute(RksIsiRequest input) {
var rksIsi = rksIsiRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException(
Constants.ERR_CODE_10001,
Constants.ERR_TTL_10001,
String.format(Constants.ERR_MSG_10001, "RKS Isi", input.getId())
));
rksIsi.setIsDelete(true);
rksIsiRepository.save(rksIsi);
return new EmptyResponse();
}
}

View File

@ -0,0 +1,41 @@
package com.iconplus.smartproc.service.rksdaftarisi;
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.RksDaftarIsiRepository;
import com.iconplus.smartproc.repository.RksIsiRepository;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class GetListRksParentService implements BaseService<RksIsiRequest, ListRksIsiResponse> {
private final RksIsiRepository rksIsiRepository;
public GetListRksParentService(RksIsiRepository rksIsiRepository) {
this.rksIsiRepository = rksIsiRepository;
}
@Override
public ListRksIsiResponse execute(RksIsiRequest input) {
List<RksIsiResponse> rksIsiResponseList = new ArrayList<>();
var rksIsiList = rksIsiRepository.findByRksDaftarIsiIdAndIsDeleteFalse(input.getRksDaftarIsiId());
for (RksIsi rksIsi : rksIsiList) {
RksIsiResponse rksIsiResponse = RksIsiResponse.builder()
.id(rksIsi.getId())
.parent(rksIsi.getNama())
.build();
rksIsiResponseList.add(rksIsiResponse);
}
return ListRksIsiResponse.builder()
.data(rksIsiResponseList)
.build();
}
}

View File

@ -0,0 +1,92 @@
package com.iconplus.smartproc.service.rksdaftarisi;
import com.iconplus.smartproc.exception.BusinessException;
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.RksIsiResponse;
import com.iconplus.smartproc.repository.RksIsiRepository;
import com.iconplus.smartproc.util.Constants;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
@Service
public class PostCreateRksIsiService implements BaseService<RksIsiRequest, RksIsiResponse> {
private final RksIsiRepository rksIsiRepository;
public PostCreateRksIsiService(RksIsiRepository rksIsiRepository) {
this.rksIsiRepository = rksIsiRepository;
}
@Override
public RksIsiResponse execute(RksIsiRequest input) {
RksIsi rksIsi = RksIsi.builder().build();
validasiRequest(input, rksIsi);
rksIsi.setRksDaftarIsiId(input.getRksDaftarIsiId());
rksIsi.setNomor(input.getNomor());
rksIsi.setUrutan(input.getUrutan());
rksIsi.setIsKontrak(input.getIsKontrak());
rksIsi.setIsDelete(false);
var result = rksIsiRepository.save(rksIsi);
return RksIsiResponse.builder()
.id(result.getId())
.build();
}
private void validasiRequest(RksIsiRequest input, RksIsi rksIsi) {
if (StringUtils.isNotBlank(input.getNama())) {
var optionalRksIsi = rksIsiRepository.findByRksDaftarIsiIdAndNamaAndIsDeleteFalse(input.getRksDaftarIsiId(), input.getNama());
if (optionalRksIsi.isPresent()) {
throw new BusinessException(
Constants.ERR_CODE_10002,
Constants.ERR_TTL_10002,
String.format(Constants.ERR_MSG_10002, "Nama Buku", input.getNama()));
}
rksIsi.setNama(input.getNama());
return;
}
if (StringUtils.isNotBlank(input.getBab())) {
var optionalRksIsi = rksIsiRepository.findByRksDaftarIsiIdAndBabAndIsDeleteFalse(input.getRksDaftarIsiId(), input.getBab());
if (optionalRksIsi.isPresent()) {
throw new BusinessException(
Constants.ERR_CODE_10002,
Constants.ERR_TTL_10002,
String.format(Constants.ERR_MSG_10002, "Bab", input.getBab()));
}
rksIsi.setParent(input.getParent());
rksIsi.setBab(input.getBab());
return;
}
if (StringUtils.isNotBlank(input.getSubBab())) {
var optionalRksIsi = rksIsiRepository.findByRksDaftarIsiIdAndSubBabAndIsDeleteFalse(input.getRksDaftarIsiId(), input.getSubBab());
if (optionalRksIsi.isPresent()) {
throw new BusinessException(
Constants.ERR_CODE_10002,
Constants.ERR_TTL_10002,
String.format(Constants.ERR_MSG_10002, "Sub Bab", input.getSubBab()));
}
rksIsi.setParent(input.getParent());
rksIsi.setSubBab(input.getSubBab());
return;
}
if (StringUtils.isNotBlank(input.getKelompok())) {
var optionalRksIsi = rksIsiRepository.findByRksDaftarIsiIdAndKelompokAndIsDeleteFalse(input.getRksDaftarIsiId(), input.getKelompok());
if (optionalRksIsi.isPresent()) {
throw new BusinessException(
Constants.ERR_CODE_10002,
Constants.ERR_TTL_10002,
String.format(Constants.ERR_MSG_10002, "Sub Bab", input.getSubBab()));
}
rksIsi.setParent(input.getParent());
rksIsi.setKelompok(input.getSubBab());
}
}
}

View File

@ -0,0 +1,48 @@
package com.iconplus.smartproc.service.rksdaftarisi;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.request.RksIsiRequest;
import com.iconplus.smartproc.model.response.RksIsiResponse;
import com.iconplus.smartproc.repository.RksIsiRepository;
import com.iconplus.smartproc.util.Constants;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
@Service
public class PutEditRksIsiService implements BaseService<RksIsiRequest, RksIsiResponse> {
private final RksIsiRepository rksIsiRepository;
public PutEditRksIsiService(RksIsiRepository rksIsiRepository) {
this.rksIsiRepository = rksIsiRepository;
}
@Override
public RksIsiResponse execute(RksIsiRequest input) {
var rksIsi = rksIsiRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException(
Constants.ERR_CODE_10001,
Constants.ERR_TTL_10001,
String.format(Constants.ERR_MSG_10001, "RKS Isi", input.getId())
));
if (StringUtils.isNotBlank(input.getNama())) {
rksIsi.setNama(input.getNama());
} else if (StringUtils.isNotBlank(input.getBab())) {
rksIsi.setBab(input.getBab());
} else if (StringUtils.isNotBlank(input.getSubBab())) {
rksIsi.setSubBab(input.getSubBab());
} else {
rksIsi.setKelompok(input.getKelompok());
}
rksIsi.setUrutan(input.getUrutan());
rksIsi.setIsKontrak(input.getIsKontrak());
rksIsiRepository.save(rksIsi);
return RksIsiResponse.builder()
.id(rksIsi.getId())
.build();
}
}