From 6deddb3f153a17d820fb06ed1cabb70c0a897726 Mon Sep 17 00:00:00 2001 From: dirgantarasiahaan Date: Wed, 31 May 2023 14:00:28 +0700 Subject: [PATCH] refactor --- .../controller/ApprovalDrpController.java | 18 ++- .../smartproc/controller/DrpController.java | 103 ++++++------------ .../controller/DrpPengadaanController.java | 101 +++++++++++++++++ .../smartproc/model/entity/DrpApproval.java | 73 +++++++++++++ .../model/request/DrpApprovalRequest.java | 22 ++++ .../request/DrpPengadaanDokumenRequest.java | 2 + .../model/response/DrpApprovalResponse.java | 16 +++ .../repository/DrpApprovalRepository.java | 10 ++ .../PostCreateDrpApprovalService.java | 51 +++++++++ .../drp/EditUploadDokumenDrpService.java | 76 +++++++++++++ .../service/drp/PostCreateDrpService.java | 25 +---- .../DeleteDokumenPendukungService.java | 2 +- .../DeleteDrpPengadaanService.java | 2 +- .../EditUploadDrpPengadaanService.java | 72 ++++++++++++ .../GetListDrpPengadaanService.java | 2 +- .../PostCreateDrpPengadaanService.java | 2 +- .../PostDrpUploadDokumenPendukungService.java | 12 +- 17 files changed, 479 insertions(+), 110 deletions(-) create mode 100644 src/main/java/com/iconplus/smartproc/controller/DrpPengadaanController.java create mode 100644 src/main/java/com/iconplus/smartproc/model/entity/DrpApproval.java create mode 100644 src/main/java/com/iconplus/smartproc/model/request/DrpApprovalRequest.java create mode 100644 src/main/java/com/iconplus/smartproc/model/response/DrpApprovalResponse.java create mode 100644 src/main/java/com/iconplus/smartproc/repository/DrpApprovalRepository.java create mode 100644 src/main/java/com/iconplus/smartproc/service/approval/PostCreateDrpApprovalService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/drp/EditUploadDokumenDrpService.java rename src/main/java/com/iconplus/smartproc/service/{drp => drppengadaan}/DeleteDokumenPendukungService.java (96%) rename src/main/java/com/iconplus/smartproc/service/{drp => drppengadaan}/DeleteDrpPengadaanService.java (95%) create mode 100644 src/main/java/com/iconplus/smartproc/service/drppengadaan/EditUploadDrpPengadaanService.java rename src/main/java/com/iconplus/smartproc/service/{drp => drppengadaan}/GetListDrpPengadaanService.java (98%) rename src/main/java/com/iconplus/smartproc/service/{drp => drppengadaan}/PostCreateDrpPengadaanService.java (98%) rename src/main/java/com/iconplus/smartproc/service/{drp => drppengadaan}/PostDrpUploadDokumenPendukungService.java (82%) diff --git a/src/main/java/com/iconplus/smartproc/controller/ApprovalDrpController.java b/src/main/java/com/iconplus/smartproc/controller/ApprovalDrpController.java index adc9276..5f7186f 100644 --- a/src/main/java/com/iconplus/smartproc/controller/ApprovalDrpController.java +++ b/src/main/java/com/iconplus/smartproc/controller/ApprovalDrpController.java @@ -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); + } } diff --git a/src/main/java/com/iconplus/smartproc/controller/DrpController.java b/src/main/java/com/iconplus/smartproc/controller/DrpController.java index 82210bd..d92ab8b 100644 --- a/src/main/java/com/iconplus/smartproc/controller/DrpController.java +++ b/src/main/java/com/iconplus/smartproc/controller/DrpController.java @@ -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); - } - } diff --git a/src/main/java/com/iconplus/smartproc/controller/DrpPengadaanController.java b/src/main/java/com/iconplus/smartproc/controller/DrpPengadaanController.java new file mode 100644 index 0000000..9c9fe33 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/controller/DrpPengadaanController.java @@ -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); + } + +} diff --git a/src/main/java/com/iconplus/smartproc/model/entity/DrpApproval.java b/src/main/java/com/iconplus/smartproc/model/entity/DrpApproval.java new file mode 100644 index 0000000..bbf23cd --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/entity/DrpApproval.java @@ -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; + +} diff --git a/src/main/java/com/iconplus/smartproc/model/request/DrpApprovalRequest.java b/src/main/java/com/iconplus/smartproc/model/request/DrpApprovalRequest.java new file mode 100644 index 0000000..820bc70 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/request/DrpApprovalRequest.java @@ -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; +} diff --git a/src/main/java/com/iconplus/smartproc/model/request/DrpPengadaanDokumenRequest.java b/src/main/java/com/iconplus/smartproc/model/request/DrpPengadaanDokumenRequest.java index b1819d1..8510e9b 100644 --- a/src/main/java/com/iconplus/smartproc/model/request/DrpPengadaanDokumenRequest.java +++ b/src/main/java/com/iconplus/smartproc/model/request/DrpPengadaanDokumenRequest.java @@ -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; } diff --git a/src/main/java/com/iconplus/smartproc/model/response/DrpApprovalResponse.java b/src/main/java/com/iconplus/smartproc/model/response/DrpApprovalResponse.java new file mode 100644 index 0000000..6b0c43a --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/response/DrpApprovalResponse.java @@ -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; +} diff --git a/src/main/java/com/iconplus/smartproc/repository/DrpApprovalRepository.java b/src/main/java/com/iconplus/smartproc/repository/DrpApprovalRepository.java new file mode 100644 index 0000000..1320983 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/repository/DrpApprovalRepository.java @@ -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 { + +} diff --git a/src/main/java/com/iconplus/smartproc/service/approval/PostCreateDrpApprovalService.java b/src/main/java/com/iconplus/smartproc/service/approval/PostCreateDrpApprovalService.java new file mode 100644 index 0000000..4500c26 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/approval/PostCreateDrpApprovalService.java @@ -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 { + + 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(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/drp/EditUploadDokumenDrpService.java b/src/main/java/com/iconplus/smartproc/service/drp/EditUploadDokumenDrpService.java new file mode 100644 index 0000000..917d525 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/drp/EditUploadDokumenDrpService.java @@ -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 { + + @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(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/drp/PostCreateDrpService.java b/src/main/java/com/iconplus/smartproc/service/drp/PostCreateDrpService.java index 9eeeda3..8210d44 100644 --- a/src/main/java/com/iconplus/smartproc/service/drp/PostCreateDrpService.java +++ b/src/main/java/com/iconplus/smartproc/service/drp/PostCreateDrpService.java @@ -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 { 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 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()) diff --git a/src/main/java/com/iconplus/smartproc/service/drp/DeleteDokumenPendukungService.java b/src/main/java/com/iconplus/smartproc/service/drppengadaan/DeleteDokumenPendukungService.java similarity index 96% rename from src/main/java/com/iconplus/smartproc/service/drp/DeleteDokumenPendukungService.java rename to src/main/java/com/iconplus/smartproc/service/drppengadaan/DeleteDokumenPendukungService.java index 108bbd9..5449295 100644 --- a/src/main/java/com/iconplus/smartproc/service/drp/DeleteDokumenPendukungService.java +++ b/src/main/java/com/iconplus/smartproc/service/drppengadaan/DeleteDokumenPendukungService.java @@ -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; diff --git a/src/main/java/com/iconplus/smartproc/service/drp/DeleteDrpPengadaanService.java b/src/main/java/com/iconplus/smartproc/service/drppengadaan/DeleteDrpPengadaanService.java similarity index 95% rename from src/main/java/com/iconplus/smartproc/service/drp/DeleteDrpPengadaanService.java rename to src/main/java/com/iconplus/smartproc/service/drppengadaan/DeleteDrpPengadaanService.java index fdd3066..d379d84 100644 --- a/src/main/java/com/iconplus/smartproc/service/drp/DeleteDrpPengadaanService.java +++ b/src/main/java/com/iconplus/smartproc/service/drppengadaan/DeleteDrpPengadaanService.java @@ -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; diff --git a/src/main/java/com/iconplus/smartproc/service/drppengadaan/EditUploadDrpPengadaanService.java b/src/main/java/com/iconplus/smartproc/service/drppengadaan/EditUploadDrpPengadaanService.java new file mode 100644 index 0000000..baa3cd9 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/drppengadaan/EditUploadDrpPengadaanService.java @@ -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 { + + @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(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/drp/GetListDrpPengadaanService.java b/src/main/java/com/iconplus/smartproc/service/drppengadaan/GetListDrpPengadaanService.java similarity index 98% rename from src/main/java/com/iconplus/smartproc/service/drp/GetListDrpPengadaanService.java rename to src/main/java/com/iconplus/smartproc/service/drppengadaan/GetListDrpPengadaanService.java index 7b24ba2..82fb79f 100644 --- a/src/main/java/com/iconplus/smartproc/service/drp/GetListDrpPengadaanService.java +++ b/src/main/java/com/iconplus/smartproc/service/drppengadaan/GetListDrpPengadaanService.java @@ -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; diff --git a/src/main/java/com/iconplus/smartproc/service/drp/PostCreateDrpPengadaanService.java b/src/main/java/com/iconplus/smartproc/service/drppengadaan/PostCreateDrpPengadaanService.java similarity index 98% rename from src/main/java/com/iconplus/smartproc/service/drp/PostCreateDrpPengadaanService.java rename to src/main/java/com/iconplus/smartproc/service/drppengadaan/PostCreateDrpPengadaanService.java index 24d2d5c..fcd17d4 100644 --- a/src/main/java/com/iconplus/smartproc/service/drp/PostCreateDrpPengadaanService.java +++ b/src/main/java/com/iconplus/smartproc/service/drppengadaan/PostCreateDrpPengadaanService.java @@ -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; diff --git a/src/main/java/com/iconplus/smartproc/service/drp/PostDrpUploadDokumenPendukungService.java b/src/main/java/com/iconplus/smartproc/service/drppengadaan/PostDrpUploadDokumenPendukungService.java similarity index 82% rename from src/main/java/com/iconplus/smartproc/service/drp/PostDrpUploadDokumenPendukungService.java rename to src/main/java/com/iconplus/smartproc/service/drppengadaan/PostDrpUploadDokumenPendukungService.java index 216316f..de28b1a 100644 --- a/src/main/java/com/iconplus/smartproc/service/drp/PostDrpUploadDokumenPendukungService.java +++ b/src/main/java/com/iconplus/smartproc/service/drppengadaan/PostDrpUploadDokumenPendukungService.java @@ -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 { +public class PostDrpUploadDokumenPendukungService implements BaseService { @Value("${config.file-upload.pendukung}") private String pathFileUploadPendukung; @@ -26,7 +26,7 @@ public class PostDrpUploadDokumenPendukungService implements BaseService