Przeglądaj źródła

Merge branch 'zengjun'

zhouzhendong 4 lat temu
rodzic
commit
d8c420d39d

+ 1 - 4
app/Filters/WorkOrderFilters.php

@@ -70,10 +70,7 @@ class WorkOrderFilters
             $this->id(explode(',',$this->params['data']));
 
         if (!isset($this->params['owner'])){
-            $owners = app(OwnerService::class)->getAuthorizedOwners();
-            $this->getOrderQuery()->whereIn('owner_id',$owners->map(function($item){
-                return $item->id;
-            }));
+            $this->getOrderQuery()->whereIn('owner_id', app('UserService')->getPermittingOwnerIds(Auth::user())??[]);
         }
     }
 

+ 2 - 0
app/Http/Controllers/MeasureMonitorController.php

@@ -41,9 +41,11 @@ class MeasureMonitorController extends Controller
     public function speech(Request $request,MeasureMonitorService $service): array
     {
         if (app('WorkOrderService')->isIntercept($request['logistic_number'])){
+            app('OrderIssueService')->intercept($request['logistic_number']);
             return $service->getMp3Audio('拦截订单');
         }
         if ( app('OrderIssueService')->isExists($request['logistic_number'])){
+            app('OrderIssueService')->intercept($request['logistic_number']);
             return $service->getMp3Audio('拦截订单');
         }
         return $service->getMp3Audio($request->input('logistic'));

+ 9 - 0
app/Http/Controllers/WorkOrderController.php

@@ -100,4 +100,13 @@ class WorkOrderController extends Controller
         return ['success' => true,'data' => $items];
     }
 
+    // 删除
+    public function destroyApi($id): array
+    {
+        if (Gate::denies('订单管理-工单处理-删除'))
+            return ['success' => false,'message' => '没有对应权限'];
+        WorkOrder::query()->where('id',$id)->Delete();
+        return ['success' => true];
+    }
+
 }

+ 10 - 1
app/OrderIssue.php

@@ -36,7 +36,9 @@ class OrderIssue extends Model
         'logistic_indemnity_money', 'logistic_express_remission',
         'baoshi_indemnity_money', 'baoshi_express_remission', 'user_workgroup_id',
         'custom_code','imported_status','finance_confirm',
-        'hidden_tag','archive_at'];
+        'hidden_tag','archive_at',
+        'is_intercept'
+    ];
     /*
      * second_client_no 二次客户订单号
      * second_logistic_number 二次运单号 【二次运单号可以单独存在,当二次客户订单号有对应的订单信息时,显示的是二次客户订单号对应的运单号,没有的话显示二次原单号】
@@ -50,6 +52,7 @@ class OrderIssue extends Model
      * finance_confirm 财务确认
      * hidden_tag 隐藏标识
      * archive_at 归档时间
+     * is_intercept 是否拦截
      */
     protected $appends = [];
 
@@ -312,4 +315,10 @@ class OrderIssue extends Model
     {
         return $this->belongsToMany(UserWorkgroup::class);
     }
+
+    // 库内拦截
+    public function intercept(): bool
+    {
+        return $this->update(['is_intercept' => 1]);
+    }
 }

+ 6 - 0
app/Services/OrderIssueService.php

@@ -440,5 +440,11 @@ class OrderIssueService
         $order_issue_type_query = OrderIssueType::query()->select('id')->where('name' ,'拦截');
         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]);
+    }
 }
 

+ 1 - 1
app/Services/WorkOrderService.php

@@ -130,7 +130,7 @@ 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']]);
+        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) {
             /** @var $query Builder */
             $query->with('packages', 'issue', 'logistic');

+ 32 - 0
database/migrations/2021_09_06_135431_add_is_intercept_to_order_issues.php

@@ -0,0 +1,32 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class AddIsInterceptToOrderIssues extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('order_issues', function (Blueprint $table) {
+            $table->tinyInteger('is_intercept')->comment('是否库内拦截');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('order_issues', function (Blueprint $table) {
+            $table->dropColumn('is_intercept');
+        });
+    }
+}

+ 1 - 0
resources/views/order/issue/index.blade.php

@@ -228,6 +228,7 @@
                                 @else
                                     <span v-if="orderIssue.is_new_rejecting">@{{ orderIssue.is_new_rejecting }}</span>
                                 @endcan
+                                <span class="badge badge-info" v-if="orderIssue.is_intercept === 1">库内拦截</span>
                             </td>
                             @can("订单管理-问题件-置顶")
                                 <td class="text-muted child-layer-1">

+ 20 - 2
resources/views/order/workOrder/index.blade.php

@@ -65,6 +65,12 @@
                                             审核
                                         </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>
@@ -196,7 +202,6 @@
                                 <td class="text-center">@{{ item.created_at }}</td>
                                 <td>@{{ item.reviewer ? item.reviewer.name : ''}}</td>
                                 <td>@{{ item.review_at }}</td>
-
                             </tr>
                         </template>
                         </tbody>
@@ -595,7 +600,20 @@
                         window.tempTip.show(err)
                     })
                 },
-
+                destroy(item,i){
+                    let url = '{{url('apiLocal/workOrder/')}}'+'/'+item.id;
+                    if(!confirm('是否删除当前工单')) return ;
+                    window.axios.delete(url).then(res=>{
+                        if (res.data.success){
+                            this.$delete(this.workOrders,i);
+                            window.tempTip.showSuccess('删除成功');
+                        }else {
+                            window.tempTip.show(res.data.message ? res.data.message : '');
+                        }
+                    }).catch(err=>{
+                        window.tempTip.show(err);
+                    })
+                }
             },
         });
     </script>

+ 1 - 0
routes/apiLocal.php

@@ -267,4 +267,5 @@ Route::prefix('workOrder')->group(function(){
     Route::post('buildOrderIssue','WorkOrderController@buildOrderIssueApi')->name('workOrder.buildOrderIssueApi');  // 生成问题件
     Route::post('updateIssueType','WorkOrderController@updateIssueTypeApi')->name('workOrder.updateIssueTypeApi'); // 修改问题类型
     Route::post('batchUpdateIssueType','WorkOrderController@batchUpdateIssueTypeApi')->name('workOrder.batchUpdateIssueTypeApi'); // 修改问题类型
+    Route::delete('/{id}','WorkOrderController@destroyApi')->name('workOrder.destroyApi');
  });