package com.jeeplus.finance.projectRecords.service.dto;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeeplus.core.query.Query;
import com.jeeplus.core.query.QueryType;
import com.jeeplus.core.service.dto.BaseDTO;
import com.jeeplus.finance.projectRecords.domain.CwProjectPlanDetails;
import com.jeeplus.finance.projectRecords.domain.EngineeringTree;
import com.jeeplus.finance.projectRecords.domain.PartialCustomerInfo;
import com.jeeplus.finance.projectRecords.domain.ProjectEngineeringInfo;
import com.jeeplus.finance.workClientInfo.service.dto.CwWorkClientBaseDTO;
import com.jeeplus.sys.domain.WorkAttachmentInfo;
import com.jeeplus.sys.service.dto.OfficeDTO;
import com.jeeplus.sys.service.dto.UserDTO;
import com.jeeplus.sys.service.dto.WorkAttachmentInfoDTO;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

/**
 * @author: 徐滕
 * @version: 2022-11-10 15:02
 */
@Data
public class CwProjectRecordsDTO extends BaseDTO {
    private static final long serialVersionUID = 1L;

    private List<PartialCustomerInfo> cwProjectConstructionList;

    /**
     * 工程类型
     */
    private String engineeringType;
    private List<EngineeringTree> engineeringTypeList;
    /**
     * 项目开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date projectStartTime;

    /**
     * 项目结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date projectEndTime;

    //项目等级
    private String projectLevel;

    //项目类型（区分造价审核与工程咨询）
    private String projectType;

    //项目编号（字典值）
    public static final String BIZ_CODE = "12";

    /**
     * 备注信息
     */
    private String remarks;
    /**
     * 项目所在地
     */
    private String areaId;

    /**
     * 项目编号
     */
    @Excel(name = "项目编号",width = 25,orderNum = "1")
    private String projectNumber;

    /**
     * 项目名称
     */
    @Excel(name = "项目名称",width = 25,orderNum = "0")
    private String projectName;

    /**
     * 项目所属部门
     */
    private String officeId;

    /**
     * 项目金额
     */
    @Excel(name = "项目规模",width = 25,orderNum = "2")
    private String projectMoney;

    /**
     * 审计期间
     */
    private String auditYear;

    /**
     * 项目计划开始时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date planStartDate;

    /**
     * 项目计划结束时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date planEndDate;

    /**
     * 项目经理
     */
    private String projectMasterId;

    /**
     * 现场负责人
     */
    private String projectLeaderId;

    /**
     * 流程id
     */
    private String procInsId;

    /**
     *
     */
    private String processDefinitionId;

    /**
     * 状态
     */
    private String status;


    /**
     * 附件
     */
    private List<WorkAttachmentInfo> workAttachmentDtoList;

    /**
     * 被服务单位信息
     */
    private List<CwWorkClientBaseDTO> cwProjectClientInfoDTOList;

    /**
     * 项目经理姓名
     */
    @Excel(name = "项目经理",width = 25,orderNum = "3")
    private String projectMasterName;

    private String projectMasterName2;
    /**
     * 时间查询
     */
    private String[] createDates;

    /**
     * 合同id
     */
    private String contractId;

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

    /**
     * 付款主体
     */
    private String payerSubject;

    /**
     * 合同份数
     */
    private String contractNum;

    /**
     * 合同金额(元)
     */
    private String contractAmount;

    /**
     * 合同名称
     */
    @Excel(name = "合同名称",width = 25,orderNum = "2")
    private String contractName;

    /**
     * 创建人id
     */
    private String createId;

    /**
     * 创建人姓名
     */
    @Excel(name = "创建人",width = 25,orderNum = "5")
    private String createName;

    /**
     * 创建时间
     */
    @Excel(name = "创建时间",exportFormat = "yyyy-MM-dd HH:mm:ss",width = 25,orderNum = "6")
    private String createDateT;

    /**
     * 业务类型
     */
    private String businessType;

    /**
     * 风险等级
     */
    private String riskLevel;

    /**
     * 业务类型名称
     */
    private String businessTypeName;

    /**
     * 项目预计时间
     */
    private Date[] planDate;

    /**
     * 项目实际责任人
     */
    private String realHeader;

    /**
     * 项目实际责任人
     */
    @Excel(name = "项目经理2",width = 25,orderNum = "4")
    private String realHeaderName;

    /**
     * 合同委托人
     */
    private String clientContactsName;

    /**
     * 报备类型
     */
    private String reportType;

    /**
     * 客户联系人
     */
    private List<CwProjectClientContactDTO> cwProjectClientContactDTOList;

    /**
     * 项目组成员
     */
    private List<CwProjectMembersDTO> cwProjectMembersDTOList;

    /**
     * 项目组成员数量
     */
    private String memberCount;

    /**
     * 报告复核 1：已开始复核/已完成复核
     */
    private String reportReview;

    /**
     * 查找该报告及报告对应项目下的开票列表
     */
    private String reportNo;
    private String no;
    private String number;
    private String account;
    private String billingPeople;
    @Excel(name = "开票时间",exportFormat = "yyyy-MM-dd HH:mm:ss",width = 25,orderNum = "6")
    private String billingDate;

    /**
     * 该项目下审计收费不为0的报告信息
     */
    private String auditFees;
    private String loginName;
    private String reportId;

    //是否存在项目计划
    private String isHavePlan;

    //计划表id
    private String planId;
    //计划详情
    private List<CwProjectPlanDetails> planDetailsList;
    /**
     * 计划附件
     */
    private List<WorkAttachmentInfo> planFileList;



}
