package com.xunmei.core.resumption.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xunmei.common.core.utils.Ymd;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.xunmei.common.core.web.domain.BaseEntity;

/**
 * 【请填写功能名称】对象 core_resumption
 *
 * @author xunmei
 * @date 2023-08-22
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("core_resumption")
@ApiModel(value = "SysResumption对象", description = "【请填写功能名称】")
public class SysResumption extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    private String id;
    @TableField(exist = false)
    private Ymd ymd;
    /**
     * 最后修改人id
     */
    @ApiModelProperty(value = "最后修改人id")
    private Long modifiedId;

    /**
     * 修改人名称
     */
    @ApiModelProperty(value = "修改人名称")
    private String modifiedName;

    /**
     * 异常数目
     */
    @ApiModelProperty(value = "异常数目")
    private Long exceptionCount;

    /**
     * 表单类型
     */
    @ApiModelProperty(value = "表单类型")
    private Long formType;

    /**
     * 机构
     */
    @ApiModelProperty(value = "机构")
    private Long orgId;

    /**
     * 状态
     */
    @ApiModelProperty(value = "状态")
    private Long status;

    /**
     * 履职类型 0日 1周 2月 3季 4半年 5年 6小时
     */
    @ApiModelProperty(value = "履职类型 0日 1周 2月 3季 4半年 5年 6小时")
    private Long type;

    /**
     * 年月日
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "年月日")
    private Date ymdDate;

    /**
     * 日
     */
    @ApiModelProperty(value = "日")
    private Long ymdDay;

    /**
     * 月
     */
    @ApiModelProperty(value = "月")
    private Long ymdMonth;

    /**
     * 季
     */
    @ApiModelProperty(value = "季")
    private Long ymdQuarter;

    /**
     * 周
     */
    @ApiModelProperty(value = "周")
    private Long ymdWeek;

    /**
     * 年
     */
    @ApiModelProperty(value = "年")
    private Long ymdYear;

    /**
     * 半年
     */
    @ApiModelProperty(value = "半年")
    private Long ymdHalfyear;

    /**
     * 提交时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "提交时间")
    private Date submitTime;

    /**
     * 小时
     */
    @ApiModelProperty(value = "小时")
    private Long ymdHour;

    /**
     * 分钟
     */
    @ApiModelProperty(value = "分钟")
    private Long ymdMinute;

    /**
     * 计划id
     */
    @ApiModelProperty(value = "计划id")
    private Long planId;

    /**
     * 任务执行开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "任务执行开始时间")
    private Date startTime;

    /**
     * 任务执行结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "任务执行结束时间")
    private Date endTime;

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

    /**
     * 计划截止时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "计划截止时间")
    private Date planEndTime;

    /**
     * 角色id
     */
    @ApiModelProperty(value = "角色id")
    private Long roleId;


    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)


                .append("id", getId())


                .append("createTime", getCreateTime())


                .append("modifiedId", getModifiedId())


                .append("modifiedName", getModifiedName())


                .append("updateTime", getUpdateTime())


                .append("exceptionCount", getExceptionCount())


                .append("formType", getFormType())


                .append("orgId", getOrgId())


                .append("status", getStatus())


                .append("type", getType())


                .append("ymdDate", getYmdDate())


                .append("ymdDay", getYmdDay())


                .append("ymdMonth", getYmdMonth())


                .append("ymdQuarter", getYmdQuarter())


                .append("ymdWeek", getYmdWeek())


                .append("ymdYear", getYmdYear())


                .append("ymdHalfyear", getYmdHalfyear())


                .append("submitTime", getSubmitTime())


                .append("ymdHour", getYmdHour())


                .append("ymdMinute", getYmdMinute())


                .append("planId", getPlanId())


                .append("startTime", getStartTime())


                .append("endTime", getEndTime())


                .append("planStartTime", getPlanStartTime())


                .append("planEndTime", getPlanEndTime())


                .append("roleId", getRoleId())
                .toString();
    }
}
