package com.yunyan.business.pojo.admin.vo;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yunyan.common.annotation.Excel;
import com.yunyan.common.core.domain.BaseEntityVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;


/**
 * 报告数据对象 tb_final_data
 *
 * @author yunyan
 * @date 2023-07-27
 */
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
@TableName(value = "tb_final_data")
public class FinalDataExportZipListVo extends BaseEntityVo
{
    private static final long serialVersionUID = 1L;

    /** ID主键 */
    @Excel(name = "ID")
    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "ID主键")
    private Long id;

    /** 年份(如2023) */
    @Excel(name = "年份")
    @ApiModelProperty(value = "年份(如2023)")
    private String year;

    /** 类型: 1-决算, 2-预算, 默认1 */
    @Excel(name = "类型", readConverterExp = "1=决算,2=预算" )
    @ApiModelProperty(value = "类型: 1-决算, 2-预算, 默认1")
    private Integer type;

    @Excel(name = "单位编码")
    @ApiModelProperty(value = "机构编码")
    private String deptCode;

    @ApiModelProperty(value = "单位名称")
    private String deptName;

    @ApiModelProperty(value = "归属区域")
    private String area;

    @ApiModelProperty(value = "导出文档的内容 json")
    private String jsonFileContent;

    /** 用户ID */
    @ApiModelProperty(value = "用户ID")
    private Long userId;

    /** 部门id/单位 */
    @Excel(name = "单位ID")
    @ApiModelProperty(value = "部门id/单位")
    private Long deptId;

    /** 状态: 0-默认 */
    @Excel(name = "状态", dictType = "tb_final_data_status" )
    @ApiModelProperty(value = "状态: 0-默认, 1-本年数据采集, 2-去年数据采集, 4-填报中, 6-申请审核中, 8-单位内审通过(一审) , 9-单位内审驳回(一审) , 10-财政审核通过(二审) , 11- 财政审核驳回(二审), 14-已生成报告, 16-已填公开网址")
    private Integer status;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "最近生成PDF的时间")
    private Date generateTime;

    @ApiModelProperty(value = "文件list", hidden = true)
    private FinalDataDownloadFileVo fileVo;

}
