Bläddra i källkod

进行中工单数量显示使用统计

liugc 1 år sedan
förälder
incheckning
8c56110c48
1 ändrade filer med 11 tillägg och 1 borttagningar
  1. 11 1
      app/adminapi/lists/master_worker/MasterWorkerLists.php

+ 11 - 1
app/adminapi/lists/master_worker/MasterWorkerLists.php

@@ -99,7 +99,7 @@ class MasterWorkerLists extends BaseAdminDataLists implements ListsSearchInterfa
             $fields[] = Db::raw('ROUND(6371* 1000 * ACOS(COS(RADIANS('.$this->lat.')) * COS(RADIANS(mw.lat)) * COS(RADIANS(mw.lon) - RADIANS('.$this->lon.')) + SIN(RADIANS('.$this->lat.')) * SIN(RADIANS(mw.lat))), 2) AS user_distance');
             $orders = 'user_distance';
         }
-        return MasterWorker::alias('mw')
+        $list = MasterWorker::alias('mw')
             ->join('master_worker_register mwr', 'mwr.worker_id = mw.id')
             ->where($this->searchWhere)
             ->where($queryWhere)
@@ -107,6 +107,16 @@ class MasterWorkerLists extends BaseAdminDataLists implements ListsSearchInterfa
             ->limit($this->limitOffset, $this->limitLength)
             ->order($orders)
             ->select()->toArray();
+        $workCount = array_column(ServiceWork::where('master_worker_id','>',0)
+            ->whereNotIn('work_status', [7,8])
+            ->whereIn('master_worker_id', array_column($list, 'id'))
+            ->field(['master_worker_id',Db::raw('COUNT(id) as work_total')])
+            ->group('master_worker_id')
+            ->select()->toArray(),'work_total','master_worker_id');
+        foreach ($list as &$item) {
+            $item['work_total'] = $workCount[$item['id']]??0;
+        }
+        return $list;
     }