package com.chinaweal.aiccs.aiccs.business.entity;

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.baomidou.mybatisplus.extension.activerecord.Model;
import java.time.LocalDateTime;
import java.io.Serializable;

import com.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 问题上报业务记录表
 * </p>
 *
 * @author <a href="https://blog.lroyia.top">lroyia</a>
 * @since 2021-04-21
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(schema = "aiccs", value = "biz_problem_report")
public class BizProblemReport extends Model<BizProblemReport> {

    private static final long serialVersionUID=1L;

    /**
     * 问题id
     */
    @TableId(value = "problem_id", type = IdType.ASSIGN_UUID)
    private String problemId;

    /**
     * 业务号
     */
    @TableField("bizseq")
    private String bizseq;

    /**
     * 问题标题
     */
    @TableField("problem_title")
    private String problemTitle;

    /**
     * 问题描述
     */
    @TableField("problem_desc")
    private String problemDesc;

    /**
     * 上报单位id
     */
    @TableField("report_org")
    private String reportOrg;

    /**
     * 上报单位名称
     */
    @TableField(exist = false)
    private String reportOrgName;

    /**
     * 上报人id
     */
    @TableField("reporter_id")
    private String reporterId;

    /**
     * 上报人名称
     */
    @TableField(exist = false)
    private String reporterName;

    /**
     * 创建时间
     */
    @TableField("create_time")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    private LocalDateTime createTime;

    /**
     * 上报时间
     */
    @TableField("report_time")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    private LocalDateTime reportTime;

    /**
     * 最后更新时间
     */
    @TableField("lauptime")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    private LocalDateTime lauptime;

    /**
     * 紧急程度
     */
    @TableField("urgency")
    private String urgency;

    /**
     * 是否上报（0否1是）
     */
    @TableField("is_report")
    private String isReport;

    /**
     * 是否删除（0否1是）
     */
    @TableField("is_deleted")
    private String isDeleted;

    /**
     * 状态（0、暂存，1、上报，2、办理中，3、办结，4、退回）
     */
    @TableField("state")
    private String state;

    /**
     * 反馈结果
     */
    @TableField("feedback_result")
    private String feedbackResult;

    @Override
    protected Serializable pkVal() {
        return this.problemId;
    }

}
