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