作者 ZhengBing He

完成时间

@@ -150,10 +150,10 @@ class WorkOrderController extends BaseController @@ -150,10 +150,10 @@ class WorkOrderController extends BaseController
150 if ($request->input('status') !== null) 150 if ($request->input('status') !== null)
151 { 151 {
152 $log->status = $request->input('status'); 152 $log->status = $request->input('status');
153 - if ($log->status == WorkOrder::STATUS_COMPLETED) 153 + if ($log->status >= WorkOrder::STATUS_COMPLETED)
154 { 154 {
155 // 我的工单标记为已完成 155 // 我的工单标记为已完成
156 - $log->status = WorkOrderLog::STATUS_COMPLETED; 156 + $log->status = $request->input('status');
157 $log->end_at = now(); 157 $log->end_at = now();
158 } 158 }
159 } 159 }
@@ -162,7 +162,15 @@ class WorkOrderController extends BaseController @@ -162,7 +162,15 @@ class WorkOrderController extends BaseController
162 $pending = $workOrder->logs() 162 $pending = $workOrder->logs()
163 ->where('status', '<', WorkOrderLog::STATUS_COMPLETED) 163 ->where('status', '<', WorkOrderLog::STATUS_COMPLETED)
164 ->count(); 164 ->count();
165 - $workOrder->status = $pending == 0 ? WorkOrderLog::STATUS_COMPLETED : WorkOrderLog::STATUS_PROCESSING; 165 + if ($pending)
  166 + {
  167 + $workOrder->status = WorkOrder::STATUS_PROCESSING;
  168 + }else
  169 + {
  170 + $workOrder->status = WorkOrder::STATUS_COMPLETED;
  171 + // 如果所有子任务都完成了,则将工单状态改为已完成
  172 + $workOrder->end_at = now();
  173 + }
166 $workOrder->save(); 174 $workOrder->save();
167 return $log; 175 return $log;
168 }); 176 });
@@ -120,8 +120,9 @@ class WorkOrderController extends BaseController @@ -120,8 +120,9 @@ class WorkOrderController extends BaseController
120 // 更新工单状态 120 // 更新工单状态
121 $workOrder->status = WorkOrder::STATUS_COMPLETED; 121 $workOrder->status = WorkOrder::STATUS_COMPLETED;
122 $workOrder->save(); 122 $workOrder->save();
123 - // B端完成工单,将所有子任务标记为完成  
124 - $workOrder->logs()->update(['status' => WorkOrderLog::STATUS_COMPLETED]); 123 + // B端完成工单,将所有未完成的子工单状态改为已完成。并记录完成时间
  124 + $workOrder->logs()->where('status', '<', WorkOrderLog::STATUS_COMPLETED)
  125 + ->update(['status' => WorkOrderLog::STATUS_COMPLETED, 'end_at' => now()]);
125 $this->response('success', Code::SUCCESS); 126 $this->response('success', Code::SUCCESS);
126 } 127 }
127 128