浏览代码

公管公司值班管理

任敬轩 21 小时之前
父节点
当前提交
f41ceb6258
共有 1 个文件被更改,包括 176 次插入2 次删除
  1. 176 2
      Modules/Admin/Http/Controllers/Api/ApiController.php

+ 176 - 2
Modules/Admin/Http/Controllers/Api/ApiController.php

@@ -1120,6 +1120,7 @@ class ApiController extends BaseController
     public function dutyCalendar(){
         $result['status'] = true;
         $result['msg']    = ApiEnum::RETURN_SUCCESS;
+        $result['data'] = [];
 
         $riqi = Input::get('riqi', '');
 
@@ -1127,8 +1128,93 @@ class ApiController extends BaseController
             return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
         }
 
-        $list = DB::connection('mysql_fwe10')->table('uf_gggs_zbgl')->get();
-        dd($list);
+        $zbInfo = DB::connection('mysql_fwe10')->table('uf_gggs_zbgl')->where('riqi',$riqi)->orderBy('CREATE_TIME','desc')->first();
+
+        if (!$zbInfo) {
+            return self::successResponse($result);
+        }
+
+        $data = [
+            'title' => date('Y年n月j日', strtotime($riqi)).'值班信息',
+            'zzb' => [],   // 主值班
+            'fzb' => [],   // 副值班
+            'gbdd' => [],  // 跟班地点
+            'zbsj' => [],  // 值班司机
+            'pmyzx' => [], // 配煤一中心
+            'pmezx' => [], // 配煤二中心
+            'whzx' => [],  // 维护中心
+            'dyzx' => [],  // 电仪中心
+            'zczx' => [],  // 渣场中心
+            'zabw' => [],  // 治安保卫
+            'ylzx' => [],  // 原料中心
+            'hqzx' => []   // 后勤中心
+        ];
+
+        $fieldMap = [
+            'zzb'   => ['zzb'],
+            'fzb'   => ['fzb1', 'fzb2'],
+            'gbdd'  => ['gbdd1','gbdd2'],
+            'zbsj'  => ['zbsj'],
+            'pmyzx' => ['pmyzx1','pmyzx2'],
+            'pmezx' => ['pmezx1','pmezx2'],
+            'whzx' => ['whzx1','whzx2'],
+            'dyzx' => ['dyzx1','dyzx2'],
+            'zczx' => ['zczx1','zczx2'],
+            'zabw' => ['zabw1','zabw2'],
+            'ylzx' => ['ylzx1','ylzx2'],
+            'hqzx' => ['hqzx1','hqzx2'],
+        ];
+
+        $namesToQuery = array_filter([
+            $zbInfo->zzb,
+            $zbInfo->fzb1,
+            $zbInfo->fzb2,
+            $zbInfo->zbsj,
+            $zbInfo->pmyzx1,
+            $zbInfo->pmyzx2,
+            $zbInfo->pmezx1,
+            $zbInfo->pmezx2,
+            $zbInfo->whzx1,
+            $zbInfo->whzx2,
+            $zbInfo->dyzx1,
+            $zbInfo->dyzx2,
+            $zbInfo->zczx1,
+            $zbInfo->zczx2,
+            $zbInfo->zabw1,
+            $zbInfo->zabw2,
+            $zbInfo->ylzx1,
+            $zbInfo->ylzx2,
+            $zbInfo->hqzx1,
+            $zbInfo->hqzx2
+        ]);
+
+        $peopleInfo = [];
+        if (!empty($namesToQuery)) {
+            $peopleData = DB::connection('mysql_fwe10')
+                ->table('uf_gggs_rygl as r1')
+                ->whereIn('xm', $namesToQuery)
+                ->whereRaw('CREATE_TIME = (
+                SELECT MAX(CREATE_TIME) 
+                FROM uf_gggs_rygl as r2 
+                WHERE r2.xm = r1.xm)')
+                ->get()
+                ->keyBy('xm');
+            foreach ($peopleData as $person) {
+                $peopleInfo[$person->xm] = $person->dh ?? '';
+            }
+        }
+
+        foreach ($fieldMap as $dataKey => $dbFields) {
+            foreach ($dbFields as $field) {
+                if (!empty($zbInfo->$field)) {
+                    $name = $zbInfo->$field;
+                    $phone = $peopleInfo[$name] ?? '';
+                    $data[$dataKey][] = $phone ? $name . $phone : $name;
+                }
+            }
+        }
+
+        $result['data'] = $data;
 
         return self::successResponse($result);
     }
@@ -1137,6 +1223,7 @@ class ApiController extends BaseController
     public function dutySearch(){
         $result['status'] = true;
         $result['msg']    = ApiEnum::RETURN_SUCCESS;
+        $result['data'] = [];
 
         $name = Input::get('name', '');
         $start_date = Input::get('start_date', '');
@@ -1152,6 +1239,93 @@ class ApiController extends BaseController
             return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
         }
 
+        $people = DB::connection('mysql_fwe10')->table('uf_gggs_rygl')->where('xm',$name)->orderBy('create_time','desc')->first();
+
+        $mobile = '';
+
+        if(!empty($people) && $people->dh != null && $people->dh != ''){
+            $mobile = '('.$people->dh.')';
+        }
+
+        $result['title'] = $name.$mobile.date('Y年n月j日', strtotime($start_date)).'至'.date('Y年n月j日', strtotime($end_date)).'的值班记录';
+
+        $list = DB::connection('mysql_fwe10')->table('uf_gggs_zbgl')->whereBetween('riqi', [$start_date, $end_date])
+            ->whereIn('id', function($subQuery) {
+                $subQuery->selectRaw('MAX(id)') // 获取每个日期的最大create_time对应的记录
+                ->from('uf_gggs_zbgl')
+                    ->groupBy('riqi'); // 按riqi分组
+            })->orderBy('riqi')->get();
+
+        $data = [];
+
+        if(count($list) > 0){
+            for($i=0;$i<count($list);$i++){
+                $riqi = date('Y/n/j', strtotime($list[$i]->riqi));
+                if($list[$i]->zzb == $name){
+                    array_push($data,[$riqi,'主值班']);
+                }
+                if($list[$i]->fzb1 == $name){
+                    array_push($data,[$riqi,'副值班']);
+                }
+                if($list[$i]->fzb2 == $name){
+                    array_push($data,[$riqi,'副值班']);
+                }
+                if($list[$i]->zbsj == $name){
+                    array_push($data,[$riqi,'值班司机']);
+                }
+                if($list[$i]->pmyzx1 == $name){
+                    array_push($data,[$riqi,'配煤一中心']);
+                }
+                if($list[$i]->pmyzx2 == $name){
+                    array_push($data,[$riqi,'配煤一中心']);
+                }
+                if($list[$i]->pmezx1 == $name){
+                    array_push($data,[$riqi,'配煤二中心']);
+                }
+                if($list[$i]->pmezx2 == $name){
+                    array_push($data,[$riqi,'配煤二中心']);
+                }
+                if($list[$i]->whzx1 == $name){
+                    array_push($data,[$riqi,'维护中心']);
+                }
+                if($list[$i]->whzx2 == $name){
+                    array_push($data,[$riqi,'维护中心']);
+                }
+                if($list[$i]->dyzx1 == $name){
+                    array_push($data,[$riqi,'电仪中心']);
+                }
+                if($list[$i]->dyzx2 == $name){
+                    array_push($data,[$riqi,'电仪中心']);
+                }
+                if($list[$i]->zczx1 == $name){
+                    array_push($data,[$riqi,'渣场中心']);
+                }
+                if($list[$i]->zczx2 == $name){
+                    array_push($data,[$riqi,'渣场中心']);
+                }
+                if($list[$i]->zabw1 == $name){
+                    array_push($data,[$riqi,'治安保卫']);
+                }
+                if($list[$i]->zabw2 == $name){
+                    array_push($data,[$riqi,'治安保卫']);
+                }
+                if($list[$i]->ylzx1 == $name){
+                    array_push($data,[$riqi,'原料中心']);
+                }
+                if($list[$i]->ylzx2 == $name){
+                    array_push($data,[$riqi,'原料中心']);
+                }
+                if($list[$i]->hqzx1 == $name){
+                    array_push($data,[$riqi,'后勤中心']);
+                }
+                if($list[$i]->hqzx2 == $name){
+                    array_push($data,[$riqi,'后勤中心']);
+                }
+            }
+        }
+
+        $result['data'] =$data;
+
         return self::successResponse($result);
     }