====== 명함관리 ======
===== 개요 =====
시스템에 속한 다른 사용자가 등록한 명함을 조회하여 사용자의 명합리스트에 등록하거나 자신이 명함을 공개, 비공개로 등록하여
다른 사용자가 활용할 수 있도록 하는 기능을 제공한다.\\
명함을 등록하여 활용하는 방법은 직접 등록하는 방법과 다른 사람이 공개로 지정하여 등록한 명함들을 조회한 후 사용등록하는 방법 2가지를 제공한다.
본인이 직접 등록하면서 공개여부를 공개로 한 명함은 다른 사람 또한 사용등록을 통해 활용할 수 있는 것이다.
* 기능흐름
{{:egovframework:com:cop:ncrdoutline.jpg?740|명함관리 업무흐름}}
===== 설명 =====
명함관리는 명함을 생성하는 **명함등록** 기능, 다른 사람이 공개한 명함을 확인하고 내 명함으로 등록할 수 있는 **명함 목록조회** 기능, 내가 등록한 명함을 확인하는 조회할 수 있는 **내 명함목록** 기능의 3가지 기능을 제공한다.
==== 패키지 참조 관계 ====
명함관리 패키지는 요소기술의 공통(cmm) 패키지에 대해서만 직접적인 함수적 참조 관계를 가진다. 하지만, 컴포넌트 배포 시 오류 없이 실행되기 위하여 패키지 간의 참조관계에 따라 포맷/날짜/계산 패키지와 함께 배포 파일을 구성한다.
* 패키지 간 참조 관계 : [[egovframework:com:v2:init_pkg_dependency#일정관리, 문자메시지, 주소록 외|협업-일정관리, 문자메시지, 주소록 외 Package Dependency]]
==== 관련소스 ====
^유형^대상소스^비고^
|Controller|egovframework.com.cop.ncm.web.EgovNcrdManageController.java|명함관리를 위한 컨트롤러 클래스|
|Service|egovframework.com.cop.ncm.service.EgovNcrdManageService.java|명함관리를 위한 서비스 인터페이스|
|ServiceImpl|egovframework.com.cop.ncm.service.impl.EgovNcrdManageService.java|명함관리를 위한 서비스 구현 클래스|
|Model|egovframework.com.cop.ncm.service.NameCard.java|명함관리를 위한 모델 클래스|
|Model|egovframework.com.cop.ncm.service.NameCardUser.java|명함사용자관리를 위한 모델 클래스|
|VO|egovframework.com.cop.ncm.service.NameCardVO.java|명함관리를 위한 VO 클래스|
|DAO|egovframework.com.cop.ncm.service.impl.NcrdManageDAO.java|명함관리를 위한 데이터처리 클래스|
|JSP|/WEB-INF/jsp/egovframework/com/cop/ncm/EgovMyNcrdList.jsp|내 명함목록 조회를 위한 jsp페이지|
|JSP|/WEB-INF/jsp/egovframework/com/cop/ncm/EgovNcrdInqirePopup.jsp|명함 상세정보 조회를 위한 팝업 jsp페이지|
|JSP|/WEB-INF/jsp/egovframework/com/cop/ncm/EgovNcrdList.jsp.jsp|공개된 명함 조회를 위한 jsp페이지|
|JSP|/WEB-INF/jsp/egovframework/com/cop/ncm/EgovNcrdRegist.jsp.jsp|명함 등록을 위한 jsp페이지|
|JSP|/WEB-INF/jsp/egovframework/com/cop/ncm/EgovNcrdUpdt.jsp.jsp|생성된 명함 수정을 위한 jsp페이지|
|Query XML|resources/egovframework/mapper/com/cop/ncm/EgovNcrd_SQL_altibase.xml|명함관리를 위한 Altibase용 Query XML|
|Query XML|resources/egovframework/mapper/com/cop/ncm/EgovNcrd_SQL_cubrid.xml|명함관리를 위한 Cubrid용 Query XML|
|Query XML|resources/egovframework/mapper/com/cop/ncm/EgovNcrd_SQL_maria.xmll|명함관리를 위한 MariaDB용 Query XML|
|Query XML|resources/egovframework/mapper/com/cop/ncm/EgovNcrd_SQL_mysql.xml|명함관리를 위한 MySQL용 Query XML|
|Query XML|resources/egovframework/mapper/com/cop/ncm/EgovNcrd_SQL_oracle.xml|명함관리를 위한 Oracle용 Query XML|
|Query XML|resources/egovframework/mapper/com/cop/ncm/EgovNcrd_SQL_postgres.xml|명함관리를 위한 PostgreSQL용 Query XML|
|Query XML|resources/egovframework/mapper/com/cop/ncm/EgovNcrd_SQL_tibero.xml|명함관리를 위한 Tibero용 Query XML|
|Query XML|resources/egovframework/mapper/com/cop/ncm/EgovNcrd_SQL_goldilocks.xml|명함관리를 위한 Goldilocks용 Query XML|
|Validator Rule XML|resources/egovframework/validator/validator-rules.xml|Validator Rule을 정의한 XML|
|Validator XML|resources/egovframework/validator/com/cop/ncm/EgovNcrdRegist.xml|명함관리를 위한 Validator XML|
|Message properties|resources/egovframework/message/com/cop/ncm/message_en.properties|명함관리를 위한 Message properties(영문)|
|Message properties|resources/egovframework/message/com/cop/ncm/message_ko.properties|명함관리를 위한 Message properties(한글)|
|Idgen XML|resources/egovframework/spring/com/idgn/context-idgn-Ncrd.xml|명함관리를 위한 Id생성 Idgen XML|
==== 클래스 다이어그램 ====
{{:egovframework:com:v3.9:cop:ncm:cd.png?740|}}
==== ID Generation ====
=== ID Generation 관련 DDL 및 DML ===
* ID Generation Service를 활용하기 위해서 Sequence 저장테이블인 COMTECOPSEQ에 **NCRD_ID** 항목을 추가해야 한다.
CREATE TABLE COMTECOPSEQ ( table_name varchar(16) NOT NULL,
next_id DECIMAL(30) NOT NULL,
PRIMARY KEY (table_name)
);
INSERT INTO COMTECOPSEQ VALUES ('NCRD_ID','0');
=== ID Generation 환경설정(context-idgn-Ncrd.xml) ===
==== 관련테이블 ====
^테이블명^테이블명(영문)^비고^
|명함정보속성|COMTNNCRD|명함의 속성정보를 관리한다.|
|명함사용자속성|COMTNNCRDUSER|명함의 사용정보를 관리한다.|
===== 관련기능 =====
명함관리는 **명함 목록조회**, **명함등록**, **명함수정**, **명함정보 조회팝업** 기능으로 구분되어 있다.
==== 명함 목록조회 ====
=== 비즈니스 규칙 ===
내 명함으로 등록하기 위해서는 사용등록 버튼을 선택하여 사용 등록을 처리해야 한다. 사용등록이 되면 **명함목록** 화면으로 이동된다.
=== 관련코드 ===
N/A
=== 관련화면 및 수행매뉴얼 ===
^Action^URL^Controller method^QueryID^
|목록조회|/cop/ncm/selectNcrdInfs.do|selectNcrdItems|"NcrdManageDAO.selectNcrdItemList",|
| | | |"NcrdManageDAO.selectNcrdItemListCnt"|
명함 목록은 페이지 당 10건씩 조회되며 페이징은 10페이지씩 이루어진다.
검색조건은 이름, 회사명, 부서명에 대해서 수행된다. 페이지 당 검색 범위를 변경하고자 하는 경우
context-properties.xml 파일의 pageUnit, pageSize를 변경한다.(단 해당 설정은 전체 공통서비스 기능에 영향을 미친다.)
{{:egovframework:com:v3.9:cop:ncm:list.png|}}
조회: 조회하기 위해서는 상단의 검색조건을 선택 후 해당하는 검색문자를 입력 후 조회 버튼을 클릭한다.
==== 명함등록 ====
=== 비즈니스 규칙 ===
명함에 대한 상세내용과 공개여부 등을 선택하여 명함을 등록한다. 등록이 성공되면 **내 명함목록** 화면으로 이동한다.\\
공개여부가 공개인 경우는 다른 사람이 해당 명함 정보를 사용할 수 있게 된다.
=== 관련코드 ===
N/A
=== 관련화면 및 수행매뉴얼 ===
^Action^URL^Controller method^QueryID^
|등록화면|/cop/ncm/addNcrdInf.do|addNcrdItem| |
|등록|/cop/ncm/insertNcrdInf.do|insertNcrdItem|"NcrdManageDAO.insertNcrdItem"|
{{:egovframework:com:v3.9:cop:ncm:insert.png|}}
목록: **명함목록** 화면으로 이동한다. \\
등록: 입력한 명함 정보들이 저장 처리된다.
==== 내 명함목록 ====
=== 비즈니스 규칙 ===
검색조건은 이름, 회사명, 부서명에 대해서 수행되며, 명함 이름 선택시 명함정보를 수정할 수 있는 **명함 수정** 화면으로 이동한다.
=== 관련코드 ===
N/A
=== 관련화면 및 수행매뉴얼 ===
^Action^URL^Controller method^QueryID^
|목록조회|/cop/ncm/selectMyNcrdUseInf.do|selectNcrdUseInf|"NcrdManageDAO.selectNcrdUseInfs",|
| | | |"NcrdManageDAO.selectNcrdUseInfsCnt"|
{{:egovframework:com:v3.9:cop:ncm:mylist.png|}}
조회: 조회하기 위해서는 상단의 검색조건을 선택 후 해당하는 검색문자를 입력 후 조회 버튼을 클릭한다.
==== 명함 수정 ====
=== 비즈니스 규칙 ===
명함에 대한 상세내용을 변경한 뒤 수정 버튼을 누르면 명함 정보가 수정되고 **내 명함목록** 화면으로 이동한다.
=== 관련코드 ===
N/A
=== 관련화면 및 수행매뉴얼 ===
^Action^URL^Controller method^QueryID^
|수정|/cop/ncm/updateNcrdInf.do|updateNcrdItem|"NcrdManageDAO.updateNcrdItem"|
{{:egovframework:com:v3.9:cop:ncm:update.png|}}
수정: 수정된 정보들이 저장 처리된다. \\
목록: **명함목록** 화면으로 이동한다.
==== 명함정보 상세조회 ====
=== 비즈니스 규칙 ===
공개된 명함을 조회할 수 있는 **명함 목록조회**화면에서 명함 이름을 선택하면 명함에 대한 상세한 정보를 조회한다.
=== 관련코드 ===
N/A
=== 관련화면 및 수행매뉴얼 ===
^Action^URL^Controller method^QueryID^
|상세조회|/cop/ncm/selectNcrdInfPopup.do|selectNcrdItemforPop|"NcrdManageDAO.selectNcrdItem"|
|삭제|/cop/ncm/deleteNcrdInf.do|deleteNcrdItem|"NcrdManageDAO.deleteNcrdItemUser"|
| | | |"NcrdManageDAO.deleteNcrdItem"|
{{:egovframework:com:v3.9:cop:ncm:detail.png|}}
삭제: 삭제버튼 클릭 시 삭제처리를 할 수 있다. \\
목록: **명함목록** 화면으로 이동한다.