服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2025-03-15 ee6076f44f8d2edafe8066a47cfde8863469b8ee
Tiger.Model.Net/Entitys/MES/MES_WIP_DATA.cs
@@ -29,15 +29,20 @@
        [DisplayName("过站条码")]
        public string SN { get; set; }
        /// <summary>
        /// 状态(0Init初始化|1Input已投入|2OK良品过站|3NG不良过站|4Repair维修中|5Finished已完工|6Scrap已报废|7InStorage已入库|8Reject已拒收|9Shipped已出货)
        /// 状态(0Init初始化|10Input已投入|20OK良品过站|30NG不良过站|40Repair维修中|50Output已产出|51WaitStorage待入库|52WaitShipment待出货|60InStorage已入库|61Reject已拒收|80Shipped已出货|90Scrap已报废|91Offline异常下线)
        /// </summary>
        [DisplayName("状态(0Init初始化|1Input已投入|2OK良品过站|3NG不良过站|4Repair维修中|5Finished已完工|6Scrap已报废|7InStorage已入库|8Reject已拒收|9Shipped已出货)")]
        [DisplayName("状态(0Init初始化|10Input已投入|20OK良品过站|30NG不良过站|40Repair维修中|50Output已产出|51WaitStorage待入库|52WaitShipment待出货|60InStorage已入库|61Reject已拒收|80Shipped已出货|90Scrap已报废|91Offline异常下线))")]
        public int STATUS { get; set; }
        /// <summary>
        /// 物料编码
        /// </summary>
        [DisplayName("物料编码")]
        public string ITEM_CODE { get; set; }
        /// <summary>
        /// 数量
        /// </summary>
        [DisplayName("数量")]
        public double QTY { get; set; } = 1;
        /// <summary>
        /// 工单号
        /// </summary>
@@ -49,25 +54,20 @@
        [DisplayName("工单批次号")]
        public string BATCH_NO { get; set; }
        /// <summary>
        /// 加工段
        /// 工艺路线编码
        /// </summary>
        [DisplayName("加工段")]
        public string SEGMENT { get; set; }
        /// <summary>
        /// 工艺路线ID
        /// </summary>
        [DisplayName("工艺路线ID")]
        public string ROT_ID { get; set; }
        [DisplayName("工艺路线编码")]
        public string ROT_CODE { get; set; }
        /// <summary>
        /// 工艺路线节点ID
        /// </summary>
        [DisplayName("工艺路线节点ID")]
        public string NODE_ID { get; set; }
        /// <summary>
        /// 工序编码
        /// 工艺路线节点名称
        /// </summary>
        [DisplayName("工序编码")]
        public string OPER_CODE { get; set; }
        [DisplayName("工艺路线节点名称")]
        public string NODE_NAME { get; set; }
        /// <summary>
        /// 工厂编码
        /// </summary>
@@ -89,6 +89,16 @@
        [DisplayName("岗位编码")]
        public string POST_CODE { get; set; }
        /// <summary>
        /// 工序编码
        /// </summary>
        [DisplayName("工序编码")]
        public string OPER_CODE { get; set; }
        /// <summary>
        /// 加工段
        /// </summary>
        [DisplayName("加工段")]
        public string SEGMENT { get; set; }
        /// <summary>
        /// 锁定标记
        /// </summary>
        [DisplayName("锁定标记")]
@@ -99,20 +109,50 @@
        [DisplayName("返工标记")]
        public string REWORK_FLAG { get; set; }
        /// <summary>
        /// 解绑标记(因异常下线导致当前记录从工单生产数据中移除,不参与工艺流程计算和数据统计)
        /// </summary>
        [DisplayName("解绑标记(因异常下线导致当前记录从工单生产数据中移除,不参与工艺流程计算和数据统计)")]
        public string UNBIND_FLAG { get; set; }
        /// <summary>
        /// 是否完工
        /// </summary>
        [DisplayName("是否完工")]
        public string FINISHED_FLAG { get; set; }
        /// <summary>
        /// 是否不良
        /// </summary>
        [DisplayName("是否不良")]
        public string DFT_FLAG { get; set; }
        /// <summary>
        /// 不良计数
        /// </summary>
        [DisplayName("不良计数")]
        public int DFT_COUNT { get; set; }
        /// <summary>
        /// 不良代码编码
        /// </summary>
        [DisplayName("不良代码编码")]
        public string DFT_CODE { get; set; }
        /// <summary>
        /// 维修回流工序名称(为空则不指定回流工序)
        /// </summary>
        [DisplayName("维修回流工序名称(为空则不指定回流工序)")]
        public string REFLOW_NODE { get; set; }
        /// <summary>
        /// 厂内流转条码
        /// </summary>
        [DisplayName("厂内流转条码")]
        public string FLOW_SN { get; set; }
        /// <summary>
        /// 托盘/载具条码
        /// </summary>
        [DisplayName("托盘/载具条码")]
        public string TRAY_SN { get; set; }
        /// <summary>
        /// 容器/内包装条码
        /// 内包装条码
        /// </summary>
        [DisplayName("容器/内包装条码")]
        public string CONTAINER_SN { get; set; }
        [DisplayName("内包装条码")]
        public string INNER_SN { get; set; }
        /// <summary>
        /// 外箱条码
        /// </summary>
@@ -148,6 +188,21 @@
        /// </summary>
        [DisplayName("当前操作时间")]
        public DateTime OPERATION_TIME { get; set; } = DateTime.MinValue;
        /// <summary>
      /// 操作完成时间
      /// </summary>
      [DisplayName("操作完成时间")]
        public DateTime OPERATION_END { get; set; } = DateTime.MinValue;
        /// <summary>
        /// 不良数量
        /// </summary>
        [DisplayName("不良数量")]
        public int DFT_QTY { get; set; } = 0;
        /// <summary>
        /// 报废数量
        /// </summary>
        [DisplayName("报废数量")]
        public int SCRAP_QTY { get; set; } = 0;
        /// <summary>
        /// 班制编码
        /// </summary>
@@ -204,16 +259,30 @@
        #region 外键属性
        /*例子
      //一对一外键导航
      [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_WIP_DATA类里面的外键ID字段
      public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null
      //一对多外键导航
      [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_WIP_DATAId))]//ClassA表中的MES_WIP_DATAId
      public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null
      //多对多外键导航
      [Navigate(typeof(MappingClass), nameof(MappingClass.MES_WIP_DATAId), nameof(MappingClass.ClassAId))]//注意顺序
      public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null
      */
        //一对一外键导航
        [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_WIP_DATA类里面的外键ID字段
        public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null
        //一对多外键导航
        [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_WIP_DATAId))]//ClassA表中的MES_WIP_DATAId
        public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null
        //多对多外键导航
        [Navigate(typeof(MappingClass), nameof(MappingClass.MES_WIP_DATAId), nameof(MappingClass.ClassAId))]//注意顺序
        public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null
        */
        //[Navigate(NavigateType.OneToOne, nameof(ITEM_CODE), nameof(BAS_ITEM.ITEM_CODE), "GHOST_ROW = 0")]//一对一 ClassAId是MES_WIP_DATA类里面的外键ID字段
        //public BAS_ITEM ItemInfo { get; set; } //注意禁止手动赋值,只能是null
        [Navigate(NavigateType.OneToMany, nameof(BAS_ITEM.ITEM_CODE), nameof(ITEM_CODE), "GHOST_ROW = 0")]//一对一 ClassAId是MES_WIP_DATA类里面的外键ID字段
        public List<BAS_ITEM> _ItemInfos { get; set; } //注意禁止手动赋值,只能是null
        [SugarColumn(IsIgnore = true)]
        public BAS_ITEM ItemInfo => _ItemInfos?.FirstOrDefault(q => q.AUTH_ORG == AUTH_ORG);
        [Navigate(NavigateType.OneToMany, nameof(MES_WIP_HIS.WIP_ID), nameof(ID), "GHOST_ROW = 0")]//ClassA表中的MES_WIP_DATAId
        public List<MES_WIP_HIS> _History { get; set; }//注意禁止手动赋值,只能是null
        [SugarColumn(IsIgnore = true)]
        public List<MES_WIP_HIS> History => _History?.Any(q => q.UNBIND_FLAG == "Y") == true ? (_History = _History?.Where(q => q.UNBIND_FLAG != "Y").ToList()) : (_History ?? new List<MES_WIP_HIS>());
        [Navigate(NavigateType.OneToMany, nameof(MES_WIP_DFT.WIP_ID), nameof(ID), "GHOST_ROW = 0")]//ClassA表中的MES_WIP_DATAId
        public List<MES_WIP_DFT> _Defects { get; set; }//注意禁止手动赋值,只能是null
        [SugarColumn(IsIgnore = true)]
        public List<MES_WIP_DFT> Defects => _Defects ?? new List<MES_WIP_DFT>();
        #endregion
        #region 枚举变量
@@ -228,30 +297,36 @@
      */
        /// <summary>
        /// 枚举:状态(0Init初始化|1Input已投入|2OK良品过站|3NG不良过站|4Repair维修中|5Finished已完工|6Scrap已报废|7InStorage已入库|8Reject已拒收|9Shipped已出货)
        /// 枚举:状态(0Init初始化|10Input已投入|20OK良品过站|30NG不良过站|40Repair维修中|50Output已产出|51WaitStorage待入库|52WaitShipment待出货|60InStorage已入库|61Reject已拒收|80Shipped已出货|90Scrap已报废|91Offline异常下线)
        /// </summary>
        public enum STATUSs
        {
            [Description("初始化")]
            Init = 0,
            [Description("已投入")]
            Input = 1,
            Input = 10,
            [Description("良品过站")]
            OK = 2,
            OK = 20,
            [Description("不良过站")]
            NG = 3,
            NG = 30,
            [Description("维修中")]
            Repair = 4,
            [Description("已完工")]
            Finished = 5,
            [Description("已报废")]
            Scrap = 6,
            Repair = 40,
            [Description("已产出")]
            Output = 50,
            [Description("待入库")]
            WaitStorage = 51,
            [Description("待出货")]
            WaitShipment = 52,
            [Description("已入库")]
            InStorage = 7,
            InStorage = 60,
            [Description("已拒收")]
            Reject = 8,
            Reject = 61,
            [Description("已出货")]
            Shipped = 9,
            Shipped = 80,
            [Description("已报废")]
            Scrap = 90,
            [Description("异常下线")]
            Offline = 91,
        }
        /// <summary>