package com.zksy.property.domain;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
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 java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 资产附属设施管理表
 * @TableName a_equipment_management
 */
@TableName(value ="a_equipment_management")
@Data
public class AEquipmentManagement implements Serializable {
    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_UUID)
    @ApiModelProperty(value = "主键")
    @ExcelIgnore
    private String id;

    /**
     * 主资产编号
     */
    @ApiModelProperty(value = "主资产编号")
    @ExcelProperty(value = "主资产编号")
    private String assetCode;

    /**
     * 主资产名称
     */
    @ApiModelProperty(value = "主资产名称")
    @ExcelProperty(value = "主资产名称")
    private String assetName;

    /**
     * 主房间号/厂房编号
     */
    @ApiModelProperty(value = "主房间号/厂房编号")
    @ExcelProperty(value = "主房间号/厂房编号")
    private String roomNumber;

    /**
     * 设备名称
     */
    @ApiModelProperty(value = "设备名称")
    @ExcelProperty(value = "设备名称")
    private String equipmentName;

    /**
     * 设备类型
     */
    @ApiModelProperty(value = "设备类型")
    @ExcelProperty(value = "设备类型")
    private String equipmentType;

    /**
     * 设备型号
     */
    @ApiModelProperty(value = "设备型号")
    @ExcelProperty(value = "设备型号")
    private String modelNumber;

    /**
     * 设备序列号
     */
    @ApiModelProperty(value = "设备序列号")
    @ExcelProperty(value = "设备序列号")
    private String serialNumber;

    /**
     * 采购日期
     */
    @ApiModelProperty(value = "采购日期")
    @ExcelProperty(value = "采购日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDate purchaseDate;

    /**
     * 采购价格
     */
    @ApiModelProperty(value = "采购价格")
    @ExcelProperty(value = "采购价格")
    private BigDecimal purchasePrice;

    /**
     * 安装启用日期
     */
    @ApiModelProperty(value = "安装启用日期")
    @ExcelProperty(value = "安装启用日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDate installationDate;

    /**
     * 安装位置
     */
    @ApiModelProperty(value = "安装位置")
    @ExcelProperty(value = "安装位置")
    private String installationLocation;

    /**
     * 生产厂家
     */
    @ApiModelProperty(value = "生产厂家")
    @ExcelProperty(value = "生产厂家")
    private String manufacturer;

    /**
     * 质保期限（月）
     */
    @ApiModelProperty(value = "质保期限（月）")
    @ExcelProperty(value = "质保期限（月）")
    private Integer warrantyPeriod;

    /**
     * 质保到期日
     */
    @ApiModelProperty(value = "质保到期日")
    @ExcelProperty(value = "质保到期日")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDate warrantyEndDate;

    /**
     * 维护周期（月）
     */
    @ApiModelProperty(value = "维护周期（月）")
    @ExcelProperty(value = "维护周期（月）")
    private Integer maintenanceCycle;

    /**
     * 设备状态
     */
    @ApiModelProperty(value = "设备状态")
    @ExcelProperty(value = "设备状态")
    private String currentStatus;

    /**
     * 上次维护日期
     */
    @ApiModelProperty(value = "上次维护日期")
    @ExcelProperty(value = "上次维护日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDate lastMaintenanceDate;

    /**
     * 下次维护提醒日期
     */
    @ApiModelProperty(value = "下次维护提醒日期")
    @ExcelProperty(value = "下次维护提醒日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDate nextMaintenanceDate;

    /**
     * 累计维护费用
     */
    @ApiModelProperty(value = "累计维护费用")
    @ExcelProperty(value = "累计维护费用")
    private BigDecimal maintenanceCost;

    /**
     * 维修记录摘要
     */
    @ApiModelProperty(value = "维修记录摘要")
    @ExcelProperty(value = "维修记录摘要")
    private String repairRecord;

    /**
     * 当前操作人员
     */
    @ApiModelProperty(value = "当前操作人员")
    @ExcelProperty(value = "当前操作人员")
    private String operator;

    /**
     * 记录创建时间
     */
    @ApiModelProperty(value = "记录创建时间")
    @ExcelIgnore
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    /**
     * 记录创建人
     */
    @ApiModelProperty(value = "记录创建人")
    @ExcelIgnore
    private String createBy;

    /**
     * 最后更新时间
     */
    @ApiModelProperty(value = "最后更新时间")
    @ExcelIgnore
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    /**
     * 最后更新人
     */
    @ApiModelProperty(value = "最后更新人")
    @ExcelIgnore
    private String updateBy;

    /**
     * 其他备注信息
     */
    @ApiModelProperty(value = "其他备注信息")
    @ExcelProperty(value = "其他备注信息")
    private String remark;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}