package kcg.imis.report.vo;

import java.util.List;

import kcg.imis.report.web.ReportCommon;

import org.springframework.web.multipart.MultipartFile;

/**
  * @FileName : ReportVO.java
  * @Project : 국제해양프로젝트
  * @Date : 2018. 3. 29. 
  * @작성자 : Moon
  * @변경이력 : 
  * @프로그램 설명 :
 */
public class ReportVO {
	@Override
	public String toString() {
		return "ReportVO [STRCORRECT=" + STRCORRECT + ", inSeq=" + inSeq + ", inAgencyCode=" + inAgencyCode + ", inDocPlace=" + inDocPlace + ", inPlaceCode=" + inPlaceCode + ", inPlace=" + inPlace
				+ ", inPlaceName=" + inPlaceName + ", inPlaceNum=" + inPlaceNum + ", inTypeCode=" + inTypeCode + ", inType=" + inType + ", inCategory1=" + inCategory1 + ", inCategory2=" + inCategory2
				+ ", inCategory3=" + inCategory3 + ", inCategory4=" + inCategory4 + ", inSubject=" + inSubject + ", inMemo=" + inMemo + ", inPlace1=" + inPlace1 + ", inPlace2=" + inPlace2
				+ ", inDuty=" + inDuty + ", inName=" + inName + ", inUserid=" + inUserid + ", inIp=" + inIp + ", inContent=" + inContent + ", inFile1=" + inFile1 + ", inFile2=" + inFile2
				+ ", inFile3=" + inFile3 + ", inFileName1=" + inFileName1 + ", inFileName2=" + inFileName2 + ", inFileName3=" + inFileName3 + ", inFsseq=" + inFsseq + ", inInfodate=" + inInfodate
				+ ", inInfoYear=" + inInfoYear + ", inInfoMonth=" + inInfoMonth + ", inInfoDay=" + inInfoDay + ", inRegdate=" + inRegdate + ", inRegdateStr=" + inRegdateStr + ", inJudge=" + inJudge
				+ ", inJuseqSection=" + inJuseqSection + ", inJuseqHead=" + inJuseqHead + ", inOfflineType=" + inOfflineType + ", inOfflineUserid=" + inOfflineUserid + ", inComplete=" + inComplete
				+ ", inOld=" + inOld + ", inDelete=" + inDelete + ", inStateCode=" + inStateCode + ", inChkdate=" + inChkdate + ", fileObj1=" + fileObj1 + ", fileObj2=" + fileObj2 + ", fileObj3="
				+ fileObj3 + ", strInfodate=" + strInfodate + ", stateCodeName=" + stateCodeName + ", inCategory1Str=" + inCategory1Str + ", inCategory2Str=" + inCategory2Str + ", cateStrOrder="
				+ cateStrOrder + ", docNo=" + docNo + ", reporter=" + reporter + ", judgeStr=" + judgeStr + ", fullReportStr=" + fullReportStr + ", juMsg=" + juMsg + ", isHead=" + isHead
				+ ", isSection=" + isSection + ", isJudge1=" + isJudge1 + ", isJudge2=" + isJudge2 + ", isJudge3=" + isJudge3 + ", isJudge4=" + isJudge4 + ", isJudge5=" + isJudge5 + ", isJudge6="
				+ isJudge6 + ", isJudge7=" + isJudge7 + ", isJudge8=" + isJudge8 + ", isReport1=" + isReport1 + ", isReport2=" + isReport2 + ", stateCode1=" + stateCode1 + ", stateCode2=" + stateCode2 + ", reportList="
				+ reportList + "]";
	}
	/**
	 * 목록에서 표시로 사용할 문자
	 */
	final String STRCORRECT = "○";
	
	/**
	 * 견문 ID
	 */
	private int inSeq;
	/**
	 * 상위 소속 기관 코드
	 */
	private String inAgencyCode;
	
	/**
	 * 직접 입력한 소속
	 */
	private String inDocPlace;
	/**
	 * 보고자 소속 기관 코드
	 */
	private String inPlaceCode;
	
	/**
	 * 
	 */
	private String inPlace;
	/**
	 * 보고자 소속기관명
	 */
	private String inPlaceName;
	/**
	 * 문서번호
	 */
	private int inPlaceNum;
	
	private String inTypeCode;
	
	/**
	 * 보고자 경찰타입(1:국제, 2:일반)
	 */
	private String inType;
	/**
	 * 분류1
	 */
	private String inCategory1;
	/**
	 * 분류2
	 */
	private String inCategory2;
	/**
	 * 분류3
	 */
	private String inCategory3;
	/**
	 * 분류4
	 */
	private String inCategory4;
	/**
	 * 제목
	 */
	private String inSubject;
	/**
	 * 비고
	 */
	private String inMemo;
	/**
	 * 보고자 소속1명
	 */
	private String inPlace1;
	/**
	 * 보고자 소속2명
	 */
	private String inPlace2;
	/**
	 * 보고자 직급명
	 */
	private String inDuty
;
	/**
	 * 보고자명
	 */
	private String inName;
	/**
	 * 보고자 아이디
	 */
	private String inUserid;
	/**
	 * 보고자 아이피
	 */
	private String inIp;
	/**
	 * 내용
	 */
	private String inContent;
	/**
	 * 첨부파일명1
	 */
	private String inFile1;
	/**
	 * 첨부파일명2
	 */
	private String inFile2;
	/**
	 * 첨부파일명3
	 */
	private String inFile3;
	
	/**
	 * 첨부파일명1
	 */
	private String inFileName1;
	/**
	 * 첨부파일명2
	 */
	private String inFileName2;
	/**
	 * 첨부파일명3
	 */
	private String inFileName3;
	
	/**
	 * 첨부파일시퀀스
	 */
	private int inFsseq;
	/**
	 * 보고일
	 */
	private java.sql.Date inInfodate;
	/**
	 * 보고일 년도
	 */
	private int inInfoYear;
	/**
	 * 보고일 월
	 */
	private int inInfoMonth;
	/**
	 * 보고일 일
	 */
	private int inInfoDay;
	/**
	 * 작성일
	 */
	private java.sql.Date inRegdate;
	
	private String inRegdateStr;
	/**
	 * 평가(1:특보, 2:판단, 3:중보, 4:통보, 5:기록, 6:조사, 7:참고,8:무가치)
	 */
	private int inJudge;
	
	/**
	 * 
	 */
	private int inJuseqSection;
	/**
	 * 경찰서 과장 결재시퀀스
	 */
	private int inJuseqHead;
	/**
	 * 일괄입력자 경찰타입(1:외사,2:일반)
	 */
	private String inOfflineType = "";
	/**
	 * 일괄입력자 ID
	 */
	private String inOfflineUserid;
	/**
	 * 완료여부 (1:완료)
	 */
	private String inComplete;
	/**
	 * 
	 */
	private String inOld;
	/**
	 * 삭제여부
	 */
	private String inDelete;
	/**
	 * 상태코드(99:임시저장)
	 */
	private String inStateCode;

	private String inChkdate;
	/**
	 * 첨부파일1 객체
	 */
	private MultipartFile fileObj1;
	/**
	 * 첨부파일2 객체
	 */
	private MultipartFile fileObj2;
	/**
	 * 첨부파일3 객체
	 */
	private MultipartFile fileObj3;
	/**
	 * 보고일 문자열
	 */
	private String strInfodate;
	/**
	 * 상태
	 */
	private String stateCodeName;
	/**
	 * 분류1명
	 */
	private String inCategory1Str;
	/**
	 * 분류2명
	 */
	private String inCategory2Str;
	/**
	 * 분류가 조합된 문자열 ( 분류1>분류2>분류3>분류4 )
	 */
	private String cateStrOrder;
	/**
	 * 문서번호
	 */
	private String docNo;
	/**
	 * 보고자 (직급 보고자명)
	 */
	private String reporter;
	/**
	 * 평가 in_judge에 대한 문자열
	 */
	private String judgeStr;
	/**
	 * 상보 문자열
	 */
	private String fullReportStr;
	/**
	 * 검토의견
	 */
	private String juMsg;
	
	/* 결재 처리 목록 */
	/**
	 * 과장 결재
	 */
	private String isHead;
	/**
	 * 계장 결재
	 */
	private String isSection;
	private String isJudge1;
	private String isJudge2;
	private String isJudge3;
	private String isJudge4;
	private String isJudge5;
	private String isJudge6;
	private String isJudge7;
	private String isJudge8;
	private String isReport1;
	private String isReport2;
	
	private int stateCode1;
	private int stateCode2;

	/* ReportVO를 목록으로 받기위함 */
	private List<ReportVO> reportList;

	public List<ReportVO> getReportList() {
		return reportList;
	}
	public void setReportList(List<ReportVO> reportList) {
		this.reportList = reportList;
	}
	
	public String getStrInfodate() {
		return strInfodate;
	}
	public void setStrInfodate(String strInfodate) {
		this.strInfodate = strInfodate;
	}
	public int getInSeq() {
		return inSeq;
	}
	public void setInSeq(int inSeq) {
		this.inSeq = inSeq;
	}
	public String getInAgencyCode() {
		return inAgencyCode;
	}
	public void setInAgencyCode(String inAgencyCode) {
		this.inAgencyCode = inAgencyCode;
	}
	public String getInPlaceCode() {
		return inPlaceCode;
	}
	public void setInPlaceCode(String inPlaceCode) {
		this.inPlaceCode = inPlaceCode;
	}
	public String getInPlaceName() {
		return inPlaceName;
	}
	public void setInPlaceName(String inPlaceName) {
		this.inPlaceName = inPlaceName;
	}
	public int getInPlaceNum() {
		return inPlaceNum;
	}
	public void setInPlaceNum(int inPlaceNum) {
		this.inPlaceNum = inPlaceNum;
	}
	public String getInType() {
		return inType;
	}
	public void setInType(String inType) {
		this.inType = inType;
	}
	public String getInCategory1() {
		return inCategory1;
	}
	public void setInCategory1(String inCategory1) {
		this.inCategory1 = inCategory1;
	}
	public String getReporter() {
		return this.inDuty + " " + this.inName;
	}
	public void setReporter(String reporter) {
		this.reporter = reporter;
	}
	public String getInCategory2() {
		return inCategory2;
	}
	public void setInCategory2(String inCategory2) {
		this.inCategory2 = inCategory2;
	}
	public String getInCategory3() {
		return inCategory3;
	}
	public void setInCategory3(String inCategory3) {
		this.inCategory3 = inCategory3;
	}
	public String getInCategory4() {
		return inCategory4;
	}
	public void setInCategory4(String inCategory4) {
		this.inCategory4 = inCategory4;
	}
	public String getInSubject() {
		return inSubject;
	}
	public void setInSubject(String inSubject) {
		this.inSubject = inSubject;
	}
	public String getInMemo() {
		return inMemo;
	}
	public void setInMemo(String inMemo) {
		this.inMemo = inMemo;
	}
	public String getInPlace1() {
		return inPlace1;
	}
	public void setInPlace1(String inPlace1) {
		this.inPlace1 = inPlace1;
	}
	public String getInPlace2() {
		return inPlace2;
	}
	public void setInPlace2(String inPlace2) {
		this.inPlace2 = inPlace2;
	}
	public String getInUserid() {
		return inUserid;
	}
	public void setInUserid(String inUserid) {
		this.inUserid = inUserid;
	}
	public String getInIp() {
		return inIp;
	}
	public void setInIp(String inIp) {
		this.inIp = inIp;
	}
	public String getInContent() {
		return inContent;
	}
	public void setInContent(String inContent) {
		this.inContent = inContent;
	}
	public int getInFsseq() {
		return inFsseq;
	}
	public void setInFsseq(int inFsseq) {
		this.inFsseq = inFsseq;
	}
	public java.sql.Date getInInfodate() {
		return inInfodate;
	}
	public void setInInfodate(java.sql.Date inInfodate) {
		this.inInfodate = inInfodate;
	}
	public int getInInfoYear() {
		return inInfoYear;
	}
	public void setInInfoYear(int inInfoYear) {
		this.inInfoYear = inInfoYear;
	}
	public int getInInfoMonth() {
		return inInfoMonth;
	}
	public void setInInfoMonth(int inInfoMonth) {
		this.inInfoMonth = inInfoMonth;
	}
	public int getInInfoDay() {
		return inInfoDay;
	}
	public void setInInfoDay(int inInfoDay) {
		this.inInfoDay = inInfoDay;
	}
	public java.sql.Date getInRegdate() {
		return inRegdate;
	}
	public void setInRegdate(java.sql.Date inRegdate) {
		this.inRegdate = inRegdate;
	}
	public int getInJudge() {
		return inJudge;
	}
	public void setInJudge(int inJudge) {
		this.inJudge = inJudge;
		switch (inJudge) {
		case 1:
			this.isJudge1 = STRCORRECT;
			break;
		case 2:
			this.isJudge2 = STRCORRECT;
			break;
		case 3:
			this.isJudge3 = STRCORRECT;
			break;
		case 4:
			this.isJudge4 = STRCORRECT;
			break;
		case 5:
			this.isJudge5 = STRCORRECT;
			break;
		case 6:
			this.isJudge6 = STRCORRECT;
			break;
		case 7:
			this.isJudge7 = STRCORRECT;
			break;
		case 8:
			this.isJudge8 = STRCORRECT;
			break;
		default:
			break;
		}
	}

	public String getInOfflineType() {
		return inOfflineType;
	}
	public void setInOfflineType(String inOfflineType) {
		this.inOfflineType = inOfflineType;
	}
	public String getInOfflineUserid() {
		return inOfflineUserid;
	}
	public void setInOfflineUserid(String inOfflineUserid) {
		this.inOfflineUserid = inOfflineUserid;
	}
	public String getInComplete() {
		return inComplete;
	}
	public void setInComplete(String inComplete) {
		this.inComplete = inComplete;
	}
	public String getInOld() {
		return inOld;
	}
	public void setInOld(String inOld) {
		this.inOld = inOld;
	}
	public String getInDelete() {
		return inDelete;
	}
	public void setInDelete(String inDelete) {
		this.inDelete = inDelete;
	}
	public String getInStateCode() {
		return inStateCode;
	}
	public void setInStateCode(String inStateCode) {
		this.inStateCode = inStateCode;
		
		this.stateCode1 = Character.getNumericValue(inStateCode.charAt(0));
		this.stateCode2 = Character.getNumericValue(inStateCode.charAt(1));
		
		this.stateCodeName = ReportCommon.getStateCodeNm(inStateCode);
		
		// 결재 처리목록에서 사용할 변수 설정
		int myGroupCode = ReportCommon.getMyGroupCode();
		int stateChar1 = Character.getNumericValue(inStateCode.charAt(0));
		int stateChar2 = Character.getNumericValue(inStateCode.charAt(1));
		if (stateChar2 == 2 || stateChar2 == 4 || stateChar1 > myGroupCode) {
			this.isSection = STRCORRECT;
		}
		if (stateChar2 == 3 || stateChar2 == 4 || stateChar1 > myGroupCode) {
			this.isHead = STRCORRECT;
		}
	}
	public MultipartFile getFileObj1() {
		return fileObj1;
	}
	public void setFileObj1(MultipartFile fileObj1) {
		this.fileObj1 = fileObj1;
	}
	public MultipartFile getFileObj2() {
		return fileObj2;
	}
	public void setFileObj2(MultipartFile fileObj2) {
		this.fileObj2 = fileObj2;
	}
	public MultipartFile getFileObj3() {
		return fileObj3;
	}
	public void setFileObj3(MultipartFile fileObj3) {
		this.fileObj3 = fileObj3;
	}
	public String getStateCodeName() {
		return stateCodeName;
	}
	public void setStateCodeName(String stateCodeName) {
		this.stateCodeName = stateCodeName;
	}
	public String getInCategory1Str() {
		return inCategory1Str;
	}
	public void setInCategory1Str(String inCategory1Str) {
		this.inCategory1Str = inCategory1Str;
	}
	public String getInCategory2Str() {
		return inCategory2Str;
	}
	public void setInCategory2Str(String inCategory2Str) {
		this.inCategory2Str = inCategory2Str;
	}
	public String getDocNo() {
		return docNo;
	}
	public void setDocNo(String docNo) {
		this.docNo = docNo;
	}
	public String getJudgeStr() {
		return judgeStr;
	}
	public void setJudgeStr(String judgeStr) {
		this.judgeStr = judgeStr;
	}
	public String getFullReportStr() {
		return fullReportStr;
	}
	public void setFullReportStr(String fullReportStr) {
		this.fullReportStr = fullReportStr;
	}
	public String getJuMsg() {
		return juMsg;
	}
	public void setJuMsg(String juMsg) {
		this.juMsg = juMsg;
	}
	public String getIsHead() {
		return isHead;
	}
	public String getIsSection() {
		return isSection;
	}
	public String getIsJudge1() {
		return isJudge1;
	}
	public String getIsJudge2() {
		return isJudge2;
	}
	public String getIsJudge3() {
		return isJudge3;
	}
	public String getIsJudge4() {
		return isJudge4;
	}
	public String getIsJudge5() {
		return isJudge5;
	}
	public String getIsJudge6() {
		return isJudge6;
	}
	public String getIsJudge7() {
		return isJudge7;
	}
	public String getIsJudge8() {
		return isJudge8;
	}
	public String getIsReport1() {
		return isReport1;
	}
	public String getIsReport2() {
		return isReport2;
	}
	public String getCateStrOrder() {
		return cateStrOrder;
	}
	public void setCateStrOrder(String cateStrOrder) {
		this.cateStrOrder = cateStrOrder;
	}
	
	public int getStateCode1() {
		return stateCode1;
	}
	public void setStateCode1(int stateCode1) {
		this.stateCode1 = stateCode1;
	}
	public int getStateCode2() {
		return stateCode2;
	}
	public void setStateCode2(int stateCode2) {
		this.stateCode2 = stateCode2;
	}
	public String getInDocPlace() {
		return inDocPlace;
	}
	public void setInDocPlace(String inDocPlace) {
		this.inDocPlace = inDocPlace;
	}
	public String getInPlace() {
		return inPlace;
	}
	public void setInPlace(String inPlace) {
		this.inPlace = inPlace;
	}
	public String getInTypeCode() {
		return inTypeCode;
	}
	public void setInTypeCode(String inTypeCode) {
		this.inTypeCode = inTypeCode;
	}

	public int getInJuseqSection() {
		return inJuseqSection;
	}
	public void setInJuseqSection(int inJuseqSection) {
		this.inJuseqSection = inJuseqSection;
	}
	public int getInJuseqHead() {
		return inJuseqHead;
	}
	public void setInJuseqHead(int inJuseqHead) {
		this.inJuseqHead = inJuseqHead;
	}
	public String getInDuty() {
		return inDuty;
	}
	public void setInDuty(String inDuty) {
		this.inDuty = inDuty;
		this.reporter  = (inDuty == null ? "" : inDuty) + " " + (inName == null ? "" : inName);
	}
	public String getInName() {
		return inName;
	}
	public void setInName(String inName) {
		this.inName = inName;
		this.reporter  = (inDuty == null ? "" : inDuty) + " " + (inName == null ? "" : inName);
	}
	public String getInFile1() {
		return inFile1;
	}
	public void setInFile1(String inFile1) {
		this.inFile1 = inFile1;
	}
	public String getInFile2() {
		return inFile2;
	}
	public void setInFile2(String inFile2) {
		this.inFile2 = inFile2;
	}
	public String getInFile3() {
		return inFile3;
	}
	public void setInFile3(String inFile3) {
		this.inFile3 = inFile3;
	}
	public String getInFileName1() {
		return inFileName1;
	}
	public void setInFileName1(String inFileName1) {
		this.inFileName1 = inFileName1;
	}
	public String getInFileName2() {
		return inFileName2;
	}
	public void setInFileName2(String inFileName2) {
		this.inFileName2 = inFileName2;
	}
	public String getInFileName3() {
		return inFileName3;
	}
	public void setInFileName3(String inFileName3) {
		this.inFileName3 = inFileName3;
	}
	public String getInChkdate() {
		return inChkdate;
	}
	public void setInChkdate(String inChkdate) {
		this.inChkdate = inChkdate;
	}
	
	public String getInInfodateStr() {
		String yyyymmdd = String.valueOf(inInfoYear) + "-" + String.format("%02d", inInfoMonth)  + "-" + String.format("%02d", inInfoDay) ;
		return yyyymmdd;
	}
	public String getInRegdateStr() {
		return inRegdateStr;
	}
	public void setInRegdateStr(String inRegdateStr) {
		this.inRegdateStr = inRegdateStr;
	}
	
}