作者 ZhengBing He

fix status up

@@ -28,13 +28,13 @@ class WorkOrderController extends BaseController @@ -28,13 +28,13 @@ class WorkOrderController extends BaseController
28 'workOrder.project:id,company', 28 'workOrder.project:id,company',
29 ]) 29 ])
30 ->where('manage_id', $this->manage['id']) 30 ->where('manage_id', $this->manage['id'])
31 - ->when($request->input('project_id'), function ($query) use ($request) { 31 + ->when($request->input('project_id') !== null, function ($query) use ($request) {
32 // project_id 查 workOrder 32 // project_id 查 workOrder
33 return $query->whereHas('workOrder', function ($q) use ($request) { 33 return $query->whereHas('workOrder', function ($q) use ($request) {
34 $q->where('project_id', $request->input('project_id')); 34 $q->where('project_id', $request->input('project_id'));
35 }); 35 });
36 }) 36 })
37 - ->when($request->input('status'), function ($query) use ($request) { 37 + ->when($request->input('status') !== null, function ($query) use ($request) {
38 // status 查 WorkOrderLog 38 // status 查 WorkOrderLog
39 return $query->where('status', $request->input('status')); 39 return $query->where('status', $request->input('status'));
40 }) 40 })
@@ -67,10 +67,10 @@ class WorkOrderController extends BaseController @@ -67,10 +67,10 @@ class WorkOrderController extends BaseController
67 'logs.manager:id,name', 67 'logs.manager:id,name',
68 'project:id,company', 68 'project:id,company',
69 ]) 69 ])
70 - ->when($request->input('project_id'), function ($query) use ($request) { 70 + ->when($request->input('project_id') !== null, function ($query) use ($request) {
71 return $query->where('project_id', $request->input('project_id')); 71 return $query->where('project_id', $request->input('project_id'));
72 }) 72 })
73 - ->when($request->input('status'), function ($query) use ($request) { 73 + ->when($request->input('status') !== null, function ($query) use ($request) {
74 return $query->where('status', $request->input('status')); 74 return $query->where('status', $request->input('status'));
75 }) 75 })
76 ->when($request->input('search'), function ($query) use ($request) { 76 ->when($request->input('search'), function ($query) use ($request) {
@@ -150,19 +150,23 @@ class WorkOrderController extends BaseController @@ -150,19 +150,23 @@ class WorkOrderController extends BaseController
150 $log->status = WorkOrderLog::STATUS_COMPLETED; 150 $log->status = WorkOrderLog::STATUS_COMPLETED;
151 $log->end_at = now(); 151 $log->end_at = now();
152 $log->save(); 152 $log->save();
153 - // 如果所有的子任务都已完成, 则更新工单主表状态  
154 - $pending = $workOrder->logs()  
155 - ->where('status', '<', WorkOrderLog::STATUS_COMPLETED)  
156 - ->count();  
157 - if ($pending == 0)  
158 - {  
159 - $workOrder->status = WorkOrderLog::STATUS_COMPLETED;  
160 - $workOrder->save();  
161 - } 153 + }
  154 + if ($request->input('status') !== null)
  155 + {
  156 + $log->status = $request->input('status');
  157 + $log->save();
  158 + }
  159 + // 如果所有的子任务都已完成, 则更新工单主表状态
  160 + $pending = $workOrder->logs()
  161 + ->where('status', '<', WorkOrderLog::STATUS_COMPLETED)
  162 + ->count();
  163 + if ($pending == 0)
  164 + {
  165 + $workOrder->status = WorkOrderLog::STATUS_COMPLETED;
  166 + $workOrder->save();
162 } 167 }
163 return $log; 168 return $log;
164 }); 169 });
165 -  
166 $this->response('success', Code::SUCCESS, $result->toArray()); 170 $this->response('success', Code::SUCCESS, $result->toArray());
167 } 171 }
168 172
@@ -19,14 +19,17 @@ class WorkOrderController extends BaseController @@ -19,14 +19,17 @@ class WorkOrderController extends BaseController
19 * 19 *
20 * @return \Illuminate\Http\Response 20 * @return \Illuminate\Http\Response
21 */ 21 */
22 - public function index(WorkOrder $workOrder, WorkOrderListRequest $request) 22 + public function index(WorkOrderListRequest $request)
23 { 23 {
24 $request->validated(); 24 $request->validated();
25 $where = [ 25 $where = [
26 'project_id' => $this->user['project_id'], 26 'project_id' => $this->user['project_id'],
27 ]; 27 ];
28 // 分页查询 28 // 分页查询
29 - $lists = $workOrder->where($where) 29 + $lists = WorkOrder::with([
  30 + 'manager:id,name',
  31 + ])
  32 + ->where($where)
30 ->when($request->input('status'), function ($query) use ($request) { 33 ->when($request->input('status'), function ($query) use ($request) {
31 return $query->where('status', $request->input('status')); 34 return $query->where('status', $request->input('status'));
32 }) 35 })