From 96fb607676bb3b9f2e3b191d64c44e801d08d0e5 Mon Sep 17 00:00:00 2001
From: zrg <z18737863051@163.com>
Date: 星期一, 24 六月 2024 15:38:01 +0800
Subject: [PATCH] 生产质量日汇报单查询,增加发送钉钉时调用的方法,以及报工台点击异常按钮,输入信息保存后,进行钉钉发信息

---
 WebAPI/Web.config                                               |   10 -
 WebAPI/packages.config                                          |   15 ++
 WebAPI/Controllers/生产管理/质量汇报单/Sc_QualityReportBillController.cs |   62 ++++++++++++
 WebAPI/WebAPI.csproj                                            |   49 +++++++++
 WebAPI/DLL/钉钉消息/Cls_DDMsg.cs                                    |   75 +++++++++++++++
 WebAPI/Controllers/SCGL/Sc_MESTransFerWorkBillController.cs     |   66 ++++++++++++
 6 files changed, 261 insertions(+), 16 deletions(-)

diff --git a/WebAPI/Controllers/SCGL/Sc_MESTransFerWorkBillController.cs b/WebAPI/Controllers/SCGL/Sc_MESTransFerWorkBillController.cs
index 66a1b09..3f55bdf 100644
--- a/WebAPI/Controllers/SCGL/Sc_MESTransFerWorkBillController.cs
+++ b/WebAPI/Controllers/SCGL/Sc_MESTransFerWorkBillController.cs
@@ -1,4 +1,6 @@
-锘縰sing DBUtility;
+锘縰sing DAL;
+using DBUtility;
+using DLL;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
 using System;
@@ -7,8 +9,11 @@
 using System.Linq;
 using System.Net;
 using System.Net.Http;
+using System.Timers;
+using System.Threading.Tasks;
 using System.Web.Http;
 using WebAPI.Models;
+using System.Threading;
 
 namespace WebAPI.Controllers.SCGL
 {
@@ -43,7 +48,7 @@
         /// <returns></returns>
         [Route("Sc_MESTransFerWorkBill/SaveGetMESTransFerWorkFrom")]
         [HttpPost]
-        public object SaveGetMESTransFerWorkFrom([FromBody] JObject msg)
+        public object SaveGetMESTransFerWorkFromAsync([FromBody] JObject msg)
         {
 
             var _value = msg["msg"].ToString();
@@ -151,7 +156,7 @@
                         objJsonResult.data = 1;
                         return objJsonResult;
                     }
-                    
+
                     //string[] arrStr = oItem.HSendMan.Split(','); //鍙戦�佷汉
                     //arrStr = oItem.HReceiveMan.Split(',');  //鎺ユ敹浜�
                     string[] arrStr = oItem.HCopyMan.Split(',');  //鎶勯�佷汉
@@ -165,7 +170,7 @@
                         Models.ClsOA_ErrMsgBackBillSub2 sb = new Models.ClsOA_ErrMsgBackBillSub2();
                         sb.HEntryID = i;
                         sb.HReceiveMan = arrStr[i - 1];
-                        if (arrStr[i-1].ToString() == oItem.HSendMan)
+                        if (arrStr[i - 1].ToString() == oItem.HSendMan)
                         {
                             sb.HReadFlag = true;
                         }
@@ -198,6 +203,7 @@
                             }
                         }
                     }
+                    SaveOA_ErrMsgBackBillSub(msg2);//绗竴娆′繚瀛樺彂閫侀拤閽�
 
                 }
                 else
@@ -6590,5 +6596,57 @@
         #endregion
 
         #endregion
+
+        #region 寮傚父鍙嶉鍗曚繚瀛樺悗,寰�瀛愯〃閲岄潰鍘绘彃鍏ユ暟鎹�
+        public object SaveOA_ErrMsgBackBillSub(string msg2)
+        {
+             msg2 = "[" + msg2.ToString() + "]";
+            List<ClsOA_ErrMsgBackBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsOA_ErrMsgBackBillMain>>(msg2);
+
+            long HInterID = mainList[0].HInterID;//閫掑叆type寰楀埌鐨勫崟鎹甀D
+            string HReceiveMan = mainList[0].HReceiveMan;//鎺ユ敹浜�
+            string HDescription = mainList[0].HDescription;//鍐呭
+            int HEntryID = 1;
+
+            string sql = "insert into OA_ErrMsgBackBillSub2 values('" + HInterID + "','" + HEntryID + "','" + HReceiveMan + "','0')";
+            oCN.RunProcReturn(sql, "OA_ErrMsgBackBillSub2");
+            //鐩存帴鍙戦�侀拤閽夋秷鎭�  s
+             FistDingDingMesAsync(HReceiveMan, HDescription);
+
+            objJsonResult.code = "0";
+            objJsonResult.count = 0;
+            objJsonResult.Message = "鎻掑叆鎴愬姛,寮�濮嬫墽琛屽畾鏃朵换鍔�,閽夐拤鍙戦�佹秷鎭�";
+            objJsonResult.data = 1;
+            return objJsonResult;      
+        }       
+
+        /// <summary>
+        /// 寮傚父鍙嶉鍗曠涓�娆′繚瀛樼殑鏃跺�欒繘琛屽彂閫佹秷鎭�
+        /// </summary>
+        /// <param name="HReceiveMan"></param>
+        /// <param name="HDescription"></param>
+        public async void FistDingDingMesAsync(string HReceiveMan, string HDescription)
+        {
+            
+            ds = oCN.RunProcReturn("select * from Gy_Czygl where Czymc='" + HReceiveMan + "'", "Gy_Czygl");
+            string DDUserID = ds.Tables[0].Rows[0]["DDUserID"].ToString();  //閽夐拤鐢ㄦ埛鐨刬d
+            Cls_DDMsg msg = new Cls_DDMsg();
+            string appKey = "dingrsrzhdyn3mlaof95";
+            string appSecret = "RAqH6YtZnPLCpDbuqfaYQkKkVtVdS0wqfC8I26X6qiS-8eoCJCNrzx3fubGND4Sq";
+            //鑾峰彇浼佷笟鐨刟ccess_token鐨勫��
+            string response = msg.GetAccessToken(appKey, appSecret);
+            JObject responseJson = JObject.Parse(response);
+            // 鑾峰彇access_token鐨勫��
+            string accessToken = responseJson["accessToken"].ToString();
+            //璋冪敤鏂规硶鍙戦�佹秷鎭�           
+            string agentId = "3118119317";  //浼佷笟鍐呴儴灏忕▼搴廼d
+            string deptIdList = "0"; // 绌哄瓧绗︿覆琛ㄧず涓嶆寚瀹氶儴闂�
+            string toAllUser = "false";
+            string message = HDescription;//寮傚父鍙嶉鍗曠殑鍐呭
+            response = await msg.SendTextMessage(accessToken, agentId, DDUserID, deptIdList, toAllUser, message);
+            Console.WriteLine($"鍒濆娑堟伅鍙戦�佺粨鏋�: {response}");
+        }       
+
+        #endregion
     }
 }
\ No newline at end of file
diff --git "a/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\350\264\250\351\207\217\346\261\207\346\212\245\345\215\225/Sc_QualityReportBillController.cs" "b/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\350\264\250\351\207\217\346\261\207\346\212\245\345\215\225/Sc_QualityReportBillController.cs"
index b0c0e75..fdc247e 100644
--- "a/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\350\264\250\351\207\217\346\261\207\346\212\245\345\215\225/Sc_QualityReportBillController.cs"
+++ "b/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\350\264\250\351\207\217\346\261\207\346\212\245\345\215\225/Sc_QualityReportBillController.cs"
@@ -631,7 +631,7 @@
         #region 鎻愪氦淇濆瓨锛屽瓨涓诲瓙琛ㄥ強鏄庣粏琛�
         [Route("Sc_QualityReportBill/set_SaveBill")]
         [HttpGet]
-        public object set_SaveBill(long HInterID,string HBillNo, string HChecker)
+        public object set_SaveBill(long HInterID,string HBillNo, string HChecker,string HBadReasonHQty)
         {
             try
             {
@@ -659,7 +659,7 @@
                 }
                 //=========================================================
                 //淇濆瓨
-                oCN.RunProc("exec h_p_save_Sc_QualityReportBill " + HInterID);
+                oCN.RunProc("exec h_p_save_Sc_QualityReportBill " + HInterID+",'"+ HBadReasonHQty +"'");
                 //鍒ゆ柇鏄惁鍏佽淇濆瓨锛屼笉鍏佽鍒欏洖婊�
                 ds = oCN.RunProcReturn("exec h_p_JIT_ICMOBillQualityStatus_SaveCtrl", "h_p_JIT_ICMOBillQualityStatus_SaveCtrl");
                 if (ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) == "2")
@@ -1613,5 +1613,63 @@
             }
         }
         #endregion
+
+        #region 鐢熶骇璐ㄩ噺鏃ユ眹鎶ュ崟鍒楄〃 鏌ヨ
+ 
+        [Route("Sc_QualityReportBill/getSc_QualityReportBillDay")]
+        [HttpGet]
+        public object getSc_QualityReportBillDay(string sWhere, string user)
+        {
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鏌ョ湅鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("Sc_QualityReportBill_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳煡鐪嬫潈闄愶紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("select * from h_v_Sc_StationOutBillMainList order by 鍗曟嵁鍙� desc", "h_v_Sc_StationOutBillMainList");
+                }
+                else
+                {
+                    string sql1 = "select * from h_v_Sc_StationOutBillMainList where 1 = 1 ";
+                    string sql = sql1 + sWhere + " order by 鍗曟嵁鍙� desc";
+                    ds = oCN.RunProcReturn(sql, "h_v_Sc_StationOutBillMainList");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.data = ds.Tables[0];
+                objJsonResult.list = columnNameList;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+
     }
 }
\ No newline at end of file
diff --git "a/WebAPI/DLL/\351\222\211\351\222\211\346\266\210\346\201\257/Cls_DDMsg.cs" "b/WebAPI/DLL/\351\222\211\351\222\211\346\266\210\346\201\257/Cls_DDMsg.cs"
new file mode 100644
index 0000000..7ac2cb0
--- /dev/null
+++ "b/WebAPI/DLL/\351\222\211\351\222\211\346\266\210\346\201\257/Cls_DDMsg.cs"
@@ -0,0 +1,75 @@
+锘縰sing System;
+using System.IO;
+using System.Net;
+using System.Net.Http;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DLL
+{
+    public class Cls_DDMsg
+    {
+        private HttpClient _client;
+        private string _baseUrl;
+
+        //鑾峰彇浼佷笟鐨刟ccessToken
+        public string GetAccessToken(string appKey, string appSecret)
+        {
+            string url = "https://api.dingtalk.com/v1.0/oauth2/accessToken";
+
+            string postData = "{\"appKey\":\"" + appKey + "\", \"appSecret\":\"" + appSecret + "\"}";
+
+            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
+
+            WebRequest request = WebRequest.Create(url);
+            request.Method = "POST";
+            request.ContentType = "application/json";
+            request.ContentLength = byteArray.Length;
+
+            using (Stream dataStream = request.GetRequestStream())
+            {
+                dataStream.Write(byteArray, 0, byteArray.Length);
+            }
+
+            using (WebResponse response = request.GetResponse())
+            using (Stream responseStream = response.GetResponseStream())
+            using (StreamReader reader = new StreamReader(responseStream))
+            {
+                string responseString = reader.ReadToEnd();
+                return responseString;
+            }
+        }
+
+        //鍙戦�佸伐浣滈�氱煡      
+        public async Task<string> SendTextMessage(string accessToken, string agentId, string userIdList, string deptIdList, string toAllUser, string message)
+        {
+            try
+            {
+                _client = new HttpClient();
+                _baseUrl = "https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2";
+                string url = $"{_baseUrl}?access_token={accessToken}";
+                DateTimeOffset now = DateTimeOffset.Now;
+                string currentTime = now.ToString("yyyy-MM-dd HH:mm:ss");
+                string messageWithTimestamp = $"{currentTime}-{message}"; // 鍦ㄦ秷鎭唴瀹逛箣鍓嶆坊鍔犳椂闂存埑
+                string messageJson = $"{{\"msgtype\": \"text\", \"text\": {{ \"content\": \"{messageWithTimestamp}\" }} }}";
+                string requestBody = $"agent_id={agentId}&userid_list={userIdList}&dept_id_list={deptIdList}&to_all_user={toAllUser}&msg={messageJson}";
+
+                HttpResponseMessage response = await _client.PostAsync(url, new StringContent(requestBody, Encoding.UTF8, "application/x-www-form-urlencoded"));
+
+                if (response.IsSuccessStatusCode)
+                {
+                    return await response.Content.ReadAsStringAsync();
+                }
+                else
+                {
+                    return $"Failed to send message. Status code: {response.StatusCode}";
+                }
+            }
+            catch (Exception ex)
+            {
+                return "An error occurred: " + ex.Message;
+            }
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Web.config b/WebAPI/Web.config
index c32c903..4c4fc10 100644
--- a/WebAPI/Web.config
+++ b/WebAPI/Web.config
@@ -8,7 +8,7 @@
 
 
 
-  <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
+  <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <section name="WebAPI.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
   </sectionGroup>
  </configSections>
@@ -53,7 +53,7 @@
       </system.Web>
   -->
 	<system.web>
-		<customErrors mode="Off"/>
+		<customErrors mode="Off" />
 		<compilation debug="true" targetFramework="4.5" />
 		<httpRuntime maxQueryStringLength="102400" />
 		<pages controlRenderingCompatibilityVersion="4.0" />
@@ -67,7 +67,7 @@
 			</dependentAssembly>
 			<dependentAssembly>
 				<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
-				<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
+				<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
 			</dependentAssembly>
 			<dependentAssembly>
 				<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
@@ -106,9 +106,7 @@
 			</basicHttpBinding>
 		</bindings>
 		<client>
-			<endpoint address="http://61.130.182.102:18181/WEBSCS/WebService1.asmx" binding="basicHttpBinding"
-     bindingConfiguration="WebService1Soap" contract="Webs1.WebService1Soap"
-     name="WebService1Soap" />
+			<endpoint address="http://61.130.182.102:18181/WEBSCS/WebService1.asmx" binding="basicHttpBinding" bindingConfiguration="WebService1Soap" contract="Webs1.WebService1Soap" name="WebService1Soap" />
 		</client>
 	</system.serviceModel>
 
diff --git a/WebAPI/WebAPI.csproj b/WebAPI/WebAPI.csproj
index 6ec29e6..db40d1b 100644
--- a/WebAPI/WebAPI.csproj
+++ b/WebAPI/WebAPI.csproj
@@ -46,6 +46,33 @@
     <Prefer32Bit>false</Prefer32Bit>
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="AlibabaCloud.EndpointUtil, Version=0.1.1.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\AlibabaCloud.EndpointUtil.0.1.1\lib\net45\AlibabaCloud.EndpointUtil.dll</HintPath>
+    </Reference>
+    <Reference Include="AlibabaCloud.GatewayDingTalk, Version=1.0.2.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\AlibabaCloud.GatewayDingTalk.1.0.2\lib\net45\AlibabaCloud.GatewayDingTalk.dll</HintPath>
+    </Reference>
+    <Reference Include="AlibabaCloud.GatewaySpi, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\AlibabaCloud.GatewaySpi.0.0.2\lib\net45\AlibabaCloud.GatewaySpi.dll</HintPath>
+    </Reference>
+    <Reference Include="AlibabaCloud.OpenApiClient, Version=0.1.8.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\AlibabaCloud.OpenApiClient.0.1.9\lib\net45\AlibabaCloud.OpenApiClient.dll</HintPath>
+    </Reference>
+    <Reference Include="AlibabaCloud.OpenApiUtil, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\AlibabaCloud.OpenApiUtil.1.1.1\lib\net45\AlibabaCloud.OpenApiUtil.dll</HintPath>
+    </Reference>
+    <Reference Include="AlibabaCloud.SDK.Dingtalk, Version=0.0.1.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\AlibabaCloud.SDK.Dingtalk.2.1.24\lib\net45\AlibabaCloud.SDK.Dingtalk.dll</HintPath>
+    </Reference>
+    <Reference Include="AlibabaCloud.TeaUtil, Version=0.1.14.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\AlibabaCloud.TeaUtil.0.1.18\lib\net45\AlibabaCloud.TeaUtil.dll</HintPath>
+    </Reference>
+    <Reference Include="AlibabaCloud.TeaXML, Version=0.0.5.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\AlibabaCloud.TeaXML.0.0.5\lib\net45\AlibabaCloud.TeaXML.dll</HintPath>
+    </Reference>
+    <Reference Include="Aliyun.Credentials, Version=1.3.2.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\Aliyun.Credentials.1.3.2\lib\net45\Aliyun.Credentials.dll</HintPath>
+    </Reference>
     <Reference Include="Antlr3.Runtime, Version=3.4.1.9004, Culture=neutral, PublicKeyToken=eb42632606e9261f, processorArchitecture=MSIL">
       <HintPath>..\packages\Antlr.3.4.1.9004\lib\Antlr3.Runtime.dll</HintPath>
       <Private>True</Private>
@@ -80,9 +107,8 @@
       <HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
       <Private>True</Private>
     </Reference>
-    <Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll</HintPath>
+    <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+      <HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
     </Reference>
     <Reference Include="NPOI, Version=2.5.5.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
       <HintPath>..\packages\NPOI.2.5.5\lib\net45\NPOI.dll</HintPath>
@@ -119,15 +145,23 @@
     <Reference Include="System.Net.Http">
       <Private>True</Private>
     </Reference>
+    <Reference Include="System.Net.Http.Extensions, Version=2.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll</HintPath>
+    </Reference>
     <Reference Include="System.Net.Http.Formatting, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
       <HintPath>..\packages\Microsoft.AspNet.WebApi.Client.5.2.7\lib\net45\System.Net.Http.Formatting.dll</HintPath>
     </Reference>
+    <Reference Include="System.Net.Http.Primitives, Version=4.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll</HintPath>
+    </Reference>
+    <Reference Include="System.Net.Http.WebRequest" />
     <Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
       <HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard1.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
     </Reference>
     <Reference Include="System.Runtime.Serialization">
       <Private>True</Private>
     </Reference>
+    <Reference Include="System.Security" />
     <Reference Include="System.ServiceModel" />
     <Reference Include="System.Web.Cors, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
       <HintPath>..\packages\Microsoft.AspNet.Cors.5.2.7\lib\net45\System.Web.Cors.dll</HintPath>
@@ -212,6 +246,9 @@
     </Reference>
     <Reference Include="System.Xml.Linq">
       <Private>True</Private>
+    </Reference>
+    <Reference Include="Tea, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\Tea.1.1.2\lib\net45\Tea.dll</HintPath>
     </Reference>
     <Reference Include="WebActivatorEx, Version=2.0.0.0, Culture=neutral, PublicKeyToken=7b26dc2a43f6a0d4, processorArchitecture=MSIL">
       <HintPath>..\packages\WebActivatorEx.2.0.6\lib\net40\WebActivatorEx.dll</HintPath>
@@ -731,6 +768,7 @@
     <Compile Include="DLL\宸ヨ祫绠$悊\ClsPay_GroupBalBill.cs" />
     <Compile Include="DLL\宸ヨ祫绠$悊\ClsGy_GroupEmpBill.cs" />
     <Compile Include="DLL\宸ヨ祫绠$悊\ClsPay_WorkTimesBill.cs" />
+    <Compile Include="DLL\閽夐拤娑堟伅\Cls_DDMsg.cs" />
     <Compile Include="HttpClient.cs" />
     <Compile Include="InvokeHelper.cs" />
     <Compile Include="Log.cs" />
@@ -1230,6 +1268,11 @@
     </PropertyGroup>
     <Error Condition="!Exists('..\packages\Grpc.Core.2.45.0\build\net45\Grpc.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Grpc.Core.2.45.0\build\net45\Grpc.Core.targets'))" />
   </Target>
+  <Import Project="..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" />
+  <Target Name="EnsureBclBuildImported" BeforeTargets="BeforeBuild" Condition="'$(BclBuildImported)' == ''">
+    <Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=317567." HelpKeyword="BCLBUILD2001" />
+    <Error Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="The build restored NuGet packages. Build the project again to include these packages in the build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317568." HelpKeyword="BCLBUILD2002" />
+  </Target>
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.
   <Target Name="BeforeBuild">
diff --git a/WebAPI/packages.config b/WebAPI/packages.config
index bdf24fe..c8f6613 100644
--- a/WebAPI/packages.config
+++ b/WebAPI/packages.config
@@ -1,5 +1,14 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <packages>
+  <package id="AlibabaCloud.EndpointUtil" version="0.1.1" targetFramework="net45" />
+  <package id="AlibabaCloud.GatewayDingTalk" version="1.0.2" targetFramework="net45" />
+  <package id="AlibabaCloud.GatewaySpi" version="0.0.2" targetFramework="net45" />
+  <package id="AlibabaCloud.OpenApiClient" version="0.1.9" targetFramework="net45" />
+  <package id="AlibabaCloud.OpenApiUtil" version="1.1.1" targetFramework="net45" />
+  <package id="AlibabaCloud.SDK.Dingtalk" version="2.1.24" targetFramework="net45" />
+  <package id="AlibabaCloud.TeaUtil" version="0.1.18" targetFramework="net45" />
+  <package id="AlibabaCloud.TeaXML" version="0.0.5" targetFramework="net45" />
+  <package id="Aliyun.Credentials" version="1.3.2" targetFramework="net45" />
   <package id="Antlr" version="3.4.1.9004" targetFramework="net45" />
   <package id="bootstrap" version="3.0.0" targetFramework="net45" />
   <package id="Dapper" version="1.50.2" targetFramework="net45" />
@@ -21,10 +30,13 @@
   <package id="Microsoft.AspNet.WebApi.WebHost.zh-Hans" version="5.2.3" targetFramework="net45" />
   <package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net45" />
   <package id="Microsoft.Azure.AppService.ApiApps.Service" version="0.9.16" targetFramework="net45" />
+  <package id="Microsoft.Bcl" version="1.1.10" targetFramework="net45" />
+  <package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="net45" />
   <package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.3" targetFramework="net45" />
+  <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net45" />
   <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
   <package id="Modernizr" version="2.6.2" targetFramework="net45" />
-  <package id="Newtonsoft.Json" version="6.0.4" targetFramework="net45" />
+  <package id="Newtonsoft.Json" version="13.0.3" targetFramework="net45" />
   <package id="NPOI" version="2.5.5" targetFramework="net45" />
   <package id="Portable.BouncyCastle" version="1.8.9" targetFramework="net45" />
   <package id="RestSharp" version="104.0" targetFramework="net45" />
@@ -35,6 +47,7 @@
   <package id="System.IdentityModel.Tokens.Jwt" version="4.0.0" targetFramework="net45" />
   <package id="System.Memory" version="4.5.3" targetFramework="net45" />
   <package id="System.Runtime.CompilerServices.Unsafe" version="4.5.2" targetFramework="net45" />
+  <package id="Tea" version="1.1.2" targetFramework="net45" />
   <package id="WebActivatorEx" version="2.0.6" targetFramework="net45" />
   <package id="WebGrease" version="1.5.2" targetFramework="net45" />
 </packages>
\ No newline at end of file

--
Gitblit v1.9.1