This commit is contained in:
dirgantarasiahaan
2023-05-31 14:00:28 +07:00
parent 2c82319b16
commit 6deddb3f15
17 changed files with 479 additions and 110 deletions

View File

@@ -1,46 +0,0 @@
package com.iconplus.smartproc.service.drp;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.request.DrpPengadaanDokumenRequest;
import com.iconplus.smartproc.repository.DrpPengadaanDokumenRepository;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
@Service
@Slf4j
public class DeleteDokumenPendukungService implements BaseService<DrpPengadaanDokumenRequest, EmptyResponse> {
@Value("${config.file-upload.pendukung}")
private String pathFileUploadPendukung;
private final DrpPengadaanDokumenRepository drpPengadaanDokumenRepository;
public DeleteDokumenPendukungService(DrpPengadaanDokumenRepository drpPengadaanDokumenRepository) {
this.drpPengadaanDokumenRepository = drpPengadaanDokumenRepository;
}
@Override
public EmptyResponse execute(DrpPengadaanDokumenRequest input) {
var drpPengadaanDokumenOptional= drpPengadaanDokumenRepository.findByFilenameAndIsDeleteFalse(input.getFilename());
if (drpPengadaanDokumenOptional.isPresent()) {
drpPengadaanDokumenOptional.get().setIsDelete(true);
drpPengadaanDokumenRepository.save(drpPengadaanDokumenOptional.get());
}
Path path = Paths.get(pathFileUploadPendukung + input.getFilename());
try {
Files.delete(path);
} catch (IOException e) {
log.info("no file found");
}
return new EmptyResponse();
}
}

View File

@@ -1,32 +0,0 @@
package com.iconplus.smartproc.service.drp;
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.DrpPengadaanRequest;
import com.iconplus.smartproc.repository.DrpPengadaanRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
@Service
public class DeleteDrpPengadaanService implements BaseService<DrpPengadaanRequest, EmptyResponse> {
private DrpPengadaanRepository drpPengadaanRepository;
public DeleteDrpPengadaanService(DrpPengadaanRepository drpPengadaanRepository) {
this.drpPengadaanRepository = drpPengadaanRepository;
}
@Override
public EmptyResponse execute(DrpPengadaanRequest input) {
var drpPengadaan = drpPengadaanRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10001,
Constants.ERR_TTL_10001,
String.format(Constants.ERR_MSG_10001, "DRP", input.getId())));
drpPengadaan.setIsDelete(true);
drpPengadaanRepository.save(drpPengadaan);
return new EmptyResponse();
}
}

View File

@@ -0,0 +1,76 @@
package com.iconplus.smartproc.service.drp;
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.DrpDokumenRequest;
import com.iconplus.smartproc.model.request.DrpRequest;
import com.iconplus.smartproc.model.response.DrpDokumenResponse;
import com.iconplus.smartproc.repository.DrpDokumenRepository;
import com.iconplus.smartproc.util.Constants;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
@Service
@Slf4j
public class EditUploadDokumenDrpService implements BaseService<DrpDokumenRequest, DrpDokumenResponse> {
@Value("${config.file-upload.rkap}")
private String pathFileUploadRkap;
private final DrpDokumenRepository drpDokumenRepository;
public EditUploadDokumenDrpService(DrpDokumenRepository drpDokumenRepository) {
this.drpDokumenRepository = drpDokumenRepository;
}
@Override
public DrpDokumenResponse execute(DrpDokumenRequest input) {
MultipartFile file = input.getFile();
String newFilename = file.getOriginalFilename();
var drpDokumenOptional = drpDokumenRepository.findByFilenameAndIsDeleteFalse(input.getFilename());
if (drpDokumenOptional.isPresent()) {
drpDokumenOptional.get().setDrpId(input.getDrpId());
drpDokumenOptional.get().setJenisDokumenId(input.getJenisDokumenId());
drpDokumenOptional.get().setFilename(newFilename);
drpDokumenOptional.get().setKeterangan(input.getKeterangan());
drpDokumenRepository.save(drpDokumenOptional.get());
}
Path oldFile = Paths.get(pathFileUploadRkap + input.getFilename());
try {
Files.delete(oldFile);
} catch (IOException e) {
log.info("no file found");
}
File path = new File(pathFileUploadRkap + newFilename);
try {
FileOutputStream output = new FileOutputStream(path);
output.write(file.getBytes());
output.close();
} catch (Exception ex) {
throw new BusinessException(Constants.ERR_CODE_10012,
Constants.ERR_TTL_10012,
String.format(Constants.ERR_MSG_10012, pathFileUploadRkap));
}
return DrpDokumenResponse.builder()
.jenisDokumenId(input.getJenisDokumenId())
.filename(newFilename)
.keterangan(input.getKeterangan())
.build();
}
}

View File

@@ -1,75 +0,0 @@
package com.iconplus.smartproc.service.drp;
import com.iconplus.smartproc.helper.model.Pagination;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.projection.DrpPengadaanView;
import com.iconplus.smartproc.model.request.DrpPengadaanRequest;
import com.iconplus.smartproc.model.response.DrpPengadaanResponse;
import com.iconplus.smartproc.model.response.GetListDrpPengadaanResponse;
import com.iconplus.smartproc.repository.DrpPengadaanRepository;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class GetListDrpPengadaanService implements BaseService<DrpPengadaanRequest, GetListDrpPengadaanResponse> {
private final DrpPengadaanRepository drpPengadaanRepository;
public GetListDrpPengadaanService(DrpPengadaanRepository drpPengadaanRepository) {
this.drpPengadaanRepository = drpPengadaanRepository;
}
@Override
public GetListDrpPengadaanResponse execute(DrpPengadaanRequest input) {
List<DrpPengadaanResponse> drpPengadaanResponseList = new ArrayList<>();
var drpPengadaanViews = drpPengadaanRepository.getListDrpPengadaan(input.getPageable());
for (DrpPengadaanView drpPengadaanView : drpPengadaanViews) {
DrpPengadaanResponse drpPengadaanResponse = DrpPengadaanResponse.builder()
.id(drpPengadaanView.getId())
.drpId(drpPengadaanView.getDrpId())
.namaPengadaan(drpPengadaanView.getNamaPengadaan())
.nomor(drpPengadaanView.getNomor())
.hpe(drpPengadaanView.getHpe())
.isActive(drpPengadaanView.getIsActive())
.pagu(drpPengadaanView.getPagu())
.rencanaTanggal(drpPengadaanView.getRencanaTanggal())
.targetTanggal(drpPengadaanView.getTargetTanggal())
.jenisPengadaanId(drpPengadaanView.getJenisPengadaanId())
.jenisPengadaan(drpPengadaanView.getJenisPengadaan())
.jenisKontrakId(drpPengadaanView.getJenisKontrakId())
.jenisKontrak(drpPengadaanView.getJenisKontrak())
.metodePengadaanId(drpPengadaanView.getMetodePengadaanId())
.metodePengadaan(drpPengadaanView.getMetodePengadaan())
.lokasiId(drpPengadaanView.getLokasiId())
.lokasi(drpPengadaanView.getLokasi())
.metodePenyampaianId(drpPengadaanView.getMetodePenyampaianId())
.metodePenyampaian(drpPengadaanView.getMetodePenyampaian())
.unitInisiatorId(drpPengadaanView.getUnitInisiatorId())
.unitInisiator(drpPengadaanView.getUnitInisiator())
.strategiPengadaanId(drpPengadaanView.getStrategiPengadaanId())
.strategiPengadaan(drpPengadaanView.getStrategiPengadaan())
.supplyPositioningMatrixId(drpPengadaanView.getSupplyPositioningMatrixId())
.supplyPositioningMatrix(drpPengadaanView.getSupplyPositioningMatrix())
.sumberDanaId(drpPengadaanView.getSumberDanaId())
.sumberDana(drpPengadaanView.getSumberDana())
.build();
drpPengadaanResponseList.add(drpPengadaanResponse);
}
return GetListDrpPengadaanResponse.builder()
.data(drpPengadaanResponseList)
.pagination(Pagination.builder()
.pageSize(input.getPageable().getPageSize())
.currentPage(input.getPageable().getPageNumber())
.totalPages(drpPengadaanViews.getTotalPages())
.totalRecords(drpPengadaanViews.getTotalElements())
.isFirstPage(drpPengadaanViews.isFirst())
.isLastPage(drpPengadaanViews.isLast())
.build())
.build();
}
}

View File

@@ -1,76 +0,0 @@
package com.iconplus.smartproc.service.drp;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.DrpPengadaan;
import com.iconplus.smartproc.model.entity.DrpPengadaanDokumen;
import com.iconplus.smartproc.model.request.DrpPengadaanDokumenRequest;
import com.iconplus.smartproc.model.request.DrpPengadaanRequest;
import com.iconplus.smartproc.model.response.DrpPengadaanResponse;
import com.iconplus.smartproc.repository.DrpPengadaanDokumenRepository;
import com.iconplus.smartproc.repository.DrpPengadaanRepository;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class PostCreateDrpPengadaanService implements BaseService<DrpPengadaanRequest, DrpPengadaanResponse> {
private final DrpPengadaanRepository drpPengadaanRepository;
private final DrpPengadaanDokumenRepository drpPengadaanDokumenRepository;
public PostCreateDrpPengadaanService(DrpPengadaanRepository drpPengadaanRepository,
DrpPengadaanDokumenRepository drpPengadaanDokumenRepository) {
this.drpPengadaanRepository = drpPengadaanRepository;
this.drpPengadaanDokumenRepository = drpPengadaanDokumenRepository;
}
@Override
public DrpPengadaanResponse execute(DrpPengadaanRequest input) {
DrpPengadaan drpPengadaan = DrpPengadaan.builder()
.drpId(input.getDrpId())
.nomor(input.getNomor())
.namaPengadaan(input.getNamaPengadaan())
.lokasiId(input.getLokasiId())
.jenisPengadaanId(input.getJenisPengadaanId())
.unitInisiatorId(input.getUnitInisiatorId())
.pagu(input.getPagu())
.sumberDanaId(input.getSumberDanaId())
.supplyPositioningMatrixId(input.getSupplyPositioningMatrixId())
.metodePengadaanId(input.getMetodePengadaanId())
.metodePenyampaianId(input.getMetodePenyampaianId())
.jenisKontrakId(input.getJenisKontrakId())
.strategiPengadaanId(input.getStrategiPengadaanId())
.rencanaTanggal(input.getRencanaTanggal())
.targetTanggal(input.getTargetTanggal())
.hpe(input.getHpe())
.isActive(input.getIsActive())
.isDelete(false)
.build();
List<DrpPengadaanDokumen> drpPengadaanDokumenList = new ArrayList<>();
if (ObjectUtils.isNotEmpty(input.getDataDrpPengadaanDokumen())) {
for (DrpPengadaanDokumenRequest drpPengadaanDokumenRequest : input.getDataDrpPengadaanDokumen()) {
DrpPengadaanDokumen drpPengadaanDokumen = DrpPengadaanDokumen.builder()
.drpId(input.getDrpId())
.jenisDokumenId(drpPengadaanDokumenRequest.getJenisDokumenId())
.filename(drpPengadaanDokumenRequest.getFilename())
.keterangan(drpPengadaanDokumenRequest.getKeterangan())
.isDelete(false)
.build();
drpPengadaanDokumenList.add(drpPengadaanDokumen);
}
}
var result = drpPengadaanRepository.save(drpPengadaan);
drpPengadaanDokumenRepository.saveAll(drpPengadaanDokumenList);
return DrpPengadaanResponse.builder()
.id(result.getId())
.build();
}
}

View File

@@ -2,15 +2,11 @@ package com.iconplus.smartproc.service.drp;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.Drp;
import com.iconplus.smartproc.model.entity.DrpDokumen;
import com.iconplus.smartproc.model.entity.DrpPengadaanDokumen;
import com.iconplus.smartproc.model.request.DrpDokumenRequest;
import com.iconplus.smartproc.model.request.DrpPengadaanDokumenRequest;
import com.iconplus.smartproc.model.request.DrpRequest;
import com.iconplus.smartproc.model.response.DrpResponse;
import com.iconplus.smartproc.repository.DrpDokumenRepository;
import com.iconplus.smartproc.repository.DrpPengadaanDokumenRepository;
import com.iconplus.smartproc.repository.DrpRepository;
import com.iconplus.smartproc.util.Constants;
import org.apache.commons.lang3.ObjectUtils;
@@ -18,21 +14,17 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
@Service
public class PostCreateDrpService implements BaseService<DrpRequest, DrpResponse> {
private final DrpRepository drpRepository;
private final DrpDokumenRepository drpDokumenRepository;
private final DrpPengadaanDokumenRepository drpPengadaanDokumenRepository;
public PostCreateDrpService (DrpRepository drpRepository,
DrpDokumenRepository drpDokumenRepository,
DrpPengadaanDokumenRepository drpPengadaanDokumenRepository) {
DrpDokumenRepository drpDokumenRepository) {
this.drpRepository = drpRepository;
this.drpDokumenRepository = drpDokumenRepository;
this.drpPengadaanDokumenRepository = drpPengadaanDokumenRepository;
}
@Override
@@ -63,22 +55,7 @@ public class PostCreateDrpService implements BaseService<DrpRequest, DrpResponse
}
List<DrpPengadaanDokumen> drpPengadaanDokumenList = new ArrayList<>();
if (ObjectUtils.isNotEmpty(input.getDataDrpPengadaanDokumen())) {
for (DrpPengadaanDokumenRequest drpPengadaanDokumenRequest : input.getDataDrpPengadaanDokumen()) {
DrpPengadaanDokumen drpPengadaanDokumen = DrpPengadaanDokumen.builder()
.drpId(drpSaved.getId())
.jenisDokumenId(drpPengadaanDokumenRequest.getJenisDokumenId())
.filename(drpPengadaanDokumenRequest.getFilename())
.keterangan(drpPengadaanDokumenRequest.getKeterangan())
.isDelete(false)
.build();
drpPengadaanDokumenList.add(drpPengadaanDokumen);
}
}
drpDokumenRepository.saveAll(drpDokumenList);
drpPengadaanDokumenRepository.saveAll(drpPengadaanDokumenList);
return DrpResponse.builder()
.id(drpSaved.getId())

View File

@@ -1,60 +0,0 @@
package com.iconplus.smartproc.service.drp;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.request.DrpDokumenRequest;
import com.iconplus.smartproc.model.response.DrpDokumenResponse;
import com.iconplus.smartproc.repository.DrpPengadaanDokumenRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
@Service
public class PostDrpUploadDokumenPendukungService implements BaseService<DrpDokumenRequest, DrpDokumenResponse> {
@Value("${config.file-upload.pendukung}")
private String pathFileUploadPendukung;
private final DrpPengadaanDokumenRepository drpPengadaanDokumenRepository;
public PostDrpUploadDokumenPendukungService(DrpPengadaanDokumenRepository drpPengadaanDokumenRepository) {
this.drpPengadaanDokumenRepository = drpPengadaanDokumenRepository;
}
@Override
public DrpDokumenResponse execute(DrpDokumenRequest input) throws IOException {
MultipartFile file = input.getFile();
String fileName = file.getOriginalFilename();
var drpDokumen= drpPengadaanDokumenRepository.findByFilenameAndIsDeleteFalse(fileName);
if (drpDokumen.isPresent()) {
throw new BusinessException(Constants.ERR_CODE_10002,
Constants.ERR_TTL_10002,
String.format(Constants.ERR_MSG_10002, "Filename", fileName));
}
File path = new File(pathFileUploadPendukung + fileName);
try {
FileOutputStream output = new FileOutputStream(path);
output.write(file.getBytes());
output.close();
} catch (Exception ex) {
throw new BusinessException(Constants.ERR_CODE_10012,
Constants.ERR_TTL_10012,
String.format(Constants.ERR_MSG_10012, pathFileUploadPendukung));
}
return DrpDokumenResponse.builder()
.jenisDokumenId(input.getJenisDokumenId())
.filename(fileName)
.keterangan(input.getKeterangan())
.build();
}
}