| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663 | 
							- <?php
 
- if (!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;
 
- 	}
 
- }
 
 
  |