package com.bonus.material.ma.domain;

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

import com.bonus.material.ma.domain.vo.SampleSync;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.bonus.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import com.bonus.common.core.web.domain.BaseEntity;

/**
 * 机具设备管理对象 ma_machine
 *
 * @author xsheng
 * @date 2024-09-27
 */


@Data
@ToString
public class Machine extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    private Long id;

    /**
     * 机具ID
     */
    private Long maId;

    private Long[] maIds;

    private Long userId;

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

    /**
     * 机具编号
     */
    @Excel(name = "机具编号")
    @ApiModelProperty(value = "机具编号")
    private String maCode;

    /**
     * 原编号
     */
    @Excel(name = "原编号")
    @ApiModelProperty(value = "原编号")
    private String preCode;

    /**
     * 机具状态（数据字典）
     */
    @Excel(name = "机具状态")
    @ApiModelProperty(value = "机具状态")
    private String maStatus;

    /**
     * 二维码
     */
    @Excel(name = "二维码")
    @ApiModelProperty(value = "二维码")
    private String qrCode;

    /**
     * 购置价格
     */
    @Excel(name = "购置价格")
    @ApiModelProperty(value = "购置价格")
    private BigDecimal buyPrice;

    /**
     * 厂家
     */
    @Excel(name = "厂家")
    @ApiModelProperty(value = "厂家")
    private String maVender;

    /**
     * 出厂日期
     */
    @ApiModelProperty(value = "出厂日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出厂日期")
    private String outFacTime;

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

    /**
     * 固定资产编号
     */
    @Excel(name = "固定资产编号")
    @ApiModelProperty(value = "固定资产编号")
    private String assetsCode;

    /**
     * 本次检验人
     */
    @Excel(name = "本次检验人")
    @ApiModelProperty(value = "本次检验人")
    private String checkMan;

    /**
     * 本次检验日期
     */
    @ApiModelProperty(value = "本次检验日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "本次检验日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date thisCheckTime;

    /**
     * 下次检验日期
     */
    @ApiModelProperty(value = "下次检验日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下次检验日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date nextCheckTime;

    /**
     * gps编号
     */
    @Excel(name = "gps编号")
    @ApiModelProperty(value = "gps编号")
    private String gpsCode;

    /**
     * rfid编号
     */
    @Excel(name = "rfid编号")
    @ApiModelProperty(value = "rfid编号")
    private String rfidCode;

    /**
     * erp编号
     */
    @Excel(name = "erp编号")
    @ApiModelProperty(value = "erp编号")
    private String erpCode;

    /**
     * 调拨编号
     */
    @Excel(name = "调拨编号")
    @ApiModelProperty(value = "调拨编号")
    private String transferCode;

    /**
     * 出入库次数
     */
    @Excel(name = "出入库次数")
    @ApiModelProperty(value = "出入库次数")
    private Long inOutNum;

    /**
     * 购置批次
     */
    @Excel(name = "购置批次")
    @ApiModelProperty(value = "购置批次")
    private String buyTask;

    /**
     * 所在仓库
     */
    @Excel(name = "所在仓库")
    @ApiModelProperty(value = "所在仓库")
    private String ownHouse;

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

    /**
     * 检验人员
     */
    @Excel(name = "检验人员")
    @ApiModelProperty(value = "检验人员")
    private String inspectMan;

    /**
     * 检验结论
     */
    @Excel(name = "检验结论")
    @ApiModelProperty(value = "检验结论")
    private String inspectStatus;

    /**
     * 联系电话
     */
    @Excel(name = "联系电话")
    @ApiModelProperty(value = "联系电话")
    private String phone;

    @ApiModelProperty(value = "关键字")
    private String keyWord;

    @ApiModelProperty(value = "是否是固定资产 0 是，1 否")
    private Integer isAssets;

    @ApiModelProperty("物品种类-二级")
    private String materialType;

    @ApiModelProperty("设备类型-三级")
    private String materialName;

    @ApiModelProperty("规格型号-四级")
    private String materialModel;

    @ApiModelProperty("资产属性ID")
    private String assetsId;

    @ApiModelProperty("前缀")
    private Integer prefix;

    @ApiModelProperty("后缀")
    private Integer suffix;

    @ApiModelProperty("检测报告编号")
    private String exCode;

    @ApiModelProperty("检测报告地址")
    private String exUrl;

    @ApiModelProperty("是否为机具 (0 代表机具)")
    private Integer isJj;

    @ApiModelProperty(value = "报告编号")
    private String reportCode;

    @ApiModelProperty(value = "报告路径")
    private String reportUrl;


    private String nextCheckTimeSynch;

    private String checkTimeSynch;

    @ApiModelProperty(value = "报告编号")
    private String reportNum;

    @ApiModelProperty(value = "pdf")
    private String pdf;

    @ApiModelProperty(value = "code")
    private String code;

    @ApiModelProperty(value = "报告名称")
    private String reportName;

    @ApiModelProperty(value = "集合")
    private List<SampleSync> samples;

    @ApiModelProperty(value = "入库时间")
    private String inTime;
    @ApiModelProperty(value = "服务工程数")
    private int serviceNum;
    @ApiModelProperty(value = "更换配件次数")
    private int checkNum;
    @ApiModelProperty(value = "报废时间")
    private String scrapTime;
    @ApiModelProperty(value = "领料单位")
    private String leaseUnit;
    @ApiModelProperty(value = "领料工程")
    private String leaseProject;
    @ApiModelProperty(value = "领料时间")
    private String leaseTime;
    @ApiModelProperty(value = "退料单位")
    private String backUnit;
    @ApiModelProperty(value = "退料工程")
    private String backProject;
    @ApiModelProperty(value = "退料时间")
    private String backTime;
    @ApiModelProperty(value = "任务")
    private Integer taskId;
    @ApiModelProperty(value = "机具名称")
    private String maName;
    @ApiModelProperty(value = "机具规格")
    private String maModel;

    @ApiModelProperty(value = "物资类型")
    private String typeName;

    @ApiModelProperty(value = "物资名称")
    private String typeCode;

    @ApiModelProperty(value = "入库时间")
    private String inputTime;

    @ApiModelProperty(value = "标准箱ID")
    private Long boxId;

    @ApiModelProperty(value = "实施单位id")
    private String impUnit;

    @ApiModelProperty(value = "身份证号码")
    private String idCard;

    @ApiModelProperty(value = "i8工程id")
    private String externalId;

    /**
     * i8工程id集合
     */
    private List<String> projectIdList;

    private String supplierId;

    /**
     * 1-工器具，2-安全工器具
     */
    private int jiJuType;

    /**
     * 数据来源，设备类型
     * 1-工器具，2-安全工器具
     */
    private int devType;

    private String type;

    private String repairMan;

    private Integer manageType;


    @ApiModelProperty(value = "模块")
    private String modelTitle;

    @ApiModelProperty(value = "当前状态")
    private String oldStatus;

    @ApiModelProperty(value = "分公司")
    private String impUnitName;

    @ApiModelProperty(value = "项目部")
    private String departName;

    @ApiModelProperty(value="开始时间")
    private String startTime;

    @ApiModelProperty(value="结束时间")
    private String endTime;

    @ApiModelProperty(value="本次检验开始时间")
    private String checkStartTime;

    @ApiModelProperty(value="本次检验结束时间")
    private String checkEndTime;

    @ApiModelProperty(value="下次检验开始时间")
    private String nextStartTime;

    @ApiModelProperty(value="下次检验结束时间")
    private String nextEndTime;
}
