package com.ktg.iscs.domain.vo.exception;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ktg.common.annotation.Excel;
import com.ktg.common.core.domain.model.BaseBean;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 物资归还异常对象 is_materials_loan_exception
 *
 * @author cgj
 * @date 2025-02-10
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class IsMaterialsLoanExceptionPageVO extends BaseBean
{
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "异常记录ID")
    @TableId(type = IdType.AUTO)
    private Long misplaceId;

    @ApiModelProperty(value = "物资ID")
    @Excel(name = "物资ID")
    private Long materialsId;

    @ApiModelProperty(value = "物资RFID")
    @Excel(name = "物资RFID")
    private String materialsRfid;

    @Excel(name = "物资")
    private String materialsName;

    @ApiModelProperty(value = "出借记录ID")
    @Excel(name = "出借记录ID")
    private Long materialsLoanId;

    @ApiModelProperty(value = "物资所属柜ID")
    @Excel(name = "物资所属柜ID")
    private Long loanFromId;

    @ApiModelProperty(value = "物资所属柜code")
    @Excel(name = "物资所属柜code")
    private String loanFromCode;

    @Excel(name = "物资所属柜")
    private String loanFromName;

    @ApiModelProperty(value = "领取时间")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "领取时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date loanTime;

    @ApiModelProperty(value = "归还人ID")
    @Excel(name = "归还人ID")
    private Long restitutionUserId;

    @Excel(name = "归还人")
    private String restitutionUserName;

    @ApiModelProperty(value = "归还柜ID")
    @Excel(name = "归还柜ID")
    private Long restitutionToId;

    @Excel(name = "归还柜")
    private String restitutionToName;

    @ApiModelProperty(value = "实际归还时间")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际归还时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date actualRestitutionTime;

    @ApiModelProperty(value = "处理时间")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date handleTime;

    @ApiModelProperty(value = "异常发生时间")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "异常发生时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date occurTime;

    @ApiModelProperty(value = "删除标志（0代表存在 2代表删除）")
    private String delFlag;

    @ApiModelProperty(value = "状态（0-未处理 1-已处理）")
    @Excel(name = "状态", readConverterExp = "0=-未处理,1=-已处理")
    private String status;

    @ApiModelProperty(value = "异常类型（字典exception_type）")
    private String exceptionType;

    @ApiModelProperty(value = "异常发生开始时间")
    @TableField(exist = false)
    private String startTime;

    @ApiModelProperty(value = "异常发生结束时间")
    @TableField(exist = false)
    private String endTime;

    @ApiModelProperty(value = "异常解决开始时间")
    @TableField(exist = false)
    private String handleStartTime;

    @ApiModelProperty(value = "异常解决结束时间")
    @TableField(exist = false)
    private String handleEndTime;

    @ApiModelProperty(value = "物资类型图标")
    private String materialsTypeIcon;

    @ApiModelProperty(value = "物资类型缩略图")
    private String materialsTypePicture;

}
