tongshanglei 2 年 前
コミット
fb34e72aea
共有4 個のファイルを変更した62 個の追加13 個の削除を含む
  1. 13 4
      app/common.php
  2. 42 6
      catch/device/controller/Station.php
  3. 2 0
      catch/device/route.php
  4. 5 3
      catch/map/controller/RouteMap.php

+ 13 - 4
app/common.php

@@ -1259,7 +1259,7 @@ use PDO;
      * @time 2021年05月18日 10:15
      * @param Request $request 
      */
-    function queryOracleSelect($tableName,$cond){
+    function queryOracleSelect($tableName,$cond,$field='*'){
         $conn = null;
         if(!isset($cond['page'])){
             $cond['page']=1;
@@ -1280,8 +1280,10 @@ use PDO;
         $end=$cond['page']*$cond['limit'];
 
         $whereStr=buildQueryCond($cond);
-        
-        $sql = 'SELECT * FROM ( SELECT a.*, ROWNUM RN FROM (SELECT * FROM '.$tableName.' '.$whereStr.' ORDER BY ID DESC) a WHERE ROWNUM <='.$end.' ) WHERE RN >='. $start;
+        // SELECT * FROM ( SELECT a.*,to_char(a.UPDATE_DATE,'yyyy-mm-dd hh24:mi:ss') UPDATE_TIME,ROWNUM RN FROM (SELECT * FROM DSSC2.ADM_DEV  ORDER BY ID DESC) a  WHERE ROWNUM <=10 ) WHERE RN >=0
+
+        $sql = 'SELECT * FROM ( SELECT '.$field.',ROWNUM RN FROM (SELECT * FROM '.$tableName.' '.$whereStr.' ORDER BY ID DESC) a WHERE ROWNUM <='.$end.' ) WHERE RN >='. $start;
+        // var_dump($sql); 
         $res = $conn -> query($sql);
         $rows = $res -> fetchAll(PDO::FETCH_ASSOC);
         if ($conn){
@@ -1337,15 +1339,16 @@ use PDO;
         
         $conn = new PDO("oci:dbname=//".$host.":".$port."/".$instance_name,$username,$password);// PDO方式
         $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+        // var_dump($cond);
        
         $whereStr=buildQueryCond($cond);
         $countQuery='SELECT count(*) as count FROM  '.$tableName.' '.$whereStr;
+        // var_dump($countQuery);
         $countRes= $conn -> query($countQuery)->fetch(PDO::FETCH_ASSOC);
 
         if ($conn){
             $conn = null;
         }
-        // $response=[];
         return (int)$countRes['COUNT'];
     }
     function buildQueryCond($cond){
@@ -1360,6 +1363,12 @@ use PDO;
                     }else{
                         $whereStr .=' AND '.$key.' '.$val[0].' \'%'.$val[1].'%\'';
                     }
+                }else if($val[0]=='timeRange'){
+                    if($whereStr==''){
+                        $whereStr .='WHERE '.$key.' >= to_date(\''.$val[1].'\', \'yyyy-mm-dd hh24:mi:ss\') AND '.$key.' <= to_date(\''.$val[2].'\', \'yyyy-mm-dd hh24:mi:ss\')';
+                    }else{
+                        $whereStr .=' AND '.$key.' >= to_date(\''.$val[1].'\', \'yyyy-mm-dd hh24:mi:ss\') AND '.$key.' <= to_date(\''.$val[2].'\', \'yyyy-mm-dd hh24:mi:ss\')';
+                    }
                 }else{
                     if($whereStr==''){
                         $whereStr .='WHERE '.$key.' '.$val[0].' \''.$val[1].'\'';

+ 42 - 6
catch/device/controller/Station.php

@@ -45,13 +45,14 @@ class Station extends CatchController
 
             $cond['page']=isset($param['page'])?$param['page']:1;
             $cond['limit']=isset($param['limit'])?$param['limit']:10;
-            $rows=queryOracleSelect('DSSC2.ADM_DEV',$cond);
+            $rows=queryOracleSelect('DSSC2.ADM_DEV',$cond,'a.ID,a.IS_ONLINE,a.LOGIN_NAME,a.DEVICE_CODE,a.DEVICE_NAME,a.OWNER_CODE,a.DEVICE_IP,a.DEVICE_PORT,to_char(a.UPDATE_DATE,\'yyyy-mm-dd hh24:mi:ss\') UPDATE_DATE');
             
             
             foreach($rows as &$val){
                 $val['DEVICE_NAME'] = mb_convert_encoding($val['DEVICE_NAME'], 'UTF-8', 'GBK');
-                $val['UPDATE_DATE'] = mb_convert_encoding($val['UPDATE_DATE'], 'UTF-8', 'GBK');
-                $val['CREATE_DATE'] = mb_convert_encoding($val['CREATE_DATE'], 'UTF-8', 'GBK');
+                $val['IS_ONLINE_TEXT']=$val['IS_ONLINE']?'在线':'离线';
+                // $val['UPDATE_DATE'] = mb_convert_encoding($val['UPDATE_DATE'], 'UTF-8', 'GBK');
+                // $val['CREATE_DATE'] = mb_convert_encoding($val['CREATE_DATE'], 'UTF-8', 'GBK');
                 $findCond=[
                     'DEVICE_CODE'=>['=',$val['DEVICE_CODE']]
                 ];
@@ -62,20 +63,55 @@ class Station extends CatchController
             }
             
             $response=[
+                'code'=>10000,
+                'message'=>'查询成功',
                 'count'=>$count,
                 'data'=>$rows,
                 'current'=>isset($param['page'])?(int)$param['page']:1,
                 'limit'=>isset($param['limit'])?(int)$param['limit']:10,
             ];
-           
-            $response['code']=10000;
-            $response['message']='查询成功';
             return $response;
         // $field = $request->get('field')?:'id';
         // $order = $request->get('order')?:'desc';
         // return CatchResponse::paginate($this->stationModel->getStationList($field,$order));
     }
     
+    public function getdeviceListByStation(Request $request){
+        $params=$request->param();
+        if(!$params['station_code']){
+            return CatchResponse::success('');
+        }
+        $cond=[];
+        if($params['station_code']){
+            $cond['RF_ID']=['=',$params['station_code']];
+        }
+        $start_time = date('Y-m-d 00:00:00',time());
+        $end_time = date('Y-m-d 23:59:59',time());
+
+        if(isset($params['timeRange']) && $params['timeRange'] != ''){
+            $start_time=date('Y-m-d H:i:s',strtotime($params['timeRange'][0]));
+            $end_time=date('Y-m-d H:i:s',strtotime($params['timeRange'][1]));
+            $cond['RF_DATE']=['timeRange',$start_time,$end_time];
+        }
+        $count=queryOracleCount('DSSC2.W_DW_RF_RECORD',$cond);
+
+        $cond['page']=isset($param['page'])?$param['page']:1;
+        $cond['limit']=isset($param['limit'])?$param['limit']:10;
+        $rows=queryOracleSelect('DSSC2.W_DW_RF_RECORD',$cond,'a.RF_FLAGID,a.RF_STAT,to_char(a.RF_DATE,\'yyyy-mm-dd hh24:mi:ss\') RF_DATE');
+        foreach($rows as &$val){
+            $val['RF_DATE'] = mb_convert_encoding($val['RF_DATE'], 'UTF-8', 'GBK');
+        }
+        $response=[
+            'code'=>10000,
+            'message'=>'查询成功',
+            'count'=>$count,
+            'data'=>$rows,
+            'current'=>isset($params['page'])?(int)$params['page']:1,
+            'limit'=>isset($params['limit'])?(int)$params['limit']:10,
+        ];
+        return $response;
+   
+    }
     /**
      * 保存信息
      * @time 2022年01月20日 10:09

+ 2 - 0
catch/device/route.php

@@ -14,6 +14,8 @@ $router->group(function () use ($router) {
 	// device路由
 	$router->resource('device', '\catchAdmin\device\controller\Device');
 	// station路由
+	$router->get('station/getdeviceListByStation','\catchAdmin\device\controller\Station@getdeviceListByStation');
+
 	$router->resource('station', '\catchAdmin\device\controller\Station');
 	// station_photo路由
 	$router->resource('station_photo', '\catchAdmin\device\controller\StationPhoto');

ファイルの差分が大きいため隠しています
+ 5 - 3
catch/map/controller/RouteMap.php