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 BigDecimal 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 String leasePrice;

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

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

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

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

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

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

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

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

    /** 库存预警数量 */
    @ApiModelProperty(value = "库存预警数量")
    private String 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 long keeperUserId;

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

    /** 库管员id */
    @ApiModelProperty(value = "维修员id")
    private long 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;

    

    public Long getTypeId() {
        return typeId;
    }

    public void setTypeId(Long typeId) {
        this.typeId = typeId;
    }

    public String getTypeName() {
        return typeName;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    public Long getParentId() {
        return parentId;
    }

    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public BigDecimal getNum() {
        return num;
    }

    public void setNum(BigDecimal num) {
        this.num = num;
    }

    public String getUnitId() {
        return unitId;
    }

    public void setUnitId(String unitId) {
        this.unitId = unitId;
    }

    public String getManageType() {
        return manageType;
    }

    public void setManageType(String manageType) {
        this.manageType = manageType;
    }

    public String getLeasePrice() {
        return leasePrice;
    }

    public void setLeasePrice(String leasePrice) {
        this.leasePrice = leasePrice;
    }

    public String getBuyPrice() {
        return buyPrice;
    }

    public void setBuyPrice(String buyPrice) {
        this.buyPrice = buyPrice;
    }

    public String getPayPrice() {
        return payPrice;
    }

    public String getRentPrice() {
        return rentPrice;
    }

    public void setRentPrice(String rentPrice) {
        this.rentPrice = rentPrice;
    }

    public void setPayPrice(String payPrice) {
        this.payPrice = payPrice;
    }

    public String getLevel() {
        return level;
    }

    public void setLevel(String level) {
        this.level = level;
    }

    public String getRatedLoad() {
        return ratedLoad;
    }

    public void setRatedLoad(String ratedLoad) {
        this.ratedLoad = ratedLoad;
    }

    public String getTestLoad() {
        return testLoad;
    }

    public void setTestLoad(String testLoad) {
        this.testLoad = testLoad;
    }

    public String getHoldingTime() {
        return holdingTime;
    }

    public void setHoldingTime(String holdingTime) {
        this.holdingTime = holdingTime;
    }

    public String getWarnNum() {
        return warnNum;
    }

    public void setWarnNum(String warnNum) {
        this.warnNum = warnNum;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    @Override
    public String getCreateBy() {
        return createBy;
    }

    @Override
    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    @Override
    public Date getCreateTime() {
        return createTime;
    }

    @Override
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @Override
    public String getUpdateBy() {
        return updateBy;
    }

    @Override
    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    @Override
    public Date getUpdateTime() {
        return updateTime;
    }

    @Override
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    @Override
    public String getRemark() {
        return remark;
    }

    @Override
    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getCompanyId() {
        return companyId;
    }

    public void setCompanyId(String companyId) {
        this.companyId = companyId;
    }

    public String getPhotoName() {
        return photoName;
    }

    public void setPhotoName(String photoName) {
        this.photoName = photoName;
    }

    public String getPhotoUrl() {
        return photoUrl;
    }

    public void setPhotoUrl(String photoUrl) {
        this.photoUrl = photoUrl;
    }

    public String getDocumentName() {
        return documentName;
    }

    public void setDocumentName(String documentName) {
        this.documentName = documentName;
    }

    public String getDocumentUrl() {
        return documentUrl;
    }

    public void setDocumentUrl(String documentUrl) {
        this.documentUrl = documentUrl;
    }

    public String getIsPlan() {
        return isPlan;
    }

    public void setIsPlan(String isPlan) {
        this.isPlan = isPlan;
    }

    public String getIsAncuo() {
        return isAncuo;
    }

    public void setIsAncuo(String isAncuo) {
        this.isAncuo = isAncuo;
    }

    public long getKeeperUserId() {
        return keeperUserId;
    }

    public void setKeeperUserId(long keeperUserId) {
        this.keeperUserId = keeperUserId;
    }

    public String getKeeperUserName() {
        return keeperUserName;
    }

    public void setKeeperUserName(String keeperUserName) {
        this.keeperUserName = keeperUserName;
    }

    public long getRepairUserId() {
        return repairUserId;
    }

    public void setRepairUserId(long repairUserId) {
        this.repairUserId = repairUserId;
    }

    public String getRepairUserName() {
        return repairUserName;
    }

    public void setRepairUserName(String repairUserName) {
        this.repairUserName = repairUserName;
    }

    public long getPropId() {
        return propId;
    }

    public void setPropId(long propId) {
        this.propId = propId;
    }

    public String getPropName() {
        return propName;
    }

    public void setPropName(String propName) {
        this.propName = propName;
    }

    public List<MaType> getChildren() {
        return children;
    }

    public void setChildren(List<MaType> children) {
        this.children = children;
    }

    public String getUnitName() {
        return unitName;
    }

    public void setUnitName(String unitName) {
        this.unitName = unitName;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getLabel() {
        return label;
    }

    public void setLabel(String label) {
        this.label = label;
    }

    public Date getEffTime() {
        return effTime;
    }

    public void setEffTime(Date effTime) {
        this.effTime = effTime;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getFinalPrice() {
        return finalPrice;
    }

    public void setFinalPrice(String finalPrice) {
        this.finalPrice = finalPrice;
    }

    public String getFacModel() {
        return facModel;
    }

    public void setFacModel(String facModel) {
        this.facModel = facModel;
    }
}
