package egovframework.com.cmm.service;

import java.util.List;
import java.util.Map;

/**
 * @Class Name : EgovFileMngService.java
 * @Description : 파일정보의 관리를 위한 서비스 인터페이스
 * @Modification Information
 *
 *    수정일       수정자         수정내용
 *    -------        -------     -------------------
 *    2009. 3. 25.     이삼섭    최초생성
 *
 * @author 공통 서비스 개발팀 이삼섭
 * @since 2009. 3. 25.
 * @version
 * @see
 *
 */
public interface EgovFileMngService {

    /**
     * 파일에 대한 목록을 조회한다.
     *
     * @param fvo
     * @return
     * @throws Exception
     */
    public List<FileVO> selectFileInfs(FileVO fvo) throws Exception;
    
    public List<FileVO> selectSecFileInfs(FileVO fvo) throws Exception;//보안관리 첨부파일
    
    public List<FileVO> selectBizFileInfs(FileVO fvo) throws Exception;//사업관리 첨부파일
    
    public List<FileVO> selectEvalFileInfs(FileVO fvo) throws Exception;//개인정보실태평가,국정원실태평가,외부감사 첨부파일
    
    public List<FileVO> selectNisEvalFileInfs(FileVO fvo) throws Exception;//국정원 실태평가 - 세부 평가지표 및 결과
    
    public List<FileVO> selectSLAFileInfs(FileVO fvo) throws Exception;//개인정보실태평가 첨부파일
    
    public List<FileVO> selectPerFileInfs(FileVO fvo) throws Exception;//정기점검 첨부파일

    /**
     * 하나의 파일에 대한 정보(속성 및 상세)를 등록한다.
     *
     * @param fvo
     * @throws Exception
     */
    public String insertFileInf(FileVO fvo) throws Exception;

    /**
     * 여러 개의 파일에 대한 정보(속성 및 상세)를 등록한다.
     *
     * @param fvoList
     * @throws Exception
     */
    public String insertFileInfs(List<?> fvoList) throws Exception;

    /**
     * 여러 개의 파일에 대한 정보(속성 및 상세)를 수정한다.
     *
     * @param fvoList
     * @throws Exception
     */
    public void updateFileInfs(List<?> fvoList) throws Exception;

    /**
     * 여러 개의 파일을 삭제한다.
     *
     * @param fvoList
     * @throws Exception
     */
    public void deleteFileInfs(List<?> fvoList) throws Exception;

    /**
     * 하나의 파일을 삭제한다.
     *
     * @param fvo
     * @throws Exception
     */
    public void deleteFileInf(FileVO fvo) throws Exception;

    /**
     * 파일에 대한 상세정보를 조회한다.
     *
     * @param fvo
     * @return
     * @throws Exception
     */
    public FileVO selectFileInf(FileVO fvo) throws Exception;

    /**
     * 파일 구분자에 대한 최대값을 구한다.
     *
     * @param fvo
     * @return
     * @throws Exception
     */
    public int getMaxFileSN(FileVO fvo) throws Exception;

    /**
     * 전체 파일을 삭제한다.
     *
     * @param fvo
     * @throws Exception
     */
    public void deleteAllFileInf(FileVO fvo) throws Exception;

    /**
     * 파일명 검색에 대한 목록을 조회한다.
     *
     * @param fvo
     * @return
     * @throws Exception
     */
    public Map<String, Object> selectFileListByFileNm(FileVO fvo) throws Exception;

    /**
     * 이미지 파일에 대한 목록을 조회한다.
     *
     * @param vo
     * @return
     * @throws Exception
     */
    public List<FileVO> selectImageFileList(FileVO vo) throws Exception;

    /**
     * 이미지 파일에 대한 목록을 업데이트하다.
     *
     * @param vo
     * @return
     * @throws Exception
     */
	public void updateFileInfo(List<FileVO> _result) throws Exception;

	public void updateFileInf(FileVO fileVO) throws Exception;
	
	public String insertItsmFileInfs(List<FileVO> result) throws Exception;

	public FileVO selectItsmFileInf(FileVO fileVO) throws Exception;
	
	public FileVO selectItsmperFileInf(FileVO fileVO) throws Exception;
	
	public FileVO selectNisEvalItemFileInfo(FileVO fileVO) throws Exception;

	public String insertPerFileInfs(List<FileVO> result) throws Exception;
	
	public String insertNisEvitFileInfs(List<FileVO> result) throws Exception;

	public String insertAsserFileInfs(List<FileVO> result)  throws Exception;

	public FileVO selectFileAssertInf(FileVO vo)  throws Exception;
						
	public FileVO selectFileUserInf(FileVO vo)  throws Exception;

	public String insertAsserFileInf(FileVO resultFile) throws Exception;
	
	public String insertUserFileInf(FileVO resultFile) throws Exception;
	
	public String insertAsserFilePlus(FileVO resultFile) throws Exception;

	public void deleteAssertFileInf(FileVO fileVO) throws Exception;
	
	public void deleteUserFileInf(FileVO fileVO) throws Exception;

	public List<FileVO> selectAssertFileList(FileVO fileVO)  throws Exception;

	public void deleteAssertFileInfByRefIdList(FileVO paramFileVO) throws Exception;

	public List<FileVO> selectIpFileList(FileVO fileVO) throws Exception;

	public String insertIpFileInf(FileVO resultFile) throws Exception;

	public void deleteIpFileInf(FileVO fileVO) throws Exception;

	public FileVO selectItsmIpFileInf(FileVO fileVO) throws Exception;

	FileVO selectFileUSertInf(FileVO vo) throws Exception;

}
