package cn.com.countrygarden.bi.main.dto.advise;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.util.Date;
import java.util.Objects;

/**
 * 建言列表页的视图类
 *
 * @author 木木子
 */

public class AfAdviseFeedbackListVO {
    /**
     * 建言id
     */
    private Integer id;
    /**
     * 建言类型id
     */
    private Integer adviseTypeId;
    /**
     * 建言类型名称
     */
    private String adviseTypeName;
    /**
     * 建言标题
     */
    private String title;

//
//	private Integer responsiblerCount;
    /**
     * 状态((0保存,1提交,2完成)
     */
    private Integer state;


    /**
     * 是否私密(0:否，1：是)
     */
    private Integer isPrivate;
    /**
     * 关联的公告id
     */
    private  Integer noticeState;
    /**
     * 分支关联
     */
    private String branchTypeCode;
    /**
     * 建言创建人
     */
    private String feedBackCreateBy;
    /**
     * 分配建言类型标识
     */
    private  Integer distributionAdviseTypeId;
    /**
     * 所属项目名称
     */
    private String commName;
    /**
     * 所属区域名称
     */
    private String organName;
    /**
     * 建议排序号
     */
    private Integer sortNumber;
    /**
     * 节点类型0（项目）
     */
    private Integer processType0;
    /**
     * 项目提出人编号
     */
    private String userCode0;
    /**
     * 项目提出人姓名
     */
    private String userName0;
    /**
     * 项目提出时间
     */
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8")
    private Date dateTime0;
    /**
     * 节点类型1（区域）
     */
    private Integer processType1;
    /**
     * 区域处理人编号
     */
    private String userCode1;
    /**
     * 区域处理人姓名
     */
    private String userName1;
    /**
     * 区域回复时间
     */
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8")
    private Date dateTime1;
    /**
     * 节点类型2（总部）
     */
    private Integer processType2;
    /**
     * 总部处理人编号
     */
    private String userCode2;
    /**
     * 总部处理人姓名
     */
    private String userName2;
    /**
     * 总部回复时间
     */
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8")
    private Date dateTime2;

    /**
     * 登录账号的角色类型（0超级管理员1.总部管理员，2类型负责人，3区域负责人）
     */
    private Integer userAdminType;
    /**
     * 当前登录人编号
     */
    private String submitUserCode;

    /**
     * 前端是否显示分配按钮（true:显示，false:不显示）
     */
    private Boolean isDistribute;

    /**
     * 前端是否显示回复按钮（true:显示，false:不显示）
     */
    private Boolean isAnswer;


    private boolean isReject;
    /**
     * 前端是否显示查看按钮（true:显示，false:不显示）
     */
    private Boolean isCheck;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getAdviseTypeId() {
        return adviseTypeId;
    }

    public Boolean getIsAnswer() {
        return isAnswer;
    }

    public void setIsAnswer(Boolean isAnswer) {
        this.isAnswer = isAnswer;
    }

    public boolean isReject() {
        return isReject;
    }

    public void setReject(boolean reject) {
        isReject = reject;
    }

    public void setAdviseTypeId(Integer adviseTypeId) {
        this.adviseTypeId = adviseTypeId;
    }

    public String getAdviseTypeName() {
        return adviseTypeName;
    }

    public void setAdviseTypeName(String adviseTypeName) {
        this.adviseTypeName = adviseTypeName;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }



    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public Integer getIsPrivate() {
        return isPrivate;
    }

    public void setIsPrivate(Integer isPrivate) {
        this.isPrivate = isPrivate;
    }

    public Integer getProcessType0() {
        return processType0;
    }

    public void setProcessType0(Integer processType0) {
        this.processType0 = processType0;
    }

    public String getUserCode0() {
        return userCode0;
    }

    public void setUserCode0(String userCode0) {
        this.userCode0 = userCode0;
    }

    public String getUserName0() {
        return userName0;
    }

    public void setUserName0(String userName0) {
        this.userName0 = userName0;
    }

    public Date getDateTime0() {
        return dateTime0;
    }

    public void setDateTime0(Date dateTime0) {
        this.dateTime0 = dateTime0;
    }

    public Integer getProcessType1() {
        return processType1;
    }

    public void setProcessType1(Integer processType1) {
        this.processType1 = processType1;
    }

    public String getUserCode1() {
        return userCode1;
    }

    public void setUserCode1(String userCode1) {
        this.userCode1 = userCode1;
    }

    public String getUserName1() {
        return userName1;
    }

    public void setUserName1(String userName1) {
        this.userName1 = userName1;
    }

    public Date getDateTime1() {
        return dateTime1;
    }

    public void setDateTime1(Date dateTime1) {
        this.dateTime1 = dateTime1;
    }

    public Integer getProcessType2() {
        return processType2;
    }

    public void setProcessType2(Integer processType2) {
        this.processType2 = processType2;
    }

    public String getUserCode2() {
        return userCode2;
    }

    public void setUserCode2(String userCode2) {
        this.userCode2 = userCode2;
    }

    public String getUserName2() {
        return userName2;
    }

    public void setUserName2(String userName2) {
        this.userName2 = userName2;
    }

    public Date getDateTime2() {
        return dateTime2;
    }

    public void setDateTime2(Date dateTime2) {
        this.dateTime2 = dateTime2;
    }

    public Integer getUserAdminType() {
        return userAdminType;
    }

    public void setUserAdminType(Integer userAdminType) {
        this.userAdminType = userAdminType;
    }

    public Boolean getIsDistribute() {
        return isDistribute;
    }

    public void setIsDistribute(Boolean isDistribute) {
        this.isDistribute = isDistribute;
    }

    public String getBranchTypeCode() {
        return branchTypeCode;
    }

    public void setBranchTypeCode(String branchTypeCode) {
        this.branchTypeCode = branchTypeCode;
    }

    public String getFeedBackCreateBy() {
        return feedBackCreateBy;
    }

    public void setFeedBackCreateBy(String feedBackCreateBy) {
        this.feedBackCreateBy = feedBackCreateBy;
    }

    public String getSubmitUserCode() {
        return submitUserCode;
    }

    public void setSubmitUserCode(String submitUserCode) {
        this.submitUserCode = submitUserCode;
    }

    public String getCommName() {
        return commName;
    }

    public void setCommName(String commName) {
        this.commName = commName;
    }

    public String getOrganName() {
        return organName;
    }

    public void setOrganName(String organName) {
        this.organName = organName;
    }

    public Boolean getDistribute() {
        return isDistribute;
    }

    public void setDistribute(Boolean distribute) {
        isDistribute = distribute;
    }

    public Boolean getAnswer() {
        return isAnswer;
    }

    public void setAnswer(Boolean answer) {
        isAnswer = answer;
    }

    public Boolean getCheck() {
        return isCheck;
    }

    public void setCheck(Boolean check) {
        isCheck = check;
    }

    public Integer getSortNumber() {
        return sortNumber;
    }

    public void setSortNumber(Integer sortNumber) {
        this.sortNumber = sortNumber;
    }

    public Integer getDistributionAdviseTypeId() {
        return distributionAdviseTypeId;
    }

    public void setDistributionAdviseTypeId(Integer distributionAdviseTypeId) {
        this.distributionAdviseTypeId = distributionAdviseTypeId;
    }

    public Integer getNoticeState() {
        return noticeState;
    }

    public void setNoticeState(Integer noticeState) {
        this.noticeState = noticeState;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        AfAdviseFeedbackListVO that = (AfAdviseFeedbackListVO) o;
        return isReject == that.isReject &&
                Objects.equals(id, that.id) &&
                Objects.equals(adviseTypeId, that.adviseTypeId) &&
                Objects.equals(adviseTypeName, that.adviseTypeName) &&
                Objects.equals(title, that.title) &&
                Objects.equals(state, that.state) &&
                Objects.equals(isPrivate, that.isPrivate) &&
                Objects.equals(noticeState, that.noticeState) &&
                Objects.equals(branchTypeCode, that.branchTypeCode) &&
                Objects.equals(feedBackCreateBy, that.feedBackCreateBy) &&
                Objects.equals(distributionAdviseTypeId, that.distributionAdviseTypeId) &&
                Objects.equals(commName, that.commName) &&
                Objects.equals(organName, that.organName) &&
                Objects.equals(sortNumber, that.sortNumber) &&
                Objects.equals(processType0, that.processType0) &&
                Objects.equals(userCode0, that.userCode0) &&
                Objects.equals(userName0, that.userName0) &&
                Objects.equals(dateTime0, that.dateTime0) &&
                Objects.equals(processType1, that.processType1) &&
                Objects.equals(userCode1, that.userCode1) &&
                Objects.equals(userName1, that.userName1) &&
                Objects.equals(dateTime1, that.dateTime1) &&
                Objects.equals(processType2, that.processType2) &&
                Objects.equals(userCode2, that.userCode2) &&
                Objects.equals(userName2, that.userName2) &&
                Objects.equals(dateTime2, that.dateTime2) &&
                Objects.equals(userAdminType, that.userAdminType) &&
                Objects.equals(submitUserCode, that.submitUserCode) &&
                Objects.equals(isDistribute, that.isDistribute) &&
                Objects.equals(isAnswer, that.isAnswer) &&
                Objects.equals(isCheck, that.isCheck);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, adviseTypeId, adviseTypeName, title, state, isPrivate, noticeState, branchTypeCode, feedBackCreateBy, distributionAdviseTypeId, commName, organName, sortNumber, processType0, userCode0, userName0, dateTime0, processType1, userCode1, userName1, dateTime1, processType2, userCode2, userName2, dateTime2, userAdminType, submitUserCode, isDistribute, isAnswer, isReject, isCheck);
    }
}
