approval
This commit is contained in:
		| @@ -1,15 +1,14 @@ | ||||
| package com.iconplus.smartproc.controller; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.model.EmptyRequest; | ||||
| import com.iconplus.smartproc.model.request.BidangRequest; | ||||
| import com.iconplus.smartproc.helper.model.EmptyResponse; | ||||
| import com.iconplus.smartproc.model.request.DrpApprovalRequest; | ||||
| import com.iconplus.smartproc.model.response.DrpApprovalResponse; | ||||
| import com.iconplus.smartproc.model.request.DrpRekomendasiRequest; | ||||
| import com.iconplus.smartproc.model.request.ListDrpApprovalRequest; | ||||
| import com.iconplus.smartproc.model.response.DrpRekomendasiResponse; | ||||
| import com.iconplus.smartproc.model.response.GetListDrpApprovalResponse; | ||||
| import com.iconplus.smartproc.model.response.GetListUserApprovalResponse; | ||||
| import com.iconplus.smartproc.service.approval.GetListApprovalDrpServie; | ||||
| import com.iconplus.smartproc.service.approval.GetListUserDirekturKomiteService; | ||||
| import com.iconplus.smartproc.service.approval.GetListUserVpService; | ||||
| import com.iconplus.smartproc.service.approval.PostCreateDrpApprovalService; | ||||
| import com.iconplus.smartproc.service.approval.*; | ||||
| import org.springframework.data.domain.PageRequest; | ||||
| import org.springframework.data.domain.Pageable; | ||||
| import org.springframework.web.bind.annotation.*; | ||||
| @@ -23,14 +22,20 @@ public class ApprovalDrpController { | ||||
|     private GetListUserDirekturKomiteService getListUserDirekturKomiteService; | ||||
|     private PostCreateDrpApprovalService postCreateDrpApprovalService; | ||||
|     private GetListApprovalDrpServie getListApprovalDrpServie; | ||||
|     private PostDrpRekomendasiService postDrpRekomendasiService; | ||||
|     private PostDrpApprovalExecutionService postDrpApprovalExecutionService; | ||||
|     public ApprovalDrpController(GetListUserVpService getListUserVpService, | ||||
|                                  GetListUserDirekturKomiteService getListUserDirekturKomiteService, | ||||
|                                  PostCreateDrpApprovalService postCreateDrpApprovalService, | ||||
|                                  GetListApprovalDrpServie getListApprovalDrpServie) { | ||||
|                                  GetListApprovalDrpServie getListApprovalDrpServie, | ||||
|                                  PostDrpRekomendasiService postDrpRekomendasiService, | ||||
|                                  PostDrpApprovalExecutionService postDrpApprovalExecutionService) { | ||||
|         this.getListUserVpService = getListUserVpService; | ||||
|         this.getListUserDirekturKomiteService = getListUserDirekturKomiteService; | ||||
|         this.postCreateDrpApprovalService = postCreateDrpApprovalService; | ||||
|         this.getListApprovalDrpServie = getListApprovalDrpServie; | ||||
|         this.postDrpRekomendasiService = postDrpRekomendasiService; | ||||
|         this.postDrpApprovalExecutionService = postDrpApprovalExecutionService; | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/vp") | ||||
| @@ -44,8 +49,8 @@ public class ApprovalDrpController { | ||||
|     } | ||||
|  | ||||
|     @PostMapping | ||||
|     public DrpApprovalResponse createDrpApproval(@RequestBody DrpApprovalRequest drpApprovalRequest) { | ||||
|         return postCreateDrpApprovalService.execute(drpApprovalRequest); | ||||
|     public EmptyResponse createDrpHasApproval(@RequestBody ListDrpApprovalRequest listDrpApprovalRequest) { | ||||
|         return postCreateDrpApprovalService.execute(listDrpApprovalRequest); | ||||
|     } | ||||
|  | ||||
|     @GetMapping | ||||
| @@ -61,4 +66,14 @@ public class ApprovalDrpController { | ||||
|         return getListApprovalDrpServie.execute(drpApprovalRequest); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @PostMapping("/rekomendasi") | ||||
|     public DrpRekomendasiResponse drpRekomendasiResponse(@RequestBody DrpRekomendasiRequest drpRekomendasiRequest) { | ||||
|         return postDrpRekomendasiService.execute(drpRekomendasiRequest); | ||||
|     } | ||||
|  | ||||
|     @PostMapping("/execution") | ||||
|     public EmptyResponse drpApprovalExecution(@RequestBody DrpApprovalRequest drpApprovalRequest) { | ||||
|         return postDrpApprovalExecutionService.execute(drpApprovalRequest); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -8,8 +8,7 @@ import lombok.NoArgsConstructor; | ||||
| import org.hibernate.annotations.Type; | ||||
|  | ||||
| import javax.persistence.*; | ||||
| import java.sql.Timestamp; | ||||
| import java.util.Date; | ||||
| import java.sql.Date; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @@ -31,7 +30,22 @@ public class Drp extends BaseEntity { | ||||
|     private String approveStatus; | ||||
|  | ||||
|     @Column(name = "approve_date") | ||||
|     private Timestamp approveDate; | ||||
|     private Date approveDate; | ||||
|  | ||||
|     @Column(name = "vp_approve_date") | ||||
|     private Date vpApproveDate; | ||||
|  | ||||
|     @Column(name = "komite_approve_date") | ||||
|     private Date komiteApproveDate; | ||||
|  | ||||
|     @Column(name = "direktur_approve_date") | ||||
|     private Date direkturApproveDate; | ||||
|  | ||||
|     @Column(name = "is_print") | ||||
|     private Boolean isPrint; | ||||
|  | ||||
|     @Column(name = "print_date") | ||||
|     private Date printDate; | ||||
|  | ||||
|     @Column(name = "is_active") | ||||
|     @Type(type = "org.hibernate.type.NumericBooleanType") | ||||
|   | ||||
| @@ -8,7 +8,6 @@ import lombok.NoArgsConstructor; | ||||
| import org.hibernate.annotations.Type; | ||||
|  | ||||
| import javax.persistence.*; | ||||
| import java.sql.Date; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @@ -26,41 +25,15 @@ public class DrpApproval extends BaseEntity { | ||||
|     @Column(name = "drp_id") | ||||
|     private Long drpId; | ||||
|  | ||||
|     @Column(name = "approver_vp_id") | ||||
|     private Long approverVpId; | ||||
|     @Column(name = "approver_user_id") | ||||
|     private Long approverUserId; | ||||
|  | ||||
|     @Column(name = "approver_vp_date") | ||||
|     private Date approverVpDate; | ||||
|     @Column(name = "is_approve") | ||||
|     @Type(type = "org.hibernate.type.NumericBooleanType") | ||||
|     private Boolean isApprove; | ||||
|  | ||||
|     @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 = "level") | ||||
|     private String level; | ||||
|  | ||||
|     @Column(name = "is_active") | ||||
|     @Type(type = "org.hibernate.type.NumericBooleanType") | ||||
|   | ||||
| @@ -0,0 +1,45 @@ | ||||
| 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_rekomendasi") | ||||
| public class DrpRekomendasi extends BaseEntity { | ||||
|  | ||||
|     @Id | ||||
|     @GeneratedValue(strategy = GenerationType.IDENTITY) | ||||
|     @Column(name = "id") | ||||
|     private Long id; | ||||
|  | ||||
|     @Column(name = "jenis_pengadaan_id") | ||||
|     private Long jenisPengadaanId; | ||||
|  | ||||
|     @Column(name = "drp_approval_id") | ||||
|     private Long drpApprovalId; | ||||
|  | ||||
|     @Column(name = "rekomendasi") | ||||
|     private String rekomendasi; | ||||
|  | ||||
|     @Column(name = "rekomendasi_date") | ||||
|     private Date rekomendasiDate; | ||||
|  | ||||
|     @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; | ||||
| } | ||||
| @@ -1,5 +1,6 @@ | ||||
| package com.iconplus.smartproc.model.projection; | ||||
|  | ||||
|  | ||||
| import java.sql.Date; | ||||
|  | ||||
| public interface DrpApprovalView { | ||||
| @@ -16,23 +17,15 @@ public interface DrpApprovalView { | ||||
|     String getApproveStatus(); | ||||
|     void setApproveStatus(String approveStatus); | ||||
|  | ||||
|     Date getApproverVpDate(); | ||||
|     void setApproveVpDate(Date approveVpDate); | ||||
|     Date getVpApproveDate(); | ||||
|     void setVpApproveDate(Date vpApproveDate); | ||||
|  | ||||
|     Date getApproverKomite1Date(); | ||||
|     void setApproveKomite1Date(Date approveKomite1Date); | ||||
|     Date getKomiteApproveDate(); | ||||
|     void setKomiteApproveDate(Date komiteApproveDate); | ||||
|  | ||||
|     Date getApproverKomite2Date(); | ||||
|     void setApproveKomite2Date(Date approveKomite2Date); | ||||
|     Date getDirekturApproveDate(); | ||||
|     void setDirekturApproveDate(Date direkturApproveDate); | ||||
|  | ||||
|     Date getApproverKomite3Date(); | ||||
|     void setApproveKomite3Date(Date approveKomite3Date); | ||||
|  | ||||
|     Date getApproverKomite4Date(); | ||||
|     void setApproveKomite4Date(Date approveKomite4Date); | ||||
|  | ||||
|     Date getApproverDirekturDate(); | ||||
|     void setApproveDirekturDate(Date approveDirekturDate); | ||||
|  | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,27 @@ | ||||
| package com.iconplus.smartproc.model.projection; | ||||
|  | ||||
| import java.util.Date; | ||||
|  | ||||
| public interface DrpRekomendasiView { | ||||
|  | ||||
|     Long getId(); | ||||
|     void setId(Long id); | ||||
|  | ||||
|     String getNomorRkp(); | ||||
|     void setNomorRkp(String nomorRkp); | ||||
|  | ||||
|  | ||||
|     String getNamaPengadaan(); | ||||
|     void setNamaPengadaan(String namaPengadaan); | ||||
|  | ||||
|     String getApproval(); | ||||
|     void setApproval(String approval); | ||||
|  | ||||
|     Boolean getStatus(); | ||||
|     void setStatus(Boolean status); | ||||
|  | ||||
|  | ||||
| //    Date approveDate; | ||||
| //    Date rekomendasiDate; | ||||
| //    String rekomendasi; | ||||
| } | ||||
| @@ -13,13 +13,11 @@ import org.springframework.data.domain.Pageable; | ||||
| @NoArgsConstructor | ||||
| public class DrpApprovalRequest extends BaseRequest { | ||||
|  | ||||
|     private Long userId; | ||||
|     private Boolean isApprove; | ||||
|     private Long drpId; | ||||
|     private Long approverVpId; | ||||
|     private Long approverKomite1Id; | ||||
|     private Long approverKomite2Id; | ||||
|     private Long approverKomite3Id; | ||||
|     private Long approverKomite4Id; | ||||
|     private Long approverDirekturId; | ||||
|     private Long approverUserId; | ||||
|     private String level; | ||||
|  | ||||
|     private String search; | ||||
|     private transient Pageable pageable; | ||||
|   | ||||
| @@ -0,0 +1,24 @@ | ||||
| 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; | ||||
|  | ||||
| import java.sql.Date; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| public class DrpRekomendasiRequest extends BaseRequest { | ||||
|  | ||||
|     private Long id; | ||||
|     private Long drpApprovalId; | ||||
|     private Long jenisPengadaanId; | ||||
|     private String rekomendasi; | ||||
|     private Date rekomendasiDate; | ||||
|  | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,20 @@ | ||||
| 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; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| public class ListDrpApprovalRequest extends BaseRequest { | ||||
|  | ||||
|     private Long id; | ||||
|     private Long drpId; | ||||
|     private List<DrpApprovalRequest> data; | ||||
| } | ||||
| @@ -19,9 +19,6 @@ public class DrpApprovalResponse extends BaseResponse { | ||||
|     private Integer tahun; | ||||
|     private String approveStatus; | ||||
|     private Date approverVpDate; | ||||
|     private Date approverKomite1Date; | ||||
|     private Date approverKomite2Date; | ||||
|     private Date approverKomite3Date; | ||||
|     private Date approverKomite4Date; | ||||
|     private Date approverKomiteDate; | ||||
|     private Date approverDirekturDate; | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,25 @@ | ||||
| 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; | ||||
|  | ||||
| import java.util.Date; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| public class DrpRekomendasiResponse extends BaseResponse { | ||||
|  | ||||
|     private Long id; | ||||
|     private String nomorRkp; | ||||
|     private String namaPengadaan; | ||||
|     private String approval; | ||||
|     private String status; | ||||
|     private Date approveDate; | ||||
|     private Date rekomendasiDate; | ||||
|     private String rekomendasi; | ||||
| } | ||||
| @@ -6,7 +6,7 @@ import lombok.Builder; | ||||
| import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | ||||
|  | ||||
| import java.sql.Timestamp; | ||||
| import java.util.Date; | ||||
| import java.util.List; | ||||
|  | ||||
| @Data | ||||
| @@ -17,7 +17,7 @@ public class DrpResponse extends BaseResponse { | ||||
|     private Long id; | ||||
|     private Integer tahun; | ||||
|     private String approveStatus; | ||||
|     private Timestamp approveDate; | ||||
|     private Date approveDate; | ||||
|     private Boolean isActive; | ||||
|     private Boolean isDelete; | ||||
|  | ||||
|   | ||||
| @@ -0,0 +1,22 @@ | ||||
| package com.iconplus.smartproc.model.response; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.base.BaseResponse; | ||||
| import com.iconplus.smartproc.helper.model.Pagination; | ||||
| import com.iconplus.smartproc.model.response.DrpRekomendasiResponse; | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Builder; | ||||
| import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | ||||
|  | ||||
| import java.util.Date; | ||||
| import java.util.List; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| public class GetListDrpRekomendasiResponse extends BaseResponse { | ||||
|  | ||||
|     private List<DrpRekomendasiResponse> data; | ||||
|     private Pagination pagination; | ||||
| } | ||||
| @@ -2,9 +2,25 @@ package com.iconplus.smartproc.repository; | ||||
|  | ||||
| import com.iconplus.smartproc.model.entity.DrpApproval; | ||||
| import org.springframework.data.jpa.repository.JpaRepository; | ||||
| import org.springframework.data.jpa.repository.Query; | ||||
| import org.springframework.stereotype.Repository; | ||||
|  | ||||
| import java.util.List; | ||||
| import java.util.Optional; | ||||
|  | ||||
| @Repository | ||||
| public interface DrpApprovalRepository extends JpaRepository<DrpApproval, Long> { | ||||
|  | ||||
|     Optional<DrpApproval> findByDrpIdAndApproverUserIdAndIsDeleteFalse(Long drpId, Long userId); | ||||
|  | ||||
|  | ||||
|     @Query(value = "SELECT da " + | ||||
|             "FROM DrpApproval da " + | ||||
|             "WHERE da.isDelete = false " + | ||||
|             "AND da.drpId = :drpId " + | ||||
|             "AND UPPER(da.level) = 'KOMITE' " + | ||||
|             "AND da.isApprove = null") | ||||
|     List<DrpApproval> getListKomiteApproval(Long drpId); | ||||
|  | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,16 @@ | ||||
| package com.iconplus.smartproc.repository; | ||||
|  | ||||
| import com.iconplus.smartproc.model.entity.DrpRekomendasi; | ||||
| import org.springframework.data.domain.Page; | ||||
| import org.springframework.data.jpa.repository.JpaRepository; | ||||
| import org.springframework.data.jpa.repository.Query; | ||||
| import org.springframework.stereotype.Repository; | ||||
|  | ||||
| @Repository | ||||
| public interface DrpRekomendasiRepository extends JpaRepository<DrpRekomendasi, Long> { | ||||
|  | ||||
| //    @Query(value = "SELECT " + | ||||
| //            "FROM " + | ||||
| //            "WHERE") | ||||
| //    Page<> | ||||
| } | ||||
| @@ -33,18 +33,15 @@ public interface DrpRepository extends JpaRepository<Drp, Long> { | ||||
|     Page<DrpView> findByIsDeleteFalse(Timestamp approveDate, | ||||
|                                       Pageable pageable); | ||||
|  | ||||
|     Page<DrpView> findByIsDeleteFalse(Pageable pageable); | ||||
|  | ||||
|     @Query(value = "SELECT d.id as id, " + | ||||
|             "d.tahun as tahun, " + | ||||
|             "d.approveStatus as approveStatus, " + | ||||
|             "da.approverVpDate as approverVpDate, " + | ||||
|             "da.approverKomite1Date as approverKomite1Date, " + | ||||
|             "da.approverKomite2Date as approverKomite2Date, " + | ||||
|             "da.approverKomite3Date as approverKomite3Date, " + | ||||
|             "da.approverKomite4Date as approverKomite4Date, " + | ||||
|             "da.approverDirekturDate as approverDirekturDate " + | ||||
|             "d.vpApproveDate as vpApproveDate, " + | ||||
|             "d.komiteApproveDate as komiteApproveDate, " + | ||||
|             "d.direkturApproveDate as direkturApproveDate " + | ||||
|             "FROM Drp d " + | ||||
|             "JOIN DrpApproval da ON da.drpId = d.id " + | ||||
|             "WHERE d.isDelete = false") | ||||
|     Page<DrpApprovalView> getListApprovalDrp(Pageable pageable); | ||||
| } | ||||
|   | ||||
| @@ -1,16 +1,22 @@ | ||||
| package com.iconplus.smartproc.service.approval; | ||||
|  | ||||
| import com.iconplus.smartproc.exception.BusinessException; | ||||
| import com.iconplus.smartproc.helper.model.Pagination; | ||||
| import com.iconplus.smartproc.helper.service.BaseService; | ||||
| import com.iconplus.smartproc.model.entity.DrpApproval; | ||||
| import com.iconplus.smartproc.model.projection.DrpApprovalView; | ||||
| import com.iconplus.smartproc.model.request.DrpApprovalRequest; | ||||
| import com.iconplus.smartproc.model.response.DrpApprovalResponse; | ||||
| import com.iconplus.smartproc.model.response.GetListDrpApprovalResponse; | ||||
| import com.iconplus.smartproc.repository.DrpApprovalRepository; | ||||
| import com.iconplus.smartproc.repository.DrpRekomendasiRepository; | ||||
| import com.iconplus.smartproc.repository.DrpRepository; | ||||
| import com.iconplus.smartproc.util.Constants; | ||||
| import lombok.extern.slf4j.Slf4j; | ||||
| import org.apache.commons.lang3.StringUtils; | ||||
| import org.springframework.stereotype.Service; | ||||
|  | ||||
| import java.sql.Date; | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
|  | ||||
| @@ -39,12 +45,9 @@ public class GetListApprovalDrpServie implements BaseService<DrpApprovalRequest, | ||||
|                     .drpId(drpApprovalView.getDrpId()) | ||||
|                     .tahun(drpApprovalView.getTahun()) | ||||
|                     .approveStatus(drpApprovalView.getApproveStatus()) | ||||
|                     .approverVpDate(drpApprovalView.getApproverVpDate()) | ||||
|                     .approverKomite1Date(drpApprovalView.getApproverKomite1Date()) | ||||
|                     .approverKomite2Date(drpApprovalView.getApproverKomite2Date()) | ||||
|                     .approverKomite3Date(drpApprovalView.getApproverKomite3Date()) | ||||
|                     .approverKomite4Date(drpApprovalView.getApproverKomite4Date()) | ||||
|                     .approverDirekturDate(drpApprovalView.getApproverDirekturDate()) | ||||
|                     .approverVpDate(drpApprovalView.getVpApproveDate()) | ||||
|                     .approverDirekturDate(drpApprovalView.getDirekturApproveDate()) | ||||
|                     .approverKomiteDate(drpApprovalView.getKomiteApproveDate()) | ||||
|                     .build(); | ||||
|             drpApprovalResponseList.add(drpApprovalResponse); | ||||
|         } | ||||
|   | ||||
| @@ -0,0 +1,24 @@ | ||||
| package com.iconplus.smartproc.service.approval; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.service.BaseService; | ||||
| import com.iconplus.smartproc.model.request.DrpRekomendasiRequest; | ||||
| import com.iconplus.smartproc.model.response.GetListDrpRekomendasiResponse; | ||||
| import com.iconplus.smartproc.repository.DrpRekomendasiRepository; | ||||
| import org.springframework.stereotype.Service; | ||||
|  | ||||
| import java.io.IOException; | ||||
|  | ||||
| @Service | ||||
| public class GetListRekomendasiService implements BaseService<DrpRekomendasiRequest, GetListDrpRekomendasiResponse> { | ||||
|  | ||||
|     private final DrpRekomendasiRepository drpRekomendasiRepository; | ||||
|  | ||||
|     public GetListRekomendasiService(DrpRekomendasiRepository drpRekomendasiRepository) { | ||||
|         this.drpRekomendasiRepository = drpRekomendasiRepository; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public GetListDrpRekomendasiResponse execute(DrpRekomendasiRequest input) { | ||||
|         return null; | ||||
|     } | ||||
| } | ||||
| @@ -1,30 +1,32 @@ | ||||
| package com.iconplus.smartproc.service.approval; | ||||
|  | ||||
| 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.entity.DrpApproval; | ||||
| import com.iconplus.smartproc.model.request.DrpApprovalRequest; | ||||
| import com.iconplus.smartproc.model.response.DrpApprovalResponse; | ||||
| import com.iconplus.smartproc.model.request.ListDrpApprovalRequest; | ||||
| 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; | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
|  | ||||
| @Service | ||||
| public class PostCreateDrpApprovalService implements BaseService<DrpApprovalRequest, DrpApprovalResponse> { | ||||
| public class PostCreateDrpApprovalService implements BaseService<ListDrpApprovalRequest, EmptyResponse> { | ||||
|  | ||||
|     private final DrpApprovalRepository drpApprovalRepository; | ||||
|     private final DrpRepository drpRepository; | ||||
|     public PostCreateDrpApprovalService(DrpApprovalRepository drpApprovalRepository, | ||||
|                                         DrpRepository drpRepository) { | ||||
|         this.drpApprovalRepository = drpApprovalRepository; | ||||
|     private final DrpApprovalRepository drpApprovalRepository; | ||||
|     public PostCreateDrpApprovalService(DrpRepository drpRepository, | ||||
|                                         DrpApprovalRepository drpApprovalRepository) { | ||||
|         this.drpRepository = drpRepository; | ||||
|         this.drpApprovalRepository = drpApprovalRepository; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public DrpApprovalResponse execute(DrpApprovalRequest input) { | ||||
|     public EmptyResponse execute(ListDrpApprovalRequest input) { | ||||
|  | ||||
|         var drpOptional = drpRepository.findByIdAndIsDeleteFalse(input.getDrpId()); | ||||
|         if (drpOptional.isEmpty()) { | ||||
| @@ -33,19 +35,19 @@ public class PostCreateDrpApprovalService implements BaseService<DrpApprovalRequ | ||||
|                     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(); | ||||
|         List<DrpApproval> drpApprovalList = new ArrayList<>(); | ||||
|         for (DrpApprovalRequest drpApprovalRequest : input.getData()) { | ||||
|             DrpApproval drpApproval = DrpApproval.builder() | ||||
|                     .drpId(input.getDrpId()) | ||||
|                     .approverUserId(drpApprovalRequest.getApproverUserId()) | ||||
|                     .level(drpApprovalRequest.getLevel()) | ||||
|                     .isDelete(false) | ||||
|                     .build(); | ||||
|             drpApprovalList.add(drpApproval); | ||||
|         } | ||||
|  | ||||
|         var result = drpApprovalRepository.save(drpApproval); | ||||
|         drpApprovalRepository.saveAll(drpApprovalList); | ||||
|  | ||||
|         return DrpApprovalResponse.builder() | ||||
|                 .id(result.getId()) | ||||
|                 .build(); | ||||
|         return new EmptyResponse(); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,69 @@ | ||||
| package com.iconplus.smartproc.service.approval; | ||||
|  | ||||
| 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.DrpApprovalRequest; | ||||
| import com.iconplus.smartproc.repository.DrpApprovalRepository; | ||||
| import com.iconplus.smartproc.repository.DrpRepository; | ||||
| import com.iconplus.smartproc.util.Constants; | ||||
| import org.apache.commons.lang3.StringUtils; | ||||
| import org.springframework.stereotype.Service; | ||||
|  | ||||
| import java.sql.Date; | ||||
| import java.time.LocalDate; | ||||
|  | ||||
| @Service | ||||
| public class PostDrpApprovalExecutionService implements BaseService<DrpApprovalRequest, EmptyResponse> { | ||||
|  | ||||
|     private final DrpApprovalRepository drpApprovalRepository; | ||||
|     private final DrpRepository drpRepository; | ||||
|  | ||||
|     public PostDrpApprovalExecutionService(DrpApprovalRepository drpApprovalRepository, | ||||
|                                            DrpRepository drpRepository) { | ||||
|         this.drpApprovalRepository = drpApprovalRepository; | ||||
|         this.drpRepository = drpRepository; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public EmptyResponse execute(DrpApprovalRequest input) { | ||||
|  | ||||
|         var drpApproval = drpApprovalRepository.findByDrpIdAndApproverUserIdAndIsDeleteFalse(input.getDrpId(), input.getUserId()) | ||||
|                 .orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10001, | ||||
|                         Constants.ERR_TTL_10001, | ||||
|                         String.format(Constants.ERR_MSG_10001, "DRP", input.getDrpId()))); | ||||
|  | ||||
|         var drp = drpRepository.findByIdAndIsDeleteFalse(input.getDrpId()) | ||||
|                 .orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10001, | ||||
|                         Constants.ERR_TTL_10001, | ||||
|                         String.format(Constants.ERR_MSG_10001, "DRP", input.getDrpId()))); | ||||
|  | ||||
|  | ||||
|  | ||||
|         Date dateNow = Date.valueOf(LocalDate.now()); | ||||
|  | ||||
|         if (StringUtils.equalsIgnoreCase(drpApproval.getLevel(), "VP")) { | ||||
|             drpApproval.setIsApprove(input.getIsApprove()); | ||||
|             drp.setVpApproveDate(dateNow); | ||||
|             drp.setApproveStatus(Constants.STATUS_APPROVAL_VP); | ||||
|  | ||||
|         } else if (StringUtils.equalsIgnoreCase(drpApproval.getLevel(), "DIREKTUR")) { | ||||
|             drpApproval.setIsApprove(input.getIsApprove()); | ||||
|             drp.setDirekturApproveDate(dateNow); | ||||
|             drp.setApproveStatus(Constants.STATUS_APPROVAL_DIRUT); | ||||
|  | ||||
|         } else { | ||||
|             var listKomiteApproval = drpApprovalRepository.getListKomiteApproval(input.getDrpId()); | ||||
|             if (listKomiteApproval.size() == 1) { | ||||
|                 drp.setApproveStatus(Constants.STATUS_REKOMENDASI_KOMITE); | ||||
|             } | ||||
|             drpApproval.setIsApprove(input.getIsApprove()); | ||||
|             drp.setKomiteApproveDate(dateNow); | ||||
|         } | ||||
|  | ||||
|         drpApprovalRepository.save(drpApproval); | ||||
|         drpRepository.save(drp); | ||||
|  | ||||
|         return new EmptyResponse(); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,36 @@ | ||||
| package com.iconplus.smartproc.service.approval; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.service.BaseService; | ||||
| import com.iconplus.smartproc.model.entity.DrpRekomendasi; | ||||
| import com.iconplus.smartproc.model.request.DrpRekomendasiRequest; | ||||
| import com.iconplus.smartproc.model.response.DrpRekomendasiResponse; | ||||
| import com.iconplus.smartproc.repository.DrpRekomendasiRepository; | ||||
| import org.springframework.stereotype.Service; | ||||
|  | ||||
| @Service | ||||
| public class PostDrpRekomendasiService implements BaseService<DrpRekomendasiRequest, DrpRekomendasiResponse> { | ||||
|  | ||||
|     private DrpRekomendasiRepository drpRekomendasiRepository; | ||||
|  | ||||
|     private PostDrpRekomendasiService(DrpRekomendasiRepository drpRekomendasiRepository) { | ||||
|         this.drpRekomendasiRepository = drpRekomendasiRepository; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public DrpRekomendasiResponse execute(DrpRekomendasiRequest input) { | ||||
|  | ||||
|         DrpRekomendasi drpRekomendasi = DrpRekomendasi.builder() | ||||
|                 .jenisPengadaanId(input.getJenisPengadaanId()) | ||||
|                 .drpApprovalId(input.getDrpApprovalId()) | ||||
|                 .rekomendasi(input.getRekomendasi()) | ||||
|                 .rekomendasiDate(input.getRekomendasiDate()) | ||||
|                 .isDelete(false) | ||||
|                 .build(); | ||||
|  | ||||
|         var result = drpRekomendasiRepository.save(drpRekomendasi); | ||||
|  | ||||
|         return DrpRekomendasiResponse.builder() | ||||
|                 .id(result.getId()) | ||||
|                 .build(); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user