From 2264c47cff7ab5ce52d7c158ac0eb941e7b46506 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期三, 31 八月 2022 23:50:53 +0800
Subject: [PATCH] 大岛测试bug修改

---
 VueWebApi/obj/Release/VueWebApi.pdb                                  |    0 
 VueWebApi/DLL/DAL/BasicSettingDAL.cs                                 |   16 +
 VueWebApi/Hubs/HubsMessage.html                                      |    6 
 .vs/VueWebApi/v16/.suo                                               |    0 
 VueWebApi/DLL/DAL/ProductionManagementDAL.cs                         |   37 +++-
 VueWebApi/VueWebApi.csproj                                           |    1 
 VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache |    0 
 VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb           |    0 
 VueWebApi/Controllers/ProductionManagementController.cs              |    5 
 VueWebApi/Hubs/HubsMessage1.html                                     |   27 ++
 VueWebApi/Hubs/ChatHub.cs                                            |    8 
 VueWebApi/bin/VueWebApi.pdb                                          |    0 
 VueWebApi/Logs/2022-08-31.TXT                                        |  116 ++++++++++++++
 VueWebApi/DLL/DAL/ProductModelDAL.cs                                 |   10 
 VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage2.html      |   62 +++++++
 VueWebApi/Hubs/HubsMessage2.html                                     |   62 +++++++
 VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt          |    1 
 VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user       |   17 +
 VueWebApi/DLL/BLL/ProductionManagementBLL.cs                         |    4 
 VueWebApi/bin/VueWebApi.xml                                          |    5 
 VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage1.html      |   27 ++
 VueWebApi/DLL/DAL/KanBanManagerentDAL.cs                             |   13 
 VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage.html       |    6 
 VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml           |    5 
 VueWebApi/DLL/DAL/QualityManagementDAL.cs                            |    2 
 VueWebApi/DLL/DAL/DeviceManagerDAL.cs                                |    4 
 26 files changed, 371 insertions(+), 63 deletions(-)

diff --git a/.vs/VueWebApi/v16/.suo b/.vs/VueWebApi/v16/.suo
index a54f116..b9f9a7e 100644
--- a/.vs/VueWebApi/v16/.suo
+++ b/.vs/VueWebApi/v16/.suo
Binary files differ
diff --git a/VueWebApi/Controllers/ProductionManagementController.cs b/VueWebApi/Controllers/ProductionManagementController.cs
index 70e08b1..0867517 100644
--- a/VueWebApi/Controllers/ProductionManagementController.cs
+++ b/VueWebApi/Controllers/ProductionManagementController.cs
@@ -218,15 +218,16 @@
         /// <summary>
         /// MES宸ュ崟鍒犻櫎
         /// </summary>
+        /// <param name="souceid">婧愬崟宸ュ崟</param>
         /// <param name="wocode">宸ュ崟缂栧彿</param>
         /// <param name="m_po">璁㈠崟缂栧彿</param>
         /// <param name="orderqty">宸ュ崟鏁伴噺</param>
         /// <returns></returns>
         [Route(template: "DeleteMesOrder")]
         [HttpPost]
-        public HttpResponseMessage DeleteMesOrder(string wocode, string m_po, string orderqty)
+        public HttpResponseMessage DeleteMesOrder(string souceid, string wocode, string m_po, string orderqty)
         {
-            mes = ProductionManagementBLL.DeleteMesOrder(wocode, m_po, orderqty);
+            mes = ProductionManagementBLL.DeleteMesOrder(souceid, wocode, m_po, orderqty);
             return TJson.toJson(mes);
         }
         #endregion
diff --git a/VueWebApi/DLL/BLL/ProductionManagementBLL.cs b/VueWebApi/DLL/BLL/ProductionManagementBLL.cs
index 4854e2e..e195e5d 100644
--- a/VueWebApi/DLL/BLL/ProductionManagementBLL.cs
+++ b/VueWebApi/DLL/BLL/ProductionManagementBLL.cs
@@ -69,9 +69,9 @@
         #endregion
 
         #region[MES宸ュ崟鍒犻櫎]
-        public static ToMessage DeleteMesOrder(string wocode,string m_po,string orderqty)
+        public static ToMessage DeleteMesOrder(string souceid, string wocode,string m_po,string orderqty)
         {
-            return ProductionManagementDAL.DeleteMesOrder(wocode,m_po, orderqty);
+            return ProductionManagementDAL.DeleteMesOrder(souceid,wocode, m_po, orderqty);
         }
         #endregion
 
diff --git a/VueWebApi/DLL/DAL/BasicSettingDAL.cs b/VueWebApi/DLL/DAL/BasicSettingDAL.cs
index 619afec..e512458 100644
--- a/VueWebApi/DLL/DAL/BasicSettingDAL.cs
+++ b/VueWebApi/DLL/DAL/BasicSettingDAL.cs
@@ -44,7 +44,7 @@
                 }
                 if (userName != "" && userName != null)
                 {
-                    search += "and parent.lm_user like '%'+@userName+'%' ";
+                    search += "and U.username like '%'+@userName+'%' ";
                     dynamicParams.Add("@userName", userName);
                 }
                 if (search == "")
@@ -62,10 +62,12 @@
                             parent.parent_id,
                             child.org_code as parentorg_code, 
                             child.org_name as parentorg_name,
-                            parent.lm_user,
+                            U.username as lm_user,
                             parent.lm_date
                             from TOrganization as parent 
-                            left join TOrganization as child on parent.parent_id=child.id where parent.is_delete<>1 " + search;
+                            left join TOrganization as child on parent.parent_id=child.id 
+                            left join TUser U on parent.lm_user=U.usercode
+                            where parent.is_delete<>1 " + search;
                 var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
@@ -288,7 +290,7 @@
                 }
                 if (UserName != "" && UserName != null)
                 {
-                    search += "and u.username like '%'+@UserName+'%' ";
+                    search += "and S.username like '%'+@UserName+'%' ";
                     dynamicParams.Add("@UserName", UserName);
                 }
                 if (StuOrg != "" && StuOrg != null)
@@ -313,10 +315,11 @@
                 //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
                 var total = 0; //鎬绘潯鏁�
-                var sql = @"select u.id,u.usercode,u.username,g.group_code,g.group_name,u.stu_torgcode,t.org_name,u.password,u.mobile,u.email,u.wagetype,u.enable,u.lm_user,u.lm_date,u.is_role  
+                var sql = @"select u.id,u.usercode,u.username,g.group_code,g.group_name,u.stu_torgcode,t.org_name,u.password,u.mobile,u.email,u.wagetype,u.enable,S.username as lm_user,u.lm_date,u.is_role  
                             from TUser u
                             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;
                 var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                 mes.code = "200";
@@ -1317,7 +1320,9 @@
         public static ToMessage SaveRoleAssoctUser(string rolecode, List<ObjectData> json)
         {
             var sql = "";
+            var sql2 = "";
             List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
             try
             {
                 list.Clear();
@@ -1329,6 +1334,7 @@
                     //鏍囪瑙掕壊琛ㄥ叧鑱旂敤鎴锋爣璇�
                     sql = @"update TRole set is_user='N' where role_code=@rolecode";
                     list.Add(new { str = sql, parm = new { rolecode = rolecode } });
+                    
                 }
                 else
                 {
diff --git a/VueWebApi/DLL/DAL/DeviceManagerDAL.cs b/VueWebApi/DLL/DAL/DeviceManagerDAL.cs
index b172e3d..5a49620 100644
--- a/VueWebApi/DLL/DAL/DeviceManagerDAL.cs
+++ b/VueWebApi/DLL/DAL/DeviceManagerDAL.cs
@@ -1546,7 +1546,7 @@
             try
             {
                 //鑾峰彇璁惧淇濆吇鏍囧噯淇℃伅
-                sql = @"select code,name,description
+                sql = @"select code,name,description,main_cycle
                         from TEqpmai_Main
                         where code=@repairstand_code and is_delete<>'1'";
                 dynamicParams.Add("@repairstand_code", repairstand_code);
@@ -1568,7 +1568,7 @@
                     return mes;
                 }
                 //鏍规嵁璁惧淇濆吇鏍囧噯缂栫爜鑾峰彇鍏宠仈鐨勪繚鍏婚」鐩俊鎭�
-                sql = @"select B.code,B.name,A.chkdesc,A.isscan,A.cycle  from TEqpmai_Deta A
+                sql = @"select B.code,B.name,A.chk_desc,A.isscan,A.cycle  from TEqpmai_Deta A
                         left join TEqpmai_Item  B on A.code=B.code
                         where  A.eapmai_code=@repairstand_code order by A.seq asc";
                 dynamicParams.Add("@repairstand_code", rout.code);
diff --git a/VueWebApi/DLL/DAL/KanBanManagerentDAL.cs b/VueWebApi/DLL/DAL/KanBanManagerentDAL.cs
index 9f927ac..80932cc 100644
--- a/VueWebApi/DLL/DAL/KanBanManagerentDAL.cs
+++ b/VueWebApi/DLL/DAL/KanBanManagerentDAL.cs
@@ -71,10 +71,11 @@
                         line.linename = json[i].name;
                         //鑾峰彇浜х嚎涓嬪紑宸ユ�诲崟閲�
                         sql = @"select COUNT(*) cont  from(
-                                select distinct B.rout_code,M.wo_code  from TFlw_Rteqp  A
-                                inner join TFlw_Rtdt B on A.step_code=B.step_code
-                                inner join TK_Wrk_Man M on B.rout_code=M.route_code
-                                where M.status<>'CLOSED'  and M.is_delete<>'1' and A.eqp_code=@linecode) as A";
+                                 select distinct B.rout_code,M.wo_code from TK_Wrk_Man M
+                                 left join TFlw_Rtdt B  on M.route_code=B.rout_code
+                                 left join TFlw_Rteqp R on B.step_code=R.step_code
+                                 where M.status<>'CLOSED'  and M.is_delete<>'1'
+                                 and R.eqp_code=@linecode) as A";
                         dynamicParams.Add("@linecode", json[i].code);
                         var data = DapperHelper.selectdata(sql, dynamicParams);
                         if (data.Rows.Count > 0 && decimal.Parse(data.Rows[0]["CONT"].ToString())>0)
@@ -86,7 +87,7 @@
                                     inner join TK_Wrk_Man P on A.wo_code=P.wo_code
                                     left join TMateriel_Info M on P.materiel_code=M.partcode
                                     left join TUom T on M.uom_code=T.code 
-                                    left join TKimp_Ewo E on P.m_po=E.wo
+                                    left join TKimp_Ewo E on P.m_po=E.wo and P.sourceid=E.id
                                     where P.status<>'CLOSED' and P.status<>'NEW' and A.eqp_code=@linecode and A.style='S' and A.step_seq='1'";
                             dynamicParams.Add("@linecode", json[i].code);
                             var data0 = DapperHelper.selectdata(sql, dynamicParams);
@@ -194,7 +195,7 @@
                          A.plan_qty,B.good_qty,B.ng_qty,E.planstartdate,E.planenddate, datediff(day,getdate(),E.planenddate) warning
                          from TK_Wrk_Man A 
                          inner join TK_Wrk_Step B on A.wo_code=B.wo_code
-                         inner join TKimp_Ewo E on A.m_po=E.wo
+                         inner join TKimp_Ewo E on A.m_po=E.wo and A.sourceid=E.id
                          left  join TMateriel_Info M on A.materiel_code=M.partcode
                          left  join TUom U on M.uom_code=U.code
                          where A.status<>'CLOSED' and A.is_delete<>'1' and B.isend='Y'
diff --git a/VueWebApi/DLL/DAL/ProductModelDAL.cs b/VueWebApi/DLL/DAL/ProductModelDAL.cs
index 4184763..fe78a8d 100644
--- a/VueWebApi/DLL/DAL/ProductModelDAL.cs
+++ b/VueWebApi/DLL/DAL/ProductModelDAL.cs
@@ -690,7 +690,7 @@
                           select distinct route_code  from TMateriel_Route where  materiel_code=@partcode and is_delete<>'1'
                         ) B
                         on A.code=B.route_code 
-                        where  A.is_delete='0'";
+                        where  A.is_delete='0' and A.enable='Y'";
                 dynamicParams.Add("@partcode", partcode);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 for (int i = 0; i < data.Rows.Count; i++)
@@ -805,7 +805,7 @@
             {
                 if (routecode != "" && routecode != null)
                 {
-                    search += "and A.code like '%'+@partcode+'%' ";
+                    search += "and A.code like '%'+@routecode+'%' ";
                     dynamicParams.Add("@routecode", routecode);
                 }
                 if (routename != "" && routename != null)
@@ -815,12 +815,12 @@
                 }
                 if (description != "" && description != null)
                 {
-                    search += "and A.description=@description ";
+                    search += "and A.description like '%'+@description+'%' ";
                     dynamicParams.Add("@description", description);
                 }
                 if (createuser != "" && createuser != null)
                 {
-                    search += "and U.username=@createuser ";
+                    search += "and U.username like '%'+@createuser+'%' ";
                     dynamicParams.Add("@createuser", createuser);
                 }
                 if (search == "")
@@ -1046,7 +1046,7 @@
             try
             {
                 //鑾峰彇宸ュ簭鏁版嵁
-                sql = @"select stepcode,stepname from TStep where is_delete<>'1' ";
+                sql = @"select stepcode,stepname from TStep where is_delete<>'1' and enable='Y'";
                 var data = DapperHelper.selecttable(sql);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
diff --git a/VueWebApi/DLL/DAL/ProductionManagementDAL.cs b/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
index ad57ee7..848865f 100644
--- a/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
+++ b/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
@@ -138,7 +138,7 @@
                     }
                     if (i == Convert.ToInt32(ordernum))  //鏈�鍚庝竴鍗曟椂
                     {
-                        sql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,stck_code,materiel_code,m_po,lm_user,lm_date) values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@stck_code,@materiel_code,@m_po,@username,@CreateDate)";
+                        sql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,stck_code,materiel_code,sourceid,m_po,lm_user,lm_date) values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@stck_code,@materiel_code,@sourceid,@m_po,@username,@CreateDate)";
                         list.Add(new
                         {
                             str = sql,
@@ -151,6 +151,7 @@
                                 plan_qty = cdqty + (decimal.Parse(markqty) - sumqty),  //鏈崟涓嬪崟鏁伴噺=鍒囧垎鏁伴噺+(涓嬪崟鏁伴噺-绱鍒囧垎涓嬪崟鏁伴噺)
                                 stck_code = warehousecode,
                                 materiel_code = partcode,
+                                sourceid=erporderid,
                                 m_po = erpordercode,
                                 username = username,
                                 CreateDate = DateTime.Now.ToString()
@@ -161,7 +162,7 @@
                     else
                     {
 
-                        sql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,stck_code,materiel_code,m_po,lm_user,lm_date) values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@stck_code,@materiel_code,@m_po,@username,@CreateDate)";
+                        sql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,stck_code,materiel_code,sourceid,m_po,lm_user,lm_date) values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@stck_code,@materiel_code,@sourceid,@m_po,@username,@CreateDate)";
                         list.Add(new
                         {
                             str = sql,
@@ -174,6 +175,7 @@
                                 plan_qty = cdqty,
                                 stck_code = warehousecode,
                                 materiel_code = partcode,
+                                sourceid = erporderid,
                                 m_po = erpordercode,
                                 username = username,
                                 CreateDate = DateTime.Now.ToString()
@@ -356,8 +358,8 @@
                 }
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
                 var total = 0; //鎬绘潯鏁�
-                var sql = @"select A.status,A.wotype,A.wo_code,A.materiel_code as partcode,B.partname,B.partspec,A.plan_qty,A.wkshp_code,C.org_name as wkshp_name,
-                            A.route_code,E.name as route_name,A.stck_code,F.name as stck_name,A.plan_startdate,A.plan_enddate,A.piroque,A.m_po,U.username as lm_user,A.lm_date
+                var sql = @"select A.id, A.status,A.wotype,A.wo_code,A.materiel_code as partcode,B.partname,B.partspec,A.plan_qty,A.wkshp_code,C.org_name as wkshp_name,
+                            A.route_code,E.name as route_name,A.stck_code,F.name as stck_name,A.plan_startdate,A.plan_enddate,A.piroque,A.sourceid,A.m_po,U.username as lm_user,A.lm_date
                             from TK_Wrk_Man A
                             left join TMateriel_Info B on A.materiel_code=B.partcode
                             left join TOrganization C on A.wkshp_code=C.org_code
@@ -621,7 +623,7 @@
         #endregion
 
         #region[MES宸ュ崟鍒犻櫎]
-        public static ToMessage DeleteMesOrder(string wocode, string m_po, string orderqty)
+        public static ToMessage DeleteMesOrder(string souceid, string wocode, string m_po, string orderqty)
         {
             var sql = "";
             List<object> list = new List<object>();
@@ -637,21 +639,22 @@
                     if (m_po != "" && m_po != null)
                     {
                         //鏌ヨ鐢熶骇璁㈠崟琛ㄦ暟鎹�
-                        sql = @"select *  from TKimp_Ewo where wo=@m_po";
+                        sql = @"select *  from TKimp_Ewo where wo=@m_po and id=@souceid";
                         dynamicParams.Add("@m_po", m_po);
+                        dynamicParams.Add("@souceid", souceid);
                         var data0 = DapperHelper.selectdata(sql, dynamicParams);
                         decimal relse_qty = decimal.Parse(data0.Rows[0]["RELSE_QTY"].ToString());//浠ヤ笅鍗曟暟閲�
                         if ((relse_qty - decimal.Parse(orderqty)) == 0)  //鍏ㄩ儴鎾ら攢 璁㈠崟鐘舵�佸洖鍐欐湭寮�濮�,宸蹭笅鍗曟暟閲忎负0
                         {
                             //鍥炲啓璁㈠崟琛ㄧ姸鎬佸強宸蹭笅鍗曟暟閲�
-                            sql = @"update TKimp_Ewo set status='NEW',relse_qty=0  where wo=@m_po";
-                            list.Add(new { str = sql, parm = new { m_po = m_po } });
+                            sql = @"update TKimp_Ewo set status='NEW',relse_qty=0  where wo=@m_po and id=@souceid";
+                            list.Add(new { str = sql, parm = new { m_po = m_po, souceid= souceid } });
                         }
                         else
                         {
                             //鍥炲啓璁㈠崟琛ㄧ姸鎬佸強宸蹭笅鍗曟暟閲�
-                            sql = @"update TKimp_Ewo set status='CREATING',relse_qty=relse_qty-@orderqty  where wo=@m_po";
-                            list.Add(new { str = sql, parm = new { m_po = m_po, orderqty = decimal.Parse(orderqty) } });
+                            sql = @"update TKimp_Ewo set status='CREATING',relse_qty=relse_qty-@orderqty  where wo=@m_po and id=@souceid";
+                            list.Add(new { str = sql, parm = new { m_po = m_po, souceid= souceid, orderqty = decimal.Parse(orderqty) } });
                         }
                     }
                     //鍒犻櫎宸ュ崟宸ュ簭琛�
@@ -1827,7 +1830,7 @@
                     dynamicParams.Add("@wo_code", mesordercode);
                     dynamicParams.Add("@step_code", stepcode);
                     var da1 = DapperHelper.selectdata(sql, dynamicParams);
-                    var dr = da1.AsEnumerable().ToList().Select(x => x.Field<int>("NAME")).ToList();
+                    var dr = da1.AsEnumerable().ToList().Select(x => x.Field<string>("NAME")).ToList();
                     string wxstring = (string.Join(",", dr.Select(x => x.ToString()).ToArray()));
                     mes.code = "300";
                     mes.count = 0;
@@ -1853,6 +1856,18 @@
                 //}
                 if (data.Rows.Count > 0)
                 {
+                    decimal sum_sqty = data.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();  //鑾峰彇鍚屽崟鍙�,鍚屽伐搴�,鍚屽鍗忎緵搴斿晢鏀舵枡鎬绘暟閲�
+                    decimal sum_fqty = da.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();  //鑾峰彇鍚屽崟鍙�,鍚屽伐搴�,鍚屽鍗忎緵搴斿晢鍙戞枡鎬绘暟閲�
+                    if ((sum_sqty + decimal.Parse(sqty) + decimal.Parse(ngqty)) > sum_fqty) //宸叉敹鏂欐�绘暟+褰撳墠鏀舵枡鏁伴噺+涓嶈壇鏁伴噺>鎬诲彂鏂欐暟閲�
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "鎿嶄綔澶辫触,褰撳墠鏀舵枡鏁伴噺+涓嶈壇鏁伴噺,涓嶈兘澶т簬寰呮敹鏁伴噺:" + (sum_fqty- sum_sqty) + "!";
+                        mes.data = null;
+                        return mes;
+                    }
+
+
                     //鑾峰彇涓昏〃鏈�澶D
                     sql = @"select ISNULL(IDENT_CURRENT('TK_Wrk_OutRecord')+1,1) as id";
                     var dt = DapperHelper.selecttable(sql);
diff --git a/VueWebApi/DLL/DAL/QualityManagementDAL.cs b/VueWebApi/DLL/DAL/QualityManagementDAL.cs
index c654d24..5b43eac 100644
--- a/VueWebApi/DLL/DAL/QualityManagementDAL.cs
+++ b/VueWebApi/DLL/DAL/QualityManagementDAL.cs
@@ -652,7 +652,7 @@
                 }
                 if (partcode != "" && partcode != null)
                 {
-                    search += "and A.partcode like '%'+@stanedname+'%' ";
+                    search += "and A.partcode like '%'+@partcode+'%' ";
                     dynamicParams.Add("@partcode", partcode);
                 }
                 if (partname != "" && partname != null)
diff --git a/VueWebApi/Hubs/ChatHub.cs b/VueWebApi/Hubs/ChatHub.cs
index 5b6f1dc..f095823 100644
--- a/VueWebApi/Hubs/ChatHub.cs
+++ b/VueWebApi/Hubs/ChatHub.cs
@@ -35,12 +35,16 @@
             Clients.Client(_connections[name2]).SendMessage("鏉ヨ嚜鐢ㄦ埛:" + name1 + " 鍐呭锛�" + cont + "" + DateTime.Now.ToString("yyyy/MM/ddhh:mm:ss") + "鐨勬秷鎭帹閫侊紒");
         }
 
-
+        public void SendByGroups(string name1, IList<string>name2, string cont)
+        {
+            //Client鍐呬负鐢ㄦ埛鐨刬d锛屾槸鍞竴鐨勶紝SendMessage鍑芥暟鏄墠绔嚱鏁帮紝鎰忔�濇槸鏈嶅姟鍣ㄥ皢璇ユ秷鎭帹閫佽嚦鍓嶇
+            Clients.Clients(name2).SendMessage("鏉ヨ嚜鐢ㄦ埛:" + name1 + " 鍐呭锛�" + cont + "" + DateTime.Now.ToString("yyyy/MM/ddhh:mm:ss") + "鐨勬秷鎭帹閫侊紒");
+        }
 
         /// <summary>
         /// 鐢ㄦ埛涓婄嚎鍑芥暟
         /// </summary>
-        /// <param name="name"></param>
+        /// <param name="name">鐢ㄦ埛鍚�</param>
         public void SendLogin(string name)
         {
             if (!userList.Contains(name))
diff --git a/VueWebApi/Hubs/HubsMessage.html b/VueWebApi/Hubs/HubsMessage.html
index 5bccdbd..66a3850 100644
--- a/VueWebApi/Hubs/HubsMessage.html
+++ b/VueWebApi/Hubs/HubsMessage.html
@@ -24,6 +24,7 @@
             //鍓嶇Hub鐨勪娇鐢紝娉ㄦ剰鐨勬槸锛孒ub鐨勫悕瀛楁槸ChatHub锛岃繖閲屼娇鐢ㄦ椂棣栧瓧姣嶅皬鍐�
             var work = $.connection.chatHub;
             /*$('#displayname').val(prompt('璇疯緭鍏ユ樀绉�:', ''));*/
+            $('#displaycode').val("003");
             $('#displayname').val("寮犱笁");
             $('#thisname').text('褰撳墠鐢ㄦ埛锛�' + $('#displayname').val());
 
@@ -51,10 +52,11 @@
 
                 //鐐瑰嚮鎸夐挳锛屽彂閫佹秷鎭�
                 $('#send').click(function () {
-                    var friend = $('#username').val();
+                    /*var friend = $('#username').val();*/
+                    var friend =["1","2","3"];
                     var cont = $('#cont').val();
                     //璋冪敤鍚庣鍑芥暟锛屽彂閫佹寚瀹氭秷鎭�
-                    work.server.sendByGroup(username, friend, cont);
+                    work.server.SendByGroups(username, friend, cont);
                 });
             });
         });
diff --git a/VueWebApi/Hubs/HubsMessage1.html b/VueWebApi/Hubs/HubsMessage1.html
index 4b675b1..b6f628a 100644
--- a/VueWebApi/Hubs/HubsMessage1.html
+++ b/VueWebApi/Hubs/HubsMessage1.html
@@ -35,22 +35,37 @@
             };
 
 
+
+            //鍚庣SendLogin璋冪敤鍚庯紝浜х敓鐨刲oginUser鍥炶皟
+            work.client.loginUser = function (userlist) {
+                reloadUser(userlist);
+            };
+
+
+
             //hub杩炴帴寮�鍚�
             $.connection.hub.start().done(function () {
                 var username = $('#displayname').val();
                 //鍙戦�佷笂绾夸俊鎭�
                 work.server.sendLogin(username);
 
+                //鐐瑰嚮鎸夐挳锛屽彂閫佹秷鎭�
+                $('#send').click(function () {
+                    var friend = $('#username').val();
+                    var cont = $('#cont').val();
+                    //璋冪敤鍚庣鍑芥暟锛屽彂閫佹寚瀹氭秷鎭�
+                    work.server.sendByGroup(username, friend, cont);
+                });
             });
         });
 
         //閲嶆柊鍔犺浇鐢ㄦ埛鍒楄〃
-        //var reloadUser = function () {
-        //    $("#username").empty();
-        //    for (i = 0; i < 5; i++) {
-        //        $("#username").append("<option value=" + i + ">" +i + "</option>");
-        //    }
-        //}
+        var reloadUser = function () {
+            $("#username").empty();
+            for (i = 0; i < 5; i++) {
+                $("#username").append("<option value=" + i + ">" +i + "</option>");
+            }
+        }
         //var reloadUser = function (userlist) {
         //    $("#username").empty();
         //    for (i = 0; i < userlist.length; i++) {
diff --git a/VueWebApi/Hubs/HubsMessage2.html b/VueWebApi/Hubs/HubsMessage2.html
new file mode 100644
index 0000000..4bac89e
--- /dev/null
+++ b/VueWebApi/Hubs/HubsMessage2.html
@@ -0,0 +1,62 @@
+锘�<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8" />
+    <title></title>
+    <script src="../Scripts/jquery-3.4.1.min.js"></script>
+    <script src="../Scripts/jquery.signalR-2.2.2.min.js"></script>
+    <script src="/SignalR/Hubs"></script>
+</head>
+<body>
+    <h1>娴佺▼婕旂ず</h1>
+    <input type="hidden" id="displayname" />
+    <h2 id="thisname"></h2><br />
+    <select id="username" style="width:153px;">
+    </select>
+    <input id="cont" type="text" style="width:300px;">
+    <input id="send" type="button" value="鍙戦��" />
+    <div>
+        <h1 id="messgae"></h1>
+    </div>
+    <script type="text/javascript">
+
+        $(function () {
+            //鍓嶇Hub鐨勪娇鐢紝娉ㄦ剰鐨勬槸锛孒ub鐨勫悕瀛楁槸ChatHub锛岃繖閲屼娇鐢ㄦ椂棣栧瓧姣嶅皬鍐�
+            var work = $.connection.chatHub;
+            /*$('#displayname').val(prompt('璇疯緭鍏ユ樀绉�:', ''));*/
+            $('#displayname').val("2");
+            $('#thisname').text('褰撳墠鐢ㄦ埛锛�' + $('#displayname').val());
+
+
+
+            //瀵瑰簲鍚庣鐨凷endMessage鍑芥暟锛屾秷鎭帴鏀跺嚱鏁�
+            work.client.sendMessage = function (message) {
+                $('#messgae').append(message + '</br>')
+            };
+
+
+            //hub杩炴帴寮�鍚�
+            $.connection.hub.start().done(function () {
+                var username = $('#displayname').val();
+                //鍙戦�佷笂绾夸俊鎭�
+                work.server.sendLogin(username);
+
+            });
+        });
+
+        //閲嶆柊鍔犺浇鐢ㄦ埛鍒楄〃
+        //var reloadUser = function () {
+        //    $("#username").empty();
+        //    for (i = 0; i < 5; i++) {
+        //        $("#username").append("<option value=" + i + ">" +i + "</option>");
+        //    }
+        //}
+        //var reloadUser = function (userlist) {
+        //    $("#username").empty();
+        //    for (i = 0; i < userlist.length; i++) {
+        //        $("#username").append("<option value=" + userlist[i] + ">" + userlist[i] + "</option>");
+        //    }
+        //}
+    </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/VueWebApi/Logs/2022-08-31.TXT b/VueWebApi/Logs/2022-08-31.TXT
new file mode 100644
index 0000000..b948414
--- /dev/null
+++ b/VueWebApi/Logs/2022-08-31.TXT
@@ -0,0 +1,116 @@
+ 【时间】:2022-08-31 17:07:40,472
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 11 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:SqlException
+消息内容:列名 'usercode' 无效。
+引发异常路径:/api/BasicSetting/SaveRoleAssoctUser
+引发异常的方法:OnError
+引发异常源:.Net SqlClient Data Provider   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
+   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
+   在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
+   在 System.Data.SqlClient.SqlDataReader.get_MetaData()
+   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
+   在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderImpl(IDbConnection cnn, CommandDefinition& command, CommandBehavior commandBehavior, IDbCommand& cmd)
+   在 Dapper.SqlMapper.ExecuteReader(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.selectdata(String sql, Object parm) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 195
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
+ 【时间】:2022-08-31 17:48:53,157
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 10 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:SqlException
+消息内容:列名 'usercode' 无效。
+引发异常路径:/api/BasicSetting/SaveRoleAssoctUser
+引发异常的方法:OnError
+引发异常源:.Net SqlClient Data Provider   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
+   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
+   在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
+   在 System.Data.SqlClient.SqlDataReader.get_MetaData()
+   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
+   在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderImpl(IDbConnection cnn, CommandDefinition& command, CommandBehavior commandBehavior, IDbCommand& cmd)
+   在 Dapper.SqlMapper.ExecuteReader(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.selectdata(String sql, Object parm) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 195
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
+ 【时间】:2022-08-31 17:56:10,826
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 10 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:SqlException
+消息内容:列名 'usercode' 无效。
+引发异常路径:/api/BasicSetting/SaveRoleAssoctUser
+引发异常的方法:OnError
+引发异常源:.Net SqlClient Data Provider   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
+   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
+   在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
+   在 System.Data.SqlClient.SqlDataReader.get_MetaData()
+   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
+   在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderImpl(IDbConnection cnn, CommandDefinition& command, CommandBehavior commandBehavior, IDbCommand& cmd)
+   在 Dapper.SqlMapper.ExecuteReader(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.selectdata(String sql, Object parm) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 195
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
+ 【时间】:2022-08-31 17:57:57,376
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 11 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:SqlException
+消息内容:列名 'usercode' 无效。
+引发异常路径:/api/BasicSetting/SaveRoleAssoctUser
+引发异常的方法:OnError
+引发异常源:.Net SqlClient Data Provider   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
+   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
+   在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
+   在 System.Data.SqlClient.SqlDataReader.get_MetaData()
+   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
+   在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderImpl(IDbConnection cnn, CommandDefinition& command, CommandBehavior commandBehavior, IDbCommand& cmd)
+   在 Dapper.SqlMapper.ExecuteReader(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.selectdata(String sql, Object parm) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 195
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
diff --git a/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user b/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
index 4fbc699..ef7d1c0 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-08-30T09:36:34.5932064Z;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-08-31T15:40:49.5468281Z;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">
@@ -714,16 +714,16 @@
       <publishTime>12/24/2021 15:38:29</publishTime>
     </File>
     <File Include="bin/VueWebApi.dll">
-      <publishTime>08/30/2022 17:36:29</publishTime>
+      <publishTime>08/31/2022 22:15:43</publishTime>
     </File>
     <File Include="bin/VueWebApi.dll.config">
       <publishTime>06/15/2022 15:31:43</publishTime>
     </File>
     <File Include="bin/VueWebApi.pdb">
-      <publishTime>08/30/2022 17:36:29</publishTime>
+      <publishTime>08/31/2022 22:15:43</publishTime>
     </File>
     <File Include="bin/VueWebApi.xml">
-      <publishTime>08/30/2022 17:36:29</publishTime>
+      <publishTime>08/31/2022 22:15:43</publishTime>
     </File>
     <File Include="bin/WebActivatorEx.dll">
       <publishTime>02/08/2013 16:42:28</publishTime>
@@ -1272,10 +1272,13 @@
       <publishTime>07/08/2022 15:15:11</publishTime>
     </File>
     <File Include="Hubs/HubsMessage.html">
-      <publishTime>08/30/2022 14:32:38</publishTime>
+      <publishTime>08/31/2022 09:31:57</publishTime>
     </File>
     <File Include="Hubs/HubsMessage1.html">
-      <publishTime>08/30/2022 14:51:37</publishTime>
+      <publishTime>08/31/2022 09:19:16</publishTime>
+    </File>
+    <File Include="Hubs/HubsMessage2.html">
+      <publishTime>08/31/2022 08:55:18</publishTime>
     </File>
     <File Include="Image/1.png">
       <publishTime>08/11/2022 08:20:52</publishTime>
@@ -1506,7 +1509,7 @@
       <publishTime>06/10/2022 08:20:24</publishTime>
     </File>
     <File Include="Web.config">
-      <publishTime>08/30/2022 17:36:34</publishTime>
+      <publishTime>08/31/2022 22:15:49</publishTime>
     </File>
   </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/VueWebApi/VueWebApi.csproj b/VueWebApi/VueWebApi.csproj
index b910693..320bc7d 100644
--- a/VueWebApi/VueWebApi.csproj
+++ b/VueWebApi/VueWebApi.csproj
@@ -406,6 +406,7 @@
     <Content Include="Global.asax" />
     <Content Include="Grid\grwebapp.js" />
     <Content Include="Grid\webapp-ws-tutorial.htm" />
+    <Content Include="Hubs\HubsMessage2.html" />
     <Content Include="Hubs\HubsMessage1.html" />
     <Content Include="Hubs\HubsMessage.html" />
     <Content Include="Image\1.png" />
diff --git a/VueWebApi/bin/VueWebApi.pdb b/VueWebApi/bin/VueWebApi.pdb
index 6e332bb..5b04e1d 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 78a62ed..d7ae1c0 100644
--- a/VueWebApi/bin/VueWebApi.xml
+++ b/VueWebApi/bin/VueWebApi.xml
@@ -529,7 +529,7 @@
             <summary>
             鐢ㄦ埛涓婄嚎鍑芥暟
             </summary>
-            <param name="name"></param>
+            <param name="name">鐢ㄦ埛鍚�</param>
         </member>
         <member name="M:VueWebApi.Controllers.AppDeviceManageController.CheckScanDeviceQrCodeData(System.String)">
             <summary>
@@ -1493,10 +1493,11 @@
             <param name="obj">鎻愪氦鏁版嵁</param>
             <returns></returns>
         </member>
-        <member name="M:VueWebApi.Controllers.ProductionManagementController.DeleteMesOrder(System.String,System.String,System.String)">
+        <member name="M:VueWebApi.Controllers.ProductionManagementController.DeleteMesOrder(System.String,System.String,System.String,System.String)">
             <summary>
             MES宸ュ崟鍒犻櫎
             </summary>
+            <param name="souceid">婧愬崟宸ュ崟</param>
             <param name="wocode">宸ュ崟缂栧彿</param>
             <param name="m_po">璁㈠崟缂栧彿</param>
             <param name="orderqty">宸ュ崟鏁伴噺</param>
diff --git a/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
index 7004af0..9b036f2 100644
--- a/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
+++ b/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage.html b/VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage.html
index 5bccdbd..66a3850 100644
--- a/VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage.html
+++ b/VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage.html
@@ -24,6 +24,7 @@
             //鍓嶇Hub鐨勪娇鐢紝娉ㄦ剰鐨勬槸锛孒ub鐨勫悕瀛楁槸ChatHub锛岃繖閲屼娇鐢ㄦ椂棣栧瓧姣嶅皬鍐�
             var work = $.connection.chatHub;
             /*$('#displayname').val(prompt('璇疯緭鍏ユ樀绉�:', ''));*/
+            $('#displaycode').val("003");
             $('#displayname').val("寮犱笁");
             $('#thisname').text('褰撳墠鐢ㄦ埛锛�' + $('#displayname').val());
 
@@ -51,10 +52,11 @@
 
                 //鐐瑰嚮鎸夐挳锛屽彂閫佹秷鎭�
                 $('#send').click(function () {
-                    var friend = $('#username').val();
+                    /*var friend = $('#username').val();*/
+                    var friend =["1","2","3"];
                     var cont = $('#cont').val();
                     //璋冪敤鍚庣鍑芥暟锛屽彂閫佹寚瀹氭秷鎭�
-                    work.server.sendByGroup(username, friend, cont);
+                    work.server.SendByGroups(username, friend, cont);
                 });
             });
         });
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage1.html b/VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage1.html
index 4b675b1..b6f628a 100644
--- a/VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage1.html
+++ b/VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage1.html
@@ -35,22 +35,37 @@
             };
 
 
+
+            //鍚庣SendLogin璋冪敤鍚庯紝浜х敓鐨刲oginUser鍥炶皟
+            work.client.loginUser = function (userlist) {
+                reloadUser(userlist);
+            };
+
+
+
             //hub杩炴帴寮�鍚�
             $.connection.hub.start().done(function () {
                 var username = $('#displayname').val();
                 //鍙戦�佷笂绾夸俊鎭�
                 work.server.sendLogin(username);
 
+                //鐐瑰嚮鎸夐挳锛屽彂閫佹秷鎭�
+                $('#send').click(function () {
+                    var friend = $('#username').val();
+                    var cont = $('#cont').val();
+                    //璋冪敤鍚庣鍑芥暟锛屽彂閫佹寚瀹氭秷鎭�
+                    work.server.sendByGroup(username, friend, cont);
+                });
             });
         });
 
         //閲嶆柊鍔犺浇鐢ㄦ埛鍒楄〃
-        //var reloadUser = function () {
-        //    $("#username").empty();
-        //    for (i = 0; i < 5; i++) {
-        //        $("#username").append("<option value=" + i + ">" +i + "</option>");
-        //    }
-        //}
+        var reloadUser = function () {
+            $("#username").empty();
+            for (i = 0; i < 5; i++) {
+                $("#username").append("<option value=" + i + ">" +i + "</option>");
+            }
+        }
         //var reloadUser = function (userlist) {
         //    $("#username").empty();
         //    for (i = 0; i < userlist.length; i++) {
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage2.html b/VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage2.html
new file mode 100644
index 0000000..4bac89e
--- /dev/null
+++ b/VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage2.html
@@ -0,0 +1,62 @@
+锘�<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8" />
+    <title></title>
+    <script src="../Scripts/jquery-3.4.1.min.js"></script>
+    <script src="../Scripts/jquery.signalR-2.2.2.min.js"></script>
+    <script src="/SignalR/Hubs"></script>
+</head>
+<body>
+    <h1>娴佺▼婕旂ず</h1>
+    <input type="hidden" id="displayname" />
+    <h2 id="thisname"></h2><br />
+    <select id="username" style="width:153px;">
+    </select>
+    <input id="cont" type="text" style="width:300px;">
+    <input id="send" type="button" value="鍙戦��" />
+    <div>
+        <h1 id="messgae"></h1>
+    </div>
+    <script type="text/javascript">
+
+        $(function () {
+            //鍓嶇Hub鐨勪娇鐢紝娉ㄦ剰鐨勬槸锛孒ub鐨勫悕瀛楁槸ChatHub锛岃繖閲屼娇鐢ㄦ椂棣栧瓧姣嶅皬鍐�
+            var work = $.connection.chatHub;
+            /*$('#displayname').val(prompt('璇疯緭鍏ユ樀绉�:', ''));*/
+            $('#displayname').val("2");
+            $('#thisname').text('褰撳墠鐢ㄦ埛锛�' + $('#displayname').val());
+
+
+
+            //瀵瑰簲鍚庣鐨凷endMessage鍑芥暟锛屾秷鎭帴鏀跺嚱鏁�
+            work.client.sendMessage = function (message) {
+                $('#messgae').append(message + '</br>')
+            };
+
+
+            //hub杩炴帴寮�鍚�
+            $.connection.hub.start().done(function () {
+                var username = $('#displayname').val();
+                //鍙戦�佷笂绾夸俊鎭�
+                work.server.sendLogin(username);
+
+            });
+        });
+
+        //閲嶆柊鍔犺浇鐢ㄦ埛鍒楄〃
+        //var reloadUser = function () {
+        //    $("#username").empty();
+        //    for (i = 0; i < 5; i++) {
+        //        $("#username").append("<option value=" + i + ">" +i + "</option>");
+        //    }
+        //}
+        //var reloadUser = function (userlist) {
+        //    $("#username").empty();
+        //    for (i = 0; i < userlist.length; i++) {
+        //        $("#username").append("<option value=" + userlist[i] + ">" + userlist[i] + "</option>");
+        //    }
+        //}
+    </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
index 6e332bb..5b04e1d 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 78a62ed..d7ae1c0 100644
--- a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
+++ b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
@@ -529,7 +529,7 @@
             <summary>
             鐢ㄦ埛涓婄嚎鍑芥暟
             </summary>
-            <param name="name"></param>
+            <param name="name">鐢ㄦ埛鍚�</param>
         </member>
         <member name="M:VueWebApi.Controllers.AppDeviceManageController.CheckScanDeviceQrCodeData(System.String)">
             <summary>
@@ -1493,10 +1493,11 @@
             <param name="obj">鎻愪氦鏁版嵁</param>
             <returns></returns>
         </member>
-        <member name="M:VueWebApi.Controllers.ProductionManagementController.DeleteMesOrder(System.String,System.String,System.String)">
+        <member name="M:VueWebApi.Controllers.ProductionManagementController.DeleteMesOrder(System.String,System.String,System.String,System.String)">
             <summary>
             MES宸ュ崟鍒犻櫎
             </summary>
+            <param name="souceid">婧愬崟宸ュ崟</param>
             <param name="wocode">宸ュ崟缂栧彿</param>
             <param name="m_po">璁㈠崟缂栧彿</param>
             <param name="orderqty">宸ュ崟鏁伴噺</param>
diff --git a/VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt b/VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt
index cf359b7..8e66278 100644
--- a/VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt
+++ b/VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt
@@ -278,6 +278,7 @@
 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 6e332bb..5b04e1d 100644
--- a/VueWebApi/obj/Release/VueWebApi.pdb
+++ b/VueWebApi/obj/Release/VueWebApi.pdb
Binary files differ

--
Gitblit v1.9.3