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

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
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 java.util.Date;

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

    /**
     * 客户id
     */
    @ApiModelProperty(name = "customerId", value = "客户id")
    private Long customerId;
    /**
     * 项目id
     */
    @ApiModelProperty(name = "projectId", value = "项目id")
    private Long projectId;
    /**
     * 任务类型（1：巡检计划，2：临时任务）
     */
    @ApiModelProperty(name = "taskType", value = "任务类型（1：巡检计划，2：临时任务）")
    private String taskType;
    /**
     * 巡检计划id
     */
    @ApiModelProperty(name = "planId", value = "巡检计划id")
    private Long planId;
    /**
     * 业务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 = "receiptCode", value = "单据编码")
    private String receiptCode;
    /**
     * 任务名称
     */
    @ApiModelProperty(name = "taskName", value = "任务名称")
    private String taskName;
    /**
     * 任务日期
     */
    @ApiModelProperty(name = "taskDate", value = "任务日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date taskDate;
    /**
     * 任务开始时间
     */
    @ApiModelProperty(name = "taskStartTime", value = "任务开始时间")
    private Date taskStartTime;
    /**
     * 任务结束时间
     */
    @ApiModelProperty(name = "taskEndTime", value = "任务结束时间")
    private Date taskEndTime;
    /**
     * 任务过期时间
     */
    @ApiModelProperty(name = "taskOutTime", value = "任务过期时间")
    private Date taskOutTime;
    /**
     * 任务完成时间
     */
    @ApiModelProperty(name = "taskProcessedTime", value = "任务完成时间")
    private Date taskProcessedTime;
    /**
     * 时间段数组
     */
    @ApiModelProperty(name = "planTimePeriodValue", value = "时间段数组")
    private String planTimePeriodValue;
    /**
     * 时间段对象
     */
    @ApiModelProperty(name = "planTimePeriodData", value = "时间段对象")
    private String planTimePeriodData;
    /**
     * 巡检数
     */
    @ApiModelProperty(name = "inspectNum", value = "巡检数")
    private Integer inspectNum;
    /**
     * 已巡检数
     */
    @ApiModelProperty(name = "inspectedNum", value = "已巡检数")
    private Integer inspectedNum;
    /**
     * 已巡检异常数
     */
    @ApiModelProperty(name = "inspectedExceptionNum", value = "已巡检异常数")
    private Integer inspectedExceptionNum;

    /**
     * 任务状态（0：待开始，1：处理中，2：已处理，3：已关闭）
     */
    @ApiModelProperty(name = "taskState", value = "任务状态（0：待开始，1：处理中，2：已处理，3：已关闭）")
    private String taskState;
    /**
     * 执行状态（0：未执行, 1:执行中，2：已完成，3：已关闭, 4: 逾期未巡检， 5：逾期未完成）
     */
    @ApiModelProperty(name = "executeState", value = "执行状态（0：未执行, 1:执行中，2：已完成，3：已关闭, 4: 逾期未巡检， 5：逾期未完成）")
    private String executeState;
    /**
     * 关闭类型（1: 逾期，2：手动）
     */
    @ApiModelProperty(name = "closeType", value = "关闭类型（1: 逾期，2：手动）")
    private String closeType;
    /**
     * 关闭原因（1：任务超时，2：人手不足，3：重新安排，4：工作安排冲突，5：其他）
     */
    @ApiModelProperty(name = "closeReason", value = "关闭原因（1：任务超时，2：人手不足，3：重新安排，4：工作安排冲突，5：其他）")
    private String closeReason;
    /**
     * 关闭说明
     */
    @ApiModelProperty(name = "closeRemark", value = "关闭说明")
    private String closeRemark;
    /**
     * 退回原因
     */
    @ApiModelProperty(name = "backReason", value = "退回原因")
    private String backReason;
    /**
     * 巡检结果（1: 正常，2：异常）
     */
    @ApiModelProperty(name = "inspectResult", value = "巡检结果（1: 正常，2：异常）")
    private String inspectResult;
    /**
     * 巡检人id值
     */
    @ApiModelProperty(name = "inspectPeopleIds", value = "巡检人id值")
    private String inspectPeopleIds;
    /**
     * 任务处理人
     */
    @ApiModelProperty(name = "taskPeopleIds", value = "任务处理人")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String taskPeopleIds;
    /**
     * 任务开始通知模式（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;
    /**
     * 任务通知时间
     */
    @ApiModelProperty(name = "taskNotifyTime", value = "任务通知时间")
    private Date taskNotifyTime;
    /**
     * 任务到期模式（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 = "备注")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String remark;
    /**
     * 创建人
     */
    @ApiModelProperty(name = "createOrgUser", value = "创建人")
    private Long createOrgUser;
    /**
     * 修改人
     */
    @ApiModelProperty(name = "updateOrgUser", value = "修改人")
    private Long updateOrgUser;



}
