/*
 * Author: wangjian
 * 生成entity
 */
package com.tofly.stocks.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.tofly.mybatisplus.config.ToflySqlCondition;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.stream.Collectors;


/**
 * 物资设备信息表（包含物料、设备、药品）
 *
 * @author admin
 * @date Fri Nov 25 00:00:00 CST 2022
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "TF_STOCKS_DEVICE_INFO", resultMap = "deviceInfoMap")
@KeySequence("TF_STOCKS_DEVICE_INFO")
@ApiModel
public class DeviceInfo extends Model<DeviceInfo> {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(value = "ID", type = IdType.INPUT)
    @ApiModelProperty(value = "主键")
    private Long id;
    /**
     * 设备唯一编码
     */
    @ApiModelProperty(value = "设备唯一编码")
    private String deviceNo;
    /**
     * 设备名称
     */
    @ApiModelProperty(value = "设备名称")
    @NotNull(message = "名称不能为空")
    @TableField(condition = ToflySqlCondition.LIKE)
    private String deviceName;
    /**
     * 设备规格型号
     */
    @ApiModelProperty(value = "设备规格型号")
    private String deviceSpecsModel;
    /**
     * 设备单位（字典ID）
     */
    @ApiModelProperty(value = "设备单位（字典ID）")
    private BigDecimal deviceUnitId;
    /**
     * 设备单位名称
     */
    @ApiModelProperty(value = "设备单位名称")
    private String deviceUnitName;
    /**
     * 设备所在地址
     */
    @ApiModelProperty(value = "设备所在地址")
    private String deviceAddress;
    /**
     * 设备购买时间
     */
    @ApiModelProperty(value = "设备购买时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date devicePurchaseTime;
    /**
     * 设备安装时间
     */
    @ApiModelProperty(value = "设备安装时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date deviceInstallTime;
    /**
     * 物资类型Id
     */
    @ApiModelProperty(value = "物资类型Id，关联类型表")
    @NotNull(message ="物资类型不能为空" )
    private Long materialTypeId;


    /**
     * 物资类型名称
     */
    @ApiModelProperty(value = "物资类别名称")
    @TableField(exist = false)
    private String materialTypeName;

    /**
     * 物资类别（物料 ,设备,药品）
     */
    @ApiModelProperty(value = "物资类别（物料 ,设备,药品），关联字典")
    @NotNull(message = "物资类别不能为空")
    private Long deviceType;

    /**
     * 物资类别名称
     */
    @ApiModelProperty(value = "物资类别名称")
    @TableField(exist = false)
    private String deviceTypeName;

}
