package com.yuchen.saas.park.api.entity.fire.inspect;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.nest.springwrap.core.mp.base.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import java.util.Date;

/**
 * <p>
 * 巡检计划表
 * </p>
 *
 * @author zhouhanwei
 * @since 2024-04-07
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("saas_park_fire_inspect_plan")
@ApiModel(value="SaasParkFireInspectPlan对象", description="巡检计划表")
public class SaasParkFireInspectPlan extends BaseEntity {

    /**
     * 客户id
     */
    @ApiModelProperty(name = "customerId", value = "客户id")
    private Long customerId;
    /**
     * 项目id
     */
    @ApiModelProperty(name = "projectId", value = "项目id")
    private Long projectId;
    /**
     * 业务id
     */
    @ApiModelProperty(name = "projectId", value = "业务id")
    private Long businessId;
    /**
     * 业务名称
     */
    @ApiModelProperty(name = "businessName", value = "业务名称")
    private String businessName;
    /**
     * 巡检类型id
     */
    @ApiModelProperty(name = "inspectTypeId", value = "巡检类型id")
    private Long inspectTypeId;
    /**
     * 计划名称
     */
    @ApiModelProperty(name = "inspectPlanName", value = "计划名称")
    private String inspectPlanName;
    /**
     * 执行状态（0：未执行, 1:执行中，2：已完成，3：已关闭）
     */
    @ApiModelProperty(name = "planState", value = "执行状态（0：未执行, 1:执行中，2：已完成，3：已关闭）")
    private String planState;
    /**
     * 计划开始日期
     */
    @ApiModelProperty(name = "planStartDate", value = "计划开始日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date planStartDate;
    /**
     * 计划结束日期
     */
    @ApiModelProperty(name = "planEndDate", value = "计划结束日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date planEndDate;
    /**
     * 任务数
     */
    @ApiModelProperty(name = "taskNum", value = "任务数")
    private Integer taskNum;
    /**
     * 时间段数组
     */
    @ApiModelProperty(name = "planTimePeriodValue", value = "时间段数组")
    private String planTimePeriodValue;
    /**
     * 时间段对象
     */
    @ApiModelProperty(name = "planTimePeriodData", value = "时间段对象")
    private String planTimePeriodData;
    /**
     * 巡检人类型（1：人员，2：部门， 3：角色）
     */
    @ApiModelProperty(name = "inspectPeopleType", value = "巡检人类型（1：人员，2：部门， 3：角色）")
    private String inspectPeopleType;
    /**
     * 部门或角色id
     */
    @ApiModelProperty(name = "deptRoleId", value = "部门或角色id")
    private Long deptRoleId;
    /**
     * 巡检人id
     */
    @ApiModelProperty(name = "inspectPeopleIds", value = "巡检人id")
    private String inspectPeopleIds;
    /**
     * 计划规则选择周期类型（1：天，2：周，3：月，4：年，5：自定义）
     */
    @ApiModelProperty(name = "planRuleCycle", value = "计划规则选择周期类型（1：天，2：周，3：月，4：年，5：自定义）")
    private String planRuleCycle;
    /**
     * 计划规则周期值
     */
    @ApiModelProperty(name = "planRuleCycleValue", value = "计划规则周期值")
    private String planRuleCycleValue;
    /**
     * 分配方式（1：每人全时段，2：每人1时段，3:全员分配）
     */
    @ApiModelProperty(name = "distributionMode", value = "分配方式（1：每人全时段，2：每人1时段，3:全员分配）")

    private String distributionMode;
    /**
     * 计划任务表头
     */
    @ApiModelProperty(name = "taskHeadData", value = "计划任务表头")
    private String taskHeadData;
    /**
     * 计划任务内容数据
     */
    @ApiModelProperty(name = "taskContentData", value = "计划任务内容数据")
    private String taskContentData;
    /**
     * 任务开始通知模式（0：不开通，1：开通）
     */
    @ApiModelProperty(name = "taskStartNotifyDemand", value = "任务开始通知模式（0：不开通，1：开通）")
    private String taskStartNotifyDemand;
    /**
     * 任务开始前多久通知
     */
    @ApiModelProperty(name = "taskStartNotify", value = "任务开始前多久通知")
    private Integer taskStartNotify;
    /**
     * 任务开始前通知类型（1：分钟，2：小时，3：天）
     */
    @ApiModelProperty(name = "taskStartNotifyType", value = "任务开始前通知类型（1：分钟，2：小时，3：天）")
    private String taskStartNotifyType;
    /**
     * 任务到期模式（0：不开通，1：开通）
     */
    @ApiModelProperty(name = "taskEndNotifyDemand", value = "任务到期模式（0：不开通，1：开通）")
    private String taskEndNotifyDemand;
    /**
     * 任务过期期限
     */
    @ApiModelProperty(name = "taskEndNotify", value = "任务过期期限")
    private Integer taskEndNotify;
    /**
     * 任务到期时间类型（1：分钟，2：小时，3：天）
     */
    @ApiModelProperty(name = "taskEndNotifyType", value = "任务到期时间类型（1：分钟，2：小时，3：天）")
    private String taskEndNotifyType;
    /**
     * 任务执行类型（1：单人模式，2：多人模式）
     */
    @ApiModelProperty(name = "taskExecuteType", value = "任务执行类型（1：单人模式，2：多人模式）")
    private String taskExecuteType;
    /**
     * 逾期任务自动关闭（0：否，1：是）
     */
    @ApiModelProperty(name = "taskAutoCloseDemand", value = "逾期任务自动关闭（0：否，1：是）")
    private String taskAutoCloseDemand;
    /**
     * 逾期任务不允许巡检（0：否，1：是）
     */
    @ApiModelProperty(name = "taskOutAllowDemand", value = "逾期任务不允许巡检（0：否，1：是）")
    private String taskOutAllowDemand;
    /**
     * 顺序巡检（0：否，1：是）
     */
    @ApiModelProperty(name = "taskSequenceDemand", value = "顺序巡检（0：否，1：是）")
    private String taskSequenceDemand;
    /**
     * 允许从相册选择照片（0：否，1：是）
     */
    @ApiModelProperty(name = "taskPhotoDemand", value = "允许从相册选择照片（0：否，1：是）")
    private String taskPhotoDemand;
    /**
     * 备注
     */
    @ApiModelProperty(name = "remark", value = "备注")
    private String remark;
    /**
     * 创建人
     */
    @ApiModelProperty(name = "createOrgUser", value = "创建人")
    private Long createOrgUser;
    /**
     * 修改人
     */
    @ApiModelProperty(name = "updateOrgUser", value = "修改人")
    private Long updateOrgUser;



}
