yusijie
2025-02-12 d19fcd70a3b11339eb0c50b5c734eeca855a9a95
WebAPI/Controllers/ÏîÄ¿¹ÜÀí/¹¤×÷ÈÎÎñ/PM_WorkTaskBillController.cs
@@ -10,6 +10,9 @@
using System.Web.Http;
using System.Windows.Forms;
using WebAPI.Models;
using System.Threading.Tasks;
using DLL;
using SyntacticSugar.constant;
namespace WebAPI.Controllers.项目管理.工作任务
{
@@ -440,6 +443,62 @@
            }
        }
        #endregion
        #region å·¥ä½œä»»åŠ¡åˆ—è¡¨åˆ†é¡µåˆ—è¡¨
        [Route("PM_WorkTaskBill/page")]
        [HttpGet]
        public object PM_WorkTaskBillPage(string sWhere, string user, int page, int size)
        {
            DataSet ds;
            try
            {
                List<object> columnNameList = new List<object>();
                //判断权限
                //if (!DBUtility.ClsPub.Security_Log("Cg_POInStockBillQuery", 1, false, user))
                //{
                //    objJsonResult.code = CodeConstant.FAIL;
                //    objJsonResult.count = CountConstant.FAIL;
                //    objJsonResult.Message = "您没有该模块权限,请与管理员联系!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                if (sWhere == null || sWhere.Equals(""))
                {
                    ds = oCN.RunProcReturn("exec h_p_PM_WorkTaskBillList " + page + "," + size + ",''", "h_p_PM_WorkTaskBillList");
                }
                else
                {
                    sWhere = sWhere.Replace("'", "''");
                    ds = oCN.RunProcReturn("exec h_p_PM_WorkTaskBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_PM_WorkTaskBillList");
                }
                //添加列名
                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));//获取到DataColumn列对象的列名
                }
                objJsonResult.code = CodeConstant.SUCCEED;
                objJsonResult.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
                objJsonResult.Message = "Sucess!";
                objJsonResult.list = columnNameList;
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = CodeConstant.FAIL;
                objJsonResult.count = CountConstant.FAIL;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å·¥ä½œä»»åŠ¡åˆ—è¡¨  ä¸‹æŽ¨æ•°æ®æŸ¥è¯¢
        /// <summary>
@@ -1228,6 +1287,7 @@
        #region ä»»åŠ¡æ±‡æŠ¥ æ–°å¢ž/编辑-保存
        #region ä»»åŠ¡æ±‡æŠ¥ è¡¨å¤´æ•°æ®
        string reportMan;
        public class PM_WorkTaskReportBill_Main
        {
            public int HInterID;
@@ -1373,7 +1433,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 +1571,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 +1616,24 @@
                        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 HWorkTaskDate = DateTime.Parse(ds.Tables[0].Rows[0]["日期"].ToString()).ToString("yyyy-MM-dd");//工作任务单据时间
                string HSelfTimes = ds.Tables[0].Rows[0]["自评工时"].ToString();//自评工时
                string HProjectName = ds.Tables[0].Rows[0]["项目名称"].ToString();//项目名称
                string HTaskDescription = 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 +1656,9 @@
                    "','" + HSourceBillNo +
                    "'," + DBUtility.ClsPub.BoolToString(HFinishFlag) +
                    ")";
                oCN.RunProc(sql);
                string messageContext = "单据日期= " + HWorkTaskDate + ",汇报人=" + reportMan + ",汇报内容=" + HReportNote +",任务描述 ="+ HTaskDescription +",完成标记="+ (HFinishFlag?"是":"否") + ",自评工时=" + HSelfTimes + "小时,耗用工时=" + HRelTimes + "小时,任务名称=" + HName + ",项目名称=" + HProjectName; ;
                _ = SendDingDingAsync(HSendEmp, messageContext, HCopyEmp);
            }
            //保存后控制
@@ -1678,6 +1756,62 @@
            }
        }
        #endregion
        #region ä»»åŠ¡æ±‡æŠ¥åˆ†é¡µåˆ—è¡¨
        [Route("PM_WorkTaskReportBill/page")]
        [HttpGet]
        public object PM_WorkTaskReportBillPage(string sWhere, string user, int page, int size)
        {
            DataSet ds;
            try
            {
                List<object> columnNameList = new List<object>();
                //判断权限
                //if (!DBUtility.ClsPub.Security_Log("Cg_POInStockBillQuery", 1, false, user))
                //{
                //    objJsonResult.code = CodeConstant.FAIL;
                //    objJsonResult.count = CountConstant.FAIL;
                //    objJsonResult.Message = "您没有该模块权限,请与管理员联系!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                if (sWhere == null || sWhere.Equals(""))
                {
                    ds = oCN.RunProcReturn("exec h_p_PM_WorkTaskReportBillList " + page + "," + size + ",''", "h_p_PM_WorkTaskReportBillList");
                }
                else
                {
                    sWhere = sWhere.Replace("'", "''");
                    ds = oCN.RunProcReturn("exec h_p_PM_WorkTaskReportBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_PM_WorkTaskReportBillList");
                }
                //添加列名
                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));//获取到DataColumn列对象的列名
                }
                objJsonResult.code = CodeConstant.SUCCEED;
                objJsonResult.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
                objJsonResult.Message = "Sucess!";
                objJsonResult.list = columnNameList;
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = CodeConstant.FAIL;
                objJsonResult.count = CountConstant.FAIL;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region ä»»åŠ¡æ±‡æŠ¥ ç¼–辑-页面赋值
        /// <summary>
@@ -4021,5 +4155,97 @@
        #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
        //#region è‡ªåŠ¨åŠ è½½é¡µé¢è¡¨å¤´
        ///// <summary>
        ///// è¿”回项目阶段列表
        /////参数:string sql。
        /////返回值:object。
        ///// </summary>
        //[Route("Xt_DefineBillMainSet/getDefineBillMainSet")]
        //[HttpGet]
        //public object getDefineBillMainSet(string HModName, string user)
        //{
        //    try
        //    {
        //        string sql = "select * from h_v_Xt_DefineBillMainSet_AutoLoadList where HModName ='" + HModName + "' and HUser ='" + user + "' order by HArrangeOrder,HArrangeOrderSub";
        //        ds = oCN.RunProcReturn(sql, "Xt_DefineBillMainSet");
        //        if(ds!=null && ds.Tables[0].Rows.Count == 0)
        //        {
        //            sql = "select * from h_v_Xt_DefineBillMainSet_AutoLoadList where HModName ='" + HModName + "' and HUser ='admin' order by HArrangeOrder,HArrangeOrderSub";
        //            ds = oCN.RunProcReturn(sql, "h_v_Xt_DefineBillMainSet_AutoLoadList");
        //        }
        //        objJsonResult.code = "1";
        //        objJsonResult.count = 1;
        //        objJsonResult.Message = "Sucess!";
        //        objJsonResult.data = ds.Tables[0];
        //        return objJsonResult;
        //    }
        //    catch (Exception e)
        //    {
        //        objJsonResult.code = "0";
        //        objJsonResult.count = 0;
        //        objJsonResult.Message = "Exception!" + e.ToString();
        //        objJsonResult.data = null;
        //        return objJsonResult;
        //    }
        //}
        //#endregion
    }
}