package com.hzs.system.index.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.hzs.common.core.annotation.Excel;
import com.hzs.common.core.annotation.Transaction;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * @Description: 审批数据VO
 * @Author: jiang chao
 * @Time: 2022/12/14 16:16
 * @Classname: WatApprovalVO
 * @PackageName: com.hzs.system.index.vo
 */
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class IndexApprovalVO {

    /**
     * 审核ID
     */
    private Long pkId;

    /**
     * 审批单号
     */
    @Excel(name = "签呈编号")
    private String approvalCode;

    /**
     * 签呈来源
     */
    @JsonIgnore
    @Transaction(transactionKey = EnumsPrefixConstants.SIGN_SOURCE)
    private Integer signSource;
    /**
     * 签呈来源显示
     */
    private String signSourceVal;

    /**
     * 业务类型
     */
    @JsonIgnore
    @Transaction(transactionKey = EnumsPrefixConstants.APPROVAL_BUSINESS)
    private Integer approvalBusiness;
    /**
     * 业务类型显示
     */
    @Excel(name = "业务类型")
    private String approvalBusinessVal;

    /**
     * 发起人
     */
    @Excel(name = "发起人")
    private String creation;

    /**
     * 签呈进度列表
     */
    private List<IndexApprovalDetailVO> detailList;
    /**
     * 签呈进度导出
     */
    @Excel(name = "签呈进度", width = 36)
    private String detailStr;

    /**
     * 抄送人导出
     */
    @Excel(name = "抄送人")
    private String sendStr;

    /**
     * 抄送人数据列表
     */
    private List<IndexApprovalReceiveVO> receiveList;

    /**
     * 总耗时
     */
    @Excel(name = "总耗时")
    private String useTime;

    /**
     * 审核状态
     */
    @Transaction(transactionKey = EnumsPrefixConstants.APPROVE_OPERATION)
    private Integer approvalOperation;
    /**
     * 审核状态显示
     */
    private String approvalOperationVal;

    /***
     * 签呈状态
     */
    @Transaction(transactionKey = EnumsPrefixConstants.APPROVE_STATUS)
    private Integer approveStatus;
    /***
     * 签呈状态显示
     */
    @Excel(name = "签呈状态")
    private String approveStatusVal;

    /**
     * 创建时间
     */
    @Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date creationTime;

    /**
     * 终审时间
     */
    @Excel(name = "终审时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 审批标记（0=是，1=否）
     */
    private Integer approvalFlag;

    /**
     * 审批进度下标
     */
    private Integer approvalIndex;

}
