ソースを参照

store表 添加is_fast_stored 字段
修改asn同步 快速入库状态

haozi 5 年 前
コミット
fd1d44e600

+ 7 - 2
app/Http/Controllers/StoreController.php

@@ -47,7 +47,9 @@ class StoreController extends Controller
     public function index()
     public function index()
     {
     {
         if(!Gate::allows('入库管理-快速入库-查询')){ return redirect(url('/'));  }
         if(!Gate::allows('入库管理-快速入库-查询')){ return redirect(url('/'));  }
-        $stores=Store::query()->with(['warehouse','owner'])->orderBy('id','DESC')->paginate(50);
+        $stores=Store::query()->with(['warehouse','owner'])
+            ->where('is_fast_stored','快速入库')
+            ->orderBy('id','DESC')->paginate(50);
         return view('store.fast.index',['stores'=>$stores]);
         return view('store.fast.index',['stores'=>$stores]);
     }
     }
 
 
@@ -107,6 +109,7 @@ class StoreController extends Controller
                 'stored_method'=>'快速入库',
                 'stored_method'=>'快速入库',
                 'status'=>'未入库',
                 'status'=>'未入库',
                 'remark'=>$WMSReflectReceive->NOTES,
                 'remark'=>$WMSReflectReceive->NOTES,
+                'is_fast_stored'=>'快速入库',
             ]);
             ]);
             $store->save();
             $store->save();
 
 
@@ -178,7 +181,9 @@ class StoreController extends Controller
 
 
     public function quickStorage($asnno,$quality,$depository_code,$isVerification = true)
     public function quickStorage($asnno,$quality,$depository_code,$isVerification = true)
     {
     {
-        $task = Store::query()->where("asn_code",$asnno)->where("stored_method","快速入库")
+        $task = Store::query()->where("asn_code",$asnno)
+            ->where("stored_method","快速入库")
+            ->orWhere('is_fast_stored','快速入库')
             ->where("status","已入库")->first();
             ->where("status","已入库")->first();
         if ($task)return ['success'=>false, 'data'=>"已被快速入库"];
         if ($task)return ['success'=>false, 'data'=>"已被快速入库"];
         $db = DB::connection('oracle');
         $db = DB::connection('oracle');

+ 5 - 1
app/Http/Controllers/StoreItemsController.php

@@ -17,7 +17,11 @@ class StoreItemsController extends Controller
      */
      */
     public function index()
     public function index()
     {
     {
-        $storeItems=StoreItems::query()->with('store')->orderBy('id','DESC')->paginate(50);
+        $storeItems=StoreItems::query()->with('store')
+            ->whereHas('store',function($query){
+                $query->where('is_fast_stored','快速入库');
+            })
+            ->orderBy('id','DESC')->paginate(50);
         return view('store.fast.storeItem',['storeItems'=>$storeItems]);
         return view('store.fast.storeItem',['storeItems'=>$storeItems]);
     }
     }
 }
 }

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

@@ -51,6 +51,7 @@ use App\Services\OwnerService;
 use App\Services\ShopService;
 use App\Services\ShopService;
 use App\Services\StoreService;
 use App\Services\StoreService;
 use App\Services\WarehouseService;
 use App\Services\WarehouseService;
+use App\Store;
 use App\StoreCheckingReceiveItem;
 use App\StoreCheckingReceiveItem;
 use App\User;
 use App\User;
 use App\Warehouse;
 use App\Warehouse;
@@ -1312,4 +1313,20 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
         dump((string)Carbon::now());
         dump((string)Carbon::now());
         dd('hendle...end');
         dd('hendle...end');
     }
     }
+    function testUpdateStores(){
+        $stores=Store::query()->where('stored_method','快速入库')->get();
+        $updated_at=Carbon::now()->toDateTimeString();
+        $updateParams = [[
+            'id', 'is_fast_stored','updated_at'
+        ]];
+        foreach ($stores as $store){
+            if ($store->stored_method!='快速入库') continue;
+            $updateParams[] = [
+                'id' => $store->id,
+                'is_fast_stored' =>'快速入库',
+                'updated_at' =>$updated_at,
+            ];
+        }
+        if (count($updateParams) > 1) app(BatchUpdateService::class)->batchUpdate('stores', $updateParams);
+    }
 }
 }

+ 2 - 1
app/Services/RejectedBillService.php

@@ -124,7 +124,8 @@ Class RejectedBillService
         foreach ($asnHerders as $asnHerder) {
         foreach ($asnHerders as $asnHerder) {
             if (($asnHerder->asnType->codename_c == '退货入库'
             if (($asnHerder->asnType->codename_c == '退货入库'
                     || $asnHerder->asnType->codename_c == '其他入库')
                     || $asnHerder->asnType->codename_c == '其他入库')
-                && $asnHerder->asnStatus->codename_c == '已入库' ||$asnHerder->asnStatus->codename_c == 'ASN关闭') {
+                && ($asnHerder->asnStatus->codename_c == '已入库'
+                    ||$asnHerder->asnStatus->codename_c == 'ASN关闭')) {
                 $updateCollect->add($asnHerder);
                 $updateCollect->add($asnHerder);
             }
             }
         }
         }

+ 4 - 4
app/Services/StoreItemService.php

@@ -23,12 +23,12 @@ Class StoreItemService
         $this->createStoreItem($asnDetails);
         $this->createStoreItem($asnDetails);
     }
     }
 
 
-    public function storeItemUpdateByWms($asnHerders,$KSRK)
+    public function storeItemUpdateByWms($asnHerders)
     {
     {
         if (!$asnHerders) return null;
         if (!$asnHerders) return null;
-        if (count($KSRK)>0) $asnHerders=$asnHerders->filter(function ($asnHerder)use($KSRK){
-            return !in_array($asnHerder->asnno,$KSRK);
-        });
+//        if (count($KSRK)>0) $asnHerders=$asnHerders->filter(function ($asnHerder)use($KSRK){
+//            return !in_array($asnHerder->asnno,$KSRK);
+//        });
         $asnDetails = $this->getAsnDetailsByAsnHerder($asnHerders);
         $asnDetails = $this->getAsnDetailsByAsnHerder($asnHerders);
         $this->updateStoreItem($asnDetails);
         $this->updateStoreItem($asnDetails);
     }
     }

+ 44 - 63
app/Services/StoreService.php

@@ -54,13 +54,10 @@ Class StoreService
         $last_time = $asnHerders->first()['addtime'];
         $last_time = $asnHerders->first()['addtime'];
         $last_records = $asnHerders->where('addtime', $last_time);
         $last_records = $asnHerders->where('addtime', $last_time);
         if (!$asnHerders) return;
         if (!$asnHerders) return;
-//        $addAsnHerders = $this->getLastRecordsByRedis($create_set, $create_key, $asnHerders);
-//        if (count($addAsnHerders) > 0) {
-            $this->createStore($asnHerders);
-            $this->deleteCacheKey($create_set, $create_keys);
-            $this->setLastRecordsByRedis($create_key, $create_set, $create_keys, $last_records);
-            $this->setAsnLastSyncAt($created_at, $last_time);
-//        }
+        $this->createStore($asnHerders);
+        $this->deleteCacheKey($create_set, $create_keys);
+        $this->setLastRecordsByRedis($create_key, $create_set, $create_keys, $last_records);
+        $this->setAsnLastSyncAt($created_at, $last_time);
     }
     }
 
 
     public function storeUpdateByWms()
     public function storeUpdateByWms()
@@ -77,14 +74,11 @@ Class StoreService
         $last_time = $asnHerders->first()['edittime'];
         $last_time = $asnHerders->first()['edittime'];
         $last_records = $asnHerders->where('edittime', $last_time);
         $last_records = $asnHerders->where('edittime', $last_time);
         if (!$asnHerders) return;
         if (!$asnHerders) return;
-//        $addAsnHerders = $this->getLastRecordsByRedis($update_set, $update_key, $asnHerders);
-//        if (count($addAsnHerders) > 0) {
-            $this->createStore($asnHerders);
-            $this->updateStore($asnHerders);
-            $this->deleteCacheKey($update_set, $update_keys);
-            $this->setLastRecordsByRedis($update_key, $update_set, $update_keys, $last_records);
-            $this->setAsnLastSyncAt($updated_at, $last_time);
-//        }
+        $this->createStore($asnHerders);
+        $this->updateStore($asnHerders);
+        $this->deleteCacheKey($update_set, $update_keys);
+        $this->setLastRecordsByRedis($update_key, $update_set, $update_keys, $last_records);
+        $this->setAsnLastSyncAt($updated_at, $last_time);
     }
     }
 
 
     public function createStore($asnHerders)
     public function createStore($asnHerders)
@@ -137,9 +131,9 @@ Class StoreService
             if ($store_asn_code_map[$asnHerder->asnno] ?? false) continue;
             if ($store_asn_code_map[$asnHerder->asnno] ?? false) continue;
             $owner = $owners_code_map[$asnHerder->customerid] ?? null;
             $owner = $owners_code_map[$asnHerder->customerid] ?? null;
             $warehouse = $warehouses_code_map[$asnHerder->warehouseid] ?? null;
             $warehouse = $warehouses_code_map[$asnHerder->warehouseid] ?? null;
-            $status=null;
-            if ($asnHerder->asnStatus && $asnHerder->asnStatus->codename_c=='完全收货') $status='已入库';
-            if ($asnHerder->asnStatus && $asnHerder->asnStatus->codename_c=='订单创建') $status='未入库';
+            $status = null;
+            if ($asnHerder->asnStatus && $asnHerder->asnStatus->codename_c == '完全收货') $status = '已入库';
+            if ($asnHerder->asnStatus && $asnHerder->asnStatus->codename_c == '订单创建') $status = '未入库';
             $params[] = [
             $params[] = [
                 'asn_code' => $asnHerder->asnno,
                 'asn_code' => $asnHerder->asnno,
                 'warehouse_id' => $warehouse->id ?? null,
                 'warehouse_id' => $warehouse->id ?? null,
@@ -193,21 +187,21 @@ Class StoreService
         $updateParams = [[
         $updateParams = [[
             'id', 'asn_code', 'warehouse_id', 'owner_id', 'stored_method', 'status', 'remark', 'updated_at'
             'id', 'asn_code', 'warehouse_id', 'owner_id', 'stored_method', 'status', 'remark', 'updated_at'
         ]];
         ]];
-        $KSRK=[];
+//        $KSRK = [];
         foreach ($asnHerders as $asnHerder) {
         foreach ($asnHerders as $asnHerder) {
             $store = $dataHandlerService->getKeyValue(['asn_code' => $asnHerder->asnno], $store_asn_code_map);
             $store = $dataHandlerService->getKeyValue(['asn_code' => $asnHerder->asnno], $store_asn_code_map);
             if (!$store) continue;
             if (!$store) continue;
-            if ($store&&$store->stored_method=='快速入库'){
-                array_push($KSRK,$store['asn_code']);
-                continue;
-            }
+//            if ($store && $store->stored_method == '快速入库') {
+//                array_push($KSRK, $store['asn_code']);
+//                continue;
+//            }
             $owner = $dataHandlerService->getKeyValue(['code' => $asnHerder->customerid], $owner_code_map);
             $owner = $dataHandlerService->getKeyValue(['code' => $asnHerder->customerid], $owner_code_map);
             $warehouse = $dataHandlerService->getKeyValue(['code' => $asnHerder->warehouseid], $warehouses_map);
             $warehouse = $dataHandlerService->getKeyValue(['code' => $asnHerder->warehouseid], $warehouses_map);
             $owner_id = $owner->id ?? null;
             $owner_id = $owner->id ?? null;
             $warehouse_id = $warehouse->id ?? null;
             $warehouse_id = $warehouse->id ?? null;
-            $status=null;
-            if ($asnHerder->asnStatus && $asnHerder->asnStatus->codename_c=='完全收货') $status='已入库';
-            if ($asnHerder->asnStatus && $asnHerder->asnStatus->codename_c=='订单创建') $status='未入库';
+            $status = null;
+            if ($asnHerder->asnStatus && $asnHerder->asnStatus->codename_c == '完全收货') $status = '已入库';
+            if ($asnHerder->asnStatus && $asnHerder->asnStatus->codename_c == '订单创建') $status = '未入库';
             if ($store->asn_code != $asnHerder->asnno ||
             if ($store->asn_code != $asnHerder->asnno ||
                 $store->warehouse_id != $warehouse_id ||
                 $store->warehouse_id != $warehouse_id ||
                 $store->owner_id != $owner_id ||
                 $store->owner_id != $owner_id ||
@@ -229,7 +223,7 @@ Class StoreService
         if (count($updateParams) > 1) $this->batchUpdate($updateParams);
         if (count($updateParams) > 1) $this->batchUpdate($updateParams);
         /** @var StoreItemService $storeItemService */
         /** @var StoreItemService $storeItemService */
         $storeItemService = app(StoreItemService::class);
         $storeItemService = app(StoreItemService::class);
-        $storeItemService->storeItemUpdateByWms($asnHerders,$KSRK);
+        $storeItemService->storeItemUpdateByWms($asnHerders);
         /** @var RejectedBillService $rejectedBillService */
         /** @var RejectedBillService $rejectedBillService */
         $rejectedBillService = app(RejectedBillService::class);
         $rejectedBillService = app(RejectedBillService::class);
         $rejectedBillService->syncLoadedStatusByAsnHerder($asnHerders);
         $rejectedBillService->syncLoadedStatusByAsnHerder($asnHerders);
@@ -281,19 +275,6 @@ Class StoreService
         return $asnLastSyncAt;
         return $asnLastSyncAt;
     }
     }
 
 
-//    public function getLastRecordsByRedis($set, $prefixKey, $asnHerders)
-//    {
-//        if (Cache::get($set)) {
-//            $addAsnHerders = collect();
-//            foreach ($asnHerders as $asnHerder) {
-//                if (Cache::get($prefixKey . $asnHerder->customerid . '_' . $asnHerder->asnno)) continue;
-//                $addAsnHerders->add($asnHerder);
-//            }
-//            return $addAsnHerders;
-//        }
-//        return $asnHerders;
-//    }
-
     public function deleteCacheKey($set, $keys)
     public function deleteCacheKey($set, $keys)
     {
     {
         if (Cache::get($set)) {
         if (Cache::get($set)) {
@@ -308,40 +289,40 @@ Class StoreService
 
 
     public function setLastRecordsByRedis($prefixKey, $set, $keys, $last_records)
     public function setLastRecordsByRedis($prefixKey, $set, $keys, $last_records)
     {
     {
-            $cacheKeys = [];
-            foreach ($last_records as $last_record) {
-                Cache::put($prefixKey . $last_record->customerid . '_' . $last_record->asnno, true);
-                array_push($cacheKeys, $prefixKey . $last_record->customerid . '_' . $last_record->asnno);
-            }
-            Cache::put($keys, $cacheKeys);
-            Cache::put($set, true);
+        $cacheKeys = [];
+        foreach ($last_records as $last_record) {
+            Cache::put($prefixKey . $last_record->customerid . '_' . $last_record->asnno, true);
+            array_push($cacheKeys, $prefixKey . $last_record->customerid . '_' . $last_record->asnno);
+        }
+        Cache::put($keys, $cacheKeys);
+        Cache::put($set, true);
     }
     }
 
 
-    public function createInstantBill(Store $store):bool
+    public function createInstantBill(Store $store): bool
     {
     {
-        if (!$store || $store->status!="已入库")return false;
-        if (!$store->storeItems)$store->load("storeItems");
+        if (!$store || $store->status != "已入库") return false;
+        if (!$store->storeItems) $store->load("storeItems");
 
 
 
 
         /** @var OwnerPriceOperationService $service */
         /** @var OwnerPriceOperationService $service */
         $service = app("OwnerPriceOperationService");
         $service = app("OwnerPriceOperationService");
 
 
-        $mapping = ["packages"=>"storeItems","商品名称"=>"name","订单类型"=>"stored_method"];
+        $mapping = ["packages" => "storeItems", "商品名称" => "name", "订单类型" => "stored_method"];
 
 
-        $work_fee = $service->matchRule($store,$mapping,$store->owner_id,"入库");
-        if ($work_fee < 0)$work_fee = null;
+        $work_fee = $service->matchRule($store, $mapping, $store->owner_id, "入库");
+        if ($work_fee < 0) $work_fee = null;
 
 
         if (app("OwnerFeeDetailService")->create([
         if (app("OwnerFeeDetailService")->create([
-            "owner_id"          => $store->owner_id,
-            "worked_at"         => $store->created_at,
-            "type"              => "收货",
-            "operation_bill"    => $store->asn_code,
-            "commodity_amount"  => array_sum(array_column($store->storeItems->toArray(),"amount")),
-            "work_fee"          => $work_fee,
-            "created_at"        => date('Y-m-d H:i:s'),
-            "outer_id"          => $store->id,
-            "outer_table_name"  => "stores",
-        ]))return true;
+            "owner_id" => $store->owner_id,
+            "worked_at" => $store->created_at,
+            "type" => "收货",
+            "operation_bill" => $store->asn_code,
+            "commodity_amount" => array_sum(array_column($store->storeItems->toArray(), "amount")),
+            "work_fee" => $work_fee,
+            "created_at" => date('Y-m-d H:i:s'),
+            "outer_id" => $store->id,
+            "outer_table_name" => "stores",
+        ])) return true;
         return false;
         return false;
     }
     }
 }
 }

+ 1 - 1
app/Store.php

@@ -12,7 +12,7 @@ class Store extends Model
     use SoftDeletes;
     use SoftDeletes;
 
 
     protected $fillable=[
     protected $fillable=[
-        'asn_code','warehouse_id','owner_id','stored_method','status','remark','deleted_at'
+        'asn_code','warehouse_id','owner_id','stored_method','status','remark','deleted_at','is_fast_stored'
     ];
     ];
 
 
 //    protected $appends=[
 //    protected $appends=[

+ 32 - 0
database/migrations/2020_12_10_113555_add_stores_is_fast_stored_column.php

@@ -0,0 +1,32 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class AddStoresIsFastStoredColumn extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('stores',function (Blueprint $table){
+            $table->enum('is_fast_stored',['无','快速入库'])->default('无')->comment('是否为快数入库');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('stores',function (Blueprint $table){
+            $table->dropColumn('is_fast_stored');
+        });
+    }
+}