add
This commit is contained in:
parent
37a06b00f1
commit
dbbde49f59
@ -24,6 +24,7 @@ public class ApprovalDrpController {
|
|||||||
private PostDrpApprovalExecutionService postDrpApprovalExecutionService;
|
private PostDrpApprovalExecutionService postDrpApprovalExecutionService;
|
||||||
private GetApprovalService getApprovalService;
|
private GetApprovalService getApprovalService;
|
||||||
private GetListRekomendasiService getListRekomendasiService;
|
private GetListRekomendasiService getListRekomendasiService;
|
||||||
|
private GetHistoryApprovalService getHistoryApprovalService;
|
||||||
public ApprovalDrpController(GetListUserVpService getListUserVpService,
|
public ApprovalDrpController(GetListUserVpService getListUserVpService,
|
||||||
GetListUserDirekturKomiteService getListUserDirekturKomiteService,
|
GetListUserDirekturKomiteService getListUserDirekturKomiteService,
|
||||||
PostCreateDrpApprovalService postCreateDrpApprovalService,
|
PostCreateDrpApprovalService postCreateDrpApprovalService,
|
||||||
@ -31,7 +32,8 @@ public class ApprovalDrpController {
|
|||||||
PostDrpRekomendasiService postDrpRekomendasiService,
|
PostDrpRekomendasiService postDrpRekomendasiService,
|
||||||
PostDrpApprovalExecutionService postDrpApprovalExecutionService,
|
PostDrpApprovalExecutionService postDrpApprovalExecutionService,
|
||||||
GetApprovalService getApprovalService,
|
GetApprovalService getApprovalService,
|
||||||
GetListRekomendasiService getListRekomendasiService) {
|
GetListRekomendasiService getListRekomendasiService,
|
||||||
|
GetHistoryApprovalService getHistoryApprovalService) {
|
||||||
this.getListUserVpService = getListUserVpService;
|
this.getListUserVpService = getListUserVpService;
|
||||||
this.getListUserDirekturKomiteService = getListUserDirekturKomiteService;
|
this.getListUserDirekturKomiteService = getListUserDirekturKomiteService;
|
||||||
this.postCreateDrpApprovalService = postCreateDrpApprovalService;
|
this.postCreateDrpApprovalService = postCreateDrpApprovalService;
|
||||||
@ -40,6 +42,7 @@ public class ApprovalDrpController {
|
|||||||
this.postDrpApprovalExecutionService = postDrpApprovalExecutionService;
|
this.postDrpApprovalExecutionService = postDrpApprovalExecutionService;
|
||||||
this.getApprovalService = getApprovalService;
|
this.getApprovalService = getApprovalService;
|
||||||
this.getListRekomendasiService = getListRekomendasiService;
|
this.getListRekomendasiService = getListRekomendasiService;
|
||||||
|
this.getHistoryApprovalService = getHistoryApprovalService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/vp")
|
@GetMapping("/vp")
|
||||||
@ -101,4 +104,11 @@ public class ApprovalDrpController {
|
|||||||
|
|
||||||
return getListRekomendasiService.execute(drpRekomendasiRequest);
|
return getListRekomendasiService.execute(drpRekomendasiRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/{id}/history")
|
||||||
|
public GetListDrpApprovalHistoryResponse getListDrpApprovalResponse(@PathVariable(name = "id") Long id) {
|
||||||
|
return getHistoryApprovalService.execute(DrpApprovalRequest.builder()
|
||||||
|
.drpId(id)
|
||||||
|
.build());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,9 @@ public class DrpApproval extends BaseEntity {
|
|||||||
@Column(name = "level")
|
@Column(name = "level")
|
||||||
private String level;
|
private String level;
|
||||||
|
|
||||||
|
@Column(name = "catatan")
|
||||||
|
private String catatan;
|
||||||
|
|
||||||
@Column(name = "is_active")
|
@Column(name = "is_active")
|
||||||
@Type(type = "org.hibernate.type.NumericBooleanType")
|
@Type(type = "org.hibernate.type.NumericBooleanType")
|
||||||
private Boolean isActive;
|
private Boolean isActive;
|
||||||
|
@ -0,0 +1,43 @@
|
|||||||
|
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_history")
|
||||||
|
public class DrpApprovalHistory extends BaseEntity {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
@Column(name = "id")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Column(name = "drp_approval_id")
|
||||||
|
private Long drpApprovalId;
|
||||||
|
|
||||||
|
@Column(name = "date")
|
||||||
|
private Date date;
|
||||||
|
|
||||||
|
@Column(name = "status")
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
@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,22 @@
|
|||||||
|
package com.iconplus.smartproc.model.projection;
|
||||||
|
|
||||||
|
import java.sql.Date;
|
||||||
|
|
||||||
|
public interface DrpApprovalHistoryView {
|
||||||
|
|
||||||
|
String getStatus();
|
||||||
|
void setStatus(String status);
|
||||||
|
|
||||||
|
Date getDate();
|
||||||
|
void setDate(Date date);
|
||||||
|
|
||||||
|
String getCatatan();
|
||||||
|
void setCatatan(String catatan);
|
||||||
|
|
||||||
|
String getJabatan();
|
||||||
|
void setJabatan(String jabatan);
|
||||||
|
|
||||||
|
String getNama();
|
||||||
|
void setNama(String nama);
|
||||||
|
|
||||||
|
}
|
@ -32,6 +32,19 @@ public interface DrpApprovalView {
|
|||||||
Date getPrintDate();
|
Date getPrintDate();
|
||||||
void setPrintDate(Date printDate);
|
void setPrintDate(Date printDate);
|
||||||
|
|
||||||
|
Boolean getIsApprove();
|
||||||
|
void setIsApprove(Boolean isApprove);
|
||||||
|
|
||||||
|
String getCatatan();
|
||||||
|
void setCatatan(String catatan);
|
||||||
|
|
||||||
|
String getJabatan();
|
||||||
|
void setJabatan(String jabatan);
|
||||||
|
|
||||||
|
String getNama();
|
||||||
|
void setNama(String nama);
|
||||||
|
|
||||||
|
String getLevel();
|
||||||
|
void setLevel(String level);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@ public class DrpApprovalRequest extends BaseRequest {
|
|||||||
private Long approverUserId;
|
private Long approverUserId;
|
||||||
private String level;
|
private String level;
|
||||||
private Long jenisPengadaanId;
|
private Long jenisPengadaanId;
|
||||||
|
private String catatan;
|
||||||
|
|
||||||
private String search;
|
private String search;
|
||||||
private transient Pageable pageable;
|
private transient Pageable pageable;
|
||||||
|
@ -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.sql.Date;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class DrpApprovalHistoryResponse extends BaseResponse {
|
||||||
|
|
||||||
|
private Long drpId;
|
||||||
|
private String status;
|
||||||
|
private Date date;
|
||||||
|
private String catatan;
|
||||||
|
private String nama;
|
||||||
|
private String jabatan;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
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.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class GetListDrpApprovalHistoryResponse extends BaseResponse {
|
||||||
|
|
||||||
|
private List<DrpApprovalHistoryResponse> data;
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package com.iconplus.smartproc.repository;
|
||||||
|
|
||||||
|
import com.iconplus.smartproc.model.entity.DrpApprovalHistory;
|
||||||
|
import com.iconplus.smartproc.model.projection.DrpApprovalHistoryView;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface DrpApprovalHistoryRepository extends JpaRepository<DrpApprovalHistory, Long> {
|
||||||
|
|
||||||
|
@Query(value = "SELECT dah.status as status, " +
|
||||||
|
"dah.date as date, " +
|
||||||
|
"da.catatan as catatan, " +
|
||||||
|
"u.nama as nama, " +
|
||||||
|
"j.jabatan as jabatan " +
|
||||||
|
"FROM DrpApprovalHistory dah " +
|
||||||
|
"JOIN DrpApproval da ON da.id = dah.drpApprovalId " +
|
||||||
|
"JOIN Users u ON u.id = da.approverUserId " +
|
||||||
|
"JOIN Jabatan j ON j.id = u.jabatanId " +
|
||||||
|
"WHERE da.drpId = :drpId " +
|
||||||
|
"ORDER BY dah.timeCreated desc")
|
||||||
|
List<DrpApprovalHistoryView> getRiwayatApprovalByDrpId(Long drpId);
|
||||||
|
|
||||||
|
}
|
@ -1,6 +1,7 @@
|
|||||||
package com.iconplus.smartproc.repository;
|
package com.iconplus.smartproc.repository;
|
||||||
|
|
||||||
import com.iconplus.smartproc.model.entity.DrpApproval;
|
import com.iconplus.smartproc.model.entity.DrpApproval;
|
||||||
|
import com.iconplus.smartproc.model.projection.DrpApprovalView;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
import org.springframework.data.jpa.repository.Query;
|
import org.springframework.data.jpa.repository.Query;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
@ -23,4 +24,26 @@ public interface DrpApprovalRepository extends JpaRepository<DrpApproval, Long>
|
|||||||
List<DrpApproval> getListKomiteApproval(Long drpId);
|
List<DrpApproval> getListKomiteApproval(Long drpId);
|
||||||
|
|
||||||
|
|
||||||
|
List<DrpApproval> findByDrpIdAndIsDeleteFalse(Long drpId);
|
||||||
|
|
||||||
|
@Query(value = "SELECT da.drpId as drpId, " +
|
||||||
|
"da.isApprove as isApprove, " +
|
||||||
|
"da.catatan as catatan, " +
|
||||||
|
"da.approverUserId as approverUserId, " +
|
||||||
|
"u.nama as nama, " +
|
||||||
|
"j.jabatan as jabatan, " +
|
||||||
|
"da.level as level " +
|
||||||
|
"FROM DrpApproval da " +
|
||||||
|
"JOIN Users u ON u.id = da.approverUserId " +
|
||||||
|
"JOIN Jabatan j ON j.id = u.jabatanId " +
|
||||||
|
"WHERE da.isDelete = false " +
|
||||||
|
"AND da.isApprove is not null " +
|
||||||
|
"AND da.drpId = :drpId " +
|
||||||
|
"ORDER BY da.lastUpdate")
|
||||||
|
List<DrpApprovalView> getDrpApproval(Long drpId);
|
||||||
|
|
||||||
|
Optional<DrpApproval> findByDrpIdAndLevelAndIsDeleteFalse(Long drpId, String level);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,55 @@
|
|||||||
|
package com.iconplus.smartproc.service.approval;
|
||||||
|
|
||||||
|
import com.iconplus.smartproc.helper.service.BaseService;
|
||||||
|
import com.iconplus.smartproc.model.entity.DrpApproval;
|
||||||
|
import com.iconplus.smartproc.model.projection.DrpApprovalHistoryView;
|
||||||
|
import com.iconplus.smartproc.model.projection.DrpApprovalView;
|
||||||
|
import com.iconplus.smartproc.model.request.DrpApprovalRequest;
|
||||||
|
import com.iconplus.smartproc.model.response.DrpApprovalHistoryResponse;
|
||||||
|
import com.iconplus.smartproc.model.response.DrpApprovalResponse;
|
||||||
|
import com.iconplus.smartproc.model.response.GetListDrpApprovalHistoryResponse;
|
||||||
|
import com.iconplus.smartproc.model.response.GetListDrpApprovalResponse;
|
||||||
|
import com.iconplus.smartproc.repository.DrpApprovalHistoryRepository;
|
||||||
|
import com.iconplus.smartproc.repository.DrpApprovalRepository;
|
||||||
|
import org.apache.commons.lang3.BooleanUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class GetHistoryApprovalService implements BaseService<DrpApprovalRequest, GetListDrpApprovalHistoryResponse> {
|
||||||
|
|
||||||
|
private final DrpApprovalRepository drpApprovalRepository;
|
||||||
|
private final DrpApprovalHistoryRepository drpApprovalHistoryRepository;
|
||||||
|
public GetHistoryApprovalService(DrpApprovalRepository drpApprovalRepository,
|
||||||
|
DrpApprovalHistoryRepository drpApprovalHistoryRepository) {
|
||||||
|
this.drpApprovalRepository = drpApprovalRepository;
|
||||||
|
this.drpApprovalHistoryRepository = drpApprovalHistoryRepository;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GetListDrpApprovalHistoryResponse execute(DrpApprovalRequest input) {
|
||||||
|
|
||||||
|
List<DrpApprovalHistoryResponse> drpApprovalHistoryResponses = new ArrayList<>();
|
||||||
|
var drpApprovalHistoryViewList = drpApprovalHistoryRepository.getRiwayatApprovalByDrpId(input.getDrpId());
|
||||||
|
for (DrpApprovalHistoryView drpApprovalHistoryView : drpApprovalHistoryViewList) {
|
||||||
|
DrpApprovalHistoryResponse drpApprovalHistoryResponse = DrpApprovalHistoryResponse.builder()
|
||||||
|
.nama(drpApprovalHistoryView.getNama())
|
||||||
|
.jabatan(drpApprovalHistoryView.getJabatan())
|
||||||
|
.status(drpApprovalHistoryView.getStatus())
|
||||||
|
.date(drpApprovalHistoryView.getDate())
|
||||||
|
.catatan(drpApprovalHistoryView.getCatatan())
|
||||||
|
.build();
|
||||||
|
drpApprovalHistoryResponses.add(drpApprovalHistoryResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return GetListDrpApprovalHistoryResponse.builder()
|
||||||
|
.data(drpApprovalHistoryResponses)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
}
|
@ -4,13 +4,18 @@ import com.iconplus.smartproc.exception.BusinessException;
|
|||||||
import com.iconplus.smartproc.helper.model.EmptyResponse;
|
import com.iconplus.smartproc.helper.model.EmptyResponse;
|
||||||
import com.iconplus.smartproc.helper.service.BaseService;
|
import com.iconplus.smartproc.helper.service.BaseService;
|
||||||
import com.iconplus.smartproc.model.entity.DrpApproval;
|
import com.iconplus.smartproc.model.entity.DrpApproval;
|
||||||
|
import com.iconplus.smartproc.model.entity.DrpApprovalHistory;
|
||||||
import com.iconplus.smartproc.model.request.DrpApprovalRequest;
|
import com.iconplus.smartproc.model.request.DrpApprovalRequest;
|
||||||
import com.iconplus.smartproc.model.request.ListDrpApprovalRequest;
|
import com.iconplus.smartproc.model.request.ListDrpApprovalRequest;
|
||||||
|
import com.iconplus.smartproc.repository.DrpApprovalHistoryRepository;
|
||||||
import com.iconplus.smartproc.repository.DrpApprovalRepository;
|
import com.iconplus.smartproc.repository.DrpApprovalRepository;
|
||||||
import com.iconplus.smartproc.repository.DrpRepository;
|
import com.iconplus.smartproc.repository.DrpRepository;
|
||||||
import com.iconplus.smartproc.util.Constants;
|
import com.iconplus.smartproc.util.Constants;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.sql.Date;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -19,10 +24,13 @@ public class PostCreateDrpApprovalService implements BaseService<ListDrpApproval
|
|||||||
|
|
||||||
private final DrpRepository drpRepository;
|
private final DrpRepository drpRepository;
|
||||||
private final DrpApprovalRepository drpApprovalRepository;
|
private final DrpApprovalRepository drpApprovalRepository;
|
||||||
|
private final DrpApprovalHistoryRepository drpApprovalHistoryRepository;
|
||||||
public PostCreateDrpApprovalService(DrpRepository drpRepository,
|
public PostCreateDrpApprovalService(DrpRepository drpRepository,
|
||||||
DrpApprovalRepository drpApprovalRepository) {
|
DrpApprovalRepository drpApprovalRepository,
|
||||||
|
DrpApprovalHistoryRepository drpApprovalHistoryRepository) {
|
||||||
this.drpRepository = drpRepository;
|
this.drpRepository = drpRepository;
|
||||||
this.drpApprovalRepository = drpApprovalRepository;
|
this.drpApprovalRepository = drpApprovalRepository;
|
||||||
|
this.drpApprovalHistoryRepository = drpApprovalHistoryRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -44,9 +52,22 @@ public class PostCreateDrpApprovalService implements BaseService<ListDrpApproval
|
|||||||
.isDelete(false)
|
.isDelete(false)
|
||||||
.build();
|
.build();
|
||||||
drpApprovalList.add(drpApproval);
|
drpApprovalList.add(drpApproval);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
drpApprovalRepository.saveAll(drpApprovalList);
|
var approvalList = drpApprovalRepository.saveAll(drpApprovalList);
|
||||||
|
Date dateNow = Date.valueOf(LocalDate.now());
|
||||||
|
approvalList.forEach(c -> {
|
||||||
|
if (StringUtils.equalsIgnoreCase(c.getLevel(), "VP")) {
|
||||||
|
DrpApprovalHistory drpApprovalHistory = DrpApprovalHistory.builder()
|
||||||
|
.date(dateNow)
|
||||||
|
.drpApprovalId(c.getId())
|
||||||
|
.status("Dikirim")
|
||||||
|
.isDelete(false)
|
||||||
|
.build();
|
||||||
|
drpApprovalHistoryRepository.save(drpApprovalHistory);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return new EmptyResponse();
|
return new EmptyResponse();
|
||||||
}
|
}
|
||||||
|
@ -3,28 +3,40 @@ package com.iconplus.smartproc.service.approval;
|
|||||||
import com.iconplus.smartproc.exception.BusinessException;
|
import com.iconplus.smartproc.exception.BusinessException;
|
||||||
import com.iconplus.smartproc.helper.model.EmptyResponse;
|
import com.iconplus.smartproc.helper.model.EmptyResponse;
|
||||||
import com.iconplus.smartproc.helper.service.BaseService;
|
import com.iconplus.smartproc.helper.service.BaseService;
|
||||||
|
import com.iconplus.smartproc.model.entity.DrpApproval;
|
||||||
|
import com.iconplus.smartproc.model.entity.DrpApprovalHistory;
|
||||||
import com.iconplus.smartproc.model.request.DrpApprovalRequest;
|
import com.iconplus.smartproc.model.request.DrpApprovalRequest;
|
||||||
|
import com.iconplus.smartproc.repository.DrpApprovalHistoryRepository;
|
||||||
import com.iconplus.smartproc.repository.DrpApprovalRepository;
|
import com.iconplus.smartproc.repository.DrpApprovalRepository;
|
||||||
import com.iconplus.smartproc.repository.DrpRepository;
|
import com.iconplus.smartproc.repository.DrpRepository;
|
||||||
import com.iconplus.smartproc.util.Constants;
|
import com.iconplus.smartproc.util.Constants;
|
||||||
|
import org.apache.commons.lang3.BooleanUtils;
|
||||||
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.transaction.Transactional;
|
||||||
import java.sql.Date;
|
import java.sql.Date;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class PostDrpApprovalExecutionService implements BaseService<DrpApprovalRequest, EmptyResponse> {
|
public class PostDrpApprovalExecutionService implements BaseService<DrpApprovalRequest, EmptyResponse> {
|
||||||
|
|
||||||
private final DrpApprovalRepository drpApprovalRepository;
|
private final DrpApprovalRepository drpApprovalRepository;
|
||||||
private final DrpRepository drpRepository;
|
private final DrpRepository drpRepository;
|
||||||
|
private final DrpApprovalHistoryRepository drpApprovalHistoryRepository;
|
||||||
|
|
||||||
public PostDrpApprovalExecutionService(DrpApprovalRepository drpApprovalRepository,
|
public PostDrpApprovalExecutionService(DrpApprovalRepository drpApprovalRepository,
|
||||||
DrpRepository drpRepository) {
|
DrpRepository drpRepository,
|
||||||
|
DrpApprovalHistoryRepository drpApprovalHistoryRepository) {
|
||||||
this.drpApprovalRepository = drpApprovalRepository;
|
this.drpApprovalRepository = drpApprovalRepository;
|
||||||
this.drpRepository = drpRepository;
|
this.drpRepository = drpRepository;
|
||||||
|
this.drpApprovalHistoryRepository = drpApprovalHistoryRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
@Override
|
@Override
|
||||||
public EmptyResponse execute(DrpApprovalRequest input) {
|
public EmptyResponse execute(DrpApprovalRequest input) {
|
||||||
|
|
||||||
@ -40,27 +52,82 @@ public class PostDrpApprovalExecutionService implements BaseService<DrpApprovalR
|
|||||||
|
|
||||||
Date dateNow = Date.valueOf(LocalDate.now());
|
Date dateNow = Date.valueOf(LocalDate.now());
|
||||||
|
|
||||||
|
List<DrpApprovalHistory> drpApprovalHistoryList = new ArrayList<>();
|
||||||
|
var listDrpApproval = drpApprovalRepository.findByDrpIdAndIsDeleteFalse(input.getDrpId());
|
||||||
|
|
||||||
|
DrpApprovalHistory drpApprovalHistoryExecutor = DrpApprovalHistory.builder()
|
||||||
|
.drpApprovalId(drpApproval.getId())
|
||||||
|
.date(dateNow)
|
||||||
|
.status(BooleanUtils.isTrue(input.getIsApprove()) ? "Disetujui" : "Ditolak")
|
||||||
|
.isDelete(false)
|
||||||
|
.build();
|
||||||
|
drpApprovalHistoryList.add(drpApprovalHistoryExecutor);
|
||||||
|
|
||||||
if (StringUtils.equalsIgnoreCase(drpApproval.getLevel(), "VP")) {
|
if (StringUtils.equalsIgnoreCase(drpApproval.getLevel(), "VP")) {
|
||||||
drpApproval.setIsApprove(input.getIsApprove());
|
drpApproval.setIsApprove(input.getIsApprove());
|
||||||
drp.setVpApproveDate(dateNow);
|
drp.setVpApproveDate(dateNow);
|
||||||
drp.setApproveStatus(Constants.STATUS_APPROVAL_VP);
|
drp.setApproveStatus(Constants.STATUS_APPROVAL_VP);
|
||||||
|
drpApproval.setCatatan(input.getCatatan());
|
||||||
|
|
||||||
|
for (DrpApproval drpAppr : listDrpApproval) {
|
||||||
|
if (StringUtils.equalsIgnoreCase(drpAppr.getLevel(), "KOMITE")) {
|
||||||
|
DrpApprovalHistory drpApprovalHistory = DrpApprovalHistory.builder()
|
||||||
|
.drpApprovalId(drpApproval.getId())
|
||||||
|
.date(dateNow)
|
||||||
|
.status("Terkirim")
|
||||||
|
.isDelete(false)
|
||||||
|
.build();
|
||||||
|
drpApprovalHistoryList.add(drpApprovalHistory);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
} else if (StringUtils.equalsIgnoreCase(drpApproval.getLevel(), "DIREKTUR")) {
|
} else if (StringUtils.equalsIgnoreCase(drpApproval.getLevel(), "DIREKTUR")) {
|
||||||
|
|
||||||
|
if (ObjectUtils.isEmpty(drp.getKomiteApproveDate())) {
|
||||||
|
throw new BusinessException(Constants.ERR_CODE_10013,
|
||||||
|
Constants.ERR_TTL_10013,
|
||||||
|
String.format(Constants.ERR_MSG_10013, "KOMITE"));
|
||||||
|
}
|
||||||
|
|
||||||
drpApproval.setIsApprove(input.getIsApprove());
|
drpApproval.setIsApprove(input.getIsApprove());
|
||||||
drp.setDirekturApproveDate(dateNow);
|
drp.setDirekturApproveDate(dateNow);
|
||||||
drp.setApproveStatus(Constants.STATUS_APPROVAL_DIRUT);
|
drp.setApproveStatus(Constants.STATUS_APPROVAL_DIRUT);
|
||||||
|
drpApproval.setCatatan(input.getCatatan());
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
if (ObjectUtils.isEmpty(drp.getVpApproveDate())) {
|
||||||
|
throw new BusinessException(Constants.ERR_CODE_10013,
|
||||||
|
Constants.ERR_TTL_10013,
|
||||||
|
String.format(Constants.ERR_MSG_10013, "VP"));
|
||||||
|
}
|
||||||
|
|
||||||
var listKomiteApproval = drpApprovalRepository.getListKomiteApproval(input.getDrpId());
|
var listKomiteApproval = drpApprovalRepository.getListKomiteApproval(input.getDrpId());
|
||||||
if (listKomiteApproval.size() == 1) {
|
if (listKomiteApproval.size() == 1) {
|
||||||
drp.setApproveStatus(Constants.STATUS_REKOMENDASI_KOMITE);
|
drp.setApproveStatus(Constants.STATUS_REKOMENDASI_KOMITE);
|
||||||
}
|
}
|
||||||
drpApproval.setIsApprove(input.getIsApprove());
|
drpApproval.setIsApprove(input.getIsApprove());
|
||||||
|
drpApproval.setCatatan(input.getCatatan());
|
||||||
drp.setKomiteApproveDate(dateNow);
|
drp.setKomiteApproveDate(dateNow);
|
||||||
|
|
||||||
|
for (DrpApproval drpAppr : listDrpApproval) {
|
||||||
|
if (StringUtils.equalsIgnoreCase(drpAppr.getLevel(), "DIREKTUR")) {
|
||||||
|
DrpApprovalHistory drpApprovalHistory = DrpApprovalHistory.builder()
|
||||||
|
.drpApprovalId(drpApproval.getId())
|
||||||
|
.date(dateNow)
|
||||||
|
.status("Terkirim")
|
||||||
|
.isDelete(false)
|
||||||
|
.build();
|
||||||
|
drpApprovalHistoryList.add(drpApprovalHistory);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
drpApprovalRepository.save(drpApproval);
|
drpApprovalRepository.save(drpApproval);
|
||||||
drpRepository.save(drp);
|
drpRepository.save(drp);
|
||||||
|
drpApprovalHistoryRepository.saveAll(drpApprovalHistoryList);
|
||||||
|
|
||||||
return new EmptyResponse();
|
return new EmptyResponse();
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,15 @@
|
|||||||
package com.iconplus.smartproc.service.print;
|
package com.iconplus.smartproc.service.print;
|
||||||
|
|
||||||
|
import com.iconplus.smartproc.exception.BusinessException;
|
||||||
import com.iconplus.smartproc.helper.model.Pagination;
|
import com.iconplus.smartproc.helper.model.Pagination;
|
||||||
import com.iconplus.smartproc.helper.service.BaseService;
|
import com.iconplus.smartproc.helper.service.BaseService;
|
||||||
import com.iconplus.smartproc.model.projection.DrpView;
|
import com.iconplus.smartproc.model.projection.DrpView;
|
||||||
import com.iconplus.smartproc.model.request.PrintDrpRequest;
|
import com.iconplus.smartproc.model.request.PrintDrpRequest;
|
||||||
import com.iconplus.smartproc.model.response.GetListPrintDrpResponse;
|
import com.iconplus.smartproc.model.response.GetListPrintDrpResponse;
|
||||||
import com.iconplus.smartproc.model.response.PrintDrpResponse;
|
import com.iconplus.smartproc.model.response.PrintDrpResponse;
|
||||||
|
import com.iconplus.smartproc.repository.DrpApprovalRepository;
|
||||||
import com.iconplus.smartproc.repository.DrpRepository;
|
import com.iconplus.smartproc.repository.DrpRepository;
|
||||||
|
import com.iconplus.smartproc.util.Constants;
|
||||||
import org.apache.commons.lang3.BooleanUtils;
|
import org.apache.commons.lang3.BooleanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@ -17,9 +20,11 @@ import java.util.List;
|
|||||||
public class GetListPrintDrpService implements BaseService<PrintDrpRequest, GetListPrintDrpResponse> {
|
public class GetListPrintDrpService implements BaseService<PrintDrpRequest, GetListPrintDrpResponse> {
|
||||||
|
|
||||||
private DrpRepository drpRepository;
|
private DrpRepository drpRepository;
|
||||||
|
private DrpApprovalRepository drpApprovalRepository;
|
||||||
public GetListPrintDrpService(DrpRepository drpRepository) {
|
public GetListPrintDrpService(DrpRepository drpRepository,
|
||||||
|
DrpApprovalRepository drpApprovalRepository) {
|
||||||
this.drpRepository = drpRepository;
|
this.drpRepository = drpRepository;
|
||||||
|
this.drpApprovalRepository = drpApprovalRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -35,8 +40,16 @@ public class GetListPrintDrpService implements BaseService<PrintDrpRequest, GetL
|
|||||||
.tahun(drpView.getTahun())
|
.tahun(drpView.getTahun())
|
||||||
.printDate(drpView.getPrintDate())
|
.printDate(drpView.getPrintDate())
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
var drpApprovalOptional = drpApprovalRepository.findByDrpIdAndLevelAndIsDeleteFalse(drpView.getId(), "DIREKTUR")
|
||||||
|
.orElseThrow(()-> new BusinessException(Constants.ERR_CODE_10001,
|
||||||
|
Constants.ERR_TTL_10001,
|
||||||
|
String.format(Constants.ERR_MSG_10001, "DRP Approvel", drpView.getId())));
|
||||||
|
|
||||||
if (BooleanUtils.isTrue(drpView.getIsPrint())) {
|
if (BooleanUtils.isTrue(drpView.getIsPrint())) {
|
||||||
printDrpResponse.setStatus("Tercetak");
|
printDrpResponse.setStatus("Tercetak");
|
||||||
|
} else if (drpApprovalOptional.getIsApprove() == null) {
|
||||||
|
printDrpResponse.setStatus("Belum Dicetak");
|
||||||
} else {
|
} else {
|
||||||
printDrpResponse.setStatus("Belum Bisa Dicetak");
|
printDrpResponse.setStatus("Belum Bisa Dicetak");
|
||||||
}
|
}
|
||||||
|
@ -52,6 +52,10 @@ public class Constants {
|
|||||||
public static final String ERR_TTL_10012 = "Proses Gagal";
|
public static final String ERR_TTL_10012 = "Proses Gagal";
|
||||||
public static final String ERR_MSG_10012 = "Pastikan directori penimpanan file tersedia : %s";
|
public static final String ERR_MSG_10012 = "Pastikan directori penimpanan file tersedia : %s";
|
||||||
|
|
||||||
|
public static final String ERR_CODE_10013 = "10013";
|
||||||
|
public static final String ERR_TTL_10013 = "Gagal Approve";
|
||||||
|
public static final String ERR_MSG_10013 = "Silahkan menunggu appoval %s terlebih dahulu";
|
||||||
|
|
||||||
public static final String ERR_CODE_40041 = "40041";
|
public static final String ERR_CODE_40041 = "40041";
|
||||||
public static final String ERR_TTL_40041 = "Terjadi Gangguan";
|
public static final String ERR_TTL_40041 = "Terjadi Gangguan";
|
||||||
public static final String ERR_MSG_40041 = "Masalah Koneksi System";
|
public static final String ERR_MSG_40041 = "Masalah Koneksi System";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user