package com.njcn.harmonic.pojo.po.upload;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.njcn.db.bo.BaseEntity;

import java.sql.Timestamp;
import java.time.LocalDate;
import java.time.LocalDateTime;

import com.njcn.harmonic.utils.TimestampAsLongSerializer;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 电能质量全过程跟踪数据
 * </p>
 *
 * @author cdf
 * @since 2024-10-09
 */
@Getter
@Setter
@TableName("pms_tem_process_track")
public class PmsTemProcessTrackPO{

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private String objId;

    @TableField(exist = false)
    private String consName;

    /**
     * 关联临时用户档案主键
     */
    @TableId
    private String tempUserDossierId;


    private String tempUserDossierName;

    /**
     * 项目阶段
     */
    private String proStage;

    /**
     * 规划可研-评估状态
     */
    private String auditStatus;

    /**
     * 规划可研-评估结论
     */
    private String auditResult;

    /**
     * 规划可研-审查人
     */
    private String auditUserId;

    /**
     * 规划可研-审查人名称
     */
    private String auditUserName;

    /**
     * 规划可研-审查时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @JSONField(serializeUsing = TimestampAsLongSerializer.class)
    private Timestamp auditTime;

    /**
     * 竣工验收-验收状态
     */
    private String approvalStatus;

    /**
     * 竣工验收-验收结论
     */
    private String approvalResult;

    /**
     * 竣工验收-验收负责人
     */
    private String approvalDutyUserId;

    /**
     * 竣工验收-验收负责人名称
     */
    private String approvalDutyUserName;

    /**
     * 竣工验收-验收时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @JSONField(serializeUsing = TimestampAsLongSerializer.class)
    private Timestamp approvalTime;

    /**
     * 营销用户编号
     */
    private String consNo;

    /**
     * 试运行-是否超标
     */
    private String testIsOv;

    /**
     * 总超标天数
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer allOvCountDay;

    /**
     * 监测天数
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer monitorDay;

    /**
     * 开始监测日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private LocalDate startMonitorDate;

    /**
     * 关联监测点
     */
    private String monitorIds;

    /**
     * 投运日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private LocalDate operateDate;

    /**
     * 运行天数
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer testRunDay;

    /**
     * 审查完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @JSONField(serializeUsing = TimestampAsLongSerializer.class)
    private Timestamp auditFinalTime;

    /**
     * 审查出具单位名称
     */
    private String auditIssueOrgName;

    /**
     * 电能质量专业审查意见
     */
    private String professionalAuditOpinion;

    /**
     * 审查单位
     */
    private String auditOrg;

    /**
     * 审查单位名称
     */
    private String auditOrgName;

    /**
     * 验收完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @JSONField(serializeUsing = TimestampAsLongSerializer.class)
    private Timestamp approvalFinalTime;

    /**
     * 遗留问题
     */
    private String legacyProblem;

    /**
     * 验收建议
     */
    private String approvalAdvise;

    /**
     * 验收参与人名称
     */
    private String approvalJoinUserName;

    /**
     * 关联营销档案时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @JSONField(serializeUsing = TimestampAsLongSerializer.class)
    private Timestamp relConsTime;

    /**
     * 操作人名称
     */
    private String operateUserName;

    /**
     * 测试结论
     */
    private String testResult;

    /**
     * 试运行出具单位名称
     */
    private String testRunIssueOrgName;

    /**
     * 越限指标
     */
    private String ovIndexs;

    /**
     * 监测日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @JSONField(serializeUsing = TimestampAsLongSerializer.class)
    private Timestamp monitorDate;

    /**
     * 用户id
     */
    private String consObjId;

    private Integer uploadStatus;


    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(serializeUsing = TimestampAsLongSerializer.class)
    private Timestamp createTime;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(serializeUsing = TimestampAsLongSerializer.class)
    private Timestamp updateTime;




    /**
     * 所属地市名称
     */
    @TableField(exist = false)
    private String cityOrgName;


    /**
     * 运维单位名称
     */
    @TableField(exist = false)
    private String maintOrgName;

}
