Initial commit
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
= 내부 결재
|
||||
|
||||
== 개요
|
||||
SDL에서 제공하는 내부결재 기능. +
|
||||
결재를 위한 문서 Entity등록과 내부결재 후처리를 위한 Interceptor 클래스 구현으로 간단하게 결재 기능을 구현할 수 있다. +
|
||||
샘플로 제공하는 화면의 결재 스텝을 지정하는 Component를 필요한 결재 문서 화면에 적용하여 사용할 수 있으며 샘플 Controller를 참조하여 문서와 결재 스텝 목록을 저장하여 approvalService.submit 메소드를 호출하면 된다.
|
||||
|
||||
== Table
|
||||
* 결재 정보 : TN_CF_APPROVAL
|
||||
* 결재 스텝 정보 : TN_CF_APPROVAL_STEP
|
||||
* Sample Document : TN_CF_SAMPLE_APPROVAL_INTERNAL_DOCUMENT
|
||||
|
||||
== API
|
||||
.ApprovalController.java
|
||||
|
||||
. 상신함 목록 조회(내부 결재) +
|
||||
GET /internal-approvals/submit +
|
||||
Query ID : selectInternalApprovalPagingListBySubmit
|
||||
* 사용자가 상신한 내부결재 문서를 조회한다.
|
||||
|
||||
. 미결함 목록 조회(내부 결재) +
|
||||
GET /internal-approvals/not-approve +
|
||||
Query ID : selectInternalApprovalPagingListByNotApprove
|
||||
* 미결중인 내부결재 문서를 조회한다.
|
||||
|
||||
. 기결함 목록 조회(내부 결재) +
|
||||
GET /internal-approvals/approved +
|
||||
Query ID : selectInternalApprovalPagingListByApproved
|
||||
* 사용자가 결재 완료한 내부결재 문서를 조회한다.
|
||||
|
||||
. 통보함 목록 조회(내부 결재) +
|
||||
GET /internal-approvals/notice +
|
||||
Query ID : selectInternalApprovalPagingListByNotice
|
||||
* 사용자가 통보 대상인 결재문서를 조회한다.
|
||||
|
||||
. 내부결재 문서 상신 취소 +
|
||||
POST /internal-approvals/{approvalRequestId}/cancel +
|
||||
Service : cancelInternalApproval
|
||||
Query ID : updateInternalApprovalStep
|
||||
* 결재 문서 상신을 취소한다.
|
||||
|
||||
. 내부결재 문서 결재 승인 또는 합의 +
|
||||
POST /internal-approvals/{approvalRequestId}/confirm +
|
||||
Service : confirmInternalApproval
|
||||
Query ID : updateInternalApprovalStep
|
||||
* 결재 문서 승인 또는 합의 한다.
|
||||
|
||||
. 내부결재 문서 반려 +
|
||||
POST /internal-approvals/{approvalRequestId}/reject +
|
||||
Service : rejectInternalApproval
|
||||
Query ID : updateInternalApprovalStep
|
||||
* 결재 문서를 반려 한다.
|
||||
|
||||
.ApprovalSampleController.java
|
||||
|
||||
. 내부결재 문서 목록 조회(페이징) +
|
||||
GET /internal-approval/sample-document-with-paging +
|
||||
Query ID : selectSampleApprovalDocumentPagingList
|
||||
* Sample Document 문서 목록을 조회한다.
|
||||
|
||||
. 내부 결재 문서 상신(Sample Document) +
|
||||
POST /internal-approval/submit/sample-document
|
||||
* Knox 결재 정보 동기화 로직을 제외한 다른 부분은 Knox 결재 상신과 동일하다.
|
||||
* 동기화 배치 로직 대상에서 제외된다.
|
||||
* 내부결재 전후 처리 로직은 문서 타입별로 Interceptor 클래스를 구현하여 처리한다.
|
||||
[source,java]
|
||||
----
|
||||
@Log4j2
|
||||
@ApprovalDocumentType(names = {"internalSample"})
|
||||
public class InternalApprovalSampleInterceptor implements ApprovalInterceptor {
|
||||
|
||||
@Autowired
|
||||
InternalApprovalSampleService internalApprovalSampleService;
|
||||
@Override
|
||||
public void afterSubmit(Approval approval, List<ApprovalStep> approvalStepList, Map<String, Object> attribute) {
|
||||
log.debug("execute ApprovalSampleInterceptor afterSubmit");
|
||||
//상신 후 문서 상태 업데이트
|
||||
internalApprovalSampleService.updateSampleApprovalDocument(approval.getDbDocId(), ApprovalDocStatus.INPROCESS);
|
||||
}
|
||||
--생략--
|
||||
}
|
||||
----
|
||||
|
||||
== 화면
|
||||
|
||||
. 내부결재 문서 상신함
|
||||
|
||||
image::internalApproval_01.png[]
|
||||
image::internalApproval_05.png[]
|
||||
* 사용자가 상신한 내부결재 문서 목록을 조회한다.
|
||||
* 상세화면에 진입하여 상신취소가 가능하다.
|
||||
|
||||
[start=2]
|
||||
. 내부결재 문서 미결함
|
||||
|
||||
image::internalApproval_02.png[]
|
||||
image::internalApproval_06.png[]
|
||||
* 사용자의 결재 차순에 있는 내부결재 문서 목록을 조회한다.
|
||||
* 상세화면에 진입하여 승인/합의 또는 반려가 가능하다.
|
||||
|
||||
[start=3]
|
||||
. 내부결재 문서 기결함
|
||||
|
||||
image::internalApproval_03.png[]
|
||||
* 사용자의 결재 완료한 내부결재 문서 목록을 조회한다.
|
||||
|
||||
[start=4]
|
||||
. 내부결재 문서 통보함
|
||||
|
||||
image::internalApproval_04.png[]
|
||||
* 결재 완료 후 사용자에게 통보된 내부결재 문서 목록을 조회한다.
|
||||
Reference in New Issue
Block a user