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