package com.artfess.rescue.patrol.model;

import com.artfess.base.entity.BizDelModel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableName;

import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;

import java.util.List;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 巡检任务表:由计划生成的具体巡检任务
 *
 * @company 阿特菲斯信息技术有限公司
 * @author 系统管理员
 * @since 2024-08-02
 */
@ApiModel(value="BizInspectionTask对象", description="巡检任务表:由计划生成的具体巡检任务")
@TableName("biz_inspection_task")
@Data
public class BizInspectionTask extends BizDelModel<BizInspectionTask> {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键_ID")
    @TableId(value = "ID_", type = IdType.ASSIGN_ID)
    private String id;

    @ApiModelProperty(value = "计划Id")
    @TableField("PLAN_ID_")
    private String planId;

    @ApiModelProperty(value = "任务单据号")
    @TableField("TASK_NO_")
    private String taskNo;

    @ApiModelProperty(value = "巡检任务日期")
    @TableField("TASK_DATE_")
    private LocalDate taskDate;

    @ApiModelProperty(value = "巡检预结束日期")
    @TableField("TASK_END_DATE_")
    private LocalDate taskEndDate;

    @ApiModelProperty(value = "巡检类型，使用数据字典，1：日常，2：专项")
    @TableField("PLAN_TYPE_")
    private String planType;

    @ApiModelProperty(value = "班次，使用数据字典，1：白班，2：夜班")
    @TableField("WORKCLASS_")
    private String workclass;

    @ApiModelProperty(value = "巡查类型 使用数据字典，1：往返，2：单程")
    @TableField("INSPECT_TYPE_")
    private String inspectType;

    @ApiModelProperty(value = "所属路段(关联路段表ID)")
    @TableField("ROAD_ID_")
    private String roadId;

    @ApiModelProperty(value = "所属路段NAME")
    @TableField("ROAD_NAME_")
    private String roadName;

    @ApiModelProperty(value = "所属路段编码，")
    @TableField("ROAD_CODE_")
    private String roadCode;

    @ApiModelProperty(value = "开始的巡查站ID")
    @TableField("START_PATROL_ID_")
    private String startPatrolId;

    @ApiModelProperty(value = "开始的巡查站NAME")
    @TableField("START_PATROL_NAME_")
    private String startPatrolName;

    @ApiModelProperty(value = "结束的巡查站ID")
    @TableField("END_PATROL_ID_")
    private String endPatrolId;

    @ApiModelProperty(value = "结束的巡查站NAME")
    @TableField("END_PATROL_NAME_")
    private String endPatrolName;

    @ApiModelProperty(value = "巡查队ID（组织机构的ID）")
    @TableField("TEAM_ID_")
    private String teamId;

    @ApiModelProperty(value = "巡查队名称")
    @TableField("TEAM_NAME_")
    private String teamName;

    @ApiModelProperty(value = "接单人员id")
    @TableField("ACCEPT_USER_ID_")
    private String acceptUserId;

    @ApiModelProperty(value = "任务状态，【字典】 0：已登记，1：已委派，2：已接单，3：巡查中 4:已完成 5:中止")
    @TableField("TASK_STATUS_")
    private Integer taskStatus;

    @ApiModelProperty(value = "逾期，超时记录，0-正常，1-逾期，超时")
    @TableField("overdue_log_")
    private Integer overdueLog;

    @ApiModelProperty(value = "计划内容")
    @TableField(exist = false)
    private String planContent;

    @ApiModelProperty(value = "结果id")
    @TableField(exist = false)
    private String resultId;

    @ApiModelProperty(value = "巡查结果")
    @TableField(exist = false)
    private BizInspectionResult result;

    @ApiModelProperty(value = "计划开始时间")
    @TableField(exist = false)
    private LocalDateTime planStartTime;

    @ApiModelProperty(value = "计划结束时间")
    @TableField(exist = false)
    private LocalDateTime planEndTime;

    @ApiModelProperty(value = "巡检人员姓名，多个以，分割")
    @TableField(exist = false)
    private String inspectUsersName;

    @ApiModelProperty(value = "允许本地上传图片")
    @TableField(exist = false)
    boolean uploadImage;

    @ApiModelProperty(value = "是否允许不在固定点打卡")
    @TableField(exist = false)
    boolean tempClock;

    @ApiModelProperty(value = "巡检结果明细")
    @TableField(exist = false)
    private List<BizInspectionResultDetail> resultDetails;

}
