package com.gci.boot.modules.gis.entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import com.gci.boot.annotation.Query.OrderQuery;
import com.gci.boot.annotation.Query.SelectQuery;
import com.gci.boot.common.dict.annotation.Dict;
import io.swagger.annotations.ApiModel;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 车辆gps相关数据统计
 * </p>
 *
 * @author 2464
 * @since 2023-10-31
 */
@Getter
@Setter
@TableName("tb_gis_gps_statistics")
@ApiModel(value = "TbGisGpsStatistics对象", description = "车辆gps相关数据统计")
public class TbGisGpsStatistics implements Serializable {

    private static final long serialVersionUID = 1L;

    @JsonPropertyDescription("id")
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private String id;

    @JsonPropertyDescription("车牌号")
    @SelectQuery()
    @Excel(name = "车牌号",orderNum = "0")
    private String plateNumber;

    @Dict(dicCode = "id",dictTable = "tb_vehicle_supplier_archives",dicText = "shortened")
    @JsonPropertyDescription("车商")
    @SelectQuery(Type = SelectQuery.SelectType.EQ)
    @Excel(name = "车商",dict = "tb_vehicle_supplier_archives,shortened,id",orderNum = "1")
    private String dealer;

    @JsonPropertyDescription("车辆种类")
    @Dict(dicCode = "vehicle_type")
    @SelectQuery(Type = SelectQuery.SelectType.EQ)
    @Excel(name = "车辆种类",dict = "vehicle_type",orderNum = "2")
    private String vehicleType;

    @JsonPropertyDescription("日期")
    @OrderQuery
    @Excel(name = "日期",orderNum = "4")
    private String statisTime;

    @TableField(exist = false)
    @SelectQuery(Type = SelectQuery.SelectType.BETWEEN,PropName = "statisTime")
    private List<String> time;

    @JsonPropertyDescription("所属项目")
    @SelectQuery(Type = SelectQuery.SelectType.EQ)
    @Dict(dicCode = "id",dictTable = "tb_projects",dicText = "project_name")
    @Excel(name = "所属项目",dict = "tb_projects,project_name,id",orderNum = "3")
    private String projectId;

    @JsonPropertyDescription("808上报总数(条)")
    @Excel(name = "808上报总数(条)",orderNum = "10")
    private Long jtCount;

    @JsonPropertyDescription("808上报有效数(条)")
    @Excel(name = "808上报有效数(条)",orderNum = "11")
    private Long jtValidCount;

    @JsonPropertyDescription("808上报无效数(条)")
    @Excel(name = "808上报无效数(条)",orderNum = "12")
    private Long jtNotValidCount;

    @JsonPropertyDescription("三电上报总数(条)")
    @Excel(name = "三电上报总数(条)",orderNum = "13")
    private Long eicCount;

    @JsonPropertyDescription("三电上报有效数(条)")
    @Excel(name = "三电上报有效数(条)",orderNum = "14")
    private Long eicValidCount;

    @JsonPropertyDescription("三电上报无效数(条)")
    @Excel(name = "三电上报无效数(条)",orderNum = "15")
    private Long eicNotValidCount;

    @JsonPropertyDescription("是否支持808")
    @Dict(dicCode = "yes_no")
    @Excel(name = "是否支持808",dict = "yes_no",orderNum = "6")
    private String supportJt;

    @JsonPropertyDescription("是否支持eic")
    @Dict(dicCode = "yes_no")
    @Excel(name = "是否支持三电",dict = "yes_no",orderNum = "5")
    private String supportEic;

    @JsonPropertyDescription("是否支持主动安全")
    @Dict(dicCode = "yes_no")
    @Excel(name = "是否支持主动安全",dict = "yes_no",orderNum = "7")
    private String supportSafety;

    @JsonPropertyDescription("是否有视频")
    @Dict(dicCode = "yes_no")
    @Excel(name = "是否有视频",dict = "yes_no",orderNum = "8")
    private String supportVideo;

    @JsonPropertyDescription("是否终端直连")
    @Dict(dicCode = "yes_no")
    @Excel(name = "是否终端直连",dict = "yes_no",orderNum = "9")
    private String supportTerminal;

    @JsonPropertyDescription("上报作业数（条）")
    @Excel(name = "上报作业数（条）",orderNum = "16")
    private Long workCount;

    @JsonPropertyDescription("作业数（条）")
    @Excel(name = "作业数据（条）",orderNum = "17")
    private Long workValidCount;

    @JsonPropertyDescription("未作业数（条）")
    @Excel(name = "未作业数据（条）",orderNum = "18")
    private Long workNotValidCount;

}
