|
@@ -460,12 +460,15 @@ class Report extends Base_Controller {
|
|
|
|
|
|
$page = empty($page) ? 1 : $page;
|
|
|
$count = empty($count) ? 16 : $count;
|
|
|
+ $limit = $count;
|
|
|
+ $offset = $count*($page - 1);
|
|
|
|
|
|
$type = $this->input->post('type',true);
|
|
|
if (empty($type)) $type = 'power';
|
|
|
if (!in_array($type, array('power', 'current', 'temper', 'capacity', 'voltage'))) {
|
|
|
exit(json_result('0500', $this->response['0500']));
|
|
|
}
|
|
|
+ $where = array();
|
|
|
$projectid = $this->input->post('projectid', true);
|
|
|
// 以项目为单位获取发用电量
|
|
|
if ($type == 'power' && empty($projectid)) {
|
|
@@ -491,84 +494,82 @@ class Report extends Base_Controller {
|
|
|
}else{ // 有传项目id
|
|
|
$item_ids_arr = $projectid;
|
|
|
}
|
|
|
- $fiter = array();
|
|
|
- if ($download != 1) {
|
|
|
- $fiter['page'] = $page;
|
|
|
- $fiter['count'] = $count;
|
|
|
- }
|
|
|
+
|
|
|
+ $where['L.projectid'] = $projectid;
|
|
|
|
|
|
- if (!empty($keyword)) {
|
|
|
- $fiter['keyword'] = $keyword;
|
|
|
- }
|
|
|
+ if (!empty($keyword)) $where['L.number|L.section'] = $keyword;
|
|
|
|
|
|
$section = $this->input->post('section',true);
|
|
|
- if (!empty($section)) {
|
|
|
- $fiter['section'] = $section;
|
|
|
- }
|
|
|
+ if (!empty($section)) $where['L.section'] = $section;
|
|
|
|
|
|
// 获取项目下对应的路灯列表
|
|
|
- $list = $this->Lamp_model->report_get_list_in('L.projectid', $item_ids_arr, 'L.id as id, L.number as name,P.projectname,L.projectid,L.section',$fiter);
|
|
|
- // var_dump($list);
|
|
|
- $function = 'get'.ucfirst($type).'DataByFilter';
|
|
|
- $result = array();
|
|
|
+ // $list = $this->Lamp_model->report_get_list_in('L.projectid', $item_ids_arr, 'L.id as id, L.number as name,P.projectname,L.projectid,L.section',$fiter);
|
|
|
+ // // var_dump($list);
|
|
|
+ // $function = 'get'.ucfirst($type).'DataByFilter';
|
|
|
+ // $result = array();
|
|
|
|
|
|
- $ids = array_column($list, 'id');
|
|
|
+ // $ids = array_column($list, 'id');
|
|
|
// $eleData = $this->Electric_model->$function($ids, date('Y-m-d H:i:s'),'day');
|
|
|
- $eleData = $this->Statistics_model->get_data($ids, date('Y-m-d H:i:s'),$type);
|
|
|
+ // $eleData = $this->Statistics_model->get_data($ids, date('Y-m-d H:i:s'),$type);
|
|
|
+ $join = array();
|
|
|
+ $join[] = ['table'=>'project as P','cond'=>'P.id = L.projectid','type'=>'left'];
|
|
|
+
|
|
|
+ $fields = 'L.id,L.number,L.section,P.projectname,L.updatetime,L.dayGeneration,L.dayConsumption,L.totalgeneration,L.totalconsumption,L.daycharmaxcurrent as dayCharMaxCurr,L.daydischarmaxcurrent as dayDischarMaxCurr,L.daybattmintemper as dayMinTemper,L.daybattmaxtemper as dayMaxTemper,L.daychargemaxpow as dayCharMaxPower,L.daydischarmaxpow as dayDischarMaxPower,L.voltagedaymin as dayMinVoltage,L.voltagedaymax as dayMaxVoltage,L.projectid';
|
|
|
+ $list = $this->Lamp_model->get_list_by_join($where, $fields,$limit, $offset, $join, 'L.number ASC,L.id ASC', NUll, 'L');
|
|
|
// 遍历路灯数组,每个路灯的历史数据
|
|
|
foreach ($list as $k=>$v) {
|
|
|
// $data = $this->Electric_model->$function(array($v['id']), date('Y-m-d H:i:s'),'day');
|
|
|
$data = [];
|
|
|
|
|
|
if ($type == 'power') {
|
|
|
- $data['daygeneration'] = empty($eleData[$v['id']]['dayGeneration']) ? 0 : round($eleData[$v['id']]['dayGeneration'],2);
|
|
|
- $data['dayconsumption'] = empty($eleData[$v['id']]['dayConsumption']) ? 0 : round($eleData[$v['id']]['dayConsumption'],2);
|
|
|
- $data['totalgeneration'] = empty($eleData[$v['id']]['totalGeneration']) ? 0 : round($eleData[$v['id']]['totalGeneration'],2);
|
|
|
- $data['totalconsumption'] = empty($eleData[$v['id']]['totalConsumption']) ? 0 : round($eleData[$v['id']]['totalConsumption'],2);
|
|
|
- $data['monthgeneration'] = empty($eleData[$v['id']]['monthGeneration']) ? 0 : round($eleData[$v['id']]['monthGeneration'],2);
|
|
|
- $data['monthconsumption'] = empty($eleData[$v['id']]['monthConsumption']) ? 0 : round($eleData[$v['id']]['monthConsumption'],2);
|
|
|
- $data['yeargeneration'] = empty($eleData[$v['id']]['yearGeneration']) ? 0 : round($eleData[$v['id']]['yearGeneration'],2);
|
|
|
- $data['yearconsumption'] = empty($eleData[$v['id']]['yearConsumption']) ? 0 : round(
|
|
|
- $eleData[$v['id']]['yearConsumption'],2);
|
|
|
- $v['updatetime'] = empty($eleData[$v['id']]['updatetime']) ? '' : $eleData[$v['id']]['updatetime'];
|
|
|
+ $data['daygeneration'] = empty($v['dayGeneration']) ? 0 : round($v['dayGeneration'],2);
|
|
|
+ $data['dayconsumption'] = empty($v['dayConsumption']) ? 0 : round($v['dayConsumption'],2);
|
|
|
+ $data['totalgeneration'] = empty($v['totalGeneration']) ? 0 : round($v['totalGeneration'],2);
|
|
|
+ $data['totalconsumption'] = empty($v['totalConsumption']) ? 0 : round($v['totalConsumption'],2);
|
|
|
+ $data['monthgeneration'] = empty($v['monthGeneration']) ? 0 : round($v['monthGeneration'],2);
|
|
|
+ $data['monthconsumption'] = empty($v['monthConsumption']) ? 0 : round($v['monthConsumption'],2);
|
|
|
+ $data['yeargeneration'] = empty($v['yearGeneration']) ? 0 : round($v['yearGeneration'],2);
|
|
|
+ $data['yearconsumption'] = empty($v['yearConsumption']) ? 0 : round(
|
|
|
+ $v['yearConsumption'],2);
|
|
|
+ $v['updatetime'] = empty($v['updatetime']) ? '' : $v['updatetime'];
|
|
|
}elseif ($type == 'current') {
|
|
|
- $data['daycharmaxcurrent'] = empty($eleData[$v['id']]['dayCharMaxCurr']) ? 0 : round($eleData[$v['id']]['dayCharMaxCurr'],2);
|
|
|
- $data['daydischarmaxcurrent'] = empty($eleData[$v['id']]['dayDischarMaxCurr']) ? 0 : round($eleData[$v['id']]['dayDischarMaxCurr'],2);
|
|
|
- $data['monthcharmaxcurrent'] = empty($eleData[$v['id']]['monthCharMaxCurr']) ? 0 : round($eleData[$v['id']]['monthCharMaxCurr'],2);
|
|
|
- $data['monthdischarmaxcurrent'] = empty($eleData[$v['id']]['monthDischarMaxCurr']) ? 0 : round($eleData[$v['id']]['monthDischarMaxCurr'],2);
|
|
|
- $data['yearcharmaxcurrent'] = empty($eleData[$v['id']]['yearCharMaxCurr']) ? 0 : round($eleData[$v['id']]['yearCharMaxCurr'],2);
|
|
|
- $data['yeardischarmaxcurrent'] = empty($eleData[$v['id']]['yearDischarMaxCurr']) ? 0 : round(
|
|
|
- $eleData[$v['id']]['yearDischarMaxCurr'],2);
|
|
|
- $v['updatetime'] = empty($eleData[$v['id']]['updatetime']) ? '' : $eleData[$v['id']]['updatetime'];
|
|
|
+ $data['daycharmaxcurrent'] = empty($v['dayCharMaxCurr']) ? 0 : round($v['dayCharMaxCurr'],2);
|
|
|
+ $data['daydischarmaxcurrent'] = empty($v['dayDischarMaxCurr']) ? 0 : round($v['dayDischarMaxCurr'],2);
|
|
|
+ $data['monthcharmaxcurrent'] = empty($v['monthCharMaxCurr']) ? 0 : round($v['monthCharMaxCurr'],2);
|
|
|
+ $data['monthdischarmaxcurrent'] = empty($v['monthDischarMaxCurr']) ? 0 : round($v['monthDischarMaxCurr'],2);
|
|
|
+ $data['yearcharmaxcurrent'] = empty($v['yearCharMaxCurr']) ? 0 : round($v['yearCharMaxCurr'],2);
|
|
|
+ $data['yeardischarmaxcurrent'] = empty($v['yearDischarMaxCurr']) ? 0 : round(
|
|
|
+ $v['yearDischarMaxCurr'],2);
|
|
|
+ $v['updatetime'] = empty($v['updatetime']) ? '' : $v['updatetime'];
|
|
|
}elseif ($type == 'temper') {
|
|
|
- $data['daybattmintemper'] = empty($eleData[$v['id']]['dayMinTemper']) ? 0 : round($eleData[$v['id']]['dayMinTemper'],1);
|
|
|
- $data['daybattmaxtemper'] = empty($eleData[$v['id']]['dayMaxTemper']) ? 0 : round($eleData[$v['id']]['dayMaxTemper'],1);
|
|
|
- $data['monthbattmintemper'] = empty($eleData[$v['id']]['monthMinTemper']) ? 0 : round($eleData[$v['id']]['monthMinTemper'],1);
|
|
|
- $data['monthbattmaxtemper'] = empty($eleData[$v['id']]['monthMaxTemper']) ? 0 : round($eleData[$v['id']]['monthMaxTemper'],1);
|
|
|
- $data['yearbattmintemper'] = empty($eleData[$v['id']]['yearMinTemper']) ? 0 : round($eleData[$v['id']]['yearMinTemper'],1);
|
|
|
- $data['yearbattmaxtemper'] = empty($eleData[$v['id']]['yearMaxTemper']) ? 0 : round(
|
|
|
- $eleData[$v['id']]['yearMaxTemper'],1);
|
|
|
- $v['updatetime'] = empty($eleData[$v['id']]['updatetime']) ? '' : $eleData[$v['id']]['updatetime'];
|
|
|
+ $data['daybattmintemper'] = empty($v['dayMinTemper']) ? 0 : round($v['dayMinTemper'],1);
|
|
|
+ $data['daybattmaxtemper'] = empty($v['dayMaxTemper']) ? 0 : round($v['dayMaxTemper'],1);
|
|
|
+ $data['monthbattmintemper'] = empty($v['monthMinTemper']) ? 0 : round($v['monthMinTemper'],1);
|
|
|
+ $data['monthbattmaxtemper'] = empty($v['monthMaxTemper']) ? 0 : round($v['monthMaxTemper'],1);
|
|
|
+ $data['yearbattmintemper'] = empty($v['yearMinTemper']) ? 0 : round($v['yearMinTemper'],1);
|
|
|
+ $data['yearbattmaxtemper'] = empty($v['yearMaxTemper']) ? 0 : round(
|
|
|
+ $v['yearMaxTemper'],1);
|
|
|
+ $v['updatetime'] = empty($v['updatetime']) ? '' : $v['updatetime'];
|
|
|
}elseif ($type == 'capacity') {
|
|
|
- $data['daychargemaxpow'] = empty($eleData[$v['id']]['dayCharMaxPower']) ? 0 : round($eleData[$v['id']]['dayCharMaxPower'],2);
|
|
|
- $data['daydischarmaxpow'] = empty($eleData[$v['id']]['dayDischarMaxPower']) ? 0 : round($eleData[$v['id']]['dayDischarMaxPower'],2);
|
|
|
- $data['monthchargemaxpow'] = empty($eleData[$v['id']]['monthCharMaxPower']) ? 0 : round($eleData[$v['id']]['monthCharMaxPower'],2);
|
|
|
- $data['monthdischarmaxpow'] = empty($eleData[$v['id']]['monthDischarMaxPower']) ? 0 : round($eleData[$v['id']]['monthDischarMaxPower'],2);
|
|
|
- $data['yearchargemaxpow'] = empty($eleData[$v['id']]['yearCharMaxPower']) ? 0 : round($eleData[$v['id']]['yearCharMaxPower'],2);
|
|
|
- $data['yeardischarmaxpow'] = empty($eleData[$v['id']]['yearDischarMaxPower']) ? 0 : round($eleData[$v['id']]['yearDischarMaxPower'],2);
|
|
|
- $v['updatetime'] = empty($eleData[$v['id']]['updatetime']) ? '' : $eleData[$v['id']]['updatetime'];
|
|
|
+ $data['daychargemaxpow'] = empty($v['dayCharMaxPower']) ? 0 : round($v['dayCharMaxPower'],2);
|
|
|
+ $data['daydischarmaxpow'] = empty($v['dayDischarMaxPower']) ? 0 : round($v['dayDischarMaxPower'],2);
|
|
|
+ $data['monthchargemaxpow'] = empty($v['monthCharMaxPower']) ? 0 : round($v['monthCharMaxPower'],2);
|
|
|
+ $data['monthdischarmaxpow'] = empty($v['monthDischarMaxPower']) ? 0 : round($v['monthDischarMaxPower'],2);
|
|
|
+ $data['yearchargemaxpow'] = empty($v['yearCharMaxPower']) ? 0 : round($v['yearCharMaxPower'],2);
|
|
|
+ $data['yeardischarmaxpow'] = empty($v['yearDischarMaxPower']) ? 0 : round($v['yearDischarMaxPower'],2);
|
|
|
+ $v['updatetime'] = empty($v['updatetime']) ? '' : $v['updatetime'];
|
|
|
}else{
|
|
|
- $data['voltagedaymin'] = empty($eleData[$v['id']]['dayMinVoltage']) ? 0 : round($eleData[$v['id']]['dayMinVoltage'],2);
|
|
|
- $data['voltagedaymax'] = empty($eleData[$v['id']]['dayMaxVoltage']) ? 0 : round($eleData[$v['id']]['dayMaxVoltage'],2);
|
|
|
- $data['monthvoltagedaymin'] = empty($eleData[$v['id']]['monthMinVoltage']) ? 0 : round($eleData[$v['id']]['monthMinVoltage'],2);
|
|
|
- $data['monthvoltagedaymax'] = empty($eleData[$v['id']]['monthMaxVoltage']) ? 0 : round($eleData[$v['id']]['monthMaxVoltage'],2);
|
|
|
- $data['yearvoltagedaymin'] = empty($eleData[$v['id']]['yearMinVoltage']) ? 0 : round($eleData[$v['id']]['yearMinVoltage'],2);
|
|
|
- $data['yearvoltagedaymax'] = empty($eleData[$v['id']]['yearMaxVoltage']) ? 0 : round($eleData[$v['id']]['yearMaxVoltage'],2);
|
|
|
- $v['updatetime'] = empty($eleData[$v['id']]['updatetime']) ? '' : $eleData[$v['id']]['updatetime'];
|
|
|
+ $data['voltagedaymin'] = empty($v['dayMinVoltage']) ? 0 : round($v['dayMinVoltage'],2);
|
|
|
+ $data['voltagedaymax'] = empty($v['dayMaxVoltage']) ? 0 : round($v['dayMaxVoltage'],2);
|
|
|
+ $data['monthvoltagedaymin'] = empty($v['monthMinVoltage']) ? 0 : round($v['monthMinVoltage'],2);
|
|
|
+ $data['monthvoltagedaymax'] = empty($v['monthMaxVoltage']) ? 0 : round($v['monthMaxVoltage'],2);
|
|
|
+ $data['yearvoltagedaymin'] = empty($v['yearMinVoltage']) ? 0 : round($v['yearMinVoltage'],2);
|
|
|
+ $data['yearvoltagedaymax'] = empty($v['yearMaxVoltage']) ? 0 : round($v['yearMaxVoltage'],2);
|
|
|
+ $v['updatetime'] = empty($v['updatetime']) ? '' : $v['updatetime'];
|
|
|
}
|
|
|
// $data = $eleData[$v['id']];
|
|
|
$data['id'] = $v['id'];
|
|
|
- $data['number'] = $v['name'];
|
|
|
+ $data['number'] = $v['number'];
|
|
|
if (!empty($v['updatetime'])) {
|
|
|
$timezone = $this->Project_model->get_timezone_by_projectid($v['projectid']);
|
|
|
$v['updatetime'] = date_change($v['updatetime'],8,$timezone['value']);
|
|
@@ -582,10 +583,11 @@ class Report extends Base_Controller {
|
|
|
$this->download($type,$result);
|
|
|
}
|
|
|
|
|
|
- unset($fiter['page']);
|
|
|
- unset($fiter['count']);
|
|
|
- $res = $this->Lamp_model->get_total('L.projectid', $item_ids_arr, 'L.id',$fiter);
|
|
|
- $total = ceil($res/$count);
|
|
|
+ // unset($fiter['page']);
|
|
|
+ // unset($fiter['count']);
|
|
|
+ // $res = $this->Lamp_model->get_total('L.projectid', $item_ids_arr, 'L.id',$fiter);
|
|
|
+ $total = $this->Lamp_model->get_list_by_join($where, 'count(*) as total',null, null, $join, 'L.number ASC,L.id ASC', NUll, 'L');
|
|
|
+ $total = ceil($total[0]['total']/$count);
|
|
|
|
|
|
exit(json_result('0000',$this->response['0000'],array('list'=>$result,'total'=>$total)));
|
|
|
}
|