From c63b40452aeaf1b46ef716da9f5dc9e8c2a843a6 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期三, 13 七月 2022 20:30:33 +0800
Subject: [PATCH] 生产开报工提交

---
 VueWebApi/DLL/DAL/ErpSyncMesDAL.cs                                   |  161 ++++++
 VueWebApi/obj/Release/VueWebApi.pdb                                  |    0 
 VueWebApi/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache   |    0 
 VueWebApi/obj/Debug/VueWebApi.csproj.CoreCompileInputs.cache         |    2 
 VueWebApi/DLL/DAL/BasicSettingDAL.cs                                 |   12 
 .vs/VueWebApi/v16/.suo                                               |    0 
 VueWebApi/DLL/DAL/ProductionManagementDAL.cs                         |  193 ++++++--
 VueWebApi/obj/Release/Package/PackageTmp/Grid/webapp-ws-tutorial.htm |  113 ----
 VueWebApi/VueWebApi.csproj                                           |    4 
 VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb           |    0 
 VueWebApi/VueWebApi.csproj.user                                      |    6 
 VueWebApi/grf/外协收料标签.grf                                             |  310 ++++++++++++
 VueWebApi/Controllers/ProductionManagementController.cs              |   38 +
 VueWebApi/Logs/2022-07-13.TXT                                        |   28 +
 VueWebApi/bin/VueWebApi.pdb                                          |    0 
 VueWebApi/Models/ScanStartReportData.cs                              |    1 
 VueWebApi/Logs/2022-07-09.TXT                                        |  146 ++++++
 VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache       |    2 
 VueWebApi/Controllers/ErpSyncMesController.cs                        |   77 +++
 VueWebApi/DLL/DAL/ProductModelDAL.cs                                 |    6 
 VueWebApi/DLL/BLL/BasicSettingBLL.cs                                 |    4 
 VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user       |    6 
 VueWebApi/DLL/BLL/ProductionManagementBLL.cs                         |   14 
 VueWebApi/DLL/BLL/ErpSyncMesBLL.cs                                   |   40 +
 VueWebApi/bin/VueWebApi.xml                                          |   42 +
 VueWebApi/Tools/ScanStartReport.cs                                   |   97 +--
 VueWebApi/Logs/2022-07-11.TXT                                        |   59 ++
 VueWebApi/obj/Debug/VueWebApi.csproj.AssemblyReference.cache         |    0 
 VueWebApi/obj/Debug/VueWebApi.csproj.FileListAbsolute.txt            |    1 
 VueWebApi/obj/Debug/VueWebApi.pdb                                    |    0 
 VueWebApi/Controllers/BasicSettingController.cs                      |    3 
 VueWebApi/Tools/DapperHelper.cs                                      |   35 +
 32 files changed, 1,167 insertions(+), 233 deletions(-)

diff --git a/.vs/VueWebApi/v16/.suo b/.vs/VueWebApi/v16/.suo
index c114102..f6e33f1 100644
--- a/.vs/VueWebApi/v16/.suo
+++ b/.vs/VueWebApi/v16/.suo
Binary files differ
diff --git a/VueWebApi/Controllers/BasicSettingController.cs b/VueWebApi/Controllers/BasicSettingController.cs
index b42caee..261cc02 100644
--- a/VueWebApi/Controllers/BasicSettingController.cs
+++ b/VueWebApi/Controllers/BasicSettingController.cs
@@ -171,12 +171,13 @@
             string Password = obj["Password"].ToString(); //瀵嗙爜
             string Enable = obj["Enable"].ToString(); //鍦ㄨ亴鐘舵��
             string StuOrg = obj["StuOrg"].ToString(); //閫夋嫨缁勭粐缂栫爜
+            string groupcode= obj["groupcode"].ToString(); //鎵�灞炵彮缁勭紪鐮�
             string wagetype = obj["wagetype"].ToString(); //宸ヨ祫绫诲瀷
             string Mobile = obj["Mobile"].ToString(); //鑱旂郴鏂瑰紡
             string Email = obj["Email"].ToString(); //鐢靛瓙閭
             string Operator = obj["Operator"].ToString(); //鎿嶄綔浜哄憳
             string OperType = obj["OperType"].ToString();  //鎿嶄綔绫诲瀷
-            mes = BasicSettingBLL.AddUpdateUser(UserId, UserCode, UserName, Password, Enable, StuOrg, wagetype, Mobile, Email, Operator, OperType);
+            mes = BasicSettingBLL.AddUpdateUser(UserId, UserCode, UserName, Password, Enable, StuOrg, groupcode, wagetype, Mobile, Email, Operator, OperType);
             return TJson.toJson(mes);
         }
         #endregion
diff --git a/VueWebApi/Controllers/ErpSyncMesController.cs b/VueWebApi/Controllers/ErpSyncMesController.cs
new file mode 100644
index 0000000..cd9b80b
--- /dev/null
+++ b/VueWebApi/Controllers/ErpSyncMesController.cs
@@ -0,0 +1,77 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Web;
+using System.Web.Http;
+using VueWebApi.DLL.BLL;
+using VueWebApi.Tools;
+
+namespace VueWebApi.Controllers
+{
+    [RoutePrefix(prefix: "api/ErpSyncMes")]
+    [ControllerGroup("ERP鍩虹鏁版嵁鍚屾", "鍦ㄧ嚎鎺ュ彛")]
+    public class ErpSyncMesController : ApiController
+    {
+        //瀹氫箟鍏ㄥ眬淇℃伅杩斿洖鍙橀噺
+        ToMessage mes = new ToMessage();
+        RedisHelper redis = new RedisHelper();
+
+        #region[鍒堕�犳ā鍨嬶細瀛樿揣鍒嗙被鍚屾]
+        /// <summary>
+        /// 鍒堕�犳ā鍨嬶細瀛樿揣鍒嗙被鍚屾
+        /// </summary>
+        /// <returns></returns>
+        [Route(template: "SeaveSearchInventoryClass")]
+        [HttpPost]
+        public HttpResponseMessage SeaveSearchInventoryClass()
+        {
+            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //鎿嶄綔浜哄憳
+            mes = ErpSyncMesBLL.SeaveSearchInventoryClass(username);
+            return TJson.toJson(mes);
+        }
+        #endregion
+
+        #region[鍒堕�犳ā鍨嬶細瀛樿揣妗f鍚屾]
+        /// <summary>
+        /// 鍒堕�犳ā鍨嬶細瀛樿揣妗f鍚屾
+        /// </summary>
+        /// <returns></returns>
+        [Route(template: "SeaveSearchInventory")]
+        [HttpPost]
+        public HttpResponseMessage SeaveSearchInventory()
+        {
+            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //鎿嶄綔浜哄憳
+            mes = ErpSyncMesBLL.SeaveSearchInventory(username);
+            return TJson.toJson(mes);
+        }
+        #endregion
+
+        #region[鐗╂枡绠$悊锛氫粨搴撳簱浣嶅悓姝
+        /// <summary>
+        /// 鐗╂枡绠$悊锛氫粨搴撳簱浣嶅悓姝�
+        /// </summary>
+        /// <returns></returns>
+        [Route(template: "SeaveSearchWhareHouseLocation")]
+        [HttpPost]
+        public HttpResponseMessage SeaveSearchWhareHouseLocation()
+        {
+            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //鎿嶄綔浜哄憳
+            mes = ErpSyncMesBLL.SeaveSearchWhareHouseLocation(username);
+            return TJson.toJson(mes);
+        }
+        #endregion
+
+        #region[鍩虹璁剧疆:寰�鏉ュ崟浣嶅悓姝
+        [Route(template: "SeaveSearchPartner")]
+        [HttpPost]
+        public HttpResponseMessage SeaveSearchPartner()
+        {
+            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //鎿嶄綔浜哄憳
+            mes = ErpSyncMesBLL.SeaveSearchPartner(username);
+            return TJson.toJson(mes);
+        }
+        #endregion
+    }
+}
diff --git a/VueWebApi/Controllers/ProductionManagementController.cs b/VueWebApi/Controllers/ProductionManagementController.cs
index 41cd39e..9b9be5e 100644
--- a/VueWebApi/Controllers/ProductionManagementController.cs
+++ b/VueWebApi/Controllers/ProductionManagementController.cs
@@ -53,8 +53,8 @@
             }
             if (createdate != "" && createdate != null)
             {
-                createstartdate = paydate.Split('~')[0].ToString();
-                createenddate = paydate.Split('~')[1].ToString();
+                createstartdate = createdate.Split('~')[0].ToString();
+                createenddate = createdate.Split('~')[1].ToString();
             }
             int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
             int endNum = rows * page;   //缁撴潫璁板綍 rowNum
@@ -307,7 +307,7 @@
         /// <returns></returns>
         [Route(template: "MesOrderStepStart")]
         [HttpGet]
-        public HttpResponseMessage MesOrderStepStart(string OperType, string SelectType, string orderstepqrcode)
+        public HttpResponseMessage MesOrderStepStart(string OperType, string orderstepqrcode, string SelectType = null)
         {
             mes = ProductionManagementBLL.MesOrderStepStart(OperType, SelectType, orderstepqrcode);
             return TJson.toJson(mes);
@@ -345,7 +345,7 @@
 
         #region[鐢熶骇寮�鎶ュ伐锛氭牴鎹敓浜х彮缁勬煡鎵句汉鍛樺垪琛╙
         /// <summary>
-        /// 鐢熶骇寮�鎶ュ伐锛氬紑宸ユ椂鑾峰彇璁惧涓嬫媺鍒楄〃
+        /// 鐢熶骇寮�鎶ュ伐锛氭牴鎹敓浜х彮缁勬煡鎵句汉鍛樺垪琛�
         /// </summary>
         /// <param name="usergroupcode">鐝粍缂栫爜</param>
         /// <returns></returns>
@@ -358,6 +358,36 @@
         }
         #endregion
 
+        #region[鐢熶骇寮�鎶ュ伐锛氫汉鍛樹笅鎷夊垪琛╙
+        /// <summary>
+        /// 鐢熶骇寮�鎶ュ伐锛氫汉鍛樹笅鎷夊垪琛�
+        /// </summary>
+        /// <param name="usercode">浜哄憳缂栫爜</param>
+        /// <returns></returns>
+        [Route(template: "MesOrderSelectUser")]
+        [HttpGet]
+        public HttpResponseMessage MesOrderSelectUser(string usercode = null)
+        {
+            mes = ProductionManagementBLL.MesOrderSelectUser(usercode);
+            return TJson.toJson(mes);
+        }
+        #endregion
+
+        #region[鐢熶骇寮�鎶ュ伐锛氬彂鏂�/鏀舵枡鏃惰幏鍙栧鍗忎笅鎷夊垪琛╙
+        /// <summary>
+        /// 鐢熶骇寮�鎶ュ伐锛氬彂鏂�/鏀舵枡鏃惰幏鍙栧鍗忎笅鎷夊垪琛�
+        /// </summary>
+        /// <param name="orderstepqrcode">鎵弿浜岀淮鐮佷俊鎭�</param>
+        /// <returns></returns>
+        [Route(template: "MesOrderStepSelectWX")]
+        [HttpGet]
+        public HttpResponseMessage MesOrderStepSelectWX(string orderstepqrcode)
+        {
+            mes = ProductionManagementBLL.MesOrderStepSelectWX(orderstepqrcode);
+            return TJson.toJson(mes);
+        }
+        #endregion
+
         #region[鐢熶骇鎶ュ伐锛氭姤宸�/澶栧崗鏀舵枡 鑾峰彇涓嶈壇鍘熷洜涓嬫媺鍒楄〃]
         /// <summary>
         /// 鐢熶骇鎶ュ伐锛氭姤宸�/澶栧崗鏀舵枡 鑾峰彇涓嶈壇鍘熷洜涓嬫媺鍒楄〃
diff --git a/VueWebApi/DLL/BLL/BasicSettingBLL.cs b/VueWebApi/DLL/BLL/BasicSettingBLL.cs
index 5652ed1..a9329bf 100644
--- a/VueWebApi/DLL/BLL/BasicSettingBLL.cs
+++ b/VueWebApi/DLL/BLL/BasicSettingBLL.cs
@@ -63,9 +63,9 @@
         #endregion
 
         #region[鐢ㄦ埛娓呭崟鏂板缂栬緫]
-        public static ToMessage AddUpdateUser(string UserId, string UserCode, string UserName, string Password, string Enable, string LoginOrg, string wagetype, string Mobile, string Email, string Operator, string OperType)
+        public static ToMessage AddUpdateUser(string UserId, string UserCode, string UserName, string Password, string Enable, string LoginOrg,string groupcode, string wagetype, string Mobile, string Email, string Operator, string OperType)
         {
-            return BasicSettingDAL.AddUpdateUser(UserId, UserCode, UserName, Password, Enable, LoginOrg, wagetype, Mobile, Email, Operator, OperType);
+            return BasicSettingDAL.AddUpdateUser(UserId, UserCode, UserName, Password, Enable, LoginOrg, groupcode, wagetype, Mobile, Email, Operator, OperType);
         }
         #endregion
 
diff --git a/VueWebApi/DLL/BLL/ErpSyncMesBLL.cs b/VueWebApi/DLL/BLL/ErpSyncMesBLL.cs
new file mode 100644
index 0000000..a9d05f8
--- /dev/null
+++ b/VueWebApi/DLL/BLL/ErpSyncMesBLL.cs
@@ -0,0 +1,40 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using VueWebApi.DLL.DAL;
+using VueWebApi.Tools;
+
+namespace VueWebApi.DLL.BLL
+{
+    public class ErpSyncMesBLL
+    {
+        #region[鍒堕�犳ā鍨嬶細瀛樿揣鍒嗙被鍚屾]
+        public static ToMessage SeaveSearchInventoryClass(string username)
+        {
+            return ErpSyncMesDAL.SeaveSearchInventoryClass(username);
+        }
+        #endregion
+
+        #region[鍒堕�犳ā鍨嬶細瀛樿揣妗f鍚屾]
+        public static ToMessage SeaveSearchInventory(string username)
+        {
+            return ErpSyncMesDAL.SeaveSearchInventory(username);
+        }
+        #endregion
+
+        #region[鐗╂枡绠$悊锛氫粨搴撳簱浣嶅悓姝
+        public static ToMessage SeaveSearchWhareHouseLocation(string username)
+        {
+            return ErpSyncMesDAL.SeaveSearchWhareHouseLocation(username);
+        }
+        #endregion
+
+        #region[鍩虹璁剧疆:寰�鏉ュ崟浣嶅悓姝
+        public static ToMessage SeaveSearchPartner(string username)
+        {
+            return ErpSyncMesDAL.SeaveSearchPartner(username);
+        }
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/VueWebApi/DLL/BLL/ProductionManagementBLL.cs b/VueWebApi/DLL/BLL/ProductionManagementBLL.cs
index 7e0d1e1..bc4ba2d 100644
--- a/VueWebApi/DLL/BLL/ProductionManagementBLL.cs
+++ b/VueWebApi/DLL/BLL/ProductionManagementBLL.cs
@@ -134,6 +134,20 @@
         }
         #endregion
 
+        #region[鐢熶骇寮�鎶ュ伐锛氫汉鍛樹笅鎷夊垪琛╙
+        public static ToMessage MesOrderSelectUser(string usercode)
+        {
+            return ProductionManagementDAL.MesOrderSelectUser(usercode);
+        }
+        #endregion
+
+        #region[鐢熶骇寮�鎶ュ伐锛氬彂鏂�/鏀舵枡鏃惰幏鍙栧鍗忎笅鎷夊垪琛╙
+        public static ToMessage MesOrderStepSelectWX(string orderstepqrcode)
+        {
+            return ProductionManagementDAL.MesOrderStepSelectWX(orderstepqrcode);
+        }
+        #endregion
+
         #region[鐢熶骇鎶ュ伐锛氭姤宸�/澶栧崗鏀舵枡 鑾峰彇涓嶈壇鍘熷洜涓嬫媺鍒楄〃]
         public static ToMessage MesOrderStepSelectCause(string orderstepqrcode)
         {
diff --git a/VueWebApi/DLL/DAL/BasicSettingDAL.cs b/VueWebApi/DLL/DAL/BasicSettingDAL.cs
index 1706b06..94c473a 100644
--- a/VueWebApi/DLL/DAL/BasicSettingDAL.cs
+++ b/VueWebApi/DLL/DAL/BasicSettingDAL.cs
@@ -332,7 +332,7 @@
             {
                 List<TreeDG> list = new List<TreeDG>();
                 sql = @"select id,parent_id,org_code,org_name,description  
-                      FROM TOrganization ";
+                      FROM TOrganization where is_delete<>'1'";
                 var dt = DapperHelper.selectdata(sql, dynamicParams);
                 for (int i = 0; i < dt.Rows.Count; i++)   //杩欓噷鏄惊鐜墍鏈�
                 {
@@ -416,15 +416,15 @@
         #endregion
 
         #region[鐢ㄦ埛娓呭崟鏂板缂栬緫]
-        public static ToMessage AddUpdateUser(string UserId, string UserCode, string UserName,string Password, string Enable, string StuOrg, string wagetype, string Mobile, string Email, string Operator, string OperType)
+        public static ToMessage AddUpdateUser(string UserId, string UserCode, string UserName,string Password, string Enable, string StuOrg,string groupcode, string wagetype, string Mobile, string Email, string Operator, string OperType)
         {
             var dynamicParams = new DynamicParameters();
             try
             {
                 if (OperType == "Add")
                 {
-                    var sql = @"insert into TUser(usercode,username,password,enable,mobile,lm_date,email,lm_user,stu_torgcode,wagetype) 
-                            values(@UserCode,@UserName,@password,@Enable,@Mobile,@CreateDate,@Email,@Operator,@StuOrg,@wagetype)";
+                    var sql = @"insert into TUser(usercode,username,password,enable,mobile,lm_date,email,lm_user,stu_torgcode,wagetype,usergroup_code) 
+                            values(@UserCode,@UserName,@password,@Enable,@Mobile,@CreateDate,@Email,@Operator,@StuOrg,@wagetype,@groupcode)";
                     dynamicParams.Add("@UserCode", UserCode);
                     dynamicParams.Add("@UserName", UserName);
                     dynamicParams.Add("@password", Password);
@@ -435,6 +435,7 @@
                     dynamicParams.Add("@Operator", Operator);
                     dynamicParams.Add("@StuOrg", StuOrg);
                     dynamicParams.Add("@wagetype", wagetype);
+                    dynamicParams.Add("@groupcode", groupcode);
                     int cont = DapperHelper.SQL(sql, dynamicParams);
                     if (cont > 0)
                     {
@@ -453,7 +454,7 @@
                 }
                 if (OperType == "Update")
                 {
-                    var sql = @"update TUser set username=@UserName,password=@password,enable=@Enable,mobile=@Mobile,lm_user=@Operator,email=@Email,stu_torgcode=@StuOrg,wagetype=@wagetype,lm_date=@CreateDate where id=@UserId";
+                    var sql = @"update TUser set username=@UserName,password=@password,enable=@Enable,mobile=@Mobile,lm_user=@Operator,email=@Email,stu_torgcode=@StuOrg,wagetype=@wagetype,usergroup_code=@groupcode,lm_date=@CreateDate where id=@UserId";
                     dynamicParams.Add("@UserId", UserId);
                     dynamicParams.Add("@UserName", UserName);
                     dynamicParams.Add("@password", Password);
@@ -464,6 +465,7 @@
                     dynamicParams.Add("@Operator", Operator);
                     dynamicParams.Add("@StuOrg", StuOrg);
                     dynamicParams.Add("@wagetype", wagetype);
+                    dynamicParams.Add("@groupcode", groupcode);
                     int cont = DapperHelper.SQL(sql, dynamicParams);
                     if (cont > 0)
                     {
diff --git a/VueWebApi/DLL/DAL/ErpSyncMesDAL.cs b/VueWebApi/DLL/DAL/ErpSyncMesDAL.cs
new file mode 100644
index 0000000..94f4db8
--- /dev/null
+++ b/VueWebApi/DLL/DAL/ErpSyncMesDAL.cs
@@ -0,0 +1,161 @@
+锘縰sing Dapper;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using VueWebApi.Tools;
+
+namespace VueWebApi.DLL.DAL
+{
+    public class ErpSyncMesDAL
+    {
+        public static ToMessage mes = new ToMessage(); //瀹氫箟鍏ㄥ眬杩斿洖淇℃伅瀵硅薄
+
+        #region[鍒堕�犳ā鍨嬶細瀛樿揣鍒嗙被鍚屾]
+        public static ToMessage SeaveSearchInventoryClass(string username)
+        {
+            var sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                //瀛樺偍杩囩▼鍚�
+                sql = @"h_p_IFCLD_ERPInventory_Class";
+                bool a = DapperHelper.IsProcedure(sql, dynamicParams);
+                if (a)
+                {
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.Message = "鍚屾瀛樿揣鍒嗙被鎴愬姛!";
+                    mes.data = null;
+                }
+                else 
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "鍚屾瀛樿揣鍒嗙被澶辫触!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[鍒堕�犳ā鍨嬶細瀛樿揣妗f鍚屾]
+        public static ToMessage SeaveSearchInventory(string username)
+        {
+            var sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                //瀛樺偍杩囩▼鍚�
+                sql = @"h_p_IFCLD_ERPInventory";
+                dynamicParams.Add("@username", username);
+                bool a = DapperHelper.IsProcedure(sql, dynamicParams);
+                if (a)
+                {
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.Message = "鍚屾瀛樿揣妗f鎴愬姛!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "鍚屾瀛樿揣妗f澶辫触!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[鐗╂枡绠$悊锛氫粨搴撳簱浣嶅悓姝
+        public static ToMessage SeaveSearchWhareHouseLocation(string username)
+        {
+            var sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                //瀛樺偍杩囩▼鍚�
+                sql = @"h_p_IFCLD_ERPWhareHousesLocation";
+                dynamicParams.Add("@username", username);
+                bool a = DapperHelper.IsProcedure(sql, dynamicParams);
+                if (a)
+                {
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.Message = "鍚屾浠撳簱搴撲綅鎴愬姛!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "鍚屾浠撳簱搴撲綅澶辫触!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[鍩虹璁剧疆:寰�鏉ュ崟浣嶅悓姝
+        public static ToMessage SeaveSearchPartner(string username)
+        {
+            var sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                //瀛樺偍杩囩▼鍚�
+                sql = @"h_p_IFCLD_ERPPartner";
+                dynamicParams.Add("@username", username);
+                bool a = DapperHelper.IsProcedure(sql, dynamicParams);
+                if (a)
+                {
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.Message = "鍚屾寰�鏉ュ崟浣嶆垚鍔�!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "鍚屾寰�鏉ュ崟浣嶅け璐�!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/VueWebApi/DLL/DAL/ProductModelDAL.cs b/VueWebApi/DLL/DAL/ProductModelDAL.cs
index 8b549dc..642940f 100644
--- a/VueWebApi/DLL/DAL/ProductModelDAL.cs
+++ b/VueWebApi/DLL/DAL/ProductModelDAL.cs
@@ -872,15 +872,15 @@
                     //鏂板宸ヨ壓璺嚎琛�
                     sql = @"insert into TFlw_Rout(code,name,description,enable,lm_user,lm_date) values(@code,@name,@description,@enable,@lm_user,@lm_date)";
                     list.Add(new { str = sql, parm = new { code = json.code, name = json.name, description = json.description, enable = json.enable, lm_user = username, lm_date = DateTime.Now.ToString() } });
-                    string is_firststep = "N"; //鏄惁棣栭亾宸ュ簭
-                    string is_laststep = "N"; //鏄惁鏈亾宸ュ簭
                     for (int i = 0; i < json.Data.Rows.Count; i++)
                     {
+                        string is_firststep = "N"; //鏄惁棣栭亾宸ュ簭
+                        string is_laststep = "N"; //鏄惁鏈亾宸ュ簭
                         if (json.Data.Rows[i]["SEQ"].ToString() == "1")  //鏄惁棣栭亾宸ュ簭
                         {
                             is_firststep = "Y";
                         }
-                        if (Convert.ToInt32(json.Data.Rows[i]["SEQ"].ToString()) == json.Data.Rows.Count) //鏄惁鏈亾宸ュ簭
+                        else if (Convert.ToInt32(json.Data.Rows[i]["SEQ"].ToString()) == json.Data.Rows.Count) //鏄惁鏈亾宸ュ簭
                         {
                             is_laststep = "Y";
                         }
diff --git a/VueWebApi/DLL/DAL/ProductionManagementDAL.cs b/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
index 5262d35..fef2858 100644
--- a/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
+++ b/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
@@ -54,12 +54,12 @@
                 if (paydatestartdate != "" && paydatestartdate != null)
                 {
                     search += "and A.paydate between @paydatestartdate and @paydateenddate ";
-                    dynamicParams.Add("@paydatestartdate", paydatestartdate);
+                    dynamicParams.Add("@paydatestartdate", paydatestartdate+" 00:00:00");
                     dynamicParams.Add("@paydateenddate", paydateenddate + " 23:59:59");
                 }
                 if (createstartdate != "" && createstartdate != null)
                 {
-                    search += "and A.createdate between @paydatestartdate and @paydateenddate ";
+                    search += "and A.createdate between @createstartdate and @createenddate ";
                     dynamicParams.Add("@createstartdate", createstartdate);
                     dynamicParams.Add("@createenddate", createenddate + " 23:59:59");
                 }
@@ -494,7 +494,7 @@
                             from TFlw_Rtdt A
                             left join TStep B on A.step_code=B.stepcode
                             left join TFlw_Rout C on A.rout_code=C.code
-                            where A.first_choke='Y' and A.rout_code=@routecode
+                            where A.rout_code=@routecode
                             and B.is_delete<>'1' and C.enable='Y' and C.is_delete<>'1'";
                     list.Add(new
                     {
@@ -554,7 +554,7 @@
                             from TFlw_Rtdt A
                             left join TStep B on A.step_code=B.stepcode
                             left join TFlw_Rout C on A.rout_code=C.code
-                            where A.first_choke='Y' and A.rout_code='R001'
+                            where  A.rout_code=@routecode
                             and B.is_delete<>'1' and C.enable='Y' and C.is_delete<>'1'";
                     list.Add(new
                     {
@@ -567,6 +567,7 @@
                             planenddate = planenddate,
                             status = "ALLO",  //娲惧彂
                             username = username,
+                            routecode= routecode,
                             CreateDate = DateTime.Now.ToString()
                         }
                     });
@@ -612,22 +613,25 @@
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 if (data.Rows.Count > 0)
                 {
-                    //鏌ヨ鐢熶骇璁㈠崟琛ㄦ暟鎹�
-                    sql = @"select *  from TKimp_Ewo where wo=@m_po";
-                    dynamicParams.Add("@m_po", m_po);
-                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
-                    decimal relse_qty = decimal.Parse(data0.Rows[0]["RELSE_QTY"].ToString());//浠ヤ笅鍗曟暟閲�
-                    if ((relse_qty - decimal.Parse(orderqty)) == 0)  //鍏ㄩ儴鎾ら攢 璁㈠崟鐘舵�佸洖鍐欐湭寮�濮�,宸蹭笅鍗曟暟閲忎负0
+                    if (m_po != "" && m_po != null)
                     {
-                        //鍥炲啓璁㈠崟琛ㄧ姸鎬佸強宸蹭笅鍗曟暟閲�
-                        sql = @"update TKimp_Ewo set status='NEW',relse_qty=0  where wo=@m_po";
-                        list.Add(new { str = sql, parm = new { m_po = m_po } });
-                    }
-                    else
-                    {
-                        //鍥炲啓璁㈠崟琛ㄧ姸鎬佸強宸蹭笅鍗曟暟閲�
-                        sql = @"update TKimp_Ewo set status='CREATING',relse_qty=relse_qty-@orderqty  where wo=@m_po";
-                        list.Add(new { str = sql, parm = new { m_po = m_po, orderqty = decimal.Parse(orderqty) } });
+                        //鏌ヨ鐢熶骇璁㈠崟琛ㄦ暟鎹�
+                        sql = @"select *  from TKimp_Ewo where wo=@m_po";
+                        dynamicParams.Add("@m_po", m_po);
+                        var data0 = DapperHelper.selectdata(sql, dynamicParams);
+                        decimal relse_qty = decimal.Parse(data0.Rows[0]["RELSE_QTY"].ToString());//浠ヤ笅鍗曟暟閲�
+                        if ((relse_qty - decimal.Parse(orderqty)) == 0)  //鍏ㄩ儴鎾ら攢 璁㈠崟鐘舵�佸洖鍐欐湭寮�濮�,宸蹭笅鍗曟暟閲忎负0
+                        {
+                            //鍥炲啓璁㈠崟琛ㄧ姸鎬佸強宸蹭笅鍗曟暟閲�
+                            sql = @"update TKimp_Ewo set status='NEW',relse_qty=0  where wo=@m_po";
+                            list.Add(new { str = sql, parm = new { m_po = m_po } });
+                        }
+                        else
+                        {
+                            //鍥炲啓璁㈠崟琛ㄧ姸鎬佸強宸蹭笅鍗曟暟閲�
+                            sql = @"update TKimp_Ewo set status='CREATING',relse_qty=relse_qty-@orderqty  where wo=@m_po";
+                            list.Add(new { str = sql, parm = new { m_po = m_po, orderqty = decimal.Parse(orderqty) } });
+                        }
                     }
                     //鍒犻櫎宸ュ崟宸ュ簭琛�
                     sql = @"delete TK_Wrk_Step  where wo_code=@wocode";
@@ -759,6 +763,11 @@
                     if (arra.Length == 1) //宸ュ崟鍙蜂簩缁寸爜
                     {
                         ordercode = arra[0]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "璇锋壂鎻忓伐搴忎簩缁寸爜!";
+                        mes.data = null;
+                        return mes;
                     }
                     if (arra.Length == 2) //宸ュ崟鍙�+宸ュ簭鍙蜂簩缁寸爜
                     {
@@ -766,12 +775,12 @@
                         stepcode = arra[1]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
                     }
 
-                    if (ordercode != "" && ordercode == null) //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂负绌�
+                    if (ordercode != "" && ordercode != null) //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂负绌�
                     {
                         search += "and A.wo_code=@ordercode ";
                         dynamicParams.Add("@ordercode", ordercode);
                     }
-                    if (ordercode != "" && ordercode != "") //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂笉涓虹┖
+                    if (ordercode != "" && stepcode != "") //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂笉涓虹┖
                     {
                         search += "and A.wo_code=@ordercode ";
                         dynamicParams.Add("@ordercode", ordercode);
@@ -779,18 +788,18 @@
                         dynamicParams.Add("@stepcode", stepcode);
                     }
                 }
-                else
-                {
-                    mes.code = "300";
-                    mes.count = 0;
-                    mes.Message = "浜岀淮鐮佷俊鎭负绌�!";
-                    mes.data = null;
-                    return mes;
-                }
+                //else
+                //{
+                //    mes.code = "300";
+                //    mes.count = 0;
+                //    mes.Message = "浜岀淮鐮佷俊鎭负绌�!";
+                //    mes.data = null;
+                //    return mes;
+                //}
                 if (stepcode != "")
                 {
                     //鏌ユ壘褰撳墠宸ュ簭灞炴��
-                    sql = @"select *  from TStep where TStep where stepcode=@stepcode";
+                    sql = @"select *  from TStep  where stepcode=@stepcode";
                     dynamicParams.Add("@stepcode", stepcode);
                     var data0 = DapperHelper.selectdata(sql, dynamicParams);
                     if (data0.Rows.Count > 0) 
@@ -859,18 +868,23 @@
                     if (arra.Length == 1) //宸ュ崟鍙蜂簩缁寸爜
                     {
                         ordercode = arra[0]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "璇锋壂鎻忓伐搴忎簩缁寸爜!";
+                        mes.data = null;
+                        return mes;
                     }
                     if (arra.Length == 2) //宸ュ崟鍙�+宸ュ簭鍙蜂簩缁寸爜
                     {
                         ordercode = arra[0]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
                         stepcode = arra[1]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
                     }
-                    if (ordercode != "" && ordercode == null) //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂负绌�
+                    if (ordercode != "" && ordercode != null) //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂负绌�
                     {
                         search += "and A.wo_code=@ordercode ";
                         dynamicParams.Add("@ordercode", ordercode);
                     }
-                    if (ordercode != "" && ordercode != "") //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂笉涓虹┖
+                    if (ordercode != "" && stepcode != "") //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂笉涓虹┖
                     {
                         search += "and A.wo_code=@ordercode ";
                         dynamicParams.Add("@ordercode", ordercode);
@@ -878,18 +892,18 @@
                         dynamicParams.Add("@stepcode", stepcode);
                     }
                 }
-                else
-                {
-                    mes.code = "300";
-                    mes.count = 0;
-                    mes.Message = "浜岀淮鐮佷俊鎭负绌�!";
-                    mes.data = null;
-                    return mes;
-                }
+                //else
+                //{
+                //    mes.code = "300";
+                //    mes.count = 0;
+                //    mes.Message = "浜岀淮鐮佷俊鎭负绌�!";
+                //    mes.data = null;
+                //    return mes;
+                //}
                 if (stepcode != "")
                 {
                     //鏌ユ壘褰撳墠宸ュ簭灞炴��
-                    sql = @"select *  from TStep where TStep where stepcode=@stepcode";
+                    sql = @"select *  from TStep  where stepcode=@stepcode";
                     dynamicParams.Add("@stepcode", stepcode);
                     var data0 = DapperHelper.selectdata(sql, dynamicParams);
                     if (data0.Rows.Count > 0)
@@ -959,7 +973,7 @@
                     {
                         mes.code = "300";
                         mes.count = 0;
-                        mes.Message = "浜岀淮鐮佷俊鎭敊璇�,璇锋壂鎻忓伐搴忎换鍔″崱鎴栬�呮姤宸ユ墦鍗版爣绛�!";
+                        mes.Message = "璇锋壂鎻忓伐搴忔潯鐮�!";
                         mes.data = null;
                         return mes;
                     }
@@ -1084,9 +1098,92 @@
             try
             {
                 //鐝粍鑾峰彇浜哄憳鍒楄〃
-                sql = @"select usercode,username  from TUser where usergroup_code=@stepcode";
+                sql = @"select usercode,username  from TUser where usergroup_code=@usergroupcode and is_delete<>'1'";
                 dynamicParams.Add("@usergroupcode", usergroupcode);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.data = data;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[鐢熶骇寮�鎶ュ伐锛氫汉鍛樹笅鎷夊垪琛╙
+        public static ToMessage MesOrderSelectUser(string usercode)
+        {
+            string sql = "";
+            string search = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                if (usercode != "" && usercode != null) //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂负绌�
+                {
+                    search += "and usercode=@usercode ";
+                    dynamicParams.Add("@usercode", usercode);
+                }
+                //鐝粍鑾峰彇浜哄憳鍒楄〃
+                sql = @"select usercode,username  from TUser where is_delete<>'1' "+search;
+                dynamicParams.Add("@usercode", usercode);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.data = data;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[鐢熶骇寮�鎶ュ伐锛氬彂鏂�/鏀舵枡鏃惰幏鍙栧鍗忎笅鎷夊垪琛╙
+        public static ToMessage MesOrderStepSelectWX(string orderstepqrcode)
+        {
+            string sql = "";
+            string ordercode = "";
+            string stepcode = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                if (orderstepqrcode != "" && orderstepqrcode != null)
+                {
+                    string[] arra = orderstepqrcode.Split(';');
+                    if (arra.Length == 1) //宸ュ崟鍙蜂簩缁寸爜
+                    {
+                        ordercode = arra[0]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
+                    }
+                    if (arra.Length == 2) //宸ュ崟鍙�+宸ュ簭鍙蜂簩缁寸爜
+                    {
+                        ordercode = arra[0]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
+                        stepcode = arra[1]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
+                    }
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "浜岀淮鐮佷俊鎭负绌�!";
+                    mes.data = null;
+                    return mes;
+                }
+                //鑾峰彇澶栧崗涓嬫媺妗�
+                sql = @"select C.code,C.name from TFlw_Rteqp A
+                        left join TCustomer C on A.eqp_code=C.code
+                        where A.step_code=@stepcode and A.style='W'";
+                dynamicParams.Add("@stepcode", stepcode);
+                var data = DapperHelper.selectdata(sql,dynamicParams);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
                 mes.data = data;
@@ -1346,7 +1443,7 @@
                 string date = DateTime.Now.ToString(); //鑾峰彇绯荤粺鏃堕棿
                 list.Clear();
                 //鍒ゆ柇鏄惁鏈夊彂鏂欒褰�(鏈�(鍚屽伐鍗�+宸ュ簭+澶栧崗渚涙柟淇敼) 鏃狅細鏂板)
-                sql = @"select *  from TK_Wrk_OutRecord where wo_code=@wo_code and step_code=@step_code and wx_code=@wxcode and style='F'";
+                sql = @"select *  from TK_Wrk_OutRecord where wo_code=@wo_code and step_code=@step_code and wx_code=@wx_code and style='F'";
                 dynamicParams.Add("@wo_code", mesordercode);
                 dynamicParams.Add("@step_code", stepcode);
                 dynamicParams.Add("@wx_code", wxcode);
@@ -1358,7 +1455,7 @@
                              where wo_code=@mesordercode and step_code=@stepcode and wx_code=@wx_code";
                     list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode, wx_code = wxcode, fqty = decimal.Parse(fqty), username = username, CreateDate = date } });
                     //鍐欏叆瀛愯〃
-                    sql = @"insert into  TK_Wrk_RecordSub(m_id,wx_code,out_person,out_time,fqty,syle,lm_user,lm_date) 
+                    sql = @"insert into  TK_Wrk_OutRecordSub(m_id,wx_code,out_person,out_time,fqty,syle,lm_user,lm_date) 
                                 values(@m_id,@wx_code,@out_person,@out_time,@fqty,@lm_user,@lm_date)";
                     list.Add(new { str = sql, parm = new { m_id = int.Parse(data.Rows[0]["ID"].ToString()), wx_code = wxcode, out_person = outuser, out_time = date, fqty = fqty, style = 'F', lm_user = username, lm_date = date } });
                 }
@@ -1373,7 +1470,7 @@
                     list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, wx_code = wxcode, partcode = partcode, style = 'F', fqty = fqty, lm_user = username, lm_date = date } });
 
                     //鍐欏叆瀛愯〃
-                    sql = @"insert into  TK_Wrk_RecordSub(m_id,wx_code,out_person,out_time,fqty,style,lm_user,lm_date) 
+                    sql = @"insert into  TK_Wrk_OutRecordSub(m_id,wx_code,out_person,out_time,fqty,style,lm_user,lm_date) 
                                 values(@m_id,@wx_code,@out_person,@out_time,@fqty,@style,@lm_user,@lm_date)";
                     list.Add(new { str = sql, parm = new { m_id = int.Parse(dt.Rows[0]["ID"].ToString()), wx_code = wxcode, out_person = outuser, out_time = date, fqty = fqty, style = 'F', lm_user = username, lm_date = date } });
                 }
@@ -1443,7 +1540,7 @@
                              where wo_code=@mesordercode and step_code=@stepcode and wx_code=@wx_code";
                     list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode, wx_code = wxcode, sqty = decimal.Parse(sqty), ngqty = decimal.Parse(ngqty), username = username, CreateDate = date } });
                     //鍐欏叆澶栧崗璁板綍瀛愯〃
-                    sql = @"insert into  TK_Wrk_RecordSub(m_id,wx_code,in_person,in_time,sqty,ng_qty,syle,lm_user,lm_date) 
+                    sql = @"insert into  TK_Wrk_OutRecordSub(m_id,wx_code,in_person,in_time,sqty,ng_qty,syle,lm_user,lm_date) 
                                 values(@m_id,@wx_code,@in_person,@in_time,@sqty,@ngqty,@lm_user,@lm_date)";
                     list.Add(new { str = sql, parm = new { m_id = int.Parse(data.Rows[0]["ID"].ToString()), wx_code = wxcode, in_person = inuser, in_time = date, sqty = sqty, ngqty = ngqty, style = 'S', lm_user = username, lm_date = date } });
 
@@ -1470,7 +1567,7 @@
                     list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, wx_code = wxcode, partcode = partcode, style = 'S', sqty = sqty, ngqty = ngqty, lm_user = username, lm_date = date } });
 
                     //鍐欏叆澶栧崗璁板綍瀛愯〃
-                    sql = @"insert into  TK_Wrk_RecordSub(m_id,wx_code,in_person,in_time,sqty,ng_qty,style,lm_user,lm_date) 
+                    sql = @"insert into  TK_Wrk_OutRecordSub(m_id,wx_code,in_person,in_time,sqty,ng_qty,style,lm_user,lm_date) 
                                 values(@m_id,@wxcode,@in_person,@in_time,@sqty,@ng_qty,@style,@lm_user,@lm_date)";
                     list.Add(new { str = sql, parm = new { m_id = int.Parse(dt.Rows[0]["ID"].ToString()), wxcode = wxcode, in_person = inuser, in_time = date, sqty = sqty, ng_qty = ngqty, style = "S", lm_user = username, lm_date = date } });
 
diff --git a/VueWebApi/Logs/2022-07-09.TXT b/VueWebApi/Logs/2022-07-09.TXT
new file mode 100644
index 0000000..5138969
--- /dev/null
+++ b/VueWebApi/Logs/2022-07-09.TXT
@@ -0,0 +1,146 @@
+ 【时间】:2022-07-09 13:34:34,602
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 14 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:SqlException
+消息内容:在应使用条件的上下文(在 'where' 附近)中指定了非布尔类型的表达式。
+引发异常路径:/api/ProductionManagement/MesOrderStepSearch
+引发异常的方法:OnError
+引发异常源:.Net SqlClient Data Provider   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
+   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
+   在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
+   在 System.Data.SqlClient.SqlDataReader.get_MetaData()
+   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
+   在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderImpl(IDbConnection cnn, CommandDefinition& command, CommandBehavior commandBehavior, IDbCommand& cmd)
+   在 Dapper.SqlMapper.ExecuteReader(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.selectdata(String sql, Object parm) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 195
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
+ 【时间】:2022-07-09 13:37:08,317
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 18 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:SqlException
+消息内容:在应使用条件的上下文(在 'where' 附近)中指定了非布尔类型的表达式。
+引发异常路径:/api/ProductionManagement/MesOrderStepSearch
+引发异常的方法:OnError
+引发异常源:.Net SqlClient Data Provider   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
+   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
+   在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
+   在 System.Data.SqlClient.SqlDataReader.get_MetaData()
+   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
+   在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderImpl(IDbConnection cnn, CommandDefinition& command, CommandBehavior commandBehavior, IDbCommand& cmd)
+   在 Dapper.SqlMapper.ExecuteReader(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.selectdata(String sql, Object parm) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 195
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
+ 【时间】:2022-07-09 14:14:19,651
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 11 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:SqlException
+消息内容:列名 'wo' 无效。
+列名 'wo' 无效。
+引发异常路径:/api/ProductionManagement/MesOrderWxStepSearch
+引发异常的方法:OnError
+引发异常源:.Net SqlClient Data Provider   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
+   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
+   在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
+   在 System.Data.SqlClient.SqlDataReader.get_MetaData()
+   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
+   在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
+   在 Dapper.SqlMapper.QueryMultipleImpl(IDbConnection cnn, CommandDefinition& command)
+   在 Dapper.SqlMapper.QueryMultiple(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.GetPageList[T](String sql, Object parm, String orderBy, String sort, Int32 pageIndex, Int32 pageSize, Int32& total) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 160
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
+ 【时间】:2022-07-09 14:23:02,463
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 15 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:SqlException
+消息内容:列名 'ordercode' 无效。
+引发异常路径:/api/ProductionManagement/MesOrderStepStart
+引发异常的方法:OnError
+引发异常源:.Net SqlClient Data Provider   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
+   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
+   在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
+   在 System.Data.SqlClient.SqlDataReader.get_MetaData()
+   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
+   在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderImpl(IDbConnection cnn, CommandDefinition& command, CommandBehavior commandBehavior, IDbCommand& cmd)
+   在 Dapper.SqlMapper.ExecuteReader(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.selectdata(String sql, Object parm) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 195
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
+ 【时间】:2022-07-09 14:23:40,893
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 11 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:SqlException
+消息内容:列名 'ordercode' 无效。
+引发异常路径:/api/ProductionManagement/MesOrderStepStart
+引发异常的方法:OnError
+引发异常源:.Net SqlClient Data Provider   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
+   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
+   在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
+   在 System.Data.SqlClient.SqlDataReader.get_MetaData()
+   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
+   在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderImpl(IDbConnection cnn, CommandDefinition& command, CommandBehavior commandBehavior, IDbCommand& cmd)
+   在 Dapper.SqlMapper.ExecuteReader(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.selectdata(String sql, Object parm) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 195
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
diff --git a/VueWebApi/Logs/2022-07-11.TXT b/VueWebApi/Logs/2022-07-11.TXT
new file mode 100644
index 0000000..f8456cf
--- /dev/null
+++ b/VueWebApi/Logs/2022-07-11.TXT
@@ -0,0 +1,59 @@
+ 【时间】:2022-07-11 12:36:17,564
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 14 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:SqlException
+消息内容:必须声明标量变量 "@paydatestartdate"。
+必须声明标量变量 "@paydatestartdate"。
+引发异常路径:/api/ProductionManagement/ErpOrderSearch
+引发异常的方法:OnError
+引发异常源:.Net SqlClient Data Provider   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
+   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
+   在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
+   在 System.Data.SqlClient.SqlDataReader.get_MetaData()
+   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
+   在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
+   在 Dapper.SqlMapper.QueryMultipleImpl(IDbConnection cnn, CommandDefinition& command)
+   在 Dapper.SqlMapper.QueryMultiple(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.GetPageList[T](String sql, Object parm, String orderBy, String sort, Int32 pageIndex, Int32 pageSize, Int32& total) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 160
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
+ 【时间】:2022-07-11 15:31:11,814
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 15 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:SqlException
+消息内容:列名 'ordercode' 无效。
+引发异常路径:/api/ProductionManagement/MesOrderStepStart
+引发异常的方法:OnError
+引发异常源:.Net SqlClient Data Provider   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
+   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
+   在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
+   在 System.Data.SqlClient.SqlDataReader.get_MetaData()
+   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
+   在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderImpl(IDbConnection cnn, CommandDefinition& command, CommandBehavior commandBehavior, IDbCommand& cmd)
+   在 Dapper.SqlMapper.ExecuteReader(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.selectdata(String sql, Object parm) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 195
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
diff --git a/VueWebApi/Logs/2022-07-13.TXT b/VueWebApi/Logs/2022-07-13.TXT
new file mode 100644
index 0000000..612024b
--- /dev/null
+++ b/VueWebApi/Logs/2022-07-13.TXT
@@ -0,0 +1,28 @@
+ 【时间】:2022-07-13 17:03:05,799
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 18 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:SqlException
+消息内容:列名 'wx_code' 无效。
+列名 'out_person' 无效。
+列名 'out_time' 无效。
+列名 'fqty' 无效。
+引发异常路径:/api/ProductionManagement/SavaMesOrderStepOut
+引发异常的方法:OnError
+引发异常源:.Net SqlClient Data Provider   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
+   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
+   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
+   在 Dapper.SqlMapper.ExecuteCommand(IDbConnection cnn, CommandDefinition& command, Action`2 paramReader)
+   在 Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command)
+   在 Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.DoTransaction(List`1 sqlList) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 391
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
diff --git a/VueWebApi/Models/ScanStartReportData.cs b/VueWebApi/Models/ScanStartReportData.cs
index fc3e82c..cf9c948 100644
--- a/VueWebApi/Models/ScanStartReportData.cs
+++ b/VueWebApi/Models/ScanStartReportData.cs
@@ -12,6 +12,7 @@
         public string partname { get; set; } //浜у搧鍚嶇О
 
         public string partspec { get; set; } //浜у搧瑙勬牸
+        public string seq { get; set; } //褰撳墠宸ュ簭搴忓彿
         public string stepcode { get; set; } //褰撳墠宸ュ簭缂栫爜
         public string stepname { get; set; } //褰撳墠宸ュ簭
         public string nextstepcode { get; set; } //涓嬮亾宸ュ簭缂栫爜
diff --git a/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user b/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
index 13bf8b7..68e1f87 100644
--- a/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
+++ b/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -384,13 +384,13 @@
       <publishTime>11/28/2018 13:04:24</publishTime>
     </File>
     <File Include="bin/VueWebApi.dll">
-      <publishTime>07/08/2022 13:39:31</publishTime>
+      <publishTime>07/13/2022 17:46:02</publishTime>
     </File>
     <File Include="bin/VueWebApi.dll.config">
       <publishTime>06/15/2022 15:31:43</publishTime>
     </File>
     <File Include="bin/VueWebApi.pdb">
-      <publishTime>07/08/2022 13:39:31</publishTime>
+      <publishTime>07/13/2022 17:46:02</publishTime>
     </File>
     <File Include="bin/VueWebApi.xml">
       <publishTime>06/16/2022 14:26:01</publishTime>
@@ -900,7 +900,7 @@
       <publishTime>06/30/2022 17:10:44</publishTime>
     </File>
     <File Include="Grid/webapp-ws-tutorial.htm">
-      <publishTime>07/07/2022 20:19:19</publishTime>
+      <publishTime>07/08/2022 15:15:11</publishTime>
     </File>
     <File Include="index.html">
       <publishTime>06/30/2022 14:02:46</publishTime>
diff --git a/VueWebApi/Tools/DapperHelper.cs b/VueWebApi/Tools/DapperHelper.cs
index 8d0203b..fced6ea 100644
--- a/VueWebApi/Tools/DapperHelper.cs
+++ b/VueWebApi/Tools/DapperHelper.cs
@@ -276,6 +276,41 @@
         }
 
         /// <summary>
+        /// Dapper鎵ц瀛樺偍杩囩▼杩斿洖datatable鏁版嵁(甯﹀弬鏁�)
+        /// </summary>
+        /// <param name="sql">瀛樺偍杩囩▼鍚�</param>
+        /// <param name="parm">鍙傛暟</param>
+        /// <returns></returns>
+        public static bool IsProcedure(string sql, Object parm)
+        {
+            bool result;
+            //sql璇彞
+            using (IDbConnection conn = sqlConnection())
+            {
+                try
+                {
+                    DataTable table = new DataTable();
+                    //var data = conn.ExecuteReader(sql, parm);
+                    var res = conn.ExecuteReader(sql, parm, commandType: CommandType.StoredProcedure);//sql 瀛樺偍杩囩▼ 
+                    result = true;
+                }
+                catch (Exception ex)
+                {
+                    //鍒涘缓鏃ュ織璁板綍缁勪欢瀹炰緥
+                    LogHelper.WriteLog(ex);
+                    result = false;
+                    throw ex;
+                }
+                finally
+                {
+                    conn.Dispose();
+                    conn.Close();
+                }
+                return result;
+            }
+        }
+
+        /// <summary>
         /// Dapper鏌ヨ杩斿洖鏁版嵁鏉℃暟
         /// </summary>
         /// <param name="sql"></param>
diff --git a/VueWebApi/Tools/ScanStartReport.cs b/VueWebApi/Tools/ScanStartReport.cs
index 38b51a7..0c8a35d 100644
--- a/VueWebApi/Tools/ScanStartReport.cs
+++ b/VueWebApi/Tools/ScanStartReport.cs
@@ -57,14 +57,13 @@
                     flwtype = data.Rows[0]["FLWTYPE"].ToString();//鑾峰彇宸ュ簭灞炴��
                     isbott = data.Rows[0]["ISBOTT"].ToString();//棣栭亾宸ュ簭
                     isend = data.Rows[0]["ISEND"].ToString();//鏈亾宸ュ簭
-                    seq = data.Rows[0]["SEQ"].ToString();//宸ュ簭搴忓彿
+                    rt.seq = data.Rows[0]["SEQ"].ToString();//宸ュ簭搴忓彿
 
                     //鑾峰彇褰撳墠宸ュ簭涓嬮亾宸ュ簭
                     sql = @"select A.isbott,A.isend,T.stepcode,T.stepname from TK_Wrk_Step A
                             left join  TStep T on A.step_code=T.stepcode
-                            where A.wo_code=ordercode and A.step_code=@stepcode and A.seq=@seq+1 ";
+                            where A.wo_code=@ordercode and A.seq=@seq+1 ";
                     dynamicParams.Add("@ordercode", ordercode);
-                    dynamicParams.Add("@stepcode", stepcode);
                     dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
                     var dt = DapperHelper.selectdata(sql, dynamicParams);
                     if (dt.Rows.Count > 0) //鏈変笅閬撳伐搴�
@@ -158,9 +157,8 @@
                             sql = @"select A.step_code,S.stepname,S.flwtype  from TFlw_Rtdt A
                                                left join TK_Wrk_Man M on A.rout_code=M.route_code
                                                left join TStep S on A.step_code=S.stepcode
-                                               where M.wo_code=@wocode and A.step_code=@stepcode and A.seq=@seq-1";
+                                               where M.wo_code=@wocode  and A.seq=@seq-1";
                             dynamicParams.Add("@wocode", data.Rows[0]["WO_CODE"].ToString());
-                            dynamicParams.Add("@stepcode", data.Rows[0]["STEPCODE"].ToString());
                             dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
                             var data0 = DapperHelper.selectdata(sql, dynamicParams);
                             if (data0.Rows.Count > 0)
@@ -179,12 +177,12 @@
                                     var data2 = DapperHelper.selectdata(sql, dynamicParams);
                                     if (data2.Rows.Count > 0) //鏈夋姤宸ヨ褰�
                                     {
-                                        if (data1.Rows[0]["FLWTYPE"].ToString() == "Z")  //鑷埗宸ュ簭
+                                        if (data0.Rows[0]["FLWTYPE"].ToString() == "Z")  //鑷埗宸ュ簭
                                         {
                                             //鏌ユ壘涓婂埌宸ュ簭鎶ュ伐璁板綍
                                             sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
                                             dynamicParams.Add("@ordercode", ordercode);
-                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
+                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                             var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                             if (data3.Rows.Count > 0) //涓婇亾鏈夋姤宸�
                                             {
@@ -221,16 +219,16 @@
                                                 return mes;
                                             }
                                         }
-                                        if (data1.Rows[0]["FLWTYPE"].ToString() == "W")  //濮斿宸ュ簭
+                                        if (data0.Rows[0]["FLWTYPE"].ToString() == "W")  //濮斿宸ュ簭
                                         {
                                             //鏌ユ壘涓婂埌宸ュ簭鏀舵枡璁板綍
                                             sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
                                             dynamicParams.Add("@ordercode", ordercode);
-                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
+                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                             var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                             if (data3.Rows.Count > 0) //涓婇亾鏈夋敹鏂�
                                             {
-                                                decimal sqty = decimal.Parse(data3.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("SQTY"))).Sum().ToString());//涓婇亾鏀舵枡鏁伴噺
+                                                decimal sqty = data3.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();  //涓婇亾鏀舵枡鏁伴噺
                                                 string good_qty = data2.Rows[0]["GOOD_QTY"].ToString();//鏈亾鎶ュ伐鏁伴噺
                                                 string ng_qty = data2.Rows[0]["NG_QTY"].ToString();// 鏈亾涓嶈壇鏁伴噺
                                                 decimal sybqty = sqty - decimal.Parse(good_qty) - decimal.Parse(ng_qty);//鏈亾鍓╀綑鍙姤鏁伴噺=涓婇亾鏀舵枡鏁伴噺-鏈亾鎶ュ伐鏁伴噺-鏈亾涓嶈壇鏁伴噺
@@ -266,12 +264,12 @@
                                     }
                                     else  //鏈亾鏃犳姤宸ヨ褰�
                                     {
-                                        if (data1.Rows[0]["FLWTYPE"].ToString() == "Z")  //鑷埗宸ュ簭
+                                        if (data0.Rows[0]["FLWTYPE"].ToString() == "Z")  //鑷埗宸ュ簭
                                         {
                                             //鏌ユ壘涓婂埌宸ュ簭鎶ュ伐璁板綍
                                             sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
                                             dynamicParams.Add("@ordercode", ordercode);
-                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
+                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                             var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                             if (data3.Rows.Count > 0) //涓婇亾鏈夋姤宸�
                                             {
@@ -296,16 +294,16 @@
                                                 return mes;
                                             }
                                         }
-                                        if (data1.Rows[0]["FLWTYPE"].ToString() == "W")  //濮斿宸ュ簭
+                                        if (data0.Rows[0]["FLWTYPE"].ToString() == "W")  //濮斿宸ュ簭
                                         {
                                             //鏌ユ壘涓婂埌宸ュ簭鏀舵枡璁板綍
                                             sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
                                             dynamicParams.Add("@ordercode", ordercode);
-                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
+                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                             var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                             if (data3.Rows.Count > 0) //涓婇亾鏈夋敹鏂�
                                             {
-                                                decimal sqty = decimal.Parse(data3.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("SQTY"))).Sum().ToString());//涓婇亾鏀舵枡鏁伴噺
+                                                decimal sqty = data3.AsEnumerable().Select(d =>d.Field<decimal>("SQTY")).Sum();//涓婇亾鏀舵枡鏁伴噺
                                                 decimal sybqty = sqty;                   //鏈亾鍓╀綑鍙姤鏁伴噺=涓婇亾鏀舵枡鏁伴噺
 
                                                 rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
@@ -330,12 +328,12 @@
                                 }
                                 else //鏃犲紑宸ヨ褰�
                                 {
-                                    if (data1.Rows[0]["FLWTYPE"].ToString() == "Z")  //鑷埗宸ュ簭
+                                    if (data0.Rows[0]["FLWTYPE"].ToString() == "Z")  //鑷埗宸ュ簭
                                     {
                                         //鏌ユ壘涓婂埌宸ュ簭鎶ュ伐璁板綍
                                         sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
                                         dynamicParams.Add("@ordercode", ordercode);
-                                        dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
+                                        dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                         var data2 = DapperHelper.selectdata(sql, dynamicParams);
                                         if (data2.Rows.Count > 0) //涓婂埌宸ュ簭鏈夋姤宸�
                                         {
@@ -360,17 +358,17 @@
                                             return mes;
                                         }
                                     }
-                                    if (data1.Rows[0]["FLWTYPE"].ToString() == "W")  //濮斿宸ュ簭
+                                    if (data0.Rows[0]["FLWTYPE"].ToString() == "W")  //濮斿宸ュ簭
                                     {
                                         //鏌ユ壘涓婇亾宸ュ簭澶栧崗鏀舵枡璁板綍
                                         sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
                                         dynamicParams.Add("@ordercode", ordercode);
-                                        dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
+                                        dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                         var data2 = DapperHelper.selectdata(sql, dynamicParams);
                                         if (data2.Rows.Count > 0) //涓婇亾宸ュ簭鏈夋敹鏂�
                                         {
-                                            decimal sqty = decimal.Parse(data2.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("SQTY"))).Sum().ToString());//鏀舵枡鏁伴噺
-                                            decimal ng_qty = decimal.Parse(data2.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("NG_QTY"))).Sum().ToString());// 涓嶈壇鏁伴噺
+                                            decimal sqty = data2.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//鏀舵枡鏁伴噺
+                                            decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 涓嶈壇鏁伴噺
 
                                             rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //浠诲姟鏁伴噺
                                             rt.startqty = sqty;                                                  //寮�宸ユ暟閲�=(涓婁竴閬撶殑鏀舵枡鏁伴噺)
@@ -471,14 +469,13 @@
                     flwtype = data.Rows[0]["FLWTYPE"].ToString();//鑾峰彇宸ュ簭灞炴��
                     isbott = data.Rows[0]["ISBOTT"].ToString();//棣栭亾宸ュ簭
                     isend = data.Rows[0]["ISEND"].ToString();//鏈亾宸ュ簭
-                    seq = data.Rows[0]["SEQ"].ToString();//宸ュ簭搴忓彿
+                    rt.seq = data.Rows[0]["SEQ"].ToString();//宸ュ簭搴忓彿
 
                     //鑾峰彇褰撳墠宸ュ簭涓嬮亾宸ュ簭
                     sql = @"select A.isbott,A.isend,T.stepcode,T.stepname from TK_Wrk_Step A
                             left join  TStep T on A.step_code=T.stepcode
-                            where A.wo_code=ordercode and A.step_code=@stepcode and A.seq=@seq+1 ";
+                            where A.wo_code=@ordercode and A.seq=@seq+1 ";
                     dynamicParams.Add("@ordercode", ordercode);
-                    dynamicParams.Add("@stepcode", stepcode);
                     dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
                     var dt = DapperHelper.selectdata(sql, dynamicParams);
                     if (dt.Rows.Count > 0) //鏈変笅閬撳伐搴�
@@ -496,7 +493,7 @@
                 {
                     mes.code = "300";
                     mes.count = 0;
-                    mes.Message = "鏈壘鍒板綋鍓嶅伐搴忕殑涓婇亾宸ュ簭淇℃伅,璇疯仈绯荤鐞嗗憳鏍稿疄!";
+                    mes.Message = "褰撳墠鎵爜宸ュ簭浠诲姟涓嶅瓨鍦�!";
                     mes.data = null;
                     return mes;
                 }
@@ -521,8 +518,8 @@
                                     var data0 = DapperHelper.selectdata(sql, dynamicParams);
                                     if (data0.Rows.Count > 0)  //鏈夊彂鏂欒褰�
                                     {
-                                        decimal fqty = decimal.Parse(data0.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("FQTY"))).Sum().ToString());//鍙戞枡鏁伴噺
-                                        decimal ng_qty = decimal.Parse(data0.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("NG_QTY"))).Sum().ToString());// 涓嶈壇鏁伴噺
+                                        decimal fqty = data0.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();  //鍙戞枡鏁伴噺
+                                        decimal ng_qty =data0.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 涓嶈壇鏁伴噺
                                         decimal kfqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - fqty - ng_qty;                                           //鍓╀綑鍙彂鏁伴噺
                                         if (kfqty <= 0)
                                         {
@@ -562,9 +559,8 @@
                                     sql = @"select A.step_code,S.stepname,S.flwtype  from TFlw_Rtdt A
                                                left join TK_Wrk_Man M on A.rout_code=M.route_code
                                                left join TStep S on A.step_code=S.stepcode
-                                               where M.wo_code=@wocode and A.step_code=@stepcode and A.seq=@seq-1";
+                                               where M.wo_code=@wocode  and A.seq=@seq-1";
                                     dynamicParams.Add("@wocode", data.Rows[0]["WO_CODE"].ToString());
-                                    dynamicParams.Add("@stepcode", data.Rows[0]["STEPCODE"].ToString());
                                     dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
                                     var data0 = DapperHelper.selectdata(sql, dynamicParams);
                                     if (data0.Rows.Count > 0)
@@ -581,13 +577,13 @@
                                                 //鏌ユ壘涓婂埌宸ュ簭鎶ュ伐璁板綍
                                                 sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
                                                 dynamicParams.Add("@ordercode", ordercode);
-                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
+                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                                 var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                                 if (data3.Rows.Count > 0) //涓婇亾鏈夋姤宸�
                                                 {
                                                     string sgood_qty = data3.Rows[0]["GOOD_QTY"].ToString();//涓婇亾鎶ュ伐鏁伴噺
-                                                    decimal sqty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("FQTY"))).Sum().ToString());//鏈亾鍙戞枡鏁伴噺
-                                                    decimal ng_qty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("NG_QTY"))).Sum().ToString());// 鏈亾涓嶈壇鏁伴噺
+                                                    decimal sqty = data1.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//鏈亾鍙戞枡鏁伴噺
+                                                    decimal ng_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 鏈亾涓嶈壇鏁伴噺
 
                                                     decimal sybqty = decimal.Parse(sgood_qty) - sqty - ng_qty;//鏈亾鍓╀綑鍙彂鏁伴噺=涓婇亾鎶ュ伐鏁伴噺-鏈亾鍙戞枡鏁伴噺-鏈亾涓嶈壇鏁伴噺
                                                     if (sybqty <= 0)
@@ -625,13 +621,13 @@
                                                 //鏌ユ壘涓婂埌宸ュ簭鏀舵枡璁板綍
                                                 sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
                                                 dynamicParams.Add("@ordercode", ordercode);
-                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
+                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                                 var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                                 if (data3.Rows.Count > 0) //涓婇亾鏈夋敹鏂�
                                                 {
-                                                    decimal ssqty = decimal.Parse(data3.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("SQTY"))).Sum().ToString());//涓婇亾鏀舵枡鏁伴噺
-                                                    decimal sqty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("FQTY"))).Sum().ToString());//鏈亾鍙戞枡鏁伴噺
-                                                    decimal ng_qty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("NG_QTY"))).Sum().ToString());// 鏈亾涓嶈壇鏁伴噺
+                                                    decimal ssqty = data3.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//涓婇亾鏀舵枡鏁伴噺
+                                                    decimal sqty = data1.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//鏈亾鍙戞枡鏁伴噺
+                                                    decimal ng_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 鏈亾涓嶈壇鏁伴噺
 
                                                     decimal sybqty = ssqty - sqty - ng_qty;//鏈亾鍓╀綑鍙彂鏁伴噺=涓婇亾鏀舵枡鏁伴噺-鏈亾鍙戞枡鏁伴噺-鏈亾涓嶈壇鏁伴噺
                                                     if (sybqty <= 0)
@@ -672,7 +668,7 @@
                                                 //鏌ユ壘涓婂埌宸ュ簭鎶ュ伐璁板綍
                                                 sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
                                                 dynamicParams.Add("@ordercode", ordercode);
-                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
+                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                                 var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                                 if (data3.Rows.Count > 0) //涓婇亾鏈夋姤宸�
                                                 {
@@ -705,11 +701,11 @@
                                                 //鏌ユ壘涓婂埌宸ュ簭鏀舵枡璁板綍
                                                 sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
                                                 dynamicParams.Add("@ordercode", ordercode);
-                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
+                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                                 var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                                 if (data3.Rows.Count > 0) //涓婇亾鏈夋敹鏂�
                                                 {
-                                                    decimal ssqty = decimal.Parse(data3.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("SQTY"))).Sum().ToString());//涓婇亾鏀舵枡鏁伴噺
+                                                    decimal ssqty = data3.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//涓婇亾鏀舵枡鏁伴噺
 
                                                     decimal sybqty = ssqty;//鏈亾鍓╀綑鍙彂鏁伴噺=涓婇亾鏀舵枡鏁伴噺
                                                     if (sybqty <= 0)
@@ -784,10 +780,10 @@
                                         var data1 = DapperHelper.selectdata(sql, dynamicParams);
                                         if (data1.Rows.Count > 0) //鏈夋敹鏂欒褰�
                                         {
-                                            decimal fqty = decimal.Parse(data0.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("FQTY"))).Sum().ToString());//鏈亾鍙戞枡鏁伴噺
-                                            decimal sqty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("SQTY"))).Sum().ToString());//鏈亾鏀舵枡鏁伴噺
-                                            decimal ng_qty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("NG_QTY"))).Sum().ToString());//鏈亾涓嶈壇鏁伴噺
-                                            decimal ksqty = fqty - sqty - ng_qty;                                                                                         //鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺
+                                            decimal fqty = data0.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//鏈亾鍙戞枡鏁伴噺
+                                            decimal sqty = data1.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//鏈亾鏀舵枡鏁伴噺
+                                            decimal ng_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();//鏈亾涓嶈壇鏁伴噺
+                                            decimal ksqty = fqty - sqty - ng_qty;                                                //鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺
                                             if (ksqty <= 0)
                                             {
                                                 mes.code = "300";
@@ -812,7 +808,7 @@
                                         }
                                         else
                                         {
-                                            decimal fqty = decimal.Parse(data0.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("FQTY"))).Sum().ToString());//鏈亾鍙戞枡鏁伴噺
+                                            decimal fqty = data0.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//鏈亾鍙戞枡鏁伴噺
 
                                             rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //浠诲姟鏁伴噺
                                             rt.noreportqty = fqty;                                               //鏈敹鏁伴噺=鏈亾鍙戞枡鏁伴噺
@@ -840,9 +836,8 @@
                                     sql = @"select A.step_code,S.stepname,S.flwtype  from TFlw_Rtdt A
                                                left join TK_Wrk_Man M on A.rout_code=M.route_code
                                                left join TStep S on A.step_code=S.stepcode
-                                               where M.wo_code=@wocode and A.step_code=@stepcode and A.seq=@seq-1";
+                                               where M.wo_code=@wocode  and A.seq=@seq-1";
                                     dynamicParams.Add("@wocode", data.Rows[0]["WO_CODE"].ToString());
-                                    dynamicParams.Add("@stepcode", data.Rows[0]["STEPCODE"].ToString());
                                     dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
                                     var data0 = DapperHelper.selectdata(sql, dynamicParams);
                                     if (data0.Rows.Count > 0)
@@ -861,10 +856,10 @@
                                             var data2 = DapperHelper.selectdata(sql, dynamicParams);
                                             if (data2.Rows.Count > 0) //鏈夋敹鏂欒褰�
                                             {
-                                                decimal fqty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("FQTY"))).Sum().ToString());//鏈亾鍙戞枡鏁伴噺
-                                                decimal sqty = decimal.Parse(data2.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("SQTY"))).Sum().ToString());//鏈亾鏀舵枡鏁伴噺
-                                                decimal ng_qty = decimal.Parse(data2.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("NG_QTY"))).Sum().ToString());//鏈亾涓嶈壇鏁伴噺
-                                                decimal ksqty = fqty - sqty - ng_qty;                                                                                         //鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺
+                                                decimal fqty = data1.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//鏈亾鍙戞枡鏁伴噺
+                                                decimal sqty = data2.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//鏈亾鏀舵枡鏁伴噺
+                                                decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();//鏈亾涓嶈壇鏁伴噺
+                                                decimal ksqty = fqty - sqty - ng_qty;                                               //鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺
                                                 if (ksqty <= 0)
                                                 {
                                                     mes.code = "300";
@@ -888,7 +883,7 @@
                                             }
                                             else
                                             {
-                                                decimal fqty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("FQTY"))).Sum().ToString());//鏈亾鍙戞枡鏁伴噺
+                                                decimal fqty = data1.AsEnumerable().Select(d => d.Field<Int32>("FQTY")).Sum();//鏈亾鍙戞枡鏁伴噺
 
                                                 rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //浠诲姟鏁伴噺
                                                 rt.noreportqty = fqty;                                               //鏈敹鏁伴噺=鏈亾鍙戞枡鏁伴噺
diff --git a/VueWebApi/VueWebApi.csproj b/VueWebApi/VueWebApi.csproj
index 9427cdd..ffd75cc 100644
--- a/VueWebApi/VueWebApi.csproj
+++ b/VueWebApi/VueWebApi.csproj
@@ -259,6 +259,7 @@
     <Compile Include="Areas\HelpPage\XmlDocumentationProvider.cs" />
     <Compile Include="Controllers\BasicSettingController.cs" />
     <Compile Include="Controllers\DeviceManagerController.cs" />
+    <Compile Include="Controllers\ErpSyncMesController.cs" />
     <Compile Include="Controllers\GridReportController.cs" />
     <Compile Include="Controllers\ImportExcelController.cs" />
     <Compile Include="Controllers\LoginController.cs" />
@@ -269,6 +270,7 @@
     <Compile Include="Controllers\ValuesController.cs" />
     <Compile Include="DLL\BLL\BasicSettingBLL.cs" />
     <Compile Include="DLL\BLL\DeviceManagerBLL.cs" />
+    <Compile Include="DLL\BLL\ErpSyncMesBLL.cs" />
     <Compile Include="DLL\BLL\ExcelCheckBLL.cs" />
     <Compile Include="DLL\BLL\GridReportBLL.cs" />
     <Compile Include="DLL\BLL\LoginBLL.cs" />
@@ -279,6 +281,7 @@
     <Compile Include="DLL\BLL\UserDataBLL.cs" />
     <Compile Include="DLL\DAL\BasicSettingDAL.cs" />
     <Compile Include="DLL\DAL\DeviceManagerDAL.cs" />
+    <Compile Include="DLL\DAL\ErpSyncMesDAL.cs" />
     <Compile Include="DLL\DAL\ExcelCheckDAL.cs" />
     <Compile Include="DLL\DAL\GridReportDAL.cs" />
     <Compile Include="DLL\DAL\LoginDAL.cs" />
@@ -367,6 +370,7 @@
     <Content Include="grf\浜у搧娴佷紶鍗旳5.grf" />
     <Content Include="grf\鎶ュ伐浜у嚭鏍囩.grf" />
     <Content Include="grf\鎶ュ伐鎵撳嵃鏍囩.grf" />
+    <Content Include="grf\澶栧崗鏀舵枡鏍囩.grf" />
     <None Include="Scripts\jquery-3.4.1.intellisense.js" />
     <Content Include="Scripts\jquery-3.4.1.js" />
     <Content Include="Scripts\jquery-3.4.1.min.js" />
diff --git a/VueWebApi/VueWebApi.csproj.user b/VueWebApi/VueWebApi.csproj.user
index 65dcfe7..c43f84a 100644
--- a/VueWebApi/VueWebApi.csproj.user
+++ b/VueWebApi/VueWebApi.csproj.user
@@ -10,9 +10,9 @@
     <UseGlobalApplicationHostFile />
     <LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
     <NameOfLastUsedPublishProfile>D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
-    <ProjectView>ProjectFiles</ProjectView>
-    <Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID>
-    <Controller_SelectedScaffolderCategoryPath>root/Common/MVC/Controller</Controller_SelectedScaffolderCategoryPath>
+    <ProjectView>ShowAllFiles</ProjectView>
+    <Controller_SelectedScaffolderID>ApiControllerEmptyScaffolder</Controller_SelectedScaffolderID>
+    <Controller_SelectedScaffolderCategoryPath>root/Common/Web API</Controller_SelectedScaffolderCategoryPath>
     <WebStackScaffolding_ControllerDialogWidth>600</WebStackScaffolding_ControllerDialogWidth>
     <WebStackScaffolding_IsLayoutPageSelected>True</WebStackScaffolding_IsLayoutPageSelected>
     <WebStackScaffolding_IsPartialViewSelected>True</WebStackScaffolding_IsPartialViewSelected>
diff --git a/VueWebApi/bin/VueWebApi.pdb b/VueWebApi/bin/VueWebApi.pdb
index 58bb809..b2b450a 100644
--- a/VueWebApi/bin/VueWebApi.pdb
+++ b/VueWebApi/bin/VueWebApi.pdb
Binary files differ
diff --git a/VueWebApi/bin/VueWebApi.xml b/VueWebApi/bin/VueWebApi.xml
index cc4d385..dfe9e26 100644
--- a/VueWebApi/bin/VueWebApi.xml
+++ b/VueWebApi/bin/VueWebApi.xml
@@ -865,6 +865,24 @@
             <param name="devicecode">璁惧缂栫爜</param>
             <returns></returns>
         </member>
+        <member name="M:VueWebApi.Controllers.ErpSyncMesController.SeaveSearchInventoryClass">
+            <summary>
+            鍒堕�犳ā鍨嬶細瀛樿揣鍒嗙被鍚屾
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.ErpSyncMesController.SeaveSearchInventory">
+            <summary>
+            鍒堕�犳ā鍨嬶細瀛樿揣妗f鍚屾
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.ErpSyncMesController.SeaveSearchWhareHouseLocation">
+            <summary>
+            鐗╂枡绠$悊锛氫粨搴撳簱浣嶅悓姝�
+            </summary>
+            <returns></returns>
+        </member>
         <member name="M:VueWebApi.Controllers.GridReportController.MesOrderPrintSearch(System.String,System.String)">
             <summary>
             MES宸ュ崟鎵撳嵃
@@ -1179,9 +1197,23 @@
         </member>
         <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderGroupSelectUser(System.String)">
             <summary>
-            鐢熶骇寮�鎶ュ伐锛氬紑宸ユ椂鑾峰彇璁惧涓嬫媺鍒楄〃
+            鐢熶骇寮�鎶ュ伐锛氭牴鎹敓浜х彮缁勬煡鎵句汉鍛樺垪琛�
             </summary>
             <param name="usergroupcode">鐝粍缂栫爜</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderSelectUser(System.String)">
+            <summary>
+            鐢熶骇寮�鎶ュ伐锛氫汉鍛樹笅鎷夊垪琛�
+            </summary>
+            <param name="usercode">浜哄憳缂栫爜</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepSelectWX(System.String)">
+            <summary>
+            鐢熶骇寮�鎶ュ伐锛氬彂鏂�/鏀舵枡鏃惰幏鍙栧鍗忎笅鎷夊垪琛�
+            </summary>
+            <param name="orderstepqrcode">鎵弿浜岀淮鐮佷俊鎭�</param>
             <returns></returns>
         </member>
         <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepSelectCause(System.String)">
@@ -1616,6 +1648,14 @@
             <param name="parm">鍙傛暟</param>
             <returns></returns>
         </member>
+        <member name="M:VueWebApi.Tools.DapperHelper.IsProcedure(System.String,System.Object)">
+            <summary>
+            Dapper鎵ц瀛樺偍杩囩▼杩斿洖datatable鏁版嵁(甯﹀弬鏁�)
+            </summary>
+            <param name="sql">瀛樺偍杩囩▼鍚�</param>
+            <param name="parm">鍙傛暟</param>
+            <returns></returns>
+        </member>
         <member name="M:VueWebApi.Tools.DapperHelper.selectcount(System.String,System.Object)">
             <summary>
             Dapper鏌ヨ杩斿洖鏁版嵁鏉℃暟
diff --git "a/VueWebApi/grf/\345\244\226\345\215\217\346\224\266\346\226\231\346\240\207\347\255\276.grf" "b/VueWebApi/grf/\345\244\226\345\215\217\346\224\266\346\226\231\346\240\207\347\255\276.grf"
new file mode 100644
index 0000000..7ba753d
--- /dev/null
+++ "b/VueWebApi/grf/\345\244\226\345\215\217\346\224\266\346\226\231\346\240\207\347\255\276.grf"
@@ -0,0 +1,310 @@
+锘縶
+	"Version":"6.8.2.2",
+	"Title":"浣犵殑鎶ヨ〃鏍囬",
+	"PrintAsDesignPaper":false,
+	"Font":{
+		"Name":"瀹嬩綋",
+		"Size":52500,
+		"Weight":400,
+		"Charset":134
+	},
+	"WatermarkAlignment":"BottomRight",
+	"Printer":{
+		"Size":256,
+		"Width":4,
+		"Height":7.5,
+		"Oriention":"Landscape",
+		"LeftMargin":0.1,
+		"TopMargin":0,
+		"RightMargin":0.1,
+		"BottomMargin":0
+	},
+	"DetailGrid":{
+		"CenterView":true,
+		"Border":{
+			"Pen":{
+				"Width":1.5
+			}
+		},
+		"Recordset":{
+			"Field":[
+				{
+					"Name":"宸ュ崟缂栧彿",
+					"DBFieldName":"wo_code"
+				},
+				{
+					"Name":"浜у搧缂栫爜",
+					"DBFieldName":"partcode"
+				},
+				{
+					"Name":"浜у搧鍚嶇О",
+					"DBFieldName":"partname"
+				},
+				{
+					"Name":"涓嬮亾宸ュ簭",
+					"DBFieldName":"next_stepname"
+				},
+				{
+					"Name":"鏁伴噺",
+					"DBFieldName":"qty"
+				},
+				{
+					"Name":"浜岀淮鐮�",
+					"DBFieldName":"qrcode"
+				}
+			]
+		},
+		"ColumnContent":{
+			"Height":0,
+			"AdjustRowHeight":false
+		},
+		"ColumnTitle":{
+			"Height":0,
+			"RepeatStyle":"OnPage"
+		}
+	},
+	"Parameter":[
+		{
+			"Name":"Parameter1"
+		},
+		{
+			"Name":"Parameter2"
+		}
+	],
+	"ReportHeader":[
+		{
+			"Name":"ReportHeader1",
+			"Height":3.20146,
+			"Control":[
+				{
+					"Type":"Line",
+					"Name":"Line1",
+					"Left":0.211667,
+					"Top":0.105833,
+					"Width":6.91333
+				},
+				{
+					"Type":"Line",
+					"Name":"Line2",
+					"Left":0.21,
+					"Top":3.09563,
+					"Width":6.90729
+				},
+				{
+					"Type":"Line",
+					"Name":"Line3",
+					"Left":0.2,
+					"Top":0.105833,
+					"Height":2.99
+				},
+				{
+					"Type":"Line",
+					"Name":"Line4",
+					"Left":7.1,
+					"Top":0.105833,
+					"Height":2.98979
+				},
+				{
+					"Type":"Line",
+					"Name":"Line5",
+					"Left":2.40771,
+					"Top":0.105833,
+					"Height":2.98979
+				},
+				{
+					"Type":"Barcode",
+					"Name":"Barcode1",
+					"Left":0.423333,
+					"Top":0.291042,
+					"Width":1.82563,
+					"Height":1.66688,
+					"BarcodeType":"QRCode",
+					"CaptionPosition":"None",
+					"Text":"[#浜岀淮鐮�#]"
+				},
+				{
+					"Type":"Line",
+					"Name":"Line6",
+					"Left":2.40771,
+					"Top":0.873125,
+					"Width":4.68229
+				},
+				{
+					"Type":"Line",
+					"Name":"Line7",
+					"Left":2.40771,
+					"Top":1.64042,
+					"Width":4.68229
+				},
+				{
+					"Type":"Line",
+					"Name":"Line8",
+					"Left":0.21,
+					"Top":2.38125,
+					"Width":6.88
+				},
+				{
+					"Type":"StaticBox",
+					"Name":"StaticBox1",
+					"Left":0.396875,
+					"Top":2.51354,
+					"Width":1.00542,
+					"Height":0.423333,
+					"PaddingTop":0,
+					"Font":{
+						"Name":"瀹嬩綋",
+						"Size":90000,
+						"Weight":400,
+						"Charset":134
+					},
+					"Text":"鏁伴噺:"
+				},
+				{
+					"Type":"MemoBox",
+					"Name":"MemoBox1",
+					"Left":1.34938,
+					"Top":2.51354,
+					"Width":0.978958,
+					"Height":0.4,
+					"PaddingTop":0,
+					"Font":{
+						"Name":"瀹嬩綋",
+						"Size":90000,
+						"Weight":400,
+						"Charset":134
+					},
+					"Text":"[#鏁伴噺#]"
+				},
+				{
+					"Type":"StaticBox",
+					"Name":"StaticBox2",
+					"Left":2.51,
+					"Top":0.185208,
+					"Width":1.69333,
+					"Height":0.635,
+					"PaddingTop":0,
+					"Font":{
+						"Name":"瀹嬩綋",
+						"Size":90000,
+						"Weight":400,
+						"Charset":134
+					},
+					"Text":"宸ュ崟缂栧彿:"
+				},
+				{
+					"Type":"MemoBox",
+					"Name":"MemoBox2",
+					"Left":4.20688,
+					"Top":0.185208,
+					"Width":2.75,
+					"Height":0.66,
+					"PaddingTop":0,
+					"Font":{
+						"Name":"瀹嬩綋",
+						"Size":90000,
+						"Weight":400,
+						"Charset":134
+					},
+					"Text":"[#宸ュ崟缂栧彿#]"
+				},
+				{
+					"Type":"StaticBox",
+					"Name":"StaticBox3",
+					"Left":2.51,
+					"Top":0.9525,
+					"Width":1.69333,
+					"Height":0.635,
+					"PaddingTop":0,
+					"Font":{
+						"Name":"瀹嬩綋",
+						"Size":90000,
+						"Weight":400,
+						"Charset":134
+					},
+					"Text":"浜у搧缂栫爜:"
+				},
+				{
+					"Type":"MemoBox",
+					"Name":"MemoBox3",
+					"Left":4.23333,
+					"Top":0.9525,
+					"Width":2.75,
+					"Height":0.66,
+					"PaddingTop":0,
+					"Font":{
+						"Name":"瀹嬩綋",
+						"Size":90000,
+						"Weight":400,
+						"Charset":134
+					},
+					"Text":"[#浜у搧缂栫爜#]"
+				},
+				{
+					"Type":"StaticBox",
+					"Name":"StaticBox4",
+					"Left":2.54,
+					"Top":1.71979,
+					"Width":1.69,
+					"Height":0.58,
+					"PaddingTop":0,
+					"Font":{
+						"Name":"瀹嬩綋",
+						"Size":90000,
+						"Weight":400,
+						"Charset":134
+					},
+					"Text":"浜у搧鍚嶇О:"
+				},
+				{
+					"Type":"MemoBox",
+					"Name":"MemoBox4",
+					"Left":4.25979,
+					"Top":1.71979,
+					"Width":2.75167,
+					"Height":0.582083,
+					"PaddingTop":0,
+					"Font":{
+						"Name":"瀹嬩綋",
+						"Size":90000,
+						"Weight":400,
+						"Charset":134
+					},
+					"Text":"[#浜у搧鍚嶇О#]"
+				},
+				{
+					"Type":"StaticBox",
+					"Name":"StaticBox5",
+					"Left":2.56646,
+					"Top":2.48708,
+					"Width":1.69333,
+					"Height":0.529167,
+					"PaddingTop":0,
+					"Font":{
+						"Name":"瀹嬩綋",
+						"Size":90000,
+						"Weight":400,
+						"Charset":134
+					},
+					"Text":"涓嬮亾宸ュ簭:"
+				},
+				{
+					"Type":"MemoBox",
+					"Name":"MemoBox5",
+					"Left":4.28625,
+					"Top":2.48708,
+					"Width":2.75,
+					"Height":0.53,
+					"PaddingTop":0,
+					"Font":{
+						"Name":"瀹嬩綋",
+						"Size":90000,
+						"Weight":400,
+						"Charset":134
+					},
+					"Text":"[#涓嬮亾宸ュ簭#]"
+				}
+			],
+			"RepeatOnPage":true
+		}
+	]
+}
\ No newline at end of file
diff --git a/VueWebApi/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/VueWebApi/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
index 7dbc901..57b12bb 100644
--- a/VueWebApi/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
+++ b/VueWebApi/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
diff --git a/VueWebApi/obj/Debug/VueWebApi.csproj.AssemblyReference.cache b/VueWebApi/obj/Debug/VueWebApi.csproj.AssemblyReference.cache
index 3aa24a2..629d18e 100644
--- a/VueWebApi/obj/Debug/VueWebApi.csproj.AssemblyReference.cache
+++ b/VueWebApi/obj/Debug/VueWebApi.csproj.AssemblyReference.cache
Binary files differ
diff --git a/VueWebApi/obj/Debug/VueWebApi.csproj.CoreCompileInputs.cache b/VueWebApi/obj/Debug/VueWebApi.csproj.CoreCompileInputs.cache
index d6f5a8e..bcab3f4 100644
--- a/VueWebApi/obj/Debug/VueWebApi.csproj.CoreCompileInputs.cache
+++ b/VueWebApi/obj/Debug/VueWebApi.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-24cdde91ac8c6d255eb178d7de969e3b6dcc461c
+125a795aa5c2462dc5d311a148e283020224013c
diff --git a/VueWebApi/obj/Debug/VueWebApi.csproj.FileListAbsolute.txt b/VueWebApi/obj/Debug/VueWebApi.csproj.FileListAbsolute.txt
index 87de760..440a087 100644
--- a/VueWebApi/obj/Debug/VueWebApi.csproj.FileListAbsolute.txt
+++ b/VueWebApi/obj/Debug/VueWebApi.csproj.FileListAbsolute.txt
@@ -159,4 +159,3 @@
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\obj\Debug\VueWebApi.csproj.CopyComplete
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\obj\Debug\VueWebApi.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\obj\Debug\VueWebApi.pdb
-D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\obj\Debug\VueWebApi.csproj.AssemblyReference.cache
diff --git a/VueWebApi/obj/Debug/VueWebApi.pdb b/VueWebApi/obj/Debug/VueWebApi.pdb
index 58bb809..0b5b35f 100644
--- a/VueWebApi/obj/Debug/VueWebApi.pdb
+++ b/VueWebApi/obj/Debug/VueWebApi.pdb
Binary files differ
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/Grid/webapp-ws-tutorial.htm b/VueWebApi/obj/Release/Package/PackageTmp/Grid/webapp-ws-tutorial.htm
index f8a6664..1326aae 100644
--- a/VueWebApi/obj/Release/Package/PackageTmp/Grid/webapp-ws-tutorial.htm
+++ b/VueWebApi/obj/Release/Package/PackageTmp/Grid/webapp-ws-tutorial.htm
@@ -58,8 +58,7 @@
         function ws_ajax_preview() {
             //鍙傛暟鍏蜂綋璇存槑璇峰弬鑰冨府鍔╂枃妗d腑鐨勨�淲EB鎶ヨ〃(B/S鎶ヨ〃)->WEB鎶ヨ〃瀹㈡埛绔�->鍚姩鍙傛暟璇存槑鈥濋儴鍒�
             var args = {
-                /*report: urlAddRandomNo("../grf/浜у搧娴佷紶鍗旳5.grf"),*/
-                report: urlAddRandomNo("https://121.196.36.24:8001/grf/浜у搧娴佷紶鍗旳5.grf"),
+                report: urlAddRandomNo("../grf/浜у搧娴佷紶鍗旳5.grf"),
                 data:
                 {
                     "recordset": [
@@ -143,115 +142,11 @@
         }
     </script>
 
-    <p><a href='javascript:ws_ajax_export_xls();'>瀵煎嚭Excel(AJAX)</a>閫氳繃AJAX鏂瑰紡鑾峰彇鎶ヨ〃妯℃澘涓庢姤琛ㄦ暟鎹�</p>
-    <script language="javascript" type="text/javascript">
-        function ws_ajax_export_xls() {
-            var args = {
-                type: "xls",
-                report: urlAddRandomNo("../grf/1a.grf"),
-                data: "../data/DataCenter.ashx?data=Customer",
-                reportid: "1a" //杩欎釜鍙傛暟涓嶆槸蹇呴』鐨勶紝鍙槸鐢ㄤ簬鍥炲彂娑堟伅鏍囪瘑鎶ヨ〃韬唤
-            };
 
-            webapp_ws_ajax_run(args);
-        }
-    </script>
+   
 
-    <h3>鑷畾涔夋墦鍗板弬鏁�</h3>
-    <p> <a href='javascript:print_arguments();'>鑷畾涔夋墦鍗板弬鏁�</a>锛氭寚瀹氭墦鍗版満锛岃缃�愪唤鎵撳嵃涓庢墦鍗颁唤鏁般��</p>
-    <script language="javascript" type="text/javascript">
-        function print_arguments() {
-            var args = {
-                type: "print",   //濡傛灉鏄杩涜鎵撳嵃锛屽皢 type 璁剧疆涓� print
-                report: urlAddRandomNo("../grf/1a.grf"),
-                data: "../data/DataCenter.ashx?data=Customer",
-                PrinterName: "Microsoft Print to PDF", //鎸囧畾瑕佽緭鍑虹殑鎵撳嵃鏈哄悕绉�
-                Collate: false,  //涓嶆寜閫愪唤鏂瑰紡鎵撳嵃
-                Copies: 5        //鍏辨墦鍗�5浠�
-            }
-
-            webapp_ws_ajax_run(args);
-        }
-    </script>
-    
-    <p> <a href='javascript:export_xls_custom();'>鑷畾涔夊鍑篍xcel</a>锛氳缃悎閫傜殑閫夐」鍙傛暟锛屽皢鏁版嵁瀵煎嚭涓鸿繛缁殑琛ㄦ牸锛岄〉鐪夐〉鑴氫笉瀵煎嚭锛屼笉鏄剧ず瀵煎嚭鍙傛暟瀵硅瘽妗嗙瓑銆�</p>
-    <script language="javascript" type="text/javascript">
-        function export_xls_custom() {
-            var args = {
-                report:urlAddRandomNo("../grf/1a.grf"),
-                data: "../data/DataCenter.ashx?data=Customer",
-                type: "xls",
-                ExportPageBreak: false,
-                ExportPageHeaderFooter: false,
-                SameAsPrint: false,
-                showOptionDlg: false,  //鎸囧畾涓嶆樉绀哄鍑洪�夐」瀵硅瘽妗�
-                filename: "d:\\temp\\gridreport.xls", //鎸囧畾瀵煎嚭鐨勬枃浠惰矾寰勪笌鏂囦欢鍚�
-                //open: false  //鎸囧畾瀵煎嚭鍚庝笉鑷姩鎵撳紑鏂囦欢
-            }
-
-            webapp_ws_ajax_run(args);
-        }
-    </script>
-
-    <h3>鏇村搴旂敤鏂瑰紡</h3>
-    
-    <p><a href='javascript:ws_data_from_string();'>鎵撳嵃棰勮(鎶ヨ〃鏁版嵁鏉ヨ嚜瀛楃涓�)</a>锛氶�氳繃WebSocket鐩存帴灏嗙綉椤典腑鐨勫瓧绗︿覆鏁版嵁浼犻�掔粰WEB鎶ヨ〃瀹㈡埛绔��</p>
-    <script language="javascript" type="text/javascript">
-        function ws_data_from_string() {
-            var args = {
-                type: "preview", //璁剧疆涓嶅悓鐨勫睘鎬у彲浠ユ墽琛屼笉鍚岀殑浠诲姟锛屽锛歱review print pdf xls csv txt rtf img grd
-                report: urlAddRandomNo("../grf/1a.grf"),
-                //瀹為檯搴旂敤涓紝data搴旇涓虹▼搴忎腑閫氳繃鍚勭閫斿緞鑾峰彇鍒扮殑鏁版嵁锛屾渶鍚庤灏嗘暟鎹浆鎹负鎶ヨ〃闇�瑕佺殑XML鎴朖SON鏍煎紡鐨勫瓧绗︿覆鏁版嵁
-                data:"<xml>" +
-                    "<row><CustomerID>HUNGC</CustomerID><CompanyName>浜旈噾鏈烘</CompanyName><ContactName>鑻忓厛鐢�</ContactName><ContactTitle>閿�鍞唬琛�</ContactTitle></row>" +
-                    "<row><CustomerID>CENTC</CustomerID><CompanyName>涓夋嵎瀹炰笟</CompanyName><ContactName>鐜嬪厛鐢�</ContactName><ContactTitle>甯傚満缁忕悊</ContactTitle></row>" +
-                    "<row><CustomerID>CACTU</CustomerID><CompanyName>濞佽埅璐ц繍</CompanyName><ContactName>鍒樺厛鐢�</ContactName><ContactTitle>閿�鍞唬鐞�</ContactTitle></row>" +
-                    "</xml>",
-                    reportid: "ws_data_from_string" //杩欎釜鍙傛暟涓嶆槸蹇呴』鐨勶紝鍙槸鐢ㄤ簬鍥炲彂娑堟伅鏍囪瘑鎶ヨ〃韬唤
-                };
-            
-            webapp_ws_ajax_run(args);
-        }
-    </script>
-
-    <p><a href='javascript:ws_data_from_object();'>鎵撳嵃棰勮(鎶ヨ〃鏁版嵁鏉ヨ嚜JSON瀵硅薄)</a>锛氶�氳繃WebSocket鐩存帴灏嗙綉椤典腑鐨凧SON瀵硅薄鏁版嵁浼犻�掔粰WEB鎶ヨ〃瀹㈡埛绔��</p>
-    <script language="javascript" type="text/javascript">
-        function ws_data_from_object() {
-            var args = {
-                type: "preview", //璁剧疆涓嶅悓鐨勫睘鎬у彲浠ユ墽琛屼笉鍚岀殑浠诲姟锛屽锛歱review print pdf xls csv txt rtf img grd
-                report: urlAddRandomNo("../grf/1a.grf"),
-                //瀹為檯搴旂敤涓紝data搴旇涓虹▼搴忎腑閫氳繃鍚勭閫斿緞鑾峰彇鍒扮殑鏁版嵁锛屾渶鍚庤灏嗘暟鎹浆鎹负鎶ヨ〃闇�瑕佺殑XML鎴朖SON鏍煎紡鐨勫瓧绗︿覆鏁版嵁
-                data:
-                {
-                    "recordset": [
-                        {
-                            "CustomerID": "ALFKI",
-                            "CompanyName": "涓夊窛瀹炰笟鏈夐檺鍏徃",
-                            "ContactName": "鍒樺皬濮�",
-                            "Address": "澶у磭鏄庤矾 50 鍙�",
-                            "City": "澶╂触",
-                            "Region": "鍗庡寳",
-                            "PostalCode": "343567",
-                            "Phone": "(030) 30074321"
-                        },
-                        {
-                            "CustomerID": "ANATR",
-                            "CompanyName": "涓滃崡瀹炰笟",
-                            "ContactName": "鐜嬪厛鐢�",
-                            "Address": "鎵垮痉瑗胯矾 80 鍙�",
-                            "City": "澶╂触",
-                            "Region": "鍗庡寳",
-                            "PostalCode": "234575",
-                            "Phone": "(030) 35554729"
-                        }
-                    ]
-                },
-                reportid: "ws_data_from_object" //杩欎釜鍙傛暟涓嶆槸蹇呴』鐨勶紝鍙槸鐢ㄤ簬鍥炲彂娑堟伅鏍囪瘑鎶ヨ〃韬唤
-            };
-            
-            webapp_ws_ajax_run(args);
-        }
-    </script>
+   
+   
 
 </body>
 </html>
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
index e10343c..b2b450a 100644
--- a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
+++ b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
Binary files differ
diff --git a/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache b/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
index 00e7ec5..498d71e 100644
--- a/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
+++ b/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-f6225c264d26e4a01256c6511852917a12739a76
+f4cc57ce654eabbfabfa8274d88d8d88dfe841c3
diff --git a/VueWebApi/obj/Release/VueWebApi.pdb b/VueWebApi/obj/Release/VueWebApi.pdb
index e10343c..b2b450a 100644
--- a/VueWebApi/obj/Release/VueWebApi.pdb
+++ b/VueWebApi/obj/Release/VueWebApi.pdb
Binary files differ

--
Gitblit v1.9.3