Ver código fonte

Merge branch 'master' of ssh://47.103.131.176:10022/var/git/bswas

zhouzhendong 4 anos atrás
pai
commit
ee41bedccd

+ 2 - 2
app/Filters/OrderPackageFilters.php

@@ -94,10 +94,10 @@ class OrderPackageFilters
     private function has_transfer_status($has_transfer_status)
     private function has_transfer_status($has_transfer_status)
     {
     {
         if ($has_transfer_status == '是') {
         if ($has_transfer_status == '是') {
-            $this->queryBuilder->whereNotNull('transfer_status');
+            $this->queryBuilder->whereNotNull('order_package_express_route_id');
         } elseif ($has_transfer_status == '否') {
         } elseif ($has_transfer_status == '否') {
             $this->queryBuilder->where(function ($query) {
             $this->queryBuilder->where(function ($query) {
-                $query->whereNull('transfer_status');
+                $query->whereNull('order_package_express_route_id');
             });
             });
         }
         }
     }
     }

+ 9 - 5
app/Http/Controllers/PackageLogisticController.php

@@ -35,6 +35,7 @@ class PackageLogisticController extends Controller
             ->whereIn('owner_id', $owner_ids)
             ->whereIn('owner_id', $owner_ids)
             ->with([
             ->with([
                 'order.logistic',
                 'order.logistic',
+                'orderPackageExpressRoute',
                 'order.batch:id,wms_type',
                 'order.batch:id,wms_type',
                 'order.OracleDOCOrderHeader:orderno,notes,WaveNo',
                 'order.OracleDOCOrderHeader:orderno,notes,WaveNo',
                 'rejectedBill' => function ($query) {
                 'rejectedBill' => function ($query) {
@@ -127,6 +128,7 @@ class PackageLogisticController extends Controller
             ->filter($filters)
             ->filter($filters)
             ->with([
             ->with([
                 'order.logistic',
                 'order.logistic',
+                'orderPackageExpressRoute',
                 'rejectedBill' => function ($query) {
                 'rejectedBill' => function ($query) {
                     $query->select('id', 'logistic_number', 'logistic_number_return')->where('logistic_number', '原单退回');
                     $query->select('id', 'logistic_number', 'logistic_number_return')->where('logistic_number', '原单退回');
                 },
                 },
@@ -171,11 +173,13 @@ class PackageLogisticController extends Controller
         $json = [];
         $json = [];
         foreach ($orderPackages as $orderPackage) {
         foreach ($orderPackages as $orderPackage) {
             $transfer_status = "";
             $transfer_status = "";
-            if (is_array($orderPackage->transfer_status) && !empty($orderPackage->transfer_status)) {
-                foreach ($orderPackage->transfer_status as $transfer) {
-                    $transferItemStr = "";
-                    $transferItemStr = $transferItemStr . $transfer['accept_address'] ?? '' . "   " . $transfer['remark'] ?? '' . "   " . $transfer['accept_time'] ?? '';
-                    $transfer_status = $transfer_status . $transferItemStr . ",\r\n";
+            if ($orderPackage->orderPackageExpressRoute != null) {
+                if (is_array($orderPackage->orderPackageExpressRoute->order_package_express_routes) && !empty($orderPackage->orderPackageExpressRoute->order_package_express_routes)) {
+                    foreach ($orderPackage->orderPackageExpressRoute->order_package_express_routes as $transfer) {
+                        $transferItemStr = "";
+                        $transferItemStr = $transferItemStr . $transfer['accept_address'] ?? '' . "   " . $transfer['remark'] ?? '' . "   " . $transfer['accept_time'] ?? '';
+                        $transfer_status = $transfer_status . $transferItemStr . ",\r\n";
+                    }
                 }
                 }
             }
             }
             $remark = "";
             $remark = "";

+ 6 - 2
app/OrderPackage.php

@@ -36,7 +36,6 @@ class OrderPackage extends Model
         'status',
         'status',
         'sent_at',
         'sent_at',
         'received_at',
         'received_at',
-        'transfer_status',
         'owner_id',
         'owner_id',
         'uploaded_to_wms',
         'uploaded_to_wms',
         'sync_routes_flag',//同步物流信息标记
         'sync_routes_flag',//同步物流信息标记
@@ -45,10 +44,10 @@ class OrderPackage extends Model
         'is_delay_deliver',//是否延时发货
         'is_delay_deliver',//是否延时发货
         'collecting_status',//手动揽收状态
         'collecting_status',//手动揽收状态
         'route_length',//路由长度
         'route_length',//路由长度
+        'order_package_express_route_id',//快递信息ID
     ];
     ];
 
 
     protected $casts = [
     protected $casts = [
-        'transfer_status' => 'array',
         'sync_routes_flag' => 'boolean',
         'sync_routes_flag' => 'boolean',
         'is_manual_update' => 'boolean',
         'is_manual_update' => 'boolean',
         'is_delay_deliver' => 'boolean',
         'is_delay_deliver' => 'boolean',
@@ -431,4 +430,9 @@ class OrderPackage extends Model
     {
     {
         return $this->belongsTo(RejectedBill::class, 'logistic_number', 'logistic_number_return');
         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',
+    ];
+}

+ 21 - 2
app/Services/OrderPackageReceivedSyncService.php

@@ -10,6 +10,7 @@ use App\Jobs\LogisticYDSync;
 use App\Jobs\LogisticYTOSync;
 use App\Jobs\LogisticYTOSync;
 use App\Jobs\LogisticZopSync;
 use App\Jobs\LogisticZopSync;
 use App\OrderPackage;
 use App\OrderPackage;
+use App\OrderPackageExpressRoute;
 use Carbon\Carbon;
 use Carbon\Carbon;
 use Exception;
 use Exception;
 use Illuminate\Database\Eloquent\Collection;
 use Illuminate\Database\Eloquent\Collection;
@@ -34,6 +35,8 @@ class OrderPackageReceivedSyncService
         if (empty($logistic_numbers)) {
         if (empty($logistic_numbers)) {
             $query = OrderPackage::query()
             $query = OrderPackage::query()
                 ->select(['logistic_number', 'order_id', 'id'])
                 ->select(['logistic_number', 'order_id', 'id'])
+                ->whereIn('status', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, null])
+                ->whereIn('exception_status', [0, 1, 2, 3, 4, 5, 6, 7, null])
                 ->with(['order' => function ($query) {
                 ->with(['order' => function ($query) {
                     return $query->select(['id', 'logistic_id'])->with('logistic:id,name,code');
                     return $query->select(['id', 'logistic_id'])->with('logistic:id,name,code');
                 }]);
                 }]);
@@ -100,6 +103,8 @@ class OrderPackageReceivedSyncService
             ini_set('max_execution_time', 2 * 60 * 60);
             ini_set('max_execution_time', 2 * 60 * 60);
             $query = OrderPackage::query()
             $query = OrderPackage::query()
                 ->select(['logistic_number', 'order_id', 'id'])
                 ->select(['logistic_number', 'order_id', 'id'])
+                ->whereIn('status', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, null])
+                ->whereIn('exception_status', [0, 1, 2, 3, 4, 5, 6, 7, null])
                 ->whereIn('order_id', function ($query) {
                 ->whereIn('order_id', function ($query) {
                     $query->from('orders')->selectRaw('id')->whereIn('logistic_id', function ($builder) {
                     $query->from('orders')->selectRaw('id')->whereIn('logistic_id', function ($builder) {
                         $builder->from('logistics')->selectRaw('id')->where('type', '=', '快递')->whereNotIn('belong_company', ['顺丰', '中通', '韵达', '圆通', '京东']);
                         $builder->from('logistics')->selectRaw('id')->where('type', '=', '快递')->whereNotIn('belong_company', ['顺丰', '中通', '韵达', '圆通', '京东']);
@@ -189,8 +194,22 @@ class OrderPackageReceivedSyncService
             } else {
             } else {
                 $logisticResponse['route_length'] = 0;
                 $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'])) {
+                $orderPackageExpressRoute = OrderPackageExpressRoute::query()->updateOrCreate(
+                    [
+                        'logistics_number' => $logisticResponse['logistic_number'],
+                    ],
+                    [
+                        'order_package_express_routes' => $logisticResponse['transfer_status'],
+                        'logistics_number' => $logisticResponse['logistic_number'],
+                    ]);
+                $orderPackage->order_package_express_route_id = $orderPackageExpressRoute->id;
+                $orderPackage->save();
+            }
+            $orderPackage->save();
         }
         }
     }
     }
 
 

+ 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');
+        });
+    }
+}

+ 32 - 0
database/migrations/2021_12_15_160341_drop_column_transfer_status_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 DropColumnTransferStatusToOrderPackagesTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('order_packages', function (Blueprint $table) {
+            $table->dropColumn("transfer_status");
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('order_packages', function (Blueprint $table) {
+            $table->text("transfer_status");
+        });
+    }
+}

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

@@ -175,22 +175,21 @@
                     <td>@{{ package.received_at }}</td>
                     <td>@{{ package.received_at }}</td>
                     <td>@{{ package.weighed_at }}</td>
                     <td>@{{ package.weighed_at }}</td>
                     <td>
                     <td>
-
-                        <div v-if="package.transfer_status && package.transfer_status.length>0"
+                        <div v-if="package.order_package_express_route?.order_package_express_routes?.length>0"
                              class="text-overflow-warp-200 up" :id="'route-'+i">
                              class="text-overflow-warp-200 up" :id="'route-'+i">
-                            <p v-for="route in package.transfer_status">
-                                @{{ route.accept_address+" "+ route.remark+" "+route.accept_time}}
+                            <p v-for="route in package.order_package_express_route.order_package_express_routes">
+                                @{{ route.accept_address+"-"+ route.remark+"-"+route.accept_time}}
                             </p>
                             </p>
                         </div>
                         </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?.order_package_express_routes?.length>0 && !showList[i]">
+                            @{{ 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>
-                        <div @click="showRoute(i)" v-if="package.transfer_status && package.transfer_status.length > 1">
+                        <div v-if="package.order_package_express_route?.order_package_express_routes?.length>1" @click="showRoute(i)">
                             <label class="text-center mt-0 p-0 cursor-pointer pull-left">
                             <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 }} 条
+                                <span class="fa" :class="package.isShowTransferStatus ? 'fa-angle-double-down' : 'fa-angle-double-right'"></span>
+                                &nbsp;<span v-if="showList[i]">收起</span>
+                                <span v-else>展开</span>&nbsp;
+                                @{{ package.order_package_express_route.order_package_express_routes.length }} 条
                             </label>
                             </label>
                         </div>
                         </div>
                     </td>
                     </td>
@@ -231,8 +230,8 @@
                     </td>
                     </td>
                     <td class="text-overflow-warp-200"><span v-if="package.order && package.order.issue">@{{ package.order.issue.result_explain }}</span>
                     <td class="text-overflow-warp-200"><span v-if="package.order && package.order.issue">@{{ package.order.issue.result_explain }}</span>
                     </td>
                     </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>
                     <td class="text-overflow-warp-200">@{{ package.order && package.order.batch &&
                     <td class="text-overflow-warp-200">@{{ package.order && package.order.batch &&
                         package.order.batch.wms_type }}
                         package.order.batch.wms_type }}
@@ -252,9 +251,8 @@
                                 v-for="log in package.order.issue.logs">@{{ log.created_at }}<br></span></span></td>
                                 v-for="log in package.order.issue.logs">@{{ log.created_at }}<br></span></span></td>
                 </tr>
                 </tr>
             </table>
             </table>
-        {{--            <div class="text-info h5 btn btn">{{$orderPackages->count()}}/{{$orderPackages->total()}}</div>--}}
-        {{$orderPackages->appends($paginateParams)->links()}}
-        <!-- Modal -->
+            {{$orderPackages->appends($paginateParams)->links()}}
+        <!-- 模态框 -->
             <div class="modal fade" id="staticBackdrop" data-backdrop="static" data-keyboard="false" tabindex="-1"
             <div class="modal fade" id="staticBackdrop" data-backdrop="static" data-keyboard="false" tabindex="-1"
                  aria-labelledby="staticBackdropLabel" aria-hidden="true" z-index="51">
                  aria-labelledby="staticBackdropLabel" aria-hidden="true" z-index="51">
                 <div class="modal-dialog">
                 <div class="modal-dialog">
@@ -351,8 +349,8 @@
                 $.each(this.packages, function (index, item) {
                 $.each(this.packages, function (index, item) {
                     item.isShowTransferStatus = false;
                     item.isShowTransferStatus = false;
                     item.isShowRemark = false;
                     item.isShowRemark = false;
-                    if (item.transfer_status != null && item.transfer_status.length > 1) {
-                        item.transfer_status.sort(function (item1, item2) {
+                    if (item.order_package_express_route != null && item.order_package_express_route.order_package_express_routes.length > 1) {
+                        item.order_package_express_route.order_package_express_routes.sort(function (item1, item2) {
                             let date1 = new Date(item1.accept_time);
                             let date1 = new Date(item1.accept_time);
                             let date2 = new Date(item2.accept_time);
                             let date2 = new Date(item2.accept_time);
                             if (date1 - date2 > 0) return -1;
                             if (date1 - date2 > 0) return -1;