package com.njcn.supervision.pojo.param.survey;

import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDate;

/**
 * <p>
 * 普测测试的管理表
 * </p>
 *
 * @author hongawen
 * @since 2024-05-30
 */
@Data
public class SurveyTestParam implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("id")
    @NotBlank(message = "索引不能为空")
    private String Id;
    @ApiModelProperty(value = "保存1,提交审批2")
    private String saveOrCheckflag;

    /**
     * 普测计划表id
     */
    @ApiModelProperty(value = "普测计划表id")
    private String planId;

    /**
     * 负责单位id
     */
    @ApiModelProperty(value = "负责单位id")
    private String deptId;

    /**
     * 计划完成时间
     */
    @ApiModelProperty(value = "计划完成时间")
    private LocalDate completeTime;

    /**
     * 测试负责人
     */
    @ApiModelProperty(value = "测试负责人")
    private String completeBy;

    /**
     * 测试报告
     */
    @ApiModelProperty(value = "测试报告")
    private String testReport;

    /**
     * 技术监督报告
     */
    @ApiModelProperty(value = "技术监督报告")
    private String supervisionReport;

    /**
     * 其他报告
     */
    @ApiModelProperty(value = "其他报告")
    private String otherReport;

    /**
     * 是否有问题 0 没有问题 1 有问题
     */
    @ApiModelProperty(value = "是否有问题")
    private Integer problemFlag;

    /**
     * 问题描述
     */
    @ApiModelProperty(value = "问题描述")
    private String problemDetail;

    /**
     * 测试审批状态(1:审批中；2：审批通过；3：审批不通过；4：已取消)
     */
    @ApiModelProperty(value = "测试审批状态")
    private Integer status;

    /**
     * 流程实例id
     */
    @ApiModelProperty(value = "流程实例id")
    private String processInstanceId;

    /**
     * 历史流程id列表
     */
    @ApiModelProperty(value = "历史流程id列表")
    private String historyInstanceId;

    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class SurveyTestUpdateParam extends SurveyTestParam {


    }


    /**
     * 分页查询实体
     */
    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class SurveyTestQueryParam extends BaseParam {


        /**
         * 普测负责单位
         */
        String deptIndex;

        String dealState;

        /**
         * 测试审批状态(1:审批中；2：审批通过；3：审批不通过；4：已取消)
         */
        @ApiModelProperty(value = "测试审批状态")
        private Integer status;

        @ApiModelProperty(value = " 监督类型")
        private String supvType;

    }

}
