haozi 5 år sedan
förälder
incheckning
5a8ab99bd1

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

@@ -17,6 +17,7 @@ use App\Log;
 use App\Logistic;
 use App\OracleActAllocationDetails;
 use App\OracleBasSKU;
+use App\OracleDOCASNHeader;
 use App\OracleDOCOrderHeader;
 use App\OracleDocOrderPackingSummary;
 use App\OracleDOCWaveDetails;
@@ -1247,8 +1248,6 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
     public function testSyncAsn()
     {
         dump('start' . (string)Carbon::now());
-//       $start=ValueStore::query()->where('name','asn_last_created_sync_at')->value('value');
-//       app(OracleDocAsnHerderService::class)->getWmsAsnOnStartDateCreate($start);
         app(StoreService::class)->storeCreateByWms();
         app(StoreService::class)->storeUpdateByWms();
         dump('end' . (string)Carbon::now());
@@ -1266,10 +1265,6 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
 
     public function testSyncCommodityByMaps()
     {
-//        $skus = ['5211900982001','5211900982002','5211900982003','5211900982004','5211200641701','5211200641702','5211200641703','5211200641704',
-//            '5211800945001','5211800945002','5211800945003','5211800945004','5215300281002','5215300281003','5215300281004',
-//            '5215300281005','5215300281006','5215300283102','5215300283103',];
-//        $ownerIds=['2'];
         dump('get_start' . (string)Carbon::now());
         $bas_skus = OracleBasSKU::query()->where('addTime', '>=', '2020-12-14 00:00:00')->select('customerid', 'sku')->get();
 

+ 18 - 16
app/Services/StoreItemService.php

@@ -87,10 +87,12 @@ Class StoreItemService
         /**
          * @var DataHandlerService $dataHandlerService
          * @var CommodityService $commodityService
+         * @var OwnerService $ownerService
          */
         $dataHandlerService = app(DataHandlerService::class);
         $commodityService = app(CommodityService::class);
-        $owners = Owner::query()->whereIn('code', array_unique(data_get($asnDetails,'*.customerid')))->get();
+        $ownerService = app(OwnerService::class);
+        $owners = $ownerService->getOwnerByCodes(array_unique(data_get($asnDetails,'*.customerid')));
         $owner_map=[];
         foreach ($owners as $owner){
             $owner_map[$owner->code]=$owner->id;
@@ -155,10 +157,12 @@ Class StoreItemService
         /**
          * @var DataHandlerService $dataHandlerService
          * @var CommodityService $commodityService
+         * @var OwnerService $ownerService
          */
         $dataHandlerService = app(DataHandlerService::class);
         $commodityService = app(CommodityService::class);
-        $owners = Owner::query()->whereIn('code', array_unique(data_get($asnDetails,'*.customerid')))->get();
+        $ownerService = app(OwnerService::class);
+        $owners = $ownerService->getOwnerByCodes(array_unique(data_get($asnDetails,'*.customerid')));
         $owner_map=[];
         foreach ($owners as $owner){
             $owner_map[$owner->id]=$owner->code;
@@ -188,23 +192,21 @@ Class StoreItemService
                 continue;
             }
             $status = null;
-            if ($asnDetail->lineStatus && $asnDetail->lineStatus->codename_c == '完全收货') $status = '已入库';
-            if ($asnDetail->lineStatus && $asnDetail->lineStatus->codename_c == '订单创建') $status = '未入库';
-            if ($storeItem->updated_at != $asnDetail->edittime ||
-            $storeItem->status !=$asnDetail->lineStatus->codename_c||
-            $storeItem->quality !=$asnDetail->qualityStatus->codename_c
-            ) {
+            if ($asnDetail['lineStatus'] && $asnDetail['lineStatus']['codename_c'] == '完全收货') $status = '已入库';
+            if ($asnDetail['lineStatus'] && $asnDetail['lineStatus']['codename_c'] == '订单创建') $status = '未入库';
+            if ($storeItem->updated_at != $asnDetail['edittime']) {
                 $updateParams[] = [
                     'id' => $storeItem->id,
                     'store_id' => $storeItem->store->id,
-                    'asn_line_code' => (string)$asnDetail->asnlineno,
-                    'name' => $asnDetail->skudescrc,
-                    'sku' => $asnDetail->sku,
-                    'amount' => $asnDetail->receivedqty ?? 0,
-                    'quality' => $asnDetail->qualityStatus ? $asnDetail->qualityStatus->codename_c :'',
-                    'status' => $status ? $status : $asnDetail->lineStatus->codename_c,
-                    'created_at' => $asnDetail->addtime ?? null,
-                    'updated_at' => $asnDetail->edittime ?? null,
+                    'asn_line_code' => (string)$asnDetail['asnlineno'],
+                    'name' => $asnDetail['skudescrc'],
+                    'sku' => $asnDetail['sku'],
+                    'barcode' => $asnDetail['basSku'] ? $asnDetail['basSku']['alternate_sku1'] : '',
+                    'amount' => $asnDetail['receivedqty'] ?? 0,
+                    'quality' => $asnDetail['qualityStatus'] ? $asnDetail['qualityStatus']['codename_c'] : '',
+                    'status' => $status ? $status : $asnDetail['lineStatus']['codename_c'],
+                    'created_at' => $asnDetail['addtime'] ?? null,
+                    'updated_at' => $asnDetail['edittime'],
                 ];
             }
         }

+ 2 - 10
app/Services/StoreService.php

@@ -174,16 +174,8 @@ Class StoreService
         $dataHandlerService = app(DataHandlerService::class);
         $stores = $this->getByWms($asnHerders);
         $store_asn_code_map = $dataHandlerService->dataHeader(['asn_code'], $stores);
-        $owner_codes = [];
-        $warehouse_codes = [];
-        foreach ($asnHerders as $asnHerder) {
-            if (!empty($asnHerder['customerid']))
-                $owner_codes[$asnHerder['customerid']] = $asnHerder['customerid'];
-            if (!empty($asnHerder['warehouseid']))
-                $warehouse_codes[$asnHerder['warehouseid']] = $asnHerder['warehouseid'];
-        }
-        $owners = $ownerService->getOwnerByCodes($owner_codes);
-        $warehouses = $wareHouseService->getWareHouseByCodes($warehouse_codes);
+        $owners = $ownerService->getOwnerByCodes(array_unique(data_get($asnHerders,'*.customerid')));
+        $warehouses = $wareHouseService->getWareHouseByCodes(array_unique(data_get($asnHerders,'*.warehouseid')));
         $owner_code_map = $dataHandlerService->dataHeader(['code'], $owners);
         $warehouses_map = $dataHandlerService->dataHeader(['code'], $warehouses);
         $updateParams = [[