package com.xunmei.core.resumption.domain;

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 com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * 履职，安全检查计划表(core_resumption_plan)实体类
 *
 * @author 高雄
 * @since 2022-04-27 16:38:43
 * @description 由 Mybatisplus Code Generator 创建
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("core_resumption_plan")
@AllArgsConstructor
public class AppPlan extends Model<AppPlan> implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(type = IdType.AUTO)
	private Long id;
    /**
     * 计划名称
     */

    private String planName;
    /**
     * 计划类型 0：履职计划，1，安全检查，2教育培训
     */

    private Integer planType;
    /**
     * 计划周期：每小时，每日，每周，每月，每季度，每半年，每年
     */
    private Integer planCycle;
    /**
     * 执行时刻：全天，营业前，营业期间，营业终
     */
    private Integer planExec;
    /**
     * 执行机构类型
     */
    private Integer execOrgType;
    /**
     * 检查机构类型
     */
//    private Integer checkOrgType;
    /**
     * 检查类型：0：机构类型，1：具体机构
     */
    private Integer checkType;
    /**
     * 执行类型：0：机构类型，1：具体机构
     */
    private Integer execType;
    /**
     * 计划状态：0：启用，1禁用
     */

    private Integer planStatus;

    /**
     * 休息时间不履职
     */
    private Integer notResumptionOnRest;


    private String planCreateOrgName;
    private String planCreateOrgId;
    private String planOfOrgName;
    private String planOfOrgId;
    private String count;
    private String distributeStatus;
    private String parentId;


    /**
     * 备注
     */
    private String description;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 修改人名称
     */
    private String modifiedName;
    /**
     * 修改时间
     */
    @TableField(update = "now()")
	private Date updateTime;
    /**
     * 修改人id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long modifiedBy;


    /**
     * 计划机构列表
     */
    @TableField(exist = false)
    private String orgNames;

    /**
     * 角色集合
     */
    @TableField(exist = false)
    private String roleNames;


    @TableField(exist = false)
    private String orgId;

//    public static ObjectDataClass planTo(AppPlan appPlan) {
//        ObjectDataClass objectDataClass = new ObjectDataClass();
//        objectDataClass.setId(appPlan.getId());
//        objectDataClass.setName(appPlan.getPlanName());
//        return objectDataClass;
//    }
}