Beispiel #1
0
        public void Execute(IJobExecutionContext context)
        {
            DateTime time      = DateTime.Now.AddHours(-1);
            string   startTime = time.ToString("yyyy-MM-dd") + " " + time.ToString("HH") + ":00:00";
            string   endTime   = time.ToString("yyyy-MM-dd") + " " + time.ToString("HH") + ":59:59";

            InspectOriginalData inspectOriginalData = new InspectOriginalData();

            inspectOriginalData.StartTime = startTime;
            inspectOriginalData.EndTime   = endTime;

            ////测试数据
            //inspectOriginalData.StartTime = "2018-03-30 21:00:00";
            //inspectOriginalData.EndTime = "2018-03-30 21:59:59";

            //返回结果集。计算最大最小值。平均值
            List <InspectItemData> itemDataList = new InspectDataService().GetItemDatas(inspectOriginalData);

            List <InspectResultData> resultList = new List <InspectResultData>();

            if (itemDataList != null && itemDataList.Count > 0)
            {
                decimal total    = 0;
                decimal max      = 0;
                decimal min      = 0;
                int     groupNum = 0;

                string DeviceSN = "";
                foreach (InspectItemData iid in itemDataList)
                {
                    string groupId = iid.DeviceSN + "^" + iid.ItemCode;
                    if (DeviceSN != groupId)
                    {
                        if (DeviceSN != "")
                        {
                            InspectResultData ird = new InspectResultData();
                            ird.ID           = Guid.NewGuid().ToString();
                            ird.DeviceCode   = DeviceSN.Split('^')[0];
                            ird.ItemCode     = DeviceSN.Split('^')[1];
                            ird.MaxDataValue = max;
                            ird.MinDataValue = min;
                            ird.AvgValue     = Convert.ToDecimal((total / groupNum).ToString("0.00"));
                            ird.ResultType   = "1";
                            ird.UpdateTime   = DateTime.Now;
                            ird.InspectTime  = DateTime.Parse(inspectOriginalData.StartTime);
                            ird.OrganID      = DeviceCache.getOrganIdByCode(ird.DeviceCode);
                            resultList.Add(ird);
                        }
                        max      = Convert.ToDecimal(iid.InspectData);
                        min      = Convert.ToDecimal(iid.InspectData);
                        groupNum = 0;
                        total    = 0;
                        DeviceSN = groupId;
                    }

                    decimal id = 0;
                    try
                    {
                        //非数字格式转换出异常时.此条数据丢弃
                        id = Convert.ToDecimal(iid.InspectData);
                    }
                    catch (Exception ex)
                    {
                        continue;
                    }

                    //计算最大值
                    if (id > max)
                    {
                        max = id;
                    }
                    //计算最小值
                    if (id < min)
                    {
                        min = id;
                    }
                    //汇总
                    total += id;
                    groupNum++;
                }

                InspectResultData ird1 = new InspectResultData();
                ird1.ID           = Guid.NewGuid().ToString();
                ird1.DeviceCode   = DeviceSN.Split('^')[0];
                ird1.ItemCode     = DeviceSN.Split('^')[1];
                ird1.MaxDataValue = max;
                ird1.MinDataValue = min;
                ird1.AvgValue     = Convert.ToDecimal((total / groupNum).ToString("0.00"));
                ird1.ResultType   = "1";
                ird1.UpdateTime   = DateTime.Now;
                ird1.InspectTime  = DateTime.Parse(inspectOriginalData.StartTime);
                ird1.OrganID      = DeviceCache.getOrganIdByCode(ird1.DeviceCode);
                resultList.Add(ird1);
            }

            Console.WriteLine("每小时定时计算平均值!");

            if (resultList.Count > 0)
            {
                Console.ForegroundColor = ConsoleColor.Red;
            }
            else
            {
                Console.ForegroundColor = ConsoleColor.White;
            }

            foreach (InspectResultData ird in resultList)
            {
                Console.WriteLine("按小时-设备号:" + ird.DeviceCode + ";项目号:" + ird.ItemCode + ";最大值:" + ird.MaxDataValue + ";最小值" + ird.MinDataValue + ";平均值:" + ird.AvgValue);
            }

            //插入到数据库中

            int count = 0;

            try
            {
                using (IDataSession session = AppDataFactory.CreateMainSession())
                {
                    //插入基本信息
                    count = session.Insert <InspectResultData>(resultList);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #2
0
        public void Execute(IJobExecutionContext context)
        {
            DateTime time      = DateTime.Now.AddMonths(-1);
            DateTime stime     = DateTime.Parse(DateTime.Now.ToString("yyyy-MM" + "-01"));
            DateTime eTime     = stime.AddMonths(1).AddSeconds(-1);
            string   startTime = stime.ToString("yyyy-MM-dd") + " " + "00:00:00";
            string   endTime   = eTime.ToString("yyyy-MM-dd") + " " + "23:59:59";

            InspectOriginalData inspectOriginalData = new InspectOriginalData();

            inspectOriginalData.StartTime = startTime;
            inspectOriginalData.EndTime   = endTime;

            ////测试数据
            //inspectOriginalData.StartTime = "2018-03-23 00:00:00";
            //inspectOriginalData.EndTime = "2018-03-23 23:59:59";

            //返回结果集。计算最大最小值。平均值
            List <InspectItemData> itemDataList = new InspectDataService().GetItemDatas(inspectOriginalData);

            List <InspectResultData> resultList = new List <InspectResultData>();

            if (itemDataList != null && itemDataList.Count > 0)
            {
                decimal total = 0;
                decimal max   = 0;
                decimal min   = 0;

                string DeviceSN = "";
                foreach (InspectItemData iid in itemDataList)
                {
                    string groupId = iid.DeviceSN + "_" + iid.ItemCode;
                    if (DeviceSN != groupId)
                    {
                        if (DeviceSN != "")
                        {
                            InspectResultData ird = new InspectResultData();
                            ird.ID           = Guid.NewGuid().ToString();
                            ird.DeviceCode   = DeviceSN.Split('_')[0];
                            ird.ItemCode     = DeviceSN.Split('_')[1];
                            ird.MaxDataValue = max;
                            ird.MinDataValue = min;
                            ird.AvgValue     = Convert.ToDecimal((total / itemDataList.Count).ToString("0.00"));
                            ird.ResultType   = "3";
                            ird.UpdateTime   = DateTime.Now;
                            ird.InspectTime  = DateTime.Parse(inspectOriginalData.StartTime.Substring(0, 14).Replace("T", ""));
                            ird.OrganID      = DeviceCache.getOrganIdByCode(ird.DeviceCode);
                            resultList.Add(ird);
                        }
                        max      = 0;
                        min      = 0;
                        total    = 0;
                        DeviceSN = groupId;
                    }

                    decimal id = Convert.ToDecimal(iid.InspectData);
                    //计算最大值
                    if (id > max)
                    {
                        max = id;
                    }
                    //计算最小值
                    if (id < min)
                    {
                        min = id;
                    }
                    //汇总
                    total += id;
                }

                InspectResultData ird1 = new InspectResultData();
                ird1.ID           = Guid.NewGuid().ToString();
                ird1.DeviceCode   = DeviceSN.Split('_')[0];
                ird1.ItemCode     = DeviceSN.Split('_')[1];
                ird1.MaxDataValue = max;
                ird1.MinDataValue = min;
                ird1.AvgValue     = Convert.ToDecimal((total / itemDataList.Count).ToString("0.00"));
                ird1.ResultType   = "3";
                ird1.UpdateTime   = DateTime.Now;
                ird1.InspectTime  = DateTime.Parse(inspectOriginalData.StartTime.Substring(0, 14).Replace("T", ""));
                ird1.OrganID      = DeviceCache.getOrganIdByCode(ird1.DeviceCode);
                resultList.Add(ird1);
            }

            Console.WriteLine("每月定时计算平均值!");

            foreach (InspectResultData ird in resultList)
            {
                //插入到数据库
                Console.WriteLine("按月-设备号:" + ird.DeviceCode + ";项目号:" + ird.ItemCode + ";最大值:" + ird.MaxDataValue + ";最小值" + ird.MinDataValue + ";平均值:" + ird.AvgValue);
            }
        }