package com.cf.imes.module.plan.dal.dataobject.orderImport;

import com.baomidou.mybatisplus.annotation.FieldFill;
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.cf.imes.module.plan.dal.elasticsearch.BasePosition;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.time.LocalDateTime;

/**
 * 生产单导入临时表
 *
 * @author Gqr
 * @since 2025/1/9 11:36
 */
@TableName("order_import_temp_data")
@KeySequence("order_import_temp_data_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class OrderImportTempDataDO {
    /**
     * 主键
     */
    @TableId
    private Long id;

    /**
     * 组织id
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long organId;

    /**
     * 导入任务id
     */
    private Long taskId;

    /**
     * 生产单id（补板用）
     */
    private Long orderId;

    /**
     * 类型
     */
    private Integer type;

    /**
     * 设计端id
     */
    private String outerId;

    /**
     * 设计端归属id
     */
    private String outerSubId;

    /**
     * 物料编码
     */
    private String outerGoodsId;

    /**
     * imes商品id
     */
    private String innerGoodsId;

    /**
     * 商品名称
     */
    private String goodsName;

    /**
     * 材料
     */
    private String material;

    /**
     * 颜色
     */
    private String color;

    /**
     * 纹路
     */
    private String wave;

    /**
     * 宽度
     */
    private String width;

    /**
     * 长度
     */
    private String height;

    /**
     * 厚度
     */
    private String thickness;

    /**
     * 品牌
     */
    private String brand;

    /**
     * 是否复合部件
     */
    @TableField("is_composite")
    private String isComposite;

    /**
     * 配件主类
     */
    private String category;

    /**
     * 配件子类型
     */
    private String subType;

    /**
     * 厂家
     */
    private String factory;

    /**
     * 规格
     */
    private String spec;

    /**
     * 型号
     */
    private String model;

    /**
     * 单位
     */
    private String unit;

    /**
     * 房间名称
     */
    private String roomName;

    /**
     * 房间编号
     */
    private String roomCode;

    /**
     * imes房间id
     */
    @TableField(exist = false)
    private Long innerRoomId;

    /**
     * 柜体名称
     */
    private String bodyName;

    /**
     * 柜体编号
     */
    private String bodyCode;

    /**
     * imes柜体id
     */
    @TableField(exist = false)
    private Long innerBodyId;

    /**
     * 加工组类型
     */
    private String groupTypeName;

    /**
     * 模块名称
     */
    private String groupName;

    /**
     * 加工组编号
     */
    private String groupCode;

    /**
     * imes加工组id
     */
    @TableField(exist = false)
    private Long innerGroupId;

    /**
     * 数量
     */
    private Double num;

    @TableField(exist = false)
    private int plateNum;

    @TableField(exist = false)
    private int unregularNum;

    /**
     * 创建人
     */
    private String creater;

    /**
     * 导入数据明细
     */
    private String detail;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 排序号
     */
    private int sort;

    /**
     * 房间基准信息
     */
    @TableField(exist = false)
    private BasePosition roomPosition;

    /**
     * 柜体基准信息
     */
    @TableField(exist = false)
    private BasePosition bodyPosition;
}
