package com.yeejoin.amos.boot.module.jg.api.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import com.yeejoin.amos.boot.module.jg.api.common.BizCustomDateSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * @author system_generator
 * @date 2023-12-12
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "JgUseRegistrationDto", description = "")
public class JgUseRegistrationDto extends BaseDto {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "设备监管码")
    private String supervisoryCode;

    @ApiModelProperty(value = "使用单位ID")
    private String useUnitId;

    @ApiModelProperty(value = "使用单位名称")
    private String useUnitName;

    @ApiModelProperty(value = "申请编号")
    private String applyNo;

    @ApiModelProperty(value = "办理状态")
    private String auditStatus;

    @ApiModelProperty(value = "接收机构id")
    private String receiveOrgId;

    @ApiModelProperty(value = "接收机构")
    private String receiveOrgName;

    @ApiModelProperty(value = "检验单位ID")
    private String inspectUnitId;

    @ApiModelProperty(value = "检验单位")
    private String inspectUnitName;

    @ApiModelProperty(value = "检验结果照片")
    private String inspectResultPhoto;

    @ApiModelProperty(value = "检验结果")
    private String inspectResult;

    @ApiModelProperty(value = "终审通过时间")
    private Date auditPassDate;

    @ApiModelProperty(value = "登记类别")
    private String regType;

    @ApiModelProperty(value = "注册登记日期")
    private Date regDate;

    @ApiModelProperty(value = "申请日期")
    private String applicationDate;

    @ApiModelProperty(value = "注册登记人员ID")
    private String regPersonId;

    @ApiModelProperty(value = "注册登记人员")
    private String regPersonName;

    @ApiModelProperty(value = "安装单位ID")
    private String installUnitId;

    @ApiModelProperty(value = "安装单位名称")
    private String installUnitName;

    @ApiModelProperty(value = "状态")
    private String status;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "创建人ID")
    private String createUserId;

    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = BizCustomDateSerializer.class)
    private Date createDate;

    @ApiModelProperty(value = "录入单位ID")
    private String inputUnitNo;

    @ApiModelProperty(value = "设备类别")
    private String equCategory;

    @ApiModelProperty(value = "设备类别")
    private String equDefine;

    @ApiModelProperty(value = "设备代码")
    private String equCode;

    @ApiModelProperty(value = "设备种类")
    private String equList;


    private List<String> roleIds;

    private String dataType;

    @ApiModelProperty(value = "使用单位code")
    private String unitCode;

    @ApiModelProperty(value = "使用单位code：用作接收搜索条件")
    private String useUnitCode;

    private String isXixian;

    private String currentUserId;

    @ApiModelProperty(value = "其他附件")
    private String otherAccessories;

    /**
     * 办理类型，unit(单位) set(台套)
     */
    @ApiModelProperty(value = "办理类型")
    private String manageType;

    @ApiModelProperty(value = "使用登记证编号")
    private String useRegistrationCode;

    @ApiModelProperty(value = "96333识别代码")
    private String code96333;

    @ApiModelProperty(value = "设备地址")
    private String fullAddress;

    @ApiModelProperty(value = "接收单位")
    private String receiveCompanyCode;


    @ApiModelProperty(value = "作废人员id")
    private String cancelUserId;


    @ApiModelProperty(value = "作废原因")
    private String cancelReason;


    @ApiModelProperty(value = "作废日期")
    private Date cancelDate;

    @ApiModelProperty(value = "是否增补")
    private String isAddEquip;

    @ApiModelProperty(value = "工程装置名称")
    private String projectContraption;

}
