package com.jeeplus.assess.program.configuration.projectList.service.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeeplus.assess.program.configuration.projectList.domain.ProgramProjectListLink;
import com.jeeplus.assess.program.configuration.projectList.domain.ProgramProjectListMember;
import com.jeeplus.core.domain.BaseEntity;
import com.jeeplus.sys.domain.WorkAttachmentInfo;
import com.jeeplus.sys.service.dto.WorkAttachmentInfoDTO;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

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

@Data
public class ProjectListDto extends BaseEntity {

    public static final String BIZ_CODE = "xmlb";
    public static final String BIY_CODE = "6";

    private String contractId;

    private String contractName;

    private String client;

    private String clientName;

    private String amount;

    private String contractType;

    private String name;

    private String no;

    private String projectType;

    private String approvalNo;

    private String company;

    private String projectMould;

    private String propertyHolder;

    private String propertyHolderName;

    private String location;

    private String isFirst;

    private String yearNum;

    private String checkYear;

    private String projectManager;

    private String projectManagerName;

    private String reportType;

    private String industry;

    private String enterpriseType;

    private String riskLevel;

    private String projectSource;

    private BigDecimal estimate;

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

    private Integer useNum;

    private Integer appointment;

    private Double workHours;

    private String remarks;

    private String assessmentEnterprise;

    private String assessmentEnterpriseName;

    private String linkNum;

    private String relationship;

    private String assessmentWay;

    private String assessmentObjective;

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

    private BigDecimal num;

    private String projectDevelopment;

    private String delegateProjectType;

    private String assessmentObject;

    /**
     * 评估范围
     */
    private String assessmentRange;

    /**
     * 是否生成报告号
     */
    private String generateReportNumber;

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

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

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

    private String isHave;

    private String isInfluence;

    private String mode;

    private String status;

    /**
     * 联系人
     */
    private List<ProgramProjectListLink> links;

    private List<ProgramProjectListMember> members;

    private List<WorkAttachmentInfo> files;

    /**
     * 审批通过时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date agreeTime;

    /**
     * 审批人
     */
    private String agreeUserId;

    /**
     * 生成合同编号，前端传值为 “ 1 ” 的时候，进行生成
     */
    private String createContractNo;

    private Date evaluationReportDate;	//评估报告日
    private String signatureEvaluatorFirst;	//签字评估师1
    private String signatureEvaluatorSecond;	//签字评估师2
    private String waystEvaluation;	//废旧物资评估值
    private String fixedAssetsEvaluation;	//固定资产评估值
    private String netAssetsEvaluation;	//净资产评估值
    private String rentEvaluation;	//租金评估
    private String reportCharges;	//报告收费
    private String isInvoice;	//是否开票
    private String isContractArchive;	//合同是否存档
    private String isPapersArchive;	//底稿是否存档
    private String year;	//年份

    /*
    作废信息
     */
    //作废id
    private String cancellId;
    //作废流程信息
    private String procInsIdCancell;
    //作废状态
    private String cancellationStatus;
    private String taskIdCan;
    //作废审核人  状态为2时
    private List<String> auditUserIdsCan;
    //作废原因
    private String reason;

}
