Просмотр исходного кода

订单问题件 二次运单号可以手动录入

ajun 5 лет назад
Родитель
Сommit
fcba268ae2

+ 8 - 20
app/Http/Controllers/OrderIssueController.php

@@ -462,31 +462,19 @@ class OrderIssueController extends Controller
         }
     }
 
-
-    public function secondOrderAddOrderPackageApi(Request $request)
+    public function editSecondLogisticNumberApi(Request $request)
     {
         if(!Gate::allows('订单管理-问题件-编辑'))
             return ['success'=>false,'fail_info'=>'没有对应权限'];
-        /** @var OrderService $orderService */
-        $orderService = app(OrderService::class);
-        $order = $orderService->getOrderByLogisticNumber($request->logistic_number);
-        if($order){
-            $order = Order::query()->with(['packages.commodities.commodity','logistic'])->where('id', $order->id)->first();
-            OrderIssue::query()->where('id',$request->id)->update(['second_client_no' => $order->client_code]);
-            return ['success' => true,'order' => $order,'second_client_no'=>$order->client_code];
-        }
+        /** @var OrderIssueService $service */
+        $service = app(OrderIssueService::class);
         try {
-            $order = Order::query()->with('packages.commodities.commodity')->where('client_code', $request->client_code)->first();
-            if (!$order) $order = Order::query()->create(['client_code' => $request->client_code]);
-            $orderPackage = OrderPackage::query()->create(['order_id' => $order->id, 'logistic_number' => $request->logistic_number]);
-            OrderIssue::query()->where('id',$request->id)->update(['second_client_no' => $order->client_code]);
-            return ['success' => true, 'order' => $order, 'package' => $orderPackage,'second_client_no' => $order->client_code];
+            $message = $service->updateSecondLogisticNumber($request->input('id'), $request->logistic_number);
+            LogService::log(__METHOD__,__FUNCTION__,json_encode($request->getContent()));
+            return $message;
         } catch (Exception $e) {
-            LogService::log(__METHOD__,__FUNCTION__,'添加问题件二次订单快递单号'.json_encode($request->getContent().$e->getMessage().$e->getTraceAsString()));
-            return ['success'=>false,'fail_info'=>$e->getMessage()];
+            LogService::log(__METHOD__,__FUNCTION__,json_encode($request->getContent()).$e->getMessage().$e->getTraceAsString());
+            return ['success'=>false,$e->getMessage()];
         }
     }
-
-
-
 }

+ 14 - 7
app/OrderIssue.php

@@ -12,11 +12,18 @@ class OrderIssue extends Model
 
     protected $fillable = [
         'order_id', 'created_at', 'rejected_bill_id', 'rejecting_status', 'result_explain','logistic_number_return',
-        'situation_explain', 'order_issue_type_id', 'second_order_id', 'is_new_rejecting','second_client_no',
+        'situation_explain', 'order_issue_type_id', 'second_order_id', 'is_new_rejecting','second_client_no','second_logistic_number',
         'final_status', 'logistic_indemnity_money', 'logistic_express_remission', 'baoshi_indemnity_money', 'baoshi_express_remission', 'user_workgroup_id'];
-
+    /*
+     * second_client_no 二次客户订单号
+     * second_logistic_number 二次运单号 【二次运单号可以单独存在,当二次客户订单号有对应的订单信息时,显示的是二次客户订单号对应的运单号,没有的话显示二次原单号】
+     * rejecting_status
+     * result_explain 情况说明
+     * final_status
+     * situation_explain
+     */
     protected $appends = [
-        'secondLogisticNumber',
+//        'secondLogisticNumber',
         'createLog',
         'endLog',
         'processingTime',
@@ -59,10 +66,10 @@ class OrderIssue extends Model
         return $this->hasOne('App\Order', 'client_code', 'second_client_no');
     }
 
-    public function getSecondLogisticNumberAttribute()
-    {
-        return $this['secondOrder']['code'] ?? '';
-    }
+//    public function getSecondLogisticNumberAttribute()
+//    {
+//        return $this['secondOrder']['code'] ?? '';
+//    }
 
     public function getCreateLogAttribute()
     {

+ 15 - 0
app/Services/OrderIssueService.php

@@ -424,4 +424,19 @@ class OrderIssueService
         }
         return OrderIssue::query()->where('id',$id)->update(['second_client_no'=>$secondClientNo]) > 0;
     }
+
+    public function updateSecondLogisticNumber($id,$logisticNumber)
+    {
+        $orderIssue = OrderIssue::query()->where('id',$id)->first();
+        $order = app(OrderService::class)->getOrderByLogisticNumber($logisticNumber);
+        if(!$order){
+            $orderIssue->update(['second_logistic_number' => $logisticNumber]);
+
+            return ['success'=>true,'second_logistic_number' => $logisticNumber];
+        }
+        $orderIssue->update(['second_client_no' => $order->client_code]);
+        $order = Order::query()->with(['packages.commodities.commodity','logistic'])
+            ->where('id',$order->id)->first();
+        return ['success' => true,'order' =>$order];
+    }
 }

+ 34 - 0
database/migrations/2020_10_22_102316_change_order_issues_table.php

@@ -0,0 +1,34 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class ChangeOrderIssuesTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('order_issues', function (Blueprint $table) {
+            // 二次快递单号
+            $table->string('second_logistic_number')->index()->nullable()->comment('二次运单号')->after('second_client_no');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('order_issues', function (Blueprint $table) {
+            // 二次快递单号
+            $table->dropColumn('second_logistic_number');
+        });
+    }
+}

+ 10 - 12
resources/views/order/issue/index.blade.php

@@ -283,7 +283,7 @@
                         </td>
 
                         <td class="p-0 m-0 child-layer-3" v-if="!isShowRejectedBill && index === 0 " style="width:50px;" :rowspan="orderIssues.length" >
-                            <span class="btn  btn-outline-secondary "  @click="showRejectedBill"  :style="orderIssues.length>4 ?'{height: 200px;line-height: 100px':''" >展开退单列</span>
+                            <span class="btn btn-outline-secondary"  @click="showRejectedBill"  :style="orderIssues.length>4 ?'{height: 200px;line-height: 100px':''" >展开退单列</span>
                         </td>
 
                         <td class="p-0 child-layer-3-hide" :id="orderIssue.id+'rejectedBill'" valign="middle" align="center" colspan="5" v-if="isShowRejectedBill">
@@ -402,7 +402,7 @@
                                     </div>
                                 </div>
 
-                                <template v-if="orderIssue.second_order !== null">
+                                <div v-if="orderIssue.second_order !== null">
                                     <div class="text-center m-0" :id="'secondOrderNumbers'+orderIssue.id"
                                          :class="orderIssue.seconderCount > 1 ? 'collapse':''"
                                          :data-value="orderIssue.seconderCount = 0">
@@ -417,7 +417,10 @@
                                             @click="toggleseCondOrderNumbers(orderIssue.id,orderIssue.second_order.logisticNumbers.length)">
                                         分箱@{{ orderIssue.second_order.logisticNumbers.length }}件,点击展开
                                     </button>
-                                </template>
+                                </div>
+                                <div v-else-if="orderIssue.second_order === null">
+                                    @{{orderIssue.second_logistic_number}}
+                                </div>
                             </td>
                             <td class="child-layer-3-hide p-0" colspan="3" v-if="isShowSecondOrderInfo">
                                 <template v-if="orderIssue.second_order!==null" class=" p-0">
@@ -1366,21 +1369,16 @@
                     let logisticNumber = $('#secondLogisticNumber-'+orderIssue.id).val()
                     let data = {id:orderIssue.id,logistic_number:logisticNumber,client_code:orderIssue.second_client_no}
                     let _this = this;
-                    axios.post('{{url('apiLocal/order/issue/secondOrderAddOrderPackage')}}',data).then(function(response){
+                    axios.post('{{url('apiLocal/order/issue/editSecondLogisticNumber')}}',data).then(function(response){
                         if(response.data.success){
                             tempTip.setDuration(2000)
                             tempTip.showSuccess('添加成功')
                             if(response.data.order != null){
                                 orderIssue.second_order = response.data.order
+                                orderIssue.second_client_no = response.data.order.client_code
                             }
-                            if(orderIssue.second_order.packages == null){
-                                orderIssue.second_order.packages = []
-                            }
-                            if(response.data.package != null){
-                                orderIssue.second_order.packages.push(response.data.package)
-                            }
-                            if( response.data.second_client_no != null) {
-                                orderIssue.second_client_no = response.data.second_client_no
+                            if(response.data.second_logistic_number != null){
+                                orderIssue.second_logistic_number = response.data.second_logistic_number
                             }
                             _this.edit.orderIssue.id = ''
                             _this.edit.orderIssue.showId = ''

+ 1 - 1
routes/apiLocal.php

@@ -49,7 +49,7 @@ Route::group(['prefix' => 'order'], function () {
         Route::post('updateLogisticNumberReturn','OrderIssueController@updateLogisticNumberReturnApi');
         Route::post('editSecondClientNo','OrderIssueController@editSecondClientNoApi');
         Route::post('endOrderIssues','OrderIssueController@endOrderIssuesApi');
-        Route::post('secondOrderAddOrderPackage','OrderIssueController@secondOrderAddOrderPackageApi');
+        Route::post('editSecondLogisticNumber','OrderIssueController@editSecondLogisticNumberApi');
 
          Route::group(['prefix'=>'onTop'],function(){
             Route::post('/store', 'OrderIssueOnTopController@apiStore');