package com.yiboshi.science.param.query;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yiboshi.science.base.PaginationVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;

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

/**
 * 查询任务书表VO
 * 
 * @author lkl
 * @version 2021-08-26
 */
@Data
@EqualsAndHashCode(callSuper=true)
@ApiModel(description = "查询任务书表VO")
public class ComProjectTaskQueryVO extends PaginationVO{
    /** 项目Id */
    @ApiModelProperty(value = "项目Id", position = 1)
    private String projId;
    /** 年度 */
    @ApiModelProperty(value = "年度", position = 2)
    private Integer reportYear;
    /** 任务书状态  0 未 填,-20 起 草, -10 待提交,1 审核中,10 审核通过,20 审核不通过,30 返回修改 */
    @ApiModelProperty(value = "任务书状态  0 未 填,-20 起 草, -10 待提交,1 审核中,10 审核通过,20 审核不通过,30 返回修改", position = 3)
    private Integer testState;
    /** 实施目标和主要内容 */
    @ApiModelProperty(value = "实施目标和主要内容", position = 4)
    private String testContent;
    /** 总经费 */
    @ApiModelProperty(value = "总经费", position = 5)
    private BigDecimal budgetCount;
    /** 市卫计委资助 */
    @ApiModelProperty(value = "市卫计委资助", position = 6)
    private BigDecimal budgetGovCount;
    /** 开始日期 */
    @ApiModelProperty(value = "开始日期", position = 7)
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startDate;
    /** 结束日期 */
    @ApiModelProperty(value = "结束日期", position = 8)
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endDate;

    /** 项目名称 */
    @ApiModelProperty(value = "项目名称", position = 1)
    private String projName;
    /** 项目编号 */
    @ApiModelProperty(value = "项目编号", position = 2)
    private String projNo;
    /** 项目开始日期 */
    @ApiModelProperty(value = "开始日期", position = 7)
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date projStart;
    /** 项目结束日期 */
    @ApiModelProperty(value = "结束日期", position = 8)
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date projEnd;
    /** 项目类别 */
    @ApiModelProperty(value = "项目类别", position = 3)
    private String projClass;
    /** 申请编号 */
    @ApiModelProperty(value = "申请编号", position = 4)
    private String appNo;
    /** 版本号 */
    @ApiModelProperty(value = "版本号", position = 5)
    private String versionNo;
    /** 项目状态 -10 起草,10 待提交, 20 已提交至依托单位,25 依托单位审核通过，请打印申请书,30 返回修改,40 未批准立项,50 批准立项 */
    @ApiModelProperty(value = "项目状态 -10 起草,10 待提交, 20 已提交至依托单位,25 依托单位审核通过，请打印申请书,30 返回修改,40 未批准立项,50 批准立项", position = 7)
    private Integer projState;
    /** 单位名称 */
    @ApiModelProperty(value = "单位名称", position = 41)
    private String appUnitName;
    /** 树编码 */
    @ApiModelProperty(value = "树编码", position = 1)
    private String treeCode;
    /** 姓名 */
    @ApiModelProperty(value = "姓名", position = 41)
    private String appPersonName;
    /** 项目类别 */
    @ApiModelProperty(value = "项目类别", position = 3)
    private String projClassName;
    /** 项目状态 */
    @ApiModelProperty(value = "项目状态", position = 41)
    private String projStateName;
    /** 任务书状态 */
    @ApiModelProperty(value = "任务书状态", position = 41)
    private String testStateName;
    /** 申报单位Id */
    @ApiModelProperty(value = "申报单位Id", position = 8 )
    @Length(max=36, message = "申报单位Id不能大于36")
    private String appUnitId;
    /** 申报人Id */
    @ApiModelProperty(value = "申报人Id", position = 9 )
    @Length(max=36, message = "申报人Id不能大于36")
    private String appPersonId;

}