package cn.iocoder.yudao.module.pms.dal.dataobject.iotprojecttask;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import cn.iocoder.yudao.module.pms.dal.dataobject.iotprojecttaskattrs.IotTaskAttrModelProperty;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.*;

import java.util.List;
import java.util.Set;

/**
 * 项目信息任务拆分 DO
 *
 * @author 超级管理员
 */
@TableName(value="rq_iot_project_task", autoResultMap = true)
@KeySequence("rq_iot_project_task_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class IotProjectTaskDO extends BaseDO {

    /**
     * 主键id
     */
    @TableId
    private Long id;
    /**
     * 项目id
     */
    private Long projectId;
    /**
     * 平台井标识 0非平台井 1平台井
     */
    private Integer platformWell;
    /**
     * 平台井组
     */
    private String platformGroup;
    /**
     * 井号
     */
    private String wellName;
    /**
     * 井型
     */
    private String wellType;
    /**
     * 井别
     */
    private String wellCategory;
    /**
     * 施工地点
     */
    private String location;
    /**
     * 施工设备
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private Set<Long> deviceIds;
    /**
     * 施工工艺
     */
    private String technique;
    /**
     * 责任人([123,234])
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private Set<Long> responsiblePerson;
    /**
     * 工单填报人([123,234])
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private Set<Long> submitter;
    /**
     * 设计工作量
     */
    private String workloadDesign;
    /**
     * 工作量单位(段/层/方/井深/进尺)
     */
    private String workloadUnit;
    /**
     * 状态 (瑞恒)施工状态
     */
    private String status;
    /**
     * 瑞都施工状态(动迁上井 动迁下井 ...)
     */
    private String rdStatus;
    /**
     * 瑞鹰钻井施工状态(开钻前准备 钻进 ...)
     */
    private String rigStatus;
    /**
     * 瑞鹰修井施工状态(开工准备 施工 ...)
     */
    private String repairStatus;
    /**
     * 用户名
     */
    private String userName;
    /**
     * 用户id
     */
    private Long userId;
    /**
     * 备注
     */
    private String remark;

    /**
     * 施工队伍
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private Set<Long> deptIds;

    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<IotTaskAttrModelProperty> extProperty;

    /**
     * 该任务所属部门id
     */
    private Long deptId;

    private String manufactureName;

    private String contractName;

    private String contractCode;

}