using SqlSugar;
using System;
using System.Collections.Generic;
using System.Security.Principal;
using System.Text;

namespace SlnMesnac.Model.domain
{
    [SugarTable("wms_raw_outstock_detail"), TenantAttribute("mes")]
    public class WmsRawOutstockDetail
    {
        /// <summary>
        /// 原材料出库记录明细ID
        /// </summary>
        [SugarColumn(ColumnName = "raw_outstock_detail_id", IsPrimaryKey = true, IsIdentity = true)]
        public long RawOutstockDetailId { get; set; }

        /// <summary>
        /// 原材料出库ID
        /// </summary>
        [SugarColumn(ColumnName = "raw_outstock_id")]
        public long RawOutstockId { get; set; }

        /// <summary>
        /// 原材料出库任务编号
        /// </summary>
        [SugarColumn(ColumnName = "task_code")]
        public string TaskCode { get; set; }

        /// <summary>
        /// 仓库ID，关联仓库主键
        /// </summary>
        [SugarColumn(ColumnName = "warehouse_id")]
        public long? WarehouseId { get; set; }

        /// <summary>
        /// 库位编码
        /// </summary>
        [SugarColumn(ColumnName = "location_code")]
        public string LocationCode { get; set; }

        /// <summary>
        /// 物料条码;最终出库时保存
        /// </summary>
        [SugarColumn(ColumnName = "material_barcode")]
        public string MaterialBarcode { get; set; }

        /// <summary>
        /// 物料ID
        /// </summary>
        [SugarColumn(ColumnName = "material_id")]
        public long MaterialId { get; set; }

        /// <summary>
        /// 批次;扫描条码时，从打印条码记录表中获取
        /// </summary>
        [SugarColumn(ColumnName = "instock_batch")]
        public string InstockBatch { get; set; }

        /// <summary>
        /// 生产日期;扫描条码时，从打印条码记录表中获取
        /// </summary>
        [SugarColumn(ColumnName = "material_production_date")]
        public DateTime? MaterialProductionDate { get; set; }

        /// <summary>
        /// 计划数量
        /// </summary>
        [SugarColumn(ColumnName = "plan_amount")]
        public decimal PlanAmount { get; set; }

        /// <summary>
        /// 出库数量
        /// </summary>
        [SugarColumn(ColumnName = "outstock_amount")]
        public decimal? OutstockAmount { get; set; }

        /// <summary>
        /// 执行状态(0待执行,1执行中,2执行完成)
        /// </summary>
        [SugarColumn(ColumnName = "execute_status")]
        public string ExecuteStatus { get; set; }

        /// <summary>
        /// 同步ERP状态(0:失败,1成功);此字段不用
        /// </summary>
        [SugarColumn(ColumnName = "erp_status")]
        public string ErpStatus { get; set; }

        /// <summary>
        /// 同步给ERP的数量;此字段不用
        /// </summary>
        [SugarColumn(ColumnName = "erp_amount")]
        public decimal? ErpAmount { get; set; }

        /// <summary>
        /// 出库人
        /// </summary>
        [SugarColumn(ColumnName = "outstock_person")]
        public string OutstockPerson { get; set; }

        /// <summary>
        /// 出库时间
        /// </summary>
        [SugarColumn(ColumnName = "outstock_time")]
        public DateTime? OutstockTime { get; set; }

        /// <summary>
        /// 出库方式（1:人工出库 2:AGV出库 ）
        /// </summary>
        [SugarColumn(ColumnName = "outstock_way")]
        public string OutstockWay { get; set; }

        /// <summary>
        /// 使用机台名称;出库扫描条码时，从打印条码记录表中获取
        /// </summary>
        [SugarColumn(ColumnName = "machine_name")]
        public string MachineName { get; set; }

        /// <summary>
        /// 质检状态(0:待质检,1:合格,2:NG)
        /// </summary>
        [SugarColumn(ColumnName = "quality_status")]
        public string QualityStatus { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        [SugarColumn(ColumnName = "create_by")]
        public string CreateBy { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        [SugarColumn(ColumnName = "create_date")]
        public DateTime? CreateDate { get; set; }

        /// <summary>
        /// 最后更新人
        /// </summary>
        [SugarColumn(ColumnName = "update_by")]
        public string UpdateBy { get; set; }

        /// <summary>
        /// 最后更新时间
        /// </summary>
        [SugarColumn(ColumnName = "update_date")]
        public DateTime? UpdateDate { get; set; }

        /// <summary>
        /// 每托数量
        /// </summary>
        [SugarColumn(ColumnName = "stack_amount")]
        public decimal? StackAmount { get; set; }
    }
}
