package org.springblade.modules.app.common.dto;

import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.ToStringSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.wn.common.datamodel.BaseDTO;
import com.wn.common.datamodel.Long2StringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * <p>
 * 运输单信息
 * </p>
 *
 * @author fuxinsheng
 * @since 2021-11-05
 */
@Data
@ApiModel(value = "TransportStageInfoDTO", description = "运输单信息")
public class TransportStageInfoDTO extends BaseDTO {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @JSONField(serializeUsing = ToStringSerializer.class)
    @JsonSerialize(using = Long2StringSerializer.class)
    @ApiModelProperty(name = "id", value = "运输单阶段id")
    private Long id;

    /**
     * 运输单id
     */
    @JSONField(serializeUsing = ToStringSerializer.class)
    @JsonSerialize(using = Long2StringSerializer.class)
    @ApiModelProperty(name = "transportId", value = "运输单id")
    private Long transportId;

    /**
     * 阶段 1-装运 2-过检 3-验收
     */
    @ApiModelProperty(name = "stage", value = "阶段 1-装运 2-过检 3-验收")
    private Integer stage;

    /**
     * 运输单阶段位置
     */
    @ApiModelProperty(name = "submitLocation", value = "运输单阶段位置")
    private String submitLocation;

    /**
     * 经度
     */
    @ApiModelProperty(name = "submitLongitude", value = "经度")
    private String submitLongitude;

    /**
     * 纬度
     */
    @ApiModelProperty(name = "submitLatitude", value = "纬度")
    private String submitLatitude;

    /**
     * 提交时间
     */
    @ApiModelProperty(name = "submitTime", value = "提交时间")
    private Date submitTime;

    /**
     * 附件信息
     */
    @ApiModelProperty(name = "pictureInfoDTOList", value = "附件信息")
    private List<PictureInfoDTO> pictureInfoDTOList;

    /**
     * 提交时间
     */
    @ApiModelProperty(name = "applyState", value = "审批状态 0-审核中 1-通过 2-驳回")
    private Integer applyState;

    /**
     * 违规类型 0-未违规 1-行程异常
     */
    @ApiModelProperty(name = "expType", value = "违规类型 0-未违规 1-行程异常")
    private Integer expType;

    private String token;
}
