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; package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.helper.model.EmptyRequest; 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.model.response.GetListUserApprovalResponse;
import com.iconplus.smartproc.service.approval.GetListUserDirekturKomiteService; import com.iconplus.smartproc.service.approval.GetListUserDirekturKomiteService;
import com.iconplus.smartproc.service.approval.GetListUserVpService; import com.iconplus.smartproc.service.approval.GetListUserVpService;
import org.springframework.web.bind.annotation.CrossOrigin; import com.iconplus.smartproc.service.approval.PostCreateDrpApprovalService;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@CrossOrigin(origins = "${fe.server}", allowCredentials = "true") @CrossOrigin(origins = "${fe.server}", allowCredentials = "true")
@RestController @RestController
@ -16,10 +16,13 @@ public class ApprovalDrpController {
private GetListUserVpService getListUserVpService; private GetListUserVpService getListUserVpService;
private GetListUserDirekturKomiteService getListUserDirekturKomiteService; private GetListUserDirekturKomiteService getListUserDirekturKomiteService;
private PostCreateDrpApprovalService postCreateDrpApprovalService;
public ApprovalDrpController(GetListUserVpService getListUserVpService, public ApprovalDrpController(GetListUserVpService getListUserVpService,
GetListUserDirekturKomiteService getListUserDirekturKomiteService) { GetListUserDirekturKomiteService getListUserDirekturKomiteService,
PostCreateDrpApprovalService postCreateDrpApprovalService) {
this.getListUserVpService = getListUserVpService; this.getListUserVpService = getListUserVpService;
this.getListUserDirekturKomiteService = getListUserDirekturKomiteService; this.getListUserDirekturKomiteService = getListUserDirekturKomiteService;
this.postCreateDrpApprovalService = postCreateDrpApprovalService;
} }
@GetMapping("/vp") @GetMapping("/vp")
@ -31,4 +34,9 @@ public class ApprovalDrpController {
public GetListUserApprovalResponse getUserDirekturKomite(EmptyRequest emptyRequest) { public GetListUserApprovalResponse getUserDirekturKomite(EmptyRequest emptyRequest) {
return getListUserDirekturKomiteService.execute(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.helper.model.EmptyResponse;
import com.iconplus.smartproc.model.request.DrpDokumenRequest; 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.request.DrpRequest;
import com.iconplus.smartproc.model.response.*; import com.iconplus.smartproc.model.response.*;
import com.iconplus.smartproc.service.drp.*; import com.iconplus.smartproc.service.drp.*;
@ -21,44 +19,32 @@ public class DrpController {
private final GetDrpService getDrpService; private final GetDrpService getDrpService;
private final GetListDrpService getListDrpService; private final GetListDrpService getListDrpService;
private final PostCreateDrpService postCreateDrpService;
private final PostCreateDrpPengadaanService postCreateDrpPengadaanService;
private final GetListDrpPengadaanService getListDrpPengadaanService;
private final PostDrpUploadDokumenRKAPService postDrpUploadDokumenRKAPService; private final PostDrpUploadDokumenRKAPService postDrpUploadDokumenRKAPService;
private final PostDrpUploadDokumenPendukungService postDrpUploadDokumenPendukungService;
private final PostCreateTahunDrpService postCreateTahunDrpService; private final PostCreateTahunDrpService postCreateTahunDrpService;
private final DeleteDrpPengadaanService deleteDrpPengadaanService;
private final DeleteDokumenUploadService deleteDokumenUploadService; private final DeleteDokumenUploadService deleteDokumenUploadService;
private final DeleteDokumenPendukungService deleteDokumenPendukungService; private final PostCreateDrpService postCreateDrpService;
private final EditUploadDokumenDrpService editUploadDokumenDrpService;
public DrpController(GetDrpService getDrpService, public DrpController(GetDrpService getDrpService,
GetListDrpService getListDrpService, GetListDrpService getListDrpService,
PostCreateDrpService postCreateDrpService,
PostCreateDrpPengadaanService postCreateDrpPengadaanService,
GetListDrpPengadaanService getListDrpPengadaanService,
PostDrpUploadDokumenRKAPService postDrpUploadDokumenRKAPService, PostDrpUploadDokumenRKAPService postDrpUploadDokumenRKAPService,
PostCreateTahunDrpService postCreateTahunDrpService, PostCreateTahunDrpService postCreateTahunDrpService,
PostDrpUploadDokumenPendukungService postDrpUploadDokumenPendukungService,
DeleteDrpPengadaanService deleteDrpPengadaanService,
DeleteDokumenUploadService deleteDokumenUploadService, DeleteDokumenUploadService deleteDokumenUploadService,
DeleteDokumenPendukungService deleteDokumenPendukungService) { PostCreateDrpService postCreateDrpService,
EditUploadDokumenDrpService editUploadDokumenDrpService) {
this.getDrpService = getDrpService; this.getDrpService = getDrpService;
this.getListDrpService = getListDrpService; this.getListDrpService = getListDrpService;
this.postCreateDrpService = postCreateDrpService;
this.postCreateDrpPengadaanService = postCreateDrpPengadaanService;
this.getListDrpPengadaanService = getListDrpPengadaanService;
this.postDrpUploadDokumenRKAPService = postDrpUploadDokumenRKAPService; this.postDrpUploadDokumenRKAPService = postDrpUploadDokumenRKAPService;
this.postDrpUploadDokumenPendukungService = postDrpUploadDokumenPendukungService;
this.postCreateTahunDrpService = postCreateTahunDrpService; this.postCreateTahunDrpService = postCreateTahunDrpService;
this.deleteDrpPengadaanService = deleteDrpPengadaanService;
this.deleteDokumenUploadService = deleteDokumenUploadService; this.deleteDokumenUploadService = deleteDokumenUploadService;
this.deleteDokumenPendukungService = deleteDokumenPendukungService; this.postCreateDrpService = postCreateDrpService;
this.editUploadDokumenDrpService = editUploadDokumenDrpService;
} }
@GetMapping @GetMapping
public GetListDrpResponse getListDrp(@RequestParam(name = "search", required = false) String search, public GetListDrpResponse getListDrp(@RequestParam(name = "search", required = false) String search,
@RequestParam(name = "page", defaultValue = "1") Integer page, @RequestParam(name = "page", defaultValue = "1") Integer page,
@RequestParam(name = "size", defaultValue = "5") Integer size){ @RequestParam(name = "size", defaultValue = "5") Integer size){
Pageable pageable = PageRequest.of((page - 1), size); Pageable pageable = PageRequest.of((page - 1), size);
DrpRequest drpRequest = DrpRequest.builder() DrpRequest drpRequest = DrpRequest.builder()
@ -69,14 +55,25 @@ public class DrpController {
return getListDrpService.execute(drpRequest); return getListDrpService.execute(drpRequest);
} }
@GetMapping("/{id}")
public DrpResponse getDrp(@PathVariable Long id) {
return getDrpService.execute(DrpRequest.builder()
.id(id)
.build());
}
@PostMapping("/tahun") @PostMapping("/tahun")
public DrpResponse createTahunDrp(@RequestBody DrpRequest drpRequest) { public DrpResponse createTahunDrp(@RequestBody DrpRequest drpRequest) {
return postCreateTahunDrpService.execute(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, public DrpDokumenResponse uploadDokumenRkap(@RequestParam(name = "jenisDokumenId") Long jenisDokumenId,
@RequestParam(name = "keterangan") String keterangan, @RequestParam(name = "keterangan") String keterangan,
@RequestParam(name = "file") MultipartFile file) throws IOException { @RequestParam(name = "file") MultipartFile file) throws IOException {
@ -87,58 +84,22 @@ public class DrpController {
.build()); .build());
} }
@PostMapping("/upload/pendukung") @DeleteMapping("/upload/dokumen")
public DrpDokumenResponse uploadDokumenPendukung(@RequestParam(name = "jenisDokumenId") Long jenisDokumenId, public EmptyResponse deleteDokumenRkap(@RequestBody DrpDokumenRequest drpDokumenRequest) {
@RequestParam(name = "keterangan") String keterangan, return deleteDokumenUploadService.execute(drpDokumenRequest);
@RequestParam(name = "file") MultipartFile file) throws IOException { }
return postDrpUploadDokumenPendukungService.execute(DrpDokumenRequest.builder()
@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) .jenisDokumenId(jenisDokumenId)
.keterangan(keterangan) .keterangan(keterangan)
.file(file) .file(file)
.build()); .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.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.springframework.web.multipart.MultipartFile;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.Table; import javax.persistence.Table;
@ -19,6 +20,7 @@ public class DrpPengadaanDokumenRequest extends BaseRequest {
private Long drpId; private Long drpId;
private Long jenisDokumenId; private Long jenisDokumenId;
private String filename; private String filename;
private MultipartFile file;
private String keterangan; private String keterangan;
private Boolean isDelete; 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.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService; 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.DrpDokumen;
import com.iconplus.smartproc.model.entity.DrpPengadaanDokumen;
import com.iconplus.smartproc.model.request.DrpDokumenRequest; 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.request.DrpRequest;
import com.iconplus.smartproc.model.response.DrpResponse; import com.iconplus.smartproc.model.response.DrpResponse;
import com.iconplus.smartproc.repository.DrpDokumenRepository; import com.iconplus.smartproc.repository.DrpDokumenRepository;
import com.iconplus.smartproc.repository.DrpPengadaanDokumenRepository;
import com.iconplus.smartproc.repository.DrpRepository; import com.iconplus.smartproc.repository.DrpRepository;
import com.iconplus.smartproc.util.Constants; import com.iconplus.smartproc.util.Constants;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
@ -18,21 +14,17 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional;
@Service @Service
public class PostCreateDrpService implements BaseService<DrpRequest, DrpResponse> { public class PostCreateDrpService implements BaseService<DrpRequest, DrpResponse> {
private final DrpRepository drpRepository; private final DrpRepository drpRepository;
private final DrpDokumenRepository drpDokumenRepository; private final DrpDokumenRepository drpDokumenRepository;
private final DrpPengadaanDokumenRepository drpPengadaanDokumenRepository;
public PostCreateDrpService (DrpRepository drpRepository, public PostCreateDrpService (DrpRepository drpRepository,
DrpDokumenRepository drpDokumenRepository, DrpDokumenRepository drpDokumenRepository) {
DrpPengadaanDokumenRepository drpPengadaanDokumenRepository) {
this.drpRepository = drpRepository; this.drpRepository = drpRepository;
this.drpDokumenRepository = drpDokumenRepository; this.drpDokumenRepository = drpDokumenRepository;
this.drpPengadaanDokumenRepository = drpPengadaanDokumenRepository;
} }
@Override @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); drpDokumenRepository.saveAll(drpDokumenList);
drpPengadaanDokumenRepository.saveAll(drpPengadaanDokumenList);
return DrpResponse.builder() return DrpResponse.builder()
.id(drpSaved.getId()) .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.model.EmptyResponse;
import com.iconplus.smartproc.helper.service.BaseService; 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.exception.BusinessException;
import com.iconplus.smartproc.helper.model.EmptyResponse; 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.model.Pagination;
import com.iconplus.smartproc.helper.service.BaseService; 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.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.DrpPengadaan; 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.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService; import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.request.DrpDokumenRequest; import com.iconplus.smartproc.model.request.DrpPengadaanDokumenRequest;
import com.iconplus.smartproc.model.response.DrpDokumenResponse; import com.iconplus.smartproc.model.response.DrpPengadaanDokumenResponse;
import com.iconplus.smartproc.repository.DrpPengadaanDokumenRepository; import com.iconplus.smartproc.repository.DrpPengadaanDokumenRepository;
import com.iconplus.smartproc.util.Constants; import com.iconplus.smartproc.util.Constants;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
@ -15,7 +15,7 @@ import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
@Service @Service
public class PostDrpUploadDokumenPendukungService implements BaseService<DrpDokumenRequest, DrpDokumenResponse> { public class PostDrpUploadDokumenPendukungService implements BaseService<DrpPengadaanDokumenRequest, DrpPengadaanDokumenResponse> {
@Value("${config.file-upload.pendukung}") @Value("${config.file-upload.pendukung}")
private String pathFileUploadPendukung; private String pathFileUploadPendukung;
@ -26,7 +26,7 @@ public class PostDrpUploadDokumenPendukungService implements BaseService<DrpDoku
} }
@Override @Override
public DrpDokumenResponse execute(DrpDokumenRequest input) throws IOException { public DrpPengadaanDokumenResponse execute(DrpPengadaanDokumenRequest input) throws IOException {
MultipartFile file = input.getFile(); MultipartFile file = input.getFile();
String fileName = file.getOriginalFilename(); String fileName = file.getOriginalFilename();
@ -51,7 +51,7 @@ public class PostDrpUploadDokumenPendukungService implements BaseService<DrpDoku
} }
return DrpDokumenResponse.builder() return DrpPengadaanDokumenResponse.builder()
.jenisDokumenId(input.getJenisDokumenId()) .jenisDokumenId(input.getJenisDokumenId())
.filename(fileName) .filename(fileName)
.keterangan(input.getKeterangan()) .keterangan(input.getKeterangan())