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

import lombok.*;

import java.time.LocalDate;
import java.util.*;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import org.springframework.format.annotation.DateTimeFormat;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;

/**
 * 运行记录填报 DO
 *
 * @author 芋道源码
 */
@TableName("rq_iot_opeation_fill")
@KeySequence("rq_iot_opeation_fill_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class IotOpeationFillDO extends BaseDO {

    /**
     * 主键id
     */
    @TableId
    private Long id;

    private Long deviceCategoryId;

    /**
     * 设备ID
     */
    private Long deviceId;

    /**
     * 资产编号
     */
    private String deviceCode;
    /**
     * 设备名称
     */
    private String deviceName;
    /**
     * 填写内容
     */
    private String fillContent;
    /**
     * 设备类别
     */
    private String deviceType;
    /**
     * 设备部件
     */
    private String deviceComponent;
    /**
     * 公司id
     */
    private Long deptId;
    /**
     * 所属组织
     */
    private String orgName;
    /**
     * 项目部id
     */
    private Long proId;
    /**
     * 所属项目部
     */
    private String proName;
    /**
     * 小队id
     */
    private Long teamId;
    /**
     * 所属小队
     */
    private String teamName;
    /**
     * 设备负责人
     */
    private String dutyName;
    /**
     * 填写日期
     */
    private LocalDate creDate;

    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private LocalDateTime createTime;

    private int isFill;
    /**
     * 是否日报虚拟设备 1是0否
     */
    private Integer isReport;

    private String orderName;
    private String orderType;
    private int orderStatus;
    private Integer userId;
    private String userName;
    private Long orderId;
    private String mobile;
    private int allDev;
    private int fillDev;
    private int unFillDev;

    /**
     * 扩展字段
     */
    private String wellName;
    private Long taskId;
    private Long reportId;
    private Map<Long, String> wellNamePair;
    private Set<Long> noGasTasks;
}
