package com.ruoyi.drill.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.GnhzBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 演习计划对象 drill_plan
 *
 * @author ruoyi
 * @date 2023-08-04
 */
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("drill_plan")
@ApiModel(value = "演习计划")
public class DrillPlan extends GnhzBaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    private String id;

    /**
     * 演习计划编号
     */
    @Excel(name = "演习计划编号")
    @ApiModelProperty("演习计划编号")
    @TableField(value = "drill_sn")
    private String drillSn;

    /**
     * 演习名称
     */
    @Excel(name = "演习名称")
    @ApiModelProperty("演习名称")
    @TableField(value = "drill_name")
    private String drillName;

    /**
     * 演习组织人
     */
    @Excel(name = "演习组织人")
    @ApiModelProperty("演习组织人")
    @TableField(value = "drill_organizer")
    private Long drillOrganizer;

    /**
     * 演习部门
     */
    @Excel(name = "演习部门")
    @ApiModelProperty("演习部门")
    @TableField(value = "drill_department")
    private Long drillDepartment;

    /**
     * 演习部门集合
     */
    @Excel(name = "演习部门集合")
    @ApiModelProperty("演习部门集合")
    @TableField(value = "drill_departments")
    private String drillDepartments;
    /**
     * 演习区域
     */
    @Excel(name = "演习区域")
    @ApiModelProperty("演习区域")
    @TableField(value = "drill_area")
    private String drillArea;

    /**
     * 演习地点
     */
    @Excel(name = "演习地点")
    @ApiModelProperty("演习地点")
    @TableField(value = "drill_deck")
    private String drillDeck;

    /**
     * 演习类型
     */
    @Excel(name = "演习类型")
    @ApiModelProperty("演习类型")
    @TableField(value = "drill_type")
    private String drillType;

    /**
     * 事故类型及情况
     */
    @Excel(name = "事故类型及情况")
    @ApiModelProperty("事故类型及情况")
    @TableField(value = "accident_situation")
    private String accidentSituation;

    /**
     * 演习目的
     */
    @Excel(name = "演习目的")
    @ApiModelProperty("演习目的")
    @TableField(value = "drill_objective")
    private String drillObjective;

    /**
     * 计划开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "计划开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("计划开始时间")
    @TableField(value = "plan_start_time")
    private Date planStartTime;

    /**
     * 计划结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "计划结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("计划结束时间")
    @TableField(value = "plan_end_time")
    private Date planEndTime;

    /**
     * 演习年份
     */
    @Excel(name = "演习年份")
    @ApiModelProperty("演习年份")
    @TableField(value = "plan_year")
    private Long planYear;

    /**
     * 演习月份
     */
    @Excel(name = "演习月份")
    @ApiModelProperty("演习月份")
    @TableField(value = "plan_month")
    private Long planMonth;

    /**
     * 实际开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("实际开始时间")
    @TableField(value = "reality_start_time")
    private Date realityStartTime;

    /**
     * 演习总结
     */
    @Excel(name = "演习总结")
    @ApiModelProperty("演习总结")
    @TableField(value = "drill_summary")
    private String drillSummary;

    /**
     * 演习状态(1未完成，2已完成)
     */
    @Excel(name = "演习状态(1未完成，2已完成)")
    @ApiModelProperty("演习状态(1未完成，2已完成)")
    @TableField(value = "drill_status")
    private Long drillStatus;

    /**
     * 审核状态(1待审核，2已审核，3已驳回)
     */
    @Excel(name = "审核状态(1待审核，2已审核，3已驳回)")
    @ApiModelProperty("审核状态(1待审核，2已审核，3已驳回)")
    @TableField(value = "process_status")
    private Long processStatus;

    /**
     * 审核意见
     */
    @Excel(name = "审核意见")
    @ApiModelProperty("审核意见")
    @TableField(value = "process_opinion")
    private String processOpinion;

    /**
     * 审核人
     */
    @Excel(name = "审核人")
    @ApiModelProperty("审核人")
    @TableField(value = "process_by")
    private Long processBy;
}
