package kcg.imis.report.vo;

import java.util.Arrays;

import kcg.imis.cmmn.bbs.BaseSearchVO;

/**
  * @FileName : ReportSearchVO.java
  * @Project : 국제해양프로젝트
  * @Date : 2018. 3. 29. 
  * @작성자 : Moon
  * @변경이력 : 
  * @프로그램 설명 :
 */
public class ReportSearchVO extends BaseSearchVO implements Cloneable {
	
	/**
	 * 접속한 사용자 아이디
	 */
	private String userid;
	/**
	 * 접속한 사용자 등급
	 */
	private int usegrade;
	/**
	 * 접속한 사용자 타입
	 */
	private int type;
	/**
	 * 접속한 사용자 그룹
	 */
	private int myGroupCode;
	/**
	 * 접속한 사용자 계급
	 */
	private String duties;
	/**
	 * 견문권한(1-나머지, 2-계장, 3-과장).
	 */
	private int dutiesForApprove;
	/**
	 * 접속한 사용자 소속코드
	 */
	private String userPlace;
	/**
	 *  견문 상태 코드 
	 */
	private String inStateCode;
	/**
	 * 견문 정렬 필드
	 */
	private String orderCol = "IN_REGDATE";
	/**
	 * 견문 정렬 타입
	 */
	private String orderAsc = "DESC";
	
	private String myDutiesCode;
	
	
	/** 사용자 지정 검색 조건 */
	
	/**
	 * 기간 처음
	 */
	private String dateStart;
	/**
	 * 기간 마지막
	 */
	private String dateEnd;
	/**
	 * 보고자
	 */
	private String writeName;
	/**
	 * 보고자id
	 */
	private String writeId;
	/**
	 * 소속
	 */
	private String[] places;
	/**
	 * 평가
	 */
	private String[] judges;
	/**
	 * 상보
	 */
	private String[] fullReport;
	/**
	 * 구분
	 */
	private String[] policeType;
	/**
	 * 분야1
	 */
	private String[] category1;
	/**
	 * 분야2
	 */
	private String[] category2;
	/**
	 * 분야3
	 */
	private String[] category3;
	/**
	 * 분야4
	 */
	private String[] category4;
	/**
	 * 제목
	 */
	private String subject;
	/**
	 * 첨부파일명
	 */
	private String filename;
	
	/** 통계 */
	
	/**
	 * 분야1 검색여부
	 */
	private boolean searchCate1 = true;
	/**
	 * 분야2 검색여부
	 */
	private boolean searchCate2 = true;
	/**
	 * 분야3 검색여부
	 */
	private boolean searchCate3 = true;
	/**
	 * 분야4 검색여부
	 */
	private boolean searchCate4 = true;
	/**
	 * 통계타입
	 */
	private String statsType;
	/**
	 * 분야별통계 타입
	 */
	private int categoryType;
	/**
	 * 소속 그룹 코드
	 */
	private String placeGroup;
	/**
	 * 연도
	 */
	private String year;
	/**
	 * 월
	 */
	private String month;
	
	public String getUserid() {
		return userid;
	}
	public void setUserid(final String userid) {
		this.userid = userid;
	}
	public int getUsegrade() {
		return usegrade;
	}
	public void setUsegrade(final int usegrade) {
		this.usegrade = usegrade;
	}
	public int getType() {
		return type;
	}
	public void setType(final int type) {
		this.type = type;
	}
	public int getMyGroupCode() {
		return myGroupCode;
	}
	public String getDuties() {
		return duties;
	}
	public void setDuties(final String duties) {
		this.duties = duties;
	}
	/**
	 * @return the dutiesForApprove
	 */
	public final int getDutiesForApprove() {
		return dutiesForApprove;
	}
	/**
	 * @param dutiesForApprove the dutiesForApprove to set
	 */
	public final void setDutiesForApprove(final int dutiesForApprove) {
		this.dutiesForApprove = dutiesForApprove;
	}
	public String getUserPlace() {
		return userPlace;
	}
	public void setUserPlace(final String userPlace) {
		this.userPlace = userPlace;
	}
	public void setMyGroupCode(final int myGroupCode) {
		this.myGroupCode = myGroupCode;
	}
	public String getInStateCode() {
		return inStateCode;
	}
	public void setInStateCode(final String inStateCode) {
		this.inStateCode = inStateCode;
	}
	public String getOrderCol() {
		return orderCol;
	}
	public void setOrderCol(final String orderCol) {
		this.orderCol = orderCol;
	}
	public String getOrderAsc() {
		return orderAsc;
	}
	public void setOrderAsc(final String orderAsc) {
		this.orderAsc = orderAsc;
	}
	public String getDateStart() {
		return dateStart;
	}
	public void setDateStart(final String dateStart) {
		this.dateStart = dateStart;
	}
	public String getDateEnd() {
		return dateEnd;
	}
	public void setDateEnd(final String dateEnd) {
		this.dateEnd = dateEnd;
	}
	public String getWriteName() {
		return writeName;
	}
	public void setWriteName(final String writeName) {
		this.writeName = writeName;
	}
	public String getWriteId() {
		return writeId;
	}
	public void setWriteId(final String writeId) {
		this.writeId = writeId;
	}
	public String[] getPlaces() {
		return places;
	}
	public void setPlaces(final String[] places) {
		this.places = places;
	}
	public String[] getJudges() {
		return judges;
	}
	public void setJudges(final String[] judges) {
		this.judges = judges;
	}
	public String[] getFullReport() {
		return fullReport;
	}
	public void setFullReport(final String[] fullReport) {
		this.fullReport = fullReport;
	}
	public String[] getPoliceType() {
		return policeType;
	}
	public void setPoliceType(final String[] policeType) {
		this.policeType = policeType;
	}
	public String[] getCategory1() {
		return category1;
	}
	public void setCategory1(final String[] category1) {
		this.category1 = category1;
	}
	public String[] getCategory2() {
		return category2;
	}
	public void setCategory2(final String[] category2) {
		this.category2 = category2;
	}
	public String[] getCategory3() {
		return category3;
	}
	public void setCategory3(final String[] category3) {
		this.category3 = category3;
	}
	public String[] getCategory4() {
		return category4;
	}
	public void setCategory4(final String[] category4) {
		this.category4 = category4;
	}
	public String getSubject() {
		return subject;
	}
	public void setSubject(final String subject) {
		this.subject = subject;
	}
	public String getFilename() {
		return filename;
	}
	public void setFilename(final String filename) {
		this.filename = filename;
	}
	public boolean isSearchCate1() {
		return searchCate1;
	}
	public void setSearchCate1(final boolean searchCate1) {
		this.searchCate1 = searchCate1;
	}
	public boolean isSearchCate2() {
		return searchCate2;
	}
	public void setSearchCate2(final boolean searchCate2) {
		this.searchCate2 = searchCate2;
	}
	public boolean isSearchCate3() {
		return searchCate3;
	}
	public void setSearchCate3(final boolean searchCate3) {
		this.searchCate3 = searchCate3;
	}
	public boolean isSearchCate4() {
		return searchCate4;
	}
	public void setSearchCate4(final boolean searchCate4) {
		this.searchCate4 = searchCate4;
	}
	public String getStatsType() {
		return statsType;
	}
	public void setStatsType(final String statsType) {
		this.statsType = statsType;
	}
	public int getCategoryType() {
		return categoryType;
	}
	public void setCategoryType(final int categoryType) {
		this.categoryType = categoryType;
	}
	public String getPlaceGroup() {
		return placeGroup;
	}
	public void setPlaceGroup(final String placeGroup) {
		this.placeGroup = placeGroup;
	}
	public String getYear() {
		return year;
	}
	public void setYear(final String year) {
		this.year = year;
	}
	public String getMonth() {
		return month;
	}
	public void setMonth(final String month) {
		this.month = month;
	}
	@Override
	public String toString() {
		return "ReportSearchVO [userid=" + userid + ", usegrade=" + usegrade
				+ ", type=" + type + ", myGroupCode=" + myGroupCode
				+ ", duties=" + duties + ", userPlace=" + userPlace
				+ ", inStateCode=" + inStateCode + ", orderCol=" + orderCol
				+ ", orderAsc=" + orderAsc + ", dateStart=" + dateStart
				+ ", dateEnd=" + dateEnd + ", writeName=" + writeName
				+ ", writeId=" + writeId + ", places="
				+ Arrays.toString(places) + ", judges="
				+ Arrays.toString(judges) + ", fullReport="
				+ Arrays.toString(fullReport) + ", policeType="
				+ Arrays.toString(policeType) + ", category1="
				+ Arrays.toString(category1) + ", category2="
				+ Arrays.toString(category2) + ", category3="
				+ Arrays.toString(category3) + ", category4="
				+ Arrays.toString(category4) + ", subject=" + subject
				+ ", filename=" + filename + ", searchCate1=" + searchCate1
				+ ", searchCate2=" + searchCate2 + ", searchCate3="
				+ searchCate3 + ", searchCate4=" + searchCate4 + ", statsType="
				+ statsType + ", categoryType=" + categoryType
				+ ", placeGroup=" + placeGroup + ", year=" + year + ", month="
				+ month + "]";
	}
	@Override
	public Object clone() throws CloneNotSupportedException {
		ReportSearchVO vo = (ReportSearchVO) super.clone();
		
		if (places != null) {
			vo.places = (String[]) places.clone();
		}
		if (judges != null) {
			vo.judges = (String[]) judges.clone();
		}
		if (fullReport != null) {
			vo.fullReport = (String[]) fullReport.clone();
		}
		if (policeType != null) {
			vo.policeType = (String[]) policeType.clone();
		}
		if (category1 != null) {
			vo.category1 = (String[]) category1.clone();
		}
		if (category2 != null) {
			vo.category2 = (String[]) category2.clone();
		}
		if (category3 != null) {
			vo.category3 = (String[]) category3.clone();
		}
		if (category4 != null) {
			vo.category4 = (String[]) category4.clone();
		}
		return vo;
	}
	public String getMyDutiesCode() {
		return myDutiesCode;
	}
	public void setMyDutiesCode(String myDutiesCode) {
		this.myDutiesCode = myDutiesCode;
	}	
	
	
}
