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

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

LD 5 лет назад
Родитель
Сommit
823d9d35ce
81 измененных файлов с 1113 добавлено и 562 удалено
  1. 57 11
      app/Console/Commands/SyncWMSOrderTask.php
  2. 1 0
      app/CustomField.php
  3. 7 0
      app/Http/Controllers/TestController.php
  4. 1 1
      app/Order.php
  5. 3 0
      app/Services/OracleDOCOrderHeaderService.php
  6. 3 1
      app/Services/OrderIssueService.php
  7. 2 2
      app/Services/OrderPackageCommoditiesService.php
  8. 128 9
      app/Services/OrderService.php
  9. 2 2
      app/Services/OwnerService.php
  10. 1 1
      app/Services/WarehouseService.php
  11. 14 0
      config/sync.php
  12. 15 0
      database/factories/CityFactory.php
  13. 27 0
      database/factories/OrderFactory.php
  14. 41 0
      database/factories/OrderIssueFactory.php
  15. 12 0
      database/factories/OrderPackageFactory.php
  16. 15 0
      database/factories/OwnerTrakingOwnerFactory.php
  17. 12 0
      database/factories/ProvinceFactory.php
  18. 2 2
      database/migrations/2020_03_09_153510_create_stores_table.php
  19. 12 11
      database/migrations/2020_03_30_112202_drop_commodity_barcode_column_to_barcode_table.php
  20. 1 1
      database/migrations/2020_05_25_152252_change_user_workgroup.php
  21. 1 1
      database/migrations/2020_06_02_130804_change_user_duty_check.php
  22. 1 1
      database/migrations/2020_07_06_160500_create_operator_logs_table_and_add_authority_and_change_processes_column_status.php
  23. 1 1
      database/migrations/2020_07_20_162421_create_labor_report_statuses_table.php
  24. 1 1
      database/migrations/2020_08_26_093946_change_inventory_missions_to_inventory_account_missions.php
  25. 1 1
      database/migrations/2020_08_26_094015_change_inventories_to_inventory_accounts.php
  26. 1 1
      database/migrations/2020_08_31_102647_add_inventory_accounts_status.php
  27. 0 33
      database/migrations/2020_09_01_111054_change_inventory_account_mission_column_checked_to_three.php
  28. 1 1
      database/migrations/2020_09_11_115414_change_labor_reports_labor_company_to_labor_company_id.php
  29. 0 33
      database/migrations/2020_09_16_115715_change_inventory_account_mission_checked_column_checked_to_four.php
  30. 2 2
      database/migrations/2020_09_23_135848_add_authorities_and_change_inventory_accounts.php
  31. 2 2
      database/migrations/2020_09_24_152015_change_labor_report_status.php
  32. 2 2
      database/migrations/2020_10_12_092325_change_inventory_account_mission_checked_column_checked_to_five.php
  33. 1 1
      database/migrations/2020_10_12_105209_add_order_track_order_code.php
  34. 4 1
      database/migrations/2020_10_19_113042_create_logistic_timings_table.php
  35. 2 2
      database/migrations/2020_11_03_114135_change_store_status_column.php
  36. 2 2
      database/migrations/2020_11_03_114310_change_store_stored_method_column.php
  37. 2 2
      database/migrations/2020_11_03_180029_change_store_items_status_column.php
  38. 2 2
      database/migrations/2020_11_13_155436_change_inventory_accounts_status_column.php
  39. 2 2
      database/migrations/2020_11_18_092138_change_inventory_accounts_status_default.php
  40. 1 1
      package-lock.json
  41. 3 1
      phpunit.xml
  42. 14 0
      public/js/app.js
  43. 4 0
      resources/sass/text.scss
  44. 3 3
      resources/views/order/index/delivering.blade.php
  45. 8 8
      resources/views/order/issue/index.blade.php
  46. 7 1
      tests/Services/CityService/FindByNameTest.php
  47. 23 3
      tests/Services/LogisticTimingService/FindByParamsTest.php
  48. 43 0
      tests/Services/OracleDOCOrderHeaderService/GetWMSOrderOnEditDateTest.php
  49. 21 10
      tests/Services/OracleDOCOrderHeaderService/GetWMSOrderOnStartDateTest.php
  50. 24 9
      tests/Services/OracleDOCOrderHeaderService/GetWmsOrderOnStartDateEditTest.php
  51. 10 1
      tests/Services/OracleDOCOrderHeaderService/GetWmsOrderOnstartDateCreateTest.php
  52. 7 14
      tests/Services/OrderIssueService/GetRecycleBinPaginateTest.php
  53. 19 5
      tests/Services/OrderIssueService/OrderIssueTagTest.php
  54. 3 8
      tests/Services/OrderIssueService/RecoverOrderIssueTest.php
  55. 21 18
      tests/Services/OrderPackageCommoditiesService/RegroupOrderCommoditiesTest.php
  56. 0 33
      tests/Services/OrderPackageCommoditiesService/SyncOrderPackageCommoditiesTest.php
  57. 0 28
      tests/Services/OrderPackageService/DeleteUnnecessaryPackageTest.php
  58. 22 4
      tests/Services/OrderPackageService/GetInnerParamsTest.php
  59. 23 12
      tests/Services/OrderPackageService/SyncOrderPackageTest.php
  60. 27 7
      tests/Services/OrderPackageService/SyncPackageByOrderHeadersTest.php
  61. 8 22
      tests/Services/OrderService/CreateOrFindOrderInfoTest.php
  62. 20 9
      tests/Services/OrderService/CreateOrFindOrderTest.php
  63. 29 0
      tests/Services/OrderService/FilterOrderByCacheTeat.php
  64. 14 4
      tests/Services/OrderService/FindOrCreateByClientCodeTest.php
  65. 15 16
      tests/Services/OrderService/GetByWmsOrdersTest.php
  66. 15 4
      tests/Services/OrderService/GetCreateOrderModelByWMSOrderHeadersTest.php
  67. 0 83
      tests/Services/OrderService/GetCreateOrderModelsTest.php
  68. 14 7
      tests/Services/OrderService/GetOrderByLogisticNumberTest.php
  69. 42 0
      tests/Services/OrderService/GetOrderSyncAtTest.php
  70. 19 3
      tests/Services/OrderService/GetParamByOrderHeaderTest.php
  71. 23 11
      tests/Services/OrderService/GetUpdateModelByWmsOrderHeadersTest.php
  72. 8 3
      tests/Services/OrderService/LogisticNumberFirstOrCreateOrderTest.php
  73. 66 0
      tests/Services/OrderService/PushOrderCreatedCacheTest.php
  74. 70 0
      tests/Services/OrderService/PushOrderUpdateCacheTest.php
  75. 53 0
      tests/Services/OrderService/SetOrderSyncAtTest.php
  76. 11 5
      tests/Services/OrderService/SyncOrderByWMSOrderHeaderTest.php
  77. 16 36
      tests/Services/OrderService/SyncOrderTest.php
  78. 5 5
      tests/Services/OrderTrackingService/CustomizedOperationTest.php
  79. 16 17
      tests/Services/OrderTrackingService/FillInOrderTrackingTest.php
  80. 0 39
      tests/Services/OrderTrackingService/GetParamsByOrderHeaderAndOrderTest.php
  81. 2 0
      tests/Services/WarehouseService/GetByWmsOrderTest.php

+ 57 - 11
app/Console/Commands/SyncWMSOrderTask.php

@@ -37,23 +37,69 @@ class SyncWMSOrderTask extends Command
      * Execute the console command.
      */
     public function handle()
+    {
+        $this->syncCreatedOrder();
+        $this->syncUpdatedOrder();
+    }
+
+    public function syncCreatedOrder()
     {
         /**
          * @var OracleDOCOrderHeaderService $oracleDOCOrderHeaderService
          * @var OrderService $orderService
          */
-        $oracleDOCOrderHeaderService = app('OracleDOCOrderHeaderService');
+        $newest         = config('sync.order_sync.cache_prefix.created_at');
+        $newest_list    = config('sync.order_sync.cache_prefix.newest_list');
+        $hasKey         = config('sync.order_sync.cache_prefix.newest_has');
+        $prefixKey      = config('sync.order_sync.cache_prefix.newest');
 
         $orderService = app('OrderService');
-        $start_date = Carbon::now()->subSeconds(60+5);
-
-        // 这段时间段内的新增
-        $orderHeaders_addTime = $oracleDOCOrderHeaderService->getWMSOrderOnStartDate($start_date);
-        // 这段时间段内的修改
-        $orderHeaders_editTime = $oracleDOCOrderHeaderService->getWMSOrderOnEditDate($start_date);
-        // 创建
-        $orderService->syncOrder($orderHeaders_addTime);
-        // 创建
-        $orderService->syncOrder($orderHeaders_editTime);
+        $oracleDOCOrderHeaderService = app('OracleDocOrderHeaderService');
+
+        $last_date = $orderService->getOrderSyncAt($newest,'newest');                              // 获取时间点
+        $orderHeaders = $oracleDOCOrderHeaderService->getWMSOrderOnStartDate($last_date);           // WMS订单
+        if(!$orderHeaders)return;
+        $last_order = $orderHeaders->first();                                                           // 时间点靠后的
+        $renewal_orders = $orderHeaders->where('addtime',$last_order->addtime);
+
+        $orderHeaders = $orderService->filterOrderByCache($orderHeaders,$newest_list);                  // 对比缓存
+
+        if(count($orderHeaders)>0 && count($orderHeaders) >0){
+            $orderService->syncOrder($orderHeaders);                                                //  同步订单
+            $orderService->cancelOrderCache($newest_list,$prefixKey);                                   //  清除缓存
+            $orderService->pushOrderCache($renewal_orders,$prefixKey,$hasKey,$newest_list);             //  添加缓存
+            $orderService->setOrderSyncAt($newest,$last_order->addtime,count($orderHeaders)>0);   //  更新时间
+        }
+    }
+
+    public function syncUpdatedOrder()
+    {
+        /**
+         * @var OracleDOCOrderHeaderService $oracleDOCOrderHeaderService
+         * @var OrderService $orderService
+         */
+        $renewal        = config('sync.order_sync.cache_prefix.updated_at');
+        $renewal_list   = config('sync.order_sync.cache_prefix.renewal_list');
+        $hasKey         = config('sync.order_sync.cache_prefix.renewal_has');
+        $prefixKey      = config('sync.order_sync.cache_prefix.renewal');
+
+        $orderService = app('OrderService');
+        $oracleDOCOrderHeaderService = app('OracleDocOrderHeaderService');
+
+        $last_date = $orderService->getOrderSyncAt($renewal,'renewal');                               // 获取时间点
+        $orderHeaders = $oracleDOCOrderHeaderService->getWMSOrderOnEditDate($last_date);                   // WMS订单
+
+        if(!$orderHeaders)return;
+        $renewal_order = $orderHeaders->first();                                                            // 时间点靠后的
+        $renewal_orders =  $orderHeaders->where('edittime',$renewal_order->edittime);
+
+        $orderHeaders = $orderService->filterOrderByCache($orderHeaders,$renewal_list);                     // 对比缓存
+
+        if(count($renewal_orders)>0 && count($orderHeaders)>0){
+            $orderService->syncOrder($orderHeaders);                                                    // 同步订单
+            $orderService->cancelOrderCache($renewal_list,$prefixKey);                                      // 清除缓存
+            $orderService->pushOrderCache($renewal_orders,$prefixKey,$hasKey,$renewal_list);                // 添加缓存
+            $orderService->setOrderSyncAt($renewal,$renewal_order->edittime,count($orderHeaders)>0);   // 更新时间
+        }
     }
 }

+ 1 - 0
app/CustomField.php

@@ -10,6 +10,7 @@ class CustomField extends Model
         'field',
         'present_name',
         'authority_name',
+        'authority_id',
         'condition_field',
         'condition_value'];
 }

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

@@ -6,6 +6,7 @@ namespace App\Http\Controllers;
 use App\Authority;
 use App\Commodity;
 use App\CommodityBarcode;
+use App\Console\Commands\SyncWMSOrderTask;
 use App\Events\CancelOrder;
 use App\Imports\OrderTrackingImport;
 use App\InventoryAccount;
@@ -1154,4 +1155,10 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
         $service = app('OrderService');
         $service->syncOrder($orderHeader);
     }
+
+    public function OrderSync(){
+        $tack = new SyncWMSOrderTask();
+        $tack->handle();
+        dump(11);
+    }
 }

+ 1 - 1
app/Order.php

@@ -14,7 +14,7 @@ class Order extends Model
         'id', 'batch_id',  'owner_id', 'status',
         'created_at', 'code', 'shop_id',  'client_code',
         'logistic_id', 'consignee_name', 'consignee_phone', 'province',
-        'city', 'district', 'address', 'wms_status','status','warehouse_id','wms_edittime'];
+        'city', 'district', 'address', 'wms_status','warehouse_id','wms_edittime'];
 
     /*
      * wms订单号             code=>DOC_ORDER_HEADER[orderno]

+ 3 - 0
app/Services/OracleDOCOrderHeaderService.php

@@ -78,6 +78,7 @@ Class OracleDOCOrderHeaderService
                 $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code');
             }])
             ->where('DOC_Order_Header.addTime','>=',$startDate)
+            ->orderByDesc('DOC_Order_Header.addTime')
             ->get();
     }
 
@@ -93,6 +94,8 @@ Class OracleDOCOrderHeaderService
                 $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code');
             }])
             ->where('DOC_Order_Header.editTime','>=',$startDate)
+            ->whereColumn('DOC_Order_Header.editTime','!=','DOC_Order_Header.addTime')
+            ->orderByDesc('DOC_Order_Header.editTime')
             ->get();
     }
 }

+ 3 - 1
app/Services/OrderIssueService.php

@@ -320,6 +320,7 @@ class OrderIssueService
         $orders = Order::query()->whereIn('code',data_get($orderHeaders,'*.orderno'))->whereHas('packages')->get();
         if($orders->count()==0)return false;
         $innerParams = [];
+        $data = Carbon::now()->format('Y-m-d H:i:s');
         foreach ($orderHeaders as $orderHeader) {
             $order = $orders->where('code',$orderHeader->orderno)->first();
             if($order==null){
@@ -331,7 +332,8 @@ class OrderIssueService
                 'result_explain' => $result_explain,
                 'imported_status' => $imported_status,
                 'custom_code' => $custom_code,
-                'hidden_tag' => $hiddenTag
+                'hidden_tag' => $hiddenTag,
+                'updated_at' => $data
             ];
         }
         try {

+ 2 - 2
app/Services/OrderPackageCommoditiesService.php

@@ -696,10 +696,10 @@ class OrderPackageCommoditiesService
             if(isset($orderAllocationDetails[$key])){
                 if(count($orderCommodity) == 1  && $orderAllocationDetails[$key]['amount'] != $orderCommodity[0]['amount']){
                     $update_params[$key] = $orderCommodity[0];
-                    $update_params['amount'] = $orderAllocationDetails[$key]['amount'];
+                    $update_params[$key]['amount'] = $orderAllocationDetails[$key]['amount'];
                 }elseif(count($orderCommodity)>1){
                     $update_params[$key] = array_shift($orderCommodity);
-                    $update_params[$key]['amount'] = $orderAllocationDetails[$key]['amount'];
+                    $update_params[$key][0]['amount'] = $orderAllocationDetails[$key]['amount'];
                     collect($orderCommodity)->each(function($item)use(&$del_orderCommodities){
                         $del_orderCommodities[] = $item;
                     });

+ 128 - 9
app/Services/OrderService.php

@@ -13,11 +13,14 @@ use App\RejectedBill;
 use App\Services\common\BatchUpdateService;
 use App\Services\common\DataHandlerService;
 use App\Shop;
+use App\ValueStore;
 use App\Warehouse;
 use Carbon\Carbon;
 use Illuminate\Support\Collection;
 use Illuminate\Support\Facades\App;
+use Illuminate\Support\Facades\Cache;
 use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Redis;
 
 class OrderService
 {
@@ -544,7 +547,7 @@ class OrderService
         $insert_params = $this->getParamsByOrderHeader($orderHeaders,$owners_code_map,$logistics_code_map,$shop_name_map,$warehouses_code_map);
         $update_params = $this->getUpdateParams($orderHeaders,$owners_code_map,$logistics_code_map,$shop_name_map,$warehouses_code_map);
         if(count($insert_params)> 0){
-            $this->create($insert_params);
+            $this->insert($insert_params);
         }
         if(count($update_params)>1){
             $this->batchUpdate($update_params);
@@ -563,6 +566,7 @@ class OrderService
         foreach ($orders as $order) {
             $order_code_map[$order->code]= $order;
         }
+        $date = Carbon::now()->format('Y-m-d H:i:s');
         foreach ($orderHeaders_map as $orderHeader) {
             if($order_code_map[$orderHeader->orderno] ?? false)continue;
             $owner = $owners_code_map[$orderHeader->customerid] ?? null;
@@ -575,6 +579,7 @@ class OrderService
                 'owner_id' => $owner->id ?? null,
                 'wms_status' => $orderHeader->oracleBASCode ? $orderHeader->oracleBASCode->codename_c : null,
                 'created_at' => $orderHeader->addtime,
+                'updated_at' =>$date,
                 'logistic_id' => $logistic->id ?? null,
                 'shop_id' => $shop->id ?? null,
                 'consignee_name' => $orderHeader->c_contact,
@@ -797,6 +802,7 @@ class OrderService
         $warehouses = $warehouseService->getByWmsOrders($orderHeaders);
         $orders = $this->getByWmsOrders($orderHeaders);
         $created_params = $this->getCreateOrderModelsByWMSOrderHeaders($orderHeaders,$orders,$warehouses,$owners,$logistics,$shops); //3s
+
         $update_order = $this->getUpdateOrderModelByWMSOrderHeaders($orderHeaders,$orders,$warehouses,$owners,$logistics,$shops);
         // 转换插入 3s
         if(count($created_params) > 0){
@@ -804,13 +810,6 @@ class OrderService
                 $this->insert($inner_params->toArray());
             });
         }
-//        $this->insert($created_params);
-//        $this->insert($created_order->map(function($item){
-//            $array = $item->toArray();
-//            unset($array['logisticNumbers'],$array['packages'],$array['commodityPackages'],$array['amount']);
-//            return $array;
-//        })->toArray());
-
         $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']
         ];
@@ -978,7 +977,8 @@ class OrderService
          */
         $orderPackageService = app('OrderPackageService');
         $orderPackageCommoditiesService = app('OrderPackageCommoditiesService');
-        $orderHeaders = [$orderHeader];
+        $orderHeaders = collect();
+        $orderHeaders->push($orderHeader);
         try {
             $this->syncOrderByWMSOrderHeaders($orderHeaders);
             $orderPackageService->syncOrderPackage($orderHeaders);
@@ -990,4 +990,123 @@ class OrderService
         }
     }
 
+
+    // TODO
+    public function setOrderSyncAt($key,$date,$bool=true){
+        if($bool){
+            ValueStore::query()->where('name',$key)->update(['value'=>Carbon::parse($date)->subSeconds(1)]);
+        } else {
+            ValueStore::query()->where('name',$key)->update(['value'=>$date]);
+        }
+    }
+    // TODO
+    public function getOrderSyncAt($key,$type='newest'){
+        $keyValue = ValueStore::query()->where('name',$key)->first();
+        if($keyValue->value)return $keyValue->value;
+        if($type == 'newest') $order = Order::query()->orderByDesc('Created_At')->first();
+        else $order = Order::query()->orderByDesc('Wms_EditTime')->first();
+        if($order)return $order->created_at;
+        return Carbon::now()->subSeconds(65);
+    }
+    // TODO
+    public function pushOrderCache($orderHeaders,$prefixKey,$hasKey,$list_key){
+        $list = [];
+        try {
+            Redis::LLEN($list_key);
+            collect($orderHeaders)->each(function($item)use(&$list,$prefixKey){
+                $list[] =$item->orderno;
+                Cache::put($prefixKey.$item->orderno,true);
+            });
+            if(count($orderHeaders) > 0){
+                Cache::put($list_key,$list);
+                Cache::put($hasKey,true);
+            }
+        } catch (\Exception $e) {
+
+        }
+    }
+    // TODO
+    public function filterOrderByCache($orderHeaders,$key)
+    {
+        /**
+         * @var OracleDOCOrderHeader $item
+         */
+        if(!$orderHeaders)return $orderHeaders;
+        if(!$key)return $orderHeaders;
+        try {
+            Redis::LLEN($key);
+            return array_filter($orderHeaders,function($item)use($key){
+                $bool = Cache::get($key.$item->orderno);
+                return !$bool;
+            });
+        } catch (\Exception $e) {
+            return $orderHeaders;
+        }
+    }
+    // TODO
+    public function cancelOrderCache($key,string $prefix)
+    {
+        try {
+            $list = Cache::get($key);
+            collect($list)->each(function ($item)use($prefix) {
+                Cache::forget($prefix.$item);
+            });
+            Cache::put($key,[]);
+        } catch (\Exception $e) {
+        }
+    }
+    // TODO
+    public function syncCreatedOrder(){
+        /**
+         * @var OracleDOCOrderHeaderService $oracleDOCOrderHeaderService
+         * @var OrderService $orderService
+         */
+        $newest         = config('sync.order_sync.cache_prefix.created_at');
+        $newest_list    = config('sync.order_sync.cache_prefix.newest_list');
+        $hasKey         = config('sync.order_sync.cache_prefix.newest_has');
+        $prefixKey      = config('sync.order_sync.cache_prefix.newest');
+
+        $last_date = $orderService->getOrderSyncAt($newest,'newest');                              // 获取时间点
+
+        $orderHeaders = $oracleDOCOrderHeaderService->getWmsOrderOnStartDateEdit($last_date);           // WMS订单
+
+        $last_order = $orderHeaders->first();                                                           // 时间点靠后的
+        $renewal_orders = $orderHeaders->where('addTime',$last_order->addtime);
+
+        $orderHeaders = $orderService->filterOrderByCache($orderHeaders,$newest_list);                  // 对比缓存
+
+        if(count($orderHeaders)>0 && count($orderHeaders) >0){
+            $orderService->syncOrder($orderHeaders);                                                //  同步订单
+            $orderService->cancelOrderCache($newest_list);                                              //  清除缓存
+            $orderService->pushOrderCache($renewal_orders,$prefixKey,$hasKey,$newest_list);             //  添加缓存
+            $orderService->setOrderSyncAt($newest,$last_order->addTime,count($orderHeaders)>0);   //  更新时间
+        }
+    }
+    // TODO
+    public function syncUpdatedOrder(){
+        /**
+         * @var OracleDOCOrderHeaderService $oracleDOCOrderHeaderService
+         * @var OrderService $orderService
+         */
+        $renewal        = config('sync.order_sync.cache_prefix.updated_at');
+        $renewal_list   = config('sync.order_sync.cache_prefix.renewal_list');
+        $hasKey         = config('sync.order_sync.cache_prefix.renewal_has');
+        $prefixKey      = config('sync.order_sync.cache_prefix.renewal');
+
+        $last_date = $orderService->getOrderSyncAt($renewal,'renewal');                               // 获取时间点
+
+        $orderHeaders = $oracleDOCOrderHeaderService->getWMSOrderOnStartDate($last_date);                   // WMS订单
+
+        $renewal_order = $orderHeaders->first();                                                            // 时间点靠后的
+        $renewal_orders =  $orderHeaders->where('addTime',$renewal_order->addtime);
+
+        $orderHeaders = $orderService->filterOrderByCache($orderHeaders,$renewal_list);                     // 对比缓存
+
+        if(count($renewal_orders)>0 && count($orderHeaders)>0){
+            $orderService->syncOrder($orderHeaders);                                                    // 同步订单
+            $orderService->cancelOrderCache($renewal_list);                                                 // 清除缓存
+            $orderService->pushOrderCache($renewal_orders,$prefixKey,$hasKey,$renewal_list);                // 添加缓存
+            $orderService->setOrderSyncAt($renewal,$renewal_order->addTime,count($orderHeaders)>0);   // 更新时间
+        }
+    }
 }

+ 2 - 2
app/Services/OwnerService.php

@@ -118,9 +118,9 @@ Class OwnerService
     public function getByWmsOrders($orderHeaders){
         $customerIds = array_unique(data_get($orderHeaders,'*.customerid'));
         $customerIds = array_diff($customerIds,[null,'','*']);
-        $owners = Owner::query()->whereIn('code',data_get($orderHeaders,'*.customerid'))->get();
+        $owners = Owner::query()->whereIn('code',$customerIds)->get();
 
-        if($owners->count() < count($customerIds)){
+         if($owners->count() < count($customerIds)){
             $customerIds = array_diff($customerIds,data_get($owners,'*.code'));
             $owner_list = $this->createByWmsCustomerIds($customerIds);
             $owners=$owners->concat($owner_list);

+ 1 - 1
app/Services/WarehouseService.php

@@ -40,7 +40,7 @@ Class WarehouseService
         if(!$warehouse_ids)return null;
         /** @var Collection $oracleBasCustomers */
         $oracleBasCustomers=app(OracleBasCustomerService::class)->getWareHouse($warehouse_ids);
-        $warehouses=Warehouse::query()->where('code',data_get($oracleBasCustomers,'*.CustomerID'))->get();
+        $warehouses=Warehouse::query()->whereIn('code',data_get($oracleBasCustomers,'*.customerid'))->get();
         $oracleBasCustomers=$oracleBasCustomers->filter(function($oracleBasCustomer)use($warehouses){
             return $warehouses->where('code',$oracleBasCustomer->warehouseid)->count()==0;
         });

+ 14 - 0
config/sync.php

@@ -8,4 +8,18 @@ return [
         'interval' => 1,   // 时间以分为单位
         'start_at'=> '',    // 开始同步WMS的时间  时间格式: yyyy-MM-dd HH:mm:ss 如 2020-09-05 13:15:16
     ],
+    'order_sync' => [
+        'interval' => 1,   // 时间以分为单位
+        'start_at'=> '',    // 开始同步WMS的时间  时间格式: yyyy-MM-dd HH:mm:ss 如 2020-09-05 13:15:16
+        'cache_prefix' => [
+            'newest' =>'order_newest_',
+            'renewal' =>'order_renewal_',
+            'newest_has' => 'order_newest_has_set',             // 创建标记
+            'renewal_has' => 'order_renewal_has_set',           // 跟新标记
+            'created_at' => 'order_last_created_sync_at',       // 最后创建时间
+            'updated_at' => 'order_last_updated_sync_at',       // 最后更新时间
+            'newest_list' => 'order_newest_cache_keys',               // 新增保存记录
+            'renewal_list' => 'order_renewal_cache_keys'              // 创建保存记录
+        ]
+    ]
 ];

+ 15 - 0
database/factories/CityFactory.php

@@ -0,0 +1,15 @@
+<?php
+
+/** @var \Illuminate\Database\Eloquent\Factory $factory */
+
+use App\City;
+use Faker\Generator as Faker;
+
+$factory->define(City::class, function (Faker $faker) {
+    return [
+        'province_id' => function(){
+            return factory(\App\Province::class)->create()->id;
+        },
+        'name'=>$faker->name
+    ];
+});

+ 27 - 0
database/factories/OrderFactory.php

@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * @var \Illuminate\Database\Eloquent\Factory $factory
+ */
+use App\Order;
+use Faker\Generator as Faker;
+
+
+$factory->define(Order::class, function (Faker $faker) {
+    $status = ['处理中','未处理','已处理','取消','异常'];
+    $wms_status = ['分配完成','部分分配','订单完成'];
+    return [
+        'status' => $status[rand(0,4)],
+        'created_at'=>$faker->dateTime->format('y-m-d'),
+        'code' => $faker->uuid,
+        'client_code' =>$faker->uuid,
+        'consignee_name'=>$faker->uuid,
+        'consignee_phone' => $faker->phoneNumber,
+        'province' => $faker->state,
+        'city' =>$faker->city,
+        'district'=>$faker->secondaryAddress,
+        'address' => $faker->address,
+        'wms_status' => $wms_status[rand(0,2)],
+        'wms_edittime' => $faker->dateTimeBetween( '-30 hour', 'now',  null)
+    ];
+});

+ 41 - 0
database/factories/OrderIssueFactory.php

@@ -0,0 +1,41 @@
+<?php
+
+/** @var \Illuminate\Database\Eloquent\Factory $factory */
+
+use App\OrderIssue;
+use Faker\Generator as Faker;
+
+$factory->define(OrderIssue::class, function (Faker $faker) {
+    $rejecting_status = ['无','未退回','全部退回','部分退回','差异退回','超量退回','全部退回'];
+    $is_new_rejecting = ['无','有','已处理'];
+    $finance_confirm = ['是','否'];
+    $final_status = ['已解决','待退回','退回中'];
+    $logistic_express_remission = ['原单减免','部分减免','全部减免'];
+    $baoshi_express_remission = ['原单减免','部分减免','全部减免'];
+    $imported_status = ['正常','导入未处理','导入已梳理'];
+    return [
+        'order_id' =>function(){
+            return factory(\App\Order::class)->create()->id;
+        },
+        'created_at' => $faker->date('y-m-d'),
+        'rejected_bill_id' => 0,
+        'rejecting_status' => $rejecting_status[rand(0,count($rejecting_status)-1)],
+        'result_explain' => $faker->text(20),
+        'logistic_number_return'=>$faker->name,
+        'order_issue_type_id' => 0,
+        'second_order_id' => 0,
+        'is_new_rejecting' => $is_new_rejecting[rand(0,count($is_new_rejecting) -1)],
+        'second_client_no' => $faker->name,
+        'second_logistic_number' => $faker->name,
+        'final_status' => $final_status[rand(0,count($final_status)-1)],
+        'logistic_indemnity_money' => rand(0,10),
+        'logistic_express_remission' =>$logistic_express_remission[rand(0,1)] ,
+        'baoshi_indemnity_money' =>rand(0,1),
+        'baoshi_express_remission' => $baoshi_express_remission[rand(0,1)],
+        'user_workgroup_id' => 0,
+        'custom_code' => $faker->name,
+        'imported_status' => $imported_status[rand(0,count($imported_status)-1)],
+        'finance_confirm' =>$finance_confirm[rand(0,1)],
+        'hidden_tag' => $faker->name
+    ];
+});

+ 12 - 0
database/factories/OrderPackageFactory.php

@@ -0,0 +1,12 @@
+<?php
+
+/** @var \Illuminate\Database\Eloquent\Factory $factory */
+
+use App\OrderPackage;
+use Faker\Generator as Faker;
+
+$factory->define(OrderPackage::class, function (Faker $faker) {
+    return [
+        'logistic_number' => $faker->uuid
+    ];
+});

+ 15 - 0
database/factories/OwnerTrakingOwnerFactory.php

@@ -0,0 +1,15 @@
+<?php
+
+/** @var \Illuminate\Database\Eloquent\Factory $factory */
+
+use App\OrderTrackingOwner;
+use Faker\Generator as Faker;
+
+$factory->define(OrderTrackingOwner::class, function (Faker $faker) {
+    return [
+        'owner_id'=>function(){
+            return factory(\App\Owner::class)->create()->id;
+        },
+        'status' => '启用'
+    ];
+});

+ 12 - 0
database/factories/ProvinceFactory.php

@@ -0,0 +1,12 @@
+<?php
+
+/** @var \Illuminate\Database\Eloquent\Factory $factory */
+
+use App\Province;
+use Faker\Generator as Faker;
+
+$factory->define(Province::class, function (Faker $faker) {
+    return [
+        'name' => $faker->name
+    ];
+});

+ 2 - 2
database/migrations/2020_03_09_153510_create_stores_table.php

@@ -18,8 +18,8 @@ class CreateStoresTable extends Migration
             $table->string('asn_code')->nullable()->unique()->comment('WMS的ASNNO单号');
             $table->integer('warehouse_id')->nullable()->comment('仓库ID');
             $table->integer('owner_id')->index()->nullable()->comment('货主ID');
-            $table->enum('stored_method',['正常','快速入库'])->default('正常');
-            $table->enum('status',['无需入库','已入库','未入库','待推单'])->nullable();
+            $table->enum('stored_method',['正常','快速入库','采购入库','笕尚退货入库单','笕尚进仓入库单','笕尚移仓入库单','B2B入库','笕尚调整入库单','换货入库','初始化库存','虚拟入库','其他入库','退货入库','调拨入库'])->default('正常');
+            $table->enum('status',['待盘点','盘点中','复盘中','已完成','已审核'])->default(null)->nullable();
             $table->string('remark')->nullable();
             $table->timestamp('deleted_at')->nullable()->index();
             $table->timestamp('updated_at')->nullable();

+ 12 - 11
database/migrations/2020_03_30_112202_drop_commodity_barcode_column_to_barcode_table.php

@@ -15,21 +15,22 @@ class DropCommodityBarcodeColumnToBarcodeTable extends Migration
      */
     public function up()
     {
-        DB::insert('INSERT commodity_barcodes (code,commodity_id) SELECT barcode, id FROM commodities');
-        $this->delRepeated();
+//        \App\Commodity::query()->count();
+//        DB::insert('INSERT commodity_barcodes (code,commodity_id) SELECT barcode, id FROM commodities');
+//        $this->delRepeated();
         Schema::table('commodities', function (Blueprint $table) {
             $table->dropColumn('barcode');
         });
     }
 
-    private function delRepeated(){
-        $codes=CommodityBarcode::groupBy('code','commodity_id')->havingRaw('count(*) > ?', [1])->get();
-        $codes->each(function(CommodityBarcode $code){
-            $delCodes=CommodityBarcode::where('code',$code['code'])->where('commodity_id',$code['commodity_id'])->where('id','!=',$code['id'])->get();
-            $delCodes->each(function(CommodityBarcode $delcode){
-                $delcode->delete();
-            });
-        });
-    }
+//    private function delRepeated(){
+//        $codes=CommodityBarcode::groupBy('code','commodity_id')->havingRaw('count(*) > ?', [1])->get();
+//        $codes->each(function(CommodityBarcode $code){
+//            $delCodes=CommodityBarcode::where('code',$code['code'])->where('commodity_id',$code['commodity_id'])->where('id','!=',$code['id'])->get();
+//            $delCodes->each(function(CommodityBarcode $delcode){
+//                $delcode->delete();
+//            });
+//        });
+//    }
 
 }

+ 1 - 1
database/migrations/2020_05_25_152252_change_user_workgroup.php

@@ -14,7 +14,7 @@ class ChangeUserWorkgroup extends Migration
     public function up()
     {
         Schema::table('user_workgroups', function (Blueprint $table) {
-            $table->bigInteger('warehouse_id')->comment('外键到工作组');
+            $table->bigInteger('warehouse_id')->nullable()->comment('外键到工作组');
         });
     }
 

+ 1 - 1
database/migrations/2020_06_02_130804_change_user_duty_check.php

@@ -14,7 +14,7 @@ class ChangeUserDutyCheck extends Migration
     public function up()
     {
         Schema::table('user_duty_checks', function (Blueprint $table) {
-            $table->bigInteger('workgroup_id')->comment('外键到工作组');
+            $table->bigInteger('workgroup_id')->nullable()->comment('外键到工作组');
         });
     }
 

+ 1 - 1
database/migrations/2020_07_06_160500_create_operator_logs_table_and_add_authority_and_change_processes_column_status.php

@@ -43,7 +43,7 @@ class CreateOperatorLogsTableAndAddAuthorityAndChangeProcessesColumnStatus exten
             $table->dropColumn('status');
         });
         Schema::table('processes',function (Blueprint $table){
-            $table->enum('status',['待审核','已驳回','待接单','待加工','加工中','待验收','待交接','交接完成'])->comment('状态');
+            $table->enum('status',['待审核','已驳回','待接单','待加工','加工中','待验收','待交接','交接完成'])->default('待审核')->comment('状态');
         });
     }
 

+ 1 - 1
database/migrations/2020_07_20_162421_create_labor_report_statuses_table.php

@@ -16,7 +16,7 @@ class CreateLaborReportStatusesTable extends Migration
         Schema::create('labor_report_statuses', function (Blueprint $table) {
             $table->bigIncrements('id');
             $table->bigInteger('labor_report_id')->index()->comment('外键临时工报表')->nullable();
-            $table->enum('status',['未审核','已入场','已退场','已换组','已退组'])->default('未审核')->nullable();
+            $table->enum('status',['未审核','已入场','已退场','已换组','已退组','已删除'])->default('未审核')->nullable();
             $table->timestamps();
         });
     }

+ 1 - 1
database/migrations/2020_08_26_093946_change_inventory_missions_to_inventory_account_missions.php

@@ -31,7 +31,7 @@ class ChangeInventoryMissionsToInventoryAccountMissions extends Migration
             $table->integer('re_checked_amount')->nullable()->comment('复盘数量');
             $table->integer('difference_amount')->nullable()->comment('盘点差异');
             $table->integer('occupied_amount')->nullable()->comment('分配数量');
-            $table->enum('checked',['是','否'])->default('否')->comment('已盘点');
+            $table->enum('checked',['是','否','已复核','跳过','确认差异'])->default('否')->comment('否');
             $table->enum('returned',['是','否','无'])->default('无')->comment('已归位');
             $table->timestamps();
         });

+ 1 - 1
database/migrations/2020_08_26_094015_change_inventories_to_inventory_accounts.php

@@ -17,7 +17,7 @@ class ChangeInventoriesToInventoryAccounts extends Migration
         Schema::create('inventory_accounts', function (Blueprint $table) {
             $table->bigIncrements('id');
             $table->integer('owner_id')->index();
-            $table->enum('type',['全盘','动盘'])->comment('盘点类型');
+            $table->enum('type',['全盘','动盘','局部盘点'])->comment('盘点类型');
             $table->timestamp('start_at')->nullable();
             $table->timestamp('end_at')->nullable();
             $table->integer('total')->nullable()->comment('记录数');

+ 1 - 1
database/migrations/2020_08_31_102647_add_inventory_accounts_status.php

@@ -14,7 +14,7 @@ class AddInventoryAccountsStatus extends Migration
     public function up()
     {
         Schema::table('inventory_accounts', function (Blueprint $table) {
-            $table->enum('status',['待盘点','盘点中','复盘中','已完成'])->default('待盘点')->comment('盘点状态');
+            $table->enum('status',['待盘点','盘点中','复盘中','已完成','已审核'])->nullable()->default(null)->comment('盘点状态');
         });
     }
 

+ 0 - 33
database/migrations/2020_09_01_111054_change_inventory_account_mission_column_checked_to_three.php

@@ -1,33 +0,0 @@
-<?php
-
-use Illuminate\Database\Migrations\Migration;
-use Illuminate\Database\Schema\Blueprint;
-use Illuminate\Support\Facades\DB;
-use Illuminate\Support\Facades\Schema;
-
-class ChangeInventoryAccountMissionColumnCheckedToThree extends Migration
-{
-    /**
-     * Run the migrations.
-     *
-     * @return void
-     */
-    public function up()
-    {
-        DB::statement("ALTER TABLE inventory_account_missions MODIFY COLUMN checked enum ('是','否','已复核') default '否'");
-        Schema::table('inventory_account_missions', function (Blueprint $table) {
-        });
-    }
-
-    /**
-     * Reverse the migrations.
-     *
-     * @return void
-     */
-    public function down()
-    {
-        DB::statement("ALTER TABLE inventory_account_missions MODIFY COLUMN checked enum ('是','否') default '否'");
-        Schema::table('inventory_account_missions', function (Blueprint $table) {
-        });
-    }
-}

+ 1 - 1
database/migrations/2020_09_11_115414_change_labor_reports_labor_company_to_labor_company_id.php

@@ -14,7 +14,7 @@ class ChangeLaborReportsLaborCompanyToLaborCompanyId extends Migration
     public function up()
     {
         Schema::table('labor_reports', function (Blueprint $table) {
-            $table->bigInteger('labor_company_id')->index()->comment('劳务所');
+            $table->bigInteger('labor_company_id')->nullable()->index()->comment('劳务所');
         });
         $laborReports=\App\LaborReport::query()->get();
         foreach ($laborReports as $laborReport){

+ 0 - 33
database/migrations/2020_09_16_115715_change_inventory_account_mission_checked_column_checked_to_four.php

@@ -1,33 +0,0 @@
-<?php
-
-use Illuminate\Database\Migrations\Migration;
-use Illuminate\Database\Schema\Blueprint;
-use Illuminate\Support\Facades\DB;
-use Illuminate\Support\Facades\Schema;
-
-class ChangeInventoryAccountMissionCheckedColumnCheckedToFour extends Migration
-{
-    /**
-     * Run the migrations.
-     *
-     * @return void
-     */
-    public function up()
-    {
-        DB::statement("ALTER TABLE inventory_account_missions MODIFY COLUMN checked enum ('是','否','已复核','跳过') default '否'");
-        Schema::table('inventory_account_missions', function (Blueprint $table) {
-        });
-    }
-
-    /**
-     * Reverse the migrations.
-     *
-     * @return void
-     */
-    public function down()
-    {
-        DB::statement("ALTER TABLE inventory_account_missions MODIFY COLUMN checked enum ('是','否','已复核') default '否'");
-        Schema::table('inventory_account_missions', function (Blueprint $table) {
-        });
-    }
-}

+ 2 - 2
database/migrations/2020_09_23_135848_add_authorities_and_change_inventory_accounts.php

@@ -16,7 +16,7 @@ class AddAuthoritiesAndChangeInventoryAccounts extends Migration
     public function up()
     {
         (new Authority(['name'=>'人事管理-临时工报表-编辑备注','alias_name'=>'人事管理-临时工报表-编辑备注']))->save();
-        DB::statement("ALTER TABLE inventory_accounts MODIFY COLUMN type enum ('全盘','动盘','局部盘点')");
+//        DB::statement("ALTER TABLE inventory_accounts MODIFY COLUMN type enum ('全盘','动盘','局部盘点')");
         Schema::table('inventory_accounts', function (Blueprint $table) {
             $table->string('remark')->nullable()->comment('备注');
         });
@@ -31,7 +31,7 @@ class AddAuthoritiesAndChangeInventoryAccounts extends Migration
     public function down()
     {
         Authority::where('name','人事管理-临时工报表-编辑备注')->delete();
-        DB::statement("ALTER TABLE inventory_accounts MODIFY COLUMN type enum ('全盘','动盘')");
+//        DB::statement("ALTER TABLE inventory_accounts MODIFY COLUMN type enum ('全盘','动盘')");
         Schema::table('inventory_accounts', function (Blueprint $table) {
             $table->dropColumn('remark');
         });

+ 2 - 2
database/migrations/2020_09_24_152015_change_labor_report_status.php

@@ -14,7 +14,7 @@ class ChangeLaborReportStatus extends Migration
      */
     public function up()
     {
-        DB::statement("ALTER TABLE labor_report_statuses MODIFY COLUMN status enum ('未审核','已入场','已退场','已换组','已退组','已删除') default '未审核'");
+//        DB::statement("ALTER TABLE labor_report_statuses MODIFY COLUMN status enum ('未审核','已入场','已退场','已换组','已退组','已删除') default '未审核'");
     }
 
     /**
@@ -24,6 +24,6 @@ class ChangeLaborReportStatus extends Migration
      */
     public function down()
     {
-        DB::statement("ALTER TABLE labor_report_statuses MODIFY COLUMN status enum ('未审核','已入场','已退场','已换组','已退组') default '未审核'");
+//        DB::statement("ALTER TABLE labor_report_statuses MODIFY COLUMN status enum ('未审核','已入场','已退场','已换组','已退组') default '未审核'");
     }
 }

+ 2 - 2
database/migrations/2020_10_12_092325_change_inventory_account_mission_checked_column_checked_to_five.php

@@ -14,7 +14,7 @@ class ChangeInventoryAccountMissionCheckedColumnCheckedToFive extends Migration
      */
     public function up()
     {
-        DB::statement("ALTER TABLE inventory_account_missions MODIFY COLUMN checked enum ('是','否','已复核','跳过','确认差异') default '否'");
+//        DB::statement("ALTER TABLE inventory_account_missions MODIFY COLUMN checked enum ('是','否','已复核','跳过','确认差异') default '否'");
         Schema::table('inventory_account_missions', function (Blueprint $table) {
         });
     }
@@ -26,7 +26,7 @@ class ChangeInventoryAccountMissionCheckedColumnCheckedToFive extends Migration
      */
     public function down()
     {
-        DB::statement("ALTER TABLE inventory_account_missions MODIFY COLUMN checked enum ('是','否','已复核','跳过') default '否'");
+//        DB::statement("ALTER TABLE inventory_account_missions MODIFY COLUMN checked enum ('是','否','已复核','跳过') default '否'");
         Schema::table('inventory_account_missions', function (Blueprint $table) {
         });
     }

+ 1 - 1
database/migrations/2020_10_12_105209_add_order_track_order_code.php

@@ -15,7 +15,7 @@ class AddOrderTrackOrderCode extends Migration
     {
         //
         Schema::table('order_trackings', function (Blueprint $table) {
-            $table->string('order_client_code')->index()->comment('订单号')->after('web_order_number');
+            $table->string('order_client_code')->nullable()->index()->comment('订单号')->after('web_order_number');
         });
     }
 

+ 4 - 1
database/migrations/2020_10_19_113042_create_logistic_timings_table.php

@@ -68,7 +68,10 @@ class CreateLogisticTimingsTable extends Migration
                 'updated_at' => $time
             ];
         }
-        LogisticTiming::query()->insert($create_array);
+        $inner_param = array_chunk($create_array,100);
+        foreach ($inner_param as $item) {
+            LogisticTiming::query()->insert($item);
+        }
     }
 
     public function getMap()

+ 2 - 2
database/migrations/2020_11_03_114135_change_store_status_column.php

@@ -14,7 +14,7 @@ class ChangeStoreStatusColumn extends Migration
      */
     public function up()
     {
-        DB::statement("ALTER TABLE stores MODIFY COLUMN status enum ('无需入库','已入库','未入库','待推单','完全收货','部分收货','已码盘','订单创建','ASN关闭','等待释放','收货取消') default null");
+//        DB::statement("ALTER TABLE stores MODIFY COLUMN status enum ('无需入库','已入库','未入库','待推单','完全收货','部分收货','已码盘','订单创建','ASN关闭','等待释放','收货取消') default null");
         Schema::table('stores', function (Blueprint $table) {
         });
     }
@@ -26,7 +26,7 @@ class ChangeStoreStatusColumn extends Migration
      */
     public function down()
     {
-        DB::statement("ALTER TABLE stores MODIFY COLUMN status enum ('无需入库','已入库','未入库','待推单') default null");
+//        DB::statement("ALTER TABLE stores MODIFY COLUMN status enum ('无需入库','已入库','未入库','待推单') default null");
         Schema::table('stores', function (Blueprint $table) {
         });
     }

+ 2 - 2
database/migrations/2020_11_03_114310_change_store_stored_method_column.php

@@ -14,7 +14,7 @@ class ChangeStoreStoredMethodColumn extends Migration
      */
     public function up()
     {
-        DB::statement("ALTER TABLE stores MODIFY COLUMN stored_method enum ('正常','快速入库','采购入库','笕尚退货入库单','笕尚进仓入库单','笕尚移仓入库单','B2B入库','笕尚调整入库单','换货入库','初始化库存','虚拟入库','其他入库','退货入库','调拨入库') default '正常'");
+//        DB::statement("ALTER TABLE stores MODIFY COLUMN stored_method enum ('正常','快速入库','采购入库','笕尚退货入库单','笕尚进仓入库单','笕尚移仓入库单','B2B入库','笕尚调整入库单','换货入库','初始化库存','虚拟入库','其他入库','退货入库','调拨入库') default '正常'");
         Schema::table('stores', function (Blueprint $table) {
         });
     }
@@ -26,7 +26,7 @@ class ChangeStoreStoredMethodColumn extends Migration
      */
     public function down()
     {
-        DB::statement("ALTER TABLE stores MODIFY COLUMN stored_method enum ('正常','快速入库') default '正常'");
+//        DB::statement("ALTER TABLE stores MODIFY COLUMN stored_method enum ('正常','快速入库') default '正常'");
         Schema::table('stores', function (Blueprint $table) {
         });
     }

+ 2 - 2
database/migrations/2020_11_03_180029_change_store_items_status_column.php

@@ -14,7 +14,7 @@ class ChangeStoreItemsStatusColumn extends Migration
      */
     public function up()
     {
-        DB::statement("ALTER TABLE store_items MODIFY COLUMN status enum ('无需入库','已入库','未入库','待推单','完全收货','部分收货','已码盘','订单创建','ASN关闭','等待释放','收货取消') default null");
+//        DB::statement("ALTER TABLE store_items MODIFY COLUMN status enum ('无需入库','已入库','未入库','待推单','完全收货','部分收货','已码盘','订单创建','ASN关闭','等待释放','收货取消') default null");
         Schema::table('store_items', function (Blueprint $table) {
         });
     }
@@ -26,7 +26,7 @@ class ChangeStoreItemsStatusColumn extends Migration
      */
     public function down()
     {
-        DB::statement("ALTER TABLE store_items MODIFY COLUMN status enum ('无需入库','已入库','未入库','待推单') default null");
+//        DB::statement("ALTER TABLE store_items MODIFY COLUMN status enum ('无需入库','已入库','未入库','待推单') default null");
         Schema::table('store_items', function (Blueprint $table) {
         });
     }

+ 2 - 2
database/migrations/2020_11_13_155436_change_inventory_accounts_status_column.php

@@ -14,7 +14,7 @@ class ChangeInventoryAccountsStatusColumn extends Migration
      */
     public function up()
     {
-        DB::statement("ALTER TABLE inventory_accounts MODIFY COLUMN status enum ('待盘点','盘点中','复盘中','已完成','已审核') default null");
+//        DB::statement("ALTER TABLE inventory_accounts MODIFY COLUMN status enum ('待盘点','盘点中','复盘中','已完成','已审核') default null");
         Schema::table('inventory_accounts', function (Blueprint $table) {
         });
 
@@ -27,7 +27,7 @@ class ChangeInventoryAccountsStatusColumn extends Migration
      */
     public function down()
     {
-        DB::statement("ALTER TABLE inventory_accounts MODIFY COLUMN status enum ('待盘点','盘点中','复盘中','已完成') default null");
+//        DB::statement("ALTER TABLE inventory_accounts MODIFY COLUMN status enum ('待盘点','盘点中','复盘中','已完成') default null");
         Schema::table('inventory_accounts', function (Blueprint $table) {
         });
     }

+ 2 - 2
database/migrations/2020_11_18_092138_change_inventory_accounts_status_default.php

@@ -14,7 +14,7 @@ class ChangeInventoryAccountsStatusDefault extends Migration
      */
     public function up()
     {
-        DB::statement("ALTER TABLE inventory_accounts MODIFY COLUMN status enum ('待盘点','盘点中','复盘中','已完成','已审核') default '待盘点'");
+//        DB::statement("ALTER TABLE inventory_accounts MODIFY COLUMN status enum ('待盘点','盘点中','复盘中','已完成','已审核') default '待盘点'");
         Schema::table('inventory_accounts', function (Blueprint $table) {
         });
     }
@@ -26,7 +26,7 @@ class ChangeInventoryAccountsStatusDefault extends Migration
      */
     public function down()
     {
-        DB::statement("ALTER TABLE inventory_accounts MODIFY COLUMN status enum ('待盘点','盘点中','复盘中','已完成','已审核') default null");
+//        DB::statement("ALTER TABLE inventory_accounts MODIFY COLUMN status enum ('待盘点','盘点中','复盘中','已完成','已审核') default null");
         Schema::table('inventory_accounts', function (Blueprint $table) {
         });
     }

+ 1 - 1
package-lock.json

@@ -6200,7 +6200,7 @@
         },
         "minimist": {
             "version": "1.2.0",
-            "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz",
+            "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
             "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
             "dev": true
         },

+ 3 - 1
phpunit.xml

@@ -33,7 +33,9 @@
     <php>
         <server name="APP_ENV" value="testing"/>
         <server name="BCRYPT_ROUNDS" value="4"/>
-        <server name="CACHE_DRIVER" value="array"/>
+        <server name="CACHE_DRIVER" value="redis"/>
+        <server name="DB_CONNECTION" value="sqlite"/>
+        <server name="DB_DATABASE" value=":memory:"/>
         <server name="MAIL_DRIVER" value="array"/>
         <server name="QUEUE_CONNECTION" value="sync"/>
         <server name="SESSION_DRIVER" value="array"/>

Разница между файлами не показана из-за своего большого размера
+ 14 - 0
public/js/app.js


+ 4 - 0
resources/sass/text.scss

@@ -51,3 +51,7 @@
 .fa-sort{
     opacity: 0.3;
 }
+
+.text-letter{
+    word-break: break-all
+}

+ 3 - 3
resources/views/order/index/delivering.blade.php

@@ -90,12 +90,12 @@
                             </div>
                             <span v-else>@{{ order.soreference5 }}</span>
                         </td>
-                        <td class="text-muted text-nowrap">@{{ order.c_contact }}</td>
-                        <td class="text-muted text-nowrap">@{{ order.c_tel2?order.c_tel2:order.c_tel1 }}</td>
+                        <td class="text-muted text-wrap text-letter" style="max-width: 200px">@{{ order.c_contact }}</td>
+                        <td class="text-muted text-wrap text-letter" style="max-width: 200px">@{{ order.c_tel2?order.c_tel2:order.c_tel1 }}</td>
                         <td class="text-nowrap"> @{{ order.c_province }}</td>
                         <td class="text-nowrap"> @{{ order.c_city }}</td>
                         <td class="text-nowrap"> @{{ order.c_district }}</td>
-                        <td class="text-muted">@{{ order.c_address1 }}</td>
+                        <td class="text-muted text-wrap text-letter" style="max-width: 500px">@{{ order.c_address1 }}</td>
                         <td class="text-nowrap">@{{ order.waveno }}</td>
                         <td class="text-nowrap"> @{{ order.warehouseid }}</td>
                         <td class="text-nowrap"><span v-if="order.edisendflag2=='Y'">是</span><span v-if="order.edisendflag2=='N'">否</span><span v-if="order.edisendflag2=='W'">错误</span></td>

+ 8 - 8
resources/views/order/issue/index.blade.php

@@ -111,8 +111,8 @@
                         <th class="tow-layer align-middle td-yellow" rowspan="2" style="min-width: 150px;">原始运单号</th>
                         {{--原始商品明细 开始--}}
                         <th class="tow-layer align-middle td-yellow" v-if="!isShowOrderInfo" rowspan="2" style="min-width:50px">展开</th>
-                        <th class="tow-layer align-middle td-yellow" v-if="isShowOrderInfo" rowspan="2" style="min-width: 90px">收货人名称</th>
-                        <th class="tow-layer align-middle td-yellow" v-if="isShowOrderInfo" rowspan="2" style="min-width: 120px;">收货人电话</th>
+                        <th class="tow-layer align-middle td-yellow" v-if="isShowOrderInfo" rowspan="2" style="min-width: 200px">收货人名称</th>
+                        <th class="tow-layer align-middle td-yellow" v-if="isShowOrderInfo" rowspan="2" style="min-width: 200px;">收货人电话</th>
                         <th class="tow-layer align-middle td-yellow" v-if="isShowOrderInfo" rowspan="2" style="min-width: 70px">省</th>
                         <th class="tow-layer align-middle td-yellow" v-if="isShowOrderInfo" rowspan="2" style="min-width: 70px">市</th>
                         <th class="tow-layer align-middle td-yellow" v-if="isShowOrderInfo" rowspan="2" style="min-width: 70px">区</th>
@@ -129,7 +129,7 @@
                             <th class="three-layer  align-middle" rowspan="2" v-if="isShowSecondOrderInfo" style=" min-width: 120px;">二次客户订单号</th>
                             <th class="three-layer  align-middle" rowspan="2" v-if="isShowSecondOrderInfo" style=" min-width: 100px;">二次承运商</th>
                             <th class="three-layer  align-middle" rowspan="2" v-if="isShowSecondOrderInfo" style=" min-width: 200px;">二次运单号</th>
-                            <th class="three-layer" colspan="3" style="min-width: 300px" v-if="isShowSecondOrderInfo" style=" min-width: 350px;">二次商品明细</th>
+                            <th class="three-layer" colspan="3" v-if="isShowSecondOrderInfo" style=" min-width: 350px;">二次商品明细</th>
                         @endcannot
                         @cannot('订单管理-问题件-客户自定义订单号')
                         <th class="three-layer  align-middle" rowspan="2" style="min-width: 120px">自定义订单号</th>
@@ -270,13 +270,13 @@
                         <td class="td-yellow p-0 m-0 child-layer-2" v-if="!isShowOrderInfo && index===0" style="width:50px" :rowspan="orderIssues.length">
                             <span class="btn btn-outline-secondary "  @click="showOrderInfo" :style="orderIssues.length>4 ?'{height: 200px;line-height: 100px':''" >展开运单列</span>
                         </td>
-                        <td class="td-yellow child-layer-2-hide" v-if="isShowOrderInfo">@{{ orderIssue.order.consignee_name }}</td>
-                        <td class="td-yellow child-layer-2-hide" v-if="isShowOrderInfo">@{{ orderIssue.order.consignee_phone }}</td>
+                        <td class="td-yellow child-layer-2-hide text-wrap text-letter" v-if="isShowOrderInfo" style="max-width: 320px">@{{ orderIssue.order.consignee_name }}</td>
+                        <td class="td-yellow child-layer-2-hide text-wrap text-letter" v-if="isShowOrderInfo" style="max-width: 320px">@{{ orderIssue.order.consignee_phone }}</td>
                         <td class="td-yellow child-layer-2-hide" v-if="isShowOrderInfo">@{{ orderIssue.order.province }}</td>
-                        <td class="td-yellow child-layer-2-hide" v-if="isShowOrderInfo">@{{ orderIssue.order.city }}</td>
+                        <td class="td-yellow child-layer-2-hide" v-if="isShowOrderInfo" >@{{ orderIssue.order.city }}</td>
                         <td class="td-yellow child-layer-2-hide" v-if="isShowOrderInfo">@{{ orderIssue.order.district }}</td>
-                        <td class="td-yellow child-layer-2-hide" style="width: 400px" v-if="isShowOrderInfo">
-                            <span class="text-wrap m-0 p-0 " style="width: 400px">@{{ orderIssue.order.address }}</span>
+                        <td class="td-yellow child-layer-2-hide" style="max-width: 400px" v-if="isShowOrderInfo" >
+                            <span class="text-wrap m-0 p-0 text-wrap text-letter" style="max-width: 550px">@{{ orderIssue.order.address }}</span>
                         </td>
                         <td class="td-yellow p-0 child-layer-2-hide" :id="orderIssue.id+'items'" colspan="3" v-if="isShowOrderInfo" :data-value="orderIssue.orderCount = 0" :data-value1='orderIssue.orderPackagecount = 0'>
                             <div v-if="orderIssue.order">

+ 7 - 1
tests/Services/CityService/FindByNameTest.php

@@ -10,6 +10,7 @@ use Tests\TestCase;
 
 class FindByNameTest extends TestCase
 {
+    use RefreshDatabase;
 
     /** @var CityService $cityService */
     public $cityService;
@@ -18,9 +19,14 @@ class FindByNameTest extends TestCase
     {
         parent::setUp(); // TODO: Change the autogenerated stub
         $this->cityService = app(CityService::class);
+        if(!City::query()->where('name','南京')->exists())
+            factory(City::class)->create(['name'=>'南京']);
     }
 
-    public function testFindByName()
+    /**
+     * @test
+     */
+    public function findByName()
     {
         /** @var City $city */
         $city = $this->cityService->findByName('南京市');

+ 23 - 3
tests/Services/LogisticTimingService/FindByParamsTest.php

@@ -2,27 +2,47 @@
 
 namespace Tests\CacheService\LogisticTimingService\FindByParamsTest;
 
+use App\City;
 use App\Logistic;
+use App\Province;
 use App\Services\LogisticTimingService;
+use Illuminate\Foundation\Testing\RefreshDatabase;
 use Tests\TestCase;
 
 class FindByParamsTest extends TestCase
 {
-    /** @var LogisticTimingService $logisticTimingService */
+    use RefreshDatabase;
+
+    /**
+     * @var LogisticTimingService $logisticTimingService
+     */
     public $logisticTimingService;
 
     public function setUp(): void
     {
         parent::setUp();
         $this->logisticTimingService = app(LogisticTimingService::class);
+
+        factory(Logistic::class)->create(['name'=>'新杰物流','code'=>'XJWL']);
+        $province = null;
+        if(!Province::query()->where('name','like','江苏')->exists())
+            $province = factory(Province::class)->create(['name'=>'江苏']);
+        else
+            $province = Province::query()->where('name','like','江苏')->first();
+
+        if(!city::query()->where('name','like','南京'))
+            factory(City::class)->create(['name'=>'南京', 'province_id'=>$province->id]);
     }
 
-    public function testFindByParams()
+    /**
+     * @test
+     */
+    public function findByParams()
     {
         $cityName = '江苏省';
         $provinceName = '南京市';
         $logistic = Logistic::query()->where('name','like','新杰物流'.'%')->first();
-        $result=$this->logisticTimingService->findByParams($cityName,$provinceName,$logistic->id);
+        $result = $this->logisticTimingService->findByParams($cityName,$provinceName,$logistic->id);
         $this->assertNull($result);
     }
 }

+ 43 - 0
tests/Services/OracleDOCOrderHeaderService/GetWMSOrderOnEditDateTest.php

@@ -0,0 +1,43 @@
+<?php
+
+namespace Tests\Services\OracleDOCOrderHeaderService;
+
+use App\OracleDOCOrderHeader;
+use App\Services\OracleDOCOrderHeaderService;
+use App\Services\OrderService;
+use Carbon\Carbon;
+use Illuminate\Foundation\Testing\RefreshDatabase;
+use Illuminate\Foundation\Testing\WithFaker;
+use Tests\TestCase;
+
+class GetWMSOrderOnEditDateTest extends TestCase
+{
+    use RefreshDatabase;
+    /** @var OracleDOCOrderHeaderService $service */
+    private $service;
+
+    public function setUp(): void
+    {
+        parent::setUp(); // TODO: Change the autogenerated stub
+        $this->service = app('OracleDocOrderHeaderService');
+    }
+
+    /**
+     * @test
+     */
+    public function getWMSOrderOnEditDate()
+    {
+        $orderHeader = OracleDOCOrderHeader::query()->orderByDesc('editTime')->first();
+        if(!$orderHeader){
+            $this->assertNull($orderHeader);
+            return;
+        }
+        $carbon = Carbon::parse($orderHeader->editTime)->subMinutes(5);
+        $orderHeaders = $this->service->getWMSOrderOnEditDate($carbon);
+        if(!$orderHeaders){
+            $this->assertNull($orderHeaders);
+            return;
+        }
+        $this->assertNotNull($orderHeaders);
+    }
+}

+ 21 - 10
tests/Services/OracleDOCOrderHeaderService/GetWMSOrderOnStartDateTest.php

@@ -1,34 +1,45 @@
 <?php
 
-namespace Tests\Services\OracleDOCOrderHeaderService;
+namespace Tests\Services\OracleDOCOrderHeaderService\GetWMSORderOnStartDateTest;
 
+use App\OracleDOCOrderHeader;
+use App\OrderTrackingOwner;
+use App\Owner;
 use App\Services\OracleDOCOrderHeaderService;
 use Carbon\Carbon;
-//use Illuminate\Foundation\Testing\RefreshDatabase;
-//use Illuminate\Foundation\Testing\WithFaker;
+use Illuminate\Foundation\Testing\RefreshDatabase;
 use Tests\TestCase;
 
 class GetWMSOrderOnStartDateTest extends TestCase
 {
+    use RefreshDatabase;
     /** @var OracleDOCOrderHeaderService $service */
     public $service;
 
     public function setUp(): void
     {
-        $this->service = app(OracleDOCOrderHeaderService::class);
         parent::setUp();
+        $this->service = app(OracleDOCOrderHeaderService::class);
+        factory(OrderTrackingOwner::class)->create([
+            'owner_id'=>factory(Owner::class)->create(['user_owner_group_id'=>null,'code'=>'WANLING'])->id,
+            'status'=>'启用']);
     }
 
-    public function testGetWMSOrderOnStartDate()
+    /**
+     * @test
+     */
+    public function getWMSOrderOnStartDate()
     {
-        $carbon =Carbon::now()->subMinutes(5);
+        $orderHeader = OracleDOCOrderHeader::query()->orderByDesc('addTime')->first();
+        if(!$orderHeader){
+            $this->assertNull($orderHeader);
+            return ;
+        }
+        $carbon =Carbon::parse($orderHeader->addtime)->subMinutes(5);
         $orderHeaders = $this->service->getWMSOrderOnStartDate($carbon);
         $this->assertNotNull($orderHeaders);
         $orderHeader = $orderHeaders->first();
-        $this->assertNotNull($orderHeader->oracleDOCOrderDetails);
-        $this->assertNotNull($orderHeader->actAllocationDetails);
-        $this->assertNotNull($orderHeader->oracleBASCustomer);
-        $this->assertNotNull($orderHeader->oracleBASCode);
+        $this->assertNotNull($orderHeader);
     }
 
 }

+ 24 - 9
tests/Services/OracleDOCOrderHeaderService/GetWmsOrderOnStartDateEditTest.php

@@ -1,15 +1,19 @@
 <?php
 
-namespace Tests\Services\OracleDOCOrderHeaderService;
+namespace Tests\Services\OracleDocOrderHeaderServie\GetWmsOrderOnStartDateEditTest;
 
+use App\OracleDOCOrderHeader;
+use App\OrderTrackingOwner;
+use App\Owner;
 use App\Services\OracleDOCOrderHeaderService;
 use Carbon\Carbon;
 use Illuminate\Foundation\Testing\RefreshDatabase;
-use Illuminate\Foundation\Testing\WithFaker;
 use Tests\TestCase;
 
 class GetWmsOrderOnStartDateEditTest extends TestCase
 {
+    use RefreshDatabase;
+
     /** @var OracleDOCOrderHeaderService $service */
     public $service;
 
@@ -17,18 +21,29 @@ class GetWmsOrderOnStartDateEditTest extends TestCase
     {
         parent::setUp();
         $this->service = app(OracleDOCOrderHeaderService::class);
-    }
+        factory(OrderTrackingOwner::class)->create([
+            'owner_id'=>factory(Owner::class)->create(['user_owner_group_id'=>null,'code'=>'WANLING'])->id,
+            'status'=>'启用']);
+     }
 
-    public function testGetWmsOrderOnStartDateEdit()
+    /**
+     * @test
+     */
+    public function getWmsOrderOnStartDateEdit()
     {
-        $carbon =Carbon::now()->subHours(10);
-        $carbon =Carbon::now()->subMinutes(5);
+        $orderHeader= OracleDOCOrderHeader::query()->where('CustomerID','WANLING')->orderByDesc('EditTime')->first();
+        if(!$orderHeader){
+            $this->assertNull($orderHeader);
+            return ;
+        }
+        $carbon =Carbon::parse($orderHeader->addtime)->subMinutes(5);
         $orderHeaders = $this->service->getWmsOrderOnStartDateEdit($carbon);
-        $this->assertNotNull($orderHeaders);
-        $orderHeader = $orderHeaders->first();
-        if($orderHeaders->count() == 0){
+        if(!$orderHeaders){
+            $this->assertNull($orderHeaders);
             return ;
         }
+        $this->assertNotNull($orderHeaders);
+        $orderHeader = $orderHeaders->first();
         $this->assertNotNull($orderHeader->oracleDOCOrderDetails);
         $this->assertNotNull($orderHeader->actAllocationDetails);
         $this->assertNotNull($orderHeader->oracleBASCustomer);

+ 10 - 1
tests/Services/OracleDOCOrderHeaderService/GetWmsOrderOnstartDateCreateTest.php

@@ -3,6 +3,8 @@
 namespace Tests\Services\OracleDOCOrderHeaderService;
 
 use App\OracleDOCOrderHeader;
+use App\OrderTrackingOwner;
+use App\Owner;
 use App\Services\OracleDOCOrderHeaderService;
 use Carbon\Carbon;
 use Illuminate\Foundation\Testing\RefreshDatabase;
@@ -11,6 +13,7 @@ use Tests\TestCase;
 
 class GetWmsOrderOnstartDateCreateTest extends TestCase
 {
+    use RefreshDatabase;
     /** @var OracleDOCOrderHeaderService $service */
     public $service;
 
@@ -18,9 +21,15 @@ class GetWmsOrderOnstartDateCreateTest extends TestCase
     {
         $this->service = app(OracleDOCOrderHeaderService::class);
         parent::setUp();
+        factory(OrderTrackingOwner::class)->create([
+            'owner_id'=>factory(Owner::class)->create(['user_owner_group_id'=>null,'code'=>'WANLING'])->id,
+            'status'=>'启用']);
     }
 
-    public function testGetWmsOrderOnstartDateCreate()
+    /**
+     * @test
+     */
+    public function getWmsOrderOnStartDateCreate()
     {
         $carbon =Carbon::now()->subHours(10);
         $orderHeaders = $this->service->getWmsOrderOnStartDateCreate($carbon);

+ 7 - 14
tests/Services/OrderIssueService/GetRecycleBinPaginateTest.php

@@ -5,11 +5,11 @@ namespace Tests\Services\OrderIssueService;
 use App\OrderIssue;
 use App\Services\OrderIssueService;
 use Illuminate\Foundation\Testing\RefreshDatabase;
-use Illuminate\Foundation\Testing\WithFaker;
 use Tests\TestCase;
 
 class GetRecycleBinPaginateTest extends TestCase
 {
+    use RefreshDatabase;
     /**
      * @var OrderIssueService $service
      */
@@ -19,24 +19,17 @@ class GetRecycleBinPaginateTest extends TestCase
     {
         parent::setUp(); // TODO: Change the autogenerated stub
         $this->service = app('OrderIssueService');
-        $orderIssues = $this->service->getRecycleBinPaginate([]);
-        if($orderIssues->count() == 0){
-            $orderIssue = OrderIssue::query()->create([
-                'is_new_rejecting' => '无',
-                'rejecting_status' => '无',
-                'imported_status' => '正常',
-            ]);
-            $data['orderIssue'] = $orderIssue;
-            $orderIssue->delete();
-        }
+        $orderIssue = factory(OrderIssue::class)->create([
+            'is_new_rejecting' => '无',
+            'rejecting_status' => '无',
+            'imported_status' => '正常',
+        ]);
+        $orderIssue->delete();
     }
 
     public function testGetRecycleBinPaginate()
     {
         $orderIssue = $this->service->getRecycleBinPaginate([]);
         $this->assertNotEmpty($orderIssue);
-        if(isset($data['orderIssue'])){
-            $data['orderIssue']->delete();
-        }
     }
 }

+ 19 - 5
tests/Services/OrderIssueService/OrderIssueTagTest.php

@@ -3,12 +3,17 @@
 namespace Tests\Services\OrderIssueService\OrderIssueTagTest;
 
 use App\OracleDOCOrderHeader;
+use App\Order;
+use App\OrderIssue;
+use App\OrderPackage;
 use App\Services\OrderIssueService;
 use Carbon\Carbon;
+use Illuminate\Foundation\Testing\RefreshDatabase;
 use Tests\TestCase;
 
 class OrderIssueTagTest extends TestCase
 {
+    use RefreshDatabase;
     /** @var OrderIssueService $service */
     public $service;
     public function setUp(): void
@@ -19,16 +24,25 @@ class OrderIssueTagTest extends TestCase
 
     public function testOrderIssueTag()
     {
-
-        $orderHeader = OracleDOCOrderHeader::query()->orderByDesc('AddTime')->first();
-        $addtime = $orderHeader->addtime;
-        $addtime = Carbon::parse((string)$addtime)->subMinutes(30);
+        $orderHeader = OracleDOCOrderHeader::query()->where('sostatus',99)->orderByDesc('AddTime')->first();
         $orderNos = OracleDOCOrderHeader::query()
-            ->where('AddTime','>=',$addtime)
+            ->where('AddTime','>=',$orderHeader->addtime)
+            ->where('sostatus',99)
             ->get()
             ->map(function($orderHeader){
                 return $orderHeader->orderno;
             });
+        $orderNo_arr = collect($orderNos)->chunk(5)->toArray();
+        $orderNos  = $orderNo_arr[0];
         $this->assertNotNull($orderNos);
+        $arr = [];
+        $arr['orderNos'] = $orderNos;
+        $arr['typeId'] = 0;
+        $arr['result_explain'] = '';
+        $this->service->orderIssueTag($arr);
+        $orderIssue = OrderIssue::query()->whereHas('order',function($query)use($orderNos){
+            $query->whereIn('code',$orderNos);
+        })->get();
+        $this->assertEquals($orderIssue->count(),count($orderNos));
     }
 }

+ 3 - 8
tests/Services/OrderIssueService/RecoverOrderIssueTest.php

@@ -10,6 +10,7 @@ use Tests\TestCase;
 
 class RecoverOrderIssueTest extends TestCase
 {
+    use RefreshDatabase;
     /**
      * @var OrderIssueService $service
      */
@@ -20,13 +21,8 @@ class RecoverOrderIssueTest extends TestCase
     {
         parent::setUp(); // TODO: Change the autogenerated stub
         $this->service = app('OrderIssueService');
-        $orderIssue = OrderIssue::query()->create([
-            'is_new_rejecting' => '无',
-            'rejecting_status' => '无',
-            'imported_status' => '正常',
-        ]);
-        $this->data['orderIssue'] = $orderIssue;
-        $orderIssue->delete();
+        $this->data['orderIssue'] = factory(OrderIssue::class)->create();
+        $this->data['orderIssue']->delete();
     }
 
     public function testRecoverOrderIssue()
@@ -35,6 +31,5 @@ class RecoverOrderIssueTest extends TestCase
         $this->service->recoverOrderIssue($ids);
         $orderIssue = OrderIssue::query()->where('id',$ids[0])->first();
         $this->assertNotEmpty($orderIssue);
-        $orderIssue->forceDelete();
     }
 }

+ 21 - 18
tests/Services/OrderPackageCommoditiesService/RegroupOrderCommoditiesTest.php

@@ -2,11 +2,13 @@
 
 namespace Tests\Services\OrderPackageCommoditiesService\RegroupOrderCommoditiesTest;
 
+use App\OracleDOCOrderHeader;
 use App\Order;
 use App\OrderPackage;
 use App\OrderPackageCommodities;
 use App\Services\OracleDOCOrderHeaderService;
 use App\Services\OrderPackageCommoditiesService;
+use App\Services\OrderService;
 use Carbon\Carbon;
 use Illuminate\Foundation\Testing\RefreshDatabase;
 use Illuminate\Foundation\Testing\WithFaker;
@@ -14,46 +16,49 @@ use Tests\TestCase;
 
 class RegroupOrderCommoditiesTest extends TestCase
 {
+    use RefreshDatabase;
+
     /**
      * @var OrderPackageCommoditiesService $service
      * @var OracleDOCOrderHeaderService $orderHeaderService
+     * @var OrderService $orderService
      */
-    public $service;
-    public $orderHeaderService;
+    private $service;
+    private $orderHeaderService;
+    private $orderService;
 
     public function setUp(): void
     {
         parent::setUp();
         $this->service = app('OrderPackageCommoditiesService');
+        $this->orderService = app('OrderService');
         $this->orderHeaderService = app('OracleDocOrderHeaderService');
     }
 
     public function testRegroupOrderCommodities()
     {
-        /*
-        * createOrderPackage($orderHeaders,$orders,$packages)
-        * */
-        $carbon =Carbon::now()->subHours(10);
-        $date = '2020-06-18 18:13:50';
-        $orderHeaders = $this->orderHeaderService->getWMSOrderOnStartDate($date);
-        if($orderHeaders->count()==0){
-            return;
+        $orderHeader = OracleDOCOrderHeader::query()->where('sostatus',99)->orderByDesc('AddTime')->first();
+        if(!$orderHeader){
+            $this->assertNull($orderHeader);
+            return ;
         }
-        $order_nos = Order::all()->map(function($order){
-            return $order->code;
-        });
+
+        $orderHeaders = OracleDOCOrderHeader::query()->where('sostatus',99)
+            ->where('addtime','>=',$orderHeader->addtime)
+            ->get();
+
+        $this->orderService->syncOrder($orderHeaders);
         $order_nos = data_get($orderHeaders,'*.orderno');
         $order_commodities = OrderPackageCommodities::query()->with(['commodity','package.order'])->whereHas('package',function($query)use($order_nos){
             $query->whereHas('order',function ($query)use($order_nos){
                 $query->whereIn('code',$order_nos);
             });
         })->get();
-        $orders = Order::query()->whereIn('code',$order_nos)->get();
-
 
-        $order = Order::query()->whereIn('code',$order_nos)->sql();
         $params = $this->service->regroupOrderCommodities($order_commodities);
+
         $_params = [];
+
         $orderHeaders->each(function($order_header)use(&$_params){
             $order_header->actAllocationDetails->each(function($detail)use(&$_params){
                 $order_no = $detail->orderno;
@@ -73,10 +78,8 @@ class RegroupOrderCommoditiesTest extends TestCase
                 }
             });
         });
-
         foreach ($_params as $key=>$param) {
             $this->assertNotEmpty($params[$key]);
         }
-
     }
 }

+ 0 - 33
tests/Services/OrderPackageCommoditiesService/SyncOrderPackageCommoditiesTest.php

@@ -1,33 +0,0 @@
-<?php
-
-namespace Tests\Services\OrderPackageService\SyncOrderPackageCommoditiesTest;
-
-use App\Services\OracleDOCOrderHeaderService;
-use App\Services\OrderPackageCommoditiesService;
-use Illuminate\Foundation\Testing\RefreshDatabase;
-use Illuminate\Foundation\Testing\WithFaker;
-use Tests\TestCase;
-
-class SyncOrderPackageCommoditiesTest extends TestCase
-{
-    /**
-     * @var OrderPackageCommoditiesService $service
-     * @var OracleDOCOrderHeaderService $orderHeaderService
-     */
-    public $service;
-    public $orderHeaderService;
-
-    public function setUp(): void
-    {
-        parent::setUp();
-        $this->service = app('OrderPackageCommoditiesService');
-        $this->orderHeaderService = app('OracleDocOrderHeaderService');
-    }
-
-    public function testExample()
-    {
-        $response = $this->get('/');
-
-        $response->assertStatus(200);
-    }
-}

+ 0 - 28
tests/Services/OrderPackageService/DeleteUnnecessaryPackageTest.php

@@ -1,28 +0,0 @@
-<?php
-
-namespace Tests\Services\OrderPackageService\DeleteUnnecessaryPackageTest;
-
-use App\Services\OracleDOCOrderHeaderService;
-use App\Services\OrderPackageService;
-use App\Services\OrderService;
-use Illuminate\Foundation\Testing\RefreshDatabase;
-use Illuminate\Foundation\Testing\WithFaker;
-use Tests\TestCase;
-
-class DeleteUnnecessaryPackageTest extends TestCase
-{
-    /**
-     * @var OrderPackageService $service
-     * @var OracleDOCOrderHeaderService $orderHeaderService
-     */
-    public $service;
-    public $orderHeaderService;
-
-    public function setUp(): void
-    {
-        parent::setUp();
-        $this->service = app('OrderPackageService');
-        $this->orderHeaderService = app('OracleDOCOrderHeaderService');
-    }
-
-}

+ 22 - 4
tests/Services/OrderPackageService/GetInnerParamsTest.php

@@ -2,17 +2,21 @@
 
 namespace Tests\Services\OrderPackageSerivce\GetInnerParamsTest;
 
+use App\Logistic;
 use App\OracleDOCOrderHeader;
 use App\Order;
+use App\Owner;
 use App\Services\OracleDOCOrderHeaderService;
 use App\Services\OrderPackageService;
 use App\Services\OrderService;
+use App\Shop;
 use Illuminate\Foundation\Testing\RefreshDatabase;
 use Illuminate\Foundation\Testing\WithFaker;
 use Tests\TestCase;
 
 class GetInnerParamsTest extends TestCase
 {
+    use RefreshDatabase;
     /**
      * @var OrderPackageService $service
      * @var OracleDOCOrderHeaderService $orderHeaderService
@@ -27,13 +31,27 @@ class GetInnerParamsTest extends TestCase
         parent::setUp();
         $this->service = app('OrderPackageService');
         $this->orderService = app('OrderService');
-        $this->orderHeaderService = app('OracleDOCOrderHeaderService');
+        $this->orderHeaderService = app('OracleDocOrderHeaderService');
     }
-    public function testGetInnerParamsTest()
+
+    /**
+     * @test
+     */
+    public function getInnerParamsTest()
     {
-        $orderHeader = OracleDOCOrderHeader::query()->with('actAllocationDetails')->orderByDesc('AddTime')->first();
+        $orderHeader = OracleDOCOrderHeader::query()
+            ->with('actAllocationDetails')
+            ->where('sostatus',99)
+            ->orderByDesc('AddTime')->first();
+        Logistic::query()->firstOrCreate(['code'=>$orderHeader->userdefine1,'name'=>'']);
+        $owner = Owner::query()->firstOrCreate(['code'=>$orderHeader->customerid,'name'=>'']);
+        Shop::query()->firstOrCreate(['name'=>$orderHeader->issuepartyname ?? '','owner_id'=>$owner->id]);
+        app('WarehouseService')->firstOrCreate(["code"=>$orderHeader->warehouseid],["code"=>$orderHeader->warehouseid,"name"=>$orderHeader->warehouseid]);
+        $orderHeaders = collect();
+        $orderHeaders = $orderHeaders->push($orderHeader);
+        $this->orderService->syncOrder($orderHeaders);
         $order = Order::query()->where('code',$orderHeader->orderno)->first();
-        $inner_params = $this->service->getInnerParams($orderHeader,$order,[]);
+        $inner_params = $this->service->getInnerParams($orderHeader,$order,['mapkey'=>['logistic_number']]);
         $this->assertNotEmpty($inner_params);
         $actAllocationDetails = $orderHeader->actAllocationDetails;
 

+ 23 - 12
tests/Services/OrderPackageService/SyncOrderPackageTest.php

@@ -2,6 +2,7 @@
 
 namespace Tests\Services\OrderPackageService\SyncOrderPackageTest;
 
+use App\OracleDOCOrderHeader;
 use App\Services\OracleDOCOrderHeaderService;
 use App\Services\OrderPackageService;
 use App\Services\OrderService;
@@ -12,6 +13,8 @@ use Tests\TestCase;
 
 class SyncOrderPackageTest extends TestCase
 {
+    use RefreshDatabase;
+
     /**
      * @var OrderPackageService $service
      * @var OracleDOCOrderHeaderService $orderHeaderService
@@ -26,20 +29,28 @@ class SyncOrderPackageTest extends TestCase
         parent::setUp();
         $this->service = app('OrderPackageService');
         $this->orderService = app('OrderService');
-        $this->orderHeaderService = app('OracleDOCOrderHeaderService');
+        $this->orderHeaderService = app('OracleDocOrderHeaderService');
     }
-    public function testSyncOrderPackage()
-    {
-        /*
-       * createOrderPackage($orderHeaders,$orders,$packages)
-       * */
 
-        $carbon =Carbon::now()->subHours(10);
-        $date = '2020-09-18 18:13:50';
-        $orderHeaders = $this->orderHeaderService->getWMSOrderOnStartDate($carbon);
-        if($orderHeaders->count()==0){
-            return;
-        }
+    /**
+     * @test
+     */
+    public function syncOrderPackage()
+    {
+        $orderHeader = OracleDOCOrderHeader::query()->orderByDesc('addTime')->first();
+        $orderHeaders = 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','>=',$orderHeader->addtime)
+            ->orderByDesc('DOC_Order_Header.addTime')
+            ->get();
         $orders = $this->orderService->getByWmsOrders($orderHeaders);
         $packages = $this->service->getByWmsOrders($orderHeaders);
         $this->service->syncOrderPackage($orderHeaders,$orders,$packages);

+ 27 - 7
tests/Services/OrderPackageService/SyncPackageByOrderHeadersTest.php

@@ -2,16 +2,20 @@
 
 namespace Tests\Services\OrderPackageService\SyncPackageByOrderHeadersTest;
 
+use App\Logistic;
+use App\OracleDOCOrderHeader;
+use App\Owner;
 use App\Services\OracleDOCOrderHeaderService;
 use App\Services\OrderPackageService;
 use App\Services\OrderService;
-use Carbon\Carbon;
+use App\Shop;
 use Illuminate\Foundation\Testing\RefreshDatabase;
-use Illuminate\Foundation\Testing\WithFaker;
 use Tests\TestCase;
 
 class SyncPackageByOrderHeadersTest extends TestCase
 {
+    use RefreshDatabase;
+
     /**
      * @var OrderPackageService $service
      * @var OracleDOCOrderHeaderService $orderHeaderService
@@ -26,25 +30,41 @@ class SyncPackageByOrderHeadersTest extends TestCase
         parent::setUp();
         $this->service = app('OrderPackageService');
         $this->orderService = app('OrderService');
-        $this->orderHeaderService = app('OracleDOCOrderHeaderService');
+        $this->orderHeaderService = app('OracleDocOrderHeaderService');
     }
     public function testSyncPackageByOrderHeaders()
     {
         /**
          * createOrDeletePackageByOrderHeader($orderHeaders)
          */
-        $carbon = Carbon::now()->subHours(10);
-        $date = '2020-09-18 18:13:50';
-        $orderHeaders = $this->orderHeaderService->getWMSOrderOnStartDate($carbon);
+        $orderHeader = OracleDOCOrderHeader::query()
+            ->with('actAllocationDetails')
+            ->where('sostatus',99)
+            ->orderByDesc('AddTime')
+            ->first();
+
+        $orderHeaders = OracleDOCOrderHeader::query()
+            ->with('actAllocationDetails')
+            ->where('sostatus',99)
+            ->where('addtime','>=',$orderHeader->addtime)
+            ->orderByDesc('AddTime')
+            ->get();
+
         if ($orderHeaders->count() == 0) {
+            $this->assertNull($orderHeaders);
             return;
         }
+
+        Logistic::query()->firstOrCreate(['code'=>$orderHeader->userdefine1,'name'=>'']);
+        $owner = Owner::query()->firstOrCreate(['code'=>$orderHeader->customerid,'name'=>'']);
+        Shop::query()->firstOrCreate(['name'=>$orderHeader->issuepartyname,'owner_id'=>$owner->id]);
+        app('WarehouseService')->firstOrCreate(["code"=>$orderHeader->warehouseid],["code"=>$orderHeader->warehouseid,"name"=>$orderHeader->warehouseid]);
+        $this->orderService->syncOrderByWMSOrderHeaders($orderHeaders);
         $this->service->syncPackageByOrderHeaders($orderHeaders);
         $packages = $this->service->getByWmsOrders($orderHeaders);
         $order_nos = array_unique(data_get($orderHeaders, '*.actAllocationDetails.*.picktotraceid'));
         foreach ($order_nos as $order_no) {
             $this->assertNotEmpty($packages->where('logistic_number', $order_no));
-
         }
     }
 }

+ 8 - 22
tests/Services/OrderService/CreateOrFindOrderInfoTest.php

@@ -4,48 +4,34 @@ namespace Tests\Services\OrderService;
 
 use App\OracleDOCOrderHeader;
 use App\Order;
-use App\Owner;
 use App\Services\OrderService;
-use Carbon\Carbon;
 use Illuminate\Foundation\Testing\RefreshDatabase;
-use Illuminate\Foundation\Testing\WithFaker;
-use Illuminate\Support\Str;
 use Tests\TestCase;
 
 class CreateOrFindOrderInfoTest extends TestCase
 {
+    use RefreshDatabase;
 
     /**
      * @var OrderService $orderService
-     * @var Order $order
      */
     public $orderService;
     public $data = [];
-    public $order ;
+    public $order;
+
     public function setUp(): void
     {
         parent::setUp(); // TODO: Change the autogenerated stub
         $this->orderService = app('OrderService');
-        $this->data['orderHeader'] = OracleDOCOrderHeader::query()->orderBy('addTime')->first();
     }
+
     public function testCreateOrFindOrderInfo()
     {
-        $this->orderService->createOrFindOrderInfo($this->data['orderHeader']);
-        $order =Order::query()->where('code',$this->data['orderHeader']['orderno'])->first();
+        $orderHeader =  OracleDOCOrderHeader::query()->orderByDesc('addTime')->first();
+        $this->orderService->createOrFindOrderInfo($orderHeader);
+        $order = Order::query()->where('code',$orderHeader->orderno)->first();
         $this->assertNotNull($order);
-        $this->order = $order;
-        $this->assertEquals($order->code,$this->data['orderHeader']['orderno']);
-        $this->order->delete();
-    }
-
-    public function testCreateOrFindOrderInfo1()
-    {
-        $orderHeader = $this->data['orderHeader'];
-        $orderHeader->customerid = null;
-        $orderHeader->warehouseid = null;
-        $orderHeader->userdefine1 = null;
-        $this->orderService->createOrFindOrderInfo($this->data['orderHeader']);
-
+        $this->assertEquals($order->code,$orderHeader->orderno);
     }
 
 }

+ 20 - 9
tests/Services/OrderService/CreateOrFindOrderTest.php

@@ -2,35 +2,46 @@
 
 namespace Tests\Services\OrderService;
 
+use App\Logistic;
 use App\OracleDOCOrderHeader;
 use App\Order;
+use App\Owner;
 use App\Services\OrderService;
+use App\Shop;
 use Illuminate\Foundation\Testing\RefreshDatabase;
 use Illuminate\Foundation\Testing\WithFaker;
 use Tests\TestCase;
 
 class CreateOrFindOrderTest extends TestCase
 {
+    use RefreshDatabase;
     /**
      * @var OrderService $orderService
      */
     public $orderService;
-    public $data = [];
-    public $order ;
     public function setUp(): void
     {
         parent::setUp();
         $this->orderService = app('OrderService');
-        $this->data['orderHeader'] = OracleDOCOrderHeader::query()->orderBy('addTime')->first();
     }
 
-    public function testExample()
+    /**
+     * @test
+     */
+    public function createOrFindOrder()
     {
-        $this->orderService->createOrFindOrder($this->data['orderHeader']);
-        $order = Order::query()->where('code',$this->data['orderHeader']['orderno'])->first();
+        $orderHeader = OracleDOCOrderHeader::query()->where('sostatus',99)->orderByDesc('addtime')->first();
+        Logistic::query()->firstOrCreate(['code'=>$orderHeader->userdefine1,'name'=>'']);
+        $owner = Owner::query()->firstOrCreate(['code'=>$orderHeader->customerid,'name'=>'']);
+        Shop::query()->firstOrCreate(['name'=>$orderHeader->issuepartyname,'owner_id'=>$owner->id]);
+        app('WarehouseService')->firstOrCreate(["code"=>$orderHeader->warehouseid],["code"=>$orderHeader->warehouseid,"name"=>$orderHeader->warehouseid]);
+        if(!$orderHeader){
+            $this->assertNull($orderHeader);
+            return;
+        }
+        $this->orderService->createOrFindOrder($orderHeader);
+        $order = Order::query()->where('code',$orderHeader->orderno)->first();
         $this->assertNotNull($order);
-        $this->order = $order;
-        $this->assertEquals($order->code,$this->data['orderHeader']['orderno']);
-        $this->order->delete();
+        $this->assertEquals($order->code,$orderHeader->orderno);
     }
 }

+ 29 - 0
tests/Services/OrderService/FilterOrderByCacheTeat.php

@@ -0,0 +1,29 @@
+<?php
+
+namespace Tests\Services\OrderService;
+
+use App\Services\OrderService;
+use Illuminate\Foundation\Testing\RefreshDatabase;
+use Illuminate\Foundation\Testing\WithFaker;
+use Tests\TestCase;
+
+class FilterOrderByCacheTeat extends TestCase
+{
+    /**
+     * @var OrderService $service
+     */
+    private $service;
+    public function setUp(): void
+    {
+        parent::setUp(); // TODO: Change the autogenerated stub
+        $this->service = app('OrderService');
+    }
+
+    /**
+     * @test
+     */
+    public function testFilterOderByCache()
+    {
+
+    }
+}

+ 14 - 4
tests/Services/OrderService/FindOrCreateByClientCodeTest.php

@@ -10,6 +10,8 @@ use Tests\TestCase;
 
 class FindOrCreateByClientCodeTest extends TestCase
 {
+    use RefreshDatabase;
+
     /** @var OrderService $service */
     public $service;
 
@@ -19,13 +21,21 @@ class FindOrCreateByClientCodeTest extends TestCase
         $this->service=app('OrderService');
     }
 
-    public function testFindOrCreateByClientCode()
+    /**
+     * @test
+     */
+    public function findOrCreateByClientCode()
     {
-        $clientCode = OracleDOCOrderHeader::query()->first()->soreference1;
+        $clientCode = OracleDOCOrderHeader::query()
+            ->orderByDesc('AddTime')
+            ->where('sostatus',99)
+            ->first()
+            ->soreference1;
+
         $order =  $this->service->findOrCreateByClientCode($clientCode);
         $this->assertNotEmpty($clientCode);
         $this->assertNotEmpty($order);
-        $this->assertNotEmpty($order->client_code);
-        $this->assertNotEmpty($order->warehouse_id);
+        $this->assertNotNull($order->client_code);
+        $this->assertNotNull($order->warehouse_id);
     }
 }

+ 15 - 16
tests/Services/OrderService/GetByWmsOrdersTest.php

@@ -11,6 +11,8 @@ use Tests\TestCase;
 
 class GetByWmsOrdersTest extends TestCase
 {
+    use RefreshDatabase;
+
     /** @var OrderService $service */
     public $service;
 
@@ -22,21 +24,18 @@ class GetByWmsOrdersTest extends TestCase
 
     public function testGetByWmsOrders()
     {
-        $orders = Order::query()->orderByDesc('id')->forPage(0,5)->get();
-        $orderHeader = OracleDOCOrderHeader::query()->whereIn('OrderNo',$orders->map(function($order){
-            return $order->code;
-        }))->get();
-        $order_list = $this->service->getByWmsOrders($orderHeader);
-        $this->assertIsBool(count($order_list)==count($orders));
-
-        $order_codes = $orders->sortBy('code')->map(function($order){
-            return $order->code;
-        });
-
-        $order_list_codes = $order_list->sortBy('code')->map(function($order){
-            return $order->code;
-        });
-
-        $this->assertEquals(count($order_list_codes),count($order_codes));
+        $orderHeader = OracleDOCOrderHeader::query()->where('sostatus',99)->orderByDesc('addtime')->first();
+        $orderHeaders = OracleDOCOrderHeader::query()
+            ->where('sostatus',99)
+            ->where('addtime','>=',$orderHeader->addtime)
+            ->get();
+
+        $order_nos = data_get($orderHeaders,'*.orderno');
+        $this->service->syncOrder($orderHeaders);
+        $orders = Order::query()->whereIn('code',$order_nos)->get();
+        $this->assertEquals($orders->count(),$orders->count());
+        foreach ($orderHeaders as $orderHeader) {
+            $this->assertNotNull($orders->where('code',$orderHeader->orderno));
+        }
     }
 }

+ 15 - 4
tests/Services/OrderService/GetCreateOrderModelByWMSOrderHeadersTest.php

@@ -3,6 +3,8 @@
 namespace Tests\Services\OrderService\GetCreateOrderModelByWMSOrderHeadersTest;
 
 use App\Logistic;
+use App\OracleDOCOrderHeader;
+use App\Order;
 use App\Owner;
 use App\Services\common\DataHandlerService;
 use App\Services\LogisticService;
@@ -20,6 +22,9 @@ use Tests\TestCase;
 
 class GetCreateOrderModelByWMSOrderHeadersTest extends TestCase
 {
+
+    use  RefreshDatabase;
+
     /**
      * @var OrderService $service
      * @var OracleDOCOrderHeaderService $orderHeaderService
@@ -50,21 +55,27 @@ class GetCreateOrderModelByWMSOrderHeadersTest extends TestCase
 
     public function testGetCreateOrderModelByWMSOrderHeaders()
     {
-        $carbon =Carbon::now()->subHours(10);
-        $date = '2020-09-18 18:13:50';
-        $orderHeaders = $this->orderHeaderService->getWMSOrderOnStartDate($carbon);
+
+        $orderHeader = OracleDOCOrderHeader::query()->where('sostatus',99)->orderByDesc('addtime')->first();
+        $orderHeaders = OracleDOCOrderHeader::query()
+            ->where('sostatus',99)
+            ->where('addtime','>=',$orderHeader->addtime)
+            ->get();
+
         $warehouses = $this->getWareHouses($orderHeaders);
         $owners = $this->getOwners($orderHeaders);
         $logistics = $this->getLogistics($orderHeaders);
         $shops = $this->getShops($orderHeaders);
 
         $orders = $this->service->getByWmsOrders($orderHeaders);
-        $crate_orders = $this->service->getCreateOrderModelByWMSOrderHeaders($orderHeaders,$orders,$warehouses,$owners,$logistics,$shops);
+        $crate_orders = $this->service->getCreateOrderModelsByWMSOrderHeaders($orderHeaders,$orders,$warehouses,$owners,$logistics,$shops);
         if($orders->count() == $orderHeaders->count() ){
             $this->assertEquals($orders->count(),$orderHeaders->count());
         }
+        $crate_orders = collect($crate_orders);
         foreach ($orderHeaders as $orderHeader) {
             $order = $crate_orders->where('code',$orderHeader->orderno)->first();
+            $order = new Order($order);
             $exist_order = $orders->where('code',$orderHeader->orderno)->first();
             if(isset($exist_order))continue;
             $this->assertNotNull($order);

+ 0 - 83
tests/Services/OrderService/GetCreateOrderModelsTest.php

@@ -1,83 +0,0 @@
-<?php
-
-namespace Tests\Services\OrderService\GetCreateOrderModelsTest;
-
-use App\OracleDOCOrderHeader;
-use App\Services\common\DataHandlerService;
-use App\Services\LogisticService;
-use App\Services\OracleDOCOrderHeaderService;
-use App\Services\OrderService;
-use App\Services\OwnerService;
-use App\Services\ShopService;
-use App\Services\WarehouseService;
-use Illuminate\Foundation\Testing\RefreshDatabase;
-use Illuminate\Foundation\Testing\WithFaker;
-use Tests\TestCase;
-
-class GetCreateOrderModelsTest extends TestCase
-{
-    /**
-     * @var OrderService $service
-     * @var OracleDOCOrderHeaderService $orderHeaderService
-     * @var DataHandlerService $dataHandlerService
-     * @var OwnerService $ownerService
-     * @var LogisticService $logisticService
-     * @var ShopService $shopService
-     * @var WarehouseService $warehouseService
-     */
-    public $service;
-    public $orderHeaderService;
-    public $dataHandlerService;
-    public $ownerService;
-    public $logisticService;
-    public $shopService;
-    public $warehouseService;
-    public function setUp(): void
-    {
-        parent::setUp();
-        $this->service = app('OrderService');
-        $this->orderHeaderService = app('OracleDocOrderHeaderService');
-        $this->dataHandlerService=app('DataHandlerService');
-        $this->ownerService=app('OwnerService');
-        $this->logisticService=app('LogisticService');
-        $this->shopService=app('ShopService');
-        $this->warehouseService=app('WarehouseService');
-    }
-
-    public function testGetCreateModels()
-    {
-        $orderHeader = OracleDOCOrderHeader::query()->orderByDesc('addTime')->first();
-
-        $orderHeaders= collect($orderHeader);
-        $warehouse_map = $this->getWareHouseMap($orderHeaders);
-        $owner_map = $this->getOwnersMap($orderHeaders);
-        $logistic_map = $this->getLogisticMap($orderHeaders);
-        $shop_map = $this->getShopMap($orderHeaders);
-
-        $create_order = $this->service->getCreateOrderModel($orderHeader,$warehouse_map,$owner_map,$logistic_map,$shop_map);
-        $this->assertNotEmpty($create_order);
-
-    }
-
-    public function getWareHouseMap($orderHeaders)
-    {
-        $warehouses = $this->warehouseService->getByWmsOrders($orderHeaders);
-        return $this->dataHandlerService->dataHeader(['code'],$warehouses);
-    }
-    public function getOwnersMap($orderHeaders)
-    {
-        $owners = $this->ownerService->getByWmsOrders($orderHeaders);
-        return $this->dataHandlerService->dataHeader(['code'],$owners);
-    }
-    public function getLogisticMap($orderHeaders)
-    {
-        $logistics = $this->logisticService->getByWmsOrders($orderHeaders);
-        return $this->dataHandlerService->dataHeader(['code'],$logistics);
-    }
-    public function getShopMap($orderHeaders)
-    {
-        $shops = $this->shopService->getByWmsOrders($orderHeaders);
-        return $this->dataHandlerService->dataHeader(['code'],$shops);
-    }
-
-}

+ 14 - 7
tests/Services/OrderService/GetOrderByLogisticNumberTest.php

@@ -16,6 +16,8 @@ use Tests\TestCase;
 
 class GetOrderByLogisticNumberTest extends TestCase
 {
+    use RefreshDatabase;
+
     /** @var OrderService $service */
     public $service;
     public function setUp(): void
@@ -26,16 +28,21 @@ class GetOrderByLogisticNumberTest extends TestCase
 
     public function testGetOrderByLogisticNumber()
     {
+
+        $orderHeader = OracleDOCOrderHeader::query()
+            ->with('actAllocationDetails')
+            ->where('sostatus',99)
+            ->orderByDesc('AddTime')->first();
+        $orderHeaders = OracleDOCOrderHeader::query()
+            ->where('addtime','>=',$orderHeader->addtime)
+            ->where('sostatus',99)
+            ->get();
+
+        $this->service->syncOrder($orderHeaders);
         $order_package = OrderPackage::query()->orderByDesc('id')->first();
+
         $logistic_number = $order_package->logistic_number;
-        $orderHeader = OracleDOCOrderHeader::query()->whereHas('actAllocationDetails',function($query)use($order_package){
-            $query->where('PickToTraceID',$order_package->logistic_number);
-        })->first();
 
-        if(!$orderHeader){
-            $orderHeader = OracleDOCOrderHeader::query()->with('actAllocationDetails')->orderBy('AddTime')->first();
-            $logistic_number = data_get($orderHeader,'actAllocationDetails.*.picktotraceid')[0];
-        }
         $order = $this->service->getOrderByLogisticNumber($logistic_number);
         $this->assertEquals((string)$orderHeader->addtime,(string)$order->created_at);
         $this->assertEquals($orderHeader->orderno,$order->code);

+ 42 - 0
tests/Services/OrderService/GetOrderSyncAtTest.php

@@ -0,0 +1,42 @@
+<?php
+
+namespace Tests\Services\OrderService;
+
+use App\Services\OrderService;
+use Illuminate\Foundation\Testing\RefreshDatabase;
+use Tests\TestCase;
+
+class GetOrderSyncAtTest extends TestCase
+{
+    use RefreshDatabase;
+    /**
+     * @var OrderService $service
+     */
+    private $service;
+
+    public function setUp(): void
+    {
+        parent::setUp(); // TODO: Change the autogenerated stub
+        $this->service = app('OrderService');
+    }
+
+    /**
+     * @test
+     */
+    public function getCreatedOrderSyncAt()
+    {
+        $key = config('sync.order_sync.cache_prefix.created_at');
+        $data = $this->service->getOrderSyncAt($key);
+        $this->assertNotEmpty($data);
+    }
+
+    /**+
+     * @test
+     */
+    public function getUpdatedOrderSyncAt()
+    {
+        $key = config('sync.order_sync.cache_prefix.updated_at');
+        $data = $this->service->getOrderSyncAt($key,'renewal');
+        $this->assertNotEmpty($data);
+    }
+}

+ 19 - 3
tests/Services/OrderService/GetParamByOrderHeaderTest.php

@@ -3,14 +3,20 @@
 namespace Tests\Services\OrderService\GetParamByOrderHeaderTest;
 
 use App\OracleDOCOrderHeader;
+use App\Services\LogisticService;
 use App\Services\OrderIssueService;
 use App\Services\OrderService;
+use App\Services\OwnerService;
+use App\Services\ShopService;
+use App\Services\WarehouseService;
 use Illuminate\Foundation\Testing\RefreshDatabase;
 use Illuminate\Foundation\Testing\WithFaker;
 use Tests\TestCase;
 
 class GetParamByOrderHeaderTest extends TestCase
 {
+    use RefreshDatabase;
+
     /** @var OrderService $service */
     public $service;
     public function setUp(): void
@@ -19,11 +25,21 @@ class GetParamByOrderHeaderTest extends TestCase
         $this->service = app(OrderService::class);
     }
 
+    /**
+     * @test
+     */
     public function testGetParamByOrderHeader()
     {
-        $orderHeader = OracleDOCOrderHeader::query()
-            ->with('actAllocationDetails')
-            ->orderByDesc('AddTime')->first();
+        $orderHeader = OracleDOCOrderHeader::query()->where('sostatus',99)->orderByDesc('addtime')->first();
+        $orderHeaders = OracleDOCOrderHeader::query()
+            ->where('sostatus',99)
+            ->where('addtime','>=',$orderHeader->addtime)
+            ->get();
+
+        app(ShopService::class)->getByWmsOrders($orderHeaders);
+        app(OwnerService::class)->getByWmsOrders($orderHeaders);
+        app(LogisticService::class)->getByWmsOrders($orderHeaders);
+        app(WarehouseService::class)->getByWmsOrders($orderHeaders);
         $param = $this->service->getParamByOrderHeader($orderHeader);
         $this->assertNotNull($param);
         $this->assertNotEmpty($param['code']);

+ 23 - 11
tests/Services/OrderService/GetUpdateModelByWmsOrderHeadersTest.php

@@ -3,6 +3,8 @@
 namespace Tests\Services\OrderService\GetUpdateOrderModelByWMSOrderHeadersTest;
 
 use App\Logistic;
+use App\OracleDOCOrderHeader;
+use App\Order;
 use App\Owner;
 use App\Services\LogisticService;
 use App\Services\OracleDOCOrderHeaderService;
@@ -20,6 +22,7 @@ use Tests\TestCase;
 
 class GetUpdateModelByWmsOrderHeadersTest extends TestCase
 {
+    use RefreshDatabase;
     /**
      * @var OrderService $service
      * @var OracleDOCOrderHeaderService $orderHeaderService
@@ -33,33 +36,42 @@ class GetUpdateModelByWmsOrderHeadersTest extends TestCase
         $this->service = app('OrderService');
         $this->orderHeaderService = app('OracleDocOrderHeaderService');
     }
-    public function testExample()
+
+    /**
+     * @test
+     */
+    public function getUpdateOrderModelByWMSOrderHeaders()
     {
-        $carbon =Carbon::now()->subHours(10);
-        $date = '2020-09-18 18:13:50';
-        $orderHeaders = $this->orderHeaderService->getWMSOrderOnStartDate($carbon);
+
+        $orderHeader = OracleDOCOrderHeader::query()->where('sostatus',99)->orderByDesc('addtime')->first();
+        $orderHeaders = OracleDOCOrderHeader::query()
+            ->where('sostatus',99)
+            ->where('addtime','>=',$orderHeader->addtime)
+            ->get();
         /**
          * @var OwnerService $ownerService
          * @var LogisticService $logisticService
          * @var ShopService $shopService
          * @var WarehouseService $warehouseService
+         * @var OrderService $orderService
          */
         $ownerService = app("OwnerService");
         $logisticService = app("LogisticService");
         $shopService = app('ShopService');
         $warehouseService = app('WarehouseService');
-
+        $orderService = app('OrderService');
         $owners = $ownerService->getByWmsOrders($orderHeaders);
         $logistics = $logisticService->getByWmsOrders($orderHeaders);
         $shops = $shopService->getByWmsOrders($orderHeaders);
         $warehouses = $warehouseService->getByWmsOrders($orderHeaders);
+        $orderService->syncOrderByWMSOrderHeaders($orderHeaders);
 
-        $orders = $this->service->getByWmsOrders($orderHeaders);
-        $orders->each(function($item){
-            $item->warehouse_id = rand(1,3);
-            $item->owner_id = rand(1,50);
-            $item->shop_id = rand(1,50);
-            $item->logistic_id = rand(1,50);
+        $orders = Order::query()->whereIn('code',data_get($orderHeaders,'*.orderno'))->get();
+        $orders->each(function(&$item){
+            $item->warehouse_id = 1;
+            $item->owner_id = 1;
+            $item->shop_id = 1;
+            $item->logistic_id = 1;
             $item->consignee_name = Str::random(50);
             $item->consignee_phone = Str::random(50);
             $item->province = Str::random(50);

+ 8 - 3
tests/Services/OrderService/LogisticNumberFirstOrCreateOrderTest.php

@@ -11,17 +11,22 @@ use Tests\TestCase;
 
 class LogisticNumberFirstOrCreateOrderTest extends TestCase
 {
+    use RefreshDatabase;
     /** @var OrderService $service */
     public $service;
 
     public function setUp(): void
     {
-        $this->service=app(OrderService::class);
         parent::setUp(); // TODO: Change the autogenerated stub
+        $this->service=app(OrderService::class);
     }
-    public function testLogisticNumberFirstOrCreateOrder()
+
+    /**
+     * @test
+     */
+    public function logisticNumberFirstOrCreateOrder()
     {
-        $logistic_number = OracleActAllocationDetails::query()->first()->picktotraceid;
+        $logistic_number = OracleActAllocationDetails::query()->orderByDesc('addtime')->whereNotNull('picktotraceid')->first()->picktotraceid;
         $order = $this->service->logisticNumberFirstOrCreateOrder($logistic_number);
         $this->assertNotEmpty($order);
     }

+ 66 - 0
tests/Services/OrderService/PushOrderCreatedCacheTest.php

@@ -0,0 +1,66 @@
+<?php
+
+namespace Tests\Services\OrderService;
+
+use App\OracleDOCOrderHeader;
+use App\Services\OrderService;
+use Illuminate\Foundation\Testing\RefreshDatabase;
+use Illuminate\Foundation\Testing\WithFaker;
+use Illuminate\Support\Facades\Cache;
+use Illuminate\Support\Str;
+use Tests\TestCase;
+
+class PushOrderCreatedCacheTest extends TestCase
+{
+    use RefreshDatabase;
+    /** @var OrderService $service */
+    public $service;
+    public $data;
+    public function setUp(): void
+    {
+        parent::setUp(); // TODO: Change the autogenerated stub
+        $this->service = app('OrderService');
+        $arr = [Str::uuid(),Str::uuid(),Str::uuid(),Str::uuid(),Str::uuid()];
+        $list = [];
+        foreach ($arr as $item) {
+            $orderHeader= new OracleDOCOrderHeader();
+            $orderHeader->orderno = (string)$item;
+            $list[] = $orderHeader;
+        }
+        $this->data['OrderHeader'] = $list;
+    }
+    /**
+     * @test
+     */
+    public function pushOrderCreatedCache()
+    {
+        $renewal_list   = config('sync.order_sync.cache_prefix.renewal_list');
+        $hasKey         = config('sync.order_sync.cache_prefix.renewal_has');
+        $prefixKey      = config('sync.order_sync.cache_prefix.renewal');
+
+        $this->service->pushOrderCache($this->data['OrderHeader'],$prefixKey,$hasKey,$renewal_list);
+        try {
+            Cache::get($hasKey);
+            $this->assertNotNull(Cache::get($hasKey));
+            foreach ($this->data['OrderHeader'] as $datum) {
+                $this->assertNotEmpty(Cache::get($prefixKey.$datum->orderno));
+            }
+            $this->assertNotNull($this->data['OrderHeader']);
+        } catch (\Exception $e) {
+            $this->assertNotNull($e);
+        }
+    }
+
+    public function tearDown(): void
+    {
+        try {
+            Cache::forget('order_newest_update_cache_keys');
+            Cache::forget('order_newest_update_has_set');
+            foreach ($this->data['OrderHeader'] as $item) {
+                Cache::forget('order_newest_update_' . $item->orderno);
+            }
+        } catch (\Exception $e) {
+        }
+        parent::tearDown(); // TODO: Change the autogenerated stub
+    }
+}

+ 70 - 0
tests/Services/OrderService/PushOrderUpdateCacheTest.php

@@ -0,0 +1,70 @@
+<?php
+
+namespace Tests\Services\OrderService;
+
+use App\OracleDOCOrderHeader;
+use App\Services\OrderService;
+use Illuminate\Foundation\Testing\RefreshDatabase;
+use Illuminate\Support\Facades\Cache;
+use Illuminate\Support\Str;
+use Tests\TestCase;
+
+class PushOrderUpdateCacheTest extends TestCase
+{
+    use RefreshDatabase;
+
+    /** @var OrderService $service */
+    public $service;
+    public $data;
+    private $renewal_list;
+    private $hasKey;
+    private $prefixKey;
+    public function setUp(): void
+    {
+        parent::setUp(); // TODO: Change the autogenerated stub
+        $this->service = app('OrderService');
+        $arr = [Str::uuid(),Str::uuid(),Str::uuid(),Str::uuid(),Str::uuid()];
+        $list = [];
+        foreach ($arr as $item) {
+            $orderHeader= new OracleDOCOrderHeader();
+            $orderHeader->orderno = (string)$item;
+            $list[] = $orderHeader;
+        }
+        $this->data['OrderHeader'] = $list;
+        $this->renewal_list   = config('sync.order_sync.cache_prefix.renewal_list');
+        $this->hasKey         = config('sync.order_sync.cache_prefix.renewal_has');
+        $this->prefixKey      = config('sync.order_sync.cache_prefix.renewal');
+    }
+
+    /**
+     * @test
+     */
+    public function pushOrderUpdateCache()
+    {
+        $this->service->pushOrderCache($this->data['OrderHeader'],$this->prefixKey,$this->hasKey,$this->renewal_list);
+        try {
+            Cache::get($this->hasKey);
+            $this->assertNotNull(Cache::get($this->hasKey));
+            foreach ($this->data['OrderHeader'] as $datum) {
+                $this->assertNotEmpty(Cache::get($this->prefixKey.$datum->orderno));
+            }
+            $this->assertNotNull($this->data['OrderHeader']);
+        } catch (\Exception $e) {
+            $this->assertNotNull($e);
+        }
+
+    }
+
+    public function tearDown(): void
+    {
+        try {
+            Cache::forget($this->renewal_list);
+            Cache::forget($this->hasKey);
+            foreach ($this->data['OrderHeader'] as $item) {
+                Cache::forget($this->prefixKey . $item->orderno);
+            }
+        } catch (\Exception $e) {
+        }
+        parent::tearDown(); // TODO: Change the autogenerated stub
+    }
+}

+ 53 - 0
tests/Services/OrderService/SetOrderSyncAtTest.php

@@ -0,0 +1,53 @@
+<?php
+
+namespace Tests\Services\OrderService;
+
+use App\Services\OrderService;
+use App\ValueStore;
+use Carbon\Carbon;
+use Illuminate\Foundation\Testing\RefreshDatabase;
+use Illuminate\Foundation\Testing\WithFaker;
+use Illuminate\Support\Str;
+use Tests\TestCase;
+
+class SetOrderSyncAtTest extends TestCase
+{
+    use RefreshDatabase;
+
+    /** @var OrderService $service */
+    private $service;
+    public function setUp(): void
+    {
+        parent::setUp(); // TODO: Change the autogenerated stub
+        $this->service = app('OrderService');
+    }
+
+    /**
+     * @test
+     */
+    public function testSetOrderSyncAt()
+    {
+        /** @var Carbon $time */
+
+        $key= Str::uuid();
+        $data = Carbon::now();
+        ValueStore::query()->create(['name'=>$key]);
+
+        $this->service->setOrderSyncAt($key,$data,true);
+        $item = ValueStore::query()->where('name',$key)->first();
+        $this->assertEquals((string)$data->subSeconds(1),(string)$item->value);
+
+        $key= Str::uuid();
+        $data = Carbon::now();
+        ValueStore::query()->create(['name'=>$key]);
+
+        $this->service->setOrderSyncAt($key,$data,false);
+        $item = ValueStore::query()->where('name',$key)->first();
+        $this->assertEquals((string)$data,(string)$item->value);
+    }
+
+    public function tearDown(): void
+    {
+        parent::tearDown(); // TODO: Change the autogenerated stub
+    }
+}

+ 11 - 5
tests/Services/OrderService/SyncOrderByWMSOrderHeaderTest.php

@@ -3,6 +3,8 @@
 namespace Tests\Services\OrderService\SyncOrderByWMSOrderHeaderTest;
 
 use App\Logistic;
+use App\OracleDOCOrderHeader;
+use App\Order;
 use App\Owner;
 use App\Services\common\DataHandlerService;
 use App\Services\LogisticService;
@@ -20,6 +22,7 @@ use Tests\TestCase;
 
 class SyncOrderByWMSOrderHeaderTest extends TestCase
 {
+    use RefreshDatabase;
     /**
      * @var OrderService $service
      * @var OracleDOCOrderHeaderService $orderHeaderService
@@ -44,14 +47,17 @@ class SyncOrderByWMSOrderHeaderTest extends TestCase
     }
     public function testCreateOrUpdateOrderByWMSOrderHeaders()
     {
-        $carbon =Carbon::now()->subHours(10);
-        $date = '2020-09-18 18:13:50';
-        $orderHeaders = $this->orderHeaderService->getWMSOrderOnStartDate($carbon);
+        $orderHeader = OracleDOCOrderHeader::query()->where('sostatus',99)->orderByDesc('addtime')->first();
+        $orderHeaders = OracleDOCOrderHeader::query()
+            ->where('sostatus',99)
+            ->where('addtime','>=',$orderHeader->addtime)
+            ->get();
+
         $this->service->syncOrderByWMSOrderHeaders($orderHeaders);
-        $collect =null;
+        $orders = Order::query()->whereIn('code',data_get($orderHeaders,'*.orderno'))->get();
         foreach ($orderHeaders as $orderHeader) {
             $code = $orderHeader->orderno;
-            $order = $collect->where('code',$code)->first();
+            $order = $orders->where('code',$code)->first();
             $this->assertNotNull($order);
 
             $warehouse = Warehouse::query()->where('code',$orderHeader->warehouseid)->first();

+ 16 - 36
tests/Services/OrderService/SyncOrderTest.php

@@ -21,53 +21,33 @@ use Tests\TestCase;
 
 class SyncOrderTest extends TestCase
 {
+    use RefreshDatabase;
+
     /**
      * @var OrderService $service
-     * @var OracleDOCOrderHeaderService $orderHeaderService
-     * @var DataHandlerService $dataHandlerService
-     * @var OwnerService $ownerService
-     * @var LogisticService $logisticService
-     * @var ShopService $shopService
-     * @var WarehouseService $warehouseService
      */
     public $service;
-    public $orderHeaderService;
-    public $dataHandlerService;
-    public $ownerService;
-    public $logisticService;
-    public $shopService;
-    public $warehouseService;
+
     public function setUp(): void
     {
         parent::setUp();
         $this->service=app(OrderService::class);
-        $this->orderHeaderService=app(OracleDOCOrderHeaderService::class);
     }
-    public function testCreateOrUpdateOrderInfo()
+
+    /**
+     * @test
+     */
+    public function createOrUpdateOrderInfo()
     {
-        $carbon =Carbon::now()->subHours(1);
-        $date = '2020-05-18 18:13:50';
-        //   SO201112029795
-//        $orderHeader = $this->orderHeaderService->getWMSOrderOnStartDate($carbon);
-        $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','>=',$startDate)
-//            ->where('orderno','SO201112029795')
-            ->where('DOC_Order_Header.addTime','>=',$carbon)
+        $orderHeader = OracleDOCOrderHeader::query()->where('sostatus',99)->orderByDesc('addtime')->first();
+        $orderHeaders = OracleDOCOrderHeader::query()
+            ->where('sostatus',99)
+            ->where('addtime','>=',$orderHeader->addtime)
             ->get();
-
-        $this->service->syncOrder($orderHeader);
-
-        $order = $this->service->getByWmsOrders($orderHeader);
-        $this->assertNotNull($order);
+        $this->service->syncOrder($orderHeaders);
+        $orders = $this->service->getByWmsOrders($orderHeaders);
+        $this->assertNotNull($orders);
         $this->assertNotNull($orderHeader);
+        $this->assertEquals(count($orderHeaders),count($orders));
     }
 }

+ 5 - 5
tests/Services/OrderTrackingService/CustomizedOperationTest.php

@@ -12,6 +12,8 @@ use Tests\TestCase;
 
 class CustomizedOperationTest extends TestCase
 {
+    use RefreshDatabase;
+
     /** @var OrderTrackingService $service */
     public $service;
 
@@ -23,16 +25,14 @@ class CustomizedOperationTest extends TestCase
 
     public function testCustomizedOperation()
     {
-        $carbon = Carbon::now()->subHours(12);
-        $orderHeaders = OracleDOCOrderHeader::query()->where('consigneeid',"ZT")->where('addtime',$carbon)->get();
+        $orderHeader = OracleDOCOrderHeader::query()->where('consigneeid',"ZT")->orderByDesc('AddTime')->first();
+        $orderHeaders = OracleDOCOrderHeader::query()->where('consigneeid',"ZT")->where('addtime','>=',$orderHeader->addtime)->get();
         $ZT_Count = $orderHeaders->count();
         /** @var Collection $orderHeader */
-        $orderHeader = $this->service->customizedOperation($orderHeaders);
+        $this->service->customizedOperation($orderHeaders);
         $XJ_Count  = $orderHeaders->filter(function($orderHeader){
             return $orderHeader->userdefine1 == 'XJWL';
         })->count();
-//        var_dump($orderHeaders->count(),$carbon);
-//        $this->assertNotEmpty($orderHeaders);
         $this->assertEquals($ZT_Count,$XJ_Count);
     }
 }

+ 16 - 17
tests/Services/OrderTrackingService/FillInOrderTrackingTest.php

@@ -11,33 +11,32 @@ use Tests\TestCase;
 
 class FillInOrderTrackingTest extends TestCase
 {
+    use RefreshDatabase;
+
     /** @var OrderTrackingService $service */
     public $service;
-    public $data;
     public function setUp(): void
     {
         parent::setUp(); // TODO: Change the autogenerated stub
         $this->service = app('OrderTrackingService');
-        $this->data['orderTracking'] = factory(OrderTracking::class,10)->create();
     }
 
-    public function testFillInOrderTracking()
+    /**
+     * @test
+     */
+    public function fillInOrderTracking()
     {
         $data = new Carbon();
-        $orderTracking =  $this->data['orderTracking'];
+        $orderTracking =  factory(OrderTracking::class,10)->create();
         $this->service->fillInOrderTracking($orderTracking);
-        try {
-            $orderTracking_list = OrderTracking::query()->whereIn('id', data_get($orderTracking, '*.id'))->get();
-            $orderTracking_list->each(function ($item) use ($data, $orderTracking) {
-                $tracking = $orderTracking->where('id', $item->id)->first();
-                if ($item->created_at != '0000-00-00 00:00:00' &&
-                    $item->planning_sent_at !== '0000-00-00 00:00:00' &&
-                    $item->planning_sent_at < $data) {
-                    $this->assertEquals($tracking->planning_sent_at, $item->signed_at);
-                }
-            });
-        } catch (\Exception $e) {
-            OrderTracking::query()->whereIn('id',data_get($orderTracking,'*.id'))->delete();
-        }
+        $orderTracking_list = OrderTracking::query()->whereIn('id', data_get($orderTracking, '*.id'))->get();
+        $orderTracking_list->each(function ($item) use ($data, $orderTracking) {
+            $tracking = $orderTracking->where('id', $item->id)->first();
+            if ($item->created_at != '0000-00-00 00:00:00' &&
+                $item->planning_sent_at !== '0000-00-00 00:00:00' &&
+                $item->planning_sent_at < $data) {
+                $this->assertEquals($tracking->planning_sent_at, $item->signed_at);
+            }
+        });
     }
 }

+ 0 - 39
tests/Services/OrderTrackingService/GetParamsByOrderHeaderAndOrderTest.php

@@ -1,39 +0,0 @@
-<?php
-
-namespace Tests\Services\OrderTrakingSerive\GetParamsByOrderHeaderAndOrderTest;
-
-use App\OracleDOCOrderHeader;
-use App\Order;
-use App\Services\OrderService;
-use App\Services\OrderTrackingService;
-use Illuminate\Foundation\Testing\RefreshDatabase;
-use Illuminate\Foundation\Testing\WithFaker;
-use Tests\TestCase;
-
-class GetParamsByOrderHeaderAndOrderTest extends TestCase
-{
-
-    /** @var OrderTrackingService $service */
-    public $service;
-
-    public function setUp(): void
-    {
-        $this->service=app(OrderTrackingService::class);
-        parent::setUp(); // TODO: Change the autogenerated stub
-    }
-
-    public function testGetParamsByOrderHeaderAndOrderTest()
-    {
-        /**
-         * @var Order $order
-         * @var OracleDOCOrderHeader $orderHeader
-         */
-        $order = Order::query()->first();
-        $orderHeader = OracleDOCOrderHeader::query()->where('OrderNo',$order->code)->first();
-        $this->assertNotEmpty($order);
-        $this->assertNotEmpty($orderHeader);
-        $orderTacking =  $this->service->getParamsByOrderHeaderAndOrder($orderHeader,$order);
-        $this->assertNotEmpty($orderTacking);
-        $this->assertNotEmpty($orderTacking['planning_sent_at']);
-    }
-}

+ 2 - 0
tests/Services/WarehouseService/GetByWmsOrderTest.php

@@ -7,10 +7,12 @@ use App\OracleDOCOrderHeader;
 use App\Services\WarehouseService;
 use App\Warehouse;
 use Carbon\Carbon;
+use Illuminate\Foundation\Testing\RefreshDatabase;
 use Tests\TestCase;
 
 class GetByWmsOrderTest extends TestCase
 {
+    use RefreshDatabase;
 
     /** @var WarehouseService $service */
     public $service;

Некоторые файлы не были показаны из-за большого количества измененных файлов