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

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

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 预告警单表
 * </p>
 *
 * @author hongawen
 * @since 2024-05-21
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class WarningLeafletParam implements Serializable{

    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "保存1,提交审批2")
    private String saveOrCheckflag;
    /**
     * 预告警单名称
     */
    @ApiModelProperty(value = "设备编号")
    private String leafletName;

    /**
     * 预告警编号，目前阶段不做配置
     */
    @ApiModelProperty(value = "设备编号")
    private String leafletNo;

    /**
     * 1：技术监督管理；2：在线监测超标问题；3：用户投诉；4：现场测试超标
     */
    @ApiModelProperty(value = "设备编号")
    private Integer problemType;

    /**
     * 对应问题源ID，用于查询详细信息
     */
    @ApiModelProperty(value = "设备编号")
    private String problemId;

    /**
     * 单子类型：1：预警单；2：告警单
     */
    @ApiModelProperty(value = "设备编号")
    private Integer leafletType;

    /**
     * 1:审批中；2：审批通过；3：审批不通过；4：已取消；5：待反馈
     */
    @ApiModelProperty(value = "设备编号")
    private Integer status;

    /**
     * 流程实例的编号
     */
    @ApiModelProperty(value = "设备编号")
    private String processInstanceId;

    /**
     * 整改意见
     */
    @ApiModelProperty(value = "整改意见")
    private String reformAdvice;
    /**
     * 问题详细描述
     */
    @ApiModelProperty(value = "问题详细描述")
    private String issueDetail;

    @ApiModelProperty("发起人自选审批人 Map")
    private Map<String, List<String>> startUserSelectAssignees;

    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class WarningLeafletUpdateParam extends WarningLeafletParam {

        @ApiModelProperty("id")
        @NotBlank(message = "索引不能为空")
        private String Id;


        /**
         * 采取措施
         */
        @ApiModelProperty(value = "采取措施")
//        @NotBlank(message = "采取措施不能为空")
        private String takeStep;


        /**
         * 处理成效报告
         */
        @ApiModelProperty(value = "处理成效报告")
//        @NotBlank(message = "处理成效报告不能为空")
        private String reportPath;



    }


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

        /**
         * 负责单位
         */
        String deptIndex;
        String dealState;

        /**
         * 1:审批中；2：审批通过；3：审批不通过；4：已取消；5：待反馈
         */
        @ApiModelProperty(value = "设备编号")
        private Integer status;

    }


}
