| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663 | <?phpif (!defined('BASEPATH'))exit('No direct script access allowed');class Electric_model extends CI_Model {	protected $CI;	public function __construct() {		parent::__construct();	}		// 发电量,用电量	public function getPowerDataByFilter($idArr,$date,$type){				$table = 'electric_info_log';		$table = 'statistics';		$updateTimeDef = "";		if ($type == 'day'){			$beginDate = date('Y-m-d 00:00:00',strtotime($date));			$endDate   = date('Y-m-d 23:59:59',strtotime($date));			$updateTimeDef = date('Y-m-d',strtotime($date));		} elseif ($type == 'month'){			$beginDate = date('Y-m-01 00:00:00', strtotime($date."-01 00:00:00"));			$endDate   = date('Y-m-t 23:59:59', strtotime($beginDate));			$updateTimeDef = date('Y-m',strtotime($endDate));		} else {			$beginDate = date('Y-01-01 00:00:00', strtotime($date."-01-01 00:00:00"));			$endDate   = date('Y-12-31 23:59:59', strtotime($date."-12-31 23:59:59"));			$updateTimeDef = date('Y',strtotime($endDate));		}				if (empty($idArr)) {			return array(					'daygeneration'      => 0,					'dayconsumption'     => 0,					'totalgeneration'    => 0,					'totalconsumption'   => 0,					'monthgeneration'    => 0,					'monthconsumption'   => 0,					'yeargeneration'     => 0,					'yearconsumption'    => 0,					'updatetime'         => $updateTimeDef,			);		}		$ids = implode(",", $idArr);						// 当天发电量,用电量		// $query = "SELECT sum(daygeneration) as daygeneration,sum(dayconsumption) as dayconsumption,max(updatetime) as updatetime FROM (SELECT MAX(daygeneration) AS daygeneration,MAX(dayconsumption) AS dayconsumption,updatetime FROM electric_info_log 		// 		WHERE lampid IN(".$ids.") 		// 		AND updatetime>='".$beginDate."' 		// 		AND updatetime<='".$endDate."' group by lampid) as t1";			// $query = "SELECT lampid,MAX(daygeneration) AS daygeneration,MAX(dayconsumption) AS dayconsumption,max(updatetime) as updatetime FROM {$table} 		// 		WHERE lampid IN(".$ids.") 		// 		AND updatetime>='".$beginDate."' 		// 		AND updatetime<='".$endDate."' group by lampid";			$query = "SELECT lampid,MAX(dayGeneration) AS daygeneration,MAX(dayConsumption) AS dayconsumption,max(updatetime) as updatetime FROM {$table} 				WHERE lampid IN(".$ids.") 				AND updatetime>='".$beginDate."' 				AND updatetime<='".$endDate."' group by lampid";				$query = $this->db->query($query);		$dayData = $query->result_array();		$dayData = $this->format_data($dayData);				// 总发电量,总用电量		// $query = "SELECT lampid,MAX(totalgeneration) AS totalgeneration,MAX(totalconsumption) AS totalconsumption FROM electric_info_log 		// 		WHERE lampid IN(".$ids.") group by lampid";		// $query = "SELECT EI.lampid,EI.totalgeneration AS totalgeneration,EI.totalconsumption AS totalconsumption FROM {$table} as EI join (SELECT lampid,max(updatetime) as time FROM {$table} 		// 		WHERE lampid IN(".$ids.") group by lampid) as T on T.lampid = EI.lampid AND T.time = EI.updatetime";		$query = "SELECT EI.lampid,EI.totalGeneration AS totalgeneration,EI.totalConsumption AS totalconsumption FROM {$table} as EI join (SELECT lampid,max(updatetime) as time FROM {$table} 				WHERE lampid IN(".$ids.") and updatetime <= '".$endDate."' group by lampid ) as T on T.lampid = EI.lampid AND T.time = EI.updatetime";		$query = $this->db->query($query);		$allData = $query->result_array();		$allData = $this->format_data($allData);				//当月第一天和当年第一天		$beginDateMonth = date('Y-m-01 00:00:00', strtotime($beginDate));		$beginDateYear  = date('Y-01-01 00:00:00', strtotime($beginDate));				//上个月的累积发电量和用电量		// $query = "SELECT lampid,max(totalgeneration) as lastmonthgeneration, max(totalconsumption) as lastmonthconsumption		// 		  FROM electric_info_log WHERE lampid IN(".$ids.") AND updatetime<'".$beginDateMonth."' group by lampid";		// $query = "SELECT EI.lampid,EI.totalgeneration AS lastmonthgeneration,EI.totalconsumption AS lastmonthconsumption FROM {$table} as EI join (SELECT lampid,max(updatetime) as time FROM {$table} 		// 		WHERE lampid IN(".$ids.") AND updatetime<'".$beginDateMonth."' group by lampid) as T on T.lampid = EI.lampid AND T.time = EI.updatetime";			$query = "SELECT EI.lampid,EI.totalGeneration AS lastmonthgeneration,EI.totalConsumption AS lastmonthconsumption FROM {$table} as EI join (SELECT lampid,max(updatetime) as time FROM {$table} 				WHERE lampid IN(".$ids.") AND updatetime<'".$beginDateMonth."' group by lampid) as T on T.lampid = EI.lampid AND T.time = EI.updatetime";			$query = $this->db->query($query);		$monthData = $query->result_array();		$monthData = $this->format_data($monthData);				//去年的累积发电量和用电量		// $query = "SELECT lampid,max(totalgeneration) as lastyeargeneration, max(totalconsumption) as lastyearconsumption		// 		  FROM electric_info_log WHERE lampid IN(".$ids.") AND updatetime<'".$beginDateYear."' group by lampid";		// $query = "SELECT EI.lampid,EI.totalgeneration AS lastyeargeneration,EI.totalconsumption AS lastyearconsumption FROM {$table} as EI join (SELECT lampid,max(updatetime) as time FROM {$table} 		// 		WHERE lampid IN(".$ids.") AND updatetime<'".$beginDateYear."' group by lampid) as T on T.lampid = EI.lampid AND T.time = EI.updatetime";			$query = "SELECT EI.lampid,EI.totalGeneration AS lastyeargeneration,EI.totalConsumption AS lastyearconsumption FROM {$table} as EI join (SELECT lampid,max(updatetime) as time FROM {$table} 				WHERE lampid IN(".$ids.") AND updatetime<'".$beginDateYear."' group by lampid) as T on T.lampid = EI.lampid AND T.time = EI.updatetime";				$query = $this->db->query($query);		$yearData = $query->result_array();		$yearData = $this->format_data($yearData);				$temp = array();		foreach ($idArr as $value) {			$dayData[$value]['daygeneration'] = isset($dayData[$value]['daygeneration']) ? round($dayData[$value]['daygeneration'],2) : 0;			$dayData[$value]['dayconsumption'] = isset($dayData[$value]['dayconsumption']) ? round($dayData[$value]['dayconsumption'],2) : 0;			$allData[$value]['totalgeneration'] = isset($allData[$value]['totalgeneration']) ? round($allData[$value]['totalgeneration'],2) : 0;			$allData[$value]['totalconsumption'] = isset($allData[$value]['totalconsumption']) ? round($allData[$value]['totalconsumption'],2) : 0;			$monthData[$value]['lastmonthgeneration'] = isset($monthData[$value]['lastmonthgeneration']) ? round($monthData[$value]['lastmonthgeneration'],2) : 0;			$monthData[$value]['lastmonthconsumption'] = isset($monthData[$value]['lastmonthconsumption']) ? round($monthData[$value]['lastmonthconsumption'],2) : 0;			$yearData[$value]['lastyeargeneration'] = isset($yearData[$value]['lastyeargeneration']) ? round($yearData[$value]['lastyeargeneration'],2) : 0;			$yearData[$value]['lastyearconsumption'] = isset($yearData[$value]['lastyearconsumption']) ? round($yearData[$value]['lastyearconsumption'],2) : 0;			// var_dump($value);die;			if ($type == 'day'){				$updatetime = isset($dayData[$value]['updatetime']) && !empty($dayData[$value]['updatetime']) ? date('Y-m-d',strtotime($dayData[$value]['updatetime'])) : $updateTimeDef;			} elseif ($type == 'month'){				$updatetime = isset($dayData[$value]['updatetime']) && !empty($dayData[$value]['updatetime']) ? date('Y-m',strtotime($dayData[$value]['updatetime'])) : $updateTimeDef;			} else {				$updatetime = isset($dayData[$value]['updatetime']) && !empty($dayData[$value]['updatetime']) ? date('Y',strtotime($dayData[$value]['updatetime'])) : $updateTimeDef;			}			// var_dump($allData);die;			$temp[$value] = array(				'daygeneration'      => $dayData[$value]['daygeneration'] ,				'dayconsumption'     => $dayData[$value]['dayconsumption'] ,				'totalgeneration'    => $allData[$value]['totalgeneration'] ,				'totalconsumption'   => $allData[$value]['totalconsumption'] ,				'monthgeneration'    => !empty($monthData[$value]['lastmonthgeneration']) ? round($allData[$value]['totalgeneration']-$monthData[$value]['lastmonthgeneration'],2) : $allData[$value]['totalgeneration'],				'monthconsumption'   => !empty($monthData[$value]['lastmonthconsumption']) ? round($allData[$value]['totalconsumption']-$monthData[$value]['lastmonthconsumption'],2) : $allData[$value]['totalconsumption'],				'yeargeneration'     => !empty($yearData[$value]['lastyeargeneration']) ? $allData[$value]['totalgeneration']-$yearData[$value]['lastyeargeneration'] : $allData[$value]['totalgeneration'],				'yearconsumption'    => !empty($yearData[$value]['lastyearconsumption']) ? $allData[$value]['totalconsumption']-$yearData[$value]['lastyearconsumption'] : $allData[$value]['totalconsumption'],				'updatetime'         => $updatetime			);		}		return $temp;	}	public function getBatterychargeDataByFilter($ids,$date,$type){				if (date('m',time()) - date('m',strtotime($date)) > 3) {			$table = 'history_info_log_back';		}else{			$table = 'history_info_log';		}		$updateTimeDef = "";				if ($type == 'day'){			$beginDate = date('Y-m-d 00:00:00',strtotime($date));			$endDate   = date('Y-m-d 23:59:59',strtotime($date));			$updateTimeDef = date('Y-m-d',strtotime($date));		} elseif ($type == 'month'){			$beginDate = date('Y-m-01 00:00:00', strtotime($date."-01 00:00:00"));			$endDate   = date('Y-m-t 23:59:59', strtotime($beginDate));			$updateTimeDef = date('Y-m',strtotime($endDate));		} else {			$beginDate = date('Y-01-01 00:00:00', strtotime($date."-01-01 00:00:00"));			$endDate   = date('Y-12-31 23:59:59', strtotime($date."-12-31 23:59:59"));			$updateTimeDef = date('Y',strtotime($endDate));		}				if (empty($ids)) {			return array(					'overtimes'          => 0,					'fulltimes'          => 0,					'monthfulltimes'     => 0,					'monthovertimes'     => 0,					'yearfulltimes'      => 0,					'yearovertimes'      => 0,					'updatetime'         => $updateTimeDef,			);		}				$ids = implode(",", $ids);				$query = "SELECT MAX(overtimes) as overtimes,MAX(fulltimes) as fulltimes,MAX(totalchargeah) as totalchargeah,MAX(totaldischarah) as totaldischarah,MAX(updatetime) as updatetime FROM {$table}				WHERE lampid IN(".$ids.")				AND updatetime>='".$beginDate."'				AND updatetime<='".$endDate."'";				$query = $this->db->query($query);		$dayData = $query->row_array();		$dayData['overtimes'] = !empty($dayData['overtimes']) ? $dayData['overtimes'] : 0;		$dayData['fulltimes'] = !empty($dayData['fulltimes']) ? $dayData['fulltimes'] : 0;		$dayData['totalchargeah'] = !empty($dayData['totalchargeah']) ? $dayData['totalchargeah'] : 0;		$dayData['totaldischarah'] = !empty($dayData['totaldischarah']) ? $dayData['totaldischarah'] : 0;				// 获取当前月份第一天 和最后一天		$beginDateMonth = date('Y-m-01 00:00:00', strtotime($beginDate));		$endDateMonth   = $endDate;				$query = "SELECT overtimes ,fulltimes				  FROM {$table} WHERE lampid IN(".$ids.")				  AND updatetime>='".$beginDateMonth."'				  AND updatetime<='".$endDateMonth."'				  ORDER BY updatetime ASC				  ";				$query = $this->db->query($query);		$monthData = $query->result_array();		$monthData['overtimes']	= !empty($monthData['overtimes']) ? $monthData['overtimes'] : 0;			$monthData['fulltimes']	= !empty($monthData['fulltimes']) ? $monthData['fulltimes'] : 0;					$query = "SELECT overtimes ,fulltimes		FROM {$table} WHERE  lampid IN(".$ids.")		AND updatetime>='".date('Y-01-01 00:00:00',strtotime($beginDate))."'		AND updatetime<='".$endDate."'		ORDER BY updatetime ASC";				$query = $this->db->query($query);		$yearData = $query->result_array();		$yearData['overtimes']	= !empty($yearData['overtimes']) ? $yearData['overtimes'] : 0;			$yearData['fulltimes']	= !empty($yearData['fulltimes']) ? $yearData['fulltimes'] : 0;				if ($type == 'day'){			$updatetime = isset($dayData['updatetime']) && !empty($dayData['updatetime']) ? date('Y-m-d',strtotime($dayData['updatetime'])) : $updateTimeDef;		} elseif ($type == 'month'){			$updatetime = isset($dayData['updatetime']) && !empty($dayData['updatetime']) ? date('Y-m',strtotime($dayData['updatetime'])) : $updateTimeDef;		} else {			$updatetime = isset($dayData['updatetime']) && !empty($dayData['updatetime']) ? date('Y',strtotime($dayData['updatetime'])) : $updateTimeDef;		}				return array(				'overtimes'          => $dayData['overtimes'],				'fulltimes'          => $dayData['fulltimes'],				'monthovertimes'     => !empty($monthData) ? $monthData[count($monthData)-1]['overtimes'] - $monthData[0]['overtimes'] : 0,				'monthfulltimes'     => !empty($monthData) ? $monthData[count($monthData)-1]['fulltimes'] - $monthData[0]['fulltimes'] : 0,				'yearovertimes'      => !empty($yearData) ? $yearData[count($yearData)-1]['overtimes'] - $yearData[0]['overtimes'] : 0,				'yearfulltimes'      => !empty($yearData) ? $yearData[count($yearData)-1]['overtimes'] - $yearData[0]['overtimes'] : 0,				'updatetime'         => $updatetime		);			}		// 功率	public function getCapacityDataByFilter($idArr,$date,$type){				$table = 'battery_info_log';		$table = 'statistics';		$updateTimeDef = "";				if ($type == 'day'){			$beginDate = date('Y-m-d 00:00:00',strtotime($date));			$endDate   = date('Y-m-d 23:59:59',strtotime($date));			$updateTimeDef = date('Y-m-d',strtotime($date));		} elseif ($type == 'month'){			$beginDate = date('Y-m-01 00:00:00', strtotime($date."-01 00:00:00"));			$endDate   = date('Y-m-t 23:59:59', strtotime($beginDate));			$updateTimeDef = date('Y-m',strtotime($endDate));		} else {			$beginDate = date('Y-01-01 00:00:00', strtotime($date."-01-01 00:00:00"));			$endDate   = date('Y-12-31 23:59:59', strtotime($date."-12-31 23:59:59"));			$updateTimeDef = date('Y',strtotime($endDate));		}				if (empty($idArr)) {			return array(					'daychargemaxpow'      => 0,					'daydischarmaxpow'     => 0,					'monthchargemaxpow'    => 0,					'monthdischarmaxpow'   => 0,					'yearchargemaxpow'     => 0,					'yeardischarmaxpow'    => 0,					'updatetime'           => $updateTimeDef,			);		}				$ids = implode(",", $idArr);				// $query = "SELECT lampid,MAX(daychargemaxpow) as daychargemaxpow, MAX(daydischarmaxpow) as daydischarmaxpow, MAX(updatetime) as updatetime 		// 		FROM {$table}		// 		WHERE lampid IN(".$ids.")		// 		AND updatetime>='".$beginDate."'		// 		AND updatetime<='".$endDate."' group by lampid";		$query = "SELECT lampid,MAX(dayCharMaxPower) as daychargemaxpow, MAX(dayDischarMaxPower) as daydischarmaxpow, MAX(updatetime) as updatetime 				FROM {$table}				WHERE lampid IN(".$ids.")				AND updatetime>='".$beginDate."'				AND updatetime<='".$endDate."' group by lampid";		$query = $this->db->query($query);		$dayData = $query->result_array();		$dayData = $this->format_data($dayData);				// 获取当前月份第一天 和最后一天		$beginDateMonth = date('Y-m-01 00:00:00', strtotime($beginDate));		$endDateMonth   = $endDate;				// $query = "SELECT lampid,MAX(daychargemaxpow) as monthchargemaxpow,MAX(daydischarmaxpow) AS monthdischarmaxpow		// 		  FROM {$table} WHERE lampid IN(".$ids.")		// 		  AND updatetime>='".$beginDateMonth."'		// 		  AND updatetime<='".$endDateMonth."' group by lampid";		$query = "SELECT lampid,MAX(monthCharMaxPower) as monthchargemaxpow,MAX(monthDischarMaxPower) AS monthdischarmaxpow				  FROM {$table} WHERE lampid IN(".$ids.")				  AND updatetime>='".$beginDateMonth."'				  AND updatetime<='".$endDateMonth."' group by lampid";				$query = $this->db->query($query);		$monthData = $query->result_array();		$monthData = $this->format_data($monthData);		$query = "SELECT lampid,MAX(yearCharMaxPower) as yearchargemaxpow,MAX(yearDischarMaxPower) AS yeardischarmaxpow		FROM {$table} WHERE lampid IN(".$ids.")		AND updatetime>='".date('Y-01-01 00:00:00',strtotime($beginDate))."'		AND updatetime<='".$endDate."' group by lampid";				$query = $this->db->query($query);		$yearData = $query->result_array();		$yearData = $this->format_data($yearData);		$temp = array();		foreach ($idArr as $value) {			if ($type == 'day'){				$updatetime = isset($dayData[$value]['updatetime']) && !empty($dayData[$value]['updatetime']) ? date('Y-m-d',strtotime($dayData[$value]['updatetime'])) : $updateTimeDef;			} elseif ($type == 'month'){				$updatetime = isset($dayData[$value]['updatetime']) && !empty($dayData[$value]['updatetime']) ? date('Y-m',strtotime($dayData[$value]['updatetime'])) : $updateTimeDef;			} else {				$updatetime = isset($dayData[$value]['updatetime']) && !empty($dayData[$value]['updatetime']) ? date('Y',strtotime($dayData[$value]['updatetime'])) : $updateTimeDef;			}						$temp[$value] = array(					'daychargemaxpow'           => isset($dayData[$value]['daychargemaxpow'])  ? round($dayData[$value]['daychargemaxpow'], 2) : 0,					'daydischarmaxpow'          => isset($dayData[$value]['daydischarmaxpow']) ? round($dayData[$value]['daydischarmaxpow'], 2) : 0,					'monthchargemaxpow'         => isset($monthData[$value]['monthchargemaxpow']) ? round($monthData[$value]['monthchargemaxpow'], 2) : 0,					'monthdischarmaxpow'        => isset($monthData[$value]['monthdischarmaxpow']) ? round($monthData[$value]['monthdischarmaxpow']) : 0,					'yearchargemaxpow'          => isset($yearData[$value]['yearchargemaxpow']) ? round($yearData[$value]['yearchargemaxpow'], 2) : 0,					'yeardischarmaxpow'         => isset($yearData[$value]['yeardischarmaxpow']) ? round($yearData[$value]['yeardischarmaxpow'], 2) : 0,					'updatetime'                => $updatetime			);		}		return $temp;	}		// 电压	public function getVoltageDataByFilter($idArr,$date,$type){				$table = 'battery_info_log';		$table = 'statistics';		$updateTimeDef = "";				if ($type == 'day'){			$beginDate = date('Y-m-d 00:00:00',strtotime($date));			$endDate   = date('Y-m-d 23:59:59',strtotime($date));			$updateTimeDef = date('Y-m-d',strtotime($date));		} elseif ($type == 'month'){			$beginDate = date('Y-m-01 00:00:00', strtotime($date."-01 00:00:00"));			$endDate   = date('Y-m-t 23:59:59', strtotime($beginDate));			$updateTimeDef = date('Y-m',strtotime($endDate));		} else {			$beginDate = date('Y-01-01 00:00:00', strtotime($date."-01-01 00:00:00"));			$endDate   = date('Y-12-31 23:59:59', strtotime($date."-12-31 23:59:59"));			$updateTimeDef = date('Y',strtotime($endDate));		}				if (empty($idArr)) {			return array(					'voltagedaymin'         => 0,					'voltagedaymax'         => 0,					'monthvoltagedaymin'    => 0,					'monthvoltagedaymax'    => 0,					'yearvoltagedaymin'     => 0,					'yearvoltagedaymax'     => 0,					'totalvoltagedaymin'    => 0,					'totalvoltagedaymax'    => 0,					'updatetime'            => $updateTimeDef,			);		}		$ids = implode(",", $idArr);				// $query = "SELECT lampid, MIN(voltagedaymin) as voltagedaymin,MAX(voltagedaymax) AS voltagedaymax,MAX(updatetime) AS updatetime 		// 		FROM {$table}		// 		WHERE lampid IN(".$ids.")  		// 		AND updatetime>='".$beginDate."'		// 		AND updatetime<='".$endDate."' group by lampid";		$query = "SELECT lampid, MIN(dayMinVoltage) as voltagedaymin,MAX(dayMaxVoltage) AS voltagedaymax,MAX(updatetime) AS updatetime 				FROM {$table}				WHERE lampid IN(".$ids.")  				AND updatetime>='".$beginDate."'				AND updatetime<='".$endDate."' group by lampid";				$query = $this->db->query($query);		$dayData = $query->result_array();		$dayData = $this->format_data($dayData);		// 获取当前月份第一天 和最后一天		$beginDateMonth = date('Y-m-01 00:00:00', strtotime($beginDate));		$endDateMonth   = $endDate;				// $query = "SELECT lampid, MIN(voltagedaymin) as monthvoltagedaymin,MAX(voltagedaymax) AS monthvoltagedaymax		// 		  FROM {$table} WHERE lampid IN(".$ids.")		// 		  AND updatetime>='".$beginDateMonth."'		// 		  AND updatetime<='".$endDateMonth."' group by lampid";		$query = "SELECT lampid, MIN(monthMinVoltage) as monthvoltagedaymin,MAX(monthMaxVoltage) AS monthvoltagedaymax				  FROM {$table} WHERE lampid IN(".$ids.")				  AND updatetime>='".$beginDateMonth."'				  AND updatetime<='".$endDateMonth."' group by lampid";				$query = $this->db->query($query);		$monthData = $query->result_array();		$monthData = $this->format_data($monthData);		// $query = "SELECT lampid,MIN(voltagedaymin) as yearvoltagedaymin,MAX(voltagedaymax) AS yearvoltagedaymax		// FROM {$table} WHERE  lampid IN(".$ids.")		// AND updatetime>='".date('Y-01-01 00:00:00',strtotime($beginDate))."'		// AND updatetime<='".$endDate."' group by lampid";		$query = "SELECT lampid,MIN(yearMinVoltage) as yearvoltagedaymin,MAX(yearMaxVoltage) AS yearvoltagedaymax		FROM {$table} WHERE  lampid IN(".$ids.")		AND updatetime>='".date('Y-01-01 00:00:00',strtotime($beginDate))."'		AND updatetime<='".$endDate."' group by lampid";		$query = $this->db->query($query);		$yearData = $query->result_array();		$yearData = $this->format_data($yearData);		// 历史		// $query = "SELECT lampid,MAX(voltagedaymin) as totalvoltagedaymin,MAX(voltagedaymax) AS totalvoltagedaymax		// FROM battery_info_log WHERE lampid IN(".$ids.") AND updatetime<='".$endDate."' group by lampid";		// $query = $this->db->query($query);		// $totalData = $query->result_array();		// $totalData = $this->format_data($totalData);		$temp = array();		foreach ($idArr as $key) {			if ($type == 'day'){				$updatetime = isset($dayData[$key]['updatetime']) && !empty($dayData[$key]['updatetime']) ? date('Y-m-d',strtotime($dayData[$key]['updatetime'])) : $updateTimeDef;			} elseif ($type == 'month'){				$updatetime = isset($dayData[$key]['updatetime']) && !empty($dayData[$key]['updatetime']) ? date('Y-m',strtotime($dayData[$key]['updatetime'])) : $updateTimeDef;			} else {				$updatetime = isset($dayData[$key]['updatetime']) && !empty($dayData[$key]['updatetime']) ? date('Y',strtotime($dayData[$key]['updatetime'])) : $updateTimeDef;			}						$temp[$key] = array(					'voltagedaymin'              => isset($dayData[$key]['voltagedaymin'])  ? round($dayData[$key]['voltagedaymin'],2) : 0,					'voltagedaymax'              => isset($dayData[$key]['voltagedaymax']) ? round($dayData[$key]['voltagedaymax'],2) : 0,					'monthvoltagedaymin'         => isset($monthData[$key]['monthvoltagedaymin']) ? round($monthData[$key]['monthvoltagedaymin'],2) : 0,					'monthvoltagedaymax'         => isset($monthData[$key]['monthvoltagedaymax']) ? round($monthData[$key]['monthvoltagedaymax'],2) : 0,					'yearvoltagedaymin'          => isset($yearData[$key]['yearvoltagedaymin']) ? round($yearData[$key]['yearvoltagedaymin'],2) : 0,					'yearvoltagedaymax'          => isset($yearData[$key]['yearvoltagedaymax']) ? round($yearData[$key]['yearvoltagedaymax'],2) : 0,					'totalvoltagedaymin'         => isset($totalData[$key]['totalvoltagedaymin']) ? round($totalData[$key]['totalvoltagedaymin'],2) : 0,					'totalvoltagedaymax'         => isset($totalData[$key]['totalvoltagedaymax']) ? round($totalData[$key]['totalvoltagedaymax'],2) : 0,					'updatetime'                 => $updatetime			);		}		return $temp;	}	private function format_data($data){		$temp = array();		foreach ($data as $v) {			$temp[$v['lampid']] = $v;		}		return $temp;	}		// 电流	public function getCurrentDataByFilter($idArr,$date,$type){				$table = 'battery_info_log';		$table = 'statistics';				$updateTimeDef = "";				if ($type == 'day'){			$beginDate = date('Y-m-d 00:00:00',strtotime($date));			$endDate   = date('Y-m-d 23:59:59',strtotime($date));			$updateTimeDef = date('Y-m-d',strtotime($date));		} elseif ($type == 'month'){			$beginDate = date('Y-m-01 00:00:00', strtotime($date."-01 00:00:00"));			$endDate   = date('Y-m-t 23:59:59', strtotime($beginDate));			$updateTimeDef = date('Y-m',strtotime($endDate));		} else {			$beginDate = date('Y-01-01 00:00:00', strtotime($date."-01-01 00:00:00"));			$endDate   = date('Y-12-31 23:59:59', strtotime($date."-12-31 23:59:59"));			$updateTimeDef = date('Y',strtotime($endDate));		}				if (empty($idArr)) {			return array(					'daycharmaxcurrent'       => 0,					'daydischarmaxcurrent'    => 0,					'monthcharmaxcurrent'     => 0,					'monthdischarmaxcurrent'  => 0,					'yearcharmaxcurrent'      => 0,					'yeardischarmaxcurrent'   => 0,					'updatetime'              => $updateTimeDef,			);		}				$ids = implode(",", $idArr);				// $query = "SELECT lampid,MAX(daycharmaxcurrent) as daycharmaxcurrent,MAX(daydischarmaxcurrent) as daydischarmaxcurrent,MAX(updatetime) as updatetime 		// 		FROM {$table}		// 		WHERE lampid IN(".$ids.")		// 		AND updatetime>='".$beginDate."'		// 		AND updatetime<='".$endDate."' group by lampid";		$query = "SELECT lampid,MAX(dayCharMaxCurr) as daycharmaxcurrent,MAX(dayDischarMaxCurr) as daydischarmaxcurrent,MAX(updatetime) as updatetime 				FROM {$table}				WHERE lampid IN(".$ids.")				AND updatetime>='".$beginDate."'				AND updatetime<='".$endDate."' group by lampid";				$query = $this->db->query($query);		$dayData = $query->result_array();		$dayData = $this->format_data($dayData);		// 获取当前月份第一天 和最后一天		$beginDateMonth = date('Y-m-01 00:00:00', strtotime($beginDate));		$endDateMonth   = $endDate;				// $query = "SELECT lampid,MAX(daycharmaxcurrent) as monthcharmaxcurrent,MAX(daydischarmaxcurrent) AS monthdischarmaxcurrent		// 		  FROM {$table} WHERE lampid IN(".$ids.")		// 		  AND updatetime>='".$beginDateMonth."'		// 		  AND updatetime<='".$endDateMonth."' group by lampid";		$query = "SELECT lampid,MAX(monthCharMaxCurr) as monthcharmaxcurrent,MAX(monthDischarMaxCurr) AS monthdischarmaxcurrent				  FROM {$table} WHERE lampid IN(".$ids.")				  AND updatetime>='".$beginDateMonth."'				  AND updatetime<='".$endDateMonth."' group by lampid";				$query = $this->db->query($query);		$monthData = $query->result_array();		$monthData = $this->format_data($monthData);				// $query = "SELECT lampid,MAX(daycharmaxcurrent) as yearcharmaxcurrent,MAX(daydischarmaxcurrent) AS yeardischarmaxcurrent		// FROM {$table} WHERE  lampid IN(".$ids.")		// AND updatetime>='".date('Y-01-01 00:00:00',strtotime($beginDate))."'		// AND updatetime<='".$endDate."' group by lampid";		$query = "SELECT lampid,MAX(yearCharMaxCurr) as yearcharmaxcurrent,MAX(yearDischarMaxCurr) AS yeardischarmaxcurrent		FROM {$table} WHERE  lampid IN(".$ids.")		AND updatetime>='".date('Y-01-01 00:00:00',strtotime($beginDate))."'		AND updatetime<='".$endDate."' group by lampid";				$query = $this->db->query($query);		$yearData = $query->result_array();		$yearData = $this->format_data($yearData);		$temp = array();		foreach ($idArr as $value) {			if ($type == 'day'){				$updatetime = isset($dayData[$value]['updatetime']) && !empty($dayData[$value]['updatetime']) ? date('Y-m-d',strtotime($dayData[$value]['updatetime'])) : $updateTimeDef;			} elseif ($type == 'month'){				$updatetime = isset($dayData[$value]['updatetime']) && !empty($dayData[$value]['updatetime']) ? date('Y-m',strtotime($dayData[$value]['updatetime'])) : $updateTimeDef;			} else {				$updatetime = isset($dayData[$value]['updatetime']) && !empty($dayData[$value]['updatetime']) ? date('Y',strtotime($dayData[$value]['updatetime'])) : $updateTimeDef;			}						$temp[$value] = array(					'daycharmaxcurrent'              => isset($dayData[$value]['daycharmaxcurrent'])  ? round($dayData[$value]['daycharmaxcurrent'],2) : 0,					'daydischarmaxcurrent'           => isset($dayData[$value]['daydischarmaxcurrent']) ? round($dayData[$value]['daydischarmaxcurrent'],2) : 0,					'monthcharmaxcurrent'            => isset($monthData[$value]['monthcharmaxcurrent']) ? round($monthData[$value]['monthcharmaxcurrent'],2) : 0,					'monthdischarmaxcurrent'         => isset($monthData[$value]['monthdischarmaxcurrent']) ? round($monthData[$value]['monthdischarmaxcurrent'],2) : 0,					'yearcharmaxcurrent'             => isset($yearData[$value]['yearcharmaxcurrent']) ? round($yearData[$value]['yearcharmaxcurrent'],2) : 0,					'yeardischarmaxcurrent'          => isset($yearData[$value]['yeardischarmaxcurrent']) ? round($yearData[$value]['yeardischarmaxcurrent'],2) : 0,					'updatetime'                     => $updatetime			);		}		return $temp;	}	// 温度	public function getTemperDataByFilter($idArr,$date,$type){				$table = 'battery_info_log';		$table = 'statistics';		$updateTimeDef = "";				if ($type == 'day'){			$beginDate = date('Y-m-d 00:00:00',strtotime($date));			$endDate   = date('Y-m-d 23:59:59',strtotime($date));			$updateTimeDef = date('Y-m-d',strtotime($date));		} elseif ($type == 'month'){			$beginDate = date('Y-m-01 00:00:00', strtotime($date."-01 00:00:00"));			$endDate   = date('Y-m-t 23:59:59', strtotime($beginDate));			$updateTimeDef = date('Y-m',strtotime($endDate));		} else {			$beginDate = date('Y-01-01 00:00:00', strtotime($date."-01-01 00:00:00"));			$endDate   = date('Y-12-31 23:59:59', strtotime($date."-12-31 23:59:59"));			$updateTimeDef = date('Y',strtotime($endDate));		}				if (empty($idArr)) {			return array(					'daybattmintemper'         => 0,					'daybattmaxtemper'         => 0,					'monthbattmintemper'       => 0,					'monthbattmaxtemper'       => 0,					'yearbattmintemper'        => 0,					'yearbattmaxtemper'        => 0,					'updatetime'               => $updateTimeDef,			);		}				$ids = implode(",", $idArr);				// $query = "SELECT lampid,MIN(daybattmintemper) as daybattmintemper,MAX(daybattmaxtemper) as daybattmaxtemper,MAX(updatetime) as updatetime 		// 		FROM {$table}		// 		WHERE lampid IN(".$ids.")		// 		AND updatetime>='".$beginDate."'		// 		AND updatetime<='".$endDate."' group by lampid";		$query = "SELECT lampid,MIN(dayMinTemper) as daybattmintemper,MAX(dayMaxTemper) as daybattmaxtemper,MAX(updatetime) as updatetime 				FROM {$table}				WHERE lampid IN(".$ids.")				AND updatetime>='".$beginDate."'				AND updatetime<='".$endDate."' group by lampid";				$query = $this->db->query($query);		$dayData = $query->result_array();		$dayData = $this->format_data($dayData);				// 获取当前月份第一天 和最后一天		$beginDateMonth = date('Y-m-01 00:00:00', strtotime($beginDate));		$endDateMonth   = $endDate;				// $query = "SELECT lampid,MIN(daybattmintemper) as monthbattmintemper,MAX(daybattmaxtemper) AS monthbattmaxtemper		// 		  FROM {$table} WHERE lampid IN(".$ids.")		// 		  AND updatetime>='".$beginDateMonth."'		// 		  AND updatetime<='".$endDateMonth."' group by lampid";		$query = "SELECT lampid,MIN(monthMinTemper) as monthbattmintemper,MAX(monthMaxTemper) AS monthbattmaxtemper				  FROM {$table} WHERE lampid IN(".$ids.")				  AND updatetime>='".$beginDateMonth."'				  AND updatetime<='".$endDateMonth."' group by lampid";				$query = $this->db->query($query);		$monthData = $query->result_array();		$monthData = $this->format_data($monthData);				// $query = "SELECT lampid,MIN(daybattmintemper) as yearbattmintemper,MAX(daybattmaxtemper) AS yearbattmaxtemper		// FROM {$table} WHERE  lampid IN(".$ids.")		// AND updatetime>='".date('Y-01-01 00:00:00',strtotime($beginDate))."'		// AND updatetime<='".$endDate."' group by lampid";		$query = "SELECT lampid,MIN(yearMinTemper) as yearbattmintemper,MAX(yearMaxTemper) AS yearbattmaxtemper		FROM {$table} WHERE  lampid IN(".$ids.")		AND updatetime>='".date('Y-01-01 00:00:00',strtotime($beginDate))."'		AND updatetime<='".$endDate."' group by lampid";				$query = $this->db->query($query);		$yearData = $query->result_array();		$yearData = $this->format_data($yearData);				$temp = array();		foreach ($idArr as $value) {			if ($type == 'day'){				$updatetime = isset($dayData[$value]['updatetime']) && !empty($dayData[$value]['updatetime']) ? date('Y-m-d',strtotime($dayData[$value]['updatetime'])) : $updateTimeDef;			} elseif ($type == 'month'){				$updatetime = isset($dayData[$value]['updatetime']) && !empty($dayData[$value]['updatetime']) ? date('Y-m',strtotime($dayData[$value]['updatetime'])) : $updateTimeDef;			} else {				$updatetime = isset($dayData[$value]['updatetime']) && !empty($dayData[$value]['updatetime']) ? date('Y',strtotime($dayData[$value]['updatetime'])) : $updateTimeDef;			}						$temp[$value] = array(					'daybattmintemper'               => isset($dayData[$value]['daybattmintemper'])  ? round($dayData[$value]['daybattmintemper'],2) : 0,					'daybattmaxtemper'               => isset($dayData[$value]['daybattmaxtemper']) ? round($dayData[$value]['daybattmaxtemper'],2) : 0,					'monthbattmintemper'             => isset($monthData[$value]['monthbattmintemper']) ? round($monthData[$value]['monthbattmintemper'],2) : 0,					'monthbattmaxtemper'             => isset($monthData[$value]['monthbattmaxtemper']) ? round($monthData[$value]['monthbattmaxtemper'],2) : 0,					'yearbattmintemper'              => isset($yearData[$value]['yearbattmintemper']) ? round($yearData[$value]['yearbattmintemper'],2) : 0,					'yearbattmaxtemper'              => isset($yearData[$value]['yearbattmaxtemper']) ? round($yearData[$value]['yearbattmaxtemper'],2) : 0,					'updatetime'                     => $updatetime			);			}		return $temp;	}}
 |