コード例 #1
0
        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);
        }
コード例 #2
0
 /// <summary>
 ///     读取所有信息
 /// </summary>
 /// <returns></returns>
 public JsonResult QueryEQPStatusMonitorData(EQPStatusMonitorInput input)
 {
     return(Json(_Logic.QueryEQPStatusMonitorData(input)));
 }
コード例 #3
0
        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);
        }