zrg
2024-07-04 0f2de16745f1b282a5af5e27005a027ccd1e86ce
WebAPI/Controllers/ÏîÄ¿¹ÜÀí/¹¤×÷ÈÎÎñ/PM_WorkTaskBillController.cs
@@ -10,6 +10,8 @@
using System.Web.Http;
using System.Windows.Forms;
using WebAPI.Models;
using System.Threading.Tasks;
using DLL;
namespace WebAPI.Controllers.项目管理.工作任务
{
@@ -1228,6 +1230,7 @@
        #region ä»»åŠ¡æ±‡æŠ¥ æ–°å¢ž/编辑-保存
        #region ä»»åŠ¡æ±‡æŠ¥ è¡¨å¤´æ•°æ®
        string reportMan;
        public class PM_WorkTaskReportBill_Main
        {
            public int HInterID;
@@ -1373,7 +1376,7 @@
                string HReportEmpName = mainList[0].HReportEmpName;
                string HUpdater = mainList[0].HUpdater;
                string HUpdaterDate = mainList[0].HUpdaterDate;
                reportMan = HReportEmpName;//获取汇报人名称
                //保存前控制
                DataSet BeforeDs = oCN.RunProcReturn("Exec h_p_PM_WorkTaskReportBill_BeforeSaveCtrl " + HInterID.ToString() + ",'" + HBillNo + "'," + OperationType.ToString(), "h_p_PM_WorkTaskReportBill_BeforeSaveCtrl");
                if (BeforeDs == null || BeforeDs.Tables[0].Rows.Count == 0)
@@ -1511,7 +1514,7 @@
        public json AddBillSub_WorkTaskReportBill(string msg3, long HInterID, string HBillNo, int OperationType)
        {
            List<PM_WorkTaskReportBill_Sub> DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PM_WorkTaskReportBill_Sub>>(msg3);
            int i = 0;                                          //作为子表内码
            int i = 0;     //作为子表内码
            foreach (PM_WorkTaskReportBill_Sub oSub in DetailColl)
            {
                i++;                                            //同一个主表下的子表的内码自增
@@ -1556,7 +1559,23 @@
                        oCN.RunProc(sql2);
                    }
                }
                //查找工作任务获取派单人和抄送人
                string sqlz = "select * from h_v_PM_WorkTaskBillList  where HInterID = " + HSourceInterID;
                ds = oCN.RunProcReturn(sqlz, "h_v_PM_WorkTaskBillList");
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "单据不存在!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                string HSendEmp = ds.Tables[0].Rows[0]["派单人"].ToString();//派单人
                string HCopyEmp = ds.Tables[0].Rows[0]["抄送人"].ToString();//抄送人
                string HPlanTimes = ds.Tables[0].Rows[0]["评估工时"].ToString();//评估工时
                string HSelfTimes = ds.Tables[0].Rows[0]["自评工时"].ToString();//自评工时
                string HProjectName = ds.Tables[0].Rows[0]["项目名称"].ToString();//项目名称
                //插入子表sql
                string sql = "insert into PM_WorkTaskReportBillSub" +
                    "(HInterID,HBillNo_bak,HEntryID,HRemark,HProjectID,HProNumber,HProjectStageID,HName,HTaskNote,HType,HRelTimes,HReportNote,HAdv,HSourceInterID,HSourceEntryID,HSourceBillType,HSourceBillNo,HFinishFlag) " +
                    "values(" +
@@ -1579,8 +1598,9 @@
                    "','" + HSourceBillNo +
                    "'," + DBUtility.ClsPub.BoolToString(HFinishFlag) +
                    ")";
                oCN.RunProc(sql);
                string messageContext = "日期= " + DateTime.Now + ",汇报人=" + reportMan + ",汇报内容=" + HReportNote + ",评估工时=" + HPlanTimes + "小时,自评工时=" + HSelfTimes + "小时,耗用工时=" + HRelTimes + "小时,任务名称=" + HName + ",项目名称=" + HProjectName; ;
                _ = SendDingDingAsync(HSendEmp, messageContext, HCopyEmp);
            }
            //保存后控制
@@ -4021,5 +4041,57 @@
        #endregion
        #endregion
        #region ä»»åŠ¡æ±‡æŠ¥å•ä¿å­˜å‘é€é’‰é’‰æ¶ˆæ¯
        /// <summary>
        /// ä»»åŠ¡æ±‡æŠ¥å•ä¿å­˜å‘é€é’‰é’‰æ¶ˆæ¯
        /// </summary>
        /// <param name="HSendMan"></param>
        /// <param name="HDescription">日期+汇报人+汇报内容+工时+ é¡¹ç›®åç§°</param>
        /// <param name="HCopyMan">抄送人</param>
        /// <returns></returns>
        public async Task<object> SendDingDingAsync(string HSendMan, string HDescription, string HCopyMan)
        {
            string concatenatedNames = "";
            Cls_DDMsg msg = new Cls_DDMsg();
            string appKey = "dingrsrzhdyn3mlaof95";
            string appSecret = "RAqH6YtZnPLCpDbuqfaYQkKkVtVdS0wqfC8I26X6qiS-8eoCJCNrzx3fubGND4Sq";
            //任务汇报单保存发送钉钉消息保存  å°†æ¶ˆæ¯ å‘送给 æŽ¥æ”¶äºº
            //获取接送人的钉钉id
            string HReceiveMan = HSendMan;
            string[] names = HCopyMan.Split(',');
            string sqlNames = "";
            foreach (string name in names)
            {
                sqlNames += "'" + name.Trim() + "',";
            }
            sqlNames = sqlNames.TrimEnd(',');
            //获取指派处理人,发送人的钉钉id
            string sql1 = "select HDingDingUserID é’‰é’‰id from Gy_Czygl where Czymc in ('" + HReceiveMan + "'," + sqlNames + ")";
            ds = oCN.RunProcReturn(sql1, "Gy_Czygl");
            List<string> HNames = new List<string>();
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                string HName = ds.Tables[0].Rows[i]["钉钉id"].ToString();
                HNames.Add(HName);
            }
            concatenatedNames = string.Join(",", HNames);//钉钉人员的id列表
            //获取企业的access_token的值
            string response = msg.GetAccessToken(appKey, appSecret);
            JObject responseJson = JObject.Parse(response);
            // èŽ·å–access_token的值
            string accessToken = responseJson["accessToken"].ToString();
            //调用方法发送消息
            string agentId = "3118119317";//钉钉后台建立的小程序id
            string userIdList = concatenatedNames;//钉钉人员的id
            string deptIdList = "0"; // ç©ºå­—符串表示不指定部门
            string toAllUser = "false";
            string message = HDescription;
            response = await msg.SendTextMessage(accessToken, agentId, userIdList, deptIdList, toAllUser, message);
            Console.WriteLine(response);
            return response;
        }
        #endregion
    }
}