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

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 保养工单 DO
 *
 * @author ruiqi
 */
@TableName("rq_iot_main_work_order")
@KeySequence("rq_iot_main_work_order_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class IotMainWorkOrderDO extends BaseDO {

    /**
     * 主键id
     */
    @TableId
    private Long id;
    /**
     * 保养计划id
     */
    private Long planId;
    /**
     * 保养计划编号
     */
    private String planSerialNumber;
    /**
     * 组织id
     */
    private Long deptId;
    /**
     * 分组工单id  多个责任人操作相同设备内容的工单 关联关系 uuid
     */
    private String orderGroupId;
    /**
     * 工单号
     */
    private String orderNumber;
    /**
     * 工单名称 (吐哈-C14-保养计划)
     */
    private String name;
    /**
     * 工单类型(1计划生成  2临时新建)
     */
    private Integer type;
    /**
     * 负责人id 多个以逗号分隔
     */
    private String responsiblePerson;
    /**
     * 负责人id 多个以逗号分隔
     */
    private String responsiblePersonName;
    /**
     * 保养费用
     */
    private BigDecimal cost;
    /**
     * 保养结果(1待执行 2已执行)
     */
    private Integer result;
    /**
     * 其他费用
     */
    private BigDecimal otherCost;
    /**
     * 人工费用
     */
    private BigDecimal laborCost;
    /**
     * 是否委外 0否  1是
     */
    private Integer outsourcingFlag;
    /**
     * 实际保养开始时间
     */
    private LocalDateTime actualStartTime;
    /**
     * 实际保养结束时间
     */
    private LocalDateTime actualEndTime;
    /**
     * 填报人 必填
     */
    private String applicant;
    /**
     * 备注
     */
    private String remark;
    /**
     * 延期保养原因
     */
    private String delayReason;
    /**
     * 状态 0启用  1停用
     */
    private Integer status;
    /**
     * 流程实例id
     */
    private String processInstanceId;
    /**
     * 审批状态 未提交、审批中、审批通过、审批不通过、已取消
     */
    private Integer auditStatus;

}