package com.ruoyi.database.domain;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @Description ApprovalProcess
 * @Author lijingtong
 * @Date 2025-06-07
 */
@Data
@TableName("approval_process")
@ApiModel("审批单")
public class ApprovalProcess {
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty("主键ID")
    private Long id;

    @ApiModelProperty("审批编号")
    @TableField(condition = SqlCondition.EQUAL)
    private String approvalNo;

    @ApiModelProperty("流程标题")
    @TableField(condition = SqlCondition.LIKE)
    private String processTitle;

    @ApiModelProperty("提交人姓名")
    private String submitterName;

    @ApiModelProperty("提交人ID")
    @TableField(condition = SqlCondition.EQUAL)
    private Long submitterId;

    @ApiModelProperty("抄送人姓名")
    @TableField(condition = SqlCondition.LIKE)
    private String ccName;


    @ApiModelProperty("显示时间")
    @TableField(exist = false)
    private String showTime;

    @ApiModelProperty("抄送人ID")
    private Long ccId;

    @ApiModelProperty("提交时间")
    private Long submitTime;

    @ApiModelProperty("事项类型 4-喝酒 3-请假 2-出差 1-出县")
    private Integer matterType;

    @TableField(exist = false)
    private Integer timeType;

    @ApiModelProperty("审批状态：0-未审核 1-通过 2-不通过")
    @TableField(condition = SqlCondition.LIKE)
    private Integer approvalStatus;

    @ApiModelProperty("审批状态")
    private Integer approvalStatusH;

    @TableField(exist = false)
    private String approvalStatusCn;

    @TableField(exist = false)
    private String approvalStatusHCn;

    @ApiModelProperty("到达日期")
    private Long arrivalDate;
    @TableField(exist = false)
    private String arrivalDateCn;

    @ApiModelProperty("处理日期")
    private Long handleDate;
    @TableField(exist = false)
    private String handleDateCn;

    @ApiModelProperty("阅读状态：0-未读 1-已读")
    @TableField(condition = SqlCondition.EQUAL)
    private Integer readStatus;

    @ApiModelProperty("开始时间")
    private Long startTime;
    @TableField(exist = false)
    private String startTimeCn;

    @ApiModelProperty("结束时间")
    private Long endTime;
    @TableField(exist = false)
    private String endTimeCn;

    @ApiModelProperty("出差目的地")
    private String businessTripDestination;

    @ApiModelProperty("起止日期")
    private Long startEndDate;
    @TableField(exist = false)
    private String startEndDateCn;

    @ApiModelProperty("饮酒时间")
    private Long drinkingTime;
    @TableField(exist = false)
    private String drinkingTimeCn;

    @ApiModelProperty("饮酒地点")
    private String drinkingPlace;

    @ApiModelProperty("创建时间")
    private Long createTime;
    @TableField(exist = false)
    private String createTimeCn;

    @ApiModelProperty("创建人")
    private String createBy;

    @ApiModelProperty("修改时间")
    private Long updateTime;
    @TableField(exist = false)
    private String updateTimeCn;

    @ApiModelProperty("修改人")
    private String updateBy;

    // 非数据库字段 - 用于前端展示的日期格式化字符串
    @TableField(exist = false)
    @ApiModelProperty("提交时间（格式化字符串）")
    private String submitTimeStr;

    @TableField(exist = false)
    @ApiModelProperty("开始时间（格式化字符串）")
    private String startTimeStr;

    @ApiModelProperty("关联用uuid")
    private String uuid;

    @ApiModelProperty("请假类别（1-公休假 2-事假 3-探亲假 4-婚假 5-产假 6-护理假 7-病假 8-育儿假 9-其他）")
    private Integer leaveType;
    @TableField(exist = false)
    private String leaveTypeCn;

    @TableField(exist = false)
    private String processTitles;

}
