From 77e34c929ccd44767c31b98c4bf4ce84319e2eb3 Mon Sep 17 00:00:00 2001
From: chenhaozhe <cgz@hz-kingdee.com>
Date: 星期三, 25 三月 2026 17:04:47 +0800
Subject: [PATCH] 新增Token 生成,校验,刷新功能 (暂时禁用Token功能 如果想要启用,在WebApiConfig.cs文件中解除注释)
---
WebAPI/Controllers/WebAPIController.cs | 315 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 314 insertions(+), 1 deletions(-)
diff --git a/WebAPI/Controllers/WebAPIController.cs b/WebAPI/Controllers/WebAPIController.cs
index 8b17da6..6a78309 100644
--- a/WebAPI/Controllers/WebAPIController.cs
+++ b/WebAPI/Controllers/WebAPIController.cs
@@ -340,6 +340,7 @@
/// <returns></returns>
[Route("Web/GetUser")]
[HttpGet]
+ [AllowAnonymous]
public object GetUser(string UserName, string PassWord, string HOrgName)
{
try
@@ -384,11 +385,23 @@
}
}
+ if (!oSystemParameter.ShowBill(ref DBUtility.ClsPub.sErrInfo))
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鐧诲綍寮傚父锛乀oken 鐢熸垚寮傚父锛屾棤娉曡幏鍙栧叕鍙镐俊鎭紒";
+ }
+
+ string tokenStr = Utility.JWTHelper.GenerateToken(UserName.Trim(), DBUtility.ClsPub.StrToPsd(PassWord.Trim()));
+
+
objjson.code = "0";
objjson.count = 1;
objjson.Message = "[0000-1-073]鐧诲綍鎴愬姛锛�";
objjson.data = ds.Tables[0];
- return objjson;
+ JObject jobjJsonResult = JObject.FromObject(objjson);
+ jobjJsonResult["token"] = tokenStr;
+ return jobjJsonResult;
}
catch (Exception e)
@@ -2619,6 +2632,7 @@
/// <returns></returns>
[Route("Web/GetDataBases")]
[HttpGet]
+ [AllowAnonymous]
public object GetDataBases()
{
try
@@ -18965,6 +18979,7 @@
/// <returns></returns>
[Route("Web/GetOrganizations")]
[HttpGet]
+ [AllowAnonymous]
public object GetOrganizations()
{
try
@@ -18997,6 +19012,7 @@
/// <returns></returns>
[Route("Web/BaseInfo")]
[HttpGet]
+ [AllowAnonymous]
public object GetBaseInfo()
{
try
@@ -21765,6 +21781,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")]
@@ -21871,6 +21889,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 [鑿滃崟鐩綍鑷畾涔塢
@@ -23678,5 +23853,143 @@
}
}
#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