/**
 * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
 */
package com.jeeplus.modules.workadministrativeatamp.entity;

import com.google.common.collect.Lists;
import com.jeeplus.common.persistence.ActEntity;
import com.jeeplus.modules.sys.entity.Office;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;

import com.jeeplus.common.persistence.DataEntity;
import com.jeeplus.common.utils.excel.annotation.ExcelField;
import com.jeeplus.modules.sys.entity.User;
import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;

/**
 * 行政盖章Entity
 * @author ssrh
 * @version 2018-07-10
 */
public class WorkAdministrativeAtamp extends ActEntity<WorkAdministrativeAtamp> {
	
	private static final long serialVersionUID = 1L;
    public static final String ATTACHMENT_TYPE = "102";
    public static final String SERIAL_BIZCODE = "12";
    private Office office;		// 部门ID
	private Office company;		// 公司ID
	private String docType;		// 文档类型
	private String num;		// 申请编号
	private Office comSign;		// 签章公司
	private User submiter;		// 申请人
	private Date submitDate;		// 申请日期
	private String sealType;		// 印章类型
	private Integer state;		// 审批状态
	private String processInstanceId;		// 流程ID
    private List<WorkClientAttachment> workAttachments = Lists.newArrayList();
    private Date beginDate;
    private Date endDate;
    private String home;
	
	public WorkAdministrativeAtamp() {
		super();
	}

	public WorkAdministrativeAtamp(String id){
		super(id);
	}

	@ExcelField(title="部门ID", align=2, sort=7)
	public Office getOffice() {
		return office;
	}

	public void setOffice(Office office) {
		this.office = office;
	}
	
	@ExcelField(title="公司ID", align=2, sort=8)
	public Office getCompany() {
		return company;
	}

	public void setCompany(Office company) {
		this.company = company;
	}
	
	@ExcelField(title="文档类型", dictType="", align=2, sort=9)
	public String getDocType() {
		return docType;
	}

	public void setDocType(String docType) {
		this.docType = docType;
	}
	
	@ExcelField(title="申请编号", align=2, sort=10)
	public String getNum() {
		return num;
	}

	public void setNum(String num) {
		this.num = num;
	}
	
	@NotNull(message="签章公司不能为空")
	@ExcelField(title="签章公司", fieldType=Office.class, value="", align=2, sort=11)
	public Office getComSign() {
		return comSign;
	}

	public void setComSign(Office comSign) {
		this.comSign = comSign;
	}

    public User getSubmiter() {
        return submiter;
    }

    public void setSubmiter(User submiter) {
        this.submiter = submiter;
    }

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@NotNull(message="申请日期不能为空")
	@ExcelField(title="申请日期", align=2, sort=13)
	public Date getSubmitDate() {
		return submitDate;
	}

	public void setSubmitDate(Date submitDate) {
		this.submitDate = submitDate;
	}
	
	@ExcelField(title="印章类型", dictType="", align=2, sort=14)
	public String getSealType() {
		return sealType;
	}

	public void setSealType(String sealType) {
		this.sealType = sealType;
	}
	
	@ExcelField(title="审批状态", align=2, sort=15)
	public Integer getState() {
		return state;
	}

	public void setState(Integer state) {
		this.state = state;
	}
	
	@ExcelField(title="流程ID", align=2, sort=16)
	public String getProcessInstanceId() {
		return processInstanceId;
	}

	public void setProcessInstanceId(String processInstanceId) {
		this.processInstanceId = processInstanceId;
	}

    public List<WorkClientAttachment> getWorkAttachments() {
        return workAttachments;
    }

    public void setWorkAttachments(List<WorkClientAttachment> workAttachments) {
        this.workAttachments = workAttachments;
    }

    public Date getBeginDate() {
        return beginDate;
    }

    public void setBeginDate(Date beginDate) {
        this.beginDate = beginDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public String getHome() {
        return home;
    }

    public void setHome(String home) {
        this.home = home;
    }
}