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

增加store_rejected表
入库增加判断客户订单号来创建入库单和订单的关联关系

haozi 5 лет назад
Родитель
Сommit
51e2eefc57

+ 0 - 1
app/Http/Controllers/TestController.php

@@ -1439,5 +1439,4 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
         $service = new OracleDocWaveDetailService();
         $service->clearCancelledOrderTask();
     }
-
 }

+ 2 - 2
app/Services/OracleDocAsnHerderService.php

@@ -14,7 +14,7 @@ Class OracleDocAsnHerderService
         if (!$startDate) return null;
         $oracleDocAsnHerder= OracleDOCASNHeader::query()
             ->with(['asnType', 'asnStatus'])
-            ->select('asnno','asnstatus','asntype','addtime','edittime','customerid','notes','warehouseid','asnreference3')
+            ->select('asnno','asnstatus','asntype','addtime','edittime','customerid','notes','warehouseid','asnreference3','asnreference2')
             ->where('addTime', '>=', $startDate)
             ->orderByDesc('addtime')
             ->get();
@@ -26,7 +26,7 @@ Class OracleDocAsnHerderService
         if (!$startDate) return null;
         $oracleDocAsnHerder= OracleDOCASNHeader::query()
             ->with(['asnType', 'asnStatus'])
-            ->select('asnno','asnstatus','asntype','addtime','edittime','customerid','notes','warehouseid','asnreference3')
+            ->select('asnno','asnstatus','asntype','addtime','edittime','customerid','notes','warehouseid','asnreference3','asnreference2')
             ->where('EditTime', '>=', $startDate)
             ->whereColumn('EditTime', '<>', 'addTime')
             ->orderByDesc('EditTime')

+ 31 - 0
app/Services/StoreService.php

@@ -2,10 +2,12 @@
 
 namespace App\Services;
 
+use App\Order;
 use App\Services\common\BatchUpdateService;
 use App\Services\common\DataHandlerService;
 use App\Services\common\QueryService;
 use App\Store;
+use App\StoreRejected;
 use App\ValueStore;
 use Carbon\Carbon;
 use Illuminate\Support\Facades\Cache;
@@ -59,6 +61,7 @@ Class StoreService
         $last_time = $asnHerders->first()['addtime'];
         $last_records = $asnHerders->where('addtime', $last_time);
         $this->createStore($asnHerders);
+        $this->createStoreRejected($asnHerders);
         $this->deleteCacheKey($create_set, $create_keys);
         $this->setLastRecordsByRedis($create_key, $create_set, $create_keys, $last_records);
         $this->setAsnLastSyncAt($created_at, $last_time);
@@ -80,6 +83,7 @@ Class StoreService
         $last_records = $asnHerders->where('edittime', $last_time);
         $this->createStore($asnHerders);
         $this->updateStore($asnHerders);
+        $this->createStoreRejected($asnHerders);
         $this->deleteCacheKey($update_set, $update_keys);
         $this->setLastRecordsByRedis($update_key, $update_set, $update_keys, $last_records);
         $this->setAsnLastSyncAt($updated_at, $last_time);
@@ -331,4 +335,31 @@ Class StoreService
         ])) return true;
         return false;
     }
+    public function createStoreRejected($asnHerders){
+        if (!$asnHerders) return null;
+        $stores = $this->getByWms($asnHerders);
+        $orders = Order::query()->whereIn('client_code', data_get($asnHerders, '*.asnreference2'))->get();
+        $store_rejecteds=StoreRejected::query()->whereIn('order_id',data_get($orders,'*.id'))->whereIn('store_id',data_get($stores,'*.id'))->get();
+        /** @var DataHandlerService $dataHandlerService */
+        $dataHandlerService = app(DataHandlerService::class);
+        $order_map = $dataHandlerService->dataHeader(['client_code'], $orders);
+        $store_map = $dataHandlerService->dataHeader(['asn_code'], $stores);
+        $store_rejected_map=$dataHandlerService->dataHeader(['store_id','order_id','logistic_number_return'],$store_rejecteds);
+        $insert_param=[];
+        foreach ($asnHerders as $asnHerder){
+            if (!$asnHerder->asnreference2) continue;
+            $order=$dataHandlerService->getKeyValue(['client_code'=>$asnHerder->asnreference2],$order_map);
+            $store=$dataHandlerService->getKeyValue(['asn_code'=>$asnHerder->asnno],$store_map);
+            if (!$order || !$store)continue;
+            $store_rejected=$dataHandlerService->getKeyValue(['store_id'=>$store->id,'order_id'=>$order->id,'logistic_number_return'=>$asnHerder->asnreference3],$store_rejected_map);
+            if ($store_rejected) continue;
+            $insert_param[]=[
+                'store_id'=>$store->id,
+                'order_id'=>$order->id,
+                'logistic_number_return'=>$asnHerder->asnreference3 ?? '',
+                'created_at'=>Carbon::now()->toDateTimeString(),
+            ];
+        }
+        if (count($insert_param)>0) StoreRejected::query()->insert($insert_param);
+    }
 }

+ 18 - 0
app/StoreRejected.php

@@ -0,0 +1,18 @@
+<?php
+
+namespace App;
+
+use Illuminate\Database\Eloquent\Model;
+use App\Traits\ModelTimeFormat;
+
+use App\Traits\LogModelChanging;
+
+class StoreRejected extends Model
+{
+    use LogModelChanging;
+
+    use ModelTimeFormat;
+    protected $fillable=[
+        'store_id','order_id','logistic_number_return',
+    ];
+}

+ 34 - 0
database/migrations/2021_01_14_150939_create_store_rejecteds_tables.php

@@ -0,0 +1,34 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class CreateStoreRejectedsTables extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('store_rejecteds', function (Blueprint $table) {
+            $table->id();
+            $table->bigInteger('store_id')->index();
+            $table->bigInteger('order_id')->index();
+            $table->string('logistic_number_return')->index();
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('store_rejecteds');
+    }
+}