using SlnMesnac.Model.enums;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Text;

#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
* 版权所有 (c) 2024 WenJY 保留所有权利。
* CLR版本：4.0.30319.42000
* 机器名称：LAPTOP-E0N2L34V
* 命名空间：SlnMesnac.Model.dto
* 唯一标识：00fb8efd-8450-451e-9a09-d100c0af44e6
*
* 创建者：WenJY
* 电子邮箱：wenjy@mesnac.com
* 创建时间：2024-04-08 10:35:08
* 版本：V1.0.0
* 描述：
*
*--------------------------------------------------------------------
* 修改人：
* 时间：
* 修改说明：
*
* 版本：V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
namespace SlnMesnac.Model.dto
{
    /// <summary>
    /// MES生产计划信息Dto
    /// </summary>
    public class MesProductPlanDto
    {

        [SugarColumn(ColumnName = "plan_id")]
        public long PlanId { get; set; }

        /// <summary>
        /// 计划编号 
        ///</summary>
        [SugarColumn(ColumnName = "plan_code")]
        public string PlanCode { get; set; }

        /// <summary>
        /// 工单编号 
        ///</summary>
        [SugarColumn(ColumnName = "order_code")]
        public string OrderCode { get; set; }

        /// <summary>
        /// 销售订单ID,关联mes_sale_order的order_id;一个销售订单可以有多个生产计划，多个生产计划派工的数量不能大于销售订单的数量 
        ///</summary>
        [SugarColumn(ColumnName = "sale_order_id")]
        public long SaleOrderId { get; set; }

        /// <summary>
        /// 销售订单编号 
        ///</summary>
        [SugarColumn(ColumnName = "saleorder_code")]
        public string SaleorderCode { get; set; }

        /// <summary>
        /// 销售订单行号 
        ///</summary>
        [SugarColumn(ColumnName = "saleorder_linenumber")]
        public string SaleorderLinenumber { get; set; }

        /// <summary>
        /// 项目编号 
        ///</summary>
        [SugarColumn(ColumnName = "project_no")]
        public string ProjectNo { get; set; }

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

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

        /// <summary>
        /// 完成数量 
        ///</summary>
        [SugarColumn(ColumnName = "complete_amount", DecimalDigits = 2)]
        public decimal CompleteAmount { get; set; }

        /// <summary>
        /// 计划开始时间 
        ///</summary>
        [SugarColumn(ColumnName = "plan_begin_time")]
        public DateTime? PlanBeginTime { get; set; }

        /// <summary>
        /// 计划结束时间 
        ///</summary>
        [SugarColumn(ColumnName = "plan_end_time")]
        public DateTime? PlanEndTime { get; set; }

        /// <summary>
        /// 开始时间 
        ///</summary>
        [SugarColumn(ColumnName = "real_begin_time")]
        public DateTime RealBeginTime { get; set; }

        /// <summary>
        /// 完成时间 
        ///</summary>
        [SugarColumn(ColumnName = "real_end_time")]
        public DateTime? RealEndTime { get; set; }

        /// <summary>
        /// 计划状态：0-未派工；1-已派工；2-已开始；3-已完成 
        ///</summary>
        [SugarColumn(ColumnName = "plan_status")]
        public PlanStatusEnum PlanStatus { get; set; }

        /// <summary>
        /// 物料编码;对应ERP的FNumber 
        ///</summary>
        [SugarColumn(ColumnName = "material_code")]
        public string MaterialCode { get; set; }

        /// <summary>
        /// 物料名称;对应ERP的FName 
        ///</summary>
        [SugarColumn(ColumnName = "material_name")]
        public string MaterialName { get; set; }

        /// <summary>
        /// 物料大类(1,原材料 2,半成品 3,成品) 
        ///</summary>
        [SugarColumn(ColumnName = "material_categories")]
        public string MaterialCategories { get; set; }

        /// <summary>
        /// 物料小类;暂时不使用，预留 
        ///</summary>
        [SugarColumn(ColumnName = "material_subclass")]
        public string MaterialSubclass { get; set; }

        /// <summary>
        /// 物料类型，关联mes_base_material_type的material_type_id 
        ///</summary>
        [SugarColumn(ColumnName = "material_type_id")]
        public int? MaterialTypeId { get; set; }

        /// <summary>
        /// 批次标识，(0否，1是) 
        ///</summary>
        [SugarColumn(ColumnName = "batch_flag")]
        public string BatchFlag { get; set; }

        /// <summary>
        /// 计量单位ID;对应FBaseUnitId 
        ///</summary>
        [SugarColumn(ColumnName = "material_unit_id")]
        public long? MaterialUnitId { get; set; }

        /// <summary>
        /// 计量单位
        ///</summary>
        [SugarColumn(ColumnName = "material_unit")]
        public string MaterialUnit { get; set; }
    }
}
