wzh 5 yıl önce
ebeveyn
işleme
003cbc1662

+ 6 - 17
api/application/controllers/Lampcontrol.php

@@ -27,25 +27,14 @@ class Lampcontrol extends Base_Controller {
     public function get() {
         $userid = $this->get_user_info('id');
         $role = $this->get_user_info('role');
-        $companyid = $this->get_user_info('companyid');
+        $company = $this->input->post('company',true);
 
-        $project_id = $this->input->post('project_id', true);
+        $project_id = intval($this->input->post('project_id', true));
+        if (empty($project_id)) exit(json_result('0007',$this->response['0007']));
         $fields = $this->input->post('fields', true);
         $field1 = $this->input->post('field1', true);
-        $project_id = intval($project_id);
-        $condition = array();
-        $pid_arr = array();
-        $timezone = null;
-        // 获取项目id
-        if ($project_id > 0) {
-            $pid_arr = $project_id;
-            $timezone = $this->Project_model->get_timezone_by_projectid($project_id);
-        }else{
-            $project_data = $this->Project_model->getMultiData($condition, 'P.id', $role, $companyid, $userid);
-            foreach ($project_data as $key => $value) {
-                $pid_arr[] = $value['id'];
-            }
-        }
+        $pid_arr = $project_id;
+        $timezone = $this->Project_model->get_timezone_by_projectid($project_id);
 
         $filter = array();
         $network_id = $this->input->post('network_id', true);
@@ -113,7 +102,7 @@ class Lampcontrol extends Base_Controller {
                 unset($filter['count']);
                 unset($filter['page']);
             }
-            $data['lamps'] = !empty($pid_arr) ? $this->Lamp_model->get_list_in('L.projectid', $pid_arr, $fields, $filter) : array();
+            $data['lamps'] = $this->Lamp_model->get_list_in('L.projectid', $pid_arr, $fields, $filter);
             // var_dump(microtime());
             $indexArr = [2=>'16',3=>'32',4=>'48',5=>'64'];
             if (empty($version)) {

+ 169 - 0
api/application/helpers/function_helper.php

@@ -762,5 +762,174 @@ function set_number($n){
     return substr($res, 1);
 }
 
+function get_fields_by_type($fileds,$type){
+    // 系统默认
+    $data = array(
+        'number' => array('name'=>'路灯编号','enname'=>'Lamp number'),
+        'section' => array('name'=>'路段','enname'=>'Road'),
+        'lampstatus' => array('name'=>'路灯状态','enname'=>'Lamp status'),
+        'status' => array('name'=>'信号状态','enname'=>'Network status'),
+        'updatetime' => array('name'=>'更新时间','enname'=>'Update time'),
+        'lighteness' => array('name'=>'路灯亮度(%)','enname'=>'Brightness(%)'),
+        'address' => array('name'=>'无线模块地址','enname'=>'Wireless module address'),
+        'lamppower' => array('name'=>'路灯功率(W)','enname'=>'Lamp power(W)'),
+        'chargestage' => array('name'=>'蓄电池充电阶段','enname'=>'Charging stage'),
+        'battvoltage' => array('name'=>'蓄电池电压(V)','enname'=>'Battery voltage(V)'),
+        'overtimes' => array('name'=>'蓄电池总过放次数','enname'=>'Over discharge times'),
+        'solarpower' => array('name'=>'太阳能板功率(W)','enname'=>'Solar panel power(W)'),
+        'isfaulted' => array('name'=>'是否故障','enname'=>'Fault'),
+        'id' => array('name'=>'路灯id','enname'=>'Lamp ID'),
+        'networkname' => array('name'=>'网络名称','enname'=>'Network name'),
+        'projectname' => array('name'=>'项目名称','enname'=>'Project name'),
+        'longitude' => array('name'=>'经度','enname'=>'Longitude'),
+        'latitude' => array('name'=>'纬度','enname'=>'Latitude'),
+        'simid' => array('name'=>'sim卡号','enname'=>'SIM card number'),
+        'packageSurplus' => array('name'=>'套餐剩余','enname'=>'Package surplus'),
+        'poleheight' => array('name'=>'灯杆高度(m)','enname'=>'Lamp-post length(m)'),
+        'polediameter' => array('name'=>'灯杆直径(m)','enname'=>'Lamp-post diameter(m)'),
+        'polematerial' => array('name'=>'灯杆材质','enname'=>'Lamp-post materials'),
+        'lighttype' => array('name'=>'灯具类型','enname'=>'Light type'),
+        'lamptype' => array('name'=>'路灯类型','enname'=>'Lamp type'),
+        'boardtype' => array('name'=>'太阳能板类型','enname'=>'Solar panel type'),
+        'boardpower' => array('name'=>'太阳能板功率(W)','enname'=>'Solar panel power(W)'),
+        'batterytype' => array('name'=>'蓄电池类型','enname'=>'Battery type'),
+        'batteryah' => array('name'=>'蓄电池AH数(ah)','enname'=>'Battery capacity(ah)'),
+        'loadpower' => array('name'=>'负载功率(W)','enname'=>'Load power(W)'),
+        'electricleft' => array('name'=>'蓄电池剩余电量','enname'=>'Remaining battery capacity(Ah)'),
+        'lampvoltage' => array('name'=>'路灯电压(V)','enname'=>'Lamp voltage(V)'),
+        'lampcurrent' => array('name'=>'路灯电流(A)','enname'=>'Lamp current(A)'),
+        'temper' => array('name'=>'灯头温度(℃)','enname'=>'Lamp temperature(℃)'),
+        'solarvoltage' => array('name'=>'太阳能板电压(V)','enname'=>'Solar panel voltage(V)'),
+        'solarcurrent' => array('name'=>'太阳能板电流(A)','enname'=>'Solar panel current(A)'),
+        'battstatus' => array('name'=>'蓄电池状态','enname'=>'Battery status'),
+        'chargecurrent' => array('name'=>'蓄电池充电电流(A)','enname'=>'Charging current(A)'),
+        'discharcurrent' => array('name'=>'蓄电池放电电流(A)','enname'=>'Discharging current(A)'),
+        'chargepower' => array('name'=>'蓄电池充电功率(w)','enname'=>'Charging power(w)'),
+        'dischargepower' => array('name'=>'蓄电池放电功率(w)','enname'=>'Discharging power(w)'),
+        'batttemper' => array('name'=>'蓄电池表面温度(℃)','enname'=>'Battery surface temperature(℃)'),
+        'electrictotal' => array('name'=>'蓄电池总电量','enname'=>'Total battery capacity(Ah)'),
+        'electricSOC' => array('name'=>'蓄电池电量SOC(%)','enname'=>'Battery SOC(%)'),
+        'voltagedaymin' => array('name'=>'当天最低电压(V)','enname'=>'Minimum voltage(V)'),
+        'voltagedaymax' => array('name'=>'当天最高电压(V)','enname'=>'Highest voltage(V)'),
+        'daychargeah' => array('name'=>'当天充电安时数(ah)','enname'=>'Charging AH(ah)'),
+        'daydischarah' => array('name'=>'当天放电安时数(ah)','enname'=>'Discharging AH(ah)'),
+        'daychargemaxpow' => array('name'=>'当天充电最大功率(W)','enname'=>'Charging max-power(W)'),
+        'daydischarmaxpow' => array('name'=>'当天放电最大功率(W)','enname'=>'Discharging max-power(W)'),
+        'daychargemincurrent' => array('name'=>'当天灯亮时间(hh:mm)','enname'=>'Turn-on duration'),
+        'daycharmaxcurrent' => array('name'=>'当天充电最大电流(A)','enname'=>'Highest charging current(A)'),
+        'daydischargemincurrent' => array('name'=>'当天充电时间(hh:mm)','enname'=>'Charging duration'),
+        'daydischarmaxcurrent' => array('name'=>'当天放电最大电流(A)','enname'=>'Highest discharging current(A)'),
+        'daybattmintemper' => array('name'=>'当天蓄电池最低温度(℃)','enname'=>'Battery min-temperature(℃)'),
+        'daybattmaxtemper' => array('name'=>'当天蓄电池最高温度(℃)','enname'=>'Battery max-temperature(℃)'),
+        'daygeneration' => array('name'=>'当天发电量(W)','enname'=>'Power generation(W)'),
+        'dayconsumption' => array('name'=>'当天用电量(W)','enname'=>'Power consumption(W)'),
+        'totalgeneration' => array('name'=>'累计发电量(W)','enname'=>'Cumulative power generation(W)'),
+        'totalconsumption' => array('name'=>'累计用电量(W)','enname'=>'Cumulative power consumption(W)'),
+        'sysvoltage' => array('name'=>'系统电压(V)','enname'=>'System voltage(V)'),
+        'syscurrent' => array('name'=>'系统电流(A)','enname'=>'System current(A)'),
+        'controlTemper' => array('name'=>'控制器温度(℃)','enname'=>'Controller temperature(℃)'),
+        'rundays' => array('name'=>'运行天数','enname'=>'Running duration'),
+        'fulltimes' => array('name'=>'蓄电池总充满次数','enname'=>'Full charge times'),
+        'totalchargeah' => array('name'=>'蓄电池总充电安时数(ah)','enname'=>'Total charge AH(ah)'),
+        'totaldischarah' => array('name'=>'蓄电池总放电安时数(ah)','enname'=>'Total discharge AH(ah)'),
+        'policyid' => array('name'=>'当前策略','enname'=>'Current strategy'),
+    );
+    $temp = [];
+    $filedArr = explode(',', $fileds);
+    if ($type == 0) {
+        foreach ($filedArr as $f) {
+            if (!empty($data[$f])) {
+                $temp[] = $data[$f]['name'];
+            }
+        }
+    }else{
+        foreach ($filedArr as $f) {
+            if (!empty($data[$f])) {
+                $temp[] = $data[$f]['enname'];
+            }
+        }
+    }
+    return $temp;
+}
+// 翻译故障信息
+function alarm_translate($msg){
+    $data = array(
+        '过放' => 'over release',
+        '超压' => 'overpressure',
+        '负载短路' => 'load short circuit',
+        '电池故障' => 'Error display',
+        '内部超温' => 'internal overtemperature',
+        '外部超温' => 'external overtemperature',
+        '负载开路' => 'load opening',
+        '输出电容超压保护' => 'output capacitance overvoltage protection',
+        '电池板过流' => 'panel overcurrent',
+        '电池板短路' => 'panel short circuit',
+        '电池板超压' => 'panel overpressure',
+        '充电逆流' => 'charging current',
+        '锂电池低温关闭充电' => 'the lithium battery is turned off and charged at low temperature',
+        '电池电压异常' => 'Abnormal battery voltage'
+    );
+    return isset($data[$msg]) ? $data[$msg] : 'unknown error';
+}
+
+// 新控制器翻译故障信息
+function modbus_alarm_translate($msg){
+    $data = array(
+        'BMS过充保护' => 'BMS Overcharge Protection',
+        '电池低温保护,停止充电' => 'Battery Low Temperature Protection, Stop Charging',
+        '电池反接' => 'Battery reverse connection',
+        '电容超压' => 'Capacitance overpressure',
+        '感应探头损坏' => 'Damage of induction probe',
+        '负载开路' => 'Load open circuit',
+        '蓄电池过放' => 'Battery Overdischarge',
+        '蓄电池超压' => 'Battery overvoltage',
+        '欠压警告' => 'Undervoltage warning',
+        '负载短路' => 'Load short circuit',
+        '负载功率过大或负载过流' => 'Excessive Load Power or Overcurrent',
+        '控制器温度过高' => 'Controller temperature is too high',
+        '外部环境温度过高' => 'External ambient temperature is too high',
+        '光伏输入功率过大' => 'Excessive input power of photovoltaic',
+        '光伏输入端短路' => 'Photovoltaic Input Short Circuit',
+        '光伏输入端超压' => 'Photovoltaic Input Overvoltage',
+        '太阳板逆流' => 'Solar plate countercurrent',
+        '太阳板工作点超压' => 'Operating point overpressure of solar panel',
+        '太阳板反接' => 'Solar Plate Reverse Connection'
+    );
+    return isset($data[$msg]) ? $data[$msg] : 'unknown error';
+}
+
+function alarm_translate_ch($msg){
+    $data = array(
+        'over release' => '过放',
+        'overpressure' => '超压',
+        'load short circuit' => '负载短路',
+        'battery failure' => '电池故障',
+        'internal overtemperature' => '内部超温',
+        'external overtemperature' => '外部超温',
+        'load opening' => '负载开路',
+        'output capacitance overvoltage protection' => '输出电容超压保护',
+        'panel overcurrent' => '电池板过流',
+        'panel short circuit' => '电池板短路',
+        'panel overpressure' => '电池板超压',
+        'charging current' => '充电逆流',
+        'the lithium battery is turned off and charged at low temperature' => '锂电池低温关闭充电',
+        'BMS Overcharge Protection'=>'BMS过充保护',
+        'Battery Low Temperature Protection, Stop Charging'=>'电池低温保护,停止充电',
+        'Battery reverse connection'=>'电池反接',
+        'Capacitance overpressure'=>'电容超压',
+        'Damage of induction probe'=>'感应探头损坏',
+        'Undervoltage warning'=>'欠压警告',
+        'Excessive Load Power or Overcurrent'=>'负载功率过大或负载过流',
+        'Controller temperature is too high'=>'控制器温度过高',
+        'External ambient temperature is too high'=>'外部环境温度过高',
+        'Excessive input power of photovoltaic'=>'光伏输入功率过大',
+        'Photovoltaic Input Short Circuit'=>'光伏输入端短路',
+        'Photovoltaic Input Overvoltage'=>'光伏输入端超压',
+        'Solar plate countercurrent'=>'太阳板逆流',
+        'Operating point overpressure of solar panel'=>'太阳板工作点超压',
+        'Solar Plate Reverse Connection'=>'太阳板反接',
+    );
+    return isset($data[$msg]) ? $data[$msg] : '';
+}
 
 ?>

+ 2 - 1
api/application/models/Project_model.php

@@ -11,7 +11,8 @@ class Project_model extends Base_model {
 
 	// 通过项目来获取时区
 	public function get_timezone_by_projectid($id){
-		$sql = "select T.value FROM {$this->table} as P left join timezone as T on P.timezone = T.id where P.id = {$id}";
+		// $sql = "select T.value FROM {$this->table} as P left join timezone as T on P.timezone = T.id where P.id = {$id}";
+		$sql = "select G.timezone as value FROM {$this->table} as P left join global_location as G on P.cityid = G.id where P.id = {$id}";
 		return $this->db->query($sql)->row_array();
 	}