| | |
| | | } |
| | | } |
| | | #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); |
| | | } |
| | | } |
| | | |
| | | // 转换为JArray格式(前端可直接解析) |
| | | 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 |
| | | } |
| | | } |