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,13 +1,13 @@
package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.helper.model.EmptyRequest;
import com.iconplus.smartproc.model.request.DrpApprovalRequest;
import com.iconplus.smartproc.model.response.DrpApprovalResponse;
import com.iconplus.smartproc.model.response.GetListUserApprovalResponse;
import com.iconplus.smartproc.service.approval.GetListUserDirekturKomiteService;
import com.iconplus.smartproc.service.approval.GetListUserVpService;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.iconplus.smartproc.service.approval.PostCreateDrpApprovalService;
import org.springframework.web.bind.annotation.*;
@CrossOrigin(origins = "${fe.server}", allowCredentials = "true")
@RestController
@ -16,10 +16,13 @@ public class ApprovalDrpController {
private GetListUserVpService getListUserVpService;
private GetListUserDirekturKomiteService getListUserDirekturKomiteService;
private PostCreateDrpApprovalService postCreateDrpApprovalService;
public ApprovalDrpController(GetListUserVpService getListUserVpService,
GetListUserDirekturKomiteService getListUserDirekturKomiteService) {
GetListUserDirekturKomiteService getListUserDirekturKomiteService,
PostCreateDrpApprovalService postCreateDrpApprovalService) {
this.getListUserVpService = getListUserVpService;
this.getListUserDirekturKomiteService = getListUserDirekturKomiteService;
this.postCreateDrpApprovalService = postCreateDrpApprovalService;
}
@GetMapping("/vp")
@ -31,4 +34,9 @@ public class ApprovalDrpController {
public GetListUserApprovalResponse getUserDirekturKomite(EmptyRequest emptyRequest) {
return getListUserDirekturKomiteService.execute(emptyRequest);
}
@PostMapping
public DrpApprovalResponse createDrpApproval(@RequestBody DrpApprovalRequest drpApprovalRequest) {
return postCreateDrpApprovalService.execute(drpApprovalRequest);
}
}

View File

@ -2,8 +2,6 @@ package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.model.request.DrpDokumenRequest;
import com.iconplus.smartproc.model.request.DrpPengadaanDokumenRequest;
import com.iconplus.smartproc.model.request.DrpPengadaanRequest;
import com.iconplus.smartproc.model.request.DrpRequest;
import com.iconplus.smartproc.model.response.*;
import com.iconplus.smartproc.service.drp.*;
@ -21,44 +19,32 @@ public class DrpController {
private final GetDrpService getDrpService;
private final GetListDrpService getListDrpService;
private final PostCreateDrpService postCreateDrpService;
private final PostCreateDrpPengadaanService postCreateDrpPengadaanService;
private final GetListDrpPengadaanService getListDrpPengadaanService;
private final PostDrpUploadDokumenRKAPService postDrpUploadDokumenRKAPService;
private final PostDrpUploadDokumenPendukungService postDrpUploadDokumenPendukungService;
private final PostCreateTahunDrpService postCreateTahunDrpService;
private final DeleteDrpPengadaanService deleteDrpPengadaanService;
private final DeleteDokumenUploadService deleteDokumenUploadService;
private final DeleteDokumenPendukungService deleteDokumenPendukungService;
private final PostCreateDrpService postCreateDrpService;
private final EditUploadDokumenDrpService editUploadDokumenDrpService;
public DrpController(GetDrpService getDrpService,
GetListDrpService getListDrpService,
PostCreateDrpService postCreateDrpService,
PostCreateDrpPengadaanService postCreateDrpPengadaanService,
GetListDrpPengadaanService getListDrpPengadaanService,
PostDrpUploadDokumenRKAPService postDrpUploadDokumenRKAPService,
PostCreateTahunDrpService postCreateTahunDrpService,
PostDrpUploadDokumenPendukungService postDrpUploadDokumenPendukungService,
DeleteDrpPengadaanService deleteDrpPengadaanService,
DeleteDokumenUploadService deleteDokumenUploadService,
DeleteDokumenPendukungService deleteDokumenPendukungService) {
PostCreateDrpService postCreateDrpService,
EditUploadDokumenDrpService editUploadDokumenDrpService) {
this.getDrpService = getDrpService;
this.getListDrpService = getListDrpService;
this.postCreateDrpService = postCreateDrpService;
this.postCreateDrpPengadaanService = postCreateDrpPengadaanService;
this.getListDrpPengadaanService = getListDrpPengadaanService;
this.postDrpUploadDokumenRKAPService = postDrpUploadDokumenRKAPService;
this.postDrpUploadDokumenPendukungService = postDrpUploadDokumenPendukungService;
this.postCreateTahunDrpService = postCreateTahunDrpService;
this.deleteDrpPengadaanService = deleteDrpPengadaanService;
this.deleteDokumenUploadService = deleteDokumenUploadService;
this.deleteDokumenPendukungService = deleteDokumenPendukungService;
this.postCreateDrpService = postCreateDrpService;
this.editUploadDokumenDrpService = editUploadDokumenDrpService;
}
@GetMapping
public GetListDrpResponse getListDrp(@RequestParam(name = "search", required = false) String search,
@RequestParam(name = "page", defaultValue = "1") Integer page,
@RequestParam(name = "size", defaultValue = "5") Integer size){
@RequestParam(name = "page", defaultValue = "1") Integer page,
@RequestParam(name = "size", defaultValue = "5") Integer size){
Pageable pageable = PageRequest.of((page - 1), size);
DrpRequest drpRequest = DrpRequest.builder()
@ -69,14 +55,25 @@ public class DrpController {
return getListDrpService.execute(drpRequest);
}
@GetMapping("/{id}")
public DrpResponse getDrp(@PathVariable Long id) {
return getDrpService.execute(DrpRequest.builder()
.id(id)
.build());
}
@PostMapping("/tahun")
public DrpResponse createTahunDrp(@RequestBody DrpRequest drpRequest) {
return postCreateTahunDrpService.execute(drpRequest);
}
@PostMapping
public DrpResponse createDrp(@RequestBody DrpRequest drpRequest) {
return postCreateDrpService.execute(drpRequest);
}
@PostMapping("/upload/rkap")
@PostMapping("/upload/dokumen")
public DrpDokumenResponse uploadDokumenRkap(@RequestParam(name = "jenisDokumenId") Long jenisDokumenId,
@RequestParam(name = "keterangan") String keterangan,
@RequestParam(name = "file") MultipartFile file) throws IOException {
@ -87,58 +84,22 @@ public class DrpController {
.build());
}
@PostMapping("/upload/pendukung")
public DrpDokumenResponse uploadDokumenPendukung(@RequestParam(name = "jenisDokumenId") Long jenisDokumenId,
@RequestParam(name = "keterangan") String keterangan,
@RequestParam(name = "file") MultipartFile file) throws IOException {
return postDrpUploadDokumenPendukungService.execute(DrpDokumenRequest.builder()
@DeleteMapping("/upload/dokumen")
public EmptyResponse deleteDokumenRkap(@RequestBody DrpDokumenRequest drpDokumenRequest) {
return deleteDokumenUploadService.execute(drpDokumenRequest);
}
@PutMapping("/upload/dokumen")
public DrpDokumenResponse editUploadDrpDokumen(@RequestParam(name = "filename") String filename,
@RequestParam(name = "jenisDokumenId") Long jenisDokumenId,
@RequestParam(name = "keterangan") String keterangan,
@RequestParam(name = "file") MultipartFile file) {
return editUploadDokumenDrpService.execute(DrpDokumenRequest.builder()
.filename(filename)
.jenisDokumenId(jenisDokumenId)
.keterangan(keterangan)
.file(file)
.build());
}
@PostMapping
public DrpResponse createDrp(@RequestBody DrpRequest drpRequest) {
return postCreateDrpService.execute(drpRequest);
}
@GetMapping("/{id}")
public DrpResponse getDrp(@PathVariable Long id) {
return getDrpService.execute(DrpRequest.builder()
.id(id)
.build());
}
@PostMapping("/pengadaan")
public DrpPengadaanResponse createDrpPengadaan(@RequestBody DrpPengadaanRequest drpPengadaanRequest) {
return postCreateDrpPengadaanService.execute(drpPengadaanRequest);
}
@GetMapping("/pengadaan")
public GetListDrpPengadaanResponse getDrpPengadaan(@RequestParam(name = "page", defaultValue = "1") Integer page,
@RequestParam(name = "size", defaultValue = "5") Integer size){
Pageable pageable = PageRequest.of((page - 1), size);
DrpPengadaanRequest drpPengadaanRequest = DrpPengadaanRequest.builder()
.pageable(pageable)
.build();
return getListDrpPengadaanService.execute(drpPengadaanRequest);
}
@DeleteMapping("/{id}")
public EmptyResponse deleteDrpPengadaan(@RequestBody DrpPengadaanRequest drpPengadaanRequest) {
return deleteDrpPengadaanService.execute(drpPengadaanRequest);
}
@DeleteMapping("/upload/rkap")
public EmptyResponse deleteDokumenRkap(@RequestBody DrpDokumenRequest drpDokumenRequest) {
return deleteDokumenUploadService.execute(drpDokumenRequest);
}
@DeleteMapping("/upload/pendukung")
public EmptyResponse deleteDokumenPendukung(@RequestBody DrpPengadaanDokumenRequest drpPengadaanDokumenRequest) {
return deleteDokumenPendukungService.execute(drpPengadaanDokumenRequest);
}
}

View File

@ -0,0 +1,101 @@
package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.model.request.DrpPengadaanDokumenRequest;
import com.iconplus.smartproc.model.request.DrpPengadaanRequest;
import com.iconplus.smartproc.model.response.*;
import com.iconplus.smartproc.service.drppengadaan.*;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
@CrossOrigin(origins = "${fe.server}", allowCredentials = "true")
@RestController
@RequestMapping("/api/drp/pengadaan")
public class DrpPengadaanController {
private final PostCreateDrpPengadaanService postCreateDrpPengadaanService;
private final GetListDrpPengadaanService getListDrpPengadaanService;
private final PostDrpUploadDokumenPendukungService postDrpUploadDokumenPendukungService;
private final DeleteDrpPengadaanService deleteDrpPengadaanService;
private final DeleteDokumenPendukungService deleteDokumenPendukungService;
private final EditUploadDrpPengadaanService editUploadDrpPengadaanService;
public DrpPengadaanController(PostCreateDrpPengadaanService postCreateDrpPengadaanService,
GetListDrpPengadaanService getListDrpPengadaanService,
PostDrpUploadDokumenPendukungService postDrpUploadDokumenPendukungService,
DeleteDrpPengadaanService deleteDrpPengadaanService,
DeleteDokumenPendukungService deleteDokumenPendukungService,
EditUploadDrpPengadaanService editUploadDrpPengadaanService) {
this.postCreateDrpPengadaanService = postCreateDrpPengadaanService;
this.getListDrpPengadaanService = getListDrpPengadaanService;
this.postDrpUploadDokumenPendukungService = postDrpUploadDokumenPendukungService;
this.deleteDrpPengadaanService = deleteDrpPengadaanService;
this.deleteDokumenPendukungService = deleteDokumenPendukungService;
this.editUploadDrpPengadaanService = editUploadDrpPengadaanService;
}
@GetMapping
public GetListDrpPengadaanResponse getDrpPengadaan(@RequestParam(name = "page", defaultValue = "1") Integer page,
@RequestParam(name = "size", defaultValue = "5") Integer size){
Pageable pageable = PageRequest.of((page - 1), size);
DrpPengadaanRequest drpPengadaanRequest = DrpPengadaanRequest.builder()
.pageable(pageable)
.build();
return getListDrpPengadaanService.execute(drpPengadaanRequest);
}
@PostMapping
public DrpPengadaanResponse createDrpPengadaan(@RequestBody DrpPengadaanRequest drpPengadaanRequest) {
return postCreateDrpPengadaanService.execute(drpPengadaanRequest);
}
@GetMapping("/{id}")
public DrpPengadaanResponse getDrpPengadaanById(@PathVariable Long id) {
return null;
}
@PutMapping("/{id}")
public DrpPengadaanResponse updateDrpPengadaan(@PathVariable Long id) {
return null;
}
@DeleteMapping("/{id}")
public EmptyResponse deleteDrpPengadaan(@RequestBody DrpPengadaanRequest drpPengadaanRequest) {
return deleteDrpPengadaanService.execute(drpPengadaanRequest);
}
@PostMapping("/upload/dokumen")
public DrpPengadaanDokumenResponse uploadDokumenPendukung(@RequestParam(name = "jenisDokumenId") Long jenisDokumenId,
@RequestParam(name = "keterangan") String keterangan,
@RequestParam(name = "file") MultipartFile file) throws IOException {
return postDrpUploadDokumenPendukungService.execute(DrpPengadaanDokumenRequest.builder()
.jenisDokumenId(jenisDokumenId)
.keterangan(keterangan)
.file(file)
.build());
}
@PutMapping("/upload/dokumen")
public DrpPengadaanDokumenResponse editUploadDrpDokumen(@RequestParam(name = "filename") String filename,
@RequestParam(name = "jenisDokumenId") Long jenisDokumenId,
@RequestParam(name = "keterangan") String keterangan,
@RequestParam(name = "file") MultipartFile file) {
return editUploadDrpPengadaanService.execute(DrpPengadaanDokumenRequest.builder()
.filename(filename)
.jenisDokumenId(jenisDokumenId)
.keterangan(keterangan)
.file(file)
.build());
}
@DeleteMapping("/upload/dokumen")
public EmptyResponse deleteDokumenPendukung(@RequestBody DrpPengadaanDokumenRequest drpPengadaanDokumenRequest) {
return deleteDokumenPendukungService.execute(drpPengadaanDokumenRequest);
}
}

View File

@ -0,0 +1,73 @@
package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Type;
import javax.persistence.*;
import java.sql.Date;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "drp_approval")
public class DrpApproval extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "drp_id")
private Long drpId;
@Column(name = "approver_vp_id")
private Long approverVpId;
@Column(name = "approver_vp_date")
private Date approverVpDate;
@Column(name = "approver_komite1_id")
private Long approverKomite1Id;
@Column(name = "approver_komite1_date")
private Date approverKomite1Date;
@Column(name = "approver_komite2_id")
private Long approverKomite2Id;
@Column(name = "approver_komite2_date")
private Date approverKomite2Date;
@Column(name = "approver_komite3_id")
private Long approverKomite3Id;
@Column(name = "approver_komite3_date")
private Date approverKomite3Date;
@Column(name = "approver_komite4_id")
private Long approverKomite4Id;
@Column(name = "approver_komite4_date")
private Date approverKomite4Date;
@Column(name = "approver_direktur_id")
private Long approverDirekturId;
@Column(name = "approver_direktur_date")
private Date approverDirekturDate;
@Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
}

View File

@ -0,0 +1,22 @@
package com.iconplus.smartproc.model.request;
import com.iconplus.smartproc.helper.base.BaseRequest;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class DrpApprovalRequest extends BaseRequest {
private Long drpId;
private Long approverVpId;
private Long approverKomite1Id;
private Long approverKomite2Id;
private Long approverKomite3Id;
private Long approverKomite4Id;
private Long approverDirekturId;
}

View File

@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.web.multipart.MultipartFile;
import javax.persistence.Entity;
import javax.persistence.Table;
@ -19,6 +20,7 @@ public class DrpPengadaanDokumenRequest extends BaseRequest {
private Long drpId;
private Long jenisDokumenId;
private String filename;
private MultipartFile file;
private String keterangan;
private Boolean isDelete;
}

View File

@ -0,0 +1,16 @@
package com.iconplus.smartproc.model.response;
import com.iconplus.smartproc.helper.base.BaseResponse;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class DrpApprovalResponse extends BaseResponse {
private Long id;
}

View File

@ -0,0 +1,10 @@
package com.iconplus.smartproc.repository;
import com.iconplus.smartproc.model.entity.DrpApproval;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface DrpApprovalRepository extends JpaRepository<DrpApproval, Long> {
}

View File

@ -0,0 +1,51 @@
package com.iconplus.smartproc.service.approval;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.DrpApproval;
import com.iconplus.smartproc.model.request.DrpApprovalRequest;
import com.iconplus.smartproc.model.response.DrpApprovalResponse;
import com.iconplus.smartproc.repository.DrpApprovalRepository;
import com.iconplus.smartproc.repository.DrpRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
import java.io.IOException;
@Service
public class PostCreateDrpApprovalService implements BaseService<DrpApprovalRequest, DrpApprovalResponse> {
private final DrpApprovalRepository drpApprovalRepository;
private final DrpRepository drpRepository;
public PostCreateDrpApprovalService(DrpApprovalRepository drpApprovalRepository,
DrpRepository drpRepository) {
this.drpApprovalRepository = drpApprovalRepository;
this.drpRepository = drpRepository;
}
@Override
public DrpApprovalResponse execute(DrpApprovalRequest 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()));
}
DrpApproval drpApproval = DrpApproval.builder()
.drpId(input.getDrpId())
.approverKomite1Id(input.getApproverKomite1Id())
.approverKomite2Id(input.getApproverKomite2Id())
.approverKomite3Id(input.getApproverKomite3Id())
.approverKomite4Id(input.getApproverKomite4Id())
.approverDirekturId(input.getApproverDirekturId())
.build();
var result = drpApprovalRepository.save(drpApproval);
return DrpApprovalResponse.builder()
.id(result.getId())
.build();
}
}

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

@ -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,4 +1,4 @@
package com.iconplus.smartproc.service.drp;
package com.iconplus.smartproc.service.drppengadaan;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.helper.service.BaseService;

View File

@ -1,4 +1,4 @@
package com.iconplus.smartproc.service.drp;
package com.iconplus.smartproc.service.drppengadaan;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.model.EmptyResponse;

View File

@ -0,0 +1,72 @@
package com.iconplus.smartproc.service.drppengadaan;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.request.DrpPengadaanDokumenRequest;
import com.iconplus.smartproc.model.response.DrpPengadaanDokumenResponse;
import com.iconplus.smartproc.repository.DrpPengadaanDokumenRepository;
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 EditUploadDrpPengadaanService implements BaseService<DrpPengadaanDokumenRequest, DrpPengadaanDokumenResponse> {
@Value("${config.file-upload.pendukung}")
private String pathFileUploadPendukung;
private final DrpPengadaanDokumenRepository drpPengadaanDokumenRepository;
public EditUploadDrpPengadaanService(DrpPengadaanDokumenRepository drpPengadaanDokumenRepository) {
this.drpPengadaanDokumenRepository = drpPengadaanDokumenRepository;
}
@Override
public DrpPengadaanDokumenResponse execute(DrpPengadaanDokumenRequest input) {
MultipartFile file = input.getFile();
String newFilename = file.getOriginalFilename();
var drpDokumenOptional = drpPengadaanDokumenRepository.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());
drpPengadaanDokumenRepository.save(drpDokumenOptional.get());
}
Path oldFile = Paths.get(pathFileUploadPendukung + input.getFilename());
try {
Files.delete(oldFile);
} catch (IOException e) {
log.info("no file found");
}
File path = new File(pathFileUploadPendukung + 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, pathFileUploadPendukung));
}
return DrpPengadaanDokumenResponse.builder()
.jenisDokumenId(input.getJenisDokumenId())
.filename(newFilename)
.keterangan(input.getKeterangan())
.build();
}
}

View File

@ -1,4 +1,4 @@
package com.iconplus.smartproc.service.drp;
package com.iconplus.smartproc.service.drppengadaan;
import com.iconplus.smartproc.helper.model.Pagination;
import com.iconplus.smartproc.helper.service.BaseService;

View File

@ -1,4 +1,4 @@
package com.iconplus.smartproc.service.drp;
package com.iconplus.smartproc.service.drppengadaan;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.DrpPengadaan;

View File

@ -1,9 +1,9 @@
package com.iconplus.smartproc.service.drp;
package com.iconplus.smartproc.service.drppengadaan;
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.model.request.DrpPengadaanDokumenRequest;
import com.iconplus.smartproc.model.response.DrpPengadaanDokumenResponse;
import com.iconplus.smartproc.repository.DrpPengadaanDokumenRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.beans.factory.annotation.Value;
@ -15,7 +15,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
@Service
public class PostDrpUploadDokumenPendukungService implements BaseService<DrpDokumenRequest, DrpDokumenResponse> {
public class PostDrpUploadDokumenPendukungService implements BaseService<DrpPengadaanDokumenRequest, DrpPengadaanDokumenResponse> {
@Value("${config.file-upload.pendukung}")
private String pathFileUploadPendukung;
@ -26,7 +26,7 @@ public class PostDrpUploadDokumenPendukungService implements BaseService<DrpDoku
}
@Override
public DrpDokumenResponse execute(DrpDokumenRequest input) throws IOException {
public DrpPengadaanDokumenResponse execute(DrpPengadaanDokumenRequest input) throws IOException {
MultipartFile file = input.getFile();
String fileName = file.getOriginalFilename();
@ -51,7 +51,7 @@ public class PostDrpUploadDokumenPendukungService implements BaseService<DrpDoku
}
return DrpDokumenResponse.builder()
return DrpPengadaanDokumenResponse.builder()
.jenisDokumenId(input.getJenisDokumenId())
.filename(fileName)
.keterangan(input.getKeterangan())