From 9d8889f3c64cc5b1e91c642d5a1266efdff300b2 Mon Sep 17 00:00:00 2001
From: zrg <z18737863051@163.com>
Date: 星期四, 27 六月 2024 18:14:33 +0800
Subject: [PATCH] 1

---
 DDServer/DDServer/DingDingServeices.cs |   97 +++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 90 insertions(+), 7 deletions(-)

diff --git a/DDServer/DDServer/DingDingServeices.cs b/DDServer/DDServer/DingDingServeices.cs
index ad725a1..af102a1 100644
--- a/DDServer/DDServer/DingDingServeices.cs
+++ b/DDServer/DDServer/DingDingServeices.cs
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing Newtonsoft.Json.Linq;
+using System;
 using System.Collections.Generic;
 using System.Data;
 using System.Text;
@@ -8,6 +9,7 @@
     public class DingDingServeices
     {
         public DataSet ds = new DataSet();
+        public DataSet ds1 = new DataSet();
         public DBHelper oCN = new DBHelper();       
 
         /// <summary>
@@ -16,36 +18,117 @@
         public object Get_ErrMsgBackBillMain()
         {
             //鑾峰彇鏈叧闂崟瀛�
-            string sql = "select a.HInterID,a.HContext,a.HReceiveMan,a.HCopyMan,a.HMakeDate,DATEDIFF(MINUTE, a.HMakeDate, GETDATE()) AS MinutesPassed from OA_ErrMsgBackBillMain a where HResult='鏈畬鎴�'";
-
+            string sql = "select a.HInterID,a.HContext,a.HDescription,a.HReceiveMan,a.HCopyMan,a.HMakeDate,DATEDIFF(MINUTE, a.HMakeDate, GETDATE()) AS MinutesPassed from OA_ErrMsgBackBillMain a where HResult='鏈畬鎴�'";
             ds = oCN.RunProcReturn(sql, "OA_ErrMsgBackBillMain");
             for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
             {
-                //鑾峰彇宸插彂閫佷汉
+                //鑾峰彇宸插彂閫佷汉,鏈叧闂殑鍗曞瓙 涓诲唴鐮� 鍐呭
                 string Superiors = ds.Tables[0].Rows[i]["HReceiveMan"].ToString();
+                string HInterID = ds.Tables[0].Rows[i]["HInterID"].ToString();
+                string HDescription = ds.Tables[0].Rows[i]["HDescription"].ToString();
+                //鑾峰彇鍒跺崟鏃ユ湡鍒扮幇鍦ㄨ繃浜嗗闀挎椂闂�
+                int TimeInterval = Convert.ToInt32(ds.Tables[0].Rows[i]["MinutesPassed"]);
                 //鏍规嵁鍙戦�佷汉鍘绘壘瀵瑰簲鐨勪笂绾�
-                string sql1 = "select a.HGroupID,c.GroupName,* from Gy_Czygl a left join System_UserGroupInfo b on a.Czybm = b.UserIdleft join System_UserGroup c on b.GroupId = c.GroupIDwhere Czymc = '" + Superiors + "'";
+                string sql1 = "select a.HGroupID,c.GroupName,* from Gy_Czygl a left join System_UserGroupInfo b on a.Czybm = b.UserId left join System_UserGroup c on b.GroupId = c.GroupID where Czymc = '" + Superiors + "'";
                 ds = oCN.RunProcReturn(sql1, "Gy_Czygl");
                 //鑾峰彇鑱屽姟
                 string Job = ds.Tables[0].Rows[0]["GroupName"].ToString();
                 //鏍规嵁鑱屽姟鍘绘壘褰撳墠浜轰笂绾�
                 string sql2 = "select * from Gy_Duty where HParentID=(select HParentID from Gy_Duty where HItemID=(select HParentID from Gy_Duty where HName='" + Job + "' ))";
                 ds = oCN.RunProcReturn(sql2, "Gy_Duty");
+                //鏍规嵁瀹夌伅瑙勫垯鍘绘壘鍒板尮閰嶈鍒欑殑鑱屼綅,鐒跺悗鑾峰彇鍒版椂闂�,鐪嬫槸鍚﹀ぇ浜�1
                 if (ds.Tables[0].Rows.Count>1)
                 {
+                    for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
+                    {
+                        //鑾峰彇涓婄骇浜虹殑鑱屽姟
+                        string Jobs = ds.Tables[0].Rows[j]["HName"].ToString();
+                        //鏍规嵁瀹夌伅鍘诲尮閰嶈亴鍔″拰瑙﹀彂鏃堕棿
+                        string sql3 = "select b.HTimes,c.HName from OA_AndengFlowRuleBillMain a inner join OA_AndengFlowRuleBillSub b on a.HInterID = b.HInterID left join Gy_Duty c on b.HDutyID = c.HItemID where c.HName = '" + Jobs + "'";
+                        ds = oCN.RunProcReturn(sql3, "OA_AndengFlowRuleBillMain");
+                        //鏍规嵁瑙勫垯鑾峰彇瑙﹀彂鏃堕棿  鑱屽姟
+                        int HTimes = Convert.ToInt32(ds.Tables[0].Rows[0]["HTimes"]);
+                        string JobS = ds.Tables[0].Rows[0]["HName"].ToString();
+                        //濡傛灉鏃堕棿闂撮殧澶т簬瑙﹀彂鏃堕棿
+                        if (TimeInterval > HTimes)
+                        {
+                            //鏍规嵁鑱屽姟鍘诲尮閰嶇浉瀵瑰簲鐨勪汉 鐢ㄤ簬鎻掑叆鏁版嵁搴�
+                            string sql4 = "select a.HGroupID,c.GroupName,* from Gy_Czygl a left join System_UserGroupInfo b on a.Czybm = b.UserId left join System_UserGroup c on b.GroupId = c.GroupID  where c.GroupName = '" + JobS + "'";
+                            ds = oCN.RunProcReturn(sql4, "Gy_Czygl");
+                            string HName = ds.Tables[0].Rows[0]["Czymc"].ToString();
+                            //鑾峰彇褰撳墠寮傚父鍙嶉鍗曞瓙琛ㄧ殑ID鏄澶�,鐒跺悗鎻掑叆瀛愯〃淇℃伅
+                            string sql5 = "select max(HEntryID) HEntryID from OA_ErrMsgBackBillSub2 where HInterID='" + HInterID + "'";
+                            ds1 = oCN.RunProcReturn(sql5, "OA_ErrMsgBackBillSub2");
+                            int HEntryID = Convert.ToInt32(ds1.Tables[0].Rows[0]["HName"]);
+                            int newHEntryID = HEntryID + 1; //鏍规嵁褰撳墠ID鏈�澶х殑瀛怚D鍘诲姞1
+                            string sql6 = "insert OA_ErrMsgBackBillSub2 values('" + HInterID + "','" + newHEntryID + "','" + HName + "','0','1')";
+                            ds1 = oCN.RunProcReturn(sql6, "OA_ErrMsgBackBillSub2");
+                            //浼犲叆鎻掑叆瀛愯〃鐨勪汉    寮傚父鍙嶉鍗曠殑鍐呭
+                            DingDingMesAsync(HName, HDescription);
 
+                        }
+                    }
                 }
                 else
                 {
+                    //鑾峰彇涓婄骇浜虹殑鑱屽姟
+                    string Jobs = ds.Tables[0].Rows[0]["HName"].ToString();
+                    //鏍规嵁瀹夌伅鍘诲尮閰嶈亴鍔″拰瑙﹀彂鏃堕棿
+                    string sql3 = "select b.HTimes,c.HName from OA_AndengFlowRuleBillMain a inner join OA_AndengFlowRuleBillSub b on a.HInterID = b.HInterID left join Gy_Duty c on b.HDutyID = c.HItemID where c.HName = '"+ Jobs + "'";
+                    ds = oCN.RunProcReturn(sql3, "OA_AndengFlowRuleBillMain");
+                    //鏍规嵁瑙勫垯鑾峰彇瑙﹀彂鏃堕棿  鑱屽姟
+                    int HTimes = Convert.ToInt32(ds.Tables[0].Rows[0]["HTimes"]);
+                    string JobS = ds.Tables[0].Rows[0]["HName"].ToString();
+                    //濡傛灉鏃堕棿闂撮殧澶т簬瑙﹀彂鏃堕棿
+                    if (TimeInterval > HTimes)
+                    {
+                        //鏍规嵁鑱屽姟鍘诲尮閰嶇浉瀵瑰簲鐨勪汉 鐢ㄤ簬鎻掑叆鏁版嵁搴�
+                        string sql4 = "select a.HGroupID,c.GroupName,* from Gy_Czygl a left join System_UserGroupInfo b on a.Czybm = b.UserId left join System_UserGroup c on b.GroupId = c.GroupID  where c.GroupName = '"+ JobS + "'";
+                        ds = oCN.RunProcReturn(sql4, "Gy_Czygl");
+                        string HName= ds.Tables[0].Rows[0]["Czymc"].ToString();
+                        //鑾峰彇褰撳墠寮傚父鍙嶉鍗曞瓙琛ㄧ殑ID鏄澶�,鐒跺悗鎻掑叆瀛愯〃淇℃伅
+                        string sql5 = "select max(HEntryID) HEntryID from OA_ErrMsgBackBillSub2 where HInterID='" + HInterID + "'";
+                        ds1 = oCN.RunProcReturn(sql5, "OA_ErrMsgBackBillSub2");
+                        int HEntryID = Convert.ToInt32(ds1.Tables[0].Rows[0]["HName"]);
+                        int newHEntryID = HEntryID + 1; //鏍规嵁褰撳墠ID鏈�澶х殑瀛怚D鍘诲姞1
+                        string sql6 = "insert OA_ErrMsgBackBillSub2 values('"+HInterID+"','"+newHEntryID+"','"+HName+"','0','1')";
+                        ds1 = oCN.RunProcReturn(sql6, "OA_ErrMsgBackBillSub2");
+                        //浼犲叆鎻掑叆瀛愯〃鐨勪汉    寮傚父鍙嶉鍗曠殑鍐呭
+                        DingDingMesAsync(HName, HDescription);
 
+                    }
                 }
 
             }
             return 1;
         }
 
-        //鏌ヨ寮傚父鍙嶉鍗�,鏈叧闂殑鍗曞瓙 鍚庨潰鏄惊鐜�
 
-        //鏍规嵁鎺ユ敹浜鸿幏鍙栦粬鐨勮亴浣�,鏌ヨ缁勭粐鏋舵瀯鑾峰彇涓婄骇,鍐嶅幓
+        /// <summary>
+        /// 閽夐拤鎺ュ彛鍙戦�佹秷鎭�
+        /// </summary>
+        /// <param name="HReceiveMan">瑕佸彂淇℃伅鐨勪汉</param>
+        /// <param name="HDescription">寮傚父鍙嶉鍗曞唴瀹�</param>
+        public async void DingDingMesAsync(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
+            MSG msg = new MSG();
+            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}");
+        }
     }
 }

--
Gitblit v1.9.1