package org.dromara.safety.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.safety.domain.BusSafetyInspection;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;


/**
 * 安全巡检工单视图对象 bus_safety_inspection
 *
 * @author lcj
 * @date 2025-03-20
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BusSafetyInspection.class)
public class BusSafetyInspectionVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @ExcelProperty(value = "主键ID")
    private Long id;

    /**
     * 父id（默认为0）
     */
    @ExcelProperty(value = "父id", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "默=认为0")
    private Long pid;

    /**
     * 项目ID
     */
    @ExcelProperty(value = "项目ID")
    private Long projectId;

    /**
     * 检查类型
     */
    @ExcelProperty(value = "检查类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "safety_inspection_check_type")
    private String checkType;

    /**
     * 违章类型
     */
    @ExcelProperty(value = "违章类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "safety_inspection_violation_type")
    private String violationType;

    /**
     * 巡检结果
     */
    @ExcelProperty(value = "巡检结果")
    private String inspectionResult;

    /**
     * 整改班组id
     */
    @ExcelProperty(value = "整改班组id")
    private Long teamId;

    /**
     * 整改班组名字
     */
    private String teamName;

    /**
     * 整改人（班组长）id
     */
    @ExcelProperty(value = "整改人", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "班=组长")
    private Long correctorId;

    /**
     * 整改人（班组长）名字
     */
    private String correctorName;

    /**
     * 整改期限
     */
    @ExcelProperty(value = "整改期限")
    private Date rectificationDeadline;

    /**
     * 是否回复（1回复 2不回复）
     */
    @ExcelProperty(value = "是否回复", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "reply_type")
    private String isReply;

    /**
     * 回复日期
     */
    @ExcelProperty(value = "回复日期")
    private String replyDate;

    /**
     * 工单状态（1通知 2整改 3复查）
     */
    @ExcelProperty(value = "工单状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "safety_inspection_type")
    private String status;

    /**
     * 问题隐患
     */
    @ExcelProperty(value = "问题隐患")
    private String hiddenDanger;

    /**
     * 整改措施
     */
    @ExcelProperty(value = "整改措施")
    private String measure;

    /**
     * 复查情况
     */
    @ExcelProperty(value = "复查情况")
    private String review;

    /**
     * 复查状态（1通过 2未通过）
     */
    @ExcelProperty(value = "复查状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "review_type")
    private String reviewType;

    /**
     * 检查时间
     */
    @ExcelProperty(value = "检查时间")
    private Date checkTime;

    /**
     * 整改时间
     */
    @ExcelProperty(value = "整改时间")
    private Date rectificationTime;

    /**
     * 复查时间
     */
    @ExcelProperty(value = "复查时间")
    private Date reviewTime;

    /**
     * 检查附件
     */
    @ExcelProperty(value = "检查附件")
    private String checkFile;

    /**
     * 整改附件
     */
    @ExcelProperty(value = "整改附件")
    private String rectificationFile;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;

    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    private Date createTime;

    /**
     * 创建人id
     */
    private Long creatorId;

    /**
     * 创建人名字
     */
    private String creatorName;

}
