public BasicResponse <List <PowerboxchargehistoryInfo> > GetPowerboxchargehistoryByStime(PowerboxchargehistoryGetByStimeRequest powerboxchargehistoryRequest)
        {
            var result = _Repository.QueryTable("global_GetPowerBoxChargeByStime", powerboxchargehistoryRequest.Stime.ToString("yyyy-MM-dd HH:mm:ss"));
            var powerboxchargehistoryInfo     = _Repository.ToEntityFromTable <PowerboxchargehistoryInfo>(result);
            var powerboxchargehistoryresponse = new BasicResponse <List <PowerboxchargehistoryInfo> >();

            powerboxchargehistoryresponse.Data = powerboxchargehistoryInfo.ToList();
            return(powerboxchargehistoryresponse);
        }
        public void PowerboxchargeStaticThread()
        {
            DateTime timeNow = DateTime.Now;
            List <PowerboxchargehistoryInfo> PowerboxchargehistoryList = new List <PowerboxchargehistoryInfo>();
            List <Jc_DefInfo> StationList = new List <Jc_DefInfo>();

            while (true)
            {
                try
                {
                    timeNow = DateTime.Now;
                    PowerboxchargehistoryGetByStimeRequest powerboxchargehistoryRequest = new PowerboxchargehistoryGetByStimeRequest();
                    powerboxchargehistoryRequest.Stime = timeNow.AddDays(-1);
                    PowerboxchargehistoryList          = powerboxchargehistoryService.GetPowerboxchargehistoryByStime(powerboxchargehistoryRequest).Data;
                    StationList = pointDefineService.GetPointDefineCacheByDevpropertID(new Request.PointDefine.PointDefineGetByDevpropertIDRequest()
                    {
                        DevpropertID = 0
                    }).Data;
                    List <Jc_MacInfo> macList = networkModuleService.GetAllNetworkModuleCache().Data;
                    foreach (PowerboxchargehistoryInfo powerboxcharge in PowerboxchargehistoryList)
                    {
                        if (powerboxcharge.DischargeStime < DateTime.Parse("2000-01-01"))//放电开始判断
                        {
                            if (string.IsNullOrEmpty(powerboxcharge.Mac))
                            {//分站电源箱
                                Jc_DefInfo station = StationList.Find(a => a.Fzh == short.Parse(powerboxcharge.Fzh));
                                if (station != null)
                                {
                                    TimeSpan ts = station.DttRunStateTime - powerboxcharge.Stime;
                                    if (station.State == 4 && ts.TotalMinutes < 5)//如果操作放电,分站在5分钟内变成直流了,则记录放电的开始时间
                                    {
                                        powerboxcharge.DischargeStime = station.DttRunStateTime;
                                        PowerboxchargehistoryUpdate(powerboxcharge);
                                    }
                                }
                            }
                            else
                            {
                                GetMacPowerboxInfo(powerboxcharge.Mac);
                                //交换机电源箱
                                Jc_MacInfo mac = macList.Find(a => a.MAC == powerboxcharge.Mac);
                                if (mac != null)
                                {
                                    if (mac.BatteryItems != null && mac.BatteryItems.Count > 0)
                                    {
                                        if (mac.BatteryItems[0].BatteryACDC == 2)//如果操作放电,交换机变成直流,则记录放电的开始时间
                                        {
                                            powerboxcharge.DischargeStime = mac.PowerDateTime;
                                            PowerboxchargehistoryUpdate(powerboxcharge);
                                        }
                                    }
                                }
                            }
                        }
                        else if (powerboxcharge.DischargeEtime < DateTime.Parse("2000-01-01"))//放电结束判断
                        {
                            if (string.IsNullOrEmpty(powerboxcharge.Mac))
                            {
                                Jc_DefInfo station = StationList.Find(a => a.Fzh == short.Parse(powerboxcharge.Fzh));
                                if (station != null && station.State == 3)//如果分站变成交流了,则记录放电的结束时间
                                {
                                    powerboxcharge.DischargeEtime = station.DttRunStateTime;
                                    PowerboxchargehistoryUpdate(powerboxcharge);
                                }
                            }
                            else
                            {
                                GetMacPowerboxInfo(powerboxcharge.Mac);
                                //交换机电源箱
                                Jc_MacInfo mac = macList.Find(a => a.MAC == powerboxcharge.Mac);
                                if (mac != null)
                                {
                                    if (mac.BatteryItems != null && mac.BatteryItems.Count > 0)
                                    {
                                        if (mac.BatteryItems[0].BatteryACDC == 1)//如果交换机变成交流了,则记录放电的结束时间
                                        {
                                            powerboxcharge.DischargeEtime = mac.PowerDateTime;
                                            PowerboxchargehistoryUpdate(powerboxcharge);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Basic.Framework.Logging.LogHelper.Error(ex);
                }
                Thread.Sleep(60000);
            }
        }