package com.srs.dormitory.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.srs.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import com.srs.common.core.domain.BaseEntity;



/**
 * 宿舍管理申请对象 dms_manage_application
 *
 * @author srs
 * @date 2024-02-29
 */
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel(value = "DmsManageApplication对象" , description = "宿舍管理申请表")
@TableName("dms_manage_application")
public class DmsManageApplication extends BaseEntity{
private static final long serialVersionUID=1L;

    /**
     * 主键ID
     */
    @ApiModelProperty("主键ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 学号
     */
    @ApiModelProperty("学号")
    @TableField("stu_no")
    @Excel(name = "学号")
    private String stuNo;

    /**
     * 执行时间
     */
    @ApiModelProperty("执行时间")
    @TableField("time")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "执行时间" , width = 30, dateFormat = "yyyy-MM-dd")
    private Date time;

    /**
     * 原宿舍ID
     */
    @ApiModelProperty("原宿舍ID")
    @TableField("current_dorm_id")
    @Excel(name = "原宿舍ID")
    private Long currentDormId;

    /**
     * 新宿舍ID
     */
    @ApiModelProperty("新宿舍ID")
    @TableField("target_dorm_id")
    @Excel(name = "新宿舍ID")
    private Long targetDormId;

    /**
     * 申请理由
     */
    @ApiModelProperty("申请理由")
    @TableField("reason")
    @Excel(name = "申请理由")
    private String reason;

    /**
     * 申请表类型(1调宿申请
     */
    @ApiModelProperty("申请表类型(1调宿申请")
    @TableField("type")
    @Excel(name = "申请表类型(1调宿申请 2退宿申请 3留宿申请")
    private Long type;

    /**
     * 审核状态
     */
    @ApiModelProperty("审核状态")
    @TableField("status")
    @Excel(name = "审核状态")
    private Long status;

    /**
     * 留宿开始时间
     */
    @ApiModelProperty("留宿开始时间")
    @TableField("start_time")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "留宿开始时间" , width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /**
     * 留宿结束时间
     */
    @ApiModelProperty("留宿结束时间")
    @TableField("end_time")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "留宿结束时间" , width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /**
     * 删除标志（0代表存在
     */
    @ApiModelProperty("删除标志（0代表存在")
    @TableField("del_flag")
    private Long delFlag;

    @TableField(exist = false)
    private String stuName;
    @TableField(exist = false)
    private String getBy;
    @TableField(exist = false)
    private Integer auditStatus;
    @TableField(exist = false)
    private String fdyNo;
    @TableField(exist = false)
    private String fdyStatus;
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date fdyTime;
    @TableField(exist = false)
    private String workNo;
    @TableField(exist = false)
    private String workStatus;
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date workTime;
    @TableField(exist = false)
    private String finalNo;
    @TableField(exist = false)
    private String finalStatus;
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date finalTime;
    @TableField(exist = false)
    private String currRoomNo;
    @TableField(exist = false)
    private String currBuilding;
    @TableField(exist = false)
    private String tarRoomNo;
    @TableField(exist = false)
    private String tarBuilding;
    @TableField(exist = false)
    private Long tarBuildingId;
    @TableField(exist = false)
    private Long currBuildingId;

    @TableField(exist = false)
    public Long deptId;
    @TableField(exist = false)
    public String gender;

}
