瀏覽代碼

Merge branch 'zengjun'

zhouzhendong 4 年之前
父節點
當前提交
fb04e50361
共有 3 個文件被更改,包括 67 次插入39 次删除
  1. 4 2
      app/Services/OrderIssueService.php
  2. 34 30
      app/Services/WorkOrderService.php
  3. 29 7
      resources/views/order/workOrder/index.blade.php

+ 4 - 2
app/Services/OrderIssueService.php

@@ -441,10 +441,12 @@ class OrderIssueService
         return OrderIssue::query()->whereIn('order_id',$order_package_query)->whereIn('order_issue_type_id',$order_issue_type_query)->count() ;
     }
 
+    // 已拦截 在 问题件 的显示
     public function intercept($logistic_number)
     {
-        $order_package_query = OrderPackage::query()->select('order_id')->where('logistic_number',$logistic_number);
-        OrderIssueType::query()->where('order_id',$order_package_query)->update(['is_intercept' => 1]);
+        $order_package = OrderPackage::query()->select('order_id')->where('logistic_number',$logistic_number)->first();
+        if (!$order_package) return;
+        OrderIssue::query()->where('order_id',$order_package->order_id)->update(['is_intercept' => 1]);
     }
 }
 

+ 34 - 30
app/Services/WorkOrderService.php

@@ -32,8 +32,9 @@ class WorkOrderService
      * 获取可生成工单的问题件类型
      * @return Builder[]|\Illuminate\Database\Eloquent\Collection
      */
-    public function getIssueType(){
-        return OrderIssueType::query()->whereIn('name',['拦截','信息更改','其他', '快递异常','错漏发','破损'])->get();
+    public function getIssueType()
+    {
+        return OrderIssueType::query()->whereIn('name', ['拦截', '信息更改', '其他', '快递异常', '错漏发', '破损'])->get();
     }
 
     /**
@@ -47,20 +48,20 @@ class WorkOrderService
         $work_order_types = [];
         $data = Carbon::now();
         $creator_id = Auth::user()['id'];
-        $parent = WorkOrderType::query()->firstOrCreate(['name' => '订单','prent_id' => 0,'level' => 1]);
+        $parent = WorkOrderType::query()->firstOrCreate(['name' => '订单', 'prent_id' => 0, 'level' => 1]);
         foreach ($params as $param) {
-            $order = Order::query()->where('code',$param['order_no'])->first();
+            $order = Order::query()->where('code', $param['order_no'])->first();
             $type_name = $param['order_issue_type'];
             if (!$param['order_issue_type']) {
                 $order_issue_type_id = 0;
                 $work_order_type_id = 0;
             } else {
-                if (!array_key_exists($type_name,$types)){
-                    $types[$type_name] = OrderIssueType::query()->where('name',$type_name)->first();
+                if (!array_key_exists($type_name, $types)) {
+                    $types[$type_name] = OrderIssueType::query()->where('name', $type_name)->first();
                     $work_order_type_name = $this->work_type_relation[$type_name] ?? $type_name;
-                    $work_order_types[$type_name] =  WorkOrderType::query()->firstOrCreate(
+                    $work_order_types[$type_name] = WorkOrderType::query()->firstOrCreate(
                         ['name' => $work_order_type_name],
-                        ['prent_id' =>$parent['id'],'table_name' => 'orders','level' => 2]
+                        ['prent_id' => $parent['id'], 'table_name' => 'orders', 'level' => 2]
                     );
                 }
                 $order_issue_type_id = $types[$type_name]['id'] ?? 0;
@@ -94,15 +95,15 @@ class WorkOrderService
                 'order_issue_type_id' => $order_issue_type_id ?? 0,
                 'uniquely_tag' => $order['code'] ?? null,
                 'status' => 1,
-                'created_at' =>  $data,
-                'updated_at' =>  $data,
+                'created_at' => $data,
+                'updated_at' => $data,
             ];
         }
-        if (isset($inner_params)){
+        if (isset($inner_params)) {
             WorkOrder::query()->insert($inner_params);
             return ['success' => true];
         }
-        return ['success' => false,'message' => '参数异常'];
+        return ['success' => false, 'message' => '参数异常'];
     }
 
     /**
@@ -112,12 +113,13 @@ class WorkOrderService
      */
     public function review($wordOrder): array
     {
-        $wordOrder->update(['reviewer_id' => Auth::user()['id'], 'review_at' => Carbon::now(), 'status' => 2,]);
-        $wordOrder = WorkOrder::query()->with(['type', 'creator', 'order' => function ($query) {
+        $wordOrder->update(['reviewer_id' => Auth::user()['id'], 'review_at' => Carbon::now(), 'status' => '2',]);
+        $workOrders = WorkOrder::query()->with(['type', 'creator', 'order' => function ($query) {
             /** @var $query Builder */
             $query->with('packages', 'issue', 'logistic');
-        }, 'reviewer'])->find($wordOrder['id']);
-        return ['success' => true, 'data' => $wordOrder];
+        }, 'reviewer'])->whereIn('id', [$wordOrder['id']])->get();
+        $this->tags($workOrders);
+        return ['success' => true, 'data' => $workOrders->first()];
     }
 
     /**
@@ -130,12 +132,13 @@ class WorkOrderService
         $ids = $workOrders->map(function ($item) {
             return $item->id;
         })->toArray();
-        WorkOrder::query()->whereIn('id', $ids)->update(['review_at' => Carbon::now(), 'reviewer_id' => Auth::user()['id'],'status' => '2']);
-        $wordOrder = WorkOrder::query()->with(['type', 'creator', 'order' => function ($query) {
+        WorkOrder::query()->whereIn('id', $ids)->update(['review_at' => Carbon::now(), 'reviewer_id' => Auth::user()['id'], 'status' => '2']);
+        $wordOrders = WorkOrder::query()->with(['type', 'creator', 'order' => function ($query) {
             /** @var $query Builder */
             $query->with('packages', 'issue', 'logistic');
-        }, 'reviewer'])->find($ids);
-        return ['success' => true, 'data' => $wordOrder];
+        }, 'reviewer'])->whereIn('id', $ids)->get();
+        $this->tags($wordOrders);
+        return ['success' => true, 'data' => $wordOrders];
     }
 
 
@@ -153,8 +156,8 @@ class WorkOrderService
                 'result_explain' => $work_order->remark,
             ];
         }
-        if (!isset($inner_params)) return ['success' => false,'message' => '创建问题件失败'];
-        return  app('OrderIssueService')->buildOrderIssue($inner_params);
+        if (!isset($inner_params)) return ['success' => false, 'message' => '创建问题件失败'];
+        return app('OrderIssueService')->buildOrderIssue($inner_params);
     }
 
     /**
@@ -184,17 +187,18 @@ class WorkOrderService
      */
     public function tags(&$workOrders)
     {
-        $order_ids = $workOrders->map(function($item){
+        $order_ids = $workOrders->map(function ($item) {
             return $item->order_id;
         });
-        $order_issues = OrderIssue::query()->whereIn('order_id',$order_ids)->get();
+        $order_issues = OrderIssue::query()->whereIn('order_id', $order_ids)->get();
+
         foreach ($order_issues as $order_issue) {
             $codes[$order_issue->order_id] = true;
         }
-        if (!isset($codes))return;
+        if (!isset($codes)) return;
         foreach ($workOrders as &$workOrder) {
-            if (array_key_exists($workOrder->order_id,$codes))$workOrder->is_issue_order= true;
-            else  $workOrder->is_issue_order= false;
+            if (array_key_exists($workOrder->order_id, $codes)) $workOrder->is_issue_order = true;
+            else  $workOrder->is_issue_order = false;
         }
     }
 
@@ -205,8 +209,8 @@ class WorkOrderService
      */
     public function isIntercept($logistic_number): bool
     {
-        $package_query = OrderPackage::query()->select('order_id')->where('logistic_number',$logistic_number);
-         $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();
+        $package_query = OrderPackage::query()->select('order_id')->where('logistic_number', $logistic_number);
+        $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();
     }
 }

+ 29 - 7
resources/views/order/workOrder/index.blade.php

@@ -65,12 +65,7 @@
                                             审核
                                         </button>
                                     @endcan
-                                    @can('订单管理-工单处理-删除')
-                                        <button class="btn btn-sm btn-outline-danger"
-                                                @click="destroy(item,i)">
-                                            删除
-                                        </button>
-                                    @endcan
+
                                 </td>
                                 <td class="text-center">@{{ item.status }}</td>
                                 <td class="text-center">@{{ item.owner ? item.owner.name : '' }}</td>
@@ -202,6 +197,15 @@
                                 <td class="text-center">@{{ item.created_at }}</td>
                                 <td>@{{ item.reviewer ? item.reviewer.name : ''}}</td>
                                 <td>@{{ item.review_at }}</td>
+                                @can('订单管理-工单处理-删除')
+                                    <td>
+                                        <button class="btn btn-sm btn-outline-danger"
+                                                @click="destroy(item,i)">
+                                            删除
+                                        </button>
+                                    </td>
+
+                                @endcan
                             </tr>
                         </template>
                         </tbody>
@@ -321,6 +325,9 @@
                     {name: 'submit_at', value: '提交时间',neglect: true},
                     {name: 'reviewer', value: '审核人',neglect: true},
                     {name: 'review_at', value: '审核时间',neglect: true},
+                    @can('订单管理-工单处理-删除')
+                    {name: 'delete_operation', value: '其他操作',neglect: true},
+                    @endcan()
                 ];
 
                 new Header({
@@ -399,6 +406,7 @@
                     else data.ids = checkData;
                     if (!confirm('是否生成对应的问题件')) return;
                     let _this = this;
+                    window.tempTip.waitingTip('生成中........');
                     window.axios.post(url, data).then(res => {
                         if (res.data.success) {
                             res.data.data.forEach(item => {
@@ -410,11 +418,14 @@
                                 });
                             });
                             this.$forceUpdate();
+                            window.tempTip.cancelWaitingTip();
                             window.tempTip.showSuccess('已生成对应的问题件');
                         } else {
+                            window.tempTip.cancelWaitingTip();
                             window.tempTip.show(res.data.message ? res.data.message : '生成问题件异常');
                         }
                     }).catch(err => {
+                        window.tempTip.cancelWaitingTip();
                         window.tempTip.show(err)
                     });
                 },
@@ -525,6 +536,7 @@
                     let _this = this;
                     window.tempTip.setIndex('1999');
                     if (!confirm('是否对当前选中订单进行审核')) return;
+                    window.tempTip.waitingTip('审核中........');
                     window.axios.post(url, data).then(res => {
                         if (res.data.success) {
                             $.each(res.data.data, (i, data) => {
@@ -535,11 +547,14 @@
                                 });
                             });
                             this.$forceUpdate();
+                            window.tempTip.cancelWaitingTip();
                             window.tempTip.showSuccess('审核完成');
                         } else {
+                            window.tempTip.cancelWaitingTip();
                             window.tempTip.show(res.data.message ? res.data.message : '审核出现异常');
                         }
                     }).catch(err => {
+                        window.tempTip.cancelWaitingTip();
                         window.tempTip.show(err);
                     })
                 },
@@ -549,14 +564,18 @@
                         id: item.id,
                         type_id: $(e.target).val()
                     };
+                    window.tempTip.waitingTip('修改中.........');
                     window.axios.post(url, data).then(res => {
                         if (res.data.success) {
+                            window.tempTip.cancelWaitingTip();
                             window.tempTip.showSuccess('修改成功');
                             item.order_issue_type_id = data.type_id;
                         } else {
+                            window.tempTip.cancelWaitingTip();
                             window.tempTip.show(res.data.message ? res.data.message : '修改异常');
                         }
                     }).catch(err => {
+                        window.tempTip.cancelWaitingTip();
                         window.tempTip.show(err);
                     });
                 },
@@ -582,7 +601,6 @@
                     window.axios.post(url, data).then(res => {
                         if (res.data.success) {
                             window.tempTip.showSuccess('修改问题件类型成功');
-
                             res.data.data.forEach(item => {
                                 _this.sortOrder(item);
                                 _this.workOrders.forEach((workOrder, i, array) => {
@@ -603,14 +621,18 @@
                 destroy(item,i){
                     let url = '{{url('apiLocal/workOrder/')}}'+'/'+item.id;
                     if(!confirm('是否删除当前工单')) return ;
+                    window.tempTip.waitingTip('删除.........');
                     window.axios.delete(url).then(res=>{
                         if (res.data.success){
                             this.$delete(this.workOrders,i);
+                            window.tempTip.cancelWaitingTip();
                             window.tempTip.showSuccess('删除成功');
                         }else {
+                            window.tempTip.cancelWaitingTip();
                             window.tempTip.show(res.data.message ? res.data.message : '');
                         }
                     }).catch(err=>{
+                        window.tempTip.cancelWaitingTip();
                         window.tempTip.show(err);
                     })
                 }