package com.njcn.process.pojo.vo.gw;

import cn.hutool.core.util.StrUtil;
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.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 监督工作计划变更历史数据表
 * </p>
 *
 * @author wr
 * @since 2023-09-01
 */
@Getter

public class PlanHisVO {

    private static final long serialVersionUID = 1L;

    @TableId("Id")
    private String id;

    @ApiModelProperty("计划表主键")
    @TableField("Plan_Id")
    private String planId;

    @ApiModelProperty("计划名称")
    @TableField("Work_Plan_Name")
    private String workPlanName;

    @ApiModelProperty("监督单位id 取ISC平台上的组织id")
    @TableField("Supv_Org_Id")
    private String supvOrgId;

    @TableField("Supv_Org_Name")
    private String supvOrgName;

    @ApiModelProperty("计划监督时间")
    @TableField("plan_Supv_Date")
    private LocalDate planSupvDate;

    @ApiModelProperty("其他要求")
    @TableField("Other_Remark")
    private String otherRemark;

    @ApiModelProperty("调整原因")
    @TableField("Apply_Comment")
    private String applyComment;

    @ApiModelProperty("计划状态")
    @TableField("Plan_Status")
    private String planStatus;

    @ApiModelProperty("更新人id")
    @TableField("Update_User_Id")
    private String updateUserId;

    @TableField("Update_User_Name")
    private String updateUserName;

    @TableField("Update_Time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    @ApiModelProperty("取消标识")
    @TableField("Delete_Flag")
    private String deleteFlag;

    @ApiModelProperty("当取消标识为1时必填")
    @TableField("Delete_Time")
    private LocalDate deleteTime;

    @ApiModelProperty("上次变更记录主键,	从第二次变更起为必填")
    @TableField("Parent_Id")
    private String parentId;

    @ApiModelProperty("调整时间,	审核通过时间")
    @TableField("Adjust_Time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private LocalDateTime adjustTime;

    @ApiModelProperty("0.以上送 1.未上送 2.取消上送 3.待重新上送")
    @TableField("is_upload_head")
    private Integer isUploadHead;

    public void setId(String id) {
        if (StrUtil.isNotBlank(id)) {
            this.id = id;
        } else {
            this.id = null;
        }
    }

    public void setPlanId(String planId) {
        if (StrUtil.isNotBlank(planId)) {
            this.planId = planId;
        } else {
            this.planId = null;
        }
    }

    public void setWorkPlanName(String workPlanName) {
        if (StrUtil.isNotBlank(workPlanName)) {
            this.workPlanName = workPlanName;
        } else {
            this.workPlanName = null;
        }
    }

    public void setSupvOrgId(String supvOrgId) {
        if (StrUtil.isNotBlank(supvOrgId)) {
            this.supvOrgId = supvOrgId;
        } else {
            this.supvOrgId = null;
        }
    }

    public void setSupvOrgName(String supvOrgName) {
        if (StrUtil.isNotBlank(supvOrgName)) {
            this.supvOrgName = supvOrgName;
        } else {
            this.supvOrgName = null;
        }
    }

    public void setPlanSupvDate(LocalDate planSupvDate) {
        this.planSupvDate = planSupvDate;
    }

    public void setOtherRemark(String otherRemark) {
        if (StrUtil.isNotBlank(otherRemark)) {
            this.otherRemark = otherRemark;
        } else {
            this.otherRemark = null;
        }
    }

    public void setApplyComment(String applyComment) {
        if (StrUtil.isNotBlank(applyComment)) {
            this.applyComment = applyComment;
        } else {
            this.applyComment = null;
        }
    }

    public void setPlanStatus(String planStatus) {
        if (StrUtil.isNotBlank(planStatus)) {
            this.planStatus = planStatus;
        } else {
            this.planStatus = null;
        }
    }

    public void setUpdateUserId(String updateUserId) {
        if (StrUtil.isNotBlank(updateUserId)) {
            this.updateUserId = updateUserId;
        } else {
            this.updateUserId = null;
        }
    }

    public void setUpdateUserName(String updateUserName) {
        if (StrUtil.isNotBlank(updateUserName)) {
            this.updateUserName = updateUserName;
        } else {
            this.updateUserName = null;
        }
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    public void setDeleteFlag(String deleteFlag) {
        if (StrUtil.isNotBlank(deleteFlag)) {
            this.deleteFlag = deleteFlag;
        } else {
            this.deleteFlag = null;
        }
    }

    public void setDeleteTime(LocalDate deleteTime) {
        this.deleteTime = deleteTime;
    }

    public void setParentId(String parentId) {
        if (StrUtil.isNotBlank(parentId)) {
            this.parentId = parentId;
        } else {
            this.parentId = null;
        }
    }

    public void setAdjustTime(LocalDateTime adjustTime) {
        this.adjustTime = adjustTime;
    }

    public void setIsUploadHead(Integer isUploadHead) {
        this.isUploadHead = isUploadHead;
    }
}
