package com.jeeplus.assess.reimbursement.reimbursementInfo.service.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeeplus.core.domain.BaseEntity;
import com.jeeplus.assess.reimbursement.reimbursementInfo.domain.*;
import com.jeeplus.sys.domain.WorkAttachmentInfo;
import com.jeeplus.sys.service.dto.WorkAttachmentInfoDTO;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

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

@Data
public class SaveInfoDto extends BaseEntity {

    //合同编号类型（字典值）
    public static final String BIZ_CODE = "5";

    /**
     * 经办人id
     */
    private String userId;

    /**
     * 经办人名称
     */
    private String userName;

    /**
     * 报销编号
     */
    private String no;

    /**
     * 所属部门
     */
    private String department;

    /**
     * 报销日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date reimDate;

    /**
     * 备注
     */
    private String remarks;

    /**
     * 状态
     */
    private String type;

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

    /**
     *
     */
    private String processInstanceId;

    private List<ReimbursementDetailInfo> detailInfos;
    private List<ReimbursementDetailInfoContract> detailInfoContracts;
    private List<ReimbursementDetailInfoOther> detailInfoOthers;
    private List<ReimbursementDetailInfoProcured> detailInfoProcured;

    private List<ReimbursementAmountInfo> amountInfos;
    private List<ReimbursementAmountInfo> invoiceReimbursements;

    private List<WorkAttachmentInfo> files;
    private List<ReimAmountAndFileDto> invoiceReimbursementFiles; //电子发票报销
    /**
     * 报销类型
     */
    private String sourceType;

    /**
     * 采购编号
     */
    private String purchaseNo;

    private String purchaseId;

    private String departmentName;

    private String flag; // yes通过  no驳回

    private String comment; // 审核意见

    private String reimbursementType; // 报销类型（0：普通报销；1：电子发票报销）

    /**
     * 付款时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date paymentTime;
    /**
     * 付款状态  0:未付款  1:已付款
     */
    private String paymentStatus;

    /**
     * 文件补充
     */
    private String fileSuppleId; //文件补充id
    private String fileStatus;
    /**
     * 流程id
     */
    private String procInsIdFile;

    /**
     *
     */
    private String processInstanceIdFile;

}
