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

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 java.time.LocalDate;
import java.util.List;
import java.util.Map;

/**
 * Description:
 * Date: 2024/5/10  18:16【需求编号】
 *
 * @author clam
 * @version V1.0.0
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SupervisionDevMainReportParam {

    private String id;

    @ApiModelProperty(value = "保存1,提交审批2")
    private String saveOrCheckflag;
    /**
     * 填报人
     */

    @ApiModelProperty(value = "填报人")
    private String reporter;

    /**
     * 填报日期
     */

    @ApiModelProperty(value = "填报日期")
    private LocalDate reportDate;

    /**
     * 填报部门
     */

    @ApiModelProperty(value = "填报部门")
    private String orgId;

    /**
     * 工程预期投产日期
     */

    @ApiModelProperty(value = "工程预期投产日期")
    private LocalDate expectedProductionDate;

    /**
     * 所属地市
     */

    @ApiModelProperty(value = "所属地市")
    private String city;

    /**
     * 用户状态
     */

    @ApiModelProperty(value = "用户状态")
    private String userStatus;

    @ApiModelProperty(value = "用户名称")
    private String userId;
    /**
     * 用户名称
     */

    @ApiModelProperty(value = "用户名称")
    private String userName;

    /**
     *监测点台账信息
     */
    @ApiModelProperty(value = "监测点台账信息")
    private String lineFilePath;
    /**
     * 台终端账信息文件
     */
    @ApiModelProperty(value = "监测点台账信息")
    private String deviceFilePath;


    /**
     * 验收检验报告
     */

    @ApiModelProperty(value = "验收检验报告")
    private String acceptanceInspectionReport;

    /**
     * 验收检验报告单
     */

    @ApiModelProperty(value = "验收检验报告单")
    private String acceptanceInspectionReportSingle;

    /**
     * 型式实验报告
     */

    @ApiModelProperty(value = "型式实验报告")
    private String typeExperimentReport;

    /**
     * 出厂检验报告
     */

    @ApiModelProperty(value = "出厂检验报告")
    private String factoryInspectionReport;

    /**
     * 性能检测报告
     */

    @ApiModelProperty(value = "性能检测报告")
    private String performanceTestReport;

    /**
     * 信息安全检测报告
     */

    @ApiModelProperty(value = "信息安全检测报告")
    private String informationSecurityTestReport;

    /**
     * 其他附件
     */

    @ApiModelProperty(value = "其他附件")
    private String otherAttachments;

    /**
     * 流程实例的编号
     */

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

    @ApiModelProperty(value = "历史流程实例的编号")
    private String historyInstanceId;


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

    /**
     * 状态：0：系统建档 1：外部导入
     */
    @ApiModelProperty(value = "状态：0：系统建档 1：外部导入")
    private Integer importType;

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

    private SupervisionTempDeviceReportParam supervisionTempDeviceReportParam;

//    private SupervisionTempLineReportParam supervisionTempLineReportParam;

    @Data
    @EqualsAndHashCode(callSuper = true)
    public  static class SupervisionDevMainReportParamUpdate extends SupervisionDevMainReportParam {

        @ApiModelProperty("id")
        private String id;

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

        @ApiModelProperty(value = "填报部门")
        private String orgNo;

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

    }
}
