init drp
This commit is contained in:
parent
9f1a9b9004
commit
c459dba989
@ -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();
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user