64 lines
2.7 KiB
Java
64 lines
2.7 KiB
Java
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.projection.JabatanView;
|
|
import com.iconplus.smartproc.model.request.JabatanRequest;
|
|
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()+'%');
|
|
}
|
|
}
|
|
|
|
}
|