package com.casic.missiles.model.equipment;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.enums.poi.BorderStyleEnum;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

@ColumnWidth(30)
@HeadRowHeight(15)
@ContentRowHeight(20)
@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
@ExcelIgnoreUnannotated
@Data
public class EquipmentFixedAssetsImport implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 资产编号
     */
    @ExcelProperty("固定资产编号")
    private String assetNo;

    /**
     * 资产类型-字典code
     */
    @ExcelProperty("资产类型")
    private String assetType;

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

    /**
     * 设备编号，需批量生成
     */
//    private String equipmentNo;

    /**
     * 型号
     */
    @ExcelProperty("型号")
    private String modelNo;

    /**
     * 是否加入固定资产台账
     */
    @ExcelProperty("是否加入固定资产台账")
    private Integer isFixedAssets;

    /**
     * 是否强制检定
     */
    @ExcelProperty("是否强制检定")
    private Integer compulsoryVerification;

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

    /**
     * 厂家国别
     */
    @ExcelProperty("厂家国别")
    private String manufacturerCountry;

    /**
     * 出厂编号
     */
    @ExcelProperty("出厂编号")
    private String manufacturingNo;

    /**
     * 出厂年月
     */
    @ExcelProperty("出厂年月")
    private String manufacturingDate;


    /**
     * 管理状态-字典code
     */
    @ExcelProperty("管理状态")
    private String managerState;

    /**
     * ABC-字典code
     */
    @ExcelProperty("ABC")
    private String abc;

    /**
     * 标签绑定
     */
    @ExcelProperty("标签绑定")
    private String labelBind;

    /**
     * 立卡年月
     */
    @ExcelProperty("立卡年月")
    private String cardEstablishmentDate;

    /**
     * 启用日期
     */
    @ExcelProperty("启用日期")
    private String enableDate;

    /**
     * 检定方式-字典code
     */
    @ExcelProperty("检定方式")
    private String mesureType;

    /**
     * 检定周期
     */
    @ExcelProperty("检定周期")
    private Integer mesureCycle;

    /**
     * 测量范围
     */
    @ExcelProperty("测量范围")
    private String mesureRange;

    /**
     * 不确定度
     */
    @ExcelProperty("不确定度")
    private String uncertainty;

    /**
     * 专业分类-字典code
     */
    @ExcelProperty("专业分类")
    private String majorCategory;

    /**
     * 检定部门
     */
    @ExcelProperty("检定部门")
    private String mesureDeptName;

    /**
     * 检定日期
     */
    @ExcelProperty("检定日期")
    private String mesureDate;

    /**
     * 有效日期
     */
    @ExcelProperty("有效日期")
    private String validDate;

    /**
     * 检定结果-字典code
     */
    @ExcelProperty("检定结果")
    private String mesureResult;

    /**
     * 是否是技术指标需要校准检定的设备		
     */
    @ExcelProperty("是否是技术指标需要校准检定的设备")
    private Integer isCalibrationTestEquipment;

    /**
     * 是否是测量工装台账
     */
    @ExcelProperty("是否是测量工装台账")
    private Integer isMeasureAccount;

    /**
     * 是否标准配套设备
     */
    @ExcelProperty("是否标准配套设备")
    private Integer isStandardSupportEquipment;

    /**
     * 资产来源
     */
    @ExcelProperty("资产来源")
    private String assetSource;

    /**
     * 设备规格
     */
    @ExcelProperty("设备规格")
    private String equipmentSpecifications;

    /**
     * 设备类别-字典code
     */
    @ExcelProperty("设备类别")
    private String equipmentCategory;

    /**
     * 设备类型-字典code
     */
    @ExcelProperty("设备类型")
    private String equipmentType;

    /**
     * 资本来源
     */
    @ExcelProperty("资本来源")
    private String capitalSource;

    /**
     * 用途
     */
    @ExcelProperty("用途")
    private String purpose;

    /**
     * 管理级别-字典code
     */
    @ExcelProperty("管理级别")
    private String managerLevel;

    /**
     * 技术水平
     */
    @ExcelProperty("技术水平")
    private String technicalLevel;

    /**
     * 完好状态
     */
    @ExcelProperty("完好状态")
    private String intactState;

    /**
     * 外形尺寸
     */
    @ExcelProperty("外形尺寸")
    private String overallDimension;

    /**
     * 重量（吨）
     */
    @ExcelProperty("重量")
    private BigDecimal weight;

    /**
     * 单价
     */
    @ExcelProperty("单价")
    private BigDecimal singlePrice;

    /**
     * 安装及杂费
     */
    @ExcelProperty("安装及杂费")
    private String installIncidentalExpenses;

    /**
     * 安装地点
     */
    @ExcelProperty("安装地点")
    private String installPlace;

    /**
     * 原值
     */
    @ExcelProperty("原值")
    private BigDecimal originValue;

    /**
     * 目前原值
     */
    @ExcelProperty("目前原值")
    private BigDecimal presentOriginValue;

    /**
     * 折旧年限
     */
    @ExcelProperty("折旧年限")
    private Integer depreciationPeriod;

    /**
     * 折旧方法-字典code
     */
    @ExcelProperty("折旧方法")
    private String depreciationMethod;

    /**
     * 属性
     */
    @TableField("attribute")
    @ApiModelProperty(value = "属性", dataType = "String", required = false)
    private String attribute;

    /**
     * 版本号
     */
    @TableField("version")
    @ApiModelProperty(value = "版本号", dataType = "Integer", required = false)
    private Integer version;

    /**
     * 创建人
     */
    @TableField("create_user")
    @ApiModelProperty(value = "创建人", dataType = "Long", required = false)
    private Long createUser;

    /**
     * 删除标记
     */
    @TableField("is_del")
    @ApiModelProperty(value = "删除标记", dataType = "Integer", required = false)
    private Integer isDel;

    /**
     * 创建时间
     */
    @ExcelProperty("创建时间")
    @TableField("create_time")
    @ApiModelProperty(value = "创建时间", dataType = "String", required = false)
    private String createTime;

    /**
     * 备注
     */
    @ExcelProperty("备注")
    @TableField("remark")
    @ApiModelProperty(value = "备注", dataType = "String", required = false)
    private String remark;

    /**
     * 更新时间
     */
    @TableField("update_time")
    @ApiModelProperty(value = "更新时间", dataType = "String", required = false)
    private String updateTime;

    /**
     * 文件
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "文件集合", dataType = "List", required = false)
    private List<EquipmentFixedAssetFile> fileList;

    /**
     * 所属标准装置编号
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "所属标准装置编号", dataType = "String", required = false)
    private String supportStandardEquipmentNo;

    /**
     * 所属标准装置编号
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "所属标准装置名称", dataType = "String", required = false)
    private String supportStandardEquipmentName;

    /**
     * 申请设备关联id
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "申请设备关联id", dataType = "String", required = false)
    private String applyRelationId;
}
