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

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

import com.fasterxml.jackson.annotation.JsonFormat;

import com.google.common.collect.Lists;
import com.jeeplus.common.persistence.ActEntity;
import com.jeeplus.common.persistence.DataEntity;
import com.jeeplus.common.utils.excel.annotation.ExcelField;
import com.jeeplus.modules.exampleeconomics.entity.ExampleEconomics;
import com.jeeplus.modules.exampleexpend.entity.ExampleExpend;
import com.jeeplus.modules.exampleproject.entity.ExampleProject;
import com.jeeplus.modules.examplesingle.entity.ExampleSingle;
import com.jeeplus.modules.sys.entity.Area;
import com.jeeplus.modules.sys.entity.MainDictDetail;
import org.activiti.engine.history.HistoricProcessInstance;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;

/**
 * 案例Entity
 * @author ssrh
 * @version 2018-08-27
 */
public class WorkExample extends ActEntity<WorkExample> {
	//通知类型 76    //ggh3125f1f194c82b0000uuyic750904
	private static final long serialVersionUID = 1L;
	private String companyId;		// 公司
	private String officeId;		// 部门
	private String officeName;      //所属部门
	private Area area;		// 地区Id
	private String status;		// 状态
	private String name;		// 工程名称
	private String type;		// 工程类型
	private String address;		// 工程地点
	private String buildScale;		// 建设规模
	private String modus;		// 结构形式
	private String basicType;		// 基础类型
	private String scale;		// 规       模
	private String safeLevel;		// 结构安全等级
	private String stage;		// 编制阶段
	private String investmentType;		// 投资类型
	private String valuationType;		// 计价类型
	private String valuationAccording;		// 计价依据
	private String biddingPrice;		// 招标基准信息价
	private String taxModel;		// 计税模式
	private Date startDate;		// 开工日期
	private Date endDate;		//  竣工日期
	private String abovegroundArea;		// 地上建筑面积
	private String undergroundArea;		// 地下建筑面积
	private String civilArea;		// 人防建筑面积
	private String garageArea;		// 车库建筑面积
	private String abovegroundLayer;		// 地上层数
	private String undergroundLayer;		// 地下层数
	private String abovegroundHeight;		// 地上层高
	private String undergroundHeight;		// 地下层高
	private String totalHeight;		// 总  层  数
	private String eavesHeight;		// 檐       高
	private String insideDecoration;		// 内墙面装修
	private String outsideDecoration;		// 外墙面装修
	private String skylightDecoration;		// 天棚装修
	private String floorDecoration;		// 楼地面装修
	private String door;		// 门
	private String window;		// 窗
	private String instruction;		// 其他说明
	private String indexId;		// 预留id
	private String itemId;		// 预留id2
	private String processInstanceId;		// 流程
	private String home;
	private Date beginContractDate;		// 开始
	private Date endContractDate;		// 结束
	private String exampleType;
	private String exampleTypeName;
	private String workType; //工程类型
	private BigDecimal counts;
	private BigDecimal avgs;
	private BigDecimal sums;
	private BigDecimal mins;
	private BigDecimal maxs;
	private String dictId;
	private List<ExampleProject> exampleProjectList = Lists.newArrayList();; //主要工程量指标
	private List<ExampleExpend> exampleExpendList = Lists.newArrayList();; //主要工料价格及消耗量指标
	private List<ExampleEconomics> exampleEconomicsList = Lists.newArrayList();;//经济指标

	private MainDictDetail mainDictDetail;
	// 流程任务

	//单项工程造价指标
	private List<ExampleSingle> exampleSingleList = Lists.newArrayList();
	// 流程任务
	private Task task;
	private Map<String, Object> variables;
	// 运行中的流程实例
	private ProcessInstance processInstance;
	// 历史的流程实例
	private HistoricProcessInstance historicProcessInstance;
	// 流程定义
	private ProcessDefinition processDefinition;

	public Task getTask() {
		return task;
	}

	public void setTask(Task task) {
		this.task = task;
	}

	public Map<String, Object> getVariables() {
		return variables;
	}

	public void setVariables(Map<String, Object> variables) {
		this.variables = variables;
	}

	public ProcessInstance getProcessInstance() {
		return processInstance;
	}

	public Area getArea() {
		return area;
	}

	public MainDictDetail getMainDictDetail() {
		return mainDictDetail;
	}

	public void setMainDictDetail(MainDictDetail mainDictDetail) {
		this.mainDictDetail = mainDictDetail;
	}

	public void setArea(Area area) {
		this.area = area;
	}

	public void setProcessInstance(ProcessInstance processInstance) {
		this.processInstance = processInstance;
	}

	public HistoricProcessInstance getHistoricProcessInstance() {
		return historicProcessInstance;
	}

	public void setHistoricProcessInstance(HistoricProcessInstance historicProcessInstance) {
		this.historicProcessInstance = historicProcessInstance;
	}

	public ProcessDefinition getProcessDefinition() {
		return processDefinition;
	}

	public void setProcessDefinition(ProcessDefinition processDefinition) {
		this.processDefinition = processDefinition;
	}

	public WorkExample() {
		super();
	}

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

	@ExcelField(title="公司", align=2, sort=7)
	public String getCompanyId() {
		return companyId;
	}

	public void setCompanyId(String companyId) {
		this.companyId = companyId;
	}
	
	@ExcelField(title="部门", align=2, sort=8)
	public String getOfficeId() {
		return officeId;
	}

	public void setOfficeId(String officeId) {
		this.officeId = officeId;
	}
	
	@ExcelField(title="状态", align=2, sort=9)
	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public String getOfficeName() {
		return officeName;
	}

	public void setOfficeName(String officeName) {
		this.officeName = officeName;
	}

	public String getHome() {
		return home;
	}

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

	@ExcelField(title="工程名称", align=2, sort=10)
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	@ExcelField(title="工程类型", align=2, sort=11)
	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public List<ExampleSingle> getExampleSingleList() {
		return exampleSingleList;
	}

	public void setExampleSingleList(List<ExampleSingle> exampleSingleList) {
		this.exampleSingleList = exampleSingleList;
	}

	@ExcelField(title="工程地点", align=2, sort=12)
	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	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;
	}

	@ExcelField(title="建设规模", align=2, sort=13)
	public String getBuildScale() {
		return buildScale;
	}

	public void setBuildScale(String buildScale) {
		this.buildScale = buildScale;
	}
	
	@ExcelField(title="结构形式", align=2, sort=14)
	public String getModus() {
		return modus;
	}

	public void setModus(String modus) {
		this.modus = modus;
	}
	
	@ExcelField(title="基础类型", align=2, sort=15)
	public String getBasicType() {
		return basicType;
	}

	public void setBasicType(String basicType) {
		this.basicType = basicType;
	}
	
	@ExcelField(title="规       模", align=2, sort=16)
	public String getScale() {
		return scale;
	}

	public void setScale(String scale) {
		this.scale = scale;
	}
	
	@ExcelField(title="结构安全等级", align=2, sort=17)
	public String getSafeLevel() {
		return safeLevel;
	}

	public void setSafeLevel(String safeLevel) {
		this.safeLevel = safeLevel;
	}
	
	@ExcelField(title="编制阶段", align=2, sort=18)
	public String getStage() {
		return stage;
	}

	public void setStage(String stage) {
		this.stage = stage;
	}
	
	@ExcelField(title="投资类型", align=2, sort=19)
	public String getInvestmentType() {
		return investmentType;
	}

	public void setInvestmentType(String investmentType) {
		this.investmentType = investmentType;
	}
	
	@ExcelField(title="计价类型", align=2, sort=20)
	public String getValuationType() {
		return valuationType;
	}

	public void setValuationType(String valuationType) {
		this.valuationType = valuationType;
	}
	
	@ExcelField(title="计价依据", align=2, sort=21)
	public String getValuationAccording() {
		return valuationAccording;
	}

	public void setValuationAccording(String valuationAccording) {
		this.valuationAccording = valuationAccording;
	}
	
	@ExcelField(title="招标基准信息价", align=2, sort=22)
	public String getBiddingPrice() {
		return biddingPrice;
	}

	public void setBiddingPrice(String biddingPrice) {
		this.biddingPrice = biddingPrice;
	}
	
	@ExcelField(title="计税模式", align=2, sort=23)
	public String getTaxModel() {
		return taxModel;
	}

	public void setTaxModel(String taxModel) {
		this.taxModel = taxModel;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="开工日期", align=2, sort=24)
	public Date getStartDate() {
		return startDate;
	}

	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title=" 竣工日期", align=2, sort=25)
	public Date getEndDate() {
		return endDate;
	}

	public void setEndDate(Date endDate) {
		this.endDate = endDate;
	}
	
	@ExcelField(title="地上建筑面积", align=2, sort=26)
	public String getAbovegroundArea() {
		return abovegroundArea;
	}

	public void setAbovegroundArea(String abovegroundArea) {
		this.abovegroundArea = abovegroundArea;
	}
	
	@ExcelField(title="地下建筑面积", align=2, sort=27)
	public String getUndergroundArea() {
		return undergroundArea;
	}

	public void setUndergroundArea(String undergroundArea) {
		this.undergroundArea = undergroundArea;
	}
	
	@ExcelField(title="人防建筑面积", align=2, sort=28)
	public String getCivilArea() {
		return civilArea;
	}

	public void setCivilArea(String civilArea) {
		this.civilArea = civilArea;
	}
	
	@ExcelField(title="车库建筑面积", align=2, sort=29)
	public String getGarageArea() {
		return garageArea;
	}

	public void setGarageArea(String garageArea) {
		this.garageArea = garageArea;
	}
	
	@ExcelField(title="地上层数", align=2, sort=30)
	public String getAbovegroundLayer() {
		return abovegroundLayer;
	}

	public void setAbovegroundLayer(String abovegroundLayer) {
		this.abovegroundLayer = abovegroundLayer;
	}
	
	@ExcelField(title="地下层数", align=2, sort=31)
	public String getUndergroundLayer() {
		return undergroundLayer;
	}

	public void setUndergroundLayer(String undergroundLayer) {
		this.undergroundLayer = undergroundLayer;
	}
	
	@ExcelField(title="地上层高", align=2, sort=32)
	public String getAbovegroundHeight() {
		return abovegroundHeight;
	}

	public void setAbovegroundHeight(String abovegroundHeight) {
		this.abovegroundHeight = abovegroundHeight;
	}
	
	@ExcelField(title="地下层高", align=2, sort=33)
	public String getUndergroundHeight() {
		return undergroundHeight;
	}

	public void setUndergroundHeight(String undergroundHeight) {
		this.undergroundHeight = undergroundHeight;
	}
	
	@ExcelField(title="总  层  数", align=2, sort=34)
	public String getTotalHeight() {
		return totalHeight;
	}

	public void setTotalHeight(String totalHeight) {
		this.totalHeight = totalHeight;
	}
	
	@ExcelField(title="檐       高", align=2, sort=35)
	public String getEavesHeight() {
		return eavesHeight;
	}

	public void setEavesHeight(String eavesHeight) {
		this.eavesHeight = eavesHeight;
	}

	@ExcelField(title="内墙面装修", align=2, sort=36)
	public String getInsideDecoration() {
		return insideDecoration;
	}

	public void setInsideDecoration(String insideDecoration) {
		this.insideDecoration = insideDecoration;
	}

	@ExcelField(title="外墙面装修", align=2, sort=37)
	public String getOutsideDecoration() {
		return outsideDecoration;
	}

	public void setOutsideDecoration(String outsideDecoration) {
		this.outsideDecoration = outsideDecoration;
	}
	
	@ExcelField(title="天棚装修", align=2, sort=38)
	public String getSkylightDecoration() {
		return skylightDecoration;
	}

	public void setSkylightDecoration(String skylightDecoration) {
		this.skylightDecoration = skylightDecoration;
	}
	
	@ExcelField(title="楼地面装修", align=2, sort=39)
	public String getFloorDecoration() {
		return floorDecoration;
	}

	public void setFloorDecoration(String floorDecoration) {
		this.floorDecoration = floorDecoration;
	}
	
	@ExcelField(title="门", align=2, sort=40)
	public String getDoor() {
		return door;
	}

	public void setDoor(String door) {
		this.door = door;
	}
	
	@ExcelField(title="窗", align=2, sort=41)
	public String getWindow() {
		return window;
	}

	public void setWindow(String window) {
		this.window = window;
	}
	
	@ExcelField(title="其他说明", align=2, sort=42)
	public String getInstruction() {
		return instruction;
	}

	public void setInstruction(String instruction) {
		this.instruction = instruction;
	}
	
	@ExcelField(title="预留id", align=2, sort=43)
	public String getIndexId() {
		return indexId;
	}

	public void setIndexId(String indexId) {
		this.indexId = indexId;
	}
	
	@ExcelField(title="预留id2", align=2, sort=44)
	public String getItemId() {
		return itemId;
	}

	public void setItemId(String itemId) {
		this.itemId = itemId;
	}
	
	@ExcelField(title="流程", align=2, sort=45)
	public String getProcessInstanceId() {
		return processInstanceId;
	}

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

    public String getExampleType() {
        return exampleType;
    }

    public void setExampleType(String exampleType) {
        this.exampleType = exampleType;
    }

    public BigDecimal getCounts() {
        return counts;
    }

    public void setCounts(BigDecimal counts) {
        this.counts = counts;
    }

    public BigDecimal getAvgs() {
        return avgs;
    }

    public void setAvgs(BigDecimal avgs) {
        this.avgs = avgs;
    }

    public BigDecimal getMins() {
        return mins;
    }

    public void setMins(BigDecimal mins) {
        this.mins = mins;
    }

    public BigDecimal getMaxs() {
        return maxs;
    }

    public void setMaxs(BigDecimal maxs) {
        this.maxs = maxs;
    }

    public BigDecimal getSums() {
        return sums;
    }

    public void setSums(BigDecimal sums) {
        this.sums = sums;
    }

    public String getDictId() {
        return dictId;
    }

    public void setDictId(String dictId) {
        this.dictId = dictId;
    }

	public String getWorkType() {
		return workType;
	}

	public void setWorkType(String workType) {
		this.workType = workType;
	}

	public List<ExampleProject> getExampleProjectList() {
		return exampleProjectList;
	}

	public void setExampleProjectList(List<ExampleProject> exampleProjectList) {
		this.exampleProjectList = exampleProjectList;
	}

	public List<ExampleExpend> getExampleExpendList() {
		return exampleExpendList;
	}

	public void setExampleExpendList(List<ExampleExpend> exampleExpendList) {
		this.exampleExpendList = exampleExpendList;
	}

	public List<ExampleEconomics> getExampleEconomicsList() {
		return exampleEconomicsList;
	}

	public void setExampleEconomicsList(List<ExampleEconomics> exampleEconomicsList) {
		this.exampleEconomicsList = exampleEconomicsList;
	}

	public String getExampleTypeName() {
		return exampleTypeName;
	}

	public void setExampleTypeName(String exampleTypeName) {
		this.exampleTypeName = exampleTypeName;
	}
}