public DataTable QueryEQPStatusMonitorData(EQPStatusMonitorInput input) { string sql = string.Empty; if (input.IsIncludeChamber == false) { sql = string.Format(StatusMonitorSQL, input.EQPList, "/*", "*/"); } else { sql = string.Format(StatusMonitorSQL, input.EQPList, " ", " "); } DataTable dtData = base.QueryDataTable(sql, input, "Result"); return(dtData); }
/// <summary> /// 读取所有信息 /// </summary> /// <returns></returns> public JsonResult QueryEQPStatusMonitorData(EQPStatusMonitorInput input) { return(Json(_Logic.QueryEQPStatusMonitorData(input))); }
public EQPStatusMonitorOutput QueryEQPStatusMonitorData(EQPStatusMonitorInput input) { Dictionary <string, string> dicStatusColor = new Dictionary <string, string>(); input.StartTime = input.StartTime.Replace("-", "").Replace(":", "") + "000"; input.EndTime = input.EndTime.Replace("-", "").Replace(":", "") + "000"; DataTable dt = _Repository.QueryEQPStatusMonitorData(input); List <string> _EQPList = dt.AsEnumerable().Select(d => d.Field <string>("EQUIPMENTNAME")).Distinct().ToList(); DataTable dtStatus = dt.Distinct("STATE", "COLOR"); int index = 0; foreach (DataRow drStatus in dtStatus.Rows) { if (drStatus["COLOR"] == null || string.IsNullOrEmpty(drStatus["COLOR"].ToString())) { int colorStart = (index / dtStatus.Rows.Count) * 255; int colorEnd = ((index + 1) / dtStatus.Rows.Count) * 255; dicStatusColor.Add(drStatus["STATE"].ToString(), GetColorIndex(index)); } index++; } EQPStatusMonitorOutput output = new EQPStatusMonitorOutput(); output.StartDate = GetCurrentTicksForJs(DateTime.ParseExact(input.StartTime, "yyyyMMdd HHmmssfff", System.Globalization.CultureInfo.CurrentCulture)); output.EndDate = GetCurrentTicksForJs(DateTime.ParseExact(input.EndTime, "yyyyMMdd HHmmssfff", System.Globalization.CultureInfo.CurrentCulture)); output.categories = _EQPList; index = 0; foreach (var eqp in _EQPList) { var drStatuses = dt.Select("EQUIPMENTNAME = '" + eqp + "'"); EQPStatusDetails detail = new EQPStatusDetails(); foreach (DataRow drStatus in drStatuses) { string status = drStatus["STATE"].ToString(); string parentName = drStatus["PNAME"].ToString(); string color = string.Empty; if (drStatus["COLOR"] == null || string.IsNullOrEmpty(drStatus["COLOR"].ToString())) { color = dicStatusColor[status]; } else { color = drStatus["COLOR"].ToString(); } DateTime dateStart = (DateTime)drStatus["START_TIME"]; DateTime dateEnd = (DateTime)drStatus["END_TIME"]; double durationMinutes = double.Parse(drStatus["duration_mi"].ToString()); double durationms = double.Parse(drStatus["duration_ms"].ToString()); var arrList = new ArrayList(); arrList.Add(index); arrList.Add(GetCurrentTicksForJs(dateStart)); arrList.Add(GetCurrentTicksForJs(dateEnd)); arrList.Add(durationms); arrList.Add(durationMinutes); arrList.Add(eqp); arrList.Add(parentName); output.data.Add(new EQPStatusMonitorData() { name = status, value = arrList,//{ index, dateStart.ToOADate(), dateEnd.ToOADate(), durationms, durationMinutes }, itemStyle = new { normal = new { color = color } } }); detail.StatusDetails.Add(new EQPStatusDetailsItem() { name = status, StartTime = dateStart.ToString("yyyy-MM-dd HH:mm:ss"), EndTime = dateEnd.ToString("yyyy-MM-dd HH:mm:ss"), value = durationMinutes }); detail.Colors.Add(color); } output.StatusDetails.Add(eqp, detail); index++; } output.StatusColor = dicStatusColor; return(output); }