服务端的TigerApi 框架,基于.NET6 2024 版本
Cloud Zhang
2024-05-16 4361513fb831fdd416356e576682358bd72a121c
合并
已修改14个文件
已添加12个文件
1274 ■■■■ 文件已修改
Tiger.Api/Controllers/MES/SMTController.Tool.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Api/appsettings.json 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business/MES/SMT/Biz.SmtTool.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business/MES/Transaction/LoadingMaterial.cs 262 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business/MES/Transaction/MESTransactionBase.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business/WMS/MengQi/Biz.Mq.SNData.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.IBusiness/MES/Transaction/ILoadingMaterial.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.IBusiness/MES/Transaction/IMESTransaction.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/BAS/BAS_DEFECT.cs 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/BAS/BAS_DEFECT_GRP.cs 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/BAS/BAS_DFT_DUTY.cs 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/BAS/BAS_DFT_LOC.cs 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/BAS/BAS_PROD_BOM.cs 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/BAS/BAS_REASON.cs 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/BAS/BAS_REASON_GRP.cs 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/BAS/BAS_SOLUTION.cs 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/MES/MES_ROUTE_NODE_DFTG.cs 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/MES/SMT_FEEDER.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/MES/SMT_LOADING.cs 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/MES/SMT_LOAD_HIS.cs 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/MES/SMT_PROD_TABLE.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/MES/SMT_WO_TABLE.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/WMS/Api/BaseInput.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/WMS/MengQi/SNData.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/WMS/MengQi/SNData_His.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Tiger.Model.Net.csproj 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Api/Controllers/MES/SMTController.Tool.cs
@@ -16,7 +16,7 @@
        /// <returns></returns>
        [HttpPost]
        [Route("api/[controller]/[action]")]
        public async Task<IActionResult> GetNotLoadingMaterial([FromBody] ApiAction<smtWoTableParams> action)
        public async Task<IActionResult> GetNotLoadingMaterial([FromBody] ApiAction<SmtLoadingInput> action)
        {
            ApiAction response = new();
            try
Tiger.Api/appsettings.json
@@ -39,7 +39,9 @@
    "Vue31": "https://localhost:3100",
    "Vue32": "http://localhost:10591",
    "Vue4": "http://127.0.0.1:5173",
    "Vue5": "http://localhost:5173"
    "Vue5": "http://localhost:5173",
    "Vue3108": "http://localhost:3108",
    "Vue3118": "http://localhost:3118"
  },
  "MQTT": {
    "Enable": true,
Tiger.Business/MES/SMT/Biz.SmtTool.cs
@@ -30,7 +30,7 @@
            /// </summary>
            /// <param name="paras"></param>
            /// <returns></returns>
            public async Task<ApiAction<List<SMT_WO_TABLE>>> GetNotLoadingMaterial(smtWoTableParams paras)
            public async Task<ApiAction<List<SMT_WO_TABLE>>> GetNotLoadingMaterial(SmtLoadingInput paras)
            {
                var res = new ApiAction<List<SMT_WO_TABLE>>();
                List<SMT_WO_TABLE> sList = new List<SMT_WO_TABLE>();
Tiger.Business/MES/Transaction/LoadingMaterial.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,262 @@
using Rhea.Common;
using Tiger.IBusiness;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Tiger.Model;
using Tiger.Model.Sharetronic.Shelf;
using System.ComponentModel;
namespace Tiger.Business.MES.Transaction
{
    /// <summary>
    /// SMT上料调度事务
    /// </summary>
    public class LoadingMaterial : MESTransactionBase, ILoadingMaterial
    {
        public ILoadingMaterial Init(string id, string userCode, string apiHost, string orgCode)
        {
            TransID = id;
            UserCode = userCode;
            ApiHost = apiHost;
            OrgCode = orgCode;
            Logger.Console.Info($"Start {this.GetType().Name} Transaction[ID: {TransID}]");
            return this;
        }
        #region Propertys & Variables
        public string UserCode { get; set; }
        public long UserId { get; set; }
        public string OrgCode { get; set; }
        public string CurrSmtCode { get; set; }
        public string CurrSlotNo { get; set; }
        /// <summary>
        /// æ­¥éª¤ç±»åž‹
        /// </summary>
        public enum Step_Types
        {
            /// <summary>
            /// æ‰«ææœºå™¨ç¼–码
            /// </summary>
            [Description("机器编码")]
            SmtCode,
            /// <summary>
            /// æ‰«ææ§½ä½
            /// </summary>
            [Description("槽位")]
            SlotNo,
            /// <summary>
            /// æ‰«æé£žè¾¾
            /// </summary>
            [Description("Feeder")]
            Feeder,
            /// <summary>
            /// æ‰«ææ–™ç›˜SN
            /// </summary>
            [Description("料盘码")]
            SN,
        }
        #endregion Propertys & Variables
        #region Functions
        /// <summary>
        /// æ‰«ææ¡ç ä¸Šæ–™
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task<ApiAction> ScanItem(SmtLoadingInput input)
        {
            var action = new ApiAction();
            try
            {
                if (input.Code.IsNullOrEmpty())
                {
                    action.IsSuccessed = false;
                    action.LocaleMsg = Biz.L($"{EnumHelper.GetEnum<Step_Types>(input.Step).GetDesc()}不能为空");
                    return action;
                }
                //01根据上料步骤执行相应方法
                switch (EnumHelper.GetEnum<Step_Types>(input.Step))
                {
                    case Step_Types.SmtCode:
                        action = ExecuteSmtCode(input);
                        break;
                    case Step_Types.SlotNo:
                        action = ExecuteSlotNo(input);
                        break;
                    case Step_Types.Feeder:
                        action = ExecuteFeeder(input);
                        break;
                    case Step_Types.SN:
                        action = ExecuteSN(input);
                        break;
                }
                //02保存上料数据
                //03查看未上料列表
                Biz.SmtTool smtTool = new();
                var actionSmtTool = await smtTool.GetNotLoadingMaterial(input);
                if (actionSmtTool.IsSuccessed)
                {
                    //带入机器编码查询,如果没有未上料的项,说明当前机器所有槽位均已完成上料!
                    if (actionSmtTool.Data.Count == 0)
                    {
                        var _input = input.Clone();
                        _input.machineCode = "";
                        action.LocaleMsg = Biz.L($"当前机器所有槽位均已完成上料!");
                        var _actionSmtTool = await smtTool.GetNotLoadingMaterial(_input);
                        if (_actionSmtTool.IsSuccessed)
                        {
                            //不带入机器编码查询,如果没有未上料的项,说明当前线别所有机器均已完成上料!
                            if (_actionSmtTool.Data.Count == 0)
                            {
                                action.LocaleMsg = Biz.L($"当前线别所有机器均已完成上料");
                            }
                        }
                        else
                        {
                            action.IsSuccessed = false;
                            action.LocaleMsg = Biz.L($"获取未上料列表失败!");
                        }
                    }
                }
                else
                {
                    action.IsSuccessed = false;
                    action.LocaleMsg = Biz.L($"获取未上料列表失败!");
                }
                //action.Data = new ProdReqOutput()
                //{
                //    SN = CurInv.SN,
                //    ItemCode = CurInv.ItemInfo.ITEM_CODE,
                //    Qty = CurInv.CurPkg.QTY,
                //    CutQty = CurInv.CurPkg.QTY - cutQty,
                //    isCutting = isCutting,
                //    isExceed = isExceed,
                //    ReqNo = req.BILLCODE,
                //    regionCode = CurInv.Region.REGION_CODE,
                //    locationCode = CurInv.Location?.LOCATION_CODE,
                //};
            }
            catch (Exception ex)
            {
                action.CatchExceptionWithLog(ex, $"扫描物料[{input.Code}]复核异常");
            }
            return action;
        }
        private ApiAction ExecuteSmtCode(SmtLoadingInput input) {
            var action = new ApiAction();
            try
            {
                if (Biz.Db.Queryable<SMT_WO_TABLE>().Where(x => x.WORK_ORDER == input.moCode && x.LINE_CODE == input.lineCode && x.PROD_CODE == input.prodCode && x.SMT_CODE == input.Code).Any())
                {
                    CurrSmtCode = input.Code;
                    action.IsSuccessed = true;
                    action.LocaleMsg = Biz.L($"机器编码验证通过!");
                }
                else
                {
                    action.IsSuccessed = false;
                    action.LocaleMsg = Biz.L($"料站表中不存在此机器编码,请确认料站表是否正确上传!");
                }
            }
            catch (Exception ex)
            {
                action.CatchExceptionWithLog(ex, $"扫描机器编码异常");
            }
            return action;
        }
        private ApiAction ExecuteSlotNo(SmtLoadingInput input)
        {
            var action = new ApiAction();
            try
            {
                if (Biz.Db.Queryable<SMT_WO_TABLE>().Where(x => x.WORK_ORDER == input.moCode && x.LINE_CODE == input.lineCode && x.PROD_CODE == input.prodCode && x.SMT_CODE == CurrSmtCode && x.SLOT_NO == input.Code).Any())
                {
                    CurrSlotNo = input.Code;
                    action.IsSuccessed = true;
                    action.LocaleMsg = Biz.L($"槽位验证通过!");
                }
                else
                {
                    action.IsSuccessed = false;
                    action.LocaleMsg = Biz.L($"此槽位[{input.Code}]不存在或料站表未上传!");
                }
            }
            catch (Exception ex)
            {
                action.CatchExceptionWithLog(ex, $"扫描槽位异常");
            }
            return action;
        }
        private ApiAction ExecuteFeeder(SmtLoadingInput input)
        {
            var action = new ApiAction();
            try
            {
            }
            catch (Exception ex)
            {
                action.CatchExceptionWithLog(ex, $"扫描Feeder异常");
            }
            return action;
        }
        private ApiAction ExecuteSN(SmtLoadingInput input)
        {
            var action = new ApiAction();
            try
            {
            }
            catch (Exception ex)
            {
                action.CatchExceptionWithLog(ex, $"扫描料盘码异常");
            }
            return action;
        }
        /// <summary>
        /// æ·»åŠ ä¸€ä¸ªApiAction的历史记录
        /// </summary>
        /// <param name="action"></param>
        public override void AddHistory<T>(Microsoft.AspNetCore.Http.HttpRequest request, ApiAction<T> action)
        {
            var his = action.History();
            //his.TraceDic.Add("CurReqType", CurReqType);
            //his.TraceDic.Add("CurInv", CurInv);
            //his.TraceDic.Add("req", req);
            //his.TraceDic.Add("toMes", toMes);
            //his.TraceDic.Add("CurPoolList", CurPoolList);
            //his.TraceDic.Add("isComplete", his_isComplete);
            //ActionHistoryList.Add($"{request.HttpContext.TraceIdentifier} at {action.Timestamp:yyyy/MM/dd HH:mm:ss.fff}: {request.Path}", his);
            LastActionTime = DateTime.Now;
        }
        #endregion Functions
        public override bool Close(bool needSaveHistoryLog = false)
        {
            //needSaveHistoryLog = true;
            //保存操作日志
            this.IsFinished = true;
            return IsFinished ? base.Close(needSaveHistoryLog) : IsFinished;
        }
    }//endClass
}
Tiger.Business/MES/Transaction/MESTransactionBase.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tiger.Business.WMS.Transaction;
using Tiger.IBusiness;
namespace Tiger.Business.MES.Transaction
{
    /// <summary>
    /// MES事务基类
    /// </summary>
    public abstract class MESTransactionBase : TransactionBase, IMESTransaction
    {
        /// <summary>
        /// MES事务基类
        /// </summary>
        public MESTransactionBase()
        {
        }
        /// <summary>
        /// å…³é—­äº‹åŠ¡
        /// </summary>
        /// <param name="needSaveHistoryLog"></param>
        /// <returns></returns>
        public override bool Close(bool needSaveHistoryLog = false)
        {
            return base.Close(needSaveHistoryLog);
        }
        public override void Dispose()
        {
            try
            {
                Logger.Console.Info($"Dispose Transaction(ID: {TransID}]");
            }
            catch (System.Exception ex)
            {
                Logger.Console.Fatal(ex, $"Dispose Transaction Exception(ID: {TransID}]");
            }
            base.Dispose();
        }
    }
}
Tiger.Business/WMS/MengQi/Biz.Mq.SNData.cs
@@ -124,6 +124,7 @@
                        .WhereIF(!string.IsNullOrEmpty(strTime[2]), x => x.ModelCode.Equals(strTime[2]))
                        .WhereIF(!string.IsNullOrEmpty(strTime[3]), x => x.CustomerCode.Equals(strTime[3]))
                        .WhereIF(!string.IsNullOrEmpty(strTime[4]), x => x.DeliveryNo.Equals(strTime[4]))
                        .WhereIF(!string.IsNullOrEmpty(strTime[5]), x => x.CustModel.Equals(strTime[5]))
                        .ToPageListAsync(pageList.pageIndex, pageList.pageSize, total);
                    pageList.totals = total;
                }
@@ -157,6 +158,7 @@
                        .WhereIF(!string.IsNullOrEmpty(where.model), x => x.ModelCode == where.model)
                        .WhereIF(!string.IsNullOrEmpty(where.customerCode), x => x.CustomerCode.Equals(where.customerCode))
                        .WhereIF(!string.IsNullOrEmpty(where.deliveryNo), x => x.DeliveryNo.Equals(where.deliveryNo))
                        .WhereIF(!string.IsNullOrEmpty(where.custParam1), x => x.CustModel.Equals(where.custParam1))
                        .ToListAsync();
                }
                catch (Exception ex)
@@ -189,6 +191,7 @@
                        .WhereIF(!string.IsNullOrEmpty(where.model), x => x.ItemCode == where.model)
                        .WhereIF(!string.IsNullOrEmpty(where.customerCode), x => x.CustomerCode.Equals(where.customerCode))
                        .WhereIF(!string.IsNullOrEmpty(where.deliveryNo), x => x.DeliveryNo.Equals(where.deliveryNo))
                        .WhereIF(!string.IsNullOrEmpty(where.custParam1), x => x.CustModel.Equals(where.custParam1))
                        .OrderBy(x=>x.CREATE_TIME).OrderBy(x => x.Scanner).ToListAsync();
                }
                catch (Exception ex)
Tiger.IBusiness/MES/Transaction/ILoadingMaterial.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
using Org.BouncyCastle.Ocsp;
using Rhea.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tiger.Model;
using Tiger.Model.Sharetronic.Shelf;
namespace Tiger.IBusiness
{
    public interface ILoadingMaterial : IMESTransaction
    {
        public ILoadingMaterial Init(string id, string userCode, string apiHost, string orgCode);
        public bool Close(bool needSaveHistoryLog = false);
    }
}
Tiger.IBusiness/MES/Transaction/IMESTransaction.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
using Newtonsoft.Json;
using Rhea.Common;
using System;
namespace Tiger.IBusiness
{
    /// <summary>
    /// MES事务基类
    /// </summary>
    public interface IMESTransaction : ITransaction
    {
    }
}
Tiger.Model.Net/Entitys/BAS/BAS_DEFECT.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,81 @@
using System;
using SqlSugar;
using System.Linq;
using System.ComponentModel;
using System.Collections.Generic;
namespace Tiger.Model
{
    /// <summary>
    /// å®žä½“:不良代码
    /// </summary>
    [Description("Primary:ID")]
    [Serializable]
    [SugarTable("BAS_DEFECT")]
    public class BAS_DEFECT : DbEntityWithAuth
    {
        #region æž„造函数
        /// <summary>
        /// å®žä½“:不良代码
        /// </summary>
        public BAS_DEFECT() {}
        #endregion
        #region å…¬å…±å±žæ€§
        /// <summary>
        /// ä¸è‰¯ä»£ç ç¼–码
        /// </summary>
        public string DFT_CODE { get; set; }
        /// <summary>
        /// ä¸è‰¯ä»£ç åç§°
        /// </summary>
        public string DFT_NAME { get; set; }
        /// <summary>
        /// ä¸è‰¯ä»£ç ç»„编码
        /// </summary>
        public string DFTG_CODE { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        public string REMARK { get; set; }
        #endregion
        #region è™šæ‹Ÿå±žæ€§
        /*例子
        [SugarColumn(IsIgnore = true)]
        public string FieldName { get; set; }
        */
        #endregion
        #region å¤–键属性
        /*例子
        //一对一外键导航
        [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BAS_DEFECT类里面的外键ID字段
        public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null
        //一对多外键导航
        [Navigate(NavigateType.OneToMany, nameof(ClassA.BAS_DEFECTId))]//ClassA表中的BAS_DEFECTId
        public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null
        //多对多外键导航
        [Navigate(typeof(MappingClass), nameof(MappingClass.BAS_DEFECTId), nameof(MappingClass.ClassAId))]//注意顺序
        public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null
        */
        #endregion
        #region æžšä¸¾å˜é‡
        /*例子
        public enum FieldNames
        {
            [Description("枚举描述0")]
            Enum0,
            [Description("枚举描述1")]
            Enum1,
        }
        */
        #endregion
        #region å…¬å…±æ–¹æ³•
        #endregion
    }//endClass
}
Tiger.Model.Net/Entitys/BAS/BAS_DEFECT_GRP.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
using System;
using SqlSugar;
using System.Linq;
using System.ComponentModel;
using System.Collections.Generic;
namespace Tiger.Model
{
    /// <summary>
    /// å®žä½“:不良代码组
    /// </summary>
    [Description("Primary:ID")]
    [Serializable]
    [SugarTable("BAS_DEFECT_GRP")]
    public class BAS_DEFECT_GRP : DbEntityWithAuth
    {
        #region æž„造函数
        /// <summary>
        /// å®žä½“:不良代码组
        /// </summary>
        public BAS_DEFECT_GRP() {}
        #endregion
        #region å…¬å…±å±žæ€§
        /// <summary>
        /// ä¸è‰¯ä»£ç ç»„编码
        /// </summary>
        public string DFTG_CODE { get; set; }
        /// <summary>
        /// ä¸è‰¯ä»£ç ç»„名称
        /// </summary>
        public string DFTG_NAME { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        public string REMARK { get; set; }
        #endregion
        #region è™šæ‹Ÿå±žæ€§
        /*例子
        [SugarColumn(IsIgnore = true)]
        public string FieldName { get; set; }
        */
        #endregion
        #region å¤–键属性
        /*例子
        //一对一外键导航
        [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BAS_DEFECT_GRP类里面的外键ID字段
        public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null
        //一对多外键导航
        [Navigate(NavigateType.OneToMany, nameof(ClassA.BAS_DEFECT_GRPId))]//ClassA表中的BAS_DEFECT_GRPId
        public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null
        //多对多外键导航
        [Navigate(typeof(MappingClass), nameof(MappingClass.BAS_DEFECT_GRPId), nameof(MappingClass.ClassAId))]//注意顺序
        public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null
        */
        #endregion
        #region æžšä¸¾å˜é‡
        /*例子
        public enum FieldNames
        {
            [Description("枚举描述0")]
            Enum0,
            [Description("枚举描述1")]
            Enum1,
        }
        */
        #endregion
        #region å…¬å…±æ–¹æ³•
        #endregion
    }//endClass
}
Tiger.Model.Net/Entitys/BAS/BAS_DFT_DUTY.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
using System;
using SqlSugar;
using System.Linq;
using System.ComponentModel;
using System.Collections.Generic;
namespace Tiger.Model
{
    /// <summary>
    /// å®žä½“:不良责任
    /// </summary>
    [Description("Primary:ID")]
    [Serializable]
    [SugarTable("BAS_DFT_DUTY")]
    public class BAS_DFT_DUTY : DbEntityWithAuth
    {
        #region æž„造函数
        /// <summary>
        /// å®žä½“:不良责任
        /// </summary>
        public BAS_DFT_DUTY() {}
        #endregion
        #region å…¬å…±å±žæ€§
        /// <summary>
        /// ä¸è‰¯è´£ä»»ç¼–码
        /// </summary>
        public string RSN_CODE { get; set; }
        /// <summary>
        /// ä¸è‰¯è´£ä»»åç§°
        /// </summary>
        public string RSN_NAME { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        public string REMARK { get; set; }
        #endregion
        #region è™šæ‹Ÿå±žæ€§
        /*例子
        [SugarColumn(IsIgnore = true)]
        public string FieldName { get; set; }
        */
        #endregion
        #region å¤–键属性
        /*例子
        //一对一外键导航
        [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BAS_DFT_DUTY类里面的外键ID字段
        public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null
        //一对多外键导航
        [Navigate(NavigateType.OneToMany, nameof(ClassA.BAS_DFT_DUTYId))]//ClassA表中的BAS_DFT_DUTYId
        public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null
        //多对多外键导航
        [Navigate(typeof(MappingClass), nameof(MappingClass.BAS_DFT_DUTYId), nameof(MappingClass.ClassAId))]//注意顺序
        public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null
        */
        #endregion
        #region æžšä¸¾å˜é‡
        /*例子
        public enum FieldNames
        {
            [Description("枚举描述0")]
            Enum0,
            [Description("枚举描述1")]
            Enum1,
        }
        */
        #endregion
        #region å…¬å…±æ–¹æ³•
        #endregion
    }//endClass
}
Tiger.Model.Net/Entitys/BAS/BAS_DFT_LOC.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
using System;
using SqlSugar;
using System.Linq;
using System.ComponentModel;
using System.Collections.Generic;
namespace Tiger.Model
{
    /// <summary>
    /// å®žä½“:缺陷位置
    /// </summary>
    [Description("Primary:ID")]
    [Serializable]
    [SugarTable("BAS_DFT_LOC")]
    public class BAS_DFT_LOC : DbEntityWithAuth
    {
        #region æž„造函数
        /// <summary>
        /// å®žä½“:缺陷位置
        /// </summary>
        public BAS_DFT_LOC() {}
        #endregion
        #region å…¬å…±å±žæ€§
        /// <summary>
        /// ç¼ºé™·ä½ç½®ç¼–码
        /// </summary>
        public string LOC_CODE { get; set; }
        /// <summary>
        /// ç¼ºé™·ä½ç½®åç§°
        /// </summary>
        public string LOC_NAME { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        public string REMARK { get; set; }
        #endregion
        #region è™šæ‹Ÿå±žæ€§
        /*例子
        [SugarColumn(IsIgnore = true)]
        public string FieldName { get; set; }
        */
        #endregion
        #region å¤–键属性
        /*例子
        //一对一外键导航
        [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BAS_DFT_LOC类里面的外键ID字段
        public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null
        //一对多外键导航
        [Navigate(NavigateType.OneToMany, nameof(ClassA.BAS_DFT_LOCId))]//ClassA表中的BAS_DFT_LOCId
        public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null
        //多对多外键导航
        [Navigate(typeof(MappingClass), nameof(MappingClass.BAS_DFT_LOCId), nameof(MappingClass.ClassAId))]//注意顺序
        public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null
        */
        #endregion
        #region æžšä¸¾å˜é‡
        /*例子
        public enum FieldNames
        {
            [Description("枚举描述0")]
            Enum0,
            [Description("枚举描述1")]
            Enum1,
        }
        */
        #endregion
        #region å…¬å…±æ–¹æ³•
        #endregion
    }//endClass
}
Tiger.Model.Net/Entitys/BAS/BAS_PROD_BOM.cs
@@ -7,97 +7,105 @@
namespace Tiger.Model
{
    /// <summary>
    /// å®žä½“:产品BOM
    /// å®žä½“:产品BOM
    /// </summary>
    [Description("Primary:ID")]
    [Serializable]
    [SugarTable("BAS_PROD_BOM")]
    public class BAS_PROD_BOM : DbEntityWithAuth
    {
        #region æž„造函数
        #region æž„造函数
        /// <summary>
        /// å®žä½“:产品BOM
        /// å®žä½“:产品BOM
        /// </summary>
        public BAS_PROD_BOM() {}
        #endregion
        #region å…¬å…±å±žæ€§
        #region å…¬å…±å±žæ€§
        /// <summary>
        /// äº§å“ç¼–码
        /// äº§å“ç¼–码
        /// </summary>
        public string PROD_CODE { get; set; }
        /// <summary>
        /// ç‰©æ–™ç¼–码
        /// ç‰©æ–™ç¼–码
        /// </summary>
        public string ITEM_CODE { get; set; }
        /// <summary>
        /// æ›¿ä»£æ–™
        /// æ›¿ä»£æ–™(多个用","分隔)
        /// </summary>
        public string SUB_CODE { get; set; }
        /// <summary>
        /// çˆ¶é˜¶ç‰©æ–™(产品留空)
        /// çˆ¶é˜¶ç‰©æ–™(产品留空)
        /// </summary>
        public string PARENT_ITEM { get; set; }
        public string PARENT_CODE { get; set; }
        /// <summary>
        /// ç”¨é‡
        /// ç”¨é‡
        /// </summary>
        public int QTY { get; set; }
        /// <summary>
        /// å•位
        /// å•位
        /// </summary>
        public string UNIT { get; set; }
        /// <summary>
        /// æŽ’序
        /// æŽ’序
        /// </summary>
        public int SEQ { get; set; }
        /// <summary>
        /// BOM版本
        /// ä½ç½®
        /// </summary>
        public string BOM_VER { get; set; }
        public string LOCATION { get; set; }
        /// <summary>
        /// ç”Ÿæ•ˆæ—¥æœŸ
        /// BOM版本
        /// </summary>
        public DateTime EFFT_DATE { get; set; } = DateTime.MinValue;
        public string VERSION { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// ç”Ÿæ•ˆæ—¥æœŸ
        /// </summary>
        public DateTime EFF_DATE { get; set; } = DateTime.MinValue;
        /// <summary>
        /// å¤±æ•ˆæ—¥æœŸ
        /// </summary>
        public DateTime EXP_DATE { get; set; } = DateTime.MinValue;
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        public string REMARK { get; set; }
        #endregion
        #region è™šæ‹Ÿå±žæ€§
        /*例子
        #region è™šæ‹Ÿå±žæ€§
        /*例子
        [SugarColumn(IsIgnore = true)]
        public string FieldName { get; set; }
        */
        #endregion
        #region å¤–键属性
        /*例子
        //一对一外键导航
        [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BAS_PROD_BOM类里面的外键ID字段
        public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null
        //一对多外键导航
        [Navigate(NavigateType.OneToMany, nameof(ClassA.BAS_PROD_BOMId))]//ClassA表中的BAS_PROD_BOMId
        public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null
        //多对多外键导航
        [Navigate(typeof(MappingClass), nameof(MappingClass.BAS_PROD_BOMId), nameof(MappingClass.ClassAId))]//注意顺序
        public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null
        #region å¤–键属性
        /*例子
        //一对一外键导航
        [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BAS_PROD_BOM类里面的外键ID字段
        public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null
        //一对多外键导航
        [Navigate(NavigateType.OneToMany, nameof(ClassA.BAS_PROD_BOMId))]//ClassA表中的BAS_PROD_BOMId
        public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null
        //多对多外键导航
        [Navigate(typeof(MappingClass), nameof(MappingClass.BAS_PROD_BOMId), nameof(MappingClass.ClassAId))]//注意顺序
        public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null
        */
        #endregion
        #region æžšä¸¾å˜é‡
        /*例子
        #region æžšä¸¾å˜é‡
        /*例子
        public enum FieldNames
        {
            [Description("枚举描述0")]
            [Description("枚举描述0")]
            Enum0,
            [Description("枚举描述1")]
            [Description("枚举描述1")]
            Enum1,
        }
        */
        #endregion
        #region å…¬å…±æ–¹æ³•
        #region å…¬å…±æ–¹æ³•
        #endregion
Tiger.Model.Net/Entitys/BAS/BAS_REASON.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,85 @@
using System;
using SqlSugar;
using System.Linq;
using System.ComponentModel;
using System.Collections.Generic;
namespace Tiger.Model
{
    /// <summary>
    /// å®žä½“:不良原因
    /// </summary>
    [Description("Primary:ID")]
    [Serializable]
    [SugarTable("BAS_REASON")]
    public class BAS_REASON : DbEntityWithAuth
    {
        #region æž„造函数
        /// <summary>
        /// å®žä½“:不良原因
        /// </summary>
        public BAS_REASON() {}
        #endregion
        #region å…¬å…±å±žæ€§
        /// <summary>
        /// ä¸è‰¯åŽŸå› ç¼–ç 
        /// </summary>
        public string RSN_CODE { get; set; }
        /// <summary>
        /// ä¸è‰¯åŽŸå› åç§°
        /// </summary>
        public string RSN_NAME { get; set; }
        /// <summary>
        /// ä¸è‰¯åŽŸå› ç»„ç¼–ç 
        /// </summary>
        public string RSNG_CODE { get; set; }
        /// <summary>
        /// æ˜¯å¦å¿…须更换零件(Y/N)
        /// </summary>
        public string NEED_REPLACE { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        public string REMARK { get; set; }
        #endregion
        #region è™šæ‹Ÿå±žæ€§
        /*例子
        [SugarColumn(IsIgnore = true)]
        public string FieldName { get; set; }
        */
        #endregion
        #region å¤–键属性
        /*例子
        //一对一外键导航
        [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BAS_REASON类里面的外键ID字段
        public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null
        //一对多外键导航
        [Navigate(NavigateType.OneToMany, nameof(ClassA.BAS_REASONId))]//ClassA表中的BAS_REASONId
        public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null
        //多对多外键导航
        [Navigate(typeof(MappingClass), nameof(MappingClass.BAS_REASONId), nameof(MappingClass.ClassAId))]//注意顺序
        public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null
        */
        #endregion
        #region æžšä¸¾å˜é‡
        /*例子
        public enum FieldNames
        {
            [Description("枚举描述0")]
            Enum0,
            [Description("枚举描述1")]
            Enum1,
        }
        */
        #endregion
        #region å…¬å…±æ–¹æ³•
        #endregion
    }//endClass
}
Tiger.Model.Net/Entitys/BAS/BAS_REASON_GRP.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
using System;
using SqlSugar;
using System.Linq;
using System.ComponentModel;
using System.Collections.Generic;
namespace Tiger.Model
{
    /// <summary>
    /// å®žä½“:不良原因组
    /// </summary>
    [Description("Primary:ID")]
    [Serializable]
    [SugarTable("BAS_REASON_GRP")]
    public class BAS_REASON_GRP : DbEntityWithAuth
    {
        #region æž„造函数
        /// <summary>
        /// å®žä½“:不良原因组
        /// </summary>
        public BAS_REASON_GRP() {}
        #endregion
        #region å…¬å…±å±žæ€§
        /// <summary>
        /// ä¸è‰¯åŽŸå› ç»„ç¼–ç 
        /// </summary>
        public string RSNG_CODE { get; set; }
        /// <summary>
        /// ä¸è‰¯åŽŸå› ç»„åç§°
        /// </summary>
        public string RSNG_NAME { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        public string REMARK { get; set; }
        #endregion
        #region è™šæ‹Ÿå±žæ€§
        /*例子
        [SugarColumn(IsIgnore = true)]
        public string FieldName { get; set; }
        */
        #endregion
        #region å¤–键属性
        /*例子
        //一对一外键导航
        [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BAS_REASON_GRP类里面的外键ID字段
        public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null
        //一对多外键导航
        [Navigate(NavigateType.OneToMany, nameof(ClassA.BAS_REASON_GRPId))]//ClassA表中的BAS_REASON_GRPId
        public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null
        //多对多外键导航
        [Navigate(typeof(MappingClass), nameof(MappingClass.BAS_REASON_GRPId), nameof(MappingClass.ClassAId))]//注意顺序
        public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null
        */
        #endregion
        #region æžšä¸¾å˜é‡
        /*例子
        public enum FieldNames
        {
            [Description("枚举描述0")]
            Enum0,
            [Description("枚举描述1")]
            Enum1,
        }
        */
        #endregion
        #region å…¬å…±æ–¹æ³•
        #endregion
    }//endClass
}
Tiger.Model.Net/Entitys/BAS/BAS_SOLUTION.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
using System;
using SqlSugar;
using System.Linq;
using System.ComponentModel;
using System.Collections.Generic;
namespace Tiger.Model
{
    /// <summary>
    /// å®žä½“:不良解决方案
    /// </summary>
    [Description("Primary:ID")]
    [Serializable]
    [SugarTable("BAS_SOLUTION")]
    public class BAS_SOLUTION : DbEntityWithAuth
    {
        #region æž„造函数
        /// <summary>
        /// å®žä½“:不良解决方案
        /// </summary>
        public BAS_SOLUTION() {}
        #endregion
        #region å…¬å…±å±žæ€§
        /// <summary>
        /// ä¸è‰¯è§£å†³æ–¹æ¡ˆç¼–码
        /// </summary>
        public string SOL_CODE { get; set; }
        /// <summary>
        /// ä¸è‰¯è§£å†³æ–¹æ¡ˆåç§°
        /// </summary>
        public string SOL_NAME { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        public string REMARK { get; set; }
        #endregion
        #region è™šæ‹Ÿå±žæ€§
        /*例子
        [SugarColumn(IsIgnore = true)]
        public string FieldName { get; set; }
        */
        #endregion
        #region å¤–键属性
        /*例子
        //一对一外键导航
        [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BAS_SOLUTION类里面的外键ID字段
        public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null
        //一对多外键导航
        [Navigate(NavigateType.OneToMany, nameof(ClassA.BAS_SOLUTIONId))]//ClassA表中的BAS_SOLUTIONId
        public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null
        //多对多外键导航
        [Navigate(typeof(MappingClass), nameof(MappingClass.BAS_SOLUTIONId), nameof(MappingClass.ClassAId))]//注意顺序
        public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null
        */
        #endregion
        #region æžšä¸¾å˜é‡
        /*例子
        public enum FieldNames
        {
            [Description("枚举描述0")]
            Enum0,
            [Description("枚举描述1")]
            Enum1,
        }
        */
        #endregion
        #region å…¬å…±æ–¹æ³•
        #endregion
    }//endClass
}
Tiger.Model.Net/Entitys/MES/MES_ROUTE_NODE_DFTG.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
using System;
using SqlSugar;
using System.Linq;
using System.ComponentModel;
using System.Collections.Generic;
namespace Tiger.Model
{
    /// <summary>
    /// å®žä½“:产品行为与不良代码组关系
    /// </summary>
    [Description("Primary:NODE_ID,DFTG_CODE")]
    [Serializable]
    [SugarTable("MES_ROUTE_NODE_DFTG")]
    public class MES_ROUTE_NODE_DFTG : iDBEntity
    {
        #region æž„造函数
        /// <summary>
        /// å®žä½“:产品行为与不良代码组关系
        /// </summary>
        public MES_ROUTE_NODE_DFTG() {}
        #endregion
        #region å…¬å…±å±žæ€§
        /// <summary>
        /// ä¸»é”® å·¥åºèŠ‚ç‚¹ID
        /// </summary>
        [SugarColumn(IsPrimaryKey = true)]
        public string NODE_ID { get; set; }
        /// <summary>
        /// ä¸»é”® ä¸è‰¯ä»£ç ç»„编码
        /// </summary>
        [SugarColumn(IsPrimaryKey = true)]
        public string DFTG_CODE { get; set; }
        #endregion
        #region è™šæ‹Ÿå±žæ€§
        /*例子
        [SugarColumn(IsIgnore = true)]
        public string FieldName { get; set; }
        */
        #endregion
        #region å¤–键属性
        /*例子
        //一对一外键导航
        [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_ROUTE_NODE_DFTG类里面的外键ID字段
        public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null
        //一对多外键导航
        [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_ROUTE_NODE_DFTGId))]//ClassA表中的MES_ROUTE_NODE_DFTGId
        public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null
        //多对多外键导航
        [Navigate(typeof(MappingClass), nameof(MappingClass.MES_ROUTE_NODE_DFTGId), nameof(MappingClass.ClassAId))]//注意顺序
        public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null
        */
        #endregion
        #region æžšä¸¾å˜é‡
        /*例子
        public enum FieldNames
        {
            [Description("枚举描述0")]
            Enum0,
            [Description("枚举描述1")]
            Enum1,
        }
        */
        #endregion
        #region å…¬å…±æ–¹æ³•
        #endregion
    }//endClass
}
Tiger.Model.Net/Entitys/MES/SMT_FEEDER.cs
@@ -71,7 +71,7 @@
        /// </summary>
        public string SLOT_NO { get; set; }
        /// <summary>
        /// åŠ å·¥é¢
        /// åŠ å·¥é¢(插件面:A/C|1焊锡面:B/S)
        /// </summary>
        public string PCB_SURFACE { get; set; }
        /// <summary>
Tiger.Model.Net/Entitys/MES/SMT_LOADING.cs
@@ -7,101 +7,105 @@
namespace Tiger.Model
{
    /// <summary>
    /// å®žä½“:SMT实时上料信息
    /// å®žä½“:SMT实时上料信息
    /// </summary>
    [Description("Primary:ID")]
    [Serializable]
    [SugarTable("SMT_LOADING")]
    public class SMT_LOADING : DbEntityWithAuth
    {
        #region æž„造函数
        #region æž„造函数
        /// <summary>
        /// å®žä½“:SMT实时上料信息
        /// å®žä½“:SMT实时上料信息
        /// </summary>
        public SMT_LOADING() {}
        #endregion
        #region å…¬å…±å±žæ€§
        #region å…¬å…±å±žæ€§
        /// <summary>
        /// å·¥å•号
        /// ä¸Šæ–™æ¡ç 
        /// </summary>
        public string SN { get; set; }
        /// <summary>
        /// å·¥å•号
        /// </summary>
        public string WORK_ORDER { get; set; }
        /// <summary>
        /// äº§å“ç¼–码
        /// äº§å“ç¼–码
        /// </summary>
        public string PROD_CODE { get; set; }
        /// <summary>
        /// äº§çº¿ç¼–码
        /// äº§çº¿ç¼–码
        /// </summary>
        public string LINE_CODE { get; set; }
        /// <summary>
        /// è´´ç‰‡æœºç¼–码
        /// è´´ç‰‡æœºç¼–码
        /// </summary>
        public string SMT_CODE { get; set; }
        /// <summary>
        /// ç«™ä½å·
        /// ç«™ä½å·
        /// </summary>
        public string SLOT_NO { get; set; }
        /// <summary>
        /// é£žè¾¾ç±»åž‹
        /// é£žè¾¾ç±»åž‹
        /// </summary>
        public string FEEDER_TYPE { get; set; }
        /// <summary>
        /// é£žè¾¾ç¼–码
        /// é£žè¾¾ç¼–码
        /// </summary>
        public string FEEDER_CODE { get; set; }
        /// <summary>
        /// ç‰©æ–™ç¼–码
        /// ç‰©æ–™ç¼–码
        /// </summary>
        public string ITEM_CODE { get; set; }
        /// <summary>
        /// é”¡è†UPN编码
        /// é”¡è†UPN编码
        /// </summary>
        public string SOLDER_UPN { get; set; }
        /// <summary>
        /// åŠ å·¥é¢
        /// åŠ å·¥é¢(插件面:A/C|1焊锡面:B/S)
        /// </summary>
        public string PCB_SURFACE { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// å¤‡æ³¨
        /// </summary>
        public string REMARK { get; set; }
        #endregion
        #region è™šæ‹Ÿå±žæ€§
        /*例子
        #region è™šæ‹Ÿå±žæ€§
        /*例子
        [SugarColumn(IsIgnore = true)]
        public string FieldName { get; set; }
        */
        #endregion
        #region å¤–键属性
        /*例子
        //一对一外键导航
        [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是SMT_LOADING类里面的外键ID字段
        public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null
        //一对多外键导航
        [Navigate(NavigateType.OneToMany, nameof(ClassA.SMT_LOADINGId))]//ClassA表中的SMT_LOADINGId
        public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null
        //多对多外键导航
        [Navigate(typeof(MappingClass), nameof(MappingClass.SMT_LOADINGId), nameof(MappingClass.ClassAId))]//注意顺序
        public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null
        #region å¤–键属性
        /*例子
        //一对一外键导航
        [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是SMT_LOADING类里面的外键ID字段
        public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null
        //一对多外键导航
        [Navigate(NavigateType.OneToMany, nameof(ClassA.SMT_LOADINGId))]//ClassA表中的SMT_LOADINGId
        public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null
        //多对多外键导航
        [Navigate(typeof(MappingClass), nameof(MappingClass.SMT_LOADINGId), nameof(MappingClass.ClassAId))]//注意顺序
        public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null
        */
        #endregion
        #region æžšä¸¾å˜é‡
        /*例子
        #region æžšä¸¾å˜é‡
        /*例子
        public enum FieldNames
        {
            [Description("枚举描述0")]
            [Description("枚举描述0")]
            Enum0,
            [Description("枚举描述1")]
            [Description("枚举描述1")]
            Enum1,
        }
        */
        #endregion
        #region å…¬å…±æ–¹æ³•
        #region å…¬å…±æ–¹æ³•
        #endregion
Tiger.Model.Net/Entitys/MES/SMT_LOAD_HIS.cs
@@ -7,136 +7,121 @@
namespace Tiger.Model
{
    /// <summary>
    /// å®žä½“:SMT上料历史记录
    /// å®žä½“:SMT上料历史记录
    /// </summary>
    [Description("Primary:ID")]
    [Serializable]
    [SugarTable("SMT_LOAD_HIS")]
    public class SMT_LOAD_HIS : DbEntityWithAuth
    {
        #region æž„造函数
        #region æž„造函数
        /// <summary>
        /// å®žä½“:SMT上料历史记录
        /// å®žä½“:SMT上料历史记录
        /// </summary>
        public SMT_LOAD_HIS() {}
        #endregion
        #region å…¬å…±å±žæ€§
        #region å…¬å…±å±žæ€§
        /// <summary>
        /// æ“ä½œç±»åž‹(0Loading上料|1ChangeMaterial换料|2Unloading卸料|3ChangeFeeder换飞达|4UseStencil使用钢网|5UseSqueegee使用刮刀|6UseSolder使用锡膏|7UseAdhesive使用胶水)
        /// æ“ä½œç±»åž‹(0Loading上料|1ChangeMaterial换料|2Unloading卸料|3ChangeFeeder换飞达|4UseStencil使用钢网|5UseSqueegee使用刮刀|6UseSolder使用锡膏|7UseAdhesive使用胶水)
        /// </summary>
        public string OPERATION { get; set; }
        public int OPERATION { get; set; }
        /// <summary>
        /// å·¥å•号
        /// å·¥å•号
        /// </summary>
        public string WORK_ORDER { get; set; }
        /// <summary>
        /// äº§å“ç¼–码
        /// äº§å“ç¼–码
        /// </summary>
        public string PROD_CODE { get; set; }
        /// <summary>
        /// äº§çº¿ç¼–码
        /// äº§çº¿ç¼–码
        /// </summary>
        public string LINE_CODE { get; set; }
        /// <summary>
        /// è´´ç‰‡æœºç¼–码
        /// è´´ç‰‡æœºç¼–码
        /// </summary>
        public string SMT_CODE { get; set; }
        /// <summary>
        /// ç«™ä½å·
        /// ç«™ä½å·
        /// </summary>
        public string SLOT_NO { get; set; }
        /// <summary>
        /// é£žè¾¾ç±»åž‹
        /// é£žè¾¾ç±»åž‹
        /// </summary>
        public string FEEDER_TYPE { get; set; }
        /// <summary>
        /// é£žè¾¾ç¼–码
        /// é£žè¾¾ç¼–码
        /// </summary>
        public string FEEDER_CODE { get; set; }
        /// <summary>
        /// ç‰©æ–™ç¼–码
        /// ç‰©æ–™ç¼–码
        /// </summary>
        public string ITEM_CODE { get; set; }
        /// <summary>
        /// åŠ å·¥é¢
        /// åŠ å·¥é¢(插件面:A/C|1焊锡面:B/S)
        /// </summary>
        public string PCB_SURFACE { get; set; }
        /// <summary>
        /// é’¢ç½‘编码
        /// ä¸Šæ–™æ¡ç 
        /// </summary>
        public string SN { get; set; }
        /// <summary>
        /// é’¢ç½‘编码
        /// </summary>
        public string STENCIL { get; set; }
        /// <summary>
        /// åˆ®åˆ€ç¼–码
        /// åˆ®åˆ€ç¼–码
        /// </summary>
        public string SQUEEGEE { get; set; }
        /// <summary>
        /// é”¡è†UPN编码
        /// é”¡è†UPN编码
        /// </summary>
        public string SOLDER_UPN { get; set; }
        /// <summary>
        /// èƒ¶æ°´UPN编码
        /// èƒ¶æ°´UPN编码
        /// </summary>
        public string ADHESIVE_UPN { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// å¤‡æ³¨
        /// </summary>
        public string REMARK { get; set; }
        #endregion
        #region è™šæ‹Ÿå±žæ€§
        /*例子
        #region è™šæ‹Ÿå±žæ€§
        /*例子
        [SugarColumn(IsIgnore = true)]
        public string FieldName { get; set; }
        */
        #endregion
        #region å¤–键属性
        /*例子
        //一对一外键导航
        [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是SMT_LOAD_HIS类里面的外键ID字段
        public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null
        //一对多外键导航
        [Navigate(NavigateType.OneToMany, nameof(ClassA.SMT_LOAD_HISId))]//ClassA表中的SMT_LOAD_HISId
        public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null
        //多对多外键导航
        [Navigate(typeof(MappingClass), nameof(MappingClass.SMT_LOAD_HISId), nameof(MappingClass.ClassAId))]//注意顺序
        public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null
        #region å¤–键属性
        /*例子
        //一对一外键导航
        [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是SMT_LOAD_HIS类里面的外键ID字段
        public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null
        //一对多外键导航
        [Navigate(NavigateType.OneToMany, nameof(ClassA.SMT_LOAD_HISId))]//ClassA表中的SMT_LOAD_HISId
        public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null
        //多对多外键导航
        [Navigate(typeof(MappingClass), nameof(MappingClass.SMT_LOAD_HISId), nameof(MappingClass.ClassAId))]//注意顺序
        public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null
        */
        #endregion
        #region æžšä¸¾å˜é‡
        /*例子
        #region æžšä¸¾å˜é‡
        /*例子
        public enum FieldNames
        {
            [Description("枚举描述0")]
            [Description("枚举描述0")]
            Enum0,
            [Description("枚举描述1")]
            [Description("枚举描述1")]
            Enum1,
        }
        */
        public enum OPERATIONs
        {
            [Description("上料")]
            Loading,
            [Description("换料")]
            ChangeMaterial,
            [Description("卸料")]
            Unloading,
            [Description("换飞达")]
            ChangeFeeder,
            [Description("使用钢网")]
            UseStencil,
            [Description("使用刮刀")]
            UseSqueegee,
            [Description("使用锡膏")]
            UseSolder,
            [Description("使用胶水")]
            UseAdhesive,
        }
        #endregion
        #region å…¬å…±æ–¹æ³•
        #region å…¬å…±æ–¹æ³•
        #endregion
Tiger.Model.Net/Entitys/MES/SMT_PROD_TABLE.cs
@@ -71,7 +71,7 @@
        /// </summary>
        public string FEEDER_TYPE { get; set; }
        /// <summary>
        /// åŠ å·¥é¢
        /// åŠ å·¥é¢(插件面:A/C|1焊锡面:B/S)
        /// </summary>
        public string PCB_SURFACE { get; set; }
        /// <summary>
Tiger.Model.Net/Entitys/MES/SMT_WO_TABLE.cs
@@ -75,7 +75,7 @@
        /// </summary>
        public string FEEDER_TYPE { get; set; }
        /// <summary>
        /// åŠ å·¥é¢
        /// åŠ å·¥é¢(插件面:A/C|1焊锡面:B/S)
        /// </summary>
        public string PCB_SURFACE { get; set; }
        /// <summary>
Tiger.Model.Net/Entitys/WMS/Api/BaseInput.cs
@@ -50,4 +50,14 @@
    {
        public bool IsItemCodeList { get; set; }
    }
    public class SmtLoadingInput : BaseCodeInput
    {
        public int Step { get; set; }
        public string prodCode { get; set; }
        public string lineCode { get; set; }
        public string pcbSurface { get; set; }
        public string moCode { get; set; }
        public string machineCode { get; set; }
    }
}
Tiger.Model.Net/Entitys/WMS/MengQi/SNData.cs
@@ -249,6 +249,18 @@
                _DeliveryNo = value;
            }
        }
        private string _CustModel = null;
        public string CustModel
        {
            get
            {
                return _CustModel;
            }
            set
            {
                _CustModel = value;
            }
        }
    }
    public class SNData_Ext
Tiger.Model.Net/Entitys/WMS/MengQi/SNData_His.cs
@@ -116,6 +116,18 @@
                _DeliveryNo = value;
            }
        }
        private string _CustModel = null;
        public string CustModel
        {
            get
            {
                return _CustModel;
            }
            set
            {
                _CustModel = value;
            }
        }
    }
    public class SNDataWhere
Tiger.Model.Net/Tiger.Model.Net.csproj
@@ -75,6 +75,13 @@
    <Compile Include="Entitys\Automate\WIP_SN.cs" />
    <Compile Include="Entitys\Automate\WIP_SNHis.cs" />
    <Compile Include="Entitys\Automate\WIP_SNResult.cs" />
    <Compile Include="Entitys\BAS\BAS_DEFECT.cs" />
    <Compile Include="Entitys\BAS\BAS_DEFECT_GRP.cs" />
    <Compile Include="Entitys\BAS\BAS_DFT_DUTY.cs" />
    <Compile Include="Entitys\BAS\BAS_DFT_LOC.cs" />
    <Compile Include="Entitys\BAS\BAS_REASON.cs" />
    <Compile Include="Entitys\BAS\BAS_REASON_GRP.cs" />
    <Compile Include="Entitys\BAS\BAS_SOLUTION.cs" />
    <Compile Include="Entitys\DigitalTwin\Sharetronic\GetOperateChuteChangeInfoEntity.cs" />
    <Compile Include="Entitys\DigitalTwin\Sharetronic\OperateTowerLightEntity.cs" />
    <Compile Include="Entitys\DigitalTwin\Sharetronic\DownSingleEntity.cs" />
@@ -93,6 +100,7 @@
    <Compile Include="Entitys\MES\edge.cs" />
    <Compile Include="Entitys\MES\MES_PROD_NODE_ACT.cs" />
    <Compile Include="Entitys\MES\MES_ROUTE_NODE_ACT.cs" />
    <Compile Include="Entitys\MES\MES_ROUTE_NODE_DFTG.cs" />
    <Compile Include="Entitys\MES\MES_ROUTE_NODE_POST.cs" />
    <Compile Include="Entitys\MES\MES_SHIFT.cs" />
    <Compile Include="Entitys\MES\MES_SHIFT_PRD.cs" />