init drp
This commit is contained in:
		| @@ -0,0 +1,11 @@ | ||||
| package com.iconplus.smartproc.controller; | ||||
|  | ||||
| import org.springframework.web.bind.annotation.CrossOrigin; | ||||
| import org.springframework.web.bind.annotation.RequestMapping; | ||||
| import org.springframework.web.bind.annotation.RestController; | ||||
|  | ||||
| @CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true") | ||||
| @RestController | ||||
| @RequestMapping("/api/drp") | ||||
| public class DrpController { | ||||
| } | ||||
							
								
								
									
										44
									
								
								src/main/java/com/iconplus/smartproc/model/entity/Drp.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								src/main/java/com/iconplus/smartproc/model/entity/Drp.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | ||||
| 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.Timestamp; | ||||
| import java.util.Date; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| @Entity | ||||
| @Table(name = "drp") | ||||
| public class Drp extends BaseEntity { | ||||
|  | ||||
|     @Id | ||||
|     @GeneratedValue(strategy = GenerationType.IDENTITY) | ||||
|     @Column(name = "id") | ||||
|     private Long id; | ||||
|  | ||||
|     @Column(name = "tahun") | ||||
|     private Integer tahun; | ||||
|  | ||||
|     @Column(name = "is_approve") | ||||
|     @Type(type = "org.hibernate.type.NumericBooleanType") | ||||
|     private Boolean isApprove; | ||||
|  | ||||
|     @Column(name = "approve_date") | ||||
|     private Timestamp approveDate; | ||||
|  | ||||
|     @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; | ||||
| } | ||||
| @@ -0,0 +1,24 @@ | ||||
| package com.iconplus.smartproc.model.projection; | ||||
|  | ||||
| import java.sql.Timestamp; | ||||
|  | ||||
| public interface DrpView { | ||||
|  | ||||
|     Long getId(); | ||||
|     void setId(Long id); | ||||
|  | ||||
|     Integer getTahun(); | ||||
|     void setTahun(Integer tahun); | ||||
|  | ||||
|     Boolean getIsApprove(); | ||||
|     void setIsApprove(Boolean isApprove); | ||||
|  | ||||
|     Timestamp getApproveDate(); | ||||
|     void setApproveDate(Timestamp approveDate); | ||||
|  | ||||
|     Boolean getIsActive(); | ||||
|     void setIsActive(Boolean isActive); | ||||
|  | ||||
|     Boolean getIsDelete(); | ||||
|     void setIsDelete(Boolean isDelete); | ||||
| } | ||||
| @@ -0,0 +1,23 @@ | ||||
| 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 org.springframework.data.domain.Pageable; | ||||
|  | ||||
| import java.sql.Timestamp; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| public class DrpRequest extends BaseRequest { | ||||
|     private Long id; | ||||
|     private Integer tahun; | ||||
|     private Boolean isApprove; | ||||
|     private Timestamp approveDate; | ||||
|     private Boolean isActive; | ||||
|     private transient Pageable pageable; | ||||
| } | ||||
| @@ -0,0 +1,22 @@ | ||||
| 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.sql.Timestamp; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| public class DrpResponse extends BaseResponse { | ||||
|     private Long id; | ||||
|     private Integer tahun; | ||||
|     private Boolean isApprove; | ||||
|     private Timestamp approveDate; | ||||
|     private Boolean isActive; | ||||
|     private Boolean isDelete; | ||||
| } | ||||
| @@ -0,0 +1,19 @@ | ||||
| package com.iconplus.smartproc.model.response; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.base.BaseResponse; | ||||
| import com.iconplus.smartproc.helper.model.Pagination; | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Builder; | ||||
| import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| public class GetListDrpResponse extends BaseResponse { | ||||
|     private List<DrpResponse> data; | ||||
|     private Pagination pagination; | ||||
| } | ||||
| @@ -0,0 +1,32 @@ | ||||
| package com.iconplus.smartproc.repository; | ||||
|  | ||||
| import com.iconplus.smartproc.model.entity.Drp; | ||||
| import com.iconplus.smartproc.model.projection.DrpView; | ||||
| import org.springframework.data.domain.Page; | ||||
| import org.springframework.data.domain.Pageable; | ||||
| import org.springframework.data.jpa.repository.JpaRepository; | ||||
| import org.springframework.data.jpa.repository.Query; | ||||
| import org.springframework.stereotype.Repository; | ||||
|  | ||||
| import java.sql.Timestamp; | ||||
| import java.util.List; | ||||
| import java.util.Optional; | ||||
|  | ||||
| @Repository | ||||
| public interface DrpRepository extends JpaRepository<Drp, Long> { | ||||
|  | ||||
|     Optional<Drp> findByIdAndIsDeleteFalse(Long id); | ||||
|  | ||||
|     @Query(value = "SELECT d.id as id, " + | ||||
|             "d.tahun as tahun, " + | ||||
|             "d.isApprove as isApprove, " + | ||||
|             "d.approveDate as approveDate, " + | ||||
|             "d.isActive as isActive, " + | ||||
|             "d.isDelete as isDelete " + | ||||
|             "FROM Drp d" + | ||||
|             "WHERE d.isDelete = false " + | ||||
|             "AND (:approveDate = '' or DATE(d.approveDate) = DATE(approveDate)) " + | ||||
|             "ORDER BY d.id") | ||||
|     Page<DrpView> findByIsDeleteFalse(Timestamp approveDate, | ||||
|                                       Pageable pageable); | ||||
| } | ||||
| @@ -0,0 +1,36 @@ | ||||
| package com.iconplus.smartproc.service.drp; | ||||
|  | ||||
| import com.iconplus.smartproc.exception.BusinessException; | ||||
| import com.iconplus.smartproc.helper.service.BaseService; | ||||
| import com.iconplus.smartproc.model.request.DrpRequest; | ||||
| import com.iconplus.smartproc.model.response.DrpResponse; | ||||
| import com.iconplus.smartproc.repository.DrpRepository; | ||||
| import com.iconplus.smartproc.util.Constants; | ||||
| import org.springframework.stereotype.Service; | ||||
|  | ||||
| @Service | ||||
| public class GetDrpService implements BaseService<DrpRequest, DrpResponse> { | ||||
|  | ||||
|     private final DrpRepository drpRepository; | ||||
|  | ||||
|     public GetDrpService(DrpRepository drpRepository) { | ||||
|         this.drpRepository = drpRepository; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public DrpResponse execute(DrpRequest input) { | ||||
|         var drp = drpRepository.findByIdAndIsDeleteFalse(input.getId()) | ||||
|                 .orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10001, | ||||
|                         Constants.ERR_TTL_10001, | ||||
|                         String.format(Constants.ERR_MSG_10001, "DRP", input.getId()))); | ||||
|  | ||||
|         return DrpResponse.builder() | ||||
|                 .id(drp.getId()) | ||||
|                 .tahun(drp.getTahun()) | ||||
|                 .isApprove(drp.getIsApprove()) | ||||
|                 .approveDate(drp.getApproveDate()) | ||||
|                 .isActive(drp.getIsActive()) | ||||
|                 .isDelete(drp.getIsDelete()) | ||||
|                 .build(); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,54 @@ | ||||
| package com.iconplus.smartproc.service.drp; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.model.Pagination; | ||||
| import com.iconplus.smartproc.helper.service.BaseService; | ||||
| import com.iconplus.smartproc.model.projection.DrpView; | ||||
| import com.iconplus.smartproc.model.request.DrpRequest; | ||||
| import com.iconplus.smartproc.model.response.DrpResponse; | ||||
| import com.iconplus.smartproc.model.response.GetListDrpResponse; | ||||
| import com.iconplus.smartproc.repository.DrpRepository; | ||||
| import org.springframework.stereotype.Service; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
|  | ||||
| @Service | ||||
| public class GetListDrpService implements BaseService<DrpRequest, GetListDrpResponse> { | ||||
|  | ||||
|     private final DrpRepository drpRepository; | ||||
|  | ||||
|     public GetListDrpService(DrpRepository drpRepository) { | ||||
|         this.drpRepository = drpRepository; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public GetListDrpResponse execute(DrpRequest input) { | ||||
|  | ||||
|         List<DrpResponse> drpResponseList = new ArrayList<>(); | ||||
|  | ||||
|         var drpViews = drpRepository.findByIsDeleteFalse(input.getApproveDate(), input.getPageable()); | ||||
|         for (DrpView drpView : drpViews) { | ||||
|             DrpResponse drpResponse = DrpResponse.builder() | ||||
|                     .id(drpView.getId()) | ||||
|                     .tahun(drpView.getTahun()) | ||||
|                     .isApprove(drpView.getIsApprove()) | ||||
|                     .approveDate(drpView.getApproveDate()) | ||||
|                     .isActive(drpView.getIsActive()) | ||||
|                     .isDelete(drpView.getIsDelete()) | ||||
|                     .build(); | ||||
|             drpResponseList.add(drpResponse); | ||||
|         } | ||||
|  | ||||
|         return GetListDrpResponse.builder() | ||||
|                 .data(drpResponseList) | ||||
|                 .pagination(Pagination.builder() | ||||
|                         .pageSize(input.getPageable().getPageSize()) | ||||
|                         .currentPage(input.getPageable().getPageNumber()) | ||||
|                         .totalPages(drpViews.getTotalPages()) | ||||
|                         .totalRecords(drpViews.getTotalElements()) | ||||
|                         .isFirstPage(drpViews.isFirst()) | ||||
|                         .isLastPage(drpViews.isLast()) | ||||
|                         .build()) | ||||
|                 .build(); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user