75 lines
3.2 KiB
Java
75 lines
3.2 KiB
Java
package com.iconplus.smartproc.service.approval;
|
|
|
|
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.entity.DrpApproval;
|
|
import com.iconplus.smartproc.model.entity.DrpApprovalHistory;
|
|
import com.iconplus.smartproc.model.request.DrpApprovalRequest;
|
|
import com.iconplus.smartproc.model.request.ListDrpApprovalRequest;
|
|
import com.iconplus.smartproc.repository.DrpApprovalHistoryRepository;
|
|
import com.iconplus.smartproc.repository.DrpApprovalRepository;
|
|
import com.iconplus.smartproc.repository.DrpRepository;
|
|
import com.iconplus.smartproc.util.Constants;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import java.sql.Date;
|
|
import java.time.LocalDate;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
@Service
|
|
public class PostCreateDrpApprovalService implements BaseService<ListDrpApprovalRequest, EmptyResponse> {
|
|
|
|
private final DrpRepository drpRepository;
|
|
private final DrpApprovalRepository drpApprovalRepository;
|
|
private final DrpApprovalHistoryRepository drpApprovalHistoryRepository;
|
|
public PostCreateDrpApprovalService(DrpRepository drpRepository,
|
|
DrpApprovalRepository drpApprovalRepository,
|
|
DrpApprovalHistoryRepository drpApprovalHistoryRepository) {
|
|
this.drpRepository = drpRepository;
|
|
this.drpApprovalRepository = drpApprovalRepository;
|
|
this.drpApprovalHistoryRepository = drpApprovalHistoryRepository;
|
|
}
|
|
|
|
@Override
|
|
public EmptyResponse execute(ListDrpApprovalRequest input) {
|
|
|
|
var drpOptional = drpRepository.findByIdAndIsDeleteFalse(input.getDrpId());
|
|
if (drpOptional.isEmpty()) {
|
|
throw new BusinessException(Constants.ERR_CODE_10001,
|
|
Constants.ERR_TTL_10001,
|
|
String.format(Constants.ERR_MSG_10001, "DRP", input.getDrpId()));
|
|
}
|
|
|
|
List<DrpApproval> drpApprovalList = new ArrayList<>();
|
|
for (DrpApprovalRequest drpApprovalRequest : input.getData()) {
|
|
DrpApproval drpApproval = DrpApproval.builder()
|
|
.drpId(input.getDrpId())
|
|
.approverUserId(drpApprovalRequest.getApproverUserId())
|
|
.level(drpApprovalRequest.getLevel())
|
|
.isDelete(false)
|
|
.build();
|
|
drpApprovalList.add(drpApproval);
|
|
|
|
}
|
|
|
|
var approvalList = drpApprovalRepository.saveAll(drpApprovalList);
|
|
Date dateNow = Date.valueOf(LocalDate.now());
|
|
approvalList.forEach(c -> {
|
|
if (StringUtils.equalsIgnoreCase(c.getLevel(), "VP")) {
|
|
DrpApprovalHistory drpApprovalHistory = DrpApprovalHistory.builder()
|
|
.date(dateNow)
|
|
.drpApprovalId(c.getId())
|
|
.status("Dikirim")
|
|
.isDelete(false)
|
|
.build();
|
|
drpApprovalHistoryRepository.save(drpApprovalHistory);
|
|
}
|
|
});
|
|
|
|
return new EmptyResponse();
|
|
}
|
|
}
|