From e691f2ecede6a962dfa76bb4a494ac1c80c9a389 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期六, 10 九月 2022 00:05:58 +0800
Subject: [PATCH] 设备点检记录导出接口去掉分页参数,设备保养记录查询、明细查询、导出(接口开发)

---
 VueWebApi/obj/Release/VueWebApi.pdb                                  |    0 
 VueWebApi/Hubs/ChatHub2.cs                                           |  120 ++++++
 VueWebApi/DLL/DAL/BasicSettingDAL.cs                                 |    8 
 packages/Fleck.1.2.0/Fleck.1.2.0.nupkg                               |    0 
 VueWebApi/DLL/BLL/DeviceManagerBLL.cs                                |   32 +
 .vs/VueWebApi/v16/.suo                                               |    0 
 VueWebApi/obj/Release/TransformWebConfig/original/Web.config         |    2 
 VueWebApi/DLL/DAL/ProductionManagementDAL.cs                         |    4 
 VueWebApi/Tools/ImportExcelData.cs                                   |   18 
 VueWebApi/DLL/DAL/LoginDAL.cs                                        |    2 
 VueWebApi/VueWebApi.csproj                                           |    6 
 VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache |    0 
 VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb           |    0 
 VueWebApi/Controllers/ProductionManagementController.cs              |   10 
 VueWebApi/Controllers/DeviceManagerController.cs                     |  108 +++++
 VueWebApi/Tools/TestSocket.cs                                        |   62 +++
 VueWebApi/Hubs/ChatHub.cs                                            |   43 +
 VueWebApi/obj/Release/Package/PackageTmp/Web.config                  |    2 
 VueWebApi/bin/VueWebApi.pdb                                          |    0 
 VueWebApi/Logs/2022-09-09.TXT                                        |    0 
 VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache       |    2 
 VueWebApi/bin/VueWebApi.dll.config                                   |    2 
 VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config      |    2 
 packages/Fleck.1.2.0/.signature.p7s                                  |    0 
 VueWebApi/Logs/2022-09-08.TXT                                        |    0 
 VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt          |    2 
 VueWebApi/Controllers/SendController.cs                              |   48 ++
 VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user       |   19 
 VueWebApi/Web.config                                                 |    2 
 VueWebApi/App_Start/Startup.cs                                       |   31 +
 VueWebApi/bin/VueWebApi.xml                                          |  142 ++++++-
 /dev/null                                                            |    0 
 VueWebApi/packages.config                                            |    1 
 VueWebApi/DLL/DAL/KanBanManagerentDAL.cs                             |    3 
 VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml           |  142 ++++++-
 VueWebApi/Logs/2022-09-07.TXT                                        |    0 
 VueWebApi/DLL/DAL/DeviceManagerDAL.cs                                |  315 ++++++++++++++++
 37 files changed, 1,040 insertions(+), 88 deletions(-)

diff --git a/.vs/VueWebApi/v16/.suo b/.vs/VueWebApi/v16/.suo
index 09123d5..2b5277d 100644
--- a/.vs/VueWebApi/v16/.suo
+++ b/.vs/VueWebApi/v16/.suo
Binary files differ
diff --git a/VueWebApi/App_Start/Startup.cs b/VueWebApi/App_Start/Startup.cs
index 368ac6c..6f90119 100644
--- a/VueWebApi/App_Start/Startup.cs
+++ b/VueWebApi/App_Start/Startup.cs
@@ -15,10 +15,37 @@
         {
             // 鏈夊叧濡備綍閰嶇疆搴旂敤绋嬪簭鐨勮缁嗕俊鎭紝璇疯闂� https://go.microsoft.com/fwlink/?LinkID=316888
             //鍏佽璺ㄥ煙
-            app.UseCors(CorsOptions.AllowAll);
+            //app.UseCors(CorsOptions.AllowAll);
             //app.MapSignalR("Hubs/chatHub", new HubConfiguration());
-            app.MapSignalR();
+            //app.MapSignalR();
             //鑷繁璁惧畾璁块棶璺緞锛屽悓鏃惰缃瓾ub閰嶇疆椤癸紝鏃犻渶鎸囧畾鍚姩鐨凥ub绫伙紝鍥犱负瀹冧滑琚嚜鍔ㄨ瘑鍒�
+
+            // 杩炴帴鏍囪瘑
+            //app.Map("/signalr", map =>
+            //{
+            //     //璺ㄥ煙
+            //    map.UseCors(CorsOptions.AllowAll);
+            //    var hubConfiguration = new HubConfiguration
+            //    {
+            //        EnableJSONP = true
+            //    };
+            //     //鍚姩閰嶇疆
+            //     map.RunSignalR(hubConfiguration);
+            //});
+
+
+            // 杩炴帴鏍囪瘑
+            app.Map("/signalr", map =>
+            {
+                //璺ㄥ煙
+                map.UseCors(CorsOptions.AllowAll);
+                var hubConfiguration = new HubConfiguration
+                {
+                    EnableJSONP = true
+                };
+                //鍚姩閰嶇疆
+                map.RunSignalR(hubConfiguration);
+            });
         }
     }
 }
\ No newline at end of file
diff --git a/VueWebApi/Controllers/DeviceManagerController.cs b/VueWebApi/Controllers/DeviceManagerController.cs
index 4874412..1815b1c 100644
--- a/VueWebApi/Controllers/DeviceManagerController.cs
+++ b/VueWebApi/Controllers/DeviceManagerController.cs
@@ -665,7 +665,7 @@
         }
         #endregion
 
-        #region[璁惧淇濆吇璁板綍鏄庣粏鏌ヨ]
+        #region[璁惧鐐规璁板綍鏄庣粏鏌ヨ]
         /// <summary>
         /// 璁惧淇濆吇璁板綍鏄庣粏鏌ヨ
         /// </summary>
@@ -680,5 +680,111 @@
         }
         #endregion
 
+        #region[璁惧鐐规璁板綍瀵煎嚭]
+        /// <summary>
+        /// 璁惧鐐规璁板綍瀵煎嚭
+        /// </summary>
+        /// <param name="wkshopcode">杞﹂棿缂栫爜</param>
+        /// <param name="eqpcode">璁惧缂栧彿</param>
+        /// <param name="eqpname">璁惧鍚嶇О</param>
+        /// <param name="stanedname">鏍囧噯鍚嶇О</param>
+        /// <param name="checkuser">鐐规浜哄憳</param>
+        /// <param name="checkdate">鐐规鏃堕棿</param>
+        /// <returns></returns>
+        [Route(template: "DeviceCheckTakeOutExcel")]
+        [HttpGet]
+        public HttpResponseMessage DeviceCheckTakeOutExcel(string wkshopcode = null, string eqpcode = null, string eqpname = null, string stanedname = null, string checkuser = null, string checkdate = null)
+        {
+            string checkopendate = "";  //鐐规寮�濮嬫椂闂�
+            string checkclosedate = "";    //鐐规缁撴潫鏃堕棿
+            if (checkdate != "" && checkdate != null)
+            {
+                checkopendate = checkdate.Split('~')[0].ToString();
+                checkclosedate = checkdate.Split('~')[1].ToString();
+            }
+            int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
+            int endNum = rows * page;   //缁撴潫璁板綍 rowNum
+            mes = DeviceManagerBLL.DeviceCheckTakeOutExcel(wkshopcode, eqpcode, eqpname, stanedname, checkuser, checkopendate, checkclosedate);
+            return TJson.toJson(mes);
+        }
+        #endregion
+
+
+        #region[璁惧淇濆吇璁板綍鏌ヨ]
+        /// <summary>
+        /// 璁惧淇濆吇璁板綍鏌ヨ
+        /// </summary>
+        /// <param name="wkshopcode">杞﹂棿缂栫爜</param>
+        /// <param name="eqpcode">璁惧缂栧彿</param>
+        /// <param name="eqpname">璁惧鍚嶇О</param>
+        /// <param name="stanedname">鏍囧噯鍚嶇О</param>
+        /// <param name="repairuser">淇濆吇浜哄憳</param>
+        /// <param name="repairdate">淇濆吇鏃堕棿</param>
+        /// <param name="repairresult">淇濆吇缁撴灉</param>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "DeviceRepairTakeSearch")]
+        [HttpGet]
+        public HttpResponseMessage DeviceRepairTakeSearch(int page, int rows, string prop, string order, string wkshopcode = null, string eqpcode = null, string eqpname = null, string stanedname = null, string repairuser = null, string repairdate = null,string repairresult=null)
+        {
+            string repairopendate = "";  //鐐规寮�濮嬫椂闂�
+            string repairclosedate = "";    //鐐规缁撴潫鏃堕棿
+            if (repairdate != "" && repairdate != null)
+            {
+                repairopendate = repairdate.Split('~')[0].ToString();
+                repairclosedate = repairdate.Split('~')[1].ToString();
+            }
+            int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
+            int endNum = rows * page;   //缁撴潫璁板綍 rowNum
+            mes = DeviceManagerBLL.DeviceRepairTakeSearch(wkshopcode, eqpcode, eqpname, stanedname, repairuser, repairopendate, repairclosedate, repairresult, startNum, endNum, prop, order);
+            return TJson.toJson(mes);
+        }
+        #endregion
+
+        #region[璁惧淇濆吇璁板綍鏄庣粏鏌ヨ]
+        /// <summary>
+        /// 璁惧淇濆吇璁板綍鏄庣粏鏌ヨ
+        /// </summary>
+        /// <param name="bywo">璁惧淇濆吇鍗曞彿</param>
+        /// <returns></returns>
+        [Route(template: "DeviceRepairSubTakeSearch")]
+        [HttpGet]
+        public HttpResponseMessage DeviceRepairSubTakeSearch(string bywo)
+        {
+            mes = DeviceManagerBLL.DeviceRepairSubTakeSearch(bywo);
+            return TJson.toJson(mes);
+        }
+        #endregion
+
+        #region[璁惧淇濆吇璁板綍瀵煎嚭]
+        /// <summary>
+        /// 璁惧淇濆吇璁板綍瀵煎嚭
+        /// </summary>
+        /// <param name="wkshopcode">杞﹂棿缂栫爜</param>
+        /// <param name="eqpcode">璁惧缂栧彿</param>
+        /// <param name="eqpname">璁惧鍚嶇О</param>
+        /// <param name="stanedname">鏍囧噯鍚嶇О</param>
+        /// <param name="repairuser">淇濆吇浜哄憳</param>
+        /// <param name="repairdate">淇濆吇鏃堕棿</param>
+        /// <param name="repairresult">淇濆吇缁撴灉</param>
+        /// <returns></returns>
+        [Route(template: "DeviceRepairTakeOutExcel")]
+        [HttpGet]
+        public HttpResponseMessage DeviceRepairTakeOutExcel(string wkshopcode = null, string eqpcode = null, string eqpname = null, string stanedname = null, string repairuser = null, string repairdate = null, string repairresult = null)
+        {
+            string repairopendate = "";  //鐐规寮�濮嬫椂闂�
+            string repairclosedate = "";    //鐐规缁撴潫鏃堕棿
+            if (repairdate != "" && repairdate != null)
+            {
+                repairopendate = repairdate.Split('~')[0].ToString();
+                repairclosedate = repairdate.Split('~')[1].ToString();
+            }
+            mes = DeviceManagerBLL.DeviceRepairTakeOutExcel(wkshopcode, eqpcode, eqpname, stanedname, repairuser, repairopendate, repairclosedate, repairresult);
+            return TJson.toJson(mes);
+        }
+        #endregion
     }
 }
diff --git a/VueWebApi/Controllers/ProductionManagementController.cs b/VueWebApi/Controllers/ProductionManagementController.cs
index a0d5aa4..85e20b7 100644
--- a/VueWebApi/Controllers/ProductionManagementController.cs
+++ b/VueWebApi/Controllers/ProductionManagementController.cs
@@ -672,6 +672,11 @@
         #endregion
 
         #region[MES宸ュ崟鎵归噺鍏抽棴鎻愪氦]
+        /// <summary>
+        /// MES宸ュ崟鎵归噺鍏抽棴鎻愪氦
+        /// </summary>
+        /// <param name="dt">宸ュ崟鍙锋暟缁勫璞�</param>
+        /// <returns></returns>
         [Route(template: "MesOrderBitchClosedSeave")]
         [HttpPost]
         public HttpResponseMessage MesOrderBitchClosedSeave(DataTable dt)
@@ -684,6 +689,11 @@
         #endregion
 
         #region[MES宸ュ崟鎵归噺鍙嶅叧闂璢
+        /// <summary>
+        /// MES宸ュ崟鎵归噺鍙嶅叧闂�
+        /// </summary>
+        /// <param name="dt">宸ュ崟鍙锋暟缁勫璞�</param>
+        /// <returns></returns>
         [Route(template: "MesOrderBitchAntiClosedSeave")]
         [HttpPost]
         public HttpResponseMessage MesOrderBitchAntiClosedSeave(DataTable dt)
diff --git a/VueWebApi/Controllers/SendController.cs b/VueWebApi/Controllers/SendController.cs
new file mode 100644
index 0000000..e251966
--- /dev/null
+++ b/VueWebApi/Controllers/SendController.cs
@@ -0,0 +1,48 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Net.WebSockets;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Web.Http;
+using VueWebApi.Tools;
+
+namespace VueWebApi.Controllers
+{
+    [RoutePrefix(prefix: "api/Send")]
+    [ControllerGroup("娑堟伅鎻愰啋", "鍦ㄧ嚎鎺ュ彛")]
+    public class SendController : ApiController
+    {
+        private readonly ClientWebSocket webSocket = new ClientWebSocket();
+        private readonly CancellationToken _cancellation = new CancellationToken();
+
+        [HttpGet]
+        public async Task SendMsg(string msg)
+        {
+            await webSocket.ConnectAsync(new Uri("ws://localhost:8001"), _cancellation);
+            var sendBytes = Encoding.UTF8.GetBytes(msg);//鍙戦�佺殑鏁版嵁
+            var bsend = new ArraySegment<byte>(sendBytes);
+            await webSocket.SendAsync(bsend, WebSocketMessageType.Binary, true, _cancellation);
+            await webSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, "1", _cancellation);
+            webSocket.Dispose();
+        }
+
+        //http://localhost:port/api/Send/Init
+        [HttpGet]
+        public string Init()
+        {
+            TestSocket.Instance.socketServer();
+            return "success";
+        }
+
+        [HttpGet]
+        public string Msg(string userid, string msg)
+        {
+            var _msg = TestSocket.Instance.Send(userid, msg);
+            return _msg;
+        }
+    }
+}
diff --git a/VueWebApi/DLL/BLL/DeviceManagerBLL.cs b/VueWebApi/DLL/BLL/DeviceManagerBLL.cs
index 5509388..3945b23 100644
--- a/VueWebApi/DLL/BLL/DeviceManagerBLL.cs
+++ b/VueWebApi/DLL/BLL/DeviceManagerBLL.cs
@@ -260,11 +260,41 @@
         }
         #endregion
 
-        #region[璁惧淇濆吇璁板綍鏄庣粏鏌ヨ]
+        #region[璁惧鐐规璁板綍鏄庣粏鏌ヨ]
         public static ToMessage DeviceCheckSubTakeSearch(string djwo)
         {
             return DeviceManagerDAL.DeviceCheckSubTakeSearch(djwo);
         }
         #endregion
+
+        #region[璁惧鐐规璁板綍瀵煎嚭]
+        public static ToMessage DeviceCheckTakeOutExcel(string wkshopcode, string eqpcode, string eqpname, string stanedname, string checkuser, string checkopendate, string checkclosedate)
+        {
+            return DeviceManagerDAL.DeviceCheckTakeOutExcel(wkshopcode, eqpcode, eqpname, stanedname, checkuser, checkopendate, checkclosedate);
+        }
+        #endregion
+
+
+
+        #region[璁惧淇濆吇璁板綍鏌ヨ]
+        public static ToMessage DeviceRepairTakeSearch(string wkshopcode, string eqpcode, string eqpname, string stanedname, string repairuser, string repairopendate, string repairclosedate, string repairresult, int startNum, int endNum, string prop, string order)
+        {
+            return DeviceManagerDAL.DeviceCheckTakeSearch(wkshopcode, eqpcode, eqpname, stanedname, repairuser, repairopendate, repairclosedate, repairresult, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[璁惧淇濆吇璁板綍鏄庣粏鏌ヨ]
+        public static ToMessage DeviceRepairSubTakeSearch(string bywo)
+        {
+            return DeviceManagerDAL.DeviceRepairSubTakeSearch(bywo);
+        }
+        #endregion
+
+        #region[璁惧淇濆吇璁板綍瀵煎嚭]
+        public static ToMessage DeviceRepairTakeOutExcel(string wkshopcode, string eqpcode, string eqpname, string stanedname, string repairuser, string repairopendate, string repairclosedate, string repairresult)
+        {
+            return DeviceManagerDAL.DeviceRepairTakeOutExcel(wkshopcode, eqpcode, eqpname, stanedname, repairuser, repairopendate, repairclosedate, repairresult);
+        }
+        #endregion
     }
 }
\ No newline at end of file
diff --git a/VueWebApi/DLL/DAL/BasicSettingDAL.cs b/VueWebApi/DLL/DAL/BasicSettingDAL.cs
index e512458..60137cb 100644
--- a/VueWebApi/DLL/DAL/BasicSettingDAL.cs
+++ b/VueWebApi/DLL/DAL/BasicSettingDAL.cs
@@ -320,7 +320,7 @@
                             left join TOrganization t on u.stu_torgcode=t.org_code 
                             left join TGroup g on u.usergroup_code=g.group_code
                             left join TUser S on u.lm_user=S.usercode
-                            where u.is_delete<>1 " + search;
+                            where u.is_delete='0' and u.userclassid='0' " + search;
                 var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
@@ -589,7 +589,7 @@
                 {
                     sql = @"select B.role_code as code,B.role_name as name,(case when C.role_code is null then 'N' else 'Y' end) flag from TRole B 
                              left join(select role_code  from TUserRoleRelation where user_code=@usercode) C on B.role_code=C.role_code
-                             where B.roletype_code=@roletype_code  and B.is_delete='0'";
+                             where B.roletype_code=@roletype_code  and B.is_delete='0' and B.is_system='0'";
                     dynamicParams.Add("@roletype_code", data[i].code);
                     dynamicParams.Add("@usercode", usercode);
                     var data0 = DapperHelper.select<TreeObejctCn>(sql, dynamicParams);
@@ -1084,7 +1084,7 @@
                             from TRole A
                             left join TRoleType  B on A.roletype_code=B.roletype_code
                             left join TUser T on A.lm_user=T.usercode
-                            where  A.is_delete<>'1' " + search;
+                            where  A.is_delete='0' and A.is_system='0' " + search;
                 var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
@@ -1270,7 +1270,7 @@
                              left join TOrganization B on A.stu_torgcode=B.org_code
                              left join (
                                 select distinct user_code  from TUserRoleRelation where role_code=@rolecode
-                             ) C on A.usercode=C.user_code where A.is_delete<>'1' " + search;
+                             ) C on A.usercode=C.user_code where A.is_delete='0' and A.userclassid='0' " + search;
                 dynamicParams.Add("@rolecode", rolecode);
                 var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                 mes.code = "200";
diff --git a/VueWebApi/DLL/DAL/DeviceManagerDAL.cs b/VueWebApi/DLL/DAL/DeviceManagerDAL.cs
index 33fa402..89c0d93 100644
--- a/VueWebApi/DLL/DAL/DeviceManagerDAL.cs
+++ b/VueWebApi/DLL/DAL/DeviceManagerDAL.cs
@@ -1970,7 +1970,7 @@
         }
         #endregion
 
-        #region[璁惧淇濆吇璁板綍鏄庣粏鏌ヨ]
+        #region[璁惧鐐规璁板綍鏄庣粏鏌ヨ]
         public static ToMessage DeviceCheckSubTakeSearch(string djwo)
         {
             string sql = "";
@@ -1998,5 +1998,318 @@
             return mes;
         }
         #endregion
+
+        #region[璁惧鐐规璁板綍瀵煎嚭]
+        public static ToMessage DeviceCheckTakeOutExcel(string wkshopcode, string eqpcode, string eqpname, string stanedname, string checkuser, string checkopendate, string checkclosedate)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (wkshopcode != "" && wkshopcode != null)
+                {
+                    search += "and T.org_code=@wkshopcode ";
+                    dynamicParams.Add("@wkshopcode", wkshopcode);
+                }
+                if (eqpcode != "" && eqpcode != null)
+                {
+                    search += "and A.eqp_code like '%'+@eqpcode+'%' ";
+                    dynamicParams.Add("@eqpcode", eqpcode);
+                }
+                if (eqpname != "" && eqpname != null)
+                {
+                    search += "and E.name like '%'+@eqpname+'%' ";
+                    dynamicParams.Add("@eqpname", eqpname);
+                }
+                if (stanedname != "" && stanedname != null)
+                {
+                    search += "and M.name like '%'+@stanedname+'%' ";
+                    dynamicParams.Add("@stanedname", stanedname);
+                }
+                if (checkuser != "" && checkuser != null)
+                {
+                    search += "and A.chk_user like '%'+@checkuser+'%' ";
+                    dynamicParams.Add("@checkuser", checkuser);
+                }
+                if (checkopendate != "" && checkopendate != null)
+                {
+                    search += "and A.chk_date between @checkopendate and @checkclosedate ";
+                    dynamicParams.Add("@checkopendate", checkopendate + " 00:00:00");
+                    dynamicParams.Add("@checkclosedate", checkclosedate + " 23:59:59");
+                }
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select 
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.eqpchkdeta_code) = 1 THEN A.djwo
+                            ELSE ''END AS '鐐规鍗曞彿',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY E.wksp_code ORDER BY B.eqpchkdeta_code) = 1 THEN T.org_name
+                            ELSE ''END AS '鐢熶骇杞﹂棿',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.eqp_code ORDER BY B.eqpchkdeta_code) = 1 THEN A.eqp_code
+                            ELSE ''END AS '璁惧缂栧彿',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.eqp_code ORDER BY B.eqpchkdeta_code) = 1 THEN E.name
+                            ELSE ''END AS '璁惧鍚嶇О',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.eqpchkmain_code ORDER BY B.eqpchkdeta_code) = 1 THEN A.eqpchkmain_code
+                            ELSE ''END AS '鐐规鏍囧噯缂栫爜',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.eqpchkmain_code ORDER BY B.eqpchkdeta_code) = 1 THEN M.name
+                            ELSE ''END AS '鐐规鏍囧噯鍚嶇О',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.chk_user ORDER BY B.eqpchkdeta_code) = 1 THEN A.chk_user
+                            ELSE ''END AS '妫�楠屼汉鍛�',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.chk_result ORDER BY B.eqpchkdeta_code) = 1 THEN A.chk_result
+                            ELSE ''END AS '妫�楠岀粨鏋�',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.chk_date ORDER BY B.eqpchkdeta_code) = 1 THEN A.chk_date
+                            END AS '妫�楠屾椂闂�',
+                            B.seq as '鐐规閮ㄤ綅搴忓彿',H.code '鐐规閮ㄤ綅缂栫爜',H.name '鐐规閮ㄤ綅鍚嶇О',B.result '鐐规缁撴灉',B.chk_value '鏁板��',B.remark '澶囨敞'
+                            from TEqpchk_Proc_Main A
+                            left join TEqpchk_Proc_Deta B on A.djwo=B.djwo
+                            left join TEqpInfo E on A.eqp_code=E.code
+                            left join TEqpchk_Main M on A.eqpchkmain_code=M.code
+                            left join TOrganization T on E.wksp_code=T.org_code
+                            left join TEqpchk_Item H on B.eqpchkdeta_code=H.code
+                            where T.description='W' " + search;
+                DataTable data = DapperHelper.selectdata(sql, dynamicParams);
+                data.TableName = "Table"; //璁剧疆DataTable鐨勫悕绉�
+                string msg = DownLoad.DataTableToExcel(data, "宸ュ簭妫�楠岃褰�");
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.count = total;
+                mes.data = msg;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+
+
+        #region[璁惧淇濆吇璁板綍鏌ヨ]
+        public static ToMessage DeviceCheckTakeSearch(string wkshopcode, string eqpcode, string eqpname, string stanedname, string repairuser, string repairopendate, string repairclosedate, string repairresult, int startNum, int endNum, string prop, string order)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (wkshopcode != "" && wkshopcode != null)
+                {
+                    search += "and T.org_code=@wkshopcode ";
+                    dynamicParams.Add("@wkshopcode", wkshopcode);
+                }
+                if (eqpcode != "" && eqpcode != null)
+                {
+                    search += "and A.eqp_code like '%'+@eqpcode+'%' ";
+                    dynamicParams.Add("@eqpcode", eqpcode);
+                }
+                if (eqpname != "" && eqpname != null)
+                {
+                    search += "and E.name like '%'+@eqpname+'%' ";
+                    dynamicParams.Add("@eqpname", eqpname);
+                }
+                if (stanedname != "" && stanedname != null)
+                {
+                    search += "and M.name like '%'+@stanedname+'%' ";
+                    dynamicParams.Add("@stanedname", stanedname);
+                }
+                if (repairuser != "" && repairuser != null)
+                {
+                    search += "and A.maint_user like '%'+@repairuser+'%' ";
+                    dynamicParams.Add("@repairuser", repairuser);
+                }
+                if (repairopendate != "" && repairopendate != null)
+                {
+                    search += "and A.maint_date between @repairopendate and @repairclosedate ";
+                    dynamicParams.Add("@repairopendate", repairopendate + " 00:00:00");
+                    dynamicParams.Add("@repairclosedate", repairclosedate + " 23:59:59");
+                }
+                if (repairresult != "" && repairresult != null)
+                {
+                    search += "and A.maint_result=@repairresult ";
+                    dynamicParams.Add("@repairresult", repairresult);
+                }
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select A.bywo,T.org_code,T.org_name,A.eqp_code,E.name as eqp_name,M.code as stanedcode,M.name as stanedname,A.maint_cyc,
+                            A.maint_user,A.maint_result,A.maint_date
+                            from TEqpmaint_Proc_Main A
+                            left join TEqpInfo E on A.eqp_code=E.code
+                            left join TEqpmai_Main M on A.eqpmaint_code=M.code
+                            left join TOrganization T on E.wksp_code=T.org_code
+                            where T.description='W' " + search;
+                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.count = total;
+                mes.data = data.ToList();
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[璁惧淇濆吇璁板綍鏄庣粏鏌ヨ]
+        public static ToMessage DeviceRepairSubTakeSearch(string bywo)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                sql = @"select A.seq,T.code as itemcode,T.name as itemname,A.result,A.maint_value,A.remark
+                        from TEqpmaint_Proc_Deta A
+                        left join TEqpmai_Item T on A.eqpmaideta_code=T.code
+                        where A.bywo=@bywo";
+                dynamicParams.Add("@bywo", bywo);
+                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 DeviceRepairTakeOutExcel(string wkshopcode, string eqpcode, string eqpname, string stanedname, string repairuser, string repairopendate, string repairclosedate, string repairresult)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (wkshopcode != "" && wkshopcode != null)
+                {
+                    search += "and T.org_code=@wkshopcode ";
+                    dynamicParams.Add("@wkshopcode", wkshopcode);
+                }
+                if (eqpcode != "" && eqpcode != null)
+                {
+                    search += "and A.eqp_code like '%'+@eqpcode+'%' ";
+                    dynamicParams.Add("@eqpcode", eqpcode);
+                }
+                if (eqpname != "" && eqpname != null)
+                {
+                    search += "and E.name like '%'+@eqpname+'%' ";
+                    dynamicParams.Add("@eqpname", eqpname);
+                }
+                if (stanedname != "" && stanedname != null)
+                {
+                    search += "and M.name like '%'+@stanedname+'%' ";
+                    dynamicParams.Add("@stanedname", stanedname);
+                }
+                if (repairuser != "" && repairuser != null)
+                {
+                    search += "and A.maint_user like '%'+@repairuser+'%' ";
+                    dynamicParams.Add("@repairuser", repairuser);
+                }
+                if (repairopendate != "" && repairopendate != null)
+                {
+                    search += "and A.chk_date between @repairopendate and @repairclosedate ";
+                    dynamicParams.Add("@repairopendate", repairopendate + " 00:00:00");
+                    dynamicParams.Add("@repairclosedate", repairclosedate + " 23:59:59");
+                }
+                if (repairresult != "" && repairresult != null)
+                {
+                    search += "and A.maint_result=@repairresult ";
+                    dynamicParams.Add("@repairresult", repairresult);
+                }
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select 
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.bywo ORDER BY B.eqpmaideta_code) = 1 THEN A.bywo
+                            ELSE ''END AS '淇濆吇鍗曞彿',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY E.wksp_code ORDER BY B.eqpmaideta_code) = 1 THEN T.org_name
+                            ELSE ''END AS '鐢熶骇杞﹂棿',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.eqp_code ORDER BY B.eqpmaideta_code) = 1 THEN A.eqp_code
+                            ELSE ''END AS '璁惧缂栧彿',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.eqp_code ORDER BY B.eqpmaideta_code) = 1 THEN E.name
+                            ELSE ''END AS '璁惧鍚嶇О',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.eqpmaint_code ORDER BY B.eqpmaideta_code) = 1 THEN A.eqpmaint_code
+                            ELSE ''END AS '淇濆吇鏍囧噯缂栫爜',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.eqpmaint_code ORDER BY B.eqpmaideta_code) = 1 THEN M.name
+                            ELSE ''END AS '淇濆吇鏍囧噯鍚嶇О',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.maint_cyc ORDER BY B.eqpmaideta_code) = 1 THEN A.maint_cyc
+                            ELSE ''END AS '淇濆吇鍛ㄦ湡',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.maint_user ORDER BY B.eqpmaideta_code) = 1 THEN A.maint_user
+                            ELSE ''END AS '淇濆吇浜哄憳',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.maint_result ORDER BY B.eqpmaideta_code) = 1 THEN A.maint_result
+                            ELSE ''END AS '淇濆吇缁撴灉',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.maint_date ORDER BY B.eqpmaideta_code) = 1 THEN A.maint_date
+                            END AS '淇濆吇鏃堕棿',
+                            B.seq as '淇濆吇閮ㄤ綅搴忓彿',H.code '淇濆吇閮ㄤ綅缂栫爜',H.name '淇濆吇閮ㄤ綅鍚嶇О',B.result '淇濆吇缁撴灉',B.maint_value '鏁板��',B.remark '澶囨敞'
+                            from TEqpmaint_Proc_Main A
+                            left join TEqpmaint_Proc_Deta B on A.bywo=B.bywo
+                            left join TEqpInfo E on A.eqp_code=E.code
+                            left join TEqpmai_Main M on A.eqpmaint_code=M.code
+                            left join TOrganization T on E.wksp_code=T.org_code
+                            left join TEqpmai_Item H on B.eqpmaideta_code=H.code
+                            where T.description='W' " + search;
+                DataTable data = DapperHelper.selectdata(sql, dynamicParams);
+                data.TableName = "Table"; //璁剧疆DataTable鐨勫悕绉�
+                string msg = DownLoad.DataTableToExcel(data, "宸ュ簭妫�楠岃褰�");
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.count = total;
+                mes.data = msg;
+            }
+            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/KanBanManagerentDAL.cs b/VueWebApi/DLL/DAL/KanBanManagerentDAL.cs
index 55a48fa..3e09e6f 100644
--- a/VueWebApi/DLL/DAL/KanBanManagerentDAL.cs
+++ b/VueWebApi/DLL/DAL/KanBanManagerentDAL.cs
@@ -446,4 +446,5 @@
         }
         #endregion
     }
-}
\ No newline at end of file
+}
+
diff --git a/VueWebApi/DLL/DAL/LoginDAL.cs b/VueWebApi/DLL/DAL/LoginDAL.cs
index 5a91a31..1782c02 100644
--- a/VueWebApi/DLL/DAL/LoginDAL.cs
+++ b/VueWebApi/DLL/DAL/LoginDAL.cs
@@ -25,7 +25,7 @@
         {
 
             //鎵цsql
-            strProcName = "select *  from [dbo].[TUser] where usercode=@username and password=@password";
+            strProcName = "select *  from [dbo].[TUser] where usercode=@username and password=@password and is_delete='0'";
             //鍒涘缓鍙傛暟
             listStr.Add(new SqlParameter("@username", username));
             listStr.Add(new SqlParameter("@password", password));
diff --git a/VueWebApi/DLL/DAL/ProductionManagementDAL.cs b/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
index 8012c84..5bd6c2b 100644
--- a/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
+++ b/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
@@ -2487,10 +2487,10 @@
                 for (int i = 0; i < dt.Rows.Count; i++)
                 {
                     //鍏抽棴宸ュ崟瀵瑰簲宸ュ簭浠诲姟
-                    sql = @"update TK_Wrk_Step set status='CLOSED'  where wo_code=@wocode";
+                    sql = @"update TK_Wrk_Step set status='START'  where wo_code=@wocode";
                     list.Add(new { str = sql, parm = new { wocode = dt.Rows[i]["WO_CODE"].ToString() } });
                     //鍥炲啓宸ュ崟琛ㄧ姸鎬佷负(鍏抽棴)
-                    sql = @"update TK_Wrk_Man set status='CLOSED',closeuser=@username,closedate=@closedate  where wo_code=@wocode";
+                    sql = @"update TK_Wrk_Man set status='START',closeuser=@username,closedate=@closedate  where wo_code=@wocode";
                     list.Add(new { str = sql, parm = new { wocode = dt.Rows[i]["WO_CODE"].ToString(), username = username, closedate = DateTime.Now.ToString() } });
                 }
                 bool aa = DapperHelper.DoTransaction(list);
diff --git a/VueWebApi/Hubs/ChatHub.cs b/VueWebApi/Hubs/ChatHub.cs
index e7f51fb..c271caa 100644
--- a/VueWebApi/Hubs/ChatHub.cs
+++ b/VueWebApi/Hubs/ChatHub.cs
@@ -1,10 +1,11 @@
-锘縰sing Microsoft.AspNet.SignalR;
+锘縰sing Dapper;
+using Microsoft.AspNet.SignalR;
 using System;
 using System.Collections.Generic;
 using System.Data;
 using System.Linq;
 using System.Web;
-using VueWebApi.Models;
+using VueWebApi.Tools;
 
 namespace VueWebApi.Hubs
 {
@@ -29,6 +30,7 @@
         /// <param name="cont">娑堟伅鍐呭</param>
         public void SendByGroup(string name1, string name2, string cont)
         {
+            LogHelper.WriteLogData("鐧诲綍浜哄憳:" + name1 + "鍙戦�佷汉:" + name2 + "鍙戦�佸唴瀹�:" + cont);
             //Client鍐呬负鐢ㄦ埛鐨刬d锛屾槸鍞竴鐨勶紝SendMessage鍑芥暟鏄墠绔嚱鏁帮紝鎰忔�濇槸鏈嶅姟鍣ㄥ皢璇ユ秷鎭帹閫佽嚦鍓嶇
             //Clients.Client(_connections[name2]).SendMessage("鏉ヨ嚜鐢ㄦ埛:" + name1 + " 鍐呭锛�" + cont + "" + DateTime.Now.ToString("yyyy/MM/ddhh:mm:ss") + "鐨勬秷鎭帹閫侊紒");
             Clients.Client(_connections[name2]).SendMessage("鏉ヨ嚜鐢ㄦ埛:" + name1 + " 鍐呭锛�" + cont + "" + DateTime.Now.ToString("yyyy/MM/ddhh:mm:ss") + "鐨勬秷鎭帹閫侊紒");
@@ -36,17 +38,18 @@
         public void SendByGroups(string name1, DataTable name2, string cont)
         {
             var departmentIDs = name2.AsEnumerable().ToList().Select(x => x.Field<string>("name")).ToList();
-            var FindPublicBaseDic = _connections.Where(d => departmentIDs.Contains(d.Key)).Select(x=>x.Value).ToList();
+            var FindPublicBaseDic = _connections.Where(d => departmentIDs.Contains(d.Key)).Select(x => x.Value).ToList();
             Clients.Clients(FindPublicBaseDic).SendMessage("鏉ヨ嚜鐢ㄦ埛:" + name1 + " 鍐呭锛�" + cont + "" + DateTime.Now.ToString("yyyy/MM/ddhh:mm:ss") + "鐨勬秷鎭帹閫侊紒");
         }
 
 
         /// <summary>
-        /// 鐢ㄦ埛涓婄嚎鍑芥暟
+        /// 鐢ㄦ埛涓婄嚎鍑芥暟(鍗曠敤鎴�)
         /// </summary>
         /// <param name="name">鐢ㄦ埛鍚�</param>
         public void SendLogin(string name)
         {
+            LogHelper.WriteLogData("鐧诲綍浜哄憳:" + name);
             if (!userList.Contains(name))
             {
                 userList.Add(name);
@@ -61,9 +64,37 @@
             //鏂扮敤鎴蜂笂绾匡紝鏈嶅姟鍣ㄥ箍鎾鐢ㄦ埛鍚�
             Clients.All.loginUser(userList);
         }
+        /// <summary>
+        /// 鐢ㄦ埛涓婄嚎鍑芥暟(澶氱敤鎴�)
+        /// </summary>
+        /// <param name="code">鐢ㄦ埛鍚嶉泦鍚�</param>
+        public void SendLogins(string code)
+        {
+            string[] selects = Array.ConvertAll<string, string>(code.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[] 
+            //鏌ユ壘绯荤粺鐢ㄦ埛
+            var sql = @"select usercode as code,username as name
+                            from TUser 
+                            where  is_delete='0' and enable='Y' and usercode in @usercode";
+            var data = DapperHelper.selectlist(sql, new { shopcode = selects.ToArray() });
+            for (int i = 0; i < data.Rows.Count; i++)
+            {
+
+                if (!userList.Contains(data.Rows[i]["name"].ToString()))
+                {
+                    userList.Add(data.Rows[i]["name"].ToString());
+                    //杩欓噷渚挎槸灏嗙敤鎴穒d鍜屽鍚嶈仈绯昏捣鏉�
+                    _connections.Add(data.Rows[i]["name"].ToString(), Context.ConnectionId);
+                }
+                else
+                {
+                    //姣忔鐧婚檰id浼氬彂鐢熷彉鍖�
+                    _connections[data.Rows[i]["name"].ToString()] = Context.ConnectionId;
+                }
+            }
+            //鏂扮敤鎴蜂笂绾匡紝鏈嶅姟鍣ㄥ箍鎾鐢ㄦ埛鍚�
+            Clients.All.loginUser(userList);
+        }
     }
-
-
     public class UserInfo
     {
         public static IList<string> userList = new List<string>();
diff --git a/VueWebApi/Hubs/ChatHub2.cs b/VueWebApi/Hubs/ChatHub2.cs
new file mode 100644
index 0000000..2d014a1
--- /dev/null
+++ b/VueWebApi/Hubs/ChatHub2.cs
@@ -0,0 +1,120 @@
+锘縰sing Microsoft.AspNet.SignalR;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Web;
+using VueWebApi.Models;
+using VueWebApi.Tools;
+
+namespace VueWebApi.Hubs
+{
+    public class ChatHub2 : Hub
+    {
+        /// < summary>
+        ///
+        /// </ summary>
+        public static List<string> Users = new List<string>();
+
+        /// <summary>
+        /// 鏈繛鎺ヤ簨浠�
+        /// </summary>
+        /// <returns></returns>
+        public override Task OnConnected()
+        {
+            LogHelper.WriteLogData("鎵цOnConnected");
+            string clientId = GetClientId();
+            if (Users.IndexOf(clientId) == -1)
+            {
+                Users.Add(clientId);
+            }
+            Send(Users.Count);
+            var context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
+            context.Clients.Client(clientId).updateUserName(clientId);
+            return base.OnConnected();
+        }
+
+        /// <summary>
+        /// 閲嶆柊杩炴帴浜嬩欢
+        /// </summary>
+        /// <returns></returns>
+        public override Task OnReconnected()
+        {
+            LogHelper.WriteLogData("鎵цOnReconnected");
+            string clientId = GetClientId();
+            if (Users.IndexOf(clientId) == -1)
+            {
+                Users.Add(clientId);
+            }
+            Send(Users.Count);
+            return base.OnReconnected();
+        }
+
+        /// <summary>
+        /// 鏂紑杩炴帴浜嬩欢
+        /// </summary>
+        /// <param name="stopCalled"></param>
+        /// <returns></returns>
+        public override Task OnDisconnected(bool stopCalled)
+        {
+            LogHelper.WriteLogData("鎵цOnDisconnected");
+            string clientId = GetClientId();
+
+            if (Users.IndexOf(clientId) > -1)
+            {
+                Users.Remove(clientId);
+            }
+            Send(Users.Count);
+            return base.OnDisconnected(stopCalled);
+        }
+
+        /// <summary>
+        /// 杩欏浜庢瘡涓鎴风閮芥槸鍞竴鐨勶紝鐢ㄤ簬鏍囪瘑杩炴帴銆�
+        /// </summary>
+        /// <returns></returns>
+        private string GetClientId()
+        {
+            string clientId = "";
+
+            //浠庡簲鐢ㄧ▼搴忎紶閫掔殑瀹㈡埛ID
+            if (Context.QueryString["clientId"] != null)
+            {
+                clientId = this.Context.QueryString["clientId"];
+            }
+
+            if (string.IsNullOrEmpty(clientId.Trim()))
+            {
+                clientId = Context.ConnectionId;
+            }
+            LogHelper.WriteLogData("鎵ц1:" + clientId);
+            return clientId;
+        }
+
+        /// <summary>
+        /// Sends the update user count to the listening view.
+        /// </summary>
+        /// <param name="count">
+        /// The count.
+        /// </param>
+        public void Send(int count)
+        {
+            LogHelper.WriteLogData("鎵цcount:" + count);
+            // Call the addNewMessageToPage method to update clients.
+            var context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
+            context.Clients.All.updateUsersOnlineCount(count);
+        }
+        /// <summary>
+        /// 鑷繁鍐欑殑涓�涓湇鍔$鏂规硶Hello.
+        /// </summary>
+        /// <param name="msg">鍙傛暟
+        /// </param>
+        public void Hello(string msg)
+        {
+            LogHelper.WriteLogData("鎵цmsg:" + msg);
+            var context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
+            context.Clients.All.clientMethod("server:" + msg);
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/VueWebApi/Logs/2022-09-07.TXT b/VueWebApi/Logs/2022-09-07.TXT
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/VueWebApi/Logs/2022-09-07.TXT
diff --git a/VueWebApi/Logs/2022-09-08.TXT b/VueWebApi/Logs/2022-09-08.TXT
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/VueWebApi/Logs/2022-09-08.TXT
diff --git a/VueWebApi/Logs/2022-09-09.TXT b/VueWebApi/Logs/2022-09-09.TXT
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/VueWebApi/Logs/2022-09-09.TXT
diff --git a/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user b/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
index b8fb7ea..fe3e137 100644
--- a/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
+++ b/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -5,7 +5,7 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
     <_PublishTargetUrl>D:\缃戠珯鍙戝竷\XKDMesApi</_PublishTargetUrl>
-    <History>True|2022-09-06T10:29:29.2671862Z;True|2022-09-06T16:41:04.2719822+08:00;True|2022-09-06T14:17:31.6896132+08:00;True|2022-09-06T13:14:39.9657702+08:00;True|2022-09-05T13:34:47.0627238+08:00;True|2022-09-05T11:07:59.2835592+08:00;True|2022-09-02T14:01:56.1233378+08:00;True|2022-08-31T23:40:49.5468281+08:00;True|2022-08-31T22:15:50.0388123+08:00;True|2022-08-31T19:20:24.7693742+08:00;True|2022-08-31T19:00:06.8271626+08:00;True|2022-08-31T18:45:08.6483670+08:00;True|2022-08-31T16:59:34.8244511+08:00;True|2022-08-31T15:39:51.0653019+08:00;True|2022-08-31T15:25:32.5277796+08:00;True|2022-08-31T13:31:48.5734692+08:00;True|2022-08-31T12:59:02.1022191+08:00;True|2022-08-31T10:06:03.2043884+08:00;True|2022-08-30T17:36:34.5932064+08:00;True|2022-08-30T17:18:12.4582841+08:00;True|2022-08-30T12:55:16.4084322+08:00;True|2022-08-30T10:12:08.0975252+08:00;True|2022-08-30T09:12:46.2845546+08:00;True|2022-08-30T08:58:47.8389468+08:00;True|2022-08-29T17:21:17.7779579+08:00;True|2022-08-29T17:17:49.5334583+08:00;True|2022-08-29T16:53:46.6019453+08:00;True|2022-08-29T16:46:50.8158231+08:00;True|2022-08-29T12:25:19.0140888+08:00;True|2022-08-26T17:02:52.4614637+08:00;True|2022-08-26T16:52:47.8585471+08:00;True|2022-08-26T16:47:02.5766798+08:00;True|2022-08-26T16:36:15.5793109+08:00;True|2022-08-26T16:15:55.1795297+08:00;True|2022-08-26T16:00:22.2697361+08:00;False|2022-08-26T15:58:16.7347649+08:00;True|2022-08-26T15:22:29.6367466+08:00;True|2022-08-25T20:02:24.4685508+08:00;True|2022-08-25T19:50:42.8601696+08:00;True|2022-08-25T15:56:20.3615518+08:00;True|2022-08-25T15:48:16.9923580+08:00;True|2022-08-25T15:27:07.9474640+08:00;True|2022-08-25T13:11:36.9626131+08:00;True|2022-08-24T14:10:58.2790665+08:00;True|2022-08-24T11:43:10.4463552+08:00;True|2022-08-24T08:02:17.9871411+08:00;True|2022-08-23T22:50:41.0238571+08:00;True|2022-08-23T22:16:20.9249814+08:00;True|2022-08-23T21:59:21.1909300+08:00;True|2022-08-23T21:50:40.8106496+08:00;True|2022-08-23T21:06:55.6611505+08:00;True|2022-08-23T19:49:07.0507418+08:00;True|2022-08-23T19:03:15.9808046+08:00;True|2022-08-23T18:58:57.1700899+08:00;True|2022-08-23T18:54:26.8058591+08:00;True|2022-08-23T18:45:39.1928602+08:00;True|2022-08-23T17:32:10.6125039+08:00;True|2022-08-23T15:58:34.9205174+08:00;True|2022-08-23T15:49:21.3383764+08:00;True|2022-08-23T15:14:21.0775398+08:00;True|2022-08-23T15:04:07.8829410+08:00;True|2022-08-23T14:59:17.5143895+08:00;True|2022-08-23T14:55:17.0069050+08:00;True|2022-08-23T14:41:41.0884731+08:00;True|2022-08-23T14:41:06.5045325+08:00;True|2022-08-23T14:28:54.7390570+08:00;True|2022-08-23T13:56:59.3670549+08:00;True|2022-08-23T13:56:38.8588174+08:00;True|2022-08-22T20:48:56.2180227+08:00;True|2022-08-22T19:07:12.1093584+08:00;True|2022-08-22T19:04:07.7837887+08:00;True|2022-08-22T14:38:00.9342884+08:00;True|2022-08-22T10:59:23.2073567+08:00;True|2022-08-22T10:53:58.0920733+08:00;True|2022-08-22T10:53:10.2446944+08:00;True|2022-08-22T10:43:35.3791396+08:00;True|2022-08-18T09:45:46.4643950+08:00;True|2022-08-18T09:40:55.2601145+08:00;True|2022-08-16T16:17:14.3399134+08:00;True|2022-08-15T17:58:16.1460123+08:00;True|2022-08-15T17:55:55.7137518+08:00;True|2022-08-15T17:44:37.6024482+08:00;True|2022-08-15T17:44:21.9583041+08:00;True|2022-08-15T17:43:23.1305690+08:00;True|2022-08-15T17:29:31.1670490+08:00;True|2022-08-15T17:26:42.9269470+08:00;True|2022-08-15T17:23:27.0940168+08:00;True|2022-08-15T17:07:32.9192045+08:00;True|2022-08-15T16:47:03.8611076+08:00;True|2022-08-15T16:41:50.6843705+08:00;True|2022-08-15T16:38:26.7407413+08:00;True|2022-08-15T16:31:49.0805578+08:00;True|2022-08-15T16:27:33.6712012+08:00;True|2022-08-15T16:24:35.1042794+08:00;True|2022-08-15T16:21:57.2757683+08:00;True|2022-08-15T16:18:17.3545368+08:00;True|2022-08-15T16:15:04.2645412+08:00;True|2022-08-15T14:44:09.3078026+08:00;True|2022-08-15T11:20:09.2930712+08:00;True|2022-08-15T10:42:12.2991587+08:00;True|2022-08-15T10:41:38.3711025+08:00;True|2022-08-15T10:19:06.9974383+08:00;True|2022-08-12T17:15:09.2133281+08:00;True|2022-08-12T10:48:05.8776009+08:00;True|2022-08-12T10:26:16.4183447+08:00;True|2022-08-12T08:33:01.9502005+08:00;True|2022-08-11T09:06:08.8394009+08:00;True|2022-08-11T08:39:06.2534634+08:00;True|2022-08-11T08:05:13.6919725+08:00;True|2022-08-08T14:48:16.3637965+08:00;True|2022-08-05T15:44:02.3797448+08:00;True|2022-08-05T09:57:55.7744103+08:00;True|2022-08-04T15:24:38.8785046+08:00;True|2022-08-04T15:11:16.7054147+08:00;True|2022-08-04T14:53:52.7239932+08:00;True|2022-08-04T14:48:35.6115863+08:00;True|2022-08-04T14:39:16.1113507+08:00;True|2022-08-04T12:26:39.4998322+08:00;True|2022-08-04T10:34:23.9626503+08:00;True|2022-08-04T08:12:51.4305728+08:00;True|2022-08-03T15:43:09.2317512+08:00;True|2022-08-02T19:17:55.0460145+08:00;True|2022-08-02T19:08:13.5872184+08:00;True|2022-08-02T18:50:12.1280167+08:00;True|2022-08-02T18:05:53.6540810+08:00;True|2022-08-02T16:13:26.3567210+08:00;True|2022-08-02T15:27:59.9264333+08:00;True|2022-07-25T15:35:49.6958399+08:00;True|2022-07-25T15:30:40.4444876+08:00;True|2022-07-25T13:33:38.4068153+08:00;True|2022-07-22T15:00:56.7326322+08:00;True|2022-07-22T14:51:18.0169121+08:00;True|2022-07-22T14:26:08.4246205+08:00;True|2022-07-22T14:23:05.0897016+08:00;True|2022-07-22T14:18:18.7806854+08:00;True|2022-07-22T14:09:29.7924367+08:00;True|2022-07-22T14:02:26.6403133+08:00;True|2022-07-22T13:56:40.0887615+08:00;True|2022-07-22T13:50:10.7852190+08:00;True|2022-07-22T11:38:25.6671780+08:00;True|2022-07-22T10:55:36.7947659+08:00;True|2022-07-21T17:53:41.1464086+08:00;True|2022-07-21T17:43:33.5311479+08:00;True|2022-07-21T16:09:07.7687640+08:00;True|2022-07-21T16:04:47.9317019+08:00;True|2022-07-21T15:58:21.2359033+08:00;True|2022-07-21T15:56:07.7425829+08:00;True|2022-07-21T15:51:34.7108381+08:00;True|2022-07-21T15:48:57.5735708+08:00;True|2022-07-21T15:44:25.8205030+08:00;True|2022-07-21T15:25:51.4222269+08:00;True|2022-07-21T15:22:36.8818295+08:00;True|2022-07-21T15:19:28.8532774+08:00;True|2022-07-21T14:57:45.7532568+08:00;True|2022-07-21T11:16:12.0900762+08:00;True|2022-07-21T10:10:40.4714948+08:00;True|2022-07-21T10:00:19.5258058+08:00;True|2022-07-14T14:34:28.5093226+08:00;True|2022-07-14T13:59:59.7754985+08:00;True|2022-07-14T12:46:29.6685284+08:00;True|2022-07-14T09:22:25.9079652+08:00;True|2022-07-14T09:22:04.6797478+08:00;True|2022-07-14T09:10:45.0177607+08:00;True|2022-07-14T08:41:43.3026713+08:00;True|2022-07-14T08:27:32.7454972+08:00;True|2022-07-14T08:21:58.6572366+08:00;True|2022-07-14T08:17:59.2904747+08:00;True|2022-07-14T08:12:39.8483472+08:00;True|2022-06-30T15:04:41.6941982+08:00;True|2022-06-24T16:39:01.1080301+08:00;True|2022-06-17T13:23:15.1455451+08:00;True|2022-06-17T13:22:18.5517557+08:00;True|2022-06-17T13:19:27.7323818+08:00;True|2022-06-17T13:12:24.1252779+08:00;True|2022-06-17T13:09:20.4234258+08:00;True|2022-06-17T13:06:49.9869509+08:00;True|2022-06-17T12:58:54.6964621+08:00;False|2022-06-17T12:58:10.6767711+08:00;False|2022-06-17T12:57:08.9747950+08:00;False|2022-06-17T12:56:18.4650121+08:00;False|2022-06-17T12:55:57.9981927+08:00;True|2022-06-13T14:21:36.5610928+08:00;True|2022-06-13T11:41:39.4210151+08:00;True|2022-06-11T02:35:03.4727934+08:00;True|2022-06-11T02:31:13.7362660+08:00;True|2022-06-11T02:30:58.3616790+08:00;True|2022-06-11T01:57:04.4951468+08:00;True|2022-06-10T13:27:13.2097124+08:00;</History>
+    <History>True|2022-09-09T07:21:48.4251654Z;True|2022-09-09T14:45:54.9315147+08:00;True|2022-09-09T11:01:18.2619729+08:00;True|2022-09-09T09:35:40.9779148+08:00;True|2022-09-09T09:26:51.9854326+08:00;True|2022-09-09T09:11:48.8023373+08:00;True|2022-09-09T09:05:45.5528883+08:00;True|2022-09-08T17:47:35.2628987+08:00;True|2022-09-08T17:43:32.6700813+08:00;True|2022-09-08T17:01:23.6259930+08:00;True|2022-09-08T16:55:57.2305777+08:00;True|2022-09-08T16:35:37.3631720+08:00;True|2022-09-08T16:19:13.9122228+08:00;True|2022-09-08T16:04:07.7348285+08:00;True|2022-09-08T16:00:49.9961701+08:00;True|2022-09-08T15:16:03.0110619+08:00;True|2022-09-08T10:19:46.2872822+08:00;True|2022-09-08T10:11:15.5386438+08:00;True|2022-09-08T08:19:02.5242539+08:00;True|2022-09-08T08:18:11.7308721+08:00;True|2022-09-07T11:39:27.2463573+08:00;True|2022-09-07T10:40:57.8877369+08:00;True|2022-09-07T10:37:10.1517098+08:00;True|2022-09-07T10:30:08.7782107+08:00;True|2022-09-07T10:23:52.8534200+08:00;True|2022-09-07T10:09:31.6994230+08:00;True|2022-09-07T10:01:16.2683112+08:00;True|2022-09-07T09:51:47.6282546+08:00;True|2022-09-06T19:11:45.1701913+08:00;True|2022-09-06T18:29:29.2671862+08:00;True|2022-09-06T16:41:04.2719822+08:00;True|2022-09-06T14:17:31.6896132+08:00;True|2022-09-06T13:14:39.9657702+08:00;True|2022-09-05T13:34:47.0627238+08:00;True|2022-09-05T11:07:59.2835592+08:00;True|2022-09-02T14:01:56.1233378+08:00;True|2022-08-31T23:40:49.5468281+08:00;True|2022-08-31T22:15:50.0388123+08:00;True|2022-08-31T19:20:24.7693742+08:00;True|2022-08-31T19:00:06.8271626+08:00;True|2022-08-31T18:45:08.6483670+08:00;True|2022-08-31T16:59:34.8244511+08:00;True|2022-08-31T15:39:51.0653019+08:00;True|2022-08-31T15:25:32.5277796+08:00;True|2022-08-31T13:31:48.5734692+08:00;True|2022-08-31T12:59:02.1022191+08:00;True|2022-08-31T10:06:03.2043884+08:00;True|2022-08-30T17:36:34.5932064+08:00;True|2022-08-30T17:18:12.4582841+08:00;True|2022-08-30T12:55:16.4084322+08:00;True|2022-08-30T10:12:08.0975252+08:00;True|2022-08-30T09:12:46.2845546+08:00;True|2022-08-30T08:58:47.8389468+08:00;True|2022-08-29T17:21:17.7779579+08:00;True|2022-08-29T17:17:49.5334583+08:00;True|2022-08-29T16:53:46.6019453+08:00;True|2022-08-29T16:46:50.8158231+08:00;True|2022-08-29T12:25:19.0140888+08:00;True|2022-08-26T17:02:52.4614637+08:00;True|2022-08-26T16:52:47.8585471+08:00;True|2022-08-26T16:47:02.5766798+08:00;True|2022-08-26T16:36:15.5793109+08:00;True|2022-08-26T16:15:55.1795297+08:00;True|2022-08-26T16:00:22.2697361+08:00;False|2022-08-26T15:58:16.7347649+08:00;True|2022-08-26T15:22:29.6367466+08:00;True|2022-08-25T20:02:24.4685508+08:00;True|2022-08-25T19:50:42.8601696+08:00;True|2022-08-25T15:56:20.3615518+08:00;True|2022-08-25T15:48:16.9923580+08:00;True|2022-08-25T15:27:07.9474640+08:00;True|2022-08-25T13:11:36.9626131+08:00;True|2022-08-24T14:10:58.2790665+08:00;True|2022-08-24T11:43:10.4463552+08:00;True|2022-08-24T08:02:17.9871411+08:00;True|2022-08-23T22:50:41.0238571+08:00;True|2022-08-23T22:16:20.9249814+08:00;True|2022-08-23T21:59:21.1909300+08:00;True|2022-08-23T21:50:40.8106496+08:00;True|2022-08-23T21:06:55.6611505+08:00;True|2022-08-23T19:49:07.0507418+08:00;True|2022-08-23T19:03:15.9808046+08:00;True|2022-08-23T18:58:57.1700899+08:00;True|2022-08-23T18:54:26.8058591+08:00;True|2022-08-23T18:45:39.1928602+08:00;True|2022-08-23T17:32:10.6125039+08:00;True|2022-08-23T15:58:34.9205174+08:00;True|2022-08-23T15:49:21.3383764+08:00;True|2022-08-23T15:14:21.0775398+08:00;True|2022-08-23T15:04:07.8829410+08:00;True|2022-08-23T14:59:17.5143895+08:00;True|2022-08-23T14:55:17.0069050+08:00;True|2022-08-23T14:41:41.0884731+08:00;True|2022-08-23T14:41:06.5045325+08:00;True|2022-08-23T14:28:54.7390570+08:00;True|2022-08-23T13:56:59.3670549+08:00;True|2022-08-23T13:56:38.8588174+08:00;True|2022-08-22T20:48:56.2180227+08:00;True|2022-08-22T19:07:12.1093584+08:00;True|2022-08-22T19:04:07.7837887+08:00;True|2022-08-22T14:38:00.9342884+08:00;True|2022-08-22T10:59:23.2073567+08:00;True|2022-08-22T10:53:58.0920733+08:00;True|2022-08-22T10:53:10.2446944+08:00;True|2022-08-22T10:43:35.3791396+08:00;True|2022-08-18T09:45:46.4643950+08:00;True|2022-08-18T09:40:55.2601145+08:00;True|2022-08-16T16:17:14.3399134+08:00;True|2022-08-15T17:58:16.1460123+08:00;True|2022-08-15T17:55:55.7137518+08:00;True|2022-08-15T17:44:37.6024482+08:00;True|2022-08-15T17:44:21.9583041+08:00;True|2022-08-15T17:43:23.1305690+08:00;True|2022-08-15T17:29:31.1670490+08:00;True|2022-08-15T17:26:42.9269470+08:00;True|2022-08-15T17:23:27.0940168+08:00;True|2022-08-15T17:07:32.9192045+08:00;True|2022-08-15T16:47:03.8611076+08:00;True|2022-08-15T16:41:50.6843705+08:00;True|2022-08-15T16:38:26.7407413+08:00;True|2022-08-15T16:31:49.0805578+08:00;True|2022-08-15T16:27:33.6712012+08:00;True|2022-08-15T16:24:35.1042794+08:00;True|2022-08-15T16:21:57.2757683+08:00;True|2022-08-15T16:18:17.3545368+08:00;True|2022-08-15T16:15:04.2645412+08:00;True|2022-08-15T14:44:09.3078026+08:00;True|2022-08-15T11:20:09.2930712+08:00;True|2022-08-15T10:42:12.2991587+08:00;True|2022-08-15T10:41:38.3711025+08:00;True|2022-08-15T10:19:06.9974383+08:00;True|2022-08-12T17:15:09.2133281+08:00;True|2022-08-12T10:48:05.8776009+08:00;True|2022-08-12T10:26:16.4183447+08:00;True|2022-08-12T08:33:01.9502005+08:00;True|2022-08-11T09:06:08.8394009+08:00;True|2022-08-11T08:39:06.2534634+08:00;True|2022-08-11T08:05:13.6919725+08:00;True|2022-08-08T14:48:16.3637965+08:00;True|2022-08-05T15:44:02.3797448+08:00;True|2022-08-05T09:57:55.7744103+08:00;True|2022-08-04T15:24:38.8785046+08:00;True|2022-08-04T15:11:16.7054147+08:00;True|2022-08-04T14:53:52.7239932+08:00;True|2022-08-04T14:48:35.6115863+08:00;True|2022-08-04T14:39:16.1113507+08:00;True|2022-08-04T12:26:39.4998322+08:00;True|2022-08-04T10:34:23.9626503+08:00;True|2022-08-04T08:12:51.4305728+08:00;True|2022-08-03T15:43:09.2317512+08:00;True|2022-08-02T19:17:55.0460145+08:00;True|2022-08-02T19:08:13.5872184+08:00;True|2022-08-02T18:50:12.1280167+08:00;True|2022-08-02T18:05:53.6540810+08:00;True|2022-08-02T16:13:26.3567210+08:00;True|2022-08-02T15:27:59.9264333+08:00;True|2022-07-25T15:35:49.6958399+08:00;True|2022-07-25T15:30:40.4444876+08:00;True|2022-07-25T13:33:38.4068153+08:00;True|2022-07-22T15:00:56.7326322+08:00;True|2022-07-22T14:51:18.0169121+08:00;True|2022-07-22T14:26:08.4246205+08:00;True|2022-07-22T14:23:05.0897016+08:00;True|2022-07-22T14:18:18.7806854+08:00;True|2022-07-22T14:09:29.7924367+08:00;True|2022-07-22T14:02:26.6403133+08:00;True|2022-07-22T13:56:40.0887615+08:00;True|2022-07-22T13:50:10.7852190+08:00;True|2022-07-22T11:38:25.6671780+08:00;True|2022-07-22T10:55:36.7947659+08:00;True|2022-07-21T17:53:41.1464086+08:00;True|2022-07-21T17:43:33.5311479+08:00;True|2022-07-21T16:09:07.7687640+08:00;True|2022-07-21T16:04:47.9317019+08:00;True|2022-07-21T15:58:21.2359033+08:00;True|2022-07-21T15:56:07.7425829+08:00;True|2022-07-21T15:51:34.7108381+08:00;True|2022-07-21T15:48:57.5735708+08:00;True|2022-07-21T15:44:25.8205030+08:00;True|2022-07-21T15:25:51.4222269+08:00;True|2022-07-21T15:22:36.8818295+08:00;True|2022-07-21T15:19:28.8532774+08:00;True|2022-07-21T14:57:45.7532568+08:00;True|2022-07-21T11:16:12.0900762+08:00;True|2022-07-21T10:10:40.4714948+08:00;True|2022-07-21T10:00:19.5258058+08:00;True|2022-07-14T14:34:28.5093226+08:00;True|2022-07-14T13:59:59.7754985+08:00;True|2022-07-14T12:46:29.6685284+08:00;True|2022-07-14T09:22:25.9079652+08:00;True|2022-07-14T09:22:04.6797478+08:00;True|2022-07-14T09:10:45.0177607+08:00;True|2022-07-14T08:41:43.3026713+08:00;True|2022-07-14T08:27:32.7454972+08:00;True|2022-07-14T08:21:58.6572366+08:00;True|2022-07-14T08:17:59.2904747+08:00;True|2022-07-14T08:12:39.8483472+08:00;True|2022-06-30T15:04:41.6941982+08:00;True|2022-06-24T16:39:01.1080301+08:00;True|2022-06-17T13:23:15.1455451+08:00;True|2022-06-17T13:22:18.5517557+08:00;True|2022-06-17T13:19:27.7323818+08:00;True|2022-06-17T13:12:24.1252779+08:00;True|2022-06-17T13:09:20.4234258+08:00;True|2022-06-17T13:06:49.9869509+08:00;True|2022-06-17T12:58:54.6964621+08:00;False|2022-06-17T12:58:10.6767711+08:00;False|2022-06-17T12:57:08.9747950+08:00;False|2022-06-17T12:56:18.4650121+08:00;False|2022-06-17T12:55:57.9981927+08:00;True|2022-06-13T14:21:36.5610928+08:00;True|2022-06-13T11:41:39.4210151+08:00;True|2022-06-11T02:35:03.4727934+08:00;True|2022-06-11T02:31:13.7362660+08:00;True|2022-06-11T02:30:58.3616790+08:00;True|2022-06-11T01:57:04.4951468+08:00;True|2022-06-10T13:27:13.2097124+08:00;</History>
   </PropertyGroup>
   <ItemGroup>
     <File Include="Areas/HelpPage/HelpPage.css">
@@ -103,6 +103,9 @@
     </File>
     <File Include="bin/FastReport.Web.dll">
       <publishTime>06/30/2022 13:48:36</publishTime>
+    </File>
+    <File Include="bin/Fleck.dll">
+      <publishTime>04/22/2021 11:48:12</publishTime>
     </File>
     <File Include="bin/ICSharpCode.SharpZipLib.dll">
       <publishTime>09/19/2021 17:20:28</publishTime>
@@ -717,16 +720,16 @@
       <publishTime>12/24/2021 15:38:29</publishTime>
     </File>
     <File Include="bin/VueWebApi.dll">
-      <publishTime>09/06/2022 18:29:23</publishTime>
+      <publishTime>09/09/2022 15:21:41</publishTime>
     </File>
     <File Include="bin/VueWebApi.dll.config">
       <publishTime>06/15/2022 15:31:43</publishTime>
     </File>
     <File Include="bin/VueWebApi.pdb">
-      <publishTime>09/06/2022 18:29:23</publishTime>
+      <publishTime>09/09/2022 15:21:41</publishTime>
     </File>
     <File Include="bin/VueWebApi.xml">
-      <publishTime>09/06/2022 18:29:23</publishTime>
+      <publishTime>09/09/2022 15:21:40</publishTime>
     </File>
     <File Include="bin/WebActivatorEx.dll">
       <publishTime>02/08/2013 16:42:28</publishTime>
@@ -1278,13 +1281,13 @@
       <publishTime>07/08/2022 15:15:11</publishTime>
     </File>
     <File Include="Hubs/HubsMessage.html">
-      <publishTime>09/05/2022 13:26:13</publishTime>
+      <publishTime>09/08/2022 17:51:08</publishTime>
     </File>
     <File Include="Hubs/HubsMessage1.html">
-      <publishTime>09/02/2022 09:22:02</publishTime>
+      <publishTime>09/08/2022 17:47:19</publishTime>
     </File>
     <File Include="Hubs/HubsMessage2.html">
-      <publishTime>08/31/2022 08:55:18</publishTime>
+      <publishTime>09/08/2022 17:47:18</publishTime>
     </File>
     <File Include="Image/1.png">
       <publishTime>08/11/2022 08:20:52</publishTime>
@@ -1515,7 +1518,7 @@
       <publishTime>06/10/2022 08:20:24</publishTime>
     </File>
     <File Include="Web.config">
-      <publishTime>09/06/2022 18:29:28</publishTime>
+      <publishTime>09/09/2022 15:21:47</publishTime>
     </File>
   </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/VueWebApi/Tools/ImportExcelData.cs b/VueWebApi/Tools/ImportExcelData.cs
index b2dd859..026d75d 100644
--- a/VueWebApi/Tools/ImportExcelData.cs
+++ b/VueWebApi/Tools/ImportExcelData.cs
@@ -1271,7 +1271,7 @@
                 return Message;
 
             }
-            else if (excelTable[0].Columns.Count != 10)
+            else if (excelTable[0].Columns.Count != 9)
             {
                 code = "300";
                 Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚嶅瓧娈垫暟";
@@ -2408,8 +2408,8 @@
                 }
                 //鍒ゆ柇宸ヨ壓璺嚎鏄惁鍏宠仈宸ュ簭
                 sql = @"select R.name,S.stepname  from TFlw_Rtdt A
-                        inner join TFlw_Rout R on A.route_code=M.code
-                        inner join TStep S on R.step_code=S.stepcode
+                        inner join TFlw_Rout R on A.rout_code=R.code
+                        inner join TStep S on A.step_code=S.stepcode
                         where R.name=@routename and S.stepname=@stepname";
                 dynamicParams.Add("@routename", excelTable.Rows[i][2].ToString().Trim());
                 dynamicParams.Add("@stepname", excelTable.Rows[i][3].ToString().Trim());
@@ -2423,7 +2423,7 @@
                     list.Add(erro);
                 }
                 //鍒ゆ柇宸ュ簭鏄惁鍏宠仈璁惧
-               sql = @"select R.name,S.stepname  from TFlw_Rteqp A
+               sql = @"select E.name,S.stepname  from TFlw_Rteqp A
                         inner join TStep S on A.step_code=S.stepcode
                         inner join TEqpInfo E on A.eqp_code=E.code
                         where S.stepname=@stepname and E.name=@eqpname";
@@ -3312,7 +3312,7 @@
                     var data = DapperHelper.selectdata(sql, dynamicParams);
                     if (data.Rows.Count > 0)
                     {
-                        partcode = data.Rows[0]["partname"].ToString();
+                        partcode = data.Rows[0]["partcode"].ToString();
                     }
                     else 
                     {
@@ -3326,7 +3326,7 @@
                     var data0 = DapperHelper.selectdata(sql, dynamicParams);
                     if (data0.Rows.Count > 0)
                     {
-                        routecode = data.Rows[0]["code"].ToString();
+                        routecode = data0.Rows[0]["code"].ToString();
                     }
                     else
                     {
@@ -3340,7 +3340,7 @@
                     var data1 = DapperHelper.selectdata(sql, dynamicParams);
                     if (data1.Rows.Count > 0)
                     {
-                        stepcode = data.Rows[0]["stepcode"].ToString();
+                        stepcode = data1.Rows[0]["stepcode"].ToString();
                     }
                     else
                     {
@@ -3354,7 +3354,7 @@
                     var data4 = DapperHelper.selectdata(sql, dynamicParams);
                     if (data4.Rows.Count > 0)
                     {
-                        eqpcode = data.Rows[0]["code"].ToString();
+                        eqpcode = data4.Rows[0]["code"].ToString();
                     }
                     else
                     {
@@ -3368,7 +3368,7 @@
                     var data5 = DapperHelper.selectdata(sql, dynamicParams);
                     if (data5.Rows.Count > 0)
                     {
-                        wkspcode = data.Rows[0]["wksp_code"].ToString();
+                        wkspcode = data5.Rows[0]["wksp_code"].ToString();
                     }
                     else
                     {
diff --git a/VueWebApi/Tools/TestSocket.cs b/VueWebApi/Tools/TestSocket.cs
new file mode 100644
index 0000000..05f3291
--- /dev/null
+++ b/VueWebApi/Tools/TestSocket.cs
@@ -0,0 +1,62 @@
+锘縰sing Fleck;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace VueWebApi.Tools
+{
+    public class TestSocket
+    {
+        #region 鍗曚緥妯″紡
+        private static readonly Lazy<TestSocket> lazy = new Lazy<TestSocket>(() => new TestSocket());
+        public static TestSocket Instance { get { return lazy.Value; } }
+        #endregion
+
+        private string msg = "榛樿淇℃伅";
+        Dictionary<string, IWebSocketConnection> allSockets = new Dictionary<string, IWebSocketConnection>();
+
+        public void socketServer()
+        {
+            string serverIP = System.Configuration.ConfigurationManager.AppSettings["FileIP"]; //鏈嶅姟鍣↖P鍦板潃
+            var server = new WebSocketServer(serverIP);
+            server.Start(socket =>//鏈嶅姟寮�濮�
+            {
+                var userid = socket.ConnectionInfo.Path.Split('?')[1].Split('=')[1];
+
+                socket.OnOpen = () =>
+                {
+                    Console.WriteLine("Open!");
+                    allSockets.Add(userid, socket);
+                };
+                socket.OnClose = () =>
+                {
+                    Console.WriteLine("Close!");
+                    allSockets.Remove(userid);
+                };
+                socket.OnMessage = message =>
+                {
+                    //瀹㈡埛绔氦浜掔殑娑堟伅
+                    //System.Timers.Timer t = new System.Timers.Timer(10000);//瀹炰緥鍖朤imer绫伙紝璁剧疆闂撮殧鏃堕棿涓�10000姣锛�
+                    //t.Elapsed += new System.Timers.ElapsedEventHandler(theout);//鍒拌揪鏃堕棿鐨勬椂鍊欐墽琛屼簨浠讹紱
+                    //t.AutoReset = true;//璁剧疆鏄墽琛屼竴娆★紙false锛夎繕鏄竴鐩存墽琛�(true)锛�
+                    //t.Enabled = true;//鏄惁鎵цSystem.Timers.Timer.Elapsed浜嬩欢锛�
+                    allSockets.ToList().ForEach(s => s.Value.Send("Echo: " + msg));
+                };
+            });
+        }
+
+        /// <summary>
+        /// 鍙戦�佹秷鎭�
+        /// </summary>
+        /// <param name="userid"></param>
+        /// <param name="msg"></param>
+        /// <returns></returns>
+        public string Send(string userid, string msg)
+        {
+            var _msg = $"{DateTime.Now.ToString("HH:mm:ss")}:{msg}";
+            allSockets[userid].Send(_msg);
+            return _msg;
+        }
+    }
+}
\ No newline at end of file
diff --git a/VueWebApi/VueWebApi.csproj b/VueWebApi/VueWebApi.csproj
index bd28ead..15154d6 100644
--- a/VueWebApi/VueWebApi.csproj
+++ b/VueWebApi/VueWebApi.csproj
@@ -59,6 +59,9 @@
     <Reference Include="FastReport.Web">
       <HintPath>..\..\..\FastReports\FastReport.Net\FastReport.Web.dll</HintPath>
     </Reference>
+    <Reference Include="Fleck, Version=1.2.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\Fleck.1.2.0\lib\net45\Fleck.dll</HintPath>
+    </Reference>
     <Reference Include="ICSharpCode.SharpZipLib, Version=1.3.3.11, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
       <HintPath>..\packages\SharpZipLib.1.3.3\lib\net45\ICSharpCode.SharpZipLib.dll</HintPath>
     </Reference>
@@ -305,6 +308,7 @@
     <Compile Include="Areas\HelpPage\SampleGeneration\SampleDirection.cs" />
     <Compile Include="Areas\HelpPage\SampleGeneration\TextSample.cs" />
     <Compile Include="Areas\HelpPage\XmlDocumentationProvider.cs" />
+    <Compile Include="Controllers\SendController.cs" />
     <Compile Include="Hubs\ChatHub.cs" />
     <Compile Include="Controllers\AppDeviceManageController.cs" />
     <Compile Include="Controllers\BasicSettingController.cs" />
@@ -352,6 +356,7 @@
     <Compile Include="Global.asax.cs">
       <DependentUpon>Global.asax</DependentUpon>
     </Compile>
+    <Compile Include="Hubs\ChatHub2.cs" />
     <Compile Include="Models\AppDevicecCheck.cs" />
     <Compile Include="Models\EqpRepair.cs" />
     <Compile Include="Models\ExcelErro.cs" />
@@ -394,6 +399,7 @@
     <Compile Include="Tools\SeachEncode.cs" />
     <Compile Include="Tools\SessionControllerRouteHandler.cs" />
     <Compile Include="Tools\SessionRouteHandler.cs" />
+    <Compile Include="Tools\TestSocket.cs" />
     <Compile Include="Tools\TJson.cs" />
     <Compile Include="Tools\ToMessage.cs" />
     <Compile Include="Util\EntityHelper.cs" />
diff --git a/VueWebApi/Web.config b/VueWebApi/Web.config
index 988652a..e0e8320 100644
--- a/VueWebApi/Web.config
+++ b/VueWebApi/Web.config
@@ -16,6 +16,8 @@
 		<!--<add key="DBServer" value="Data Source=.;Initial Catalog=vmes;Integrated Security=True" />-->
 		<!--鏈嶅姟鍣ㄧ幆澧�-->
 		<add key="DBServer" value="Data Source=121.196.36.24,1533;Initial Catalog=vmes;User ID=sa;Password=xkd@20220602;pooling=false" />
+		<!--澶у矝鏈嶅姟鍣ㄧ幆澧�-->
+		<!--<add key="DBServer" value="Data Source=192.168.2.138;Initial Catalog=vmes;User ID=sa;Password=Dd@20220727;pooling=false" />-->
 		<!--redis鏁版嵁搴撻摼鎺ラ厤缃甶p-->
 		<add key="RedisConnIp" value="127.0.0.1" />
 		<!--redis鏁版嵁搴撻摼鎺ラ厤缃鍙e彿-->
diff --git a/VueWebApi/bin/VueWebApi.dll.config b/VueWebApi/bin/VueWebApi.dll.config
index 988652a..e0e8320 100644
--- a/VueWebApi/bin/VueWebApi.dll.config
+++ b/VueWebApi/bin/VueWebApi.dll.config
@@ -16,6 +16,8 @@
 		<!--<add key="DBServer" value="Data Source=.;Initial Catalog=vmes;Integrated Security=True" />-->
 		<!--鏈嶅姟鍣ㄧ幆澧�-->
 		<add key="DBServer" value="Data Source=121.196.36.24,1533;Initial Catalog=vmes;User ID=sa;Password=xkd@20220602;pooling=false" />
+		<!--澶у矝鏈嶅姟鍣ㄧ幆澧�-->
+		<!--<add key="DBServer" value="Data Source=192.168.2.138;Initial Catalog=vmes;User ID=sa;Password=Dd@20220727;pooling=false" />-->
 		<!--redis鏁版嵁搴撻摼鎺ラ厤缃甶p-->
 		<add key="RedisConnIp" value="127.0.0.1" />
 		<!--redis鏁版嵁搴撻摼鎺ラ厤缃鍙e彿-->
diff --git a/VueWebApi/bin/VueWebApi.pdb b/VueWebApi/bin/VueWebApi.pdb
index 7f8f315..4ad133a 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 b9784c4..b2389e9 100644
--- a/VueWebApi/bin/VueWebApi.xml
+++ b/VueWebApi/bin/VueWebApi.xml
@@ -506,31 +506,6 @@
             </summary>
             <param name="documentPath">The physical path to XML document.</param>
         </member>
-        <member name="F:VueWebApi.Hubs.ChatHub.userList">
-            <summary>
-            闈欐�佺敤鎴峰垪琛�
-            </summary>
-        </member>
-        <member name="F:VueWebApi.Hubs.ChatHub._connections">
-            <summary>
-            鐢ㄦ埛鐨刢onnectionID涓庣敤鎴峰悕瀵圭収琛�
-            </summary>
-        </member>
-        <member name="M:VueWebApi.Hubs.ChatHub.SendByGroup(System.String,System.String,System.String)">
-            <summary>
-            鍙戦�佸嚱鏁帮紝鍓嶇瑙﹀彂璇ュ嚱鏁扮粰鏈嶅姟鍣紝鏈嶅姟鍣ㄥ湪灏嗘秷鎭彂閫佺粰鍓嶇锛岋紙Clients.All.(鍑芥暟鍚�)鏄叏浣撳箍鎾紝鍙﹀Clients鎻愪緵浜嗙粍鎾紝骞挎挱鎺掗櫎锛岀粍鎾帓闄わ紝鎸囧畾鐢ㄦ埛鎾彂绛夌瓑锛�
-            璇ュ嚱鏁板悕鍦ㄥ墠绔娇鐢ㄦ椂涓�瀹氳娉ㄦ剰锛屽墠绔皟鐢ㄨ鍑芥暟鏃讹紝鍑芥暟棣栧瓧姣嶄竴瀹氳灏忓啓
-            </summary>
-            <param name="name1">鍙戣捣鑰�</param>
-            <param name="name2">娑堟伅鎺ユ敹鑰�</param>
-            <param name="cont">娑堟伅鍐呭</param>
-        </member>
-        <member name="M:VueWebApi.Hubs.ChatHub.SendLogin(System.String)">
-            <summary>
-            鐢ㄦ埛涓婄嚎鍑芥暟
-            </summary>
-            <param name="name">鐢ㄦ埛鍚�</param>
-        </member>
         <member name="M:VueWebApi.Controllers.AppDeviceManageController.CheckScanDeviceQrCodeData(System.String)">
             <summary>
             鏃ュ父鐐规,鎵弿宸ヤ綅/璁惧浜岀淮鐮�
@@ -1127,6 +1102,22 @@
             <param name="djwo">璁惧鐐规鍗曞彿</param>
             <returns></returns>
         </member>
+        <member name="M:VueWebApi.Controllers.DeviceManagerController.DeviceCheckTakeOutExcel(System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
+            <summary>
+            璁惧鐐规璁板綍瀵煎嚭
+            </summary>
+            <param name="wkshopcode">杞﹂棿缂栫爜</param>
+            <param name="eqpcode">璁惧缂栧彿</param>
+            <param name="eqpname">璁惧鍚嶇О</param>
+            <param name="stanedname">鏍囧噯鍚嶇О</param>
+            <param name="checkuser">鐐规浜哄憳</param>
+            <param name="checkdate">鐐规鏃堕棿</param>
+            <param name="page">椤电爜</param>
+            <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+            <param name="prop">鎺掑簭瀛楁</param>
+            <param name="order">鎺掑簭瑙勫垯</param>
+            <returns></returns>
+        </member>
         <member name="M:VueWebApi.Controllers.ErpSyncMesController.SeaveSearchUnit">
             <summary>
             鍒堕�犳ā鍨嬶細鍗曚綅鍚屾
@@ -1306,6 +1297,13 @@
             <summary>
             澶у矝浠撳簱鐪嬫澘,鍙充笅鍘熸枡搴撳簱top5搴撳瓨鎺掕
             </summary>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.KanBanManagerentController.WkspReportNotice(System.String)">
+            <summary>
+            杞﹂棿鐪嬫澘鍏憡
+            </summary>
+            <param name="shopcode">杞﹂棿缂栫爜</param>
             <returns></returns>
         </member>
         <member name="M:VueWebApi.Controllers.LoginController.LoginSave(System.String,System.String,System.String)">
@@ -1713,6 +1711,20 @@
             <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
             <param name="prop">鎺掑簭瀛楁</param>
             <param name="order">鎺掑簭瑙勫垯</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderBitchClosedSeave(System.Data.DataTable)">
+            <summary>
+            MES宸ュ崟鎵归噺鍏抽棴鎻愪氦
+            </summary>
+            <param name="dt">宸ュ崟鍙锋暟缁勫璞�</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderBitchAntiClosedSeave(System.Data.DataTable)">
+            <summary>
+            MES宸ュ崟鎵归噺鍙嶅叧闂�
+            </summary>
+            <param name="dt">宸ュ崟鍙锋暟缁勫璞�</param>
             <returns></returns>
         </member>
         <member name="M:VueWebApi.Controllers.ProductModelController.StockTypeSelect">
@@ -2200,6 +2212,78 @@
             </summary>
             <param name="id">id</param>
             <returns></returns>
+        </member>
+        <member name="F:VueWebApi.Hubs.ChatHub.userList">
+            <summary>
+            闈欐�佺敤鎴峰垪琛�
+            </summary>
+        </member>
+        <member name="F:VueWebApi.Hubs.ChatHub._connections">
+            <summary>
+            鐢ㄦ埛鐨刢onnectionID涓庣敤鎴峰悕瀵圭収琛�
+            </summary>
+        </member>
+        <member name="M:VueWebApi.Hubs.ChatHub.SendByGroup(System.String,System.String,System.String)">
+            <summary>
+            鍙戦�佸嚱鏁帮紝鍓嶇瑙﹀彂璇ュ嚱鏁扮粰鏈嶅姟鍣紝鏈嶅姟鍣ㄥ湪灏嗘秷鎭彂閫佺粰鍓嶇锛岋紙Clients.All.(鍑芥暟鍚�)鏄叏浣撳箍鎾紝鍙﹀Clients鎻愪緵浜嗙粍鎾紝骞挎挱鎺掗櫎锛岀粍鎾帓闄わ紝鎸囧畾鐢ㄦ埛鎾彂绛夌瓑锛�
+            璇ュ嚱鏁板悕鍦ㄥ墠绔娇鐢ㄦ椂涓�瀹氳娉ㄦ剰锛屽墠绔皟鐢ㄨ鍑芥暟鏃讹紝鍑芥暟棣栧瓧姣嶄竴瀹氳灏忓啓
+            </summary>
+            <param name="name1">鍙戣捣鑰�</param>
+            <param name="name2">娑堟伅鎺ユ敹鑰�</param>
+            <param name="cont">娑堟伅鍐呭</param>
+        </member>
+        <member name="M:VueWebApi.Hubs.ChatHub.SendLogin(System.String)">
+            <summary>
+            鐢ㄦ埛涓婄嚎鍑芥暟(鍗曠敤鎴�)
+            </summary>
+            <param name="name">鐢ㄦ埛鍚�</param>
+        </member>
+        <member name="M:VueWebApi.Hubs.ChatHub.SendLogins(System.String)">
+            <summary>
+            鐢ㄦ埛涓婄嚎鍑芥暟(澶氱敤鎴�)
+            </summary>
+            <param name="code">鐢ㄦ埛鍚嶉泦鍚�</param>
+        </member>
+        <!-- Badly formed XML comment ignored for member "F:VueWebApi.Hubs.ChatHub2.Users" -->
+        <member name="M:VueWebApi.Hubs.ChatHub2.OnConnected">
+            <summary>
+            鏈繛鎺ヤ簨浠�
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Hubs.ChatHub2.OnReconnected">
+            <summary>
+            閲嶆柊杩炴帴浜嬩欢
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Hubs.ChatHub2.OnDisconnected(System.Boolean)">
+            <summary>
+            鏂紑杩炴帴浜嬩欢
+            </summary>
+            <param name="stopCalled"></param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Hubs.ChatHub2.GetClientId">
+            <summary>
+            杩欏浜庢瘡涓鎴风閮芥槸鍞竴鐨勶紝鐢ㄤ簬鏍囪瘑杩炴帴銆�
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Hubs.ChatHub2.Send(System.Int32)">
+            <summary>
+            Sends the update user count to the listening view.
+            </summary>
+            <param name="count">
+            The count.
+            </param>
+        </member>
+        <member name="M:VueWebApi.Hubs.ChatHub2.Hello(System.String)">
+            <summary>
+            鑷繁鍐欑殑涓�涓湇鍔$鏂规硶Hello.
+            </summary>
+            <param name="msg">鍙傛暟
+            </param>
         </member>
         <member name="M:VueWebApi.WebApiApplication.Init">
             <summary>
@@ -2768,6 +2852,14 @@
             <param name="type"></param>
             <returns></returns>
         </member>
+        <member name="M:VueWebApi.Tools.TestSocket.Send(System.String,System.String)">
+            <summary>
+            鍙戦�佹秷鎭�
+            </summary>
+            <param name="userid"></param>
+            <param name="msg"></param>
+            <returns></returns>
+        </member>
         <member name="T:VueWebApi.Util.ObjectValueParser`1">
             <summary>
             鍊艰浆鎹㈠櫒
diff --git a/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
index 4b44515..52fa0d5 100644
--- a/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
+++ b/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/Web.config b/VueWebApi/obj/Release/Package/PackageTmp/Web.config
index 7854403..695b8b9 100644
--- a/VueWebApi/obj/Release/Package/PackageTmp/Web.config
+++ b/VueWebApi/obj/Release/Package/PackageTmp/Web.config
@@ -16,6 +16,8 @@
     <!--<add key="DBServer" value="Data Source=.;Initial Catalog=vmes;Integrated Security=True" />-->
     <!--鏈嶅姟鍣ㄧ幆澧�-->
     <add key="DBServer" value="Data Source=121.196.36.24,1533;Initial Catalog=vmes;User ID=sa;Password=xkd@20220602;pooling=false" />
+    <!--澶у矝鏈嶅姟鍣ㄧ幆澧�-->
+    <!--<add key="DBServer" value="Data Source=192.168.2.138;Initial Catalog=vmes;User ID=sa;Password=Dd@20220727;pooling=false" />-->
     <!--redis鏁版嵁搴撻摼鎺ラ厤缃甶p-->
     <add key="RedisConnIp" value="127.0.0.1" />
     <!--redis鏁版嵁搴撻摼鎺ラ厤缃鍙e彿-->
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
index 7f8f315..42e65c4 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/Package/PackageTmp/bin/VueWebApi.xml b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
index b9784c4..b2389e9 100644
--- a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
+++ b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
@@ -506,31 +506,6 @@
             </summary>
             <param name="documentPath">The physical path to XML document.</param>
         </member>
-        <member name="F:VueWebApi.Hubs.ChatHub.userList">
-            <summary>
-            闈欐�佺敤鎴峰垪琛�
-            </summary>
-        </member>
-        <member name="F:VueWebApi.Hubs.ChatHub._connections">
-            <summary>
-            鐢ㄦ埛鐨刢onnectionID涓庣敤鎴峰悕瀵圭収琛�
-            </summary>
-        </member>
-        <member name="M:VueWebApi.Hubs.ChatHub.SendByGroup(System.String,System.String,System.String)">
-            <summary>
-            鍙戦�佸嚱鏁帮紝鍓嶇瑙﹀彂璇ュ嚱鏁扮粰鏈嶅姟鍣紝鏈嶅姟鍣ㄥ湪灏嗘秷鎭彂閫佺粰鍓嶇锛岋紙Clients.All.(鍑芥暟鍚�)鏄叏浣撳箍鎾紝鍙﹀Clients鎻愪緵浜嗙粍鎾紝骞挎挱鎺掗櫎锛岀粍鎾帓闄わ紝鎸囧畾鐢ㄦ埛鎾彂绛夌瓑锛�
-            璇ュ嚱鏁板悕鍦ㄥ墠绔娇鐢ㄦ椂涓�瀹氳娉ㄦ剰锛屽墠绔皟鐢ㄨ鍑芥暟鏃讹紝鍑芥暟棣栧瓧姣嶄竴瀹氳灏忓啓
-            </summary>
-            <param name="name1">鍙戣捣鑰�</param>
-            <param name="name2">娑堟伅鎺ユ敹鑰�</param>
-            <param name="cont">娑堟伅鍐呭</param>
-        </member>
-        <member name="M:VueWebApi.Hubs.ChatHub.SendLogin(System.String)">
-            <summary>
-            鐢ㄦ埛涓婄嚎鍑芥暟
-            </summary>
-            <param name="name">鐢ㄦ埛鍚�</param>
-        </member>
         <member name="M:VueWebApi.Controllers.AppDeviceManageController.CheckScanDeviceQrCodeData(System.String)">
             <summary>
             鏃ュ父鐐规,鎵弿宸ヤ綅/璁惧浜岀淮鐮�
@@ -1127,6 +1102,22 @@
             <param name="djwo">璁惧鐐规鍗曞彿</param>
             <returns></returns>
         </member>
+        <member name="M:VueWebApi.Controllers.DeviceManagerController.DeviceCheckTakeOutExcel(System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
+            <summary>
+            璁惧鐐规璁板綍瀵煎嚭
+            </summary>
+            <param name="wkshopcode">杞﹂棿缂栫爜</param>
+            <param name="eqpcode">璁惧缂栧彿</param>
+            <param name="eqpname">璁惧鍚嶇О</param>
+            <param name="stanedname">鏍囧噯鍚嶇О</param>
+            <param name="checkuser">鐐规浜哄憳</param>
+            <param name="checkdate">鐐规鏃堕棿</param>
+            <param name="page">椤电爜</param>
+            <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+            <param name="prop">鎺掑簭瀛楁</param>
+            <param name="order">鎺掑簭瑙勫垯</param>
+            <returns></returns>
+        </member>
         <member name="M:VueWebApi.Controllers.ErpSyncMesController.SeaveSearchUnit">
             <summary>
             鍒堕�犳ā鍨嬶細鍗曚綅鍚屾
@@ -1306,6 +1297,13 @@
             <summary>
             澶у矝浠撳簱鐪嬫澘,鍙充笅鍘熸枡搴撳簱top5搴撳瓨鎺掕
             </summary>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.KanBanManagerentController.WkspReportNotice(System.String)">
+            <summary>
+            杞﹂棿鐪嬫澘鍏憡
+            </summary>
+            <param name="shopcode">杞﹂棿缂栫爜</param>
             <returns></returns>
         </member>
         <member name="M:VueWebApi.Controllers.LoginController.LoginSave(System.String,System.String,System.String)">
@@ -1713,6 +1711,20 @@
             <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
             <param name="prop">鎺掑簭瀛楁</param>
             <param name="order">鎺掑簭瑙勫垯</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderBitchClosedSeave(System.Data.DataTable)">
+            <summary>
+            MES宸ュ崟鎵归噺鍏抽棴鎻愪氦
+            </summary>
+            <param name="dt">宸ュ崟鍙锋暟缁勫璞�</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderBitchAntiClosedSeave(System.Data.DataTable)">
+            <summary>
+            MES宸ュ崟鎵归噺鍙嶅叧闂�
+            </summary>
+            <param name="dt">宸ュ崟鍙锋暟缁勫璞�</param>
             <returns></returns>
         </member>
         <member name="M:VueWebApi.Controllers.ProductModelController.StockTypeSelect">
@@ -2200,6 +2212,78 @@
             </summary>
             <param name="id">id</param>
             <returns></returns>
+        </member>
+        <member name="F:VueWebApi.Hubs.ChatHub.userList">
+            <summary>
+            闈欐�佺敤鎴峰垪琛�
+            </summary>
+        </member>
+        <member name="F:VueWebApi.Hubs.ChatHub._connections">
+            <summary>
+            鐢ㄦ埛鐨刢onnectionID涓庣敤鎴峰悕瀵圭収琛�
+            </summary>
+        </member>
+        <member name="M:VueWebApi.Hubs.ChatHub.SendByGroup(System.String,System.String,System.String)">
+            <summary>
+            鍙戦�佸嚱鏁帮紝鍓嶇瑙﹀彂璇ュ嚱鏁扮粰鏈嶅姟鍣紝鏈嶅姟鍣ㄥ湪灏嗘秷鎭彂閫佺粰鍓嶇锛岋紙Clients.All.(鍑芥暟鍚�)鏄叏浣撳箍鎾紝鍙﹀Clients鎻愪緵浜嗙粍鎾紝骞挎挱鎺掗櫎锛岀粍鎾帓闄わ紝鎸囧畾鐢ㄦ埛鎾彂绛夌瓑锛�
+            璇ュ嚱鏁板悕鍦ㄥ墠绔娇鐢ㄦ椂涓�瀹氳娉ㄦ剰锛屽墠绔皟鐢ㄨ鍑芥暟鏃讹紝鍑芥暟棣栧瓧姣嶄竴瀹氳灏忓啓
+            </summary>
+            <param name="name1">鍙戣捣鑰�</param>
+            <param name="name2">娑堟伅鎺ユ敹鑰�</param>
+            <param name="cont">娑堟伅鍐呭</param>
+        </member>
+        <member name="M:VueWebApi.Hubs.ChatHub.SendLogin(System.String)">
+            <summary>
+            鐢ㄦ埛涓婄嚎鍑芥暟(鍗曠敤鎴�)
+            </summary>
+            <param name="name">鐢ㄦ埛鍚�</param>
+        </member>
+        <member name="M:VueWebApi.Hubs.ChatHub.SendLogins(System.String)">
+            <summary>
+            鐢ㄦ埛涓婄嚎鍑芥暟(澶氱敤鎴�)
+            </summary>
+            <param name="code">鐢ㄦ埛鍚嶉泦鍚�</param>
+        </member>
+        <!-- Badly formed XML comment ignored for member "F:VueWebApi.Hubs.ChatHub2.Users" -->
+        <member name="M:VueWebApi.Hubs.ChatHub2.OnConnected">
+            <summary>
+            鏈繛鎺ヤ簨浠�
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Hubs.ChatHub2.OnReconnected">
+            <summary>
+            閲嶆柊杩炴帴浜嬩欢
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Hubs.ChatHub2.OnDisconnected(System.Boolean)">
+            <summary>
+            鏂紑杩炴帴浜嬩欢
+            </summary>
+            <param name="stopCalled"></param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Hubs.ChatHub2.GetClientId">
+            <summary>
+            杩欏浜庢瘡涓鎴风閮芥槸鍞竴鐨勶紝鐢ㄤ簬鏍囪瘑杩炴帴銆�
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Hubs.ChatHub2.Send(System.Int32)">
+            <summary>
+            Sends the update user count to the listening view.
+            </summary>
+            <param name="count">
+            The count.
+            </param>
+        </member>
+        <member name="M:VueWebApi.Hubs.ChatHub2.Hello(System.String)">
+            <summary>
+            鑷繁鍐欑殑涓�涓湇鍔$鏂规硶Hello.
+            </summary>
+            <param name="msg">鍙傛暟
+            </param>
         </member>
         <member name="M:VueWebApi.WebApiApplication.Init">
             <summary>
@@ -2768,6 +2852,14 @@
             <param name="type"></param>
             <returns></returns>
         </member>
+        <member name="M:VueWebApi.Tools.TestSocket.Send(System.String,System.String)">
+            <summary>
+            鍙戦�佹秷鎭�
+            </summary>
+            <param name="userid"></param>
+            <param name="msg"></param>
+            <returns></returns>
+        </member>
         <member name="T:VueWebApi.Util.ObjectValueParser`1">
             <summary>
             鍊艰浆鎹㈠櫒
diff --git a/VueWebApi/obj/Release/TransformWebConfig/original/Web.config b/VueWebApi/obj/Release/TransformWebConfig/original/Web.config
index 988652a..e0e8320 100644
--- a/VueWebApi/obj/Release/TransformWebConfig/original/Web.config
+++ b/VueWebApi/obj/Release/TransformWebConfig/original/Web.config
@@ -16,6 +16,8 @@
 		<!--<add key="DBServer" value="Data Source=.;Initial Catalog=vmes;Integrated Security=True" />-->
 		<!--鏈嶅姟鍣ㄧ幆澧�-->
 		<add key="DBServer" value="Data Source=121.196.36.24,1533;Initial Catalog=vmes;User ID=sa;Password=xkd@20220602;pooling=false" />
+		<!--澶у矝鏈嶅姟鍣ㄧ幆澧�-->
+		<!--<add key="DBServer" value="Data Source=192.168.2.138;Initial Catalog=vmes;User ID=sa;Password=Dd@20220727;pooling=false" />-->
 		<!--redis鏁版嵁搴撻摼鎺ラ厤缃甶p-->
 		<add key="RedisConnIp" value="127.0.0.1" />
 		<!--redis鏁版嵁搴撻摼鎺ラ厤缃鍙e彿-->
diff --git a/VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config b/VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config
index 7854403..695b8b9 100644
--- a/VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config
+++ b/VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config
@@ -16,6 +16,8 @@
     <!--<add key="DBServer" value="Data Source=.;Initial Catalog=vmes;Integrated Security=True" />-->
     <!--鏈嶅姟鍣ㄧ幆澧�-->
     <add key="DBServer" value="Data Source=121.196.36.24,1533;Initial Catalog=vmes;User ID=sa;Password=xkd@20220602;pooling=false" />
+    <!--澶у矝鏈嶅姟鍣ㄧ幆澧�-->
+    <!--<add key="DBServer" value="Data Source=192.168.2.138;Initial Catalog=vmes;User ID=sa;Password=Dd@20220727;pooling=false" />-->
     <!--redis鏁版嵁搴撻摼鎺ラ厤缃甶p-->
     <add key="RedisConnIp" value="127.0.0.1" />
     <!--redis鏁版嵁搴撻摼鎺ラ厤缃鍙e彿-->
diff --git a/VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache b/VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache
deleted file mode 100644
index f5e894a..0000000
--- a/VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache
+++ /dev/null
Binary files differ
diff --git a/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache b/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
index d3174bb..0a5c1ec 100644
--- a/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
+++ b/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-0268dd956a59170e26c4362cabfd5184d6d53b51
+fcefa153b5fd93331a16d7f1527b6f7835134536
diff --git a/VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt b/VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt
index d7448de..8cfbe6a 100644
--- a/VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt
+++ b/VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt
@@ -152,6 +152,7 @@
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Dapper.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\FastReport.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\FastReport.Web.dll
+D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\Fleck.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\ICSharpCode.SharpZipLib.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\JWT.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\log4net.dll
@@ -280,7 +281,6 @@
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.resources.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.Deployment.resources.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.Razor.resources.dll
-D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\obj\Release\VueWebApi.csproj.AssemblyReference.cache
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\obj\Release\VueWebApi.csproj.CoreCompileInputs.cache
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\obj\Release\VueWebApi.csproj.CopyComplete
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\obj\Release\VueWebApi.dll
diff --git a/VueWebApi/obj/Release/VueWebApi.pdb b/VueWebApi/obj/Release/VueWebApi.pdb
index 7f8f315..4ad133a 100644
--- a/VueWebApi/obj/Release/VueWebApi.pdb
+++ b/VueWebApi/obj/Release/VueWebApi.pdb
Binary files differ
diff --git a/VueWebApi/packages.config b/VueWebApi/packages.config
index 247c739..437f9d6 100644
--- a/VueWebApi/packages.config
+++ b/VueWebApi/packages.config
@@ -3,6 +3,7 @@
   <package id="Antlr" version="3.5.0.2" targetFramework="net461" />
   <package id="bootstrap" version="3.4.1" targetFramework="net461" />
   <package id="Dapper" version="2.0.123" targetFramework="net461" />
+  <package id="Fleck" version="1.2.0" targetFramework="net461" />
   <package id="jQuery" version="3.4.1" targetFramework="net461" />
   <package id="JWT" version="8.9.0" targetFramework="net461" />
   <package id="log4net" version="2.0.14" targetFramework="net461" />
diff --git a/packages/Fleck.1.2.0/.signature.p7s b/packages/Fleck.1.2.0/.signature.p7s
new file mode 100644
index 0000000..79fb14b
--- /dev/null
+++ b/packages/Fleck.1.2.0/.signature.p7s
Binary files differ
diff --git a/packages/Fleck.1.2.0/Fleck.1.2.0.nupkg b/packages/Fleck.1.2.0/Fleck.1.2.0.nupkg
new file mode 100644
index 0000000..1cd082c
--- /dev/null
+++ b/packages/Fleck.1.2.0/Fleck.1.2.0.nupkg
Binary files differ

--
Gitblit v1.9.3