Преглед изворни кода

Merge branch 'zengjun' of ssh://was.baoshi56.com:10022/var/git/bswas

LD пре 5 година
родитељ
комит
75405dd35d

+ 1 - 1
app/Http/Controllers/OrderIssueController.php

@@ -642,7 +642,7 @@ class OrderIssueController extends Controller
                     $order_sku_amount.= ($commodities->amount ?? '').",\r\n";
                 });
             });
-            $rejected_logistic_number = $order_issue->rejectedBill->logistic_number_return;
+            $rejected_logistic_number = $order_issue->rejectedBill->logistic_number_return ?? '';
             $rejected_Bill_remark = '';
             $rejected_is_checked = '';
             $rejected_name = ''; $rejected_barcode = '';$rejected_amount = '';

+ 21 - 110
app/Http/Controllers/TestController.php

@@ -19,6 +19,7 @@ use App\OracleActAllocationDetails;
 use App\OracleDOCOrderHeader;
 use App\OracleDocOrderPackingSummary;
 use App\OracleDOCWaveDetails;
+use App\OracleDOCWaveHeader;
 use App\Order;
 use App\OrderBin;
 use App\OrderCommodity;
@@ -141,17 +142,6 @@ class TestController extends Controller
             ]);
         }
     }
-
-    public function test4(){
-        $arr=[['id'=>3],['id'=>33],];
-        dd(data_get($arr,'*.id'));
-    }
-    public function t($a)
-    {
-        $r = new \ReflectionClass('App\Http\Controllers\UnitsController');
-        dd($r->getMethods(),$r->getConstants());
-    }
-
     public function updateLaborRemark(){
         $laborReports=LaborReport::query()->with(['remarks'=>function($query){
             return $query->whereNotNull('mark');
@@ -173,9 +163,6 @@ class TestController extends Controller
             app(BatchUpdateService::class)->batchUpdate('labor_reports',$updateParams);
         }
     }
-    public function test2(){
-    }
-
     function packageFromLog(Request $request)
     { //x        $packagesBatch=Package::where('batch_number',$batch_number)->first();
         ini_set('max_execution_time', 2500);
@@ -202,14 +189,6 @@ class TestController extends Controller
         });
         dd($uploaded . '/' . $count);
     }
-
-    function wmsSql()
-    {
-        $owner=Owner::first();
-//        $owner['phone_number'] ?? $owner['phone_number'] = '31115';
-//        $owner->update();
-        dd($owner);
-    }
     function issues()
     {
         /** @var OrderPackageService $orderPackageService */
@@ -222,18 +201,6 @@ class TestController extends Controller
             $orderPackageService->createdByOrder($item);
         }
     }
-
-    function t2(Request $request)
-    { //x        $packagesBatch=Package::where('batch_number',$batch_number)->first();
-
-
-        $inventoryCompareService = new InventoryCompareService();
-        echo ($inventoryCompareService)->getCreatingMissionCode('安桥主品');
-        echo ($inventoryCompareService)->getCreatingMissionCode('安桥主品');
-        echo ($inventoryCompareService)->getCreatingMissionCode('安桥主品');
-        echo ($inventoryCompareService)->getCreatingMissionCode('安桥主品');
-    }
-
     function tlog(Request $request)
     {
         app('LogService')->log(__METHOD__,'cczdelme'.__FUNCTION__,json_encode($request->all()),null);
@@ -244,7 +211,6 @@ class TestController extends Controller
         Cache::put('storedTest', $today);
         return "cacheing:'$today'<script>localStorage.setItem('storedTest','{$today}')</script>";
     }
-
     function getCache(Request $request)
     {
         $cache = Cache::get('storedTest');
@@ -275,13 +241,8 @@ class TestController extends Controller
             oci_bind_by_name($stmt, ':IN_UserID', $IN_UserID);
             oci_bind_by_name($stmt, ':OUT_Return_Code', $OUT_Return_Code);
             return oci_execute($stmt);
-
         }
-
-
     }
-
-
     function packageT(Request $request)
     {
         $package = Package::where('created_at', '<', '2020-07-08')->whereNotNull('logistic_number')->first();
@@ -324,7 +285,6 @@ class TestController extends Controller
         }
     }
 
-
     public function mergerPackageData()
     {
         ini_set('max_execution_time', 36000);
@@ -752,7 +712,6 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
 
         Commodity::destroy($deleteCommodities);
     }
-
     /*1*/
     function socket(Request $request)
     {/**/
@@ -810,28 +769,6 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
     }
 
 
-
-
-    public function test11()
-    {
-        $rejectedBills = RejectedBill::query()
-            ->where('created_at','>=','2020-11-10 18:00:22')
-            ->where('created_at','<=','2020-11-11 00:00:00')
-            ->get();
-        $update = [['id','logistic_number']];
-        $rejectedBills->each(function ($rejectedBill)use(&$update){
-            if($rejectedBill->logistic_number == '原单退回'){
-                $details = OracleActAllocationDetails::query()->with('oracleDocOrderHeader')->whereHas('oracleDocOrderHeader',function($query)use($rejectedBill){
-                    $query->where('SOReference1',$rejectedBill->order_number);
-                })->get()->groupBy('picktotraceid');
-                if($details->count() == 1){
-                    $update[] = ['id'=> $rejectedBill->id ,'logistic_number'=>$rejectedBill->logistic_number_return];
-                }
-            }
-        });
-        app('RejectedBillService')->batchUpdate($update);
-    }
-
     public function output()
     {
         /** @var CacheService $cacheService */
@@ -959,10 +896,6 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
         app(StoreService::class)->insertStore($param);
         var_dump('end',Carbon::now());
     }
-    public  function  testSyncAsn(){
-        $startDate=Carbon::parse('2020-11-12 17:48:00')->subSeconds(65)->format('Y-m-d H:i:s');
-        app(StoreService::class)->syncWmsAsnData($startDate);
-    }
 
     public function changeOrder()
     {
@@ -1002,10 +935,7 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
     public function view(){
         return view('test');
     }
-    public function tdel(){
-        echo '223232323';
-        return 'asdfsadfsdf';
-    }
+
     public function cleanOrderRepeat(){
 
         ini_set('max_execution_time',6500);
@@ -1068,16 +998,6 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
         echo $i;
     }
 
-    public function orderTrackingImportTest(Request $request)
-    {
-        $file = $request->file('file');
-        ini_set('max_execution_time',4000);
-        ini_set('memory_limit', '1024M');
-        $extension = $request->file()['file']->getClientOriginalExtension();
-        $extension[0] = strtoupper($extension[0]);
-        Excel::import(new OrderTrackingImport(), $request->file('file')->path(), null, $extension);
-    }
-
     public function testImp()
     {
         $client_no = null;
@@ -1135,34 +1055,6 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
 //
 //    }
 
-    public function testSyncOrder()
-     {
-        $carbon =Carbon::now()->subHours(1);
-        $date = '2020-05-18 18:13:50';
-        $orderHeader = OracleDOCOrderHeader::query()->selectRaw(implode(',',OracleDOCOrderHeaderService::$columns))
-            ->with(['oracleBASCustomer'=>function($query){
-                $query->selectRaw('BAS_CUSTOMER.CustomerID,BAS_CUSTOMER.Customer_Type,BAS_CUSTOMER.Descr_C,BAS_CUSTOMER.Active_Flag');
-            },'oracleDOCOrderDetails'=>function($query){
-                $query->selectRaw('doc_order_details.orderNo,doc_order_details.customerid,doc_order_details.sku,doc_order_details.QtyOrdered');
-            }, 'actAllocationDetails'=>function($query){
-                $query->selectRaw('ACT_Allocation_Details.AllocationDetailsID,ACT_Allocation_Details.OrderNo,ACT_Allocation_Details.Qty_Each,ACT_Allocation_Details.PickToTraceID,ACT_Allocation_Details.CustomerID,ACT_Allocation_Details.Sku');
-            },'oracleBASCode'=>function($query){
-                $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code');
-            }])
-            ->where('DOC_Order_Header.addTime','>=',$carbon)
-            ->get();
-        /** @var OrderService $service */
-        $service = app('OrderService');
-        $service->syncOrder($orderHeader);
-    }
-
-    public function OrderSync(){
-        dump(Carbon::now());
-        $tack = new SyncWMSOrderTask();
-        $tack->handle();
-        dump(Carbon::now());
-    }
-
     public function reNewBatches3()
     {
         $batches=Batch::query()->where('id','>',324)->get('code');
@@ -1232,4 +1124,23 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
         dump((string)Carbon::now());
         dd('hendle...end');
     }
+
+    public function testSyncWaveNo()
+    {
+        $waveHeader = OracleDOCWaveHeader::query()->where('waveno','W201209000024')->first();
+//        Batch::query()->create([
+//            'code' => $waveHeader->waveno,
+//            'wms_created_at' => $waveHeader->addtime,
+//            'remark' => $waveHeader->descr,
+//            'wms_status' => '99',
+//        ]);
+        $waveHeaderDetails = OracleDOCWaveDetails::query()->where('waveno',$waveHeader->waveno)->get();
+        $orderNos = $waveHeaderDetails->map(function($item){
+            return $item->orderno;
+        });
+        $orderHeaderService = new OracleDOCOrderHeaderService();
+        $orderHeaders = $orderHeaderService->getOrderInfoByOrderNos($orderNos);
+        $orderService = new OrderService();
+        $orderService->syncOrderByWMSOrderHeaders($orderHeaders);
+    }
 }

+ 2 - 0
app/Order.php

@@ -136,6 +136,7 @@ class Order extends Model
     {
         return
             $this['code'] == $order['code'] &&
+            $this['batch_id'] == $order['batch_id'] &&
             $this['warehouse_id'] == $order['warehouse_id'] &&
             $this['owner_id'] == $order['owner_id'] &&
             $this['shop_id'] == $order['shop_id'] &&
@@ -156,6 +157,7 @@ class Order extends Model
     public function assignValueByOrder($order)
     {
         $this['code'] = $order['code'] ;
+        $this['batch_id'] = $order['batch_id'] ;
         $this['warehouse_id'] = $order['warehouse_id'] ;
         $this['owner_id'] = $order['owner_id'] ;
         $this['shop_id'] = $order['shop_id'] ;

+ 6 - 0
app/Services/BatchService.php

@@ -51,4 +51,10 @@ Class BatchService
         //执行总任务
     }
 
+    public function getBatchByCodes($codes)
+    {
+        if(empty($codes))return collect();
+        if(count($codes) == 0)return collect();
+        return Batch::query()->whereIn('code',$codes)->get();
+    }
 }

+ 1 - 1
app/Services/LogisticService.php

@@ -104,7 +104,7 @@ Class LogisticService
         return Cache::remember("getLogisticByCode_{$code}", config('database.cache.expirations.rarelyChange'), function()use($code){
             $logistic = Logistic::query()->where('code',$code)->first();
             if($logistic)return $logistic;
-            $baseCustomers = app('OracleBasCustomerService')->first(['Customer_Type'=>'CA','CustomerID'=>'$code']);
+            $baseCustomers = app('OracleBasCustomerService')->first(['Customer_Type'=>'CA','CustomerID'=>$code]);
             if(!$baseCustomers)return null;
             try {
                 $logistic = Logistic::query()->create(['name' => $baseCustomers['descr_c'], 'code' => $baseCustomers['customerid']]);

+ 31 - 29
app/Services/OracleDOCOrderHeaderService.php

@@ -2,11 +2,12 @@
 
 namespace App\Services;
 
+use App\OracleActAllocationDetails;
+use App\OracleBasCode;
+use App\OracleBasCustomer;
 use App\OracleDOCOrderDetail;
 use App\OracleDOCOrderHeader;
 use App\Owner;
-use Illuminate\Support\Arr;
-use Illuminate\Support\Str;
 
 Class OracleDOCOrderHeaderService
 {
@@ -20,9 +21,24 @@ Class OracleDOCOrderHeaderService
         'DOC_Order_Header.CarrierName', 'DOC_Order_Header.LastShipmentTime','DOC_Order_Header.EDISendFlag',
         'DOC_Order_Header.SOReference5', 'DOC_Order_Header.C_Tel2','DOC_Order_Header.Transportation',
         'DOC_Order_Header.WareHouseId','DOC_Order_Header.SOStatus','DOC_Order_Header.C_Tel1','DOC_Order_Header.C_District',
-        'DOC_Order_Header.IssuePartyName','DOC_Order_Header.OrderType'
+        'DOC_Order_Header.IssuePartyName','DOC_Order_Header.OrderType','DOC_Order_Header.WaveNo'
     ];
 
+    private function getQuery(){
+        return OracleDOCOrderHeader::query()->selectRaw(implode(',',self::$columns))
+            ->with(['oracleBASCustomer'=>function($query){
+                $query->selectRaw('BAS_CUSTOMER.CustomerID,BAS_CUSTOMER.Customer_Type,BAS_CUSTOMER.Descr_C,BAS_CUSTOMER.Active_Flag');
+            },'oracleDOCOrderDetails'=>function($query){
+                $query->selectRaw('doc_order_details.orderNo,doc_order_details.customerid,doc_order_details.sku,doc_order_details.QtyOrdered,doc_order_details.Location');
+            }, 'actAllocationDetails'=>function($query){
+                $query->selectRaw('ACT_Allocation_Details.AllocationDetailsID,ACT_Allocation_Details.OrderNo,ACT_Allocation_Details.Qty_Each,ACT_Allocation_Details.PickToTraceID,ACT_Allocation_Details.CustomerID,ACT_Allocation_Details.Sku');
+            },'oracleBASCode'=>function($query){
+                $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code');
+            },'orderType'=>function($query){
+                $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code');
+            }]);
+    }
+
     function first(array $params){
         $order = OracleDOCOrderHeader::query();
         foreach ($params as $column => $value){
@@ -67,40 +83,26 @@ Class OracleDOCOrderHeaderService
 
     public function getWMSOrderOnStartDate($startDate)
     {
-        return OracleDOCOrderHeader::query()->selectRaw(implode(',',self::$columns))
-            ->with(['oracleBASCustomer'=>function($query){
-                $query->selectRaw('BAS_CUSTOMER.CustomerID,BAS_CUSTOMER.Customer_Type,BAS_CUSTOMER.Descr_C,BAS_CUSTOMER.Active_Flag');
-            },'oracleDOCOrderDetails'=>function($query){
-                $query->selectRaw('doc_order_details.orderNo,doc_order_details.customerid,doc_order_details.sku,doc_order_details.QtyOrdered,doc_order_details.Location');
-            }, 'actAllocationDetails'=>function($query){
-                $query->selectRaw('ACT_Allocation_Details.AllocationDetailsID,ACT_Allocation_Details.OrderNo,ACT_Allocation_Details.Qty_Each,ACT_Allocation_Details.PickToTraceID,ACT_Allocation_Details.CustomerID,ACT_Allocation_Details.Sku');
-            },'oracleBASCode'=>function($query){
-                $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code');
-            },'orderType'=>function($query){
-                $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code');
-            }])
-            ->where('DOC_Order_Header.addTime','>=',$startDate)
+        return  $this->getQuery()->where('DOC_Order_Header.addTime','>=',$startDate)
             ->whereColumn('DOC_Order_Header.editTime','=','DOC_Order_Header.addTime')
             ->orderByDesc('DOC_Order_Header.addTime')
             ->get();
     }
 
     public function getWMSOrderOnEditDate($startDate){
-        return OracleDOCOrderHeader::query()->selectRaw(implode(',',self::$columns))
-            ->with(['oracleBASCustomer'=>function($query){
-                $query->selectRaw('BAS_CUSTOMER.CustomerID,BAS_CUSTOMER.Customer_Type,BAS_CUSTOMER.Descr_C,BAS_CUSTOMER.Active_Flag');
-            },'oracleDOCOrderDetails'=>function($query){
-                $query->selectRaw('doc_order_details.orderNo,doc_order_details.customerid,doc_order_details.sku,doc_order_details.QtyOrdered,doc_order_details.Location');
-            }, 'actAllocationDetails'=>function($query){
-                $query->selectRaw('ACT_Allocation_Details.AllocationDetailsID,ACT_Allocation_Details.OrderNo,ACT_Allocation_Details.Qty_Each,ACT_Allocation_Details.PickToTraceID,ACT_Allocation_Details.CustomerID,ACT_Allocation_Details.Sku');
-            },'oracleBASCode'=>function($query){
-                $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code');
-            },'orderType'=>function($query){
-                $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code');
-            }])
-            ->where('DOC_Order_Header.editTime','>=',$startDate)
+        return  $this->getQuery()->where('DOC_Order_Header.editTime','>=',$startDate)
             ->whereColumn('DOC_Order_Header.editTime','!=','DOC_Order_Header.addTime')
             ->orderByDesc('DOC_Order_Header.editTime')
             ->get();
     }
+
+    public function getOrderInfoByOrderNos($orderNos)
+    {
+        if(empty($orderNos))return collect();
+        if(count($orderNos) == 0)return collect();
+        return $this->getQuery()->whereIn('DOC_Order_Header.OrderNo',$orderNos)->get();
+    }
+
+
+
 }

+ 60 - 10
app/Services/OrderService.php

@@ -28,6 +28,25 @@ use Illuminate\Support\Facades\Redis;
 
 class OrderService
 {
+    /**
+     * @var OracleDOCOrderHeaderService $oracleDOCOrderHeaderService
+     * @var OrderPackageService $packageService
+     * @var OrderCommodityService $orderCommodityService
+     * @var BatchService $batchService
+     */
+    private $oracleDOCOrderHeaderService;
+    private $packageService;
+    private $orderCommodityService;
+    private $batchService;
+
+    public function __construct()
+    {
+        $this->oracleDOCOrderHeaderService = app('OracleDocOrderHeaderService');
+        $this->packageService = app('OrderPackageService');
+        $this->orderCommodityService = app('OrderCommodityService');
+        $this->batchService = app('BatchService');
+    }
+
     public function batchUpdate($params){
         return app(BatchUpdateService::class)->batchUpdate('orders',$params);
     }
@@ -815,8 +834,10 @@ class OrderService
         $logisticService = app("LogisticService");
         $shopService = app('ShopService');
         $warehouseService = app('WarehouseService');
-        $owner_codes = [];$logistic_codes = [];$warehouse_codes = [];$shop_names = [];
+        $owner_codes = [];$logistic_codes = [];$warehouse_codes = [];$shop_names = [];$batch_codes = [];
         foreach ($orderHeaders as $orderHeader) {
+            if(!empty($orderHeader['waveno']))
+                $batch_codes[$orderHeader['waveno']] = $orderHeader['waveno'];
             if(!empty($orderHeader['customerid']))
                 $owner_codes[$orderHeader['customerid']] = $orderHeader['customerid'];
             if(!empty($orderHeader['warehouseid']))
@@ -833,12 +854,13 @@ class OrderService
         $logistics = $logisticService->getLogisticByCodes($logistic_codes);
         $shops = $shopService->getShopByCodeMap($shop_names);
         $warehouses = $warehouseService->getWareHouseByCodes($warehouse_codes);
+        $batches = $this->batchService->getBatchByCodes($batch_codes);
 
         $orders = $this->getByWmsOrders($orderHeaders);
 
-        $created_params = $this->getCreateOrderModelsByWMSOrderHeaders($orderHeaders,$orders,$warehouses,$owners,$logistics,$shops); //3s
+        $created_params = $this->getCreateOrderModelsByWMSOrderHeaders($orderHeaders,$orders,$warehouses,$owners,$logistics,$shops,$batches); //3s
 
-        $update_order = $this->getUpdateOrderModelByWMSOrderHeaders($orderHeaders,$orders,$warehouses,$owners,$logistics,$shops);
+        $update_order = $this->getUpdateOrderModelByWMSOrderHeaders($orderHeaders,$orders,$warehouses,$owners,$logistics,$shops,$batches);
 
 
         // 转换插入 3s
@@ -848,7 +870,7 @@ class OrderService
             });
         }
         $update_params = [
-            ['id','code','warehouse_id','owner_id','shop_id','logistic_id','consignee_name','consignee_phone','province','city','district','address','client_code','wms_status','created_at','updated_at','wms_edittime','order_type']
+            ['id','code','warehouse_id','owner_id','batch_id','shop_id','logistic_id','consignee_name','consignee_phone','province','city','district','address','client_code','wms_status','created_at','updated_at','wms_edittime','order_type']
         ];
 
         $update_order->each(function($item)use(&$update_params){
@@ -859,7 +881,7 @@ class OrderService
         $this->batchUpdate($update_params);
     }
 
-    public function getCreateOrderModelsByWMSOrderHeaders(&$orderHeaders,&$orders,&$warehouses,&$owners,&$logistics,&$shops)
+    public function getCreateOrderModelsByWMSOrderHeaders(&$orderHeaders,&$orders,&$warehouses,&$owners,&$logistics,&$shops,&$batches)
     {
         /** @var DataHandlerService $dataHandlerService */
         $dataHandlerService = app('DataHandlerService');
@@ -869,20 +891,20 @@ class OrderService
         $logistic_map = $dataHandlerService->dataHeader(['code'],$logistics);
         $shop_map = $dataHandlerService->dataHeader(['name','owner_id'],$shops);
         $order_map = $dataHandlerService->dataHeader(['code'],$orders);
-
+        $batch_map = $dataHandlerService->dataHeader(['code'],$batches);
         $inner_params  = [];
         $date = (string)Carbon::now();
         foreach ($orderHeaders as $orderHeader) {
             $order_no = $orderHeader->orderno;
             $order = $dataHandlerService->getKeyValue(['code'=>$order_no],$order_map);
             if(isset($order))continue;
-            $order_model = $this->getCreateOrderModels($orderHeader,$warehouse_map,$owner_map,$logistic_map,$shop_map,$date);
+            $order_model = $this->getCreateOrderModels($orderHeader,$warehouse_map,$owner_map,$logistic_map,$shop_map,$batch_map,$date);
             $inner_params[] = $order_model;
         }
         return $inner_params;
     }
 
-    public function getUpdateOrderModelByWMSOrderHeaders(&$orderHeaders,&$orders,&$warehouses,&$owners,&$logistics,&$shops)
+    public function getUpdateOrderModelByWMSOrderHeaders(&$orderHeaders,&$orders,&$warehouses,&$owners,&$logistics,&$shops,&$batches)
     {
         /**
          * @var DataHandlerService $dataHandlerService
@@ -894,12 +916,13 @@ class OrderService
         $owner_map = $dataHandlerService->dataHeader(['code'],$owners);
         $logistic_map = $dataHandlerService->dataHeader(['code'],$logistics);
         $shop_map = $dataHandlerService->dataHeader(['name','owner_id'],$shops);
+        $batch_map = $dataHandlerService->dataHeader(['code'],$batches);
         $collect = collect();
         $date = (string)Carbon::now();
         foreach ($orders as $order) {
             $orderHeader = $dataHandlerService->getKeyValue(['orderno'=>$order->code],$orderHeader_map);
             if(!$orderHeader)continue;
-            $order_model = $this->getCreateOrderModels($orderHeader,$warehouse_map,$owner_map,$logistic_map,$shop_map,$date);
+            $order_model = $this->getCreateOrderModels($orderHeader,$warehouse_map,$owner_map,$logistic_map,$shop_map,$batch_map,$date);
             if(!$order->isEquals($order_model)){
                 $order->assignValueByOrder($order_model);
                 $collect->push($order);
@@ -908,19 +931,21 @@ class OrderService
         return $collect;
     }
 
-    public function getCreateOrderModels(&$orderHeader,&$warehouse_map,&$owner_map,&$logistic_map,&$shop_map,$date)
+    public function getCreateOrderModels(&$orderHeader,&$warehouse_map,&$owner_map,&$logistic_map,&$shop_map,&$batch_map,$date)
     {
         /** @var DataHandlerService $dataHandlerService */
         $dataHandlerService = app('DataHandlerService');
         $warehouse = $dataHandlerService->getKeyValue(['code'=>$orderHeader->warehouseid],$warehouse_map);
         $owner = $dataHandlerService->getKeyValue(['code'=>$orderHeader->customerid],$owner_map);
         $logistic = $dataHandlerService->getKeyValue(['code'=>$orderHeader->userdefine1],$logistic_map);
+        $batch = $dataHandlerService->getKeyValue(['code'=>$orderHeader->waveno],$batch_map);
         $shop['id'] = null;
         if($orderHeader->issuepartyname != null && $orderHeader->issuepartyname != '' ){
             $shop = $dataHandlerService->getKeyValue(['name'=>$orderHeader->issuepartyname ?? '','owner_id'=>$owner->id??''],$shop_map);
         }
         return [
             'code'=>$orderHeader['orderno'],
+            'batch_id' =>$batch['id'] ?? null,
             'warehouse_id' => $warehouse['id'] ?? null,
             'owner_id' => $owner['id'] ?? null,
             'shop_id' => $shop['id'] ?? null,
@@ -1156,6 +1181,30 @@ class OrderService
         }
     }
 
+    public function syncOrderByWmsOrderNos($orderNos)
+    {
+        if(empty($orderNos))return ;
+        if(count($orderNos)==0)return;
+        $orderHeaders = $this->oracleDOCOrderHeaderService->getOrderByOrderNos($orderNos);
+        $this->syncOrderByWMSOrderHeaders($orderHeaders);
+    }
+
+    public function syncOrderInfoByWmsOrderNos($orderNos)
+    {
+        if(empty($orderNos))return ;
+        if(count($orderNos)==0)return;
+        $orderHeaders = $this->oracleDOCOrderHeaderService->getOrderInfoByOrderNos($orderNos);
+        $this->syncOrderInfoByWMSOrderHeaders($orderHeaders);
+    }
+
+    public function syncOrderInfoByWMSOrderHeaders($orderHeaders){
+        if(empty($orderNos))return ;
+        if(count($orderNos)==0)return;
+        $this->syncOrderByWMSOrderHeaders($orderHeaders);
+        $this->orderCommodityService->syncOrderCommodities($orderHeaders);
+        $this->packageService->syncOrderPackage($orderHeaders);
+    }
+
     public function update(array $params, array $values)
     {
         $query = Order::query();
@@ -1240,4 +1289,5 @@ class OrderService
         ]))return true;
        return false;
     }
+
 }

+ 1 - 1
app/Services/OwnerService.php

@@ -229,7 +229,7 @@ Class OwnerService
     }
 
     public function getOwnerByCode($code){
-        return Cache::remember("getOwnerByCode_{$code}", config('database.cache.expirations.owners'), function ()use($code){
+        return Cache::remember("getOwnerByCode_{$code}", config('cache.expirations.owners'), function ()use($code){
             $owner = Owner::query()->where('code',$code)->first();
             if($owner) return $owner;
             $basCustomer = app('OracleBasCustomerService')->first(['Customer_Type'=>'OW','CustomerID'=>$code]);

+ 10 - 1
database/factories/BatchFactory.php

@@ -6,7 +6,16 @@ use App\Batch;
 use Faker\Generator as Faker;
 
 $factory->define(Batch::class, function (Faker $faker) {
+    $status = ['未处理','已处理','取消','处理中','挂起','异常'];
+    $type = ['无'];
     return [
-        //
+        'code' => $faker->uuid,
+        'type' => '无',
+        'wms_type' =>$faker->name,
+        'status' => $status[rand(0,count($status)-1)],
+        'wms_status' =>$faker->name,
+        'wms_created_at'=> $faker->date(),
+        'remark' => $faker->text(20),
+        'owner_id' => 1,
     ];
 });

+ 1 - 0
database/factories/OrcaleDOCOrderHeaderFactory.php

@@ -9,6 +9,7 @@ $factory->define(OracleDOCOrderHeader::class, function (Faker $faker) {
     return [
         'orderno' => $faker->uuid,
         'customerid' => '',
+        'waveno' => '',
         'ordertime' =>$faker->time(),
         'soreference1' => $faker->uuid,
         'consigneeid' => '',

+ 47 - 0
tests/Services/BatchService/TestGetBatchByCodes.php

@@ -0,0 +1,47 @@
+<?php
+
+namespace Tests\Services\BatchService;
+
+use App\Batch;
+use App\Services\BatchService;
+use Illuminate\Foundation\Testing\RefreshDatabase;
+use Tests\TestCase;
+
+class TestGetBatchByCodes extends TestCase
+{
+//    use RefreshDatabase;
+
+    /** @var BatchService $service */
+    private $service;
+    private $data = [];
+
+    public function setUp(): void
+    {
+        parent::setUp(); // TODO: Change the autogenerated stub
+        $this->service = app('BatchService');
+        $batch = factory(Batch::class)->create();
+        $this->data['batch'] = $batch;
+    }
+
+    /**
+     * @test
+     */
+    public function getBatchByCodes()
+    {
+        $batch = $this->service->getBatchByCodes([$this->data['batch']['code']])->first();
+        $this->assertNotNull($batch);
+        $this->assertEquals($batch['code'],$this->data['batch']['code']);
+        $this->assertEquals($batch['type'],$this->data['batch']['type']);
+        $this->assertEquals($batch['wms_type'],$this->data['batch']['wms_type']);
+        $this->assertEquals($batch['status'],$this->data['batch']['status']);
+        $this->assertEquals($batch['wms_status'],$this->data['batch']['wms_status']);
+        $this->assertEquals($batch['remark'],$this->data['batch']['remark']);
+        $this->assertEquals($batch['owner_id'],$this->data['batch']['owner_id']);
+    }
+
+    public function tearDown(): void
+    {
+        $this->data['batch']->delete();
+        parent::tearDown(); // TODO: Change the autogenerated stub
+    }
+}