package com.iconplus.smartproc.service.jenisanggaran; import com.iconplus.smartproc.exception.BusinessException; import com.iconplus.smartproc.helper.service.BaseService; import com.iconplus.smartproc.model.entity.JenisAnggaran; import com.iconplus.smartproc.model.request.JenisAnggaranRequest; import com.iconplus.smartproc.model.response.JenisAnggaranResponse; import com.iconplus.smartproc.repository.JenisAnggaranRepository; import com.iconplus.smartproc.util.Constants; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import java.sql.Timestamp; @Service @Slf4j public class PostCreateJenisAnggaranService implements BaseService { private final JenisAnggaranRepository jenisAnggaranRepository; public PostCreateJenisAnggaranService(JenisAnggaranRepository jenisAnggaranRepository) { this.jenisAnggaranRepository = jenisAnggaranRepository; } @Override public JenisAnggaranResponse execute(JenisAnggaranRequest input) { var existJenisAnggaran = jenisAnggaranRepository.findByJenisAnggaranAndDeletedFalse(input.getJenisAnggaran()); if (existJenisAnggaran.isPresent()) { throw new BusinessException(HttpStatus.CONFLICT, Constants.ERR_CODE_10002, Constants.ERR_TTL_10002, String.format(Constants.ERR_MSG_10002, existJenisAnggaran.get().getId())); } JenisAnggaran jenisAnggaran = JenisAnggaran.builder() .jenisAnggaran(input.getJenisAnggaran()) .keterangan(input.getKeterangan()) .isActive(input.getIsActive()) .deleted(false) .build(); jenisAnggaran.setCreatedTime(new Timestamp(System.currentTimeMillis())); var result = jenisAnggaranRepository.save(jenisAnggaran); log.info("success insert jenis anggaran id : {}", result.getId()); return JenisAnggaranResponse.builder() .id(result.getId()) .build(); } }