package com.hdkj.lt.mq.entity.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 计划停电转供方案信息表 实体类
 *
 * @author zhousc
 * @since 2025-05-07
 */
@TableName("fhzg_plan_power_cut")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class FhzgPlanPowerCut implements Serializable {

    /**
     * 代理主键
     */
    @ApiModelProperty("代理主键")
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    protected Long id;

    /**
     * 计划停电编码
     */
    @ApiModelProperty(value = "计划停电编码")
    private String planNo;

    /**
     * 计划停电开始时间
     */
    @ApiModelProperty(value = "计划停电开始时间")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime planStartTime;

    /**
     * 计划停电结束时间
     */
    @ApiModelProperty(value = "计划停电结束时间")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime planEndTime;

    /**
     * 馈线Id
     */
    @ApiModelProperty(value = "馈线Id")
    private String lineId;

    /**
     * 馈线名称
     */
    @ApiModelProperty(value = "馈线名称")
    private String lineName;

    /**
     * 计划停电多条馈线预留字段
     */
    @ApiModelProperty(value = "计划停电多条馈线预留字段")
    private String lineContent;

    /**
     * 计划停电来源
     */
    @ApiModelProperty(value = "计划停电来源")
    private String planSource;
    /**
     * 工作内容
     */
    @ApiModelProperty(value = "工作内容")
    private String workContent;

    /**
     * 地市Id
     */
    @ApiModelProperty(value = "地市Id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long cityCode;

    /**
     * 地市名称
     */
    @ApiModelProperty(value = "地市名称")
    private String cityName;

    /**
     * 区县Id
     */
    @ApiModelProperty(value = "区县Id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long countyCode;

    /**
     * 区县名称
     */
    @ApiModelProperty(value = "区县名称")
    private String countyName;

    /**
     * 计划状态
     */
    @ApiModelProperty(value = "计划状态")
    private String planState;
    /**
     * 方案状态,01-已确认，02-未确认
     */
    @ApiModelProperty(value = "方案状态,01-已确认，02-未确认")
    private String schemeState;

    /**
     * 方案是否可转供 0-false 1-true
     */
    @ApiModelProperty(value = "方案是否可转供 0-false 1-true")
    private Integer powerOnSuccess;

    /**
     * 停电计划提供馈线名称
     */
    @ApiModelProperty(value = "停电计划提供馈线名称")
    private String feederName;

    /**
     * 停电计划馈线及其内部开关设备信息JSON
     */
    @ApiModelProperty(value = "停电计划馈线及其内部开关设备信息JSON")
    private String feederListJson;

    /**
     * 转供前开关信息json
     */
    private String allSwitchInfoListJson;

    /**
     * 线路配置额定电流json
     */
    private String feederCheckRuleJson;

    /**
     * 创建人
     */
    @ApiModelProperty("创建人")
    protected Long creator;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    protected LocalDateTime createTime;

    /**
     * 最后一次修改人
     */
    @ApiModelProperty("最后一次修改人")
    protected Long lastEditor;

    /**
     * 最后一次修改时间
     */
    @ApiModelProperty("最后一次修改时间")
    protected LocalDateTime lastTime;

    /**
     * 分页页长
     */
    @TableField(exist = false)
    private Long pageSize;

    /**
     * 分页页码
     */
    @TableField(exist = false)
    private Long pageNum;

    /**
     * 计划是否有效标识
     */
    private String validFlag;

    /**
     * 逻辑删除标识
     */
    private Integer isDelete;

    /**
     * 是否最新标识，1-是，0-不是
     */
    private String isNewest;

    /**
     * 计划生成时开关状态信息
     */
    private String feederSwitchInfo;
}

