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

import com.fasterxml.jackson.annotation.JsonFormat;
import com.google.common.collect.Lists;
import com.jeeplus.common.persistence.ActEntity;
import com.jeeplus.common.utils.excel.annotation.ExcelField;
import com.jeeplus.modules.alterinfo.entity.AlterInfo;
import com.jeeplus.modules.sys.entity.User;
import com.jeeplus.modules.sys.utils.DictUtils;
import com.jeeplus.modules.sys.utils.UserUtils;
import com.jeeplus.modules.workbidproject.entity.WorkBidProject;
import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
import com.jeeplus.modules.workclientinfo.entity.WorkClientInfo;
import com.jeeplus.modules.workfullmanage.entity.WorkFullRecord;
import com.jeeplus.modules.workinvoicedetail.entity.WorkInvoiceDetail;
import org.activiti.engine.history.HistoricProcessInstance;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 合同一览表
 * @author
 * @version
 */
public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
	private String id;		// 合同编号
	private String contractNum;		// 合同编号
	private String name;		// 合同名称
	private String ext;// 合同来源
	private String projectName;//投标项目
	private String projectNum;//投标标号
	private String totalContractName;//总合同名称
	private String officeName;
	private BigDecimal contractPrice;		// 合同金额(元）
    private String money1;
	private String contractState;		// 合同状态
	private String clientName;
	private Date beginContractDate;		// 开始 签订日期
	private Date endContractDate;		// 结束 签订日期
	private Date contractDate;		// 签订日期
	private Date effectiveDate;		// 合同生效日期
	private Date closingDate;		// 合同终止日期
	private String anotherContractNum;		// 对方合同编号
	private BigDecimal investmentAmount;//投资额
    private String money2;
    private String contractType;		// 合同类型
	private String recordState;		// 归档状态
	private String summaryPayment;//付款摘要
	private String contractSpecial;		// 合同特别条款
	private String contractTypeDoc;		//合同类型说明
	private String remarks;
	@Override
	public String getId() {
		return id;
	}

	@Override
	public void setId(String id) {
		this.id = id;
	}
	@ExcelField(title="合同编号", align=2, sort=1)
	public String getContractNum() {
		return contractNum;
	}

	public void setContractNum(String contractNum) {
		this.contractNum = contractNum;
	}
	@ExcelField(title="合同名称", align=2, sort=2)
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	@ExcelField(title="合同来源", align=2, sort=3)
	public String getExt() {
		if("0".equals(ext)){
			return "投标项目";
		}else{
			return "非投标项目";
		}

	}

	public void setExt(String ext) {
		this.ext = ext;
	}
	@ExcelField(title="投标名称", align=2, sort=4)
	public String getProjectName() {
		return projectName;
	}

	public void setProjectName(String projectName) {
		this.projectName = projectName;
	}
	@ExcelField(title="投标编号", align=2, sort=5)
	public String getProjectNum() {
		return projectNum;
	}

	public void setProjectNum(String projectNum) {
		this.projectNum = projectNum;
	}
	@ExcelField(title="总合同名称", align=2, sort=6)
	public String getTotalContractName() {
		return totalContractName;
	}

	public void setTotalContractName(String totalContractName) {
		this.totalContractName = totalContractName;
	}
	@ExcelField(title="所属部门", align=2, sort=7)
	public String getOfficeName() {
		return officeName;
	}
	public void setOfficeName(String officeName) {
		this.officeName = officeName;
	}
	public BigDecimal getContractPrice() {
		return contractPrice;
	}
	public void setContractPrice(BigDecimal contractPrice) {
		this.contractPrice = contractPrice;
	}
	@ExcelField(title="合同状态",dictType="audit_completion_state", align=2, sort=9)
	public String getContractState() {
		return contractState;
	}
	public void setContractState(String contractState) {
		this.contractState = contractState;
	}
	@ExcelField(title="委托方", align=2, sort=10)
	public String getClientName() {
		return clientName;
	}
	public void setClientName(String clientName) {
		this.clientName = clientName;
	}
	public Date getBeginContractDate() {
		return beginContractDate;
	}
	public void setBeginContractDate(Date beginContractDate) {
		this.beginContractDate = beginContractDate;
	}
	public Date getEndContractDate() {
		return endContractDate;
	}
	public void setEndContractDate(Date endContractDate) {
		this.endContractDate = endContractDate;
	}
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="签订日期", align=2, sort=11)
	public Date getContractDate() {
		return contractDate;
	}
	public void setContractDate(Date contractDate) {
		this.contractDate = contractDate;
	}
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="合同生效日期", align=2, sort=12)
	public Date getEffectiveDate() {
		return effectiveDate;
	}
	public void setEffectiveDate(Date effectiveDate) {
		this.effectiveDate = effectiveDate;
	}
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="合同终止日期", align=2, sort=13)
	public Date getClosingDate() {
		return closingDate;
	}
	public void setClosingDate(Date closingDate) {
		this.closingDate = closingDate;
	}
	@ExcelField(title="对方合同编号", align=2, sort=14)
	public String getAnotherContractNum() {
		return anotherContractNum;
	}
	public void setAnotherContractNum(String anotherContractNum) {
		this.anotherContractNum = anotherContractNum;
	}
	public BigDecimal getInvestmentAmount() {
		return investmentAmount;
	}
    @ExcelField(title="合同金额（元）", align=2, sort=8)
    public String getMoney1() {
        return UserUtils.getDecimalFormat(contractPrice);
    }
    @ExcelField(title="投资额（万元）", align=2, sort=15)
    public String getMoney2() {
        return UserUtils.getDecimalFormat(investmentAmount);
    }
	public void setInvestmentAmount(BigDecimal investmentAmount) {
		this.investmentAmount = investmentAmount;
	}
	@ExcelField(title="工程分类",mainDictType="contract_type",  align=2, sort=16)
	public String getContractType() {
		return contractType;
	}

	public void setContractType(String contractType) {
		this.contractType = contractType;
	}
	@ExcelField(title="归档状态",dictType="record_state",  align=2, sort=17)
	public String getRecordState() {
		return recordState;
	}

	public void setRecordState(String recordState) {
		this.recordState = recordState;
	}
	@ExcelField(title="付款摘要", align=2, sort=18)
	public String getSummaryPayment() {
		return summaryPayment;
	}

	public void setSummaryPayment(String summaryPayment) {
		this.summaryPayment = summaryPayment;
	}
	@ExcelField(title="合同特别条款", align=2, sort=19)
	public String getContractSpecial() {
		return contractSpecial;
	}

	public void setContractSpecial(String contractSpecial) {
		this.contractSpecial = contractSpecial;
	}
	@ExcelField(title="合同类型说明",mainDictType="contract_info_type", align=2, sort=20)
	public String getContractTypeDoc() {
		return contractTypeDoc;
	}

	public void setContractTypeDoc(String contractTypeDoc) {
		this.contractTypeDoc = contractTypeDoc;
	}

	@Override
	@ExcelField(title="备注信息", align=2, sort=21)
	public String getRemarks() {
		return remarks;
	}

	@Override
	public void setRemarks(String remarks) {
		this.remarks = remarks;
	}



}