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;
- }
- }
|