From 964a430c977cfc2f539d6b7fab6161827fdd71db Mon Sep 17 00:00:00 2001
From: Rodney Chen <rodney.chen@hotmail.com>
Date: 星期五, 12 四月 2024 16:31:53 +0800
Subject: [PATCH] Merge branch 'master' of http://47.115.28.255:8110/r/TigerClouds-Tech/Server/TigerApi6_2024

---
 Tiger.Model.Net/Entitys/WMS/MengQi/Customer.cs         |  124 +++
 Tiger.Api/Controllers/WMS/WMSController.MqCustomer.cs  |   96 ++
 Tiger.Api/Controllers/WMS/WMSController.MqModelInfo.cs |   76 +
 Tiger.Model.Net/Entitys/WMS/MengQi/SNData_His.cs       |  108 ++
 Tiger.Model.Net/Entitys/WMS/MengQi/ModelInfo.cs        |   88 ++
 Tiger.IBusiness/WMS/MengQi/IUser.cs                    |   19 
 Tiger.Model.Net/Tiger.Model.Net.csproj                 |   12 
 Tiger.IBusiness/WMS/MengQi/ICustomer.cs                |   19 
 Tiger.Model.Net/Entitys/Automate/WIP_SN.cs             |  235 +++++
 Tiger.IBusiness/WMS/MengQi/IModelInfo.cs               |   18 
 Tiger.Model.Net/Entitys/WMS/MengQi/User.cs             |   88 ++
 Tiger.Business/WMS/MengQi/Biz.User.cs                  |  142 +++
 Tiger.Model.Net/Entitys/Automate/Vechicle.cs           |  152 +++
 Tiger.Model.Net/Entitys/Automate/WIP_SNHis.cs          |  286 ++++++
 Tiger.Model.Net/Entitys/WMS/MengQi/SNData.cs           |  248 ++++++
 Tiger.Model.Net/Entitys/Automate/WIP_SNResult.cs       |  204 ++++
 Tiger.Api/Controllers/WMS/WMSController.User.cs        |   74 +
 Tiger.Business/DbBase.cs                               |    2 
 Tiger.Business/WMS/MengQi/Biz.Mq.Customer.cs           |  113 ++
 Tiger.Business/WMS/MengQi/Biz.Mq.ModelInfo.cs          |   99 ++
 Tiger.Model.Net/Entitys/WMS/MengQi/TestData.cs         |  205 +++++
 Tiger.Model.Net/Entitys/Automate/SNInfo.cs             |   19 
 22 files changed, 2,426 insertions(+), 1 deletions(-)

diff --git a/Tiger.Api/Controllers/WMS/WMSController.MqCustomer.cs b/Tiger.Api/Controllers/WMS/WMSController.MqCustomer.cs
new file mode 100644
index 0000000..6474cff
--- /dev/null
+++ b/Tiger.Api/Controllers/WMS/WMSController.MqCustomer.cs
@@ -0,0 +1,96 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using Rhea.Common;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Tiger.IBusiness;
+using Tiger.Model;
+
+namespace Tiger.Api.Controllers.WMS
+{
+    public partial class WMSController : ControllerBase
+    {
+        /// <summary>
+        /// 鑾峰彇瀹㈡埛淇℃伅
+        /// </summary>
+        /// <param name="action"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("api/[controller]/[action]")]
+        public async Task<IActionResult> GetCustomerInfo([FromBody] ApiAction action)
+        {
+            ApiAction response = new();
+            try
+            {
+                response = response.GetResponse(await DI.Resolve<ICustomer>().GetCustomerInfo());
+            }
+            catch (System.Exception ex)
+            {
+                response = response.GetResponse().CatchExceptionWithLog(ex);
+            }
+            return Ok(response);
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍒嗛〉
+        /// </summary>
+        /// <param name="action"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("api/[controller]/[action]")]
+        public async Task<IActionResult> GetCustomers([FromBody] ApiAction<PageAble<Customer>> action)
+        {
+            ApiAction response = new();
+            try
+            {
+                response = response.GetResponse(await DI.Resolve<ICustomer>().GetCustomers(action.Data));
+            }
+            catch (System.Exception ex)
+            {
+                response = response.GetResponse().CatchExceptionWithLog(ex);
+            }
+            return Ok(response);
+        }
+
+        /// <summary>
+        /// 瀵煎叆
+        /// </summary>
+        /// <param name="action"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("api/[controller]/[action]")]
+        public async Task<IActionResult> SaveImportCustomerInfo([FromBody] ApiAction<List<Customer>> action)
+        {
+            ApiAction response = new();
+            try
+            {
+                response = response.GetResponse(await DI.Resolve<ICustomer>().SaveImportCustomerInfo(action.Data));
+            }
+            catch (System.Exception ex)
+            {
+                response = response.GetResponse().CatchExceptionWithLog(ex);
+            }
+            return Ok(response);
+        }
+
+        /// <summary>
+        /// 淇濆瓨
+        /// </summary>
+        /// <param name="action"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("api/[controller]/[action]")]
+        public async Task<IActionResult> SaveCustomer([FromBody] ApiAction<Customer> action)
+        {
+            ApiAction response = new();
+            try
+            {
+                response = response.GetResponse(await DI.Resolve<ICustomer>().SaveCustomer(action.Data));
+            }
+            catch (System.Exception ex)
+            {
+                response = response.GetResponse().CatchExceptionWithLog(ex);
+            }
+            return Ok(response);
+        }
+    }
+}
diff --git a/Tiger.Api/Controllers/WMS/WMSController.MqModelInfo.cs b/Tiger.Api/Controllers/WMS/WMSController.MqModelInfo.cs
new file mode 100644
index 0000000..93068fe
--- /dev/null
+++ b/Tiger.Api/Controllers/WMS/WMSController.MqModelInfo.cs
@@ -0,0 +1,76 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using Rhea.Common;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Tiger.IBusiness;
+using Tiger.Model;
+
+namespace Tiger.Api.Controllers.WMS
+{
+    public partial class WMSController : ControllerBase
+    {
+
+        /// <summary>
+        /// 鑾峰彇鍒嗛〉
+        /// </summary>
+        /// <param name="action"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("api/[controller]/[action]")]
+        public async Task<IActionResult> GetModelInfo([FromBody] ApiAction<PageAble<ModelInfo>> action)
+        {
+            ApiAction response = new();
+            try
+            {
+                response = response.GetResponse(await DI.Resolve<IModelInfo>().GetModelInfo(action.Data));
+            }
+            catch (System.Exception ex)
+            {
+                response = response.GetResponse().CatchExceptionWithLog(ex);
+            }
+            return Ok(response);
+        }
+
+        /// <summary>
+        /// 瀵煎叆
+        /// </summary>
+        /// <param name="action"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("api/[controller]/[action]")]
+        public async Task<IActionResult> SaveImportModelInfo([FromBody] ApiAction<List<ModelInfo>> action)
+        {
+            ApiAction response = new();
+            try
+            {
+                response = response.GetResponse(await DI.Resolve<IModelInfo>().SaveImportModelInfo(action.Data));
+            }
+            catch (System.Exception ex)
+            {
+                response = response.GetResponse().CatchExceptionWithLog(ex);
+            }
+            return Ok(response);
+        }
+
+        /// <summary>
+        /// 淇濆瓨
+        /// </summary>
+        /// <param name="action"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("api/[controller]/[action]")]
+        public async Task<IActionResult> SaveModelInfo([FromBody] ApiAction<ModelInfo> action)
+        {
+            ApiAction response = new();
+            try
+            {
+                response = response.GetResponse(await DI.Resolve<IModelInfo>().SaveModel(action.Data));
+            }
+            catch (System.Exception ex)
+            {
+                response = response.GetResponse().CatchExceptionWithLog(ex);
+            }
+            return Ok(response);
+        }
+    }
+}
diff --git a/Tiger.Api/Controllers/WMS/WMSController.User.cs b/Tiger.Api/Controllers/WMS/WMSController.User.cs
new file mode 100644
index 0000000..c104c06
--- /dev/null
+++ b/Tiger.Api/Controllers/WMS/WMSController.User.cs
@@ -0,0 +1,74 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using Rhea.Common;
+using System.Threading.Tasks;
+using Tiger.IBusiness;
+using Tiger.Model;
+
+namespace Tiger.Api.Controllers.WMS
+{
+    public partial class WMSController : ControllerBase
+    {
+        /// <summary>
+        /// 瀹㈡埛绔敤鎴风櫥褰�
+        /// </summary>
+        /// <param name="userInfo"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("api/[controller]/[action]")]
+        public async Task<IActionResult> Login(User userInfo)
+        {
+            ApiAction response = new();
+            try
+            {
+                response = response.GetResponse(await DI.Resolve<IUser>().Login(userInfo));
+            }
+            catch (System.Exception ex)
+            {
+                response = response.GetResponse().CatchExceptionWithLog(ex);
+            }
+            return Ok(response);
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍒嗛〉
+        /// </summary>
+        /// <param name="action"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("api/[controller]/[action]")]
+        public async Task<IActionResult> GetUsers([FromBody] ApiAction<PageAble<User>> action)
+        {
+            ApiAction response = new();
+            try
+            {
+                response = response.GetResponse(await DI.Resolve<IUser>().GetUserInfo(action.Data));
+            }
+            catch (System.Exception ex)
+            {
+                response = response.GetResponse().CatchExceptionWithLog(ex);
+            }
+            return Ok(response);
+        }
+
+        /// <summary>
+        /// 淇濆瓨鐢ㄦ埛
+        /// </summary>
+        /// <param name="action"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("api/[controller]/[action]")]
+        public async Task<IActionResult> SaveUser([FromBody] ApiAction<User> action)
+        {
+            ApiAction response = new();
+            try
+            {
+                response = response.GetResponse(await DI.Resolve<IUser>().SaveUser(action.Data));
+            }
+            catch (System.Exception ex)
+            {
+                response = response.GetResponse().CatchExceptionWithLog(ex);
+            }
+            return Ok(response);
+        }
+    }
+}
diff --git a/Tiger.Business/DbBase.cs b/Tiger.Business/DbBase.cs
index 2a6939e..9b07916 100644
--- a/Tiger.Business/DbBase.cs
+++ b/Tiger.Business/DbBase.cs
@@ -254,6 +254,7 @@
             {
                 var dbres = isAsync ? await Db.Deleteable<T>().In(primaryKeys).ExecuteCommandAsync() : Db.Deleteable<T>().In(primaryKeys).ExecuteCommand();
                 action.Message = $"Delete {typeof(T).Name} entity by primary keys from database success";
+                action.IsSuccessed = true;
             }
             catch (Exception ex)
             {
@@ -276,6 +277,7 @@
             {
                 var dbres = isAsync ? await Db.Deleteable<T>().Where(entity).ExecuteCommandAsync() : Db.Deleteable<T>().Where(entity).ExecuteCommand();
                 action.Message = $"Delete {typeof(T).Name} entity from database success";
+                action.IsSuccessed = true;
             }
             catch (Exception ex)
             {
diff --git a/Tiger.Business/WMS/MengQi/Biz.Mq.Customer.cs b/Tiger.Business/WMS/MengQi/Biz.Mq.Customer.cs
new file mode 100644
index 0000000..550738b
--- /dev/null
+++ b/Tiger.Business/WMS/MengQi/Biz.Mq.Customer.cs
@@ -0,0 +1,113 @@
+锘縰sing Rhea.Common;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tiger.IBusiness;
+using Tiger.Model;
+
+namespace Tiger.Business
+{
+    public partial class Biz
+    {
+        /// <summary>
+        /// 瀹㈡埛
+        /// </summary>
+        public partial class MqCustomer : ICustomer
+        {
+            /// <summary>
+            /// 鑾峰彇鍒嗛〉
+            /// </summary>
+            /// <param name="pageList"></param>
+            /// <returns></returns>
+            public async Task<ApiAction<PageAble<Customer>>> GetCustomers(PageAble<Customer> pageList)
+            {
+                var res = new ApiAction<PageAble<Customer>>();
+                try
+                {
+                    RefAsync<int> total = 0;
+                    pageList.data = await Db.Queryable<Customer>().WhereIF(!string.IsNullOrEmpty(pageList.sqlcmd), x => x.CustomerCode.Contains(pageList.sqlcmd)).OrderBy(x=>x.CustomerCode).ToPageListAsync(pageList.pageIndex, pageList.pageSize, total);
+                    pageList.totals = total;
+                }
+                catch (Exception ex)
+                {
+                    res.CatchExceptionWithLog(ex, "鑾峰彇瀹㈡埛淇℃伅寮傚父");
+                }
+                res.Data = pageList;
+                return res;
+            }
+
+            /// <summary>
+            /// 鑾峰彇瀹㈡埛淇℃伅
+            /// </summary>
+            /// <returns></returns>
+            public async Task<ApiAction<List<Customer>>> GetCustomerInfo()
+            {
+                var res = new ApiAction<List<Customer>>();
+                try
+                {
+                    List<Customer> result = await Db.Queryable<Customer>().ToListAsync();
+                    res.Data = result;
+                }
+                catch (Exception ex)
+                {
+                    res.CatchExceptionWithLog(ex, "鑾峰彇瀹㈡埛淇℃伅寮傚父");
+                }
+                return res;
+            }
+
+            public async Task<ApiAction> SaveImportCustomerInfo(List<Customer> list)
+            {
+                var res = new ApiAction();
+                //鏇存柊瀹㈡埛璁板綍
+                var db = Db;
+                var dbTran = await db.UseTranAsync(async () =>
+                {
+                    await db.Saveable(list).ExecuteCommandAsync();
+                });
+                if (!dbTran.IsSuccess)
+                {
+                    res.IsSuccessed = false;
+                    res.Message = $"瀵煎叆寮傚父";
+                }
+                return res;
+            }
+
+            /// <summary>
+            /// 淇濆瓨瀹㈡埛
+            /// </summary>
+            /// <param name="user"></param>
+            /// <returns></returns>
+            public async Task<ApiAction> SaveCustomer(Customer customer)
+            {
+                var result = new ApiAction();
+                try
+                {
+
+                    var db = Db;
+                    var dbTran = db.UseTran(() =>
+                    {
+                        var y = db.Storageable(customer)
+                           .WhereColumns(t => new { t.CustomerCode })
+                           .ToStorage();
+                        y.AsInsertable.ExecuteCommand();
+                        y.AsUpdateable.ExecuteCommand();
+                    });
+                    if (!dbTran.IsSuccess)
+                    {
+                        result.IsSuccessed = false;
+                        result.Message = $"瀵煎叆寮傚父";
+                    }
+                }
+                catch (Exception ex)
+                {
+                    result.CatchExceptionWithLog(ex, "淇濆瓨瀹㈡埛寮傚父");
+                }
+                return result;
+            }
+        }
+    }
+}
diff --git a/Tiger.Business/WMS/MengQi/Biz.Mq.ModelInfo.cs b/Tiger.Business/WMS/MengQi/Biz.Mq.ModelInfo.cs
new file mode 100644
index 0000000..bd4fc98
--- /dev/null
+++ b/Tiger.Business/WMS/MengQi/Biz.Mq.ModelInfo.cs
@@ -0,0 +1,99 @@
+锘縰sing Rhea.Common;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tiger.IBusiness;
+using Tiger.Model;
+
+namespace Tiger.Business
+{
+    public partial class Biz
+    {
+        /// <summary>
+        /// 瀹㈡埛
+        /// </summary>
+        public partial class MqModelInfo : IModelInfo
+        {
+            /// <summary>
+            /// 鑾峰彇鍒嗛〉
+            /// </summary>
+            /// <param name="pageList"></param>
+            /// <returns></returns>
+            public async Task<ApiAction<PageAble<ModelInfo>>> GetModelInfo(PageAble<ModelInfo> pageList)
+            {
+                var res = new ApiAction<PageAble<ModelInfo>>();
+                try
+                {
+                    RefAsync<int> total = 0;
+                    pageList.data = await Db.Queryable<ModelInfo>().WhereIF(!string.IsNullOrEmpty(pageList.sqlcmd), x => x.Model.Contains(pageList.sqlcmd)).OrderBy(x=>x.Model).ToPageListAsync(pageList.pageIndex, pageList.pageSize, total);
+                    pageList.totals = total;
+                }
+                catch (Exception ex)
+                {
+                    res.CatchExceptionWithLog(ex, "鑾峰彇浜у搧淇℃伅寮傚父");
+                }
+                res.Data = pageList;
+                return res;
+            }
+
+            /// <summary>
+            /// 瀵煎叆
+            /// </summary>
+            /// <param name="list"></param>
+            /// <returns></returns>
+            public async Task<ApiAction> SaveImportModelInfo(List<ModelInfo> list)
+            {
+                var res = new ApiAction();
+                //鏇存柊鏈哄瀷璁板綍
+                var db = Db;
+                var dbTran = await db.UseTranAsync(async () =>
+                {
+                    await db.Saveable(list).ExecuteCommandAsync();
+                });
+                if (!dbTran.IsSuccess)
+                {
+                    res.IsSuccessed = false;
+                    res.Message = $"瀵煎叆寮傚父";
+                }
+                return res;
+            }
+
+            /// <summary>
+            /// 淇濆瓨鏈哄瀷
+            /// </summary>
+            /// <param name="user"></param>
+            /// <returns></returns>
+            public async Task<ApiAction> SaveModel(ModelInfo modelInfo)
+            {
+                var result = new ApiAction();
+                try
+                {
+
+                    var db = Db;
+                    var dbTran = db.UseTran(() =>
+                    {
+                        var y = db.Storageable(modelInfo)
+                           .WhereColumns(t => new { t.Model })
+                           .ToStorage();
+                        y.AsInsertable.ExecuteCommand();
+                        y.AsUpdateable.ExecuteCommand();
+                    });
+                    if (!dbTran.IsSuccess)
+                    {
+                        result.IsSuccessed = false;
+                        result.Message = $"瀵煎叆寮傚父";
+                    }
+                }
+                catch (Exception ex)
+                {
+                    result.CatchExceptionWithLog(ex, "淇濆瓨鏈哄瀷寮傚父");
+                }
+                return result;
+            }
+        }
+    }
+}
diff --git a/Tiger.Business/WMS/MengQi/Biz.User.cs b/Tiger.Business/WMS/MengQi/Biz.User.cs
new file mode 100644
index 0000000..44b4560
--- /dev/null
+++ b/Tiger.Business/WMS/MengQi/Biz.User.cs
@@ -0,0 +1,142 @@
+锘縰sing Rhea.Common;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tiger.IBusiness;
+using Tiger.Model;
+
+namespace Tiger.Business
+{
+    public partial class Biz
+    {
+        /// <summary>
+        /// 鐢ㄦ埛
+        /// </summary>
+        public partial class Users : IUser
+        {
+            /// <summary>
+            /// 鑾峰彇鐢ㄦ埛淇℃伅
+            /// </summary>
+            /// <param name="pageList"></param>
+            /// <returns></returns>
+            /// <exception cref="NotImplementedException"></exception>
+            public async Task<PageAble<User>> GetUserInfo(PageAble<User> pageList)
+            {
+                RefAsync<int> total = 0;
+                pageList.data = await Db.Queryable<User>().WhereIF(!string.IsNullOrEmpty(pageList.sqlcmd), x => x.UserCode.Contains(pageList.sqlcmd)).ToPageListAsync(pageList.pageIndex, pageList.pageSize, total);
+                pageList.totals = total;
+                return pageList;
+            }
+
+            /// <summary>
+            /// 鐢ㄦ埛鐧诲綍
+            /// </summary>
+            /// <param name="userInfo"></param>
+            /// <returns></returns>
+            public async Task<ApiAction<User>> Login(User userInfo)
+            {
+                var res = new ApiAction<User>();
+                try
+                {
+                    string usercode = userInfo.UserCode;
+                    if (userInfo.UserCode == "鍝佽川鐢ㄦ埛")
+                    {
+                        var user = await Db.Queryable<User>().Where(x => x.RoleCode == "鍝佽川").FirstAsync();
+                        if (user != null) { usercode = user.UserCode; }
+                    }
+                    if (!Db.Queryable<User>().Where(x => x.UserCode == usercode && x.Password == userInfo.Password).Any())
+                    {
+                        //result = new(Result.Flags.Failed, "鐢ㄦ埛娌℃湁鏉冮檺鎴栬�呯敤鎴峰悕鍜屽瘑鐮侀敊璇紒");
+                        userInfo = new();
+                    }
+                    else
+                    {
+                        userInfo = await Db.Queryable<User>().Where(x => x.UserCode == usercode && x.Password == userInfo.Password).FirstAsync();
+                    }
+                    res.Data = userInfo;
+                }
+                catch (Exception ex)
+                {
+                    res.CatchExceptionWithLog(ex, "鐧诲綍寮傚父");
+                }
+                return res;
+            }
+
+            /// <summary>
+            /// 
+            /// </summary>
+            /// <param name="dt"></param>
+            /// <returns></returns>
+            public async Task<Result> SaveImportUserInfo(DataTable dt)
+            {
+
+                Result result = new Result(Result.Flags.Success, $"瀵煎叆鎴愬姛");
+                List<User> list = new();
+                for (int i = 0; i < dt.Rows.Count; i++)
+                {
+                    User item = new()
+                    {
+                        id = Guid.NewGuid().ToString("N"),
+                        UserCode = dt.Rows[i]["鐢ㄦ埛ID"].ToString(),
+                        UserName = dt.Rows[i]["鐢ㄦ埛鍚嶇О"].ToString(),
+                        RoleCode = dt.Rows[i]["鐢ㄦ埛瑙掕壊"].ToString(),
+                    };
+                    var info = Db.Queryable<User>().Where(x => x.UserCode == dt.Rows[i]["鐢ㄦ埛ID"].ToString()).First();
+                    if (info != null)
+                    {
+                        item.id = info.id;
+                    }
+                    list.Add(item);
+                }
+                //鏇存柊鏈哄瀷璁板綍
+                var db = Db;
+                var dbTran = await db.UseTranAsync(async () =>
+                {
+                    await db.Saveable(list).ExecuteCommandAsync();
+                });
+                if (!dbTran.IsSuccess)
+                {
+                    result.Flag = Result.Flags.Failed;
+                    result.Message = $"瀵煎叆寮傚父";
+                }
+                return result;
+            }
+
+            /// <summary>
+            /// 淇濆瓨鐢ㄦ埛
+            /// </summary>
+            /// <param name="user"></param>
+            /// <returns></returns>
+            public async Task<ApiAction> SaveUser(User user) { 
+                var result = new ApiAction();
+                try
+                {
+
+                    var db = Db;
+                    var dbTran = db.UseTran(() =>
+                    {
+                        var y = db.Storageable(user)
+                           .WhereColumns(t => new { t.UserCode })
+                           .ToStorage();
+                        y.AsInsertable.ExecuteCommand();
+                        y.AsUpdateable.ExecuteCommand();
+                    });
+                    if (!dbTran.IsSuccess)
+                    {
+                        result.IsSuccessed = false;
+                        result.Message = $"瀵煎叆寮傚父";
+                    }
+                }
+                catch (Exception ex)
+                {
+                    result.CatchExceptionWithLog(ex, "淇濆瓨鐢ㄦ埛寮傚父");
+                }
+                return result;
+            }
+        }
+    }
+}
diff --git a/Tiger.IBusiness/WMS/MengQi/ICustomer.cs b/Tiger.IBusiness/WMS/MengQi/ICustomer.cs
new file mode 100644
index 0000000..4f5a980
--- /dev/null
+++ b/Tiger.IBusiness/WMS/MengQi/ICustomer.cs
@@ -0,0 +1,19 @@
+锘縰sing Rhea.Common;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tiger.Model;
+
+namespace Tiger.IBusiness
+{
+    public interface ICustomer
+    {
+        public Task<ApiAction<List<Customer>>> GetCustomerInfo();
+        public Task<ApiAction> SaveImportCustomerInfo(List<Customer> list);
+        public Task<ApiAction<PageAble<Customer>>> GetCustomers(PageAble<Customer> pageList);
+        public Task<ApiAction> SaveCustomer(Customer customer);
+    }
+}
diff --git a/Tiger.IBusiness/WMS/MengQi/IModelInfo.cs b/Tiger.IBusiness/WMS/MengQi/IModelInfo.cs
new file mode 100644
index 0000000..911144e
--- /dev/null
+++ b/Tiger.IBusiness/WMS/MengQi/IModelInfo.cs
@@ -0,0 +1,18 @@
+锘縰sing Rhea.Common;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tiger.Model;
+
+namespace Tiger.IBusiness
+{
+    public interface IModelInfo
+    {
+        public Task<ApiAction<PageAble<ModelInfo>>> GetModelInfo(PageAble<ModelInfo> pageList);
+        public Task<ApiAction> SaveImportModelInfo(List<ModelInfo> list);
+        public Task<ApiAction> SaveModel(ModelInfo user);
+    }
+}
diff --git a/Tiger.IBusiness/WMS/MengQi/IUser.cs b/Tiger.IBusiness/WMS/MengQi/IUser.cs
new file mode 100644
index 0000000..0393ca0
--- /dev/null
+++ b/Tiger.IBusiness/WMS/MengQi/IUser.cs
@@ -0,0 +1,19 @@
+锘縰sing Rhea.Common;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tiger.Model;
+
+namespace Tiger.IBusiness
+{
+    public interface IUser
+    {
+        public Task<PageAble<User>> GetUserInfo(PageAble<User> pageList);
+        public Task<Result> SaveImportUserInfo(DataTable dt);
+        public Task<ApiAction<User>> Login(User userInfo);
+        public Task<ApiAction> SaveUser(User user);
+    }
+}
diff --git a/Tiger.Model.Net/Entitys/Automate/SNInfo.cs b/Tiger.Model.Net/Entitys/Automate/SNInfo.cs
new file mode 100644
index 0000000..6844551
--- /dev/null
+++ b/Tiger.Model.Net/Entitys/Automate/SNInfo.cs
@@ -0,0 +1,19 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tiger.Model
+{
+    public class SNInfo
+    {
+        public string Vechicle_ID { get; set; }
+        public string JiBanSN { get; set; }
+        public string TID { get; set; }
+        public bool IsPass { get; set; }
+        public List<WIP_SN> WipSnList { get; set; } = new List<WIP_SN>();
+        public List<SNData> SnList { get; set; } = new List<SNData>();
+        public List<Vechicle> VechicleList { get; set; } = new List<Vechicle>();
+    }
+}
diff --git a/Tiger.Model.Net/Entitys/Automate/Vechicle.cs b/Tiger.Model.Net/Entitys/Automate/Vechicle.cs
new file mode 100644
index 0000000..3afa94d
--- /dev/null
+++ b/Tiger.Model.Net/Entitys/Automate/Vechicle.cs
@@ -0,0 +1,152 @@
+锘�/******************************************
+* 妯″潡鍚嶇О锛氬疄浣� Vechicle
+* 褰撳墠鐗堟湰锛�1.0
+* 寮�鍙戜汉鍛橈細Ben
+* 鐢熸垚鏃堕棿锛�2021/9/1
+* 鐗堟湰鍘嗗彶锛氭浠g爜鐢� VB/C#.Net瀹炰綋浠g爜鐢熸垚宸ュ叿(EntitysCodeGenerate 4.8) 鑷姩鐢熸垚銆�
+* 
+******************************************/
+using System;
+using System.Collections;
+using System.Collections.Specialized;
+using System.ComponentModel;
+using SqlSugar;
+
+namespace Tiger.Model
+{
+	/// <summary>
+	/// 瀹炰綋 Vechicle
+	/// </summary>
+	[Description("Primary:")]
+    [Serializable]
+[SugarTable("Vechicle")]
+	public class Vechicle
+	{
+        #region 鏋勯�犲嚱鏁�
+        /// <summary>
+        /// 瀹炰綋 Vechicle
+        /// </summary>
+        public Vechicle(){}
+        #endregion
+
+        #region 绉佹湁鍙橀噺
+        private string _id = null;
+        private string _vechicle_id = null;
+        private string _sn = null;
+        private int _order_id = 0;
+        private DateTime _create_time = DateTime.Now;
+        private string _create_user = null;
+        private DateTime _update_time = DateTime.MinValue;
+        private string _update_user = null;
+        #endregion
+
+        #region 鍏叡灞炴��
+        /// <summary>
+        /// ID
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true)]
+        public string ID
+        {
+            set{ _id=value;}
+            get{return _id;}
+        }
+        /// <summary>
+        /// Vechicle_ID
+        /// </summary>
+        public string Vechicle_ID
+        {
+            set{ _vechicle_id=value;}
+            get{return _vechicle_id;}
+        }
+        /// <summary>
+        /// SN
+        /// </summary>
+        public string SN
+        {
+            set{ _sn=value;}
+            get{return _sn;}
+        }
+
+        /// <summary>
+        /// Order_ID
+        /// </summary>
+        public Int32 Order_ID
+        {
+            set { _order_id = value; }
+            get { return _order_id; }
+        }
+
+
+        /// <summary>
+        /// 鍒涘缓鏃堕棿(NOT NULL)
+        /// </summary>
+        public DateTime CREATE_TIME
+        {
+            set { _create_time = value; }
+            get { return _create_time; }
+        }
+        /// <summary>
+        /// 鍒涘缓鑰�
+        /// </summary>
+        public string CREATE_USER
+        {
+            set { _create_user = value; }
+            get { return _create_user; }
+        }
+        /// <summary>
+        /// 淇敼鏃堕棿
+        /// </summary>
+        public DateTime UPDATE_TIME
+        {
+            set { _update_time = value; }
+            get { return _update_time; }
+        }
+        /// <summary>
+        /// 淇敼鑰�
+        /// </summary>
+        public string UPDATE_USER
+        {
+            set { _update_user = value; }
+            get { return _update_user; }
+        }
+        #endregion
+    }
+
+    /// <summary>
+    /// Vechicle瀹炰綋闆�
+    /// </summary>
+    [Serializable]
+    public class VechicleS : CollectionBase
+    {
+        #region 鏋勯�犲嚱鏁�
+        /// <summary>
+        /// Vechicle瀹炰綋闆�
+        /// </summary>
+        public VechicleS(){}
+        #endregion
+
+        #region 灞炴�ф柟娉�
+        /// <summary>
+        /// Vechicle闆嗗悎 澧炲姞鏂规硶
+        /// </summary>
+        public void Add(Vechicle entity)
+        {
+            this.List.Add(entity);
+        }
+        /// <summary>
+        /// Vechicle闆嗗悎 绱㈠紩
+        /// </summary>
+        public Vechicle this[int index]
+        {
+            get { return (Vechicle)this.List[index]; }
+            set { this.List[index] = value; }
+        }
+        #endregion
+    }
+
+    public class CommEntity
+    {
+        public string EntityStr { get; set; }
+        public string[] Params { get; set; }
+    }
+}
diff --git a/Tiger.Model.Net/Entitys/Automate/WIP_SN.cs b/Tiger.Model.Net/Entitys/Automate/WIP_SN.cs
new file mode 100644
index 0000000..51fc5f7
--- /dev/null
+++ b/Tiger.Model.Net/Entitys/Automate/WIP_SN.cs
@@ -0,0 +1,235 @@
+锘�/******************************************
+* 妯″潡鍚嶇О锛氬疄浣� WIP_SN
+* 褰撳墠鐗堟湰锛�1.0
+* 寮�鍙戜汉鍛橈細Ben
+* 鐢熸垚鏃堕棿锛�2021/9/3
+* 鐗堟湰鍘嗗彶锛氭浠g爜鐢� VB/C#.Net瀹炰綋浠g爜鐢熸垚宸ュ叿(EntitysCodeGenerate 4.8) 鑷姩鐢熸垚銆�
+* 
+******************************************/
+using System;
+using System.Collections;
+using System.Collections.Specialized;
+using System.ComponentModel;
+using SqlSugar;
+
+namespace Tiger.Model
+{
+	/// <summary>
+	/// 瀹炰綋 WIP_SN
+	/// </summary>
+	[Description("Primary:")]
+    [Serializable]
+    [SugarTable("WIP_SN")]
+	public class WIP_SN
+	{
+        #region 鏋勯�犲嚱鏁�
+        /// <summary>
+        /// 瀹炰綋 WIP_SN
+        /// </summary>
+        public WIP_SN(){}
+        #endregion
+
+        #region 绉佹湁鍙橀噺
+        private string _id = null;
+        private DateTime _create_time = DateTime.Now;
+        private string _create_user = null;
+        private DateTime _update_time = DateTime.MinValue;
+        private string _update_user = null;
+        private string _sn = null;
+        private string _inner_sn = null;
+        private string _outer_sn = null;
+        private string _vechicle_sn = null;
+        private string _status = null;
+        private string _type = null;
+        private string _curroper = null;
+        private string _fromoper = null;
+        private string _scanner = null;
+        private int _seq_no = 0;
+        private int _retesttimes = -1;
+        private string _remark = null;
+
+        #endregion
+
+        #region 鍏叡灞炴��
+        /// <summary>
+        /// ID
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true)]
+        public string ID
+        {
+            set{ _id=value;}
+            get{return _id;}
+        }
+        /// <summary>
+        /// 鍒涘缓鏃堕棿(NOT NULL)
+        /// </summary>
+        public DateTime CREATE_TIME
+        {
+            set { _create_time = value; }
+            get { return _create_time; }
+        }
+        /// <summary>
+        /// 鍒涘缓鑰�
+        /// </summary>
+        public string CREATE_USER
+        {
+            set { _create_user = value; }
+            get { return _create_user; }
+        }
+        /// <summary>
+        /// 淇敼鏃堕棿
+        /// </summary>
+        public DateTime UPDATE_TIME
+        {
+            set { _update_time = value; }
+            get { return _update_time; }
+        }
+        /// <summary>
+        /// 淇敼鑰�
+        /// </summary>
+        public string UPDATE_USER
+        {
+            set { _update_user = value; }
+            get { return _update_user; }
+        }
+        /// <summary>
+        /// SN
+        /// </summary>
+        public string SN
+        {
+            set { _sn = value; }
+            get { return _sn; }
+        }
+        /// <summary>
+        /// InnerSN
+        /// </summary>
+        public string InnerSN
+        {
+            set { _inner_sn = value; }
+            get { return _inner_sn; }
+        }
+        /// <summary>
+        /// OuterSN
+        /// </summary>
+        public string OuterSN
+        {
+            set { _outer_sn = value; }
+            get { return _outer_sn; }
+        }
+        /// <summary>
+        /// VechicleSN
+        /// </summary>
+        public string VechicleSN
+        {
+            set{ _vechicle_sn=value;}
+            get{return _vechicle_sn; }
+        }
+        /// <summary>
+        /// Status
+        /// </summary>
+        public string Status
+        {
+            set{ _status=value;}
+            get{return _status;}
+        }
+        /// <summary>
+        /// Type
+        /// </summary>
+        public string Type
+        {
+            set { _type = value; }
+            get { return _type; }
+        }
+
+        /// <summary>
+        /// CurrOper
+        /// </summary>
+        public string CurrOper
+        {
+            set{ _curroper=value;}
+            get{return _curroper;}
+        }
+        /// <summary>
+        /// FromOper
+        /// </summary>
+        public string FromOper
+        {
+            set{ _fromoper=value;}
+            get{return _fromoper;}
+        }
+        /// <summary>
+        /// Scanner
+        /// </summary>
+        public string Scanner
+        {
+            set { _scanner = value; }
+            get { return _scanner; }
+        }
+
+        /// <summary>
+        /// Order_ID
+        /// </summary>
+        public Int32 SeqNo
+        {
+            set { _seq_no = value; }
+            get { return _seq_no; }
+        }
+
+        /// <summary>
+        /// Order_ID
+        /// </summary>
+        public Int32 RetestTimes
+        {
+            set { _retesttimes = value; }
+            get { return _retesttimes; }
+        }
+
+        /// <summary>
+        /// Remark
+        /// </summary>
+        public string Remark
+        {
+            set{ _remark=value;}
+            get{return _remark; }
+        }
+
+        #region 铏氭嫙灞炴��
+        [SugarColumn(IsIgnore = true)]
+        public string DisplayValue { get; set; }
+        #endregion
+
+        #endregion
+    }
+
+    /// <summary>
+    /// WIP_SN瀹炰綋闆�
+    /// </summary>
+    [Serializable]
+    public class WIP_SNS : CollectionBase
+    {
+        #region 鏋勯�犲嚱鏁�
+        /// <summary>
+        /// WIP_SN瀹炰綋闆�
+        /// </summary>
+        public WIP_SNS(){}
+        #endregion
+
+        #region 灞炴�ф柟娉�
+        /// <summary>
+        /// WIP_SN闆嗗悎 澧炲姞鏂规硶
+        /// </summary>
+        public void Add(WIP_SN entity)
+        {
+            this.List.Add(entity);
+        }
+        /// <summary>
+        /// WIP_SN闆嗗悎 绱㈠紩
+        /// </summary>
+        public WIP_SN this[int index]
+        {
+            get { return (WIP_SN)this.List[index]; }
+            set { this.List[index] = value; }
+        }
+        #endregion
+    }
+}
diff --git a/Tiger.Model.Net/Entitys/Automate/WIP_SNHis.cs b/Tiger.Model.Net/Entitys/Automate/WIP_SNHis.cs
new file mode 100644
index 0000000..5e9256e
--- /dev/null
+++ b/Tiger.Model.Net/Entitys/Automate/WIP_SNHis.cs
@@ -0,0 +1,286 @@
+锘�/******************************************
+* 妯″潡鍚嶇О锛氬疄浣� WIP_SNHis
+* 褰撳墠鐗堟湰锛�1.0
+* 寮�鍙戜汉鍛橈細Ben
+* 鐢熸垚鏃堕棿锛�2021/9/3
+* 鐗堟湰鍘嗗彶锛氭浠g爜鐢� VB/C#.Net瀹炰綋浠g爜鐢熸垚宸ュ叿(EntitysCodeGenerate 4.8) 鑷姩鐢熸垚銆�
+* 
+******************************************/
+using System;
+using System.Collections;
+using System.Collections.Specialized;
+using System.ComponentModel;
+using SqlSugar;
+
+namespace Tiger.Model
+{
+    /// <summary>
+    /// 瀹炰綋 WIP_SNHis
+    /// </summary>
+    [Description("Primary:")]
+    [Serializable]
+    [SugarTable("WIP_SNHis")]
+    public class WIP_SNHis
+    {
+        #region 鏋勯�犲嚱鏁�
+        /// <summary>
+        /// 瀹炰綋 WIP_SNHis
+        /// </summary>
+        public WIP_SNHis() { }
+
+        public WIP_SNHis(WIP_SN item, string debugMsg, string traceMsg, string errorMsg)
+        {
+            _id = Guid.NewGuid().ToString("N");
+            _create_time = DateTime.Now;
+            _create_user = item.CREATE_USER;
+            _update_time = DateTime.Now;
+            _update_user = item.UPDATE_USER;
+            _sn = item.SN;
+            _inner_sn = item.InnerSN;
+            _outer_sn = item.OuterSN;
+            _vechicle_sn = item.VechicleSN;
+            _status = item.Status;
+            _type = item.Type;
+            _curroper = item.CurrOper;
+            _fromoper = item.FromOper;
+            _scanner = item.Scanner;
+            _seq_no = item.SeqNo;
+            _retesttimes = item.RetestTimes;
+            _remark = item.Remark;
+            _DebugMsg = debugMsg;
+            _TraceMsg = traceMsg;
+            _ErrorMsg = errorMsg;
+        }
+        #endregion
+
+        #region 绉佹湁鍙橀噺
+        private string _id = null;
+        private DateTime _create_time = DateTime.Now;
+        private string _create_user = null;
+        private DateTime _update_time = DateTime.MinValue;
+        private string _update_user = null;
+        private string _sn = null;
+        private string _inner_sn = null;
+        private string _outer_sn = null;
+        private string _vechicle_sn = null;
+        private string _status = null;
+        private string _type = null;
+        private string _curroper = null;
+        private string _fromoper = null;
+        private string _scanner = null;
+        private int _seq_no = 0;
+        private int _retesttimes = -1;
+        private string _remark = null;
+        private string _DebugMsg = null;
+        private string _TraceMsg = null;
+        private string _ErrorMsg = null;
+        #endregion
+
+        #region 鍏叡灞炴��
+        /// <summary>
+        /// ID
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true)]
+        public string ID
+        {
+            set { _id = value; }
+            get { return _id; }
+        }
+        /// <summary>
+        /// 鍒涘缓鏃堕棿(NOT NULL)
+        /// </summary>
+        public DateTime CREATE_TIME
+        {
+            set { _create_time = value; }
+            get { return _create_time; }
+        }
+        /// <summary>
+        /// 鍒涘缓鑰�
+        /// </summary>
+        public string CREATE_USER
+        {
+            set { _create_user = value; }
+            get { return _create_user; }
+        }
+        /// <summary>
+        /// 淇敼鏃堕棿
+        /// </summary>
+        public DateTime UPDATE_TIME
+        {
+            set { _update_time = value; }
+            get { return _update_time; }
+        }
+        /// <summary>
+        /// 淇敼鑰�
+        /// </summary>
+        public string UPDATE_USER
+        {
+            set { _update_user = value; }
+            get { return _update_user; }
+        }
+        /// <summary>
+        /// SN
+        /// </summary>
+        public string SN
+        {
+            set { _sn = value; }
+            get { return _sn; }
+        }
+        /// <summary>
+        /// InnerSN
+        /// </summary>
+        public string InnerSN
+        {
+            set { _inner_sn = value; }
+            get { return _inner_sn; }
+        }
+        /// <summary>
+        /// OuterSN
+        /// </summary>
+        public string OuterSN
+        {
+            set { _outer_sn = value; }
+            get { return _outer_sn; }
+        }
+        /// <summary>
+        /// VechicleSN
+        /// </summary>
+        public string VechicleSN
+        {
+            set { _vechicle_sn = value; }
+            get { return _vechicle_sn; }
+        }
+        /// <summary>
+        /// Status
+        /// </summary>
+        public string Status
+        {
+            set { _status = value; }
+            get { return _status; }
+        }
+        /// <summary>
+        /// Type
+        /// </summary>
+        public string Type
+        {
+            set { _type = value; }
+            get { return _type; }
+        }
+
+        /// <summary>
+        /// CurrOper
+        /// </summary>
+        public string CurrOper
+        {
+            set { _curroper = value; }
+            get { return _curroper; }
+        }
+        /// <summary>
+        /// FromOper
+        /// </summary>
+        public string FromOper
+        {
+            set { _fromoper = value; }
+            get { return _fromoper; }
+        }
+        /// <summary>
+        /// Scanner
+        /// </summary>
+        public string Scanner
+        {
+            set { _scanner = value; }
+            get { return _scanner; }
+        }
+
+        /// <summary>
+        /// Order_ID
+        /// </summary>
+        public Int32 SeqNo
+        {
+            set { _seq_no = value; }
+            get { return _seq_no; }
+        }
+
+        /// <summary>
+        /// Order_ID
+        /// </summary>
+        public Int32 RetestTimes
+        {
+            set { _retesttimes = value; }
+            get { return _retesttimes; }
+        }
+
+        /// <summary>
+        /// Remark
+        /// </summary>
+        public string Remark
+        {
+            set { _remark = value; }
+            get { return _remark; }
+        }
+
+        /// <summary>
+        /// DebugMsg
+        /// </summary>
+        public string DebugMsg
+        {
+            set { _DebugMsg = value; }
+            get { return _DebugMsg; }
+        }
+        /// <summary>
+        /// TraceMsg
+        /// </summary>
+        public string TraceMsg
+        {
+            set { _TraceMsg = value; }
+            get { return _TraceMsg; }
+        }
+        /// <summary>
+        /// ErrorMsg
+        /// </summary>
+        public string ErrorMsg
+        {
+            set { _ErrorMsg = value; }
+            get { return _ErrorMsg; }
+        }
+
+        #region 铏氭嫙灞炴��
+        [SugarColumn(IsIgnore = true)]
+        public string DisplayValue { get; set; }
+        #endregion
+
+        #endregion
+    }
+
+    /// <summary>
+    /// WIP_SNHis瀹炰綋闆�
+    /// </summary>
+    [Serializable]
+    public class WIP_SNHisS : CollectionBase
+    {
+        #region 鏋勯�犲嚱鏁�
+        /// <summary>
+        /// WIP_SNHis瀹炰綋闆�
+        /// </summary>
+        public WIP_SNHisS() { }
+        #endregion
+
+        #region 灞炴�ф柟娉�
+        /// <summary>
+        /// WIP_SNHis闆嗗悎 澧炲姞鏂规硶
+        /// </summary>
+        public void Add(WIP_SNHis entity)
+        {
+            this.List.Add(entity);
+        }
+        /// <summary>
+        /// WIP_SNHis闆嗗悎 绱㈠紩
+        /// </summary>
+        public WIP_SNHis this[int index]
+        {
+            get { return (WIP_SNHis)this.List[index]; }
+            set { this.List[index] = value; }
+        }
+        #endregion
+    }
+}
diff --git a/Tiger.Model.Net/Entitys/Automate/WIP_SNResult.cs b/Tiger.Model.Net/Entitys/Automate/WIP_SNResult.cs
new file mode 100644
index 0000000..ffcc433
--- /dev/null
+++ b/Tiger.Model.Net/Entitys/Automate/WIP_SNResult.cs
@@ -0,0 +1,204 @@
+锘�/******************************************
+* 妯″潡鍚嶇О锛氬疄浣� WIP_SNResult
+* 褰撳墠鐗堟湰锛�1.0
+* 寮�鍙戜汉鍛橈細Ben
+* 鐢熸垚鏃堕棿锛�2021/12/14
+* 鐗堟湰鍘嗗彶锛氭浠g爜鐢� VB/C#.Net瀹炰綋浠g爜鐢熸垚宸ュ叿(EntitysCodeGenerate 4.8) 鑷姩鐢熸垚銆�
+* 
+******************************************/
+using System;
+using System.Collections;
+using System.Collections.Specialized;
+using System.ComponentModel;
+using SqlSugar;
+
+namespace Tiger.Model
+{
+	/// <summary>
+	/// 瀹炰綋 WIP_SNResult
+	/// </summary>
+	[Description("Primary:ID")]
+    [Serializable]
+[SugarTable("WIP_SNResult")]
+	public class WIP_SNResult
+	{
+        #region 鏋勯�犲嚱鏁�
+        /// <summary>
+        /// 瀹炰綋 WIP_SNResult
+        /// </summary>
+        public WIP_SNResult(){}
+        #endregion
+
+        #region 绉佹湁鍙橀噺
+        private string _id = null;
+        private string _sn_id = null;
+        private DateTime _create_time = DateTime.Now;
+        private string _create_user = null;
+        private DateTime _update_time = DateTime.Now;
+        private string _update_user = null;
+        private string _sn = null;
+        private string _status = null;
+        private string _curroper = null;
+        private string _seqno = null;
+        private int _RetestTimes = -1;
+        private string _remark = null;
+        private string _Station = null;
+        private string _InnerSN = null;
+        private string _OuterSN = null;
+        #endregion
+
+        #region 鍏叡灞炴��
+        /// <summary>
+        /// 涓婚敭 ID
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true)]
+        public string ID
+        {
+            set{ _id=value;}
+            get{return _id;}
+        }
+        /// <summary>
+        /// CREATE_TIME
+        /// </summary>
+        public DateTime CREATE_TIME
+        {
+            set{ _create_time=value;}
+            get{return _create_time;}
+        }
+        /// <summary>
+        /// CREATE_USER
+        /// </summary>
+        public string CREATE_USER
+        {
+            set{ _create_user=value;}
+            get{return _create_user;}
+        }
+        /// <summary>
+        /// UPDATE_TIME
+        /// </summary>
+        public DateTime UPDATE_TIME
+        {
+            set{ _update_time=value;}
+            get{return _update_time;}
+        }
+        /// <summary>
+        /// UPDATE_USER
+        /// </summary>
+        public string UPDATE_USER
+        {
+            set{ _update_user=value;}
+            get{return _update_user;}
+        }
+        /// <summary>
+        /// SN
+        /// </summary>
+        public string SN
+        {
+            set{ _sn=value;}
+            get{return _sn;}
+        }
+        /// <summary>
+        /// Status
+        /// </summary>
+        public string Status
+        {
+            set{ _status=value;}
+            get{return _status;}
+        }
+        /// <summary>
+        /// CurrOper
+        /// </summary>
+        public string CurrOper
+        {
+            set{ _curroper=value;}
+            get{return _curroper;}
+        }
+        /// <summary>
+        /// SeqNo
+        /// </summary>
+        public string SeqNo
+        {
+            set{ _seqno=value;}
+            get{return _seqno;}
+        }
+        /// <summary>
+        /// Remark
+        /// </summary>
+        public string Remark
+        {
+            set{ _remark=value;}
+            get{return _remark;}
+        }
+        /// <summary>
+        /// SN_ID
+        /// </summary>
+        public string SN_ID
+        {
+            set { _sn_id = value; }
+            get { return _sn_id; }
+        }
+
+        /// <summary>
+        /// Station
+        /// </summary>
+        public string Station
+        {
+            set { _Station = value; }
+            get { return _Station; }
+        }
+
+        /// <summary>
+        /// RetestTimes
+        /// </summary>
+        public int RetestTimes
+        {
+            set { _RetestTimes = value; }
+            get { return _RetestTimes; }
+        }
+
+        public string InnerSN
+        {
+            set { _InnerSN = value; }
+            get { return _InnerSN; }
+        }
+
+        public string OuterSN
+        {
+            set { _OuterSN = value; }
+            get { return _OuterSN; }
+        }
+        #endregion
+    }
+
+    /// <summary>
+    /// WIP_SNResult瀹炰綋闆�
+    /// </summary>
+    [Serializable]
+    public class WIP_SNResultS : CollectionBase
+    {
+        #region 鏋勯�犲嚱鏁�
+        /// <summary>
+        /// WIP_SNResult瀹炰綋闆�
+        /// </summary>
+        public WIP_SNResultS(){}
+        #endregion
+
+        #region 灞炴�ф柟娉�
+        /// <summary>
+        /// WIP_SNResult闆嗗悎 澧炲姞鏂规硶
+        /// </summary>
+        public void Add(WIP_SNResult entity)
+        {
+            this.List.Add(entity);
+        }
+        /// <summary>
+        /// WIP_SNResult闆嗗悎 绱㈠紩
+        /// </summary>
+        public WIP_SNResult this[int index]
+        {
+            get { return (WIP_SNResult)this.List[index]; }
+            set { this.List[index] = value; }
+        }
+        #endregion
+    }
+}
diff --git a/Tiger.Model.Net/Entitys/WMS/MengQi/Customer.cs b/Tiger.Model.Net/Entitys/WMS/MengQi/Customer.cs
new file mode 100644
index 0000000..405d109
--- /dev/null
+++ b/Tiger.Model.Net/Entitys/WMS/MengQi/Customer.cs
@@ -0,0 +1,124 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tiger.Model
+{
+
+    [Serializable]
+    [Description("Primary:")]
+    [SugarTable("Customer")]
+    public class Customer
+    {
+        private string _id = null;
+        private string _customercode = null;
+        private string _customername = null;
+        private string _Prefix = null;
+        private int _SnLength = 0;
+        private string _Separator = null;
+        private int _SeparatorNum = 0;
+        private string _remark = null;
+
+        [SugarColumn(IsPrimaryKey = true)]
+        public string id
+        {
+            get
+            {
+                return _id;
+            }
+            set
+            {
+                _id = value;
+            }
+        }
+
+        public string CustomerCode
+        {
+            get
+            {
+                return _customercode;
+            }
+            set
+            {
+                _customercode = value;
+            }
+        }
+
+        public string CustomerName
+        {
+            get
+            {
+                return _customername;
+            }
+            set
+            {
+                _customername = value;
+            }
+        }
+
+        public string Prefix
+        {
+            get
+            {
+                return _Prefix;
+            }
+            set
+            {
+                _Prefix = value;
+            }
+        }
+
+
+        public int SnLength
+        {
+            get
+            {
+                return _SnLength;
+            }
+            set
+            {
+                _SnLength = value;
+            }
+        }
+
+        public string Separator
+        {
+            get
+            {
+                return _Separator;
+            }
+            set
+            {
+                _Separator = value;
+            }
+        }
+
+        public int SeparatorNum
+        {
+            get
+            {
+                return _SeparatorNum;
+            }
+            set
+            {
+                _SeparatorNum = value;
+            }
+        }
+
+        public string Remark
+        {
+            get
+            {
+                return _remark;
+            }
+            set
+            {
+                _remark = value;
+            }
+        }
+    }
+}
diff --git a/Tiger.Model.Net/Entitys/WMS/MengQi/ModelInfo.cs b/Tiger.Model.Net/Entitys/WMS/MengQi/ModelInfo.cs
new file mode 100644
index 0000000..b339dae
--- /dev/null
+++ b/Tiger.Model.Net/Entitys/WMS/MengQi/ModelInfo.cs
@@ -0,0 +1,88 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tiger.Model
+{
+
+    [Serializable]
+    [Description("Primary:")]
+    [SugarTable("ModelInfo")]
+    public class ModelInfo
+    {
+        private string _id = null;
+
+        private string _model = null;
+
+        private string _modelname = null;
+
+        private string _prefix = null;
+
+        private int _snlength = 0;
+
+        [SugarColumn(IsPrimaryKey = true)]
+        public string id
+        {
+            get
+            {
+                return _id;
+            }
+            set
+            {
+                _id = value;
+            }
+        }
+
+        public string Model
+        {
+            get
+            {
+                return _model;
+            }
+            set
+            {
+                _model = value;
+            }
+        }
+
+        public string ModelName
+        {
+            get
+            {
+                return _modelname;
+            }
+            set
+            {
+                _modelname = value;
+            }
+        }
+
+        public string Prefix
+        {
+            get
+            {
+                return _prefix;
+            }
+            set
+            {
+                _prefix = value;
+            }
+        }
+
+        public int SnLength
+        {
+            get
+            {
+                return _snlength;
+            }
+            set
+            {
+                _snlength = value;
+            }
+        }
+    }
+}
diff --git a/Tiger.Model.Net/Entitys/WMS/MengQi/SNData.cs b/Tiger.Model.Net/Entitys/WMS/MengQi/SNData.cs
new file mode 100644
index 0000000..edfb6c1
--- /dev/null
+++ b/Tiger.Model.Net/Entitys/WMS/MengQi/SNData.cs
@@ -0,0 +1,248 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tiger.Model
+{
+
+    [Serializable]
+    [Description("Primary:")]
+    [SugarTable("SNData")]
+    public class SNData
+    {
+        private string _id = null;
+
+        private string _sn = null;
+
+        private string _status = null;
+
+        private string _curroper = null;
+
+        private string _fromoper = null;
+
+        private string _scanner = null;
+
+        private int _order_id = 0;
+
+        private string _vechicle_id = null;
+
+        private int _retesttimes = -1;
+
+        private string _type = null;
+
+        private DateTime _create_time = DateTime.Now;
+
+        private string _create_user = null;
+
+        private DateTime _update_time = DateTime.MinValue;
+
+        private string _update_user = null;
+        private string _customercode = null;
+
+        [SugarColumn(IsPrimaryKey = true)]
+        public string ID
+        {
+            get
+            {
+                return _id;
+            }
+            set
+            {
+                _id = value;
+            }
+        }
+
+        public string SN
+        {
+            get
+            {
+                return _sn;
+            }
+            set
+            {
+                _sn = value;
+            }
+        }
+
+        public string Status
+        {
+            get
+            {
+                return _status;
+            }
+            set
+            {
+                _status = value;
+            }
+        }
+
+        public string CurrOper
+        {
+            get
+            {
+                return _curroper;
+            }
+            set
+            {
+                _curroper = value;
+            }
+        }
+
+        public string FromOper
+        {
+            get
+            {
+                return _fromoper;
+            }
+            set
+            {
+                _fromoper = value;
+            }
+        }
+
+        public string Scanner
+        {
+            get
+            {
+                return _scanner;
+            }
+            set
+            {
+                _scanner = value;
+            }
+        }
+
+        public int Order_ID
+        {
+            get
+            {
+                return _order_id;
+            }
+            set
+            {
+                _order_id = value;
+            }
+        }
+
+        public string Type
+        {
+            get
+            {
+                return _type;
+            }
+            set
+            {
+                _type = value;
+            }
+        }
+
+        public int RetestTimes
+        {
+            get
+            {
+                return _retesttimes;
+            }
+            set
+            {
+                _retesttimes = value;
+            }
+        }
+
+        public string Vechicle_ID
+        {
+            get
+            {
+                return _vechicle_id;
+            }
+            set
+            {
+                _vechicle_id = value;
+            }
+        }
+
+        public DateTime CREATE_TIME
+        {
+            get
+            {
+                return _create_time;
+            }
+            set
+            {
+                _create_time = value;
+            }
+        }
+
+        public string CREATE_USER
+        {
+            get
+            {
+                return _create_user;
+            }
+            set
+            {
+                _create_user = value;
+            }
+        }
+
+        public DateTime UPDATE_TIME
+        {
+            get
+            {
+                return _update_time;
+            }
+            set
+            {
+                _update_time = value;
+            }
+        }
+
+        public string UPDATE_USER
+        {
+            get
+            {
+                return _update_user;
+            }
+            set
+            {
+                _update_user = value;
+            }
+        }
+
+        [SugarColumn(IsIgnore = true)]
+        public string DisplayValue { get; set; }
+        private string _ItemCode = null;
+        public string ItemCode
+        {
+            get
+            {
+                return _ItemCode;
+            }
+            set
+            {
+                _ItemCode = value;
+            }
+        }
+        public string CustomerCode
+        {
+            get
+            {
+                return _customercode;
+            }
+            set
+            {
+                _customercode = value;
+            }
+        }
+    }
+
+    public class SNData_Ext
+    {
+        public SNData Item { set; get; }
+        public Vechicle Vechicle { get; set; }
+
+    }
+}
diff --git a/Tiger.Model.Net/Entitys/WMS/MengQi/SNData_His.cs b/Tiger.Model.Net/Entitys/WMS/MengQi/SNData_His.cs
new file mode 100644
index 0000000..da510f9
--- /dev/null
+++ b/Tiger.Model.Net/Entitys/WMS/MengQi/SNData_His.cs
@@ -0,0 +1,108 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tiger.Model
+{
+
+    [Serializable]
+    [Description("Primary:")]
+    [SugarTable("SNData_His")]
+    public class SNData_His
+    {
+        private string _id = null;
+        private string _sn = null;
+
+        [SugarColumn(IsPrimaryKey = true)]
+        public string ID
+        {
+            get
+            {
+                return _id;
+            }
+            set
+            {
+                _id = value;
+            }
+        }
+
+        public string SN
+        {
+            get
+            {
+                return _sn;
+            }
+            set
+            {
+                _sn = value;
+            }
+        }
+
+        private string _OriginalSN = null;
+        public string OriginalSN
+        {
+            get
+            {
+                return _OriginalSN;
+            }
+            set
+            {
+                _OriginalSN = value;
+            }
+        }
+        private DateTime _ScanTime = DateTime.MinValue;
+        public DateTime ScanTime
+        {
+            get
+            {
+                return _ScanTime;
+            }
+            set
+            {
+                _ScanTime = value;
+            }
+        }
+        private string _CREATE_USER = null;
+        public string CREATE_USER
+        {
+            get
+            {
+                return _CREATE_USER;
+            }
+            set
+            {
+                _CREATE_USER = value;
+            }
+        }
+
+        private string _modelcode = null;
+        public string ModelCode
+        {
+            get
+            {
+                return _modelcode;
+            }
+            set
+            {
+                _modelcode = value;
+            }
+        }
+
+        private string _customercode = null;
+        public string CustomerCode
+        {
+            get
+            {
+                return _customercode;
+            }
+            set
+            {
+                _customercode = value;
+            }
+        }
+    }
+}
diff --git a/Tiger.Model.Net/Entitys/WMS/MengQi/TestData.cs b/Tiger.Model.Net/Entitys/WMS/MengQi/TestData.cs
new file mode 100644
index 0000000..5577b98
--- /dev/null
+++ b/Tiger.Model.Net/Entitys/WMS/MengQi/TestData.cs
@@ -0,0 +1,205 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tiger.Model
+{
+
+    [Serializable]
+    [Description("Primary:")]
+    [SugarTable("TestData")]
+    public class TestData
+    {
+        private string _id = null;
+        private string _sn = null;
+
+        [SugarColumn(IsPrimaryKey = true)]
+        public string id
+        {
+            get
+            {
+                return _id;
+            }
+            set
+            {
+                _id = value;
+            }
+        }
+
+        public string SN
+        {
+            get
+            {
+                return _sn;
+            }
+            set
+            {
+                _sn = value;
+            }
+        }
+
+        private string _OriginalSN = null;
+        public string OriginalSN
+        {
+            get
+            {
+                return _OriginalSN;
+            }
+            set
+            {
+                _OriginalSN = value;
+            }
+        }
+        private string _TestTime = null;
+        public string TestTime
+        {
+            get
+            {
+                return _TestTime;
+            }
+            set
+            {
+                _TestTime = value;
+            }
+        }
+        private string _CREATE_USER = null;
+        public string CREATE_USER
+        {
+            get
+            {
+                return _CREATE_USER;
+            }
+            set
+            {
+                _CREATE_USER = value;
+            }
+        }
+
+        private string _itemlcode = null;
+        public string ItemCode
+        {
+            get
+            {
+                return _itemlcode;
+            }
+            set
+            {
+                _itemlcode = value;
+            }
+        }
+
+        private string _result = null;
+        public string Result
+        {
+            get
+            {
+                return _result;
+            }
+            set
+            {
+                _result = value;
+            }
+        }
+
+        private string _lv = null;
+        public string LV
+        {
+            get
+            {
+                return _lv;
+            }
+            set
+            {
+                _lv = value;
+            }
+        }
+        private string _re = null;
+        public string Re
+        {
+            get
+            {
+                return _re;
+            }
+            set
+            {
+                _re = value;
+            }
+        }
+        private string _hp = null;
+        public string Hp
+        {
+            get
+            {
+                return _hp;
+            }
+            set
+            {
+                _hp = value;
+            }
+        }
+        private string _air = null;
+        public string Air
+        {
+            get
+            {
+                return _air;
+            }
+            set
+            {
+                _air = value;
+            }
+        }
+        private string _lvdata = null;
+        public string LvData
+        {
+            get
+            {
+                return _lvdata;
+            }
+            set
+            {
+                _lvdata = value;
+            }
+        }
+        private string _redata = null;
+        public string ReData
+        {
+            get
+            {
+                return _redata;
+            }
+            set
+            {
+                _redata = value;
+            }
+        }
+        private string _hpdata = null;
+        public string HpData
+        {
+            get
+            {
+                return _hpdata;
+            }
+            set
+            {
+                _hpdata = value;
+            }
+        }
+        private string _airdata = null;
+        public string AirData
+        {
+            get
+            {
+                return _airdata;
+            }
+            set
+            {
+                _airdata = value;
+            }
+        }
+    }
+}
diff --git a/Tiger.Model.Net/Entitys/WMS/MengQi/User.cs b/Tiger.Model.Net/Entitys/WMS/MengQi/User.cs
new file mode 100644
index 0000000..4fba117
--- /dev/null
+++ b/Tiger.Model.Net/Entitys/WMS/MengQi/User.cs
@@ -0,0 +1,88 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tiger.Model
+{
+
+    [Serializable]
+    [Description("Primary:")]
+    [SugarTable("User")]
+    public class User
+    {
+        private string _id = null;
+
+        private string _usercode = null;
+
+        private string _username = null;
+
+        private string _rolecode = null;
+
+        private string _password = null;
+
+        [SugarColumn(IsPrimaryKey = true)]
+        public string id
+        {
+            get
+            {
+                return _id;
+            }
+            set
+            {
+                _id = value;
+            }
+        }
+
+        public string UserCode
+        {
+            get
+            {
+                return _usercode;
+            }
+            set
+            {
+                _usercode = value;
+            }
+        }
+
+        public string UserName
+        {
+            get
+            {
+                return _username;
+            }
+            set
+            {
+                _username = value;
+            }
+        }
+
+        public string RoleCode
+        {
+            get
+            {
+                return _rolecode;
+            }
+            set
+            {
+                _rolecode = value;
+            }
+        }
+
+        public string Password
+        {
+            get
+            {
+                return _password;
+            }
+            set
+            {
+                _password = value;
+            }
+        }
+    }
+}
diff --git a/Tiger.Model.Net/Tiger.Model.Net.csproj b/Tiger.Model.Net/Tiger.Model.Net.csproj
index c33801b..b33fa89 100644
--- a/Tiger.Model.Net/Tiger.Model.Net.csproj
+++ b/Tiger.Model.Net/Tiger.Model.Net.csproj
@@ -70,6 +70,11 @@
   <ItemGroup>
     <Compile Include="Base\DbEntityBase.cs" />
     <Compile Include="DTO\MESDTO.cs" />
+    <Compile Include="Entitys\Automate\SNInfo.cs" />
+    <Compile Include="Entitys\Automate\Vechicle.cs" />
+    <Compile Include="Entitys\Automate\WIP_SN.cs" />
+    <Compile Include="Entitys\Automate\WIP_SNHis.cs" />
+    <Compile Include="Entitys\Automate\WIP_SNResult.cs" />
     <Compile Include="Entitys\DigitalTwin\Sharetronic\GetOperateChuteChangeInfoEntity.cs" />
     <Compile Include="Entitys\DigitalTwin\Sharetronic\OperateTowerLightEntity.cs" />
     <Compile Include="Entitys\DigitalTwin\Sharetronic\DownSingleEntity.cs" />
@@ -102,6 +107,12 @@
     <Compile Include="Entitys\WMS\Api\ProdReqInput.cs" />
     <Compile Include="Entitys\WMS\Api\ReprintEntitys.cs" />
     <Compile Include="Entitys\WMS\BIZ_ERP_CUSTOMS.cs" />
+    <Compile Include="Entitys\WMS\MengQi\SNData_His.cs" />
+    <Compile Include="Entitys\WMS\MengQi\SNData.cs" />
+    <Compile Include="Entitys\WMS\MengQi\ModelInfo.cs" />
+    <Compile Include="Entitys\WMS\MengQi\Customer.cs" />
+    <Compile Include="Entitys\WMS\MengQi\TestData.cs" />
+    <Compile Include="Entitys\WMS\MengQi\User.cs" />
     <Compile Include="Entitys\WMS\V_MONTH_IN_SUM.cs" />
     <Compile Include="Entitys\WMS\V_WH_ITEM_SUM.cs" />
     <Compile Include="Entitys\WMS\V_WMS_ITEM_Y.cs" />
@@ -436,7 +447,6 @@
     <None Include="packages.config" />
   </ItemGroup>
   <ItemGroup>
-    <Folder Include="Entitys\Automate\" />
     <Folder Include="Entitys\EMS\" />
     <Folder Include="Entitys\QMS\" />
   </ItemGroup>

--
Gitblit v1.9.3