대망의 전자결재 기능구현을 시작했다..!
결재작성부분에서 넣고 싶었던 기능은
1. 결재문서 타입을 클릭하면 해당 문서 양식 출력
2. 결재라인 지정시 사원검색 칸을 이용하여 선택시 문서양식 결재라인 칸에 자동으로 넣기
이다.
1. 결재문서 타입을 클릭하면 해당 문서 양식 출력하기
해당부분은 제이쿼리를 이용해서 간단하게 버튼 클릭시 display : none -> display : block 를 주었다.
자바스크립트는 여러모로 쓸모가 많은것 같다.
2. 결재라인 지정시 사원검색 칸을 이용하여 선택시 문서양식 결재라인 칸에 자동으로 넣기
여기서 굉장히 많이 헤맸다.
품의서 양식의 결재라인 지정칸에 입력할때, ajax를 통해 서버에서 직원들의 list를 가져와 검색하는 기능이 필요했는데,
페이지를 이동하지않고 스크립트안에서 첫번째 결재자, 두번째 결재자, 세번째 결재자에 각각 data값들을 넣어주는 과정이 굉장히 까다로웠다.
핵심은,
첫번째칸 두번째칸 세번째칸을 구분할수있도록 동적으로 변수를 선언해줌과 동시에
ajax를 통해 서버에서 가져온 해당 변수의 데이터값을 담아둘 <input type="hidden">의 name과 value값또한 스크립트안에서 변수를 선언해서 해당칸에 해당하는 <div>요소의 id값으로 지정해줌으로써 첫번째 결재자, 두번째 결재자, 세번째 결재자를 구분할수있도록 하였다.
그리고 변수값들이 자꾸 누적되어 이를 방지하기위해 스크립트 구문 외부에서 변수를 선언해주었다.
결과적으로 브라우저의 html요소를 확인해보면, 내가 선택한 직원들이 알맞게 각각의 name의 <input>값을 가지게되어
이들을 구분할수있게되었다!
이제, 작성된 입력값과 결재자들의 데이터를 가지고 작성하게 되면 해당 데이터들을 DB로 insert하기만 하면 작성기능은 완료다.
이는 간단하게 ajax를 통해 서버에서 처리해주었다.
mybatis를 통해 DB에 insert하면서 Dto의 멤버들이 많아지면 많아질수록 자동 매핑이 굉장히 편하다는것을 느꼈다.
다음으로 구현해야할 기능은
결재 라인에 해당하는 직원을 구분하여 승인 또는 반려를 할수있도록 해야한다.
승인과 반려는 단순히 DB에 update를 통해 수정하면 되지만,
가장 까다로운 부분은
- 결재라인에 해당하는 직원은 누구인지?
- 결재라인에 해당하는 직원중 결재차례는?
- 이전 결재자가 승인을 눌러야만 다음 결재자 차례로 넘어가고, 반려를 누르면 거기서 중단
위의 조건에 맞는 결재자와 결재문서를 가지고올수만 있다면 모든 문제가 해결되는데,
해당 기능은 DB의 쿼리문을 어떻게 짜느냐가 중요할것같다.
'Category > Project' 카테고리의 다른 글
[팀프로젝트] 15일차 - Sse를 이용해 실시간 알림기능 구현2 (0) | 2024.02.02 |
---|---|
[팀프로젝트] 14일차 - SSE를 사용한 실시간 알림 기능 구현 (1) | 2024.02.01 |
[팀프로젝트] Mybatis 매핑에러 - BindingException (0) | 2024.01.29 |
[팀프로젝트] 10일차 - 메시지 기능 구현 (2) | 2024.01.28 |
[Spring] 스프링 시큐리티 사용하기 (1) | 2024.01.25 |