package com.casic.missiles.dto.equipment;

import com.casic.missiles.annotation.DictCodeField;
import com.casic.missiles.constants.MeterDictCode;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * 固定资产请求
 */
@ApiModel
@Data
public class FixedAssetRequest {
    /**
     * id
     */
    @ApiModelProperty(value = "主键", dataType = "Long")
    private Long id;
    /**
     * 资产编号
     */
    @ApiModelProperty(value = "资产编号", dataType = "String")
    private String assetNo;
    /**
     * 资产类型
     */
    @DictCodeField(message = "资产类型不合法", cacheName = MeterDictCode.ASSET_TYPE)
//    @DictCodeField(message = "资产类型不合法", cacheName = "accountStatus")
    @ApiModelProperty(value = "资产类型", dataType = "Integer")
    private Integer assetType;
    /**
     * 设备编号
     */
    @ApiModelProperty(value = "设备编号", dataType = "String")
    private String equipmentNo;
    /**
     * 设备名称
     */
    @ApiModelProperty(value = "设备名称", dataType = "String")
    private String equipmentName;
    /**
     * 检定方式
     */
    @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE)
    @ApiModelProperty(value = "检定方式", dataType = "Integer")
    private Integer mesureType;
    /**
     * 管理状态
     */
    @DictCodeField(message = "管理状态不合法", cacheName = MeterDictCode.MANAGER_STATE)
    @ApiModelProperty(value = "管理状态", dataType = "Integer")
    private Integer managerState;
    /**
     * 使用部门
     */
    @ApiModelProperty(value = "使用部门", dataType = "Long")
    private Long useDept;
    /**
     * 使用人
     */
    @ApiModelProperty(value = "使用人", dataType = "Long")
    private Long usePerson;
    /**
     * 有效日期
     */
    @ApiModelProperty(value = "有效日期起始", dataType = "String")
    private String validDateStart;
    @ApiModelProperty(value = "有效日期结束", dataType = "String")
    private String validDateEnd;
    /**
     * ABC 值 A,B,C
     */
    @DictCodeField(message = "ABC不合法", cacheName = MeterDictCode.ABC)
    @ApiModelProperty(value = "ABC", dataType = "String")
    private String abc;
    /**
     * 型号
     */
    @ApiModelProperty(value = "型号", dataType = "String")
    private String modelNo;

    /**
     * 设备规格
     */
    @ApiModelProperty(value = "设备规格", dataType = "String")
    private String equipmentSpecifications;

    /**
     * 设备类别
     */
    @DictCodeField(message = "设备类别不合法", cacheName = MeterDictCode.EQUIPMENT_CATEGORY)
    @ApiModelProperty(value = "设备类别", dataType = "Integer")
    private Integer equipmentCategory;

    /**
     * 出厂编号
     */
    @ApiModelProperty(value = "出厂编号", dataType = "String")
    private String manufacturingNo;

//    /**
//     * dataType 测量设备数据类型
//     */
//    @DictCodeField(message = "测量设备数据类型不合法", cacheName = MeterDictCode.METER_DATA_TYPE)
//    @ApiModelProperty(value = "数据类型：1.测量设备 2.标准/检定设备 3.标准配套设备 4.测量工装 5.固定资产", dataType = "Integer")
//    private Integer dataType;

    /**
     * 是否是技术指标需要校准检定的设备
     */
    @ApiModelProperty(value = "是否是技术指标需要校准检定的设备", dataType = "Integer", required = false)
    private Integer isCalibrationTestEquipment;

    /**
     * 是否是测量工装台账
     */
    @ApiModelProperty(value = "是否是测量工装台账", dataType = "Integer", required = false)
    private Integer isMeasureAccount;

    /**
     * 是否标准配套设备
     */
    @ApiModelProperty(value = "是否标准配套设备", dataType = "Integer", required = false)
    private Integer isStandardSupportEquipment;

    /**
     * 是否加入固定资产台账
     */
    @ApiModelProperty(value = "是否加入固定资产台账", dataType = "Integer", required = true)
    private Integer isFixedAssets;

    /**
     * 主键集合，用于批量查询
     */
    @ApiModelProperty(value = "导出ids", dataType = "List")
    private List<Long> ids;

    /**
     * 扫描标签id
     */
    @ApiModelProperty(value = "扫描标签id", dataType = "List")
    private String labelId;

}
