package com.hzs.system.sys.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
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/9/27 9:54
 * Classname: ApprovalBusinessVO
 * PackageName: com.hzs.system.sys.vo
 */
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Data
public class ApprovalBusinessVO {

    /**
     * 审批ID
     */
    private Long pkId;
    /**
     * 审批业务单号
     */
    private String approvalCode;
    /**
     * 签呈类型（ESignType）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.SIGN_TYPE)
    private Integer signType;
    /**
     * 签呈类型显示
     */
    private String signTypeVal;

    /**
     * 发起人名称
     */
    private String userName;
    /**
     * 发起部门名称
     */
    private String deptName;

    /**
     * 审批业务类型（EApprovalBusiness）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.APPROVAL_BUSINESS)
    private Integer approvalBusiness;
    /**
     * 审批业务类型显示
     */
    private String approvalBusinessVal;
    /**
     * 创建日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date creationTime;

    /**
     * 审批状态（2=待审核，3=审批中，4=已驳回，5=已完成，6=已归档）（EApproveStatus）
     */
    private Integer status;

    private String statusVal;

    /**
     * 情况说明
     */
    private String remark;

    /**
     * 业务诉求
     */
    private Object businessData;

    /**
     * 审批业务详情列表
     */
    @Transaction
    private List<ApprovalBusinessDetailVO> detailList;

    /**
     * 抄送人列表
     */
    private List<ApprovalBusinessSendVO> sendList;

    /**
     * 附件地址列表
     */
    private List<String> filePathList;

    /**
     * 审批流程人ID列表
     */
    private List<Long> detailIdList;
    /**
     * 抄送人ID列表
     */
    private List<Long> sendIdList;
    /**
     * 抄送人列表
     */
    private String sendStr;
    /**
     * 操作类型（1=新增,2=修改,3=删除）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.CONTROL_TYPE)
    private Integer controlType;
    private String controlTypeVal;

}
