From b318aa82c9309725574368b0f3d254d0c787ef2e Mon Sep 17 00:00:00 2001
From: chenhaozhe <cgz@hz-kingdee.com>
Date: 星期四, 26 六月 2025 14:27:23 +0800
Subject: [PATCH] 工程阶段 添加 查询 编辑 API 工程费用 添加 查询 编辑 API

---
 WebAPI/Controllers/项目管理/工作任务/PM_WorkTaskBillController.cs |  249 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 241 insertions(+), 8 deletions(-)

diff --git "a/WebAPI/Controllers/\351\241\271\347\233\256\347\256\241\347\220\206/\345\267\245\344\275\234\344\273\273\345\212\241/PM_WorkTaskBillController.cs" "b/WebAPI/Controllers/\351\241\271\347\233\256\347\256\241\347\220\206/\345\267\245\344\275\234\344\273\273\345\212\241/PM_WorkTaskBillController.cs"
index 0660f8c..9c62145 100644
--- "a/WebAPI/Controllers/\351\241\271\347\233\256\347\256\241\347\220\206/\345\267\245\344\275\234\344\273\273\345\212\241/PM_WorkTaskBillController.cs"
+++ "b/WebAPI/Controllers/\351\241\271\347\233\256\347\256\241\347\220\206/\345\267\245\344\275\234\344\273\273\345\212\241/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));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                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;
@@ -1254,6 +1314,8 @@
             public string HBackRemark;
             public int HReportEmpID;
             public string HReportEmpName;
+            public string HReceiveEmp;
+            public string HCopyEmp;
         }
         #endregion
         #region 浠诲姟姹囨姤 瀛愯〃鏁版嵁
@@ -1373,7 +1435,9 @@
                 string HReportEmpName = mainList[0].HReportEmpName;
                 string HUpdater = mainList[0].HUpdater;
                 string HUpdaterDate = mainList[0].HUpdaterDate;
-
+                string HReceiveEmp = mainList[0].HReceiveEmp;
+                string HCopyEmp = mainList[0].HCopyEmp;
+                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)
@@ -1401,7 +1465,7 @@
                 if ((OperationType == 1 || OperationType == 2) && ds.Tables[0].Rows.Count == 0)//鏂板
                 {
                     string sql = "insert into PM_WorkTaskReportBillMain" +
-                        "(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate,HBillNo,HBillStatus,HRemark,HMaker,HMakeDate,HOrgID,HReportEmpID) " +
+                        "(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate,HBillNo,HBillStatus,HRemark,HMaker,HMakeDate,HOrgID,HReportEmpID,HReceiveEmp, HCopyEmp) " +
                         "values(" +
                         "" + HYear +
                         "," + HPeriod +
@@ -1416,8 +1480,10 @@
                         "','" + HMakerDate +
                         "'," + HOrgID +
                         "," + HReportEmpID +
-                        ")";
-
+                        ",N'" + HReceiveEmp +
+                        "',N'" + HCopyEmp +
+                        "')";
+                    LogService.Write(sql);
                     //涓昏〃
                     oCN.RunProc(sql);
                     LogService.Write("鐢ㄦ埛:" + user + ",鏃ユ湡:" + DateTime.Now + ",鏂板浠诲姟姹囨姤:" + HBillNo);
@@ -1438,8 +1504,9 @@
                         "',HUpdateDate = '" + HUpdaterDate +
                         "',HOrgID = " + HOrgID +
                         ",HReportEmpID = " + HReportEmpID +
+                        ",HReceiveEmp = N'" + HReceiveEmp + "'" +
+                        ",HCopyEmp = N'" + HCopyEmp + "'" +
                         " where HInterID = " + HInterID;
-
                     oCN.RunProc(sql);
 
                     //鍒犻櫎瀛愯〃鏃�  鍥炲~宸ヤ綔浠诲姟鍗曞叧鑱旀暟閲忋�佸崟鎹姸鎬�
@@ -1511,7 +1578,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 +1623,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 +1663,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 +1763,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));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                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 +4162,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";
+            //浠诲姟姹囨姤鍗曚繚瀛樺彂閫侀拤閽夋秷鎭繚瀛�  灏嗘秷鎭� 鍙戦�佺粰 鎺ユ敹浜�
+            //鑾峰彇鎺ラ�佷汉鐨勯拤閽塱d
+            string HReceiveMan = HSendMan;
+            string[] names = HCopyMan.Split(',');
+            string sqlNames = "";
+            foreach (string name in names)
+            {
+                sqlNames += "'" + name.Trim() + "',";
+            }
+            sqlNames = sqlNames.TrimEnd(',');
+            //鑾峰彇鎸囨淳澶勭悊浜�,鍙戦�佷汉鐨勯拤閽塱d
+            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);//閽夐拤浜哄憳鐨刬d鍒楄〃
+            //鑾峰彇浼佷笟鐨刟ccess_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;//閽夐拤浜哄憳鐨刬d
+            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>
+        ///// 杩斿洖椤圭洰闃舵鍒楄〃
+        /////鍙傛暟锛歴tring 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
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1