Exemplo n.º 1
0
        private CurrentWorkInfo GetWorkInfo(String unitID, DateTime CalcDateTime)
        {
            CurrentWorkInfo Result = new CurrentWorkInfo();
            KPI_UnitEntity  Entity = KPI_UnitDal.GetEntity(unitID);

            Result.WorkID = Entity.WorkID;
            String strStartTime     = "";
            String strEndTime       = "";
            String Shift            = "";
            String Period           = "";
            String strCurrentMinute = CalcDateTime.ToString("yyyy-MM-dd HH:mm:00");

            KPI_WorkDal.GetShiftAndPeriod(Result.WorkID, strCurrentMinute,
                                          ref Shift, ref Period, ref strStartTime, ref strEndTime);
            Result.Shift     = Shift;
            Result.Period    = Period;
            Result.StartTime = Convert.ToDateTime(strStartTime);
            Result.EndTime   = Convert.ToDateTime(strEndTime);
            return(Result);
        }
Exemplo n.º 2
0
        private void CalculateSAScore(DateTime StartTime, DateTime EndTime)
        {
            KPI_SATagValueEntity   SATagValue;
            List <KPI_SATagEntity> SATagList;

            this.BeginTime = StartTime;             //开始时间
            this.EndTime   = EndTime;
            m_Log.Info("开始计算安全得分");
            m_Log.InfoFormat("开始时间:{0} 结束时间:{1}", BeginTime.ToString("yyyy-MM-dd HH:mm:ss"),
                             EndTime.ToString("yyyy-MM-dd HH:mm:ss"));
            using (KPI_SATagDal DataAccess = new KPI_SATagDal()) {
                foreach (KPI_UnitEntity Unit in m_UnitList)
                {
                    if (UnitIsRunning(Unit.UnitID) == false)
                    {
                        continue;                                                         //机组停运不计算得分
                    }
                    CurrentWorkInfo WorkInfo = GetWorkInfo(Unit.UnitID, BeginTime);       //获取当前值次、班次相关信息
                    SATagValue              = new KPI_SATagValueEntity();
                    SATagValue.Shift        = WorkInfo.Shift;
                    SATagValue.Period       = WorkInfo.Period;
                    SATagValue.CalcDateTime = EndTime;
                    SATagList = DataAccess.GetSATagList(Unit.UnitID);
                    foreach (KPI_SATagEntity SATag in SATagList)
                    {
                        SATagValue.SAID    = SATag.SAID;
                        SATagValue.SAScore = Convert.ToDecimal(m_Parser.Evaluate(SATag.SACalcExp));                        //计算安全得分
                        //Console.WriteLine(SATag.SACountExpression);
                        SATagValue.TotalCount    = Convert.ToInt32(m_Parser.Evaluate(SATag.SACountExpression));            //计算超限次数
                        SATagValue.TotalDuration = Convert.ToDecimal(m_Parser.Evaluate(SATag.SADurationExpression));       //计算超限时长
                        if (SATagValue.TotalCount > 0)
                        {
                            m_DataAccess.SaveKPI_SATagValue(SATagValue);
                        }
                    }
                    SATagList.Clear();
                }
            }
            //Console.WriteLine("安全得分计算结束");
            m_Log.Info("安全得分计算结束");
        }
Exemplo n.º 3
0
 private CurrentWorkInfo GetWorkInfo(String unitID, DateTime CalcDateTime)
 {
     CurrentWorkInfo Result = new CurrentWorkInfo();
     KPI_UnitEntity Entity = KPI_UnitDal.GetEntity(unitID);
     Result.WorkID = Entity.WorkID;
     String strStartTime = "";
     String strEndTime = "";
     String Shift = "";
     String Period = "";
     String strCurrentMinute = CalcDateTime.ToString("yyyy-MM-dd HH:mm:00");
     KPI_WorkDal.GetShiftAndPeriod(Result.WorkID, strCurrentMinute,
         ref Shift, ref Period, ref strStartTime, ref strEndTime);
     Result.Shift = Shift;
     Result.Period = Period;
     Result.StartTime = Convert.ToDateTime(strStartTime);
     Result.EndTime = Convert.ToDateTime(strEndTime);
     return Result;
 }