package com.ruoyi.asset.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 资产信息对象 tb_asset_information
 * 
 * @author 原动力
 * @date 2023-05-15
 */
@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class TbAssetInformation extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    private List<String> nlist;

    /** 编号 */
    private Long id;

    /** 资产条码 */
    @Excel(name = "资产条码")
    private String code;

    /** 资产名称 */
    @Excel(name = "资产名称")
    private String name;

    /** 资产编号 */
    @Excel(name = "资产编号")
    private String number;

    /** epc */
    @Excel(name = "epc")
    private String epc;

    /** epc补充长度 */
    private Integer epcReplenishLength;

    /** 图片路径 */
//    @Excel(name = "图片路径")
    private String imageUrl;

    /** 资产分类编号 */
    @Excel(name = "资产分类编号")
    private String categoryNumber;

    /** 分类ID */
    private Long categoryId;

    /** 分类名称 */
    @Excel(name = "资产分类名称（导出）")
    private String categoryName;

    /** 规格型号 */
    @Excel(name = "规格型号")
    private String specificationsModel;

    /** ABC分类 */
    @Excel(name = "ABC分类")
    private String abcCategory;

    /** 管理状态，0：闲置 */
    @Excel(name = "管理状态，0：闲置")
    private Long manageStatus;

    /** 使用部门 */
    @Excel(name = "使用部门")
    private String userDepartment;

    /** 使用部门名称 */
    @Excel(name = "使用部门名称（导出）")
    private String userDepartmentName;

    /** 管理部门 */
    @Excel(name = "管理部门")
    private String department;

    /** 管理部门名称 */
    @Excel(name = "管理部门名称（导出）")
    private String departmentName;

    /** 责任人 */
    @Excel(name = "责任人")
    private String responsiblePerson;

    /** 所在位置编号 */
    @Excel(name = "所在位置编号")
    private String locationNumber;

    /** 位置ID */
    private Long locationId;
    /** 位置名称 */
    @Excel(name = "所在位置名称（导出）")
    private String locationName;
    /** 位置标签 */
    @Excel(name = "所在位置标签（导出）")
    private String locationLabel;

    /** 位置ID */
    private Long parentLocationId;
    /** 位置名称 */
    @Excel(name = "父级位置名称（导出）")
    private String parentLocationName;
    /** 位置标签 */
    @Excel(name = "父级位置标签（导出）")
    private String parentLocationLabel;

    /** 位置ID */
    private Long ancestorLocationId;
    /** 位置名称 */
    @Excel(name = "祖级位置名称（导出）")
    private String ancestorLocationName;
    /** 位置标签 */
    @Excel(name = "祖级位置标签（导出）")
    private String ancestorLocationLabel;


    /** 资产性质 */
    @Excel(name = "资产性质")
    private String property;

    /** 购置日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "购置日期", width = 40, dateFormat = "yyyy-MM-dd")
    private Date purchaseDate;

    /** 启用日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "启用日期", width = 40, dateFormat = "yyyy-MM-dd")
    private Date commissioningDate;

    /** 原值（元） */
    @Excel(name = "原值", readConverterExp = "元=")
    private Double originalValue;

    /** 使用年限 */
    @Excel(name = "使用年限")
    private Long durableYears;

    /** 净值（元） */
    @Excel(name = "净值", readConverterExp = "元=")
    private Double netValue;

    /** 残值（元） */
    @Excel(name = "残值", readConverterExp = "元=")
    private Double residualValue;

    /** 累计折旧（元） */
    @Excel(name = "累计折旧", readConverterExp = "元=")
    private Double accumulatedDepreciation;

    /** 最近折旧日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最近折旧日期", width = 40, dateFormat = "yyyy-MM-dd")
    private Date lastDepreciationDate;

    /** 折旧方式，0：其他 */
    @Excel(name = "折旧方式，0：其他", width = 26)
    private Long depreciationMethod;

    /** 合同编号 */
    @Excel(name = "合同编号")
    private String contractNumber;

    /** 出厂编号 */
    @Excel(name = "出厂编号")
    private String factoryNumber;

    /** 制造商 */
    @Excel(name = "制造商")
    private String manufacturer;

    /** 供应商 */
    @Excel(name = "供应商")
    private String supplier;

    /** 资产用途 */
    @Excel(name = "资产用途")
    private String purpose;

    /** 维保到期日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "维保到期日期", width = 40, dateFormat = "yyyy-MM-dd")
    private Date maintenanceDate;

    /** 维修电话 */
    @Excel(name = "维修电话")
    private String maintenanceTel;

    /** 维修人员 */
    @Excel(name = "维修人员")
    private String maintenanceUser;

    /** 所属公司 */
    @Excel(name = "所属公司")
    private String corporation;

    /** 使用公司名称 */
    @Excel(name = "所属公司名称（导出）")
    private String corporationName;

    /** 记录状态，0：未提交，1：已提交 */
    @Excel(name = "记录状态，0：未提交，1：已提交", width = 30)
    private Long recordStatus;

    /** 是否白名单 */
    @Excel(name = "是否白名单，Y：是，N：否", width = 30)
    private String isWhitelist;

    /** 数量 */
    @Excel(name = "数量")
    private String quantity;

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

    /** 入账时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入账时间", width = 40, dateFormat = "yyyy-MM-dd")
    private Date paymentReceivingTime;

    /** 预计使用期限 */
    @Excel(name = "预计使用期限")
    private Integer lifeExpectancy;

    /** 预计使用期限单位 */
    @Excel(name = "预计使用期限单位")
    private String lifeUnits;

    /** 开始使用日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始使用日期", width = 40, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /** 预留字段j */
   // @Excel(name = "预留字段j")
    private String reservedColumnJ;
}
