61 lines
2.7 KiB
Java
61 lines
2.7 KiB
Java
package com.iconplus.smartproc.service.unitinisiator;
|
|
|
|
import com.iconplus.smartproc.helper.model.Pagination;
|
|
import com.iconplus.smartproc.helper.service.BaseService;
|
|
import com.iconplus.smartproc.model.projection.UnitInisiatorView;
|
|
import com.iconplus.smartproc.model.request.UnitInisiatorRequest;
|
|
import com.iconplus.smartproc.model.response.GetListUnitInisiatorResponse;
|
|
import com.iconplus.smartproc.model.response.UnitInisiatorResponse;
|
|
import com.iconplus.smartproc.repository.UnitInisiatorRepository;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
@Service
|
|
public class GetListUnitInisiatorService implements BaseService<UnitInisiatorRequest, GetListUnitInisiatorResponse> {
|
|
|
|
private UnitInisiatorRepository unitInisiatorRepository;
|
|
|
|
private GetListUnitInisiatorService(UnitInisiatorRepository unitInisiatorRepository) {
|
|
this.unitInisiatorRepository = unitInisiatorRepository;
|
|
}
|
|
|
|
@Override
|
|
public GetListUnitInisiatorResponse execute(UnitInisiatorRequest input) {
|
|
validateRequest(input);
|
|
List<UnitInisiatorResponse> unitInisiatorResponseList = new ArrayList<>();
|
|
var unitInisiatorViews = unitInisiatorRepository.getListUnitInisiator(input.getSearch(), input.getPageable());
|
|
|
|
for (UnitInisiatorView unitInisiatorView : unitInisiatorViews) {
|
|
UnitInisiatorResponse unitInisiatorResponse = UnitInisiatorResponse.builder()
|
|
.id(unitInisiatorView.getId())
|
|
.unitInisiator(unitInisiatorView.getUnitInisiator())
|
|
.keterangan(unitInisiatorView.getKeterangan())
|
|
.isActive(unitInisiatorView.getIsActive())
|
|
.isDelete(unitInisiatorView.getIsDelete())
|
|
.build();
|
|
unitInisiatorResponseList.add(unitInisiatorResponse);
|
|
}
|
|
|
|
return GetListUnitInisiatorResponse.builder()
|
|
.data(unitInisiatorResponseList)
|
|
.pagination(Pagination.builder()
|
|
.pageSize(input.getPageable().getPageSize())
|
|
.currentPage(input.getPageable().getPageNumber())
|
|
.totalPages(unitInisiatorViews.getTotalPages())
|
|
.totalRecords(unitInisiatorViews.getTotalElements())
|
|
.isFirstPage(unitInisiatorViews.isFirst())
|
|
.isLastPage(unitInisiatorViews.isLast())
|
|
.build())
|
|
.build();
|
|
}
|
|
|
|
private void validateRequest(UnitInisiatorRequest input) {
|
|
if (StringUtils.isNotBlank(input.getSearch())) {
|
|
input.setSearch('%'+ input.getSearch().toUpperCase()+'%');
|
|
}
|
|
}
|
|
}
|