package com.bonus.sgzb.base.api.domain;

import com.bonus.sgzb.common.core.annotation.Excel;
import com.bonus.sgzb.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * 工机具类型管理实体类
 */
/**
 *
 * @author rsyao
 * @date
 */
@Data
public class MaType extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /** 类型ID */
    @ApiModelProperty(value = "类型ID")
    private Long typeId;

    /** 类型名称 */
    @ApiModelProperty(value = "类型名称")
    @Excel(name = "名称")
    private String typeName;

    /** 类型ID */
    @ApiModelProperty(value = "类型ID,用作组织树筛选")
    private Long id;

    /** 类型名称 */
    @ApiModelProperty(value = "类型名称,用作组织树筛选")
    private String label;

    /** 上级ID */
    @ApiModelProperty(value = "上级ID")
    private Long parentId;

    /** 帐号状态（0正常 1停用） */
    @ApiModelProperty(value = "帐号状态（0正常 1停用）")
    private String status;

    /** 实时库存 */
    @ApiModelProperty(value = "实时库存")
    private Integer num;

    /** 计量单位id */
    @ApiModelProperty(value = "计量单位id")
    private String unitId;

    /** 计量单位 */
    @ApiModelProperty(value = "计量单位")
    @Excel(name = "计量单位")
    private String unitName;

    /** 管理方式 */
    @ApiModelProperty(value = "管理方式")
    private String manageType;

    /** 租赁单价 */
    @ApiModelProperty(value = "租赁单价")
    @Excel(name = "租赁价格")
    private BigDecimal leasePrice;

    /** 租赁单价 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "租赁单价")
    private Date effTime;

    @ApiModelProperty(value = "外部价格")
    private BigDecimal rentPrice;
    private BigDecimal finalPrice;

    /** 原价 */
    @ApiModelProperty(value = "原价")
    @Excel(name = "原值")
    private BigDecimal buyPrice;

    /** 丢失赔偿价 */
    @ApiModelProperty(value = "丢失|赔偿价")
    @Excel(name = "丢失赔偿价")
    private BigDecimal payPrice;

    /** 层级 */
    @ApiModelProperty(value = "层级")
    private String level;

    /** 额定载荷 */
    @ApiModelProperty(value = "额定载荷")
    private String ratedLoad;

    /** 试验载荷 */
    @ApiModelProperty(value = "试验载荷")
    private String testLoad;

    /** 持荷时间 */
    @ApiModelProperty(value = "持荷时间")
    private String holdingTime;

    /** 库存预警数量 */
    @ApiModelProperty(value = "库存预警数量")
    private Integer warnNum;

    /** 库存预警数量 */
    @ApiModelProperty(value = "是否计划管理（0代表否 1代表是）")
    private String isPlan;

    /** 库存预警数量 */
    @ApiModelProperty(value = "是否安措费机具（0代表否1代表是）")
    private String isAncuo;

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

    /** 创建者 */
    @ApiModelProperty(value = "创建者")
    private String createBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    /** 更新者 */
    @ApiModelProperty(value = "更新者")
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    /** 备注 */
    @ApiModelProperty(value = "备注")
    @Excel(name = "备注信息")
    private String remark;

    /** 数据所属组织 */
    @ApiModelProperty(value = "数据所属组织")
    private String companyId;

    /** 图片名称 */
    @ApiModelProperty(value = "图片名称")
    @Excel(name = "图片")
    private String photoName;

    /** 图片路径 */
    @ApiModelProperty(value = "图片路径")
    private String photoUrl;
    private String childPhoto;

    /** 文档名称 */
    @ApiModelProperty(value = "文档名称")
    @Excel(name = "文档资料")
    private String documentName;

    /** 文档路径 */
    @ApiModelProperty(value = "文档路径")
    private String documentUrl;

    /** 库管员id */
    @ApiModelProperty(value = "库管员id")
    private Integer keeperUserId;

    /** 库管员名称 */
    @ApiModelProperty(value = "库管员名称")
    @Excel(name = "库管员")
    private String keeperUserName;

    /** 库管员id */
    @ApiModelProperty(value = "维修员id")
    private Integer repairUserId;

    /** 维修员名称 */
    @ApiModelProperty(value = "维修员名称")
    private String repairUserName;

    /** 资产属性id */
    @ApiModelProperty(value = "资产属性id")
    private long propId;

    /** 资产属性名称 */
    @ApiModelProperty(value = "资产属性名称")
    @Excel(name = "资产属性")
    private String propName;

    /** 资产属性名称 */
    @ApiModelProperty(value = "类型编码")
    private String code;

    /** 子节点 */
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private List<MaType> children = new ArrayList<>();

    /**
     * 厂家规格型号
     */
    @ApiModelProperty(value = "厂家规格型号")
    private String facModel;

    /*
    * 推送智慧工程定义的门类分类机具编码
    * */
    @ApiModelProperty(value = "推送智慧工程定义的门类分类机具编码")
    private String intelligentCode;
}
