From 5eace1f979319f47e59a4c270e7867f4eaa457cd Mon Sep 17 00:00:00 2001
From: duhe <226547893@qq.com>
Date: 星期一, 23 三月 2026 10:41:08 +0800
Subject: [PATCH] 1

---
 WebAPI/Controllers/WebAPIController.cs |  406 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 406 insertions(+), 0 deletions(-)

diff --git a/WebAPI/Controllers/WebAPIController.cs b/WebAPI/Controllers/WebAPIController.cs
index 11a34c0..14e054b 100644
--- a/WebAPI/Controllers/WebAPIController.cs
+++ b/WebAPI/Controllers/WebAPIController.cs
@@ -20433,6 +20433,7 @@
             try
             {
                 SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+
                 string sql = "exec h_p_Gy_GetQCCheckItemByProject_Sec " + CheckProjectID + "," + HBatchQty + "," + HMaterID + ",'" + HBillType + "'";
                 ds = oCN.RunProcReturn(sql, "h_p_Gy_GetQCCheckItemByProject_Sec");
                 if (ds == null || ds.Tables[0].Rows.Count <= 0)
@@ -21764,6 +21765,8 @@
             public string HTranslationText_English { get; set; }
             public string HTranslationText_Spain { get; set; }
             public List<MenuLoad> childMenus { get; set; }
+            public DateTime HMakeDate { get; set; }
+            public string HMaker { get; set; }
         }
 
         [Route("Web/MenuList")]
@@ -21870,6 +21873,163 @@
         }
 
         #endregion
+
+        #region 鏋勫缓璺敱宓屽瀵硅薄
+        [Route("Web/MenuList_1")]
+        [HttpGet]
+        public object MenuList_1(string HMakeName, string HType)
+        {
+            try
+            {
+                string filePath = HttpContext.Current.Server.MapPath($"~/RouterDisplay/DisplayConfig.json");
+                string directory = Path.GetDirectoryName(filePath);
+                if (!string.IsNullOrEmpty(directory) && !Directory.Exists(directory))
+                {
+                    Directory.CreateDirectory(directory);
+                }
+                DateTime lastWriteTime = File.GetLastWriteTime(filePath);
+                lastWriteTime = new DateTime(lastWriteTime.Year, lastWriteTime.Month, lastWriteTime.Day, lastWriteTime.Hour, 0, 0);
+                DataSet ds = oCN.RunProcReturn($"select top 1 HMakeDate from Gy_Menu_1_build ORDER BY HMakeDate desc  ", "Gy_Menu_1_build");
+
+                DateTime dbTime = Convert.ToDateTime(ds.Tables[0].Rows[0]["HMakeDate"]);
+                dbTime = new DateTime(dbTime.Year, dbTime.Month, dbTime.Day, dbTime.Hour, 0, 0);
+                
+                if (dbTime> lastWriteTime)
+                {
+                    List<MenuLoad> mu = new List<MenuLoad>();                       //浠ョ埗瀛愮骇缁撴瀯瀛樻斁鑿滃崟娓呭崟淇℃伅
+                    SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();            //鏁版嵁搴撴搷浣滃伐鍏�
+                    string sql = "select HItemID,HPartentID,HNumber,HName,HLevel,Hurl,HType,HPicNum,HShowMode,isnull(HTranslationText_English,HName) HTranslationText_English,isnull(HTranslationText_Spain,HName) HTranslationText_Spain  from Gy_MenuDefineSet where HMakeName = '" + HMakeName + "' and HType = '" + HType + "' order by HPosition";
+                    ds = oCn.RunProcReturn(sql, "Gy_MenuDefineSet");        //鏌ヨ褰撳墠鐢ㄦ埛鐨勮嚜瀹氫箟鑿滃崟鏁版嵁
+                    if (ds.Tables[0] == null || ds.Tables[0].Rows.Count == 0) //鍒ゆ柇褰撳墠鐢ㄦ埛鏄惁鏈夎缃繃鑷畾涔変俊鎭紝鑻ヨ褰曟暟涓�0锛屽垯娌℃湁璁剧疆杩囷紝鍔犺浇鎵�鏈夌殑鑿滃崟淇℃伅
+                    {
+                        string sql1 = "select HItemID,HPartentID,HNumber,HName,HLevel,Hurl,HType,HPicNum,HShowMode,isnull(HTranslationText_English,HName) HTranslationText_English,isnull(HTranslationText_Spain,HName) HTranslationText_Spain from Gy_MenuDefineSet where HMakeName=" +
+                            "(select   top 1 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 a.Czymc ='" + HMakeName + "' order by len(c.GroupName ))";
+                        ds = oCn.RunProcReturn(sql1, "Gy_MenuDefineSet");        //鏌ヨ鐢ㄦ埛缁戝畾鐨勮鑹� 鏄惁璁剧疆鑿滃崟淇℃伅 鍙栬鑹插悕绉版渶鐭殑涓�涓�
+                        if ((ds.Tables[0] == null || ds.Tables[0].Rows.Count == 0))
+                        {
+                            sql1 = "select HItemID,HPartentID,HNumber,HName,HLevel,Hurl,HType,HPicNum,HShowMode,isnull(HTranslationText_English,HName) HTranslationText_English,isnull(HTranslationText_Spain,HName) HTranslationText_Spain  from Gy_MenuDefineSet where HMakeName = 'admin' and HType = '" + HType + "' order by HPosition";
+                            ds = oCn.RunProcReturn(sql1, "Gy_MenuDefineSet");   //鏌ヨadmin 鏄惁璁剧疆鑿滃崟淇℃伅
+                            if ((ds.Tables[0] == null || ds.Tables[0].Rows.Count == 0))
+                            {
+                                sql = "Select HitemID,HNumber,HName,HPartentID,HLevel,Hurl,HShowMode,isnull(HTranslationText_English,HName) HTranslationText_English,isnull(HTranslationText_Spain,HName) HTranslationText_Spain,HPicNum from Gy_Menu_1_build where HType = '" + HType + "' Order by HPosition,len(HitemID),HitemID  ";
+                                ds = oCn.RunProcReturn(sql, "Gy_Menu_1_build");
+                            }
+
+                        }
+                    }
+
+                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)       //灏嗚彍鍗曠殑鏍硅妭鐐逛繚瀛樺埌鍒楄〃menu涓�
+                    {
+                        if (ds.Tables[0].Rows[i]["HPartentID"].ToString() == "0" || ds.Tables[0].Rows[i]["HitemID"].ToString() == ds.Tables[0].Rows[i]["HPartentID"].ToString())  //鍒ゆ柇鏄惁鏈�澶栧眰鏍硅妭鐐�
+                        {
+                            MenuLoad tbj = new MenuLoad();
+                            tbj.HitemID = ds.Tables[0].Rows[i]["HitemID"].ToString();
+                            tbj.HNumber = ds.Tables[0].Rows[i]["HNumber"].ToString();
+                            tbj.HName = ds.Tables[0].Rows[i]["HName"].ToString();
+                            tbj.HPartentID = ds.Tables[0].Rows[i]["HPartentID"].ToString();
+                            tbj.HLevel = int.Parse(ds.Tables[0].Rows[i]["HLevel"].ToString());
+                            tbj.Hurl = ds.Tables[0].Rows[i]["Hurl"].ToString();
+                            tbj.HShowMode = ds.Tables[0].Rows[i]["HShowMode"].ToString();
+                            tbj.HTranslationText_English = ds.Tables[0].Rows[i]["HTranslationText_English"].ToString();
+                            tbj.HTranslationText_Spain = ds.Tables[0].Rows[i]["HTranslationText_Spain"].ToString();
+                            if (ds.Tables[0].Rows[i]["HPicNum"] != null)
+                            {
+                                tbj.HPicNum = ds.Tables[0].Rows[i]["HPicNum"].ToString();
+                            }
+                            mu.Add(tbj);
+                        }
+                    }
+                    diguiLoad(ds.Tables[0], mu);                //浣跨敤閫掑綊锛屽皢闇�瑕佸姞杞界殑鏁版嵁浠ョ埗瀛愮骇鐨勭粨鏋勫瓨鏀惧湪mu涓�
+
+
+                    objJsonResult.code = "1";//淇″彿鍙傛暟
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鏌ヨ鎴愬姛锛�";
+                    objJsonResult.data = Newtonsoft.Json.JsonConvert.SerializeObject(mu);
+                    return objJsonResult;
+                }
+                else
+                {
+                    string josncontext = File.ReadAllText(filePath);
+                    objJsonResult.code = "2";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鏌ヨ鎴愬姛锛�";
+                    objJsonResult.data = josncontext;
+                    return objJsonResult;
+                }
+                
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鏌ヨ澶辫触锛�";
+                objJsonResult.data = e.ToString();
+                return objJsonResult;
+            }
+        }
+
+        public class RequestDto
+        {
+            public string content { get; set; }
+        }
+        [Route("Web/buildRouteObj")]
+        [HttpPost]
+        public object buildRouteObj([FromBody] RequestDto request)
+        {
+            string filePath = HttpContext.Current.Server.MapPath($"~/RouterDisplay/DisplayConfig.json");
+            try
+            {
+                string jsonContent = request.content;
+                if (string.IsNullOrEmpty(jsonContent))
+                {
+                    
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "JSON 鍐呭涓嶈兘涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (string.IsNullOrWhiteSpace(filePath))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏂囦欢璺緞涓嶈兘涓虹┖銆傦紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                string directory = Path.GetDirectoryName(filePath);
+                if (!string.IsNullOrEmpty(directory) && !Directory.Exists(directory))
+                {
+                    Directory.CreateDirectory(directory);
+                }
+                string contentToWrite = jsonContent;
+
+                File.WriteAllText(filePath, contentToWrite);
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鏂囦欢淇濆瓨鎴愬姛锛岃矾寰勪负"+filePath;
+                objJsonResult.data = null;
+                LogService.Write($"璺緞涓簕filePath}");
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+
+                LogService.Write("Exception锛�" + e.ToString());
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+
 
 
         #region [鑿滃崟鐩綍鑷畾涔塢
@@ -23569,5 +23729,251 @@
             }
         }
         #endregion
+
+        #region APP 鑾峰彇寮傚父鍙嶉鍗� 鑾峰彇 妫�楠屽崟鍐呭 閫氱敤鏂规硶
+        [Route("Web/getCheckBillStatus")]
+        [HttpGet]
+        public object getCheckBillStatus(Int64 HInterID, string HBillType)
+        {
+            try { 
+                string sql = "";
+                List<object> columnNameList = new List<object>();
+                if(HBillType == "7505")
+                {
+                    // 棣栨
+                    sql = $@"SELECT
+                          a.HInterID AS hmainid,b.HEntryID hsubid, a.HDate AS 鏃ユ湡, a.HBillNo AS 鍗曟嵁鍙�, 
+                          a.HRemark AS 琛ㄥご澶囨敞,s.HName 鐢熶骇璧勬簮鍚嶇О,s.HNumber 鐢熶骇璧勬簮浠g爜, m.HNumber AS 浜у搧鍐呯爜, m.HName AS 浜у搧鍚嶇О, m.HModel AS 浜у搧鍨嬪彿,e.HNumber as 妫�楠屽憳浠g爜, e.HName as 妫�楠屽憳鍚嶇О,
+                          a.HMaker AS 鍒跺崟浜�, a.HMakeDate AS 鍒跺崟鏃ユ湡, a.HChecker AS 瀹℃牳浜�, a.HCheckDate AS 瀹℃牳鏃ユ湡, a.HUpDater AS 淇敼浜�, 
+                          a.HUpDateDate AS 淇敼鏃ユ湡, a.HCloseMan AS 鍏抽棴浜�, a.HCloseDate AS 鍏抽棴鏃ユ湡, a.HDeleteMan AS 浣滃簾浜�, a.HDeleteDate AS 浣滃簾鏃ユ湡, 
+                          a.HBillType AS 鍗曟嵁绫诲瀷,b.HEntryID hsubid, a.HCheckQty 妫�楠屾暟閲�, a.HSourceID HSourceID,
+			       		  a.HProcExchInterID HProcExchInterID, a.HProcExchEntryID HProcExchEntryID, a.HProcExchBillNo 宸ュ簭娴佽浆鍗″彿,
+			       		  a.HICMOInterID HICMOInterID, a.HICMOEntryID HICMOEntryID, a.HICMOBillNo 鐢熶骇璁㈠崟鍙�
+                          FROM				  
+                          dbo.QC_FirstPieceCheckBillMain AS a INNER JOIN
+                          dbo.QC_FirstPieceCheckBillSub AS b ON a.HInterID = b.HInterID LEFT OUTER JOIN
+			       		  dbo.Gy_Source s on a.HSourceID =s.HItemID LEFT OUTER JOIN
+			       		  dbo.Gy_Material m on a.HMaterID = m.HItemID LEFT OUTER JOIN
+                          dbo.Gy_Employee AS e ON a.HFirstCheckEmp = e.HItemID ";
+                    sql += $" where a.HInterID = {HInterID}";
+
+                    ds = oCN.RunProcReturn(sql, "QC_FirstPieceCheckBillMain");
+
+                }
+                else if (HBillType == "7520")
+                {
+                    // 宸℃
+                    sql = $@"SELECT
+                          a.HInterID AS hmainid,b.HEntryID hsubid, a.HDate AS 鏃ユ湡, a.HBillNo AS 鍗曟嵁鍙�, 
+                          a.HRemark AS 琛ㄥご澶囨敞,s.HName 鐢熶骇璧勬簮鍚嶇О,s.HNumber 鐢熶骇璧勬簮浠g爜, m.HNumber AS 浜у搧鍐呯爜, m.HName AS 浜у搧鍚嶇О, m.HModel AS 浜у搧鍨嬪彿,e.HNumber as 妫�楠屽憳浠g爜, e.HName as 妫�楠屽憳鍚嶇О,
+                          a.HMaker AS 鍒跺崟浜�, a.HMakeDate AS 鍒跺崟鏃ユ湡, a.HChecker AS 瀹℃牳浜�, a.HCheckDate AS 瀹℃牳鏃ユ湡, a.HUpDater AS 淇敼浜�, 
+                          a.HUpDateDate AS 淇敼鏃ユ湡, a.HCloseMan AS 鍏抽棴浜�, a.HCloseDate AS 鍏抽棴鏃ユ湡, a.HDeleteMan AS 浣滃簾浜�, a.HDeleteDate AS 浣滃簾鏃ユ湡, 
+                          a.HBillType AS 鍗曟嵁绫诲瀷,b.HEntryID hsubid, a.HCheckQty 妫�楠屾暟閲�, a.HSourceID HSourceID,
+			       		  a.HProcExchInterID HProcExchInterID, a.HProcExchEntryID HProcExchEntryID, a.HProcExchBillNo 宸ュ簭娴佽浆鍗″彿,
+			       		  a.HICMOInterID HICMOInterID, a.HICMOEntryID HICMOEntryID, a.HICMOBillNo 鐢熶骇璁㈠崟鍙�
+                          FROM				  
+                          dbo.QC_PatrolProcCheckOtherBillMain AS a INNER JOIN
+                          dbo.QC_PatrolProcCheckOtherBillSub AS b ON a.HInterID = b.HInterID LEFT OUTER JOIN
+			       		  dbo.Gy_Source s on a.HSourceID =s.HItemID LEFT OUTER JOIN
+			       		  dbo.Gy_Material m on a.HMaterID = m.HItemID LEFT OUTER JOIN
+                          dbo.Gy_Employee AS e ON a.HFirstCheckEmp = e.HItemID ";
+                    sql += $" where a.HInterID = {HInterID}";
+
+                    ds = oCN.RunProcReturn(sql, "QC_PatrolProcCheckOtherBillMain");
+                }
+                else if(HBillType == "7507")
+                {
+                    // 鏈
+                    sql = $@"SELECT
+                          a.HInterID AS hmainid,b.HEntryID hsubid, a.HDate AS 鏃ユ湡, a.HBillNo AS 鍗曟嵁鍙�, 
+                          a.HRemark AS 琛ㄥご澶囨敞,s.HName 鐢熶骇璧勬簮鍚嶇О,s.HNumber 鐢熶骇璧勬簮浠g爜, m.HNumber AS 浜у搧鍐呯爜, m.HName AS 浜у搧鍚嶇О, m.HModel AS 浜у搧鍨嬪彿,e.HNumber as 妫�楠屽憳浠g爜, e.HName as 妫�楠屽憳鍚嶇О,
+                          a.HMaker AS 鍒跺崟浜�, a.HMakeDate AS 鍒跺崟鏃ユ湡, a.HChecker AS 瀹℃牳浜�, a.HCheckDate AS 瀹℃牳鏃ユ湡, a.HUpDater AS 淇敼浜�, 
+                          a.HUpDateDate AS 淇敼鏃ユ湡, a.HCloseMan AS 鍏抽棴浜�, a.HCloseDate AS 鍏抽棴鏃ユ湡, a.HDeleteMan AS 浣滃簾浜�, a.HDeleteDate AS 浣滃簾鏃ユ湡, 
+                          a.HBillType AS 鍗曟嵁绫诲瀷,b.HEntryID hsubid, a.HCheckQty 妫�楠屾暟閲�, a.HSourceID HSourceID,
+			       		  a.HProcExchInterID HProcExchInterID, a.HProcExchEntryID HProcExchEntryID, a.HProcExchBillNo 宸ュ簭娴佽浆鍗″彿,
+			       		  a.HICMOInterID HICMOInterID, a.HICMOEntryID HICMOEntryID, a.HICMOBillNo 鐢熶骇璁㈠崟鍙�
+                          , HRemarkSN 鏉$爜                          
+                          FROM				  
+                          dbo.QC_ProcessCheckBillMain AS a INNER JOIN
+                          dbo.QC_ProcessCheckBillSub AS b ON a.HInterID = b.HInterID LEFT OUTER JOIN
+			       		  dbo.Gy_Source s on a.HSourceID =s.HItemID LEFT OUTER JOIN
+			       		  dbo.Gy_Material m on a.HMaterID = m.HItemID LEFT OUTER JOIN
+                          dbo.Gy_Employee AS e ON a.HFirstCheckEmp = e.HItemID ";
+                    sql += $" where a.HInterID = {HInterID}";
+
+                    ds = oCN.RunProcReturn(sql, "QC_ProcessCheckBillMain");
+                }
+                if(ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏌ヨ鏁版嵁寮傚父锛屾棤妫�楠屽崟锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                //娣诲姞鍒楀悕
+                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 ex)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鏌ヨ鏁版嵁寮傚父锛岃涓庣鐞嗗憳鑱旂郴锛�" + ex.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鏍规嵁璁惧id鑾峰彇璁惧鏁伴噰鏁版嵁
+        private class EquipTechParam
+        {
+            public string TechParamName { get; set; }
+            public DateTime CreateTime { get; set; }
+            public string Result { get; set; }
+        }
+
+        [Route("Web/getSB_EquipTechParamBillListByEquipID")]
+        [HttpGet]
+        public object getSB_EquipTechParamBillListByEquipID(Int64 HEquipID)
+        {
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                // 宸ヨ壓鍙傛暟鍒嗙被鍒楄〃
+                List<string> categoryNames = new List<string>();
+                ds = oCN.RunProcReturn($"exec h_p_SB_EquipTechParamBillListByEquipID {HEquipID}", "h_p_SB_EquipTechParamBillListByEquipID");
+                var ds1 = oCN.RunProcReturn($"select * from h_v_Gy_Technology", "h_v_Gy_Technology");
+
+                if (ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "褰撳墠璁惧娌℃湁鏁伴噰淇℃伅";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                // 閬嶅巻鑾峰彇宸ヨ壓鍙傛暟鍒嗙被鍒楄〃
+                if (ds1.Tables[0].Rows.Count > 0)
+                {
+                    foreach (DataRow row in ds1.Tables[0].Rows)
+                    {
+                        string categoryName = row["宸ヨ壓鍙傛暟鍒嗙被鍚嶇О"].ToString().Trim();
+                        if (!string.IsNullOrEmpty(categoryName))
+                        {
+                            categoryNames.Add(categoryName);
+                        }
+                    }
+                }
+                // 鎻愬彇鍘熷鏁版嵁鍒版ā鍨嬪垪琛�
+                var rawParams = new List<EquipTechParam>();
+                foreach (DataRow row in ds.Tables[0].Rows)
+                {
+                    rawParams.Add(new EquipTechParam
+                    {
+                        TechParamName = row["HTechParamName"].ToString().Trim(),
+                        CreateTime = Convert.ToDateTime(row["HCreateTime"]),
+                        Result = row["HResult"].ToString()
+                    });
+                }
+
+                // 鎸夊伐鑹哄垎绫诲悕绉板垎缁�
+                Dictionary<string, List<EquipTechParam>> groupedParams = new Dictionary<string, List<EquipTechParam>>();
+                // 鍒濆鍖栨墍鏈夊伐鑹哄垎绫诲垎缁�
+                foreach (string category in categoryNames)
+                {
+                    groupedParams[category] = new List<EquipTechParam>();
+                }
+                // 鏂板鈥滃叾浠栧弬鏁扳�濆厹搴曞垎缁�
+                groupedParams["鍏朵粬鍙傛暟"] = new List<EquipTechParam>();
+
+                // 鍖归厤鍙傛暟鍒板搴斿垎缁勶紙鎸夊弬鏁板悕鍖呭惈鍒嗙被鍚嶇О瀛愪覆锛�
+                foreach (var param in rawParams)
+                {
+                    bool isMatched = false;
+                    // 閬嶅巻鎵�鏈夊伐鑹哄垎绫伙紝鍒ゆ柇鍙傛暟鍚嶆槸浠ヨ鍒嗙被鍚嶇О寮�澶�
+                    foreach (string category in categoryNames)
+                    {
+                        if (param.TechParamName.StartsWith(category))
+                        {
+                            if(param.TechParamName.Length != category.Length)
+                            {
+                                param.TechParamName = param.TechParamName.Substring(category.Length);
+                            }
+                            groupedParams[category].Add(param);
+                            isMatched = true;
+                            break; // 鍖归厤鍒扮涓�涓垎绫诲悗鍋滄锛堥伩鍏嶉噸澶嶅尮閰嶏級
+                        }
+                    }
+                    // 鏃犲尮閰嶅垎绫诲垯褰掍负鈥滃叾浠栧弬鏁扳��
+                    if (!isMatched)
+                    {
+                        groupedParams["鍏朵粬鍙傛暟"].Add(param);
+                    }
+                }
+
+                // 杞崲涓篔Array鏍煎紡锛堝墠绔彲鐩存帴瑙f瀽锛�
+                JArray resultJArray = new JArray();
+                foreach (var group in groupedParams)
+                {
+                    // 杩囨护绌哄垎缁勶紙鏃犳暟鎹殑鍒嗙被涓嶈繑鍥烇級
+                    if (group.Value.Count == 0) continue;
+
+                    JObject groupJObj = new JObject();
+                    groupJObj.Add("鍒嗙粍鍚嶇О", group.Key); // 宸ヨ壓鍙傛暟鍒嗙被鍚嶇О锛堝涓瓙銆佷繚鍘嬶級
+
+                    JArray paramsJArray = new JArray();
+                    foreach (var param in group.Value.OrderBy(p => p.TechParamName))
+                    {
+                        JObject paramJObj = new JObject();
+                        paramJObj.Add("HTechParamName", param.TechParamName);
+                        paramJObj.Add("HCreateTime", param.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"));
+                        paramJObj.Add("HResult", param.Result);
+                        paramsJArray.Add(paramJObj);
+                    }
+                    groupJObj.Add("鍙傛暟鍒楄〃", paramsJArray);
+                    resultJArray.Add(groupJObj);
+                }
+
+                // 淇濈暀鍘熸湁鍒楀悕閫昏緫锛堝吋瀹瑰墠绔級
+                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));
+                }
+
+                // 缁勮杩斿洖缁撴灉
+                objJsonResult.code = "1";
+                objJsonResult.count = resultJArray.Count; // 鏈夋晥鍒嗙粍鏁伴噺
+                objJsonResult.Message = "Success锛�";
+                objJsonResult.data = resultJArray;
+                objJsonResult.list = columnNameList;
+                return objJsonResult;
+            }
+            catch (Exception ex)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鏌ヨ鏁版嵁寮傚父锛岃涓庣鐞嗗憳鑱旂郴锛�" + ex.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
     }
 }

--
Gitblit v1.9.1