====== 온라인POLL관리======

===== 개요 =====
사이트에서 번번하게 일어나는 간단한 설문 조사를 하기 위한 컴포넌트로서 온라인POLL담당자가 온라인POLL정보 별 온라인POLL항목을 생성 하고 관리하는 온라인POLL관리 기능과 온라인POLL참여자(기업회원, 일반회원)가 투표 및 통계를 확인 할수 있는 온라인POLL참여 기능을 제공한다.


  * 컴포넌트 구성

 {{:egovframework:com:uss:olp:opm:온라인poll컴포넌트구성도.jpg|온라인poll 구성도}}


  * 기능흐름

{{:egovframework:com:uss:olp:opm:온라인poll컴포넌트기능흐름도pg.jpg?740|온라인poll 기능흐름}}

===== 설명 =====

==== 패키지 참조 관계 ====

온라인POLL관리 패키지(opm)는 요소기술의 공통 패키지(cmm)에 대해서만 직접적인 함수적 참조 관계를 가진다. 하지만, 컴포넌트 배포 시 오류 없이 실행되기 위하여 패키지 간의 참조관계에 따라 온라인POLL관리 패키지(opp), 온라인POLL관리 패키지(opr), 달력 패키지와 함께 배포 파일을 구성한다. 


  * 패키지 간 참조 관계 : [[egovframework:com:v2:init_pkg_dependency#사용자지원|사용자지원 Package Dependency]]


==== 관련소스 ====

=== 온라인POLL 관리 ===

^유형^대상소스명^비고^
|Controller|egovframework.com.uss.olp.opm.web.EgovOnlinePollManageController.java|온라인POLL관리 Controller Class|
|Service|egovframework.com.uss.olp.opm.service.EgovOnlinePollManageService.java|온라인POLL관리 Service Class|
|ServiceImpl|egovframework.com.uss.olp.opm.service.impl.EgovOnlinePollManageServiceImpl.java|온라인POLL관리 ServiceImpl Class|
|Model|egovframework.com.uss.olp.opm.service.OnlinePollItem.java|온라인POLL항목 Model Class|
|Model|egovframework.com.uss.olp.opm.service.OnlinePollManage.java|온라인POLL관리  VO Class|
|VO|egovframework.com.cmm.ComDefaultVO.java|검색 VO Class|
|DAO|egovframework.com.uss.olp.opm.service.impl.OnlinePollManageDao.java|온라인POLL관리 Dao Class|
|JSP|/WEB-INF/jsp/egovframework/com/uss/olp/opm/EgovOnlinePollManageList.jsp|온라인POLL관리 목록조회 페이지|
|JSP|/WEB-INF/jsp/egovframework/com/uss/olp/opm/EgovOnlinePollManageRegist.jsp|온라인POLL관리 등록 페이지|
|JSP|/WEB-INF/jsp/egovframework/com/uss/olp/opm/EgovOnlinePollManageUpdt.jsp|온라인POLL관리 수정 페이지|
|JSP|/WEB-INF/jsp/egovframework/com/uss/olp/opm/EgovOnlinePollManageDetail.jsp|온라인POLL관리 상세조회 페이지|
|QUERY XML|resources/egovframework/sqlmap/com/uss/olp/opm/EgovOnlinePollManage_SQL_mysql.xml|온라인POLL관리 MySQL용 QUERY XML|
|QUERY XML|resources/egovframework/sqlmap/com/uss/olp/opm/EgovOnlinePollManage_SQL_cubrid.xml|온라인POLL관리 Cubrid용 QUERY XML|
|QUERY XML|resources/egovframework/sqlmap/com/uss/olp/opm/EgovOnlinePollManage_SQL_oracle.xml|온라인POLL관리 Oracle용 QUERY XML|
|QUERY XML|resources/egovframework/sqlmap/com/uss/olp/opm/EgovOnlinePollManage_SQL_tibero.xml|온라인POLL관리 Tibero용 QUERY XML|
|QUERY XML|resources/egovframework/sqlmap/com/uss/olp/opm/EgovOnlinePollManage_SQL_altibase.xml|온라인POLL관리 Altibase용 QUERY XML|
|Validator XML|resources/egovframework/validator/com/uss/olp/opm/EgovOnlinePollManage.xml|온라인POLL관리 Validator XML|
|Message properties|resources/egovframework/message/com/uss/olp/opm/message_ko.properties|온라인POLL관리 Message properties(한글)|
|Message properties|resources/egovframework/message/com/uss/olp/opm/message_en.properties|온라인POLL관리 Message properties(영문)|
|Idgen XML|resources/egovframework/spring/idgn/context-idgn-OnlinePollManage.xml|온라인POLL관리 Id생성 Idgen XML|

=== 온라인POLL 참여 ===

^유형^대상소스명^비고^
|Controller|egovframework.com.uss.olp.opp.web.EgovOnlinePollPartcptnController.java|온라인POLL참여 Controller Class|
|Service|egovframework.com.uss.olp.opp.service.EgovOnlinePollPartcptnService.java|온라인POLL참여 Service Class|
|ServiceImpl|egovframework.com.uss.olp.opp.service.impl.EgovOnlinePollPartcptnServiceImpl.java|온라인POLL참여 ServiceImpl Class|
|Model|egovframework.com.uss.olp.opp.service.OnlinePollPartcptn.java|온라인POLL참여 Model Class|
|DAO|egovframework.com.uss.olp.opp.service.impl.OnlinePollPartcptnDao.java|온라인POLL참여 Dao Class|
|JSP|/WEB-INF/jsp/egovframework/com/uss/olp/opp/EgovOnlinePollPartcptnList.jsp|온라인POLL참여 목록조회 페이지|
|JSP|/WEB-INF/jsp/egovframework/com/uss/olp/opp/EgovOnlinePollPartcptnMainList.jsp.jsp|온라인POLL 메인 목록 페이지|
|JSP|/WEB-INF/jsp/egovframework/com/uss/olp/opp/EgovOnlinePollPartcptnRegist.jsp|온라인POLL참여 등록 페이지|
|JSP|/WEB-INF/jsp/egovframework/com/uss/olp/opp/EgovOnlinePollPartcptnStatistics.jsp|온라인POLL참여 통계 페이지|
|QUERY XML|/egovframework/sqlmap/com/uss/olp/opp/EgovOnlinePollPartcptn_SQL_mysql.xml|온라인POLL참여 MySQL용 QUERY XML|
|QUERY XML|/egovframework/sqlmap/com/uss/olp/opp/EgovOnlinePollPartcptn_SQL_cubrid.xml|온라인POLL참여 Cubrid용 QUERY XML|
|QUERY XML|/egovframework/sqlmap/com/uss/olp/opp/EgovOnlinePollPartcptn_SQL_oracle.xml|온라인POLL참여 Oracle용 QUERY XML|
|QUERY XML|/egovframework/sqlmap/com/uss/olp/opp/EgovOnlinePollPartcptn_SQL_tibero.xml|온라인POLL참여 Tibero용 QUERY XML|
|QUERY XML|/egovframework/sqlmap/com/uss/olp/opp/EgovOnlinePollPartcptn_SQL_altibase.xml|온라인POLL참여 Altibase용 QUERY XML|
|Message properties|resources/egovframework/message/com/uss/olp/opp/message_ko.properties|온라인POLL참여 Message properties(한글)|
|Message properties|resources/egovframework/message/com/uss/olp/opp/message_en.properties|온라인POLL참여 Message properties(영문)|
|Idgen XML|resources/egovframework/spring/idgn/context-idgn-OnlinePollManage.xml|온라인POLL참여 Id생성 Idgen XML|


=== 온라인POLL 결과 ====

^유형^대상소스명^비고^
|Controller|egovframework.com.uss.olp.opr.web.EgovOnlinePollResultController.java|온라인POLL관리 Controller Class|
|Service|egovframework.com.uss.olp.opr.service.EgovOnlinePollResultService.java|온라인POLL관리 Service Class|
|ServiceImpl|egovframework.com.uss.olp.opr.service.impl.EgovOnlinePollResultServiceImpl.java|온라인POLL결과 ServiceImpl Class|
|Model|egovframework.com.uss.olp.opr.service.OnlinePollResult.java|온라인POLL결과  VO Class|
|DAO|egovframework.com.uss.olp.opr.service.impl.OnlinePollResultDao.java|온라인POLL관리 Dao Class|
|JSP|/WEB-INF/jsp/egovframework/com/uss/olp/opr/EgovOnlinePollResultList.jsp|온라인POLL결과 목록조회 페이지|
|QUERY XML|resources/egovframework/sqlmap/com/uss/olp/opr/EgovOnlinePollResult_SQL_mysql.xml|온라인POLL결과 MySQL용 QUERY XML|
|QUERY XML|resources/egovframework/sqlmap/com/uss/olp/opr/EgovOnlinePollResult_SQL_cubrid.xml|온라인POLL결과 Cubrid용 QUERY XML|
|QUERY XML|resources/egovframework/sqlmap/com/uss/olp/opr/EgovOnlinePollResult_SQL_oracle.xml|온라인POLL결과 Oracle용 QUERY XML|
|QUERY XML|resources/egovframework/sqlmap/com/uss/olp/opr/EgovOnlinePollResult_SQL_tibero.xml|온라인POLL결과 Tibero용 QUERY XML|
|QUERY XML|resources/egovframework/sqlmap/com/uss/olp/opr/EgovOnlinePollResult_SQL_altibase.xml|온라인POLL결과 Altibase용 QUERY XML|
|Idgen XML|resources/egovframework/spring/idgn/context-idgn-OnlinePollResult.xml|온라인POLL결과 Id생성 Idgen XML|


==== 클래스 다이어그램 ==== 

=== 온라인POLL관리 ===

{{:egovframework:com:v2:uss:온라인poll관리_클래스다이어그램.jpg?740|}}

=== 온라인POLL결과 === 

{{:egovframework:com:v2:uss:온라인poll결과_클래스다이어그램.jpg?740|}}
 

=== 온라인POLL참여 === 

{{:egovframework:com:v2:uss:온라인poll참여_클래스다이어그램.jpg?740|}}

==== ID Generation ====
=== ID Generation 관련 DDL 및 DML ===
  * ID Generation Service를 활용하기 위해서 Sequence 저장테이블인  COMTECOPSEQ에 **POLL_MGR_ID**, **POLL_IEM_ID**, **POLL_RUT_ID** 항목을 추가해야 한다. 
 <code sql>
  CREATE TABLE COMTECOPSEQ
 (
	TABLE_NAME            VARCHAR(20) NOT NULL,
	NEXT_ID               NUMERIC(30) NULL,
	 PRIMARY KEY (TABLE_NAME)
 );
  INSERT INTO COMTECOPSEQ VALUES('POLL_MGR_ID','1');

  CREATE TABLE COMTECOPSEQ
 (
	TABLE_NAME            VARCHAR(20) NOT NULL,
	NEXT_ID               NUMERIC(30) NULL,
	 PRIMARY KEY (TABLE_NAME)
 );  
  INSERT INTO COMTECOPSEQ VALUES('POLL_IEM_ID','1');

  CREATE TABLE COMTECOPSEQ
 (
	TABLE_NAME            VARCHAR(20) NOT NULL,
	NEXT_ID               NUMERIC(30) NULL,
	 PRIMARY KEY (TABLE_NAME)
 );  
  INSERT INTO COMTECOPSEQ VALUES('POLL_RUT_ID','1');
 </code>

=== ID Generation 환경설정(context-idgn-OnlinePollManage.xml, context-idgn-OnlinePollResult.xml) ===
<code xml>
	<!-- 온라인POLL관리 -->		
    <bean name="egovOnlinePollManageIdGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" destroy-method="destroy">
        <property name="dataSource" ref="egov.dataSource" />
        <property name="strategy"   ref="onlinePollManageMsgtrategy" />
        <property name="blockSize"  value="10"/>
        <property name="table"      value="COMTECOPSEQ"/>
        <property name="tableName"  value="POLL_MGR_ID"/>
    </bean>
    <bean name="onlinePollManageMsgtrategy" class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl">
        <property name="prefix"   value="POLLMGR_" />
        <property name="cipers"   value="12" />
        <property name="fillChar" value="0" />
    </bean>
    
    <!-- 온라인POLL항목 -->
    <bean name="egovOnlinePollItemIdGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" destroy-method="destroy">
        <property name="dataSource" ref="egov.dataSource" />
        <property name="strategy"   ref="onlinePollItemMsgtrategy" />
        <property name="blockSize"  value="10"/>
        <property name="table"      value="COMTECOPSEQ"/>
        <property name="tableName"  value="POLL_IEM_ID"/>
    </bean>
    <bean name="onlinePollItemMsgtrategy"
        class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl">
        <property name="prefix"   value="POLLIEM_" />
        <property name="cipers"   value="12" />
        <property name="fillChar" value="0" />
    </bean>

    <!-- 온라인POLL결과-->
    <bean name="egovOnlinePollResultIdGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" destroy-method="destroy">
        <property name="dataSource" ref="egov.dataSource" />
        <property name="strategy"   ref="onlinePollResultMsgtrategy" />
        <property name="blockSize"  value="10"/>
        <property name="table"      value="COMTECOPSEQ"/>
        <property name="tableName"  value="POLL_RUT_ID"/>
    </bean>
    <bean name="onlinePollResultMsgtrategy"
        class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl">
        <property name="prefix"   value="POLLRUT_" />
        <property name="cipers"   value="12" />
        <property name="fillChar" value="0" />
    </bean> 
	
</code>



==== 관련테이블 ====

^테이블명^테이블명(영문)^비고^
|온라인POLL관리|COMTNONLINEPOLLMANAGE|온라인POLL관리를 관리 한다.|	
|온라인POLL항목|COMTNONLINEPOLLITEM|온라인POLL항목을 관리 한다.|	
|온라인POLL결과|COMTNONLINEPOLLRESULT|온라인POLL결과를 관리 한다.|	

==== 관련코드 ====
^코드분류^코드분류명^코드ID^코드명^
|COM039|온라인POLL구분|  001  |사회|
|COM039|온라인POLL구분|  002  |정치|
|COM039|온라인POLL구분|  003  |경제|
|COM039|온라인POLL구분|  004  |문화|
|COM039|온라인POLL구분|  005  |인문|
|COM039|온라인POLL구분|  006  |공학|
|COM039|온라인POLL구분|  007  |기타|

===== 관련기능 =====
온라인POLL관리 기능은 크게 **온라인POLL관리 목록조회**, **온라인POLL관리 상세조회**,  **온라인POLL항목 목록**, **온라인POLL항목 등록**, **온라인POLL항목 수정**, **온라인POLL관리 등록**, **온라인POLL관리 수정**, **온라인POLL결과 목록조회**, **온라인POLL참여 등록**, **온라인POLL참여 통계**   기능으로 구성되어 있다.

==== 온라인POLL관리 목록조회 ====


=== 비즈니스 규칙 ===
관리자가 기(記) 등록된 온라인POLL관리 정보를 리스트 형태로 조회 할 수 있고, 등록버튼을 클릭하여 등록화면으로 이동할수있다.

=== 관련코드  ===
N/A

=== 관련화면 및 수행메뉴얼 ===

^Action^URL^Controller method^SQL Namespace^SQL QueryID^
|목록|/uss/olp/opm/listOnlinePollManage.do|egovOnlinePollManageList|"OnlinePollManage"|"selectOnlinePollManage"|
| | | |"OnlinePollManage"|"selectOnlinePollManageCnt"|
{{:egovframework:com:v3.6:uss:olp:online_poll_manag_list.png}}


등록: 등록하기 위해서는 상단의 등록 버튼을 통해서 **온라인POLL관리 등록** 화면으로 이동한다. \\
목록클릭: **온라인POLL관리 상세조회** 화면으로 이동한다.



==== 온라인POLL관리 상세조회 ====

=== 비즈니스 규칙 ===
온라인POLL관리 목록에서 목록 클릭 시 이동되는 화면으로 온라인POLL관리에 대한 상세정보를 보여준다.


=== 관련코드  ===
N/A

=== 관련화면 및 수행메뉴얼 ===

^Action^URL^Controller method^SQL Namespace^SQL QueryID^
|상세조회|/uss/olp/opm/updtOnlinePollManage.do|egovOnlinePollManageDetail|"OnlinePollManage"|"selectOnlinePollManageDetail"|
|온라인POLL 결과정보 삭제|/uss/olp/opm/updtOnlinePollManage.do|egovOnlinePollManageDetail|"OnlinePollManage"|"deleteOnlinePollResultAll"|
|온라인POLL 항목정보 삭제|/uss/olp/opm/updtOnlinePollManage.do|egovOnlinePollManageDetail|"OnlinePollManage"|"deleteOnlinePollItemAll"|
|온라인POLL 관리정보 삭제|/uss/olp/opm/updtOnlinePollManage.do|egovOnlinePollManageDetail|"OnlinePollManage"|"deleteOnlinePollManage"|

{{:egovframework:com:v3.6:uss:olp:online_poll_manag_detail.png}}

수정: 수정버튼 클릭 시 **온라인POLL관리 수정** 화면으로 이동한다. \\
삭제: 삭제버튼 클릭 시 삭제여부를 확인하는 메세지를 보여주고 삭제처리를 할 수 있다. \\
목록: **온라인POLL관리 목록** 화면으로 이동한다.



==== 온라인POLL항목 등록 ====

=== 비즈니스 규칙 ===
온라인POLL관리에 관한 기본정보를 입력 저장처리한다. 온라인POLL항목은 필수 입력 항목으로 반드시 입력한다.

=== 관련코드  ===
N/A

=== 관련화면 및 수행메뉴얼 ===

^Action^URL^Controller method^SQL Namespace^SQL QueryID^
|등록|/uss/olp/opm/registOnlinePollItem.do|egovOnlinePollItemRegist|"OnlinePollManage"|"insertOnlinePollItem"|


{{:egovframework:com:v3.6:uss:olp:online_poll_manag_item_regi.png}}

등록: 입력한 온라인POLL항목 정보들이 저장 처리된다. \\


==== 온라인POLL항목 수정====

=== 비즈니스 규칙 ===
입력한 온라인POLL관리 정보를(을) 수정,삭제 처리한다. 온라인POLL항목은 필수 입력 항목으로 반드시 입력한다. \\

=== 관련코드  ===
N/A

=== 관련화면 및 수행메뉴얼 ===

^Action^URL^Controller method^SQL Namespace^SQL QueryID^
|수정|/uss/olp/opm/updtOnlinePollItem.do|egovOnlinePollItemModify|"OnlinePollManage"|"updateOnlinePollIteme"|
|온라인POLL 결과정보 삭제|/uss/olp/opm/updtOnlinePollManage.do|egovOnlinePollManageDetail|"OnlinePollManage"|"deleteOnlinePollResultAll"|
|온라인POLL 항목정보 삭제|/uss/olp/opm/updtOnlinePollManage.do|egovOnlinePollManageDetail|"OnlinePollManage"|"deleteOnlinePollItemAll"|
|온라인POLL 관리정보 삭제|/uss/olp/opm/updtOnlinePollManage.do|egovOnlinePollManageDetail|"OnlinePollManage"|"deleteOnlinePollManage"|

{{:egovframework:com:v3.6:uss:olp:online_poll_manag_item_updt.png}}

수정: 수정된 정보들이 저장 처리된다.  \\ 
삭제: 선택된 정보들이 삭제 처리된다.  \\ 




==== 온라인POLL관리 등록 ====

=== 비즈니스 규칙 ===
온라인POLL관리에 관한 기본정보를 입력 저장처리한다. 입력명 우측의 빨간* 표시는 반드시 입력해야할 항목을 표시한다. \\	

=== 관련코드  ===
N/A

=== 관련화면 및 수행매뉴얼 ===

^Action^URL^Controller method^SQL Namespace^SQL QueryID^
|등록|/uss/olp/opm/registOnlinePollManage.do|egovOnlinePollManageRegist|"OnlinePollManage"|"insertOnlinePollManage"|

{{:egovframework:com:v3.6:uss:olp:online_poll_manag_regi.png}}


등록: 입력한 온라인POLL관리 정보들이 저장 처리된다. \\
목록: **온라인POLL관리 목록** 화면으로 이동한다. \\


==== 온라인POLL관리 수정 ==== 


=== 비즈니스 규칙 ===
입력한 온라인POLL관리 정보를(을) 저장 처리한다. 입력명 우측의 빨간* 표시는 수정 시 반드시 입력해야 할 항목을 표시한다. \\


=== 관련코드  ===
N/A

=== 관련화면 및 수행메뉴얼 ===

^Action^URL^Controller method^SQL Namespace^SQL QueryID^
|수정|/uss/olp/opm/updtOnlinePollManage.do|egovOnlinePollManageModify|"OnlinePollManage"|"updateOnlinePollManage"|



{{:egovframework:com:v3.6:uss:olp:online_poll_manag_updt.png}}

저장: 수정된 정보들이 저장 처리된다.  \\ 
목록: **온라인POLL관리 목록** 화면으로 이동한다. \\ 


==== 온라인POLL결과 목록조회 ====


=== 비즈니스 규칙 ===
관리자가 기(記) 등록된 온라인POLL결과를 정보를 리스트 형태로 조회 및 삭제할 수 있다.

=== 관련코드  ===
N/A

=== 관련화면 및 수행메뉴얼 ===

^Action^URL^Controller method^SQL Namespace^SQL QueryID^
|목록조회|/uss/olp/opr/listOnlinePollResult.do|egovOnlinePollResultList|"OnlinePollResult"|"selectOnlinePollResult"|
|삭제|/uss/olp/opr/delOnlinePollResult.do|egovOnlinePollResultDetail|"OnlinePollResult"|"deleteOnlinePollResult"|

{{:egovframework:com:v3.6:uss:olp:online_poll_resu_list.png}}


삭제 클릭: 삭제버튼 클릭 시 삭제여부를 확인하는 메세지를 보여주고 온라인POLL결과 목록을 삭제 할 수 있다. \\
목록 클릭: **온라인POLL관리 목록** 화면으로 이동한다.





==== 온라인POLL참여 등록 ====

=== 비즈니스 규칙 ===
온라인POLL참여에 관한 정보를 입력 저장처리한다. 항목명은 필수로 입력한다. \\

=== 관련코드  ===
N/A

=== 관련화면 및 수행메뉴얼 ===

^Action^URL^Controller method^SQL Namespace^SQL QueryID^
|등록|/uss/olp/opp/registOnlinePollPartcptn.do|egovOnlinePollPartcptnRegist|"OnlinePollPartcptn"|"insertOnlinePollResult"|
|목록조회|/uss/olp/opp/listOnlinePollPartcptn.do|egovOnlinePollPartcptnList|"OnlinePollPartcptn"|"selectOnlinePollManageList"|
| | | |"OnlinePollPartcptn"|"selectOnlinePollManageListCnt"|


{{:egovframework:com:v3.6:uss:olp:online_poll_partc_regi_1.png}}

저장: 입력한 온라인POLL참여 정보들이 저장 처리된다. \\
목록: **온라인POLL참여 목록** 화면으로 이동한다. \\ 

==== 온라인POLL참여 통계 ==== 


=== 비즈니스 규칙 ===
온라인POLL관리 별 온라인POLL항목을 그래프 형태로 건수로 표시한다.  \\


=== 관련코드  ===
N/A


=== 관련화면 및 수행메뉴얼 ===

^Action^URL^Controller method^QueryID^
|통계조회|/uss/olp/opp/statisticsOnlinePollPartcptn.do|egovOnlinePollManageStatistics|"OnlinePollPartcptn.selectOnlinePollManageDetail"|
| | | |"OnlinePollPartcptn.selectOnlinePollItem"|
| | | |"OnlinePollPartcptn.selectOnlinePollPartcptnStatistics"|


{{:egovframework:com:v3.6:uss:olp:online_poll_partc_stati_1.png}}

목록: **온라인POLL참여 목록** 화면으로 이동한다. \\ 

===== 참고자료 =====
  * 실행환경 참조 : [[egovframework:rte:fdl:id_generation#Table Id Generation Service|ID Generation Service]]