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

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import javax.validation.constraints.NotNull;

import com.jeeplus.common.persistence.DataEntity;
import com.jeeplus.common.utils.excel.annotation.ExcelField;
import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
import org.springframework.format.annotation.NumberFormat;

/**
 * 合同登记Entity
 * @author ssrh
 * @version 2018-06-12
 */
public class WorkContentContractinfo extends DataEntity<WorkContentContractinfo> {
	
	private static final long serialVersionUID = 1L;
	private String projectId;		// 项目id
	private String contentId;		// 工作内容ID
	private ProjectContentData program;		// 合约规划名称
	private String cnumber;		// 合同编号
	private String contCate;		// 合同分类
	private String contAttr;		// 合同属性
	private String lettingAgent;		// 发包人
	private String contractor;		// 承包人
	private String scope;		// 合同范围
	private Date signDate;		// 签约日期
	private Date effectDate;		// 生效日期
    @NumberFormat(style = NumberFormat.Style.CURRENCY)
	private Double titularAmt;		// 名义合同金额
    @NumberFormat(style = NumberFormat.Style.CURRENCY)
	private Double trueAmt;		// 有效合同金额
	private String pledgePercent;		// 保修金比例（%)
	private Date startWorkDate;		// 合同开工日期
	private Date endWorkDate;		// 合同竣工日期
	private String stopPercent;		// 止付比例（%）
    @NumberFormat(style = NumberFormat.Style.CURRENCY)
	private Double stopAmt;		// 止付金额
	private String status;		// 合同执行状态
	private String payType;		// 支付方式
    @NumberFormat(style = NumberFormat.Style.CURRENCY)
	private Double payAmt;		// 支付金额
	private Date startDate;		// 开始日期
	private Date endDate;		// 结束日期
    List<WorkContentContractTerm> termList;
	
	public WorkContentContractinfo() {
		super();
	}

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

	@ExcelField(title="项目id", align=2, sort=7)
	public String getProjectId() {
		return projectId;
	}

	public void setProjectId(String projectId) {
		this.projectId = projectId;
	}
	
	@ExcelField(title="工作内容ID", align=2, sort=8)
	public String getContentId() {
		return contentId;
	}

	public void setContentId(String contentId) {
		this.contentId = contentId;
	}

    public ProjectContentData getProgram() {
        return program;
    }

    public void setProgram(ProjectContentData program) {
        this.program = program;
    }

    @ExcelField(title="合同编号", align=2, sort=10)
	public String getCnumber() {
		return cnumber;
	}

	public void setCnumber(String cnumber) {
		this.cnumber = cnumber;
	}
	
	@ExcelField(title="合同分类", dictType="", align=2, sort=11)
	public String getContCate() {
		return contCate;
	}

	public void setContCate(String contCate) {
		this.contCate = contCate;
	}
	
	@ExcelField(title="合同属性", dictType="", align=2, sort=12)
	public String getContAttr() {
		return contAttr;
	}

	public void setContAttr(String contAttr) {
		this.contAttr = contAttr;
	}
	
	@ExcelField(title="发包人", align=2, sort=13)
	public String getLettingAgent() {
		return lettingAgent;
	}

	public void setLettingAgent(String lettingAgent) {
		this.lettingAgent = lettingAgent;
	}
	
	@ExcelField(title="承包人", align=2, sort=14)
	public String getContractor() {
		return contractor;
	}

	public void setContractor(String contractor) {
		this.contractor = contractor;
	}
	
	@ExcelField(title="合同范围", align=2, sort=15)
	public String getScope() {
		return scope;
	}

	public void setScope(String scope) {
		this.scope = scope;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@NotNull(message="签约日期不能为空")
	@ExcelField(title="签约日期", align=2, sort=16)
	public Date getSignDate() {
		return signDate;
	}

	public void setSignDate(Date signDate) {
		this.signDate = signDate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@NotNull(message="生效日期不能为空")
	@ExcelField(title="生效日期", align=2, sort=17)
	public Date getEffectDate() {
		return effectDate;
	}

	public void setEffectDate(Date effectDate) {
		this.effectDate = effectDate;
	}
	
	@ExcelField(title="名义合同金额", align=2, sort=18)
	public Double getTitularAmt() {
		return titularAmt;
	}

	public void setTitularAmt(Double titularAmt) {
		this.titularAmt = titularAmt;
	}
	
	@ExcelField(title="有效合同金额", align=2, sort=19)
	public Double getTrueAmt() {
		return trueAmt;
	}

	public void setTrueAmt(Double trueAmt) {
		this.trueAmt = trueAmt;
	}
	
	@ExcelField(title="保修金比例（%)", align=2, sort=20)
	public String getPledgePercent() {
		return pledgePercent;
	}

	public void setPledgePercent(String pledgePercent) {
		this.pledgePercent = pledgePercent;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@NotNull(message="合同开工日期不能为空")
	@ExcelField(title="合同开工日期", align=2, sort=21)
	public Date getStartWorkDate() {
		return startWorkDate;
	}

	public void setStartWorkDate(Date startWorkDate) {
		this.startWorkDate = startWorkDate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@NotNull(message="合同竣工日期不能为空")
	@ExcelField(title="合同竣工日期", align=2, sort=22)
	public Date getEndWorkDate() {
		return endWorkDate;
	}

	public void setEndWorkDate(Date endWorkDate) {
		this.endWorkDate = endWorkDate;
	}
	
	@ExcelField(title="止付比例（%）", align=2, sort=23)
	public String getStopPercent() {
		return stopPercent;
	}

	public void setStopPercent(String stopPercent) {
		this.stopPercent = stopPercent;
	}
	
	@ExcelField(title="止付金额", align=2, sort=24)
	public Double getStopAmt() {
		return stopAmt;
	}

	public void setStopAmt(Double stopAmt) {
		this.stopAmt = stopAmt;
	}
	
	@ExcelField(title="合同执行状态", dictType="", align=2, sort=25)
	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}
	
	@ExcelField(title="支付方式", align=2, sort=26)
	public String getPayType() {
		return payType;
	}

	public void setPayType(String payType) {
		this.payType = payType;
	}
	
	@ExcelField(title="支付金额", align=2, sort=27)
	public Double getPayAmt() {
		return payAmt;
	}

	public void setPayAmt(Double payAmt) {
		this.payAmt = payAmt;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@NotNull(message="开始日期不能为空")
	@ExcelField(title="开始日期", align=2, sort=28)
	public Date getStartDate() {
		return startDate;
	}

	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@NotNull(message="结束日期不能为空")
	@ExcelField(title="结束日期", align=2, sort=29)
	public Date getEndDate() {
		return endDate;
	}

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

    public List<WorkContentContractTerm> getTermList() {
        return termList;
    }

    public void setTermList(List<WorkContentContractTerm> termList) {
        this.termList = termList;
    }
}