add crud jabatan

This commit is contained in:
dirgantarasiahaan
2023-05-26 16:36:02 +07:00
parent fe72608465
commit 00dd061bac
12 changed files with 469 additions and 0 deletions

View File

@ -0,0 +1,25 @@
package com.iconplus.smartproc.service.jabatan;
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.JabatanRequest;
import com.iconplus.smartproc.repository.JabatanRepository;
import org.springframework.stereotype.Service;
@Service
public class DeleteJabatanService implements BaseService<JabatanRequest, EmptyResponse> {
private JabatanRepository jabatanRepository;
public DeleteJabatanService(JabatanRepository jabatanRepository) {
this.jabatanRepository = jabatanRepository;
}
@Override
public EmptyResponse execute(JabatanRequest input) {
var jabatan = jabatanRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException("err", "err", "err"));
jabatan.setIsDelete(true);
jabatanRepository.save(jabatan);
return new EmptyResponse();
}
}

View File

@ -0,0 +1,36 @@
package com.iconplus.smartproc.service.jabatan;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.request.JabatanRequest;
import com.iconplus.smartproc.model.response.JabatanResponse;
import com.iconplus.smartproc.repository.JabatanRepository;
import org.springframework.stereotype.Service;
@Service
public class GetJabatanService implements BaseService<JabatanRequest, JabatanResponse> {
private JabatanRepository jabatanRepository;
public GetJabatanService(JabatanRepository jabatanRepository) {
this.jabatanRepository = jabatanRepository;
}
@Override
public JabatanResponse execute(JabatanRequest input) {
var jabatan = jabatanRepository.getJabatanDetails(input.getId())
.orElseThrow(() -> new BusinessException("err", "err", "err"));
return JabatanResponse.builder()
.id(jabatan.getId())
.jabatan(jabatan.getJabatan())
.keterangan(jabatan.getKeterangan())
.instansiId(jabatan.getInstansiId())
.instansi(jabatan.getInstansi())
.bidangId(jabatan.getBidangId())
.bidang(jabatan.getBidang())
.isActive(jabatan.getIsActive())
.isDelete(jabatan.getIsDelete())
.build();
}
}

View File

@ -0,0 +1,65 @@
package com.iconplus.smartproc.service.jabatan;
import com.iconplus.smartproc.helper.model.Pagination;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.Jabatan;
import com.iconplus.smartproc.model.projection.JabatanView;
import com.iconplus.smartproc.model.request.JabatanRequest;
import com.iconplus.smartproc.model.request.JenisAnggaranRequest;
import com.iconplus.smartproc.model.response.GetListJabatanResponse;
import com.iconplus.smartproc.model.response.JabatanResponse;
import com.iconplus.smartproc.repository.JabatanRepository;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class GetListJabatanService implements BaseService<JabatanRequest, GetListJabatanResponse> {
private JabatanRepository jabatanRepository;
public GetListJabatanService(JabatanRepository jabatanRepository) {
this.jabatanRepository = jabatanRepository;
}
@Override
public GetListJabatanResponse execute(JabatanRequest input) {
validateRequest(input);
List<JabatanResponse> jabatanResponseList = new ArrayList<>() ;
var jabatanViews = jabatanRepository.getListJabatan(input.getSearch(), input.getPageable());
for (JabatanView jabatanView : jabatanViews) {
JabatanResponse jabatanResponse = JabatanResponse.builder()
.id(jabatanView.getId())
.jabatan(jabatanView.getJabatan())
.keterangan(jabatanView.getKeterangan())
.instansiId(jabatanView.getInstansiId())
.instansi(jabatanView.getInstansi())
.bidangId(jabatanView.getBidangId())
.bidang(jabatanView.getBidang())
.isActive(jabatanView.getIsActive())
.isDelete(jabatanView.getIsDelete())
.build();
jabatanResponseList.add(jabatanResponse);
}
return GetListJabatanResponse.builder()
.data(jabatanResponseList)
.pagination(Pagination.builder()
.pageSize(input.getPageable().getPageSize())
.currentPage(input.getPageable().getPageNumber())
.totalPages(jabatanViews.getTotalPages())
.totalRecords(jabatanViews.getTotalElements())
.isFirstPage(jabatanViews.isFirst())
.isLastPage(jabatanViews.isLast())
.build())
.build();
}
private void validateRequest(JabatanRequest input) {
if (StringUtils.isNotBlank(input.getSearch())) {
input.setSearch('%'+ input.getSearch().toUpperCase()+'%');
}
}
}

View File

@ -0,0 +1,41 @@
package com.iconplus.smartproc.service.jabatan;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.Jabatan;
import com.iconplus.smartproc.model.request.JabatanRequest;
import com.iconplus.smartproc.model.response.JabatanResponse;
import com.iconplus.smartproc.repository.JabatanRepository;
import org.springframework.stereotype.Service;
@Service
public class PostCreateJabatanService implements BaseService<JabatanRequest, JabatanResponse> {
private JabatanRepository jabatanRepository;
public PostCreateJabatanService(JabatanRepository jabatanRepository) {
this.jabatanRepository = jabatanRepository;
}
@Override
public JabatanResponse execute(JabatanRequest input) {
var jabatan = jabatanRepository.findByJabatanAndIsDeleteFalse(input.getJabatan());
if (jabatan.isPresent()) {
throw new BusinessException("err", "err", "err");
}
Jabatan jabatanEntity = Jabatan.builder()
.jabatan(input.getJabatan())
.keterangan(input.getKeterangan())
.instansiId(input.getInstansiId())
.bidangId(input.getBidangId())
.isActive(input.getIsActive())
.isDelete(false)
.build();
var result = jabatanRepository.save(jabatanEntity);
return JabatanResponse.builder()
.id(result.getId())
.build();
}
}

View File

@ -0,0 +1,34 @@
package com.iconplus.smartproc.service.jabatan;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.request.JabatanRequest;
import com.iconplus.smartproc.model.response.JabatanResponse;
import com.iconplus.smartproc.repository.JabatanRepository;
import org.springframework.stereotype.Service;
@Service
public class PutUpdateJabatanService implements BaseService<JabatanRequest, JabatanResponse> {
private JabatanRepository jabatanRepository;
public PutUpdateJabatanService(JabatanRepository jabatanRepository) {
this.jabatanRepository = jabatanRepository;
}
@Override
public JabatanResponse execute(JabatanRequest input) {
var jabatan = jabatanRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException("err", "err", "err"));
jabatan.setJabatan(input.getJabatan());
jabatan.setKeterangan(input.getKeterangan());
jabatan.setInstansiId(input.getInstansiId());
jabatan.setBidangId(input.getBidangId());
jabatan.setIsActive(input.getIsActive());
var result = jabatanRepository.save(jabatan);
return JabatanResponse.builder()
.id(result.getId())
.build();
}
}