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

import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModel;
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/11  14:07【需求编号】
 *
 * @author clam
 * @version V1.0.0
 */
@ApiModel(description="临时监测点信息")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SupervisionTempLineReportParam {


    private String id;

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


    @ApiModelProperty(value = "填报部门")
    private String orgId;
    /**
     * 填报日期
     */
    @ApiModelProperty(value="填报日期")
    private LocalDate reportDate;

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

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

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

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

    /**
     * 关联干扰源用户id
     */
    @ApiModelProperty(value="关联干扰源用户id")
    private String userId;

    /**
     * 关联干扰源用户id名称
     */
    @ApiModelProperty(value="关联干扰源用户id名称")
    private String userName;


    /**
     * 监测终端编码
     */
    @ApiModelProperty(value="监测终端编码")
    private String monitoringTerminalCode;

    /**
     * 监测终端名称
     */
    @ApiModelProperty(value="监测终端名称")
    private String monitoringTerminalName;


    /**
     * 监测点名称
     */
    @ApiModelProperty(value="监测点名称")
    private String lineName;

    /**
     * 监测点电压等级
     */
    @ApiModelProperty(value="监测点电压等级")
    private String voltageLevel;

    /**
     * 接入母线
     */
    @ApiModelProperty(value="接入母线")
    private String connectedBus;

    /**
     * 短路容量
     */
    @ApiModelProperty(value="短路容量")
    private Float shortCapacity;

    /**
     * 协议容量
     */
    @ApiModelProperty(value="协议容量")
    private Float dealCapacity;

    /**
     * 设备容量
     */
    @ApiModelProperty(value="设备容量")
    private Float devCapacity;

    /**
     * 基准容量
     */
    @ApiModelProperty(value="基准容量")
    private Float standardCapacity;

    /**
     * CT变比
     */
    @ApiModelProperty(value="CT1")
    private Integer ct1;

    @ApiModelProperty(value="CT2")
    private Integer ct2;

    /**
     * PT变比
     */
    @ApiModelProperty(value="PT1")
    private Integer pt1;

    @ApiModelProperty(value="PT2")
    private Integer pt2;

    /**
     * 监测点编号
     */
    @ApiModelProperty(value="监测点编号")
    private String lineId;

    /**
     * 测量间隔
     */
    @ApiModelProperty(value="测量间隔")
    private Integer timeInterval;

    /**
     * 干扰源类型
     */
    @ApiModelProperty(value="干扰源类型")
    private String loadType;

    /**
     * 干扰源类别
     */
    @ApiModelProperty(value="干扰源类别")
    private String businessType;

    /**
     * 监测点性质
     */
    @ApiModelProperty(value="监测点性质")
    private String pointNature;

    /**
     * 是否参与统计
     */
    @ApiModelProperty(value="是否参与统计")
    private Integer isStatistical;

    /**
     * 监测点对象名称
     */
    @ApiModelProperty(value="监测点对象名称")
    private String objName;

    /**
     * 电网侧变电站
     */
    @ApiModelProperty(value="电网侧变电站")
    private String powerSubstationName;

    /**
     * 是否并网点
     */
    @ApiModelProperty(value="是否并网点")
    private Integer isGridConnectionPoint;

    /**
     * 监测点运行状态
     */
    @ApiModelProperty(value="监测点运行状态")
    private String operationStatus;

    /**
     * 主接线图
     */
    @ApiModelProperty(value="主接线图")
    private String mainWiringDiagram;

    /**
     * 电压偏差上限
     */
    @ApiModelProperty(value="电压偏差上限")
    private Float voltageDeviationUpperLimit;

    /**
     * 电压偏差下限
     */
    @ApiModelProperty(value="电压偏差下限")
    private Float voltageDeviationLowerLimit;

    /**
     * 线路号
     */
    private Integer num;

    /**
     * 接线方式
     */
    private Integer ptType;


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

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

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

    @ApiModelProperty(value = "审核状态")
    private Integer status;


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

    @Data
    @EqualsAndHashCode(callSuper = true)
    public  static class SupervisionTempLineReportUpdate extends SupervisionTempLineReportParam {

        @ApiModelProperty("id")
        private String id;

    }

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

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

        private List<Integer> statueList;

        @ApiModelProperty(value = "审核状态")
        private Integer status;

    }
}
