package com.sifang.modules.customer.entity;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.TypeDef;
import org.hibernate.annotations.TypeDefs;


import javax.persistence.*;
import java.io.Serializable;

import java.math.BigInteger;
import java.util.Date;

/**
 * 进件申请

 * @TableName crm_customer_incoming_application
 */

@Entity
@Table(name = "crm_customer_incoming_application")
public class CrmCustomerIncomingApplication implements Serializable {
    /**
     * id
     */
    private String id;
    private String entryId;
    private String projectStatus;
    private String projectStatusDetails;
    private Date applyTime;
    private String applyBy;
    private Date updateTime;
    private String imgUpload;

    private String partnersContractNumber;//进件序号
    private String paymentApplyStatus;//投放款付款申请状态(NEW-新建,APPROVING-审批中,APPROVED-审批通过,REJECTED-审批拒绝,CANCEL-取消,BACK-撤回)
    private String paymentStatus;//投放款支付状态:NEW-新建,PAYING-支付中,PAID-已支付,FAILURE-支付失败
    private Date paymentFinishTime;//投放款申请状态通过的时间

    private String contractNumber;//越秀合同编号

    private String secStatus;//第二次进件状态


    private String status;

    private String farmerSignStatus;

    private String farmerSignDetailsStatus; // 农户投放审查明细状态(BUSAPPROVING-业务审核,TECHAPPROVING-完工审核,WAITING-等待推送并网及商务信息及附件,GRIDRETURN-退回补充并网及商务信息及附件,GRIDAPPROVING-并网商务审核,GRIDPOWERAPPROVING-发电审核,TECHREJECTED-完工审批拒绝,GRIDREJECTED-并网商务审批拒绝)

    private String contractTextStatus;

    private String cancelReason;

    private String updateBy;

    private String tenantStatus;

    private Long version;

    private String ifDelete;

    private String inputPieceId;

    private String partnerId;
    private String mergeSate;
    //终止进件的状态
    private String terminateInputPieceState;

    public String getTerminateInputPieceState() {
        return terminateInputPieceState;
    }

    public void setTerminateInputPieceState(String terminateInputPieceState) {
        this.terminateInputPieceState = terminateInputPieceState;
    }

    public String getFarmerSignDetailsStatus() {
        return farmerSignDetailsStatus;
    }

    public void setFarmerSignDetailsStatus(String farmerSignDetailsStatus) {
        this.farmerSignDetailsStatus = farmerSignDetailsStatus;
    }

    public String getIfDelete() {
        return ifDelete;
    }

    public void setIfDelete(String ifDelete) {
        this.ifDelete = ifDelete;
    }

    public CrmCustomerIncomingApplication() {
        super();
        this.status="0";
        this.ifDelete="0";
    }

    public Long getVersion() {
        return version;
    }

    public void setVersion(Long version) {

        this.version = version;
    }

    public String getTenantStatus() {
        return tenantStatus;
    }

    public void setTenantStatus(String tenantStatus) {
        this.tenantStatus = tenantStatus;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public String getStatus() {
        return status;
    }

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

    public String getFarmerSignStatus() {
        return farmerSignStatus;
    }

    public void setFarmerSignStatus(String farmerSignStatus) {
        this.farmerSignStatus = farmerSignStatus;
    }

    public String getContractTextStatus() {
        return contractTextStatus;
    }

    public void setContractTextStatus(String contractTextStatus) {
        this.contractTextStatus = contractTextStatus;
    }

    public String getCancelReason() {
        return cancelReason;
    }

    public void setCancelReason(String cancelReason) {
        this.cancelReason = cancelReason;
    }

    @Id
    @GeneratedValue(generator = "idGenerator")
    @GenericGenerator(name = "idGenerator", strategy = "uuid")
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getEntryId() {
        return entryId;
    }

    public void setEntryId(String entryId) {
        this.entryId = entryId;
    }

    public String getProjectStatus() {
        return projectStatus;
    }

    public void setProjectStatus(String projectStatus) {
        this.projectStatus = projectStatus;
    }

    public String getProjectStatusDetails() {
        return projectStatusDetails;
    }

    public void setProjectStatusDetails(String projectStatusDetails) {
        this.projectStatusDetails = projectStatusDetails;
    }

    public Date getApplyTime() {
        return applyTime;
    }

    public void setApplyTime(Date applyTime) {
        this.applyTime = applyTime;
    }

    public String getApplyBy() {
        return applyBy;
    }

    public void setApplyBy(String applyBy) {
        this.applyBy = applyBy;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getImgUpload() {
        return imgUpload;
    }

    public void setImgUpload(String imgUpload) {
        this.imgUpload = imgUpload;
    }

    public String getPartnersContractNumber() {
        return partnersContractNumber;
    }

    public void setPartnersContractNumber(String partnersContractNumber) {
        this.partnersContractNumber = partnersContractNumber;
    }

    public String getContractNumber() {
        return contractNumber;
    }

    public void setContractNumber(String contractNumber) {
        this.contractNumber = contractNumber;
    }

    public String getSecStatus() {
        return secStatus;
    }

    public void setSecStatus(String secStatus) {
        this.secStatus = secStatus;
    }

    public String getPaymentApplyStatus() {
        return paymentApplyStatus;
    }

    public void setPaymentApplyStatus(String paymentApplyStatus) {
        this.paymentApplyStatus = paymentApplyStatus;
    }

    public String getPaymentStatus() {
        return paymentStatus;
    }

    public void setPaymentStatus(String paymentStatus) {
        this.paymentStatus = paymentStatus;
    }

    public Date getPaymentFinishTime() {
        return paymentFinishTime;
    }

    public void setPaymentFinishTime(Date paymentFinishTime) {
        this.paymentFinishTime = paymentFinishTime;
    }

    public String getInputPieceId() {
        return inputPieceId;
    }

    public void setInputPieceId(String inputPieceId) {
        this.inputPieceId = inputPieceId;
    }

    public String getPartnerId() {
        return partnerId;
    }

    public void setPartnerId(String partnerId) {
        this.partnerId = partnerId;
    }

    public void setMergeSate(String mergeSate) {
        this.mergeSate = mergeSate;
    }

    public String getMergeSate() {
        return mergeSate;
    }
}