package com.jwipc.contract.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jwipc.contract.entity.ContractPayStage;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 功能描述:
 *
 * @Author: zx
 * @Date: 2024/3/7 0007 17:21
 */
@Data
public class ContractDTO implements Serializable {

    private Long id;
    /**
     * 标题
     */
    private String contractTitle;

    /**
     * 合同编码
     */
    private String contractCode;

    /**
     * 合同状态
     */
    private Integer contractState;

    /**
     * 合同分类
     */
    private String contractType;

    /**
     * 公司编码
     */
    private String contractCompanyCode;

    /**
     * 公司名称
     */
    private String contractCompanyName;

    /**
     * 工厂编码
     */
    private String contractFactoryCode;

    /**
     * 工厂名称
     */
    private String contractFactoryName;

    /**
     * 工厂地址
     */
    private String contractFactoryAddres;

    /**
     * 供应商编码
     */
    private String contractSupplierCode;

    /**
     * 供应商名称
     */
    private String contractSupplierName;

    /**
     * 合同金额小写
     */
    private BigDecimal contractAmount;

    /**
     * 合同金额大写
     */
    private String contractAmountCapital;

    /**
     * 货币编码
     */
    private String contractCurrency;

    /**
     * 付款方式
     */
    private String contractPaymentWay;

    /**
     * 承兑比例
     */
    private BigDecimal contractAcceptance;

    /**
     * 发票类型
     */
    private Integer contractInvoiceCode;

    /**
     * 订单类型
     */
    private String contractOrderType;

    /**
     * 申请人
     */
    private String contractDemandUser;

    /**
     * 申请人部门
     */
    private String contractDemandUserDept;

    /**
     * 签署顺序
     */
    private String contractSignOrder;

    /**
     * 签章类别
     */
    private String contractSealType;

    /**
     * 采购组编码
     */
    private String contractPurchaseGroup;

    /**
     * 采购组织编码
     */
    private String contractPurchaseGroupCode;

    /**
     * 备注
     */
    private String contractApplyContent;

    /**
     * 创建日期
     */
    private LocalDateTime createTime;

    /**
     * 附件集合
     */
    private String contractFiles;

    /**
     * 盖章文件集合
     */
    private String contractSignFiels;

    private String contractSignFileStatue;

    List<ContractPayStage> payStages ;

    private String associationContract;

    private String oaProcessId;

    private String oaCode;

    private String oaMsg;

    private String userAccount;

    private String isSeal;

    private Integer isMro ;

    private Integer isSap ;

    private String contractCover;

    private String orderCode;

    private String signFile;

    private Integer dataSources ;

    private Long dataSourcesId;

    private String dataSourcesNo;

    private BigDecimal sumPaymentPlusAmount;

    private String contractDraft;

    private Integer isRaise;

    private String checkState;

    private String checkNo;

    private LocalDateTime checkDate;

    private String qualityDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate signDate;

    /**
     * 变更类型(01-采购明细变更;02-付款条件变更;03-责权变更)
     */
    private String changeType;

    /**
     * 共享终止合同评审单ID
     */
    private String gxTerminateContractId;

    /**
     * 共享终止合同评审单编码
     */
    private String gxTerminateContractCode;

    private LocalDateTime updateTime;

    private Integer isInitial;

}
