yuang 4 лет назад
Родитель
Сommit
46df186a5d

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

@@ -35,6 +35,7 @@ class PackageLogisticController extends Controller
             ->whereIn('owner_id', $owner_ids)
             ->with([
                 'order.logistic',
+                'orderPackageExpressRoute',
                 'order.batch:id,wms_type',
                 'order.OracleDOCOrderHeader:orderno,notes,WaveNo',
                 'rejectedBill' => function ($query) {
@@ -127,6 +128,7 @@ class PackageLogisticController extends Controller
             ->filter($filters)
             ->with([
                 'order.logistic',
+                'orderPackageExpressRoute',
                 'rejectedBill' => function ($query) {
                     $query->select('id', 'logistic_number', 'logistic_number_return')->where('logistic_number', '原单退回');
                 },

+ 6 - 0
app/OrderPackage.php

@@ -45,6 +45,7 @@ class OrderPackage extends Model
         'is_delay_deliver',//是否延时发货
         'collecting_status',//手动揽收状态
         'route_length',//路由长度
+        'order_package_express_route_id',//快递信息ID
     ];
 
     protected $casts = [
@@ -431,4 +432,9 @@ class OrderPackage extends Model
     {
         return $this->belongsTo(RejectedBill::class, 'logistic_number', 'logistic_number_return');
     }
+
+    public function orderPackageExpressRoute(): BelongsTo
+    {
+        return $this->belongsTo(OrderPackageExpressRoute::class, 'order_package_express_route_id', 'id');
+    }
 }

+ 21 - 0
app/OrderPackageExpressRoute.php

@@ -0,0 +1,21 @@
+<?php
+
+namespace App;
+
+use Illuminate\Database\Eloquent\Model;
+
+use App\Traits\ModelLogChanging;
+
+class OrderPackageExpressRoute extends Model
+{
+    use ModelLogChanging;
+
+    protected $fillable = [
+        'order_package_express_routes',
+        'logistics_number',
+    ];
+
+    protected $casts = [
+        'order_package_express_routes' => 'array',
+    ];
+}

+ 13 - 2
app/Services/OrderPackageReceivedSyncService.php

@@ -189,8 +189,19 @@ class OrderPackageReceivedSyncService
             } else {
                 $logisticResponse['route_length'] = 0;
             }
-            OrderPackage::query()->where('logistic_number', $logisticResponse['logistic_number'])
-                ->update($logisticResponse);
+            /** @var OrderPackage $orderPackage */
+            $orderPackage = OrderPackage::query()->where('logistic_number', $logisticResponse['logistic_number'])->first();
+            $orderPackage->update($logisticResponse);
+            if (isset($logisticResponse['transfer_status']) && isset($logisticResponse['logistic_number'])) {
+                $orderPackage->orderPackageExpressRoute()->updateOrCreate(
+                    [
+                        'logistics_number' => $logisticResponse['logistic_number'],
+                    ],
+                    [
+                        'order_package_express_routes' => $logisticResponse['transfer_status'],
+                        'logistics_number' => $logisticResponse['logistic_number'],
+                    ]);
+            }
         }
     }
 

+ 33 - 0
database/migrations/2021_12_15_115011_create_order_package_express_routes_table.php

@@ -0,0 +1,33 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class CreateOrderPackageExpressRoutesTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('order_package_express_routes', function (Blueprint $table) {
+            $table->id();
+            $table->text('order_package_express_routes')->comment('路由信息');
+            $table->string('logistics_number')->unique()->comment('快递单号');
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('order_package_express_routes');
+    }
+}

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

@@ -0,0 +1,32 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class AddOrderPackageExpressRouteIdToOrderPackagesTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('order_packages', function (Blueprint $table) {
+            $table->unsignedBigInteger('order_package_express_route_id')->nullable()->unique()->comment('包裹快递路由信息ID');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('order_packages', function (Blueprint $table) {
+            $table->dropColumn('order_package_express_route_id');
+        });
+    }
+}

+ 16 - 17
resources/views/package/logistic/index.blade.php

@@ -167,30 +167,29 @@
                     <td :style="package.exception_status=='单号异常'?'color:red':''">@{{ package.logistic_number }}</td>
                     <td>@{{ package.status }}</td>
                     <td>@{{ package.exception_status }}</td>
-                    <td>@{{ package.order != null ? package.order.logistic.name : '#' }}</td>
-                    <td>@{{ package.order != null ? package.order.owner.name : '#' }}</td>
+{{--                    <td>@{{ package.order != null ? package.order.logistic.name : '#' }}</td>--}}
+{{--                    <td>@{{ package.order != null ? package.order.owner.name : '#' }}</td>--}}
                     <td>@{{ package.order != null ? package.order.province : '#' }}</td>
                     <td>@{{ package.created_at }}</td>
                     <td>@{{ package.sent_at }}</td>
                     <td>@{{ package.received_at }}</td>
                     <td>@{{ package.weighed_at }}</td>
                     <td>
-
-                        <div v-if="package.transfer_status && package.transfer_status.length>0"
+                        <div v-if="package.order_package_express_route && package.order_package_express_route.order_package_express_routes.length>0"
                              class="text-overflow-warp-200 up" :id="'route-'+i">
-                            <p v-for="route in package.transfer_status">
+                            <p v-for="route in package.order_package_express_route.order_package_express_routes">
                                 @{{ route.accept_address+" "+ route.remark+" "+route.accept_time}}
                             </p>
                         </div>
-                        <div class="text-overflow-warp-200 " v-if=" package.transfer_status && !showList[i] && package.transfer_status.length > 0">
-                            @{{ package.transfer_status[0].accept_address+" "+ package.transfer_status[0].remark+" "+package.transfer_status[0].accept_time}}
+                        <div class="text-overflow-warp-200 " v-if="package.order_package_express_route && !showList[i] && package.order_package_express_route.order_package_express_routes.length>0">
+                            @{{ package.order_package_express_route.order_package_express_routes[0].accept_address+" "+ package.order_package_express_route.order_package_express_routes[0].remark+" "+package.order_package_express_route.order_package_express_routes[0].accept_time}}
                         </div>
-                        <div @click="showRoute(i)" v-if="package.transfer_status && package.transfer_status.length > 1">
+                        <div @click="showRoute(i)" v-if="package.order_package_express_route && package.order_package_express_route.order_package_express_routes.length > 1">
                             <label class="text-center mt-0 p-0 cursor-pointer pull-left">
                                 <span class="fa"
                                       :class="package.isShowTransferStatus ? 'fa-angle-double-down' : 'fa-angle-double-right'"></span>
                                 &nbsp;<span v-if="package.transfer_status && showList[i]">收起</span><span
-                                    v-else>展开</span>&nbsp;@{{ package.transfer_status.length }} 条
+                                    v-else>展开</span>&nbsp;@{{ package.order_package_express_route.order_package_express_routes.length }} 条
                             </label>
                         </div>
                     </td>
@@ -206,13 +205,13 @@
                        <table class="table m-0 p-0 ">
                            <tr v-show="package.order_package_remarks.length > 0 && package.showMoreRemark===true" v-for="(item,index) of package.order_package_remarks" :key="item.id">
                                <td :title="item.content" style="width: 100px;overflow:hidden !important;">@{{ item.content }}</td>
-                               <td class="text-secondary">@{{ item.user.name }}</td>
+{{--                               <td class="text-secondary">@{{ item.user.name }}</td>--}}
                                <td class="text-secondary remark-created_at">@{{ item.created_at }}</td>
                                <td class="destroy"><button   class="btn-destroy-remark" @click="destroyRemark(package,item.id)">删</button></td>
                            </tr>
                            <tr v-show="(!package.showMoreRemark) && package.order_package_remarks.length > 0" >
                                <td :title="package.order_package_remarks[0]? package.order_package_remarks[0].content:''" style="width: 100px;overflow:hidden !important;">@{{ package.order_package_remarks[0]?package.order_package_remarks[0].content:'' }}</td>
-                               <td class="text-secondary">@{{ package.order_package_remarks[0]?package.order_package_remarks[0].user.name:'' }}</td>
+{{--                               <td class="text-secondary">@{{ package.order_package_remarks[0]?package.order_package_remarks[0].user.name:'' }}</td>--}}
                                <td class="text-secondary remark-created_at">@{{ package.order_package_remarks[0]?package.order_package_remarks[0].created_at:'' }}</td>
                                <td class="destroy"><button   class="btn-destroy-remark" @click="destroyRemark(package,package.order_package_remarks[0].id)">删</button></td>
                            </tr>
@@ -231,8 +230,8 @@
                     </td>
                     <td class="text-overflow-warp-200"><span v-if="package.order && package.order.issue">@{{ package.order.issue.result_explain }}</span>
                     </td>
-                    <td class="text-overflow-warp-200"><span
-                            v-if="package.order && package.order.issue && package.order.issue.issue_type">@{{ package.order.issue.issue_type.name }}</span>
+                    <td class="text-overflow-warp-200">
+{{--                        <span v-if="package.order && package.order.issue && package.order.issue.issue_type">@{{ package.order.issue.issue_type.name }}</span>--}}
                     </td>
                     <td class="text-overflow-warp-200">@{{ package.order && package.order.batch &&
                         package.order.batch.wms_type }}
@@ -243,10 +242,10 @@
                     <td class="text-overflow-warp-200"><span
                             v-if="package.order && package.order.issue && package.order.issue.logs.length >0"><span
                                 v-for="log in package.order.issue.logs">@{{ log.content }}<br></span></span></td>
-                    <td class="text-overflow-warp-200"><span
-                            v-if="package.order && package.order.issue && package.order.issue.logs.length >0"><span
-                                v-for="log in package.order.issue.logs">@{{ log && log.user && log.user.name }}<br></span></span>
-                    </td>
+{{--                    <td class="text-overflow-warp-200"><span--}}
+{{--                            v-if="package.order && package.order.issue && package.order.issue.logs.length >0"><span--}}
+{{--                                v-for="log in package.order.issue.logs">@{{ log && log.user && log.user.name }}<br></span></span>--}}
+{{--                    </td>--}}
                     <td class="text-overflow-warp-200"><span
                             v-if="package.order && package.order.issue && package.order.issue.logs.length >0"><span
                                 v-for="log in package.order.issue.logs">@{{ log.created_at }}<br></span></span></td>