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.domain
* 唯一标识：15806f20-59dd-494f-90ed-add2b6f0a0a1
*
* 创建者：WenJY
* 电子邮箱：wenjy@mesnac.com
* 创建时间：2024-04-07 16:55:41
* 版本：V1.0.0
* 描述：
*
*--------------------------------------------------------------------
* 修改人：
* 时间：
* 修改说明：
*
* 版本：V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
namespace SlnMesnac.Model.domain
{
    /// <summary>
    /// MES生产计划
    /// </summary>
    [SugarTable("mes_product_plan"), TenantAttribute("mes")]
    public class MesProductPlan
    {
        /// <summary>
        /// 主键标识 
        ///</summary>
        [SugarColumn(ColumnName = "plan_id", IsPrimaryKey = true, IsIdentity = true)]
        public long PlanId { get; set; }
        /// <summary>
        /// 生产工单ID 
        ///</summary>
        [SugarColumn(ColumnName = "product_order_id")]
        public long ProductOrderId { get; set; }
        /// <summary>
        /// 计划编号 
        ///</summary>
        [SugarColumn(ColumnName = "plan_code")]
        public string PlanCode { get; set; }
        /// <summary>
        /// 派工单号;主要为顺序生产时，获取上一工序的派工单是否完成，每次派工生成的派工单号相同，不同次派工的派工单号不能相同 
        ///</summary>
        [SugarColumn(ColumnName = "dispatch_code")]
        public string DispatchCode { get; set; }
        /// <summary>
        /// 物料ID 
        ///</summary>
        [SugarColumn(ColumnName = "material_id")]
        public long MaterialId { get; set; }
        /// <summary>
        /// 物料bomID，关联mes_material_bom的material_bom_id 
        ///</summary>
        [SugarColumn(ColumnName = "material_bom_id")]
        public long MaterialBomId { get; set; }
        /// <summary>
        /// 工序ID 
        ///</summary>
        [SugarColumn(ColumnName = "process_id")]
        public int? ProcessId { get; set; }
        /// <summary>
        /// 顺序;派工类型是工艺路线的需要有顺序 
        ///</summary>
        [SugarColumn(ColumnName = "process_order")]
        public int? ProcessOrder { get; set; }
        /// <summary>
        /// 上一工序ID 
        ///</summary>
        [SugarColumn(ColumnName = "last_process_id")]
        public int? LastProcessId { get; set; }
        /// <summary>
        /// 工位ID，关联工位信息主键;根据选择的工序或者工艺路线拆分到工位上，会拆分1到多条生产计划 
        ///</summary>
        [SugarColumn(ColumnName = "station_id")]
        public int StationId { get; set; }
        /// <summary>
        /// 用户ID，关联sys_user主键;预留，暂时不用 
        ///</summary>
        [SugarColumn(ColumnName = "user_id")]
        public long? UserId { get; set; }
        /// <summary>
        /// 单位生产时间(单位：s) 
        ///</summary>
        [SugarColumn(ColumnName = "production_time")]
        public int? ProductionTime { 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>
        /// 附件信息，关联附件信息主键;多个用,隔开；页面可选择附件信息，也可直接上传 
        ///</summary>
        [SugarColumn(ColumnName = "attach_id")]
        public string AttachId { get; set; }
        /// <summary>
        /// 计划状态：0-未派工；1-已派工；2-已开始；3-已完成 
        ///</summary>
        [SugarColumn(ColumnName = "plan_status")]
        public PlanStatusEnum PlanStatus { get; set; }
        /// <summary>
        /// 是否标识：1-是；0-否 
        ///</summary>
        [SugarColumn(ColumnName = "is_flag")]
        public string IsFlag { get; set; }
        /// <summary>
        /// 备注 
        ///</summary>
        [SugarColumn(ColumnName = "remark")]
        public string Remark { get; set; }
        /// <summary>
        /// 创建人 
        ///</summary>
        [SugarColumn(ColumnName = "create_by")]
        public string CreateBy { get; set; }
        /// <summary>
        /// 创建时间 
        ///</summary>
        [SugarColumn(ColumnName = "create_time")]
        public DateTime? CreateTime { get; set; }
        /// <summary>
        /// 更新人 
        ///</summary>
        [SugarColumn(ColumnName = "update_by")]
        public string UpdateBy { get; set; }
        /// <summary>
        /// 更新时间 
        ///</summary>
        [SugarColumn(ColumnName = "update_time")]
        public DateTime? UpdateTime { get; set; }
        /// <summary>
        /// sop附件ID，关联附件信息主键 
        ///</summary>
        [SugarColumn(ColumnName = "sop_id")]
        public string SopId { get; set; }
        /// <summary>
        /// 最后工序标识(1是,0否) 
        ///</summary>
        [SugarColumn(ColumnName = "final_process_flag")]
        public string FinalProcessFlag { get; set; }
    }
}
