Browse Source

订单 管理显示对应的工单标记

ajun 4 years ago
parent
commit
2ab5cc704b

+ 1 - 0
app/Http/Controllers/OrderController.php

@@ -43,6 +43,7 @@ class OrderController extends Controller
         $picktotraceids = $result['picktotraceids'];
         $orders = $result['orders'];
         $orderService->tagOrderByOrderIssue($orders);
+        app('WorkOrderService')->tagWorkOrder($orders);
         $commodities = $result['commodities'];
         $customers=app('OracleBasCustomerService')->getCustomers($codes);
         $page = $request["page"] ?? 1;

+ 18 - 0
app/Services/WorkOrderService.php

@@ -222,4 +222,22 @@ class WorkOrderService
         $order_issue_query = OrderIssueType::query()->select('id')->where('name', '拦截');
         return WorkOrder::query()->whereIn('order_id', $package_query)->whereIn('order_issue_type_id', $order_issue_query)->exists();
     }
+
+    public function tagWorkOrder(&$orders)
+    {
+        $orderNos = data_get($orders,'*.orderno');
+        $workOrders = WorkOrder::query()->with('order')->where('order_id',function($query)use($orderNos) {
+            $query->from('orders')->select('id')->whereIn('code', $orderNos);
+        })->get();
+        $tags = [];
+        $workOrders->each(function($workOrder)use(&$tags){
+            $order_code = $workOrder->order->code ?? null;
+            if ($order_code) $tags[$order_code]= true;
+        });
+
+        foreach ($orders as &$order) {
+            if (array_key_exists($order->orderno,$tags)) $order->is_work_order= true;
+            else $order->is_work_order = false;
+        }
+    }
 }

+ 18 - 2
resources/views/order/index/delivering.blade.php

@@ -67,7 +67,7 @@
                             <input class="checkItem" type="checkbox" :value="order.orderno">
                         </td>
                         <td class="text-nowrap">
-                            <span>@{{ i+1 }}</span>
+                            <span >@{{ i+1 }}</span>
                             @can('订单管理-问题件')
                                 <a :href="'{{url("order/issue/index")}}'+'?orderCode='+order.orderno" target="order/issue/index?addtime=15">
                                     <span v-show="order.is_order_issue" class="badge badge-pill badge-danger">问题件</span>
@@ -75,6 +75,14 @@
                             @else
                                 <span v-show="order.is_order_issue" class="badge badge-pill badge-danger">问题件</span>
                             @endcan
+                            <br v-show="order.is_order_issue">
+                            @can('订单管理-工单处理')
+                                <a :href="'{{url("order/workOrder/index")}}'+'?client_code='+order.soreference1" target="order/workOrder/index">
+                                    <span v-show="order['is_work_order']" class="badge badge-pill badge-primary">工单</span>
+                                </a>
+                            @else
+                                <span v-show="order['is_work_order']" class="badge badge-pill badge-primary">工单</span>
+                            @endcan
                         </td>
                         <td class="text-dark font-weight-bold text-nowrap"><span>@{{ order.orderno }}</span></td>
                         <td class="text-muted text-nowrap"><span>@{{ order.ordercodename }}</span></td>
@@ -1062,6 +1070,7 @@
                         if (res.data.success){
                             window.tempTip.showSuccess('工单生成成功');
                             $('#intercept-modal').modal('hide');
+                            this.tagWorkOrders(checkData);
                         } else {
                             window.tempTip.show(res.data.message ? res.data.message : '工单创建异常');
                         }
@@ -1069,6 +1078,13 @@
                         window.tempTip.show(err)
                     });
                 },
+                tagWorkOrders(orderNos){
+                    this.orders.forEach((item)=>{
+                        if (orderNos.includes(item.orderno)){
+                            item['is_work_order'] = true;
+                        }
+                    })
+                },
                 changeReceiveInfo() {
                     let url = '{{url('apiLocal/workOrder/editOrderReceiveInfo')}}';
                     let data = {
@@ -1076,10 +1092,10 @@
                         grad:this.grad,
                         remake:`${this.remark.name} ${this.remark.phone} ${this.remark.province} ${this.remark.city} ${this.remark.city} ${this.remark.district} ${this.remark.adder}`,
                     };
-                    console.log(data);
                     window.tempTip.setIndex('1999');
                     window.axios.post(url,data).then(res=>{
                         if (res.data.success){
+                            this.tagWorkOrders(checkData[0]);
                             window.tempTip.showSuccess('生成修改工单成功');
                             $('#intercept-modal').modal('hide');
                         } else{