LD 5 лет назад
Родитель
Сommit
2ccadea86e

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

@@ -189,7 +189,9 @@ class TestController extends Controller
     }
 
     public function mergerPackageData(){
-        $number = 1000;
+        ini_set('max_execution_time',36000);
+        ini_set('memory_limit','1526M');
+        $number = 3000;
         $sum = Package::query()->count();
         $len = ceil($sum / $number);
         $id = 0;
@@ -197,8 +199,9 @@ class TestController extends Controller
             $packages = Package::query()->orderBy('id')->where('id','>',$id)->limit($number)->get();
             $error = [];
             foreach ($packages as $package){
-                /** @var OrderPackageService */
-               $orderPackage =  app('orderPackageService')->firstOrCreate($package->logistic_number,
+                /** @var $service OrderPackageService */
+                $service = app('orderPackageService');
+                $orderPackage =  $service->firstOrCreate($package->logistic_number,
                     ['batch_number'=>$package->batch_number,
                         'batch_rule'=>$package->batch_rule,
                         'bulk'=>$package->bulk,
@@ -214,6 +217,7 @@ class TestController extends Controller
             }
             LogService::log(__METHOD__,"同步时WMS中未找到这些订单",json_encode($error));
             $id = $packages[count($packages)-1]->id;
+            echo $number.' a bunch done at:'.now()->toFormattedDateString().'<br>';
         }
     }
 

+ 1 - 1
app/Http/Controllers/api/thirdPart/weight/PackageController.php

@@ -216,7 +216,7 @@ class PackageController extends Controller
         }
         if (!$package){
             $logisticNumber=$request['barcode'];
-            $package=new Package([
+            $package=new OrderPackage([
                 'logistic_number'=>$logisticNumber,
                 'measuring_machine_id'=>$measuringMachine->id,
                 'weight'=>$request['weight'],

+ 4 - 3
app/Services/OrderPackageService.php

@@ -102,12 +102,13 @@ class OrderPackageService
      * @return OrderPackage $package
      */
     public function firstOrCreate($logistic_number, array $values){
-        /** @var OrderPackage $package */
+        /** @var $package OrderPackage  */
         $package = OrderPackage::query()->where('logistic_number',$logistic_number)->first();
         if ($package)return $package;
 
-        /** @var OrderService */
-        $order = app('orderService')->logisticNumberCreateOrder($logistic_number);
+        /** @var $orderService OrderService */
+        $orderService = app('orderService');
+        $order = $orderService->logisticNumberCreateOrder($logistic_number);
         if (!$order)return null;
 
         $values["order_id"] = $order->id;

+ 211 - 213
routes/web.php

@@ -23,207 +23,163 @@ Auth::routes();
 Route::get('/home', 'HomeController@index')->name('home');
 Route::get('/homeTemp', 'HomeController@home');
 
-Route::group(['prefix'=>'password'],function(){
-    Route::get('change', 'Auth\PasswordController@change');
-    Route::post('update', 'Auth\PasswordController@update');
-});
+Route::get('password/change', 'Auth\PasswordController@change');
+Route::post('password/update', 'Auth\PasswordController@update');
+Route::get('maintenance/commodity/import', 'CommodityController@import');
+Route::post('maintenance/commodity/import/excel', 'CommodityController@importExcel');
 
-/** 基础设置 */
-Route::get('maintenance/', function () {return view('maintenance.index');});
-Route::group(['prefix'=>'maintenance'],function(){
-    Route::group(['prefix'=>'commodity'],function(){
-        Route::get('import', 'CommodityController@import');
-        Route::post('import/excel', 'CommodityController@importExcel');
-    });
-    Route::group(['prefix'=>'tutorial'],function(){
-        //教程展示
-        Route::post('showContent/{id}', 'TutorialController@showContent');
-    });
-    //临时工管理
-    Route::group(['prefix'=>'userLabor'],function(){
-        //获取劳务记录
-        Route::post('getWorkRecord', 'UserLaborController@getWorkRecord');
-        //获取打卡记录
-        Route::post('getClockRecord', 'UserLaborController@getClockRecord');
-        //解除绑定设备
-        Route::post('relieve', 'UserLaborController@relieve');
-    });
-    Route::group(['prefix'=>'paperBox'],function(){
-        Route::get('index/model', 'PaperBoxController@indexModel');
-        Route::get('index/owner', 'PaperBoxController@indexOwner');
-        Route::post('excel/import','PaperBoxController@import');
-        Route::get('excel/goImport',function (){return view('maintenance.paperBox.import');});
-    });
-    Route::group(['prefix'=>'waybillPriceModel'],function(){
-        Route::get('excel/goImport',function (){return view('maintenance.waybillPriceModel.import');});
-        Route::get('cities/{province_id}','WaybillPriceModelsController@getCities');
-    });
-    Route::resource('waybillPriceModel','WaybillPriceModelsController');
-    Route::resource('tutorial', 'TutorialController');
-    Route::resource('userLabor','UserLaborController');
-    Route::resource('paperBox', 'PaperBoxController');
-    Route::resource('log', 'LogController');
-    Route::resource('user', 'UserController');
-    Route::resource('role', 'RoleController');
-    Route::resource('authority', 'AuthorityController');
-    Route::resource('owner', 'OwnerController');
-    Route::resource('logistic', 'LogisticController');
-    Route::resource('qualityLabel', 'QualityLabelController');
-    Route::resource('carrier', 'CarriersController');
-    Route::resource('carType','CarTypesController');
-    Route::resource('unit','UnitsController');
-    Route::resource('province','ProvincesController');
-    Route::resource('city','CitiesController');
-    Route::resource('commodity', 'CommodityController');
-    Route::resource('measuringMachine', 'MeasuringMachineController');
-    Route::resource('userWorkgroup', 'UserWorkgroupController');
-    Route::resource('laborCompany', 'LaborCompanyController');
-    Route::resource('warehouse', 'WarehouseController');
-    Route::resource('jobType', 'JobTypeController');
-    //停用货主
-    Route::get('owners/recycle','OwnerController@recycle');
-});
+Route::resource('maintenance/log', 'LogController');
+Route::resource('maintenance/user', 'UserController');
+Route::resource('maintenance/role', 'RoleController');
+Route::resource('maintenance/authority', 'AuthorityController');
+Route::resource('maintenance/owner', 'OwnerController');
+Route::resource('maintenance/logistic', 'LogisticController');
+Route::resource('maintenance/qualityLabel', 'QualityLabelController');
+Route::resource('maintenance/carrier', 'CarriersController');
+Route::resource('maintenance/carType','CarTypesController');
+Route::resource('maintenance/unit','UnitsController');
+Route::resource('maintenance/province','ProvincesController');
+Route::resource('maintenance/city','CitiesController');
+Route::resource('maintenance/commodity', 'CommodityController');
+Route::resource('maintenance/measuringMachine', 'MeasuringMachineController');
+Route::resource('maintenance/userWorkgroup', 'UserWorkgroupController');
+Route::resource('maintenance/laborCompany', 'LaborCompanyController');
+Route::resource('maintenance/warehouse', 'WarehouseController');
+Route::resource('maintenance/jobType', 'JobTypeController');
+//教程管理
+Route::resource('maintenance/tutorial', 'TutorialController');
+//停用货主
+Route::get('maintenance/owners/recycle','OwnerController@recycle');
+//教程展示
+Route::post('maintenance/tutorial/showContent/{id}', 'TutorialController@showContent');
+//临时工管理
+Route::resource('maintenance/userLabor','UserLaborController');
+//获取劳务记录
+Route::post('maintenance/userLabor/getWorkRecord', 'UserLaborController@getWorkRecord');
+//获取打卡记录
+Route::post('maintenance/userLabor/getClockRecord', 'UserLaborController@getClockRecord');
+//解除绑定设备
+Route::post('maintenance/userLabor/relieve', 'UserLaborController@relieve');
 
-/** 运输 */
-Route::group(['prefix'=>'waybill'],function(){
-    Route::post('deleteImg','WaybillController@deleteImg');
-    Route::post('upload','WaybillController@upload');
-    Route::get('relating',function (){return view('waybill.menuWaybill');});
-    Route::get('recycle', 'WaybillController@recycle');   //回收站
-    Route::any('ontop/top','WaybillController@waybillOnTop');
-    Route::any('ontop/cancel','WaybillController@cancelOnTop');
-    Route::post('refreshWaveHouseWeight','WaybillController@refreshWaveHouseWeight');
-    Route::resource('waybillFinancialSnapshot','WaybillFinancialSnapshotsController');
-    Route::resource('waybillFinancialExcepted','WaybillFinancialExceptedController');
-    Route::get('index','WaybillController@index');
-    Route::get('delivering','WaybillController@delivering');
-    Route::any('deliveringExport','WaybillController@deliveringExport');
-    Route::post('storeCarrierBill','WaybillController@storeCarrierBill');
-    Route::post('is/waybillPriceModel','WaybillController@isWaybillPriceModel');
-    Route::post('addCounty','WaybillController@addCounty');
-    Route::any('waybillAudit','WaybillController@waybillAudit');
-    Route::any('waybillEdit/{id}','WaybillController@waybillEdit');
-    Route::any('waybillRetreatAudit','WaybillController@waybillRetreatAudit');
-    Route::any('waybillEndAudit','WaybillController@waybillEndAudit');
-    Route::any('export','WaybillController@export');
-    Route::any('waybillUpdate/{id}','WaybillController@waybillUpdate');
-});
+Route::get('maintenance/paperBox/index/model', 'PaperBoxController@indexModel');
+Route::get('maintenance/paperBox/index/owner', 'PaperBoxController@indexOwner');
+Route::post('maintenance/paperBox/excel/import','PaperBoxController@import');
+Route::resource('maintenance/paperBox', 'PaperBoxController');
+Route::get('maintenance/paperBox/excel/goImport',function (){return view('maintenance.paperBox.import');});
+
+Route::post('waybill/deleteImg','WaybillController@deleteImg');
+Route::post('waybill/upload','WaybillController@upload');
+Route::get('waybill/relating',function (){return view('waybill.menuWaybill');});
+Route::resource('maintenance/waybillPriceModel','WaybillPriceModelsController');
+Route::get('maintenance/waybillPriceModel/excel/goImport',function (){return view('maintenance.waybillPriceModel.import');});
+Route::get('maintenance/waybillPriceModel/cities/{province_id}','WaybillPriceModelsController@getCities');
+
+Route::resource('waybill/waybillFinancialSnapshot','WaybillFinancialSnapshotsController');
+Route::resource('waybill/waybillFinancialExcepted','WaybillFinancialExceptedController');
+
+Route::get('waybill/recycle', 'WaybillController@recycle');   //回收站
+Route::any('waybill/ontop/top','WaybillController@waybillOnTop');
+Route::any('waybill/ontop/cancel','WaybillController@cancelOnTop');
+
+Route::post('waybill/refreshWaveHouseWeight','WaybillController@refreshWaveHouseWeight');
+
+Route::get('waybill/index','WaybillController@index');
+Route::get('waybill/delivering','WaybillController@delivering');
+Route::any('waybill/deliveringExport','WaybillController@deliveringExport');
+Route::post('waybill/storeCarrierBill','WaybillController@storeCarrierBill');
+Route::post('waybill/is/waybillPriceModel','WaybillController@isWaybillPriceModel');
+Route::post('waybill/addCounty','WaybillController@addCounty');
+Route::any('waybill/waybillAudit','WaybillController@waybillAudit');
+Route::any('waybill/waybillEdit/{id}','WaybillController@waybillEdit');
+Route::any('waybill/waybillRetreatAudit','WaybillController@waybillRetreatAudit');
+Route::any('waybill/waybillEndAudit','WaybillController@waybillEndAudit');
+Route::any('waybill/export','WaybillController@export');
+Route::any('waybill/waybillUpdate/{id}','WaybillController@waybillUpdate');
 Route::resource('waybill','WaybillController');
 
 
 Route::any('waybillFinancialSnapshot/export','WaybillFinancialSnapshotsController@export');
 Route::post('waybillPriceModel/excel/import','WaybillPriceModelsController@import');
 
+
 Route::post('rejectedBill/{rejectedBill}/edit', 'RejectedBillController@edit');
 Route::resource('rejectedBill', 'RejectedBillController');
-
-/** 退货 */
-Route::group(['prefix'=>'rejected'],function(){
-    Route::get('import', 'RejectedController@import');
-    Route::post('import/excel', 'RejectedController@importExcel');
-    Route::get('relating', function () {return view('rejected.relating');});
-    Route::get('recycle', 'RejectedController@recycle');
-    Route::post('ajaxCheck', 'RejectedController@ajaxCheck');
-    Route::post('ajaxCheckAll', 'RejectedController@ajaxCheckAll');
-    Route::post('ajaxFinishAll', 'RejectedController@ajaxFinishAll');
-    Route::any('export', 'RejectedController@export');
-    Route::any('index/general','RejectedController@index');  // 一般查询
-    Route::any('index/analyze','RejectedController@indexAnalyze');  // 统计查询
-    Route::any('exportAnalyze', 'RejectedController@exportAnalyze');
-    Route::post('analyze/exportExcelOnParams', 'RejectedController@exportExcelOnParams');
-    Route::post('analyze/exportAllExcelOnParams', 'RejectedController@exportAllExcelOnParams');
-    Route::post('ajaxGetRejected', 'RejectedController@ajaxGetRejected');
-});
+Route::get('rejected/import', 'RejectedController@import');
+Route::post('rejected/import/excel', 'RejectedController@importExcel');
+Route::get('rejected/relating', function () {return view('rejected.relating');});
+Route::get('rejected/recycle', 'RejectedController@recycle');
+Route::post('rejected/ajaxCheck', 'RejectedController@ajaxCheck');
+Route::post('rejected/ajaxCheckAll', 'RejectedController@ajaxCheckAll');
+Route::post('rejected/ajaxFinishAll', 'RejectedController@ajaxFinishAll');
+Route::any('rejected/export', 'RejectedController@export');
+Route::any('rejected/index/general','RejectedController@index');  // 一般查询
+Route::any('rejected/index/analyze','RejectedController@indexAnalyze');  // 统计查询
+Route::any('rejected/exportAnalyze', 'RejectedController@exportAnalyze');
 Route::resource('rejected', 'RejectedController');
 
-/** 包裹 */
+
+Route::post('rejected/analyze/exportExcelOnParams', 'RejectedController@exportExcelOnParams');
+Route::post('rejected/analyze/exportAllExcelOnParams', 'RejectedController@exportAllExcelOnParams');
+Route::post('rejected/ajaxGetRejected', 'RejectedController@ajaxGetRejected');
+
+Route::get('maintenance/', function () {return view('maintenance.index');});
+Route::any('package/measureMonitor/speech','MeasureMonitorController@speech');
+Route::post('package/measureMonitor/data','MeasureMonitorController@data');
+Route::resource('package/measureMonitor','MeasureMonitorController');
+Route::any('package/export','PackageController@export');
+Route::get('package/statistics','PackageController@statistics');
 Route::group(['prefix'=>'package'],function(){
     Route::group(['prefix'=>'statistics'],function(){
         Route::any('export','PackageController@statisticsExport');
     });
-    Route::group(['prefix'=>'measureMonitor'],function(){
-        Route::post('data','MeasureMonitorController@data');
-        Route::any('speech','MeasureMonitorController@speech');
-    });
-    Route::resource('measureMonitor','MeasureMonitorController');
-    Route::any('export','PackageController@export');
-    Route::get('statistics','PackageController@statistics');
-    Route::get('relating', function () {return view('weight.menuWeight');});
-    Route::group(['prefix'=>'weightExcepted'],function(){
-        Route::get('indexCreate','WeighExceptedController@indexCreate');
-        Route::get('indexIssued','WeighExceptedController@indexIssued');
-        Route::any('export/{type}','WeighExceptedController@export');
-    });
 });
+Route::get('package/relating', function () {return view('weight.menuWeight');});
+Route::get('package/weightExcepted/indexCreate','WeighExceptedController@indexCreate');
+Route::get('package/weightExcepted/indexIssued','WeighExceptedController@indexIssued');
+Route::any('package/weightExcepted/export/{type}','WeighExceptedController@export');
 Route::resource('package','PackageController');
 
-/** 入库 */
 Route::get('store','StoreController@index');
-Route::group(['prefix'=>'store'],function(){
-    Route::resource('fast','StoreController');
-    Route::resource('storeItem','StoreItemsController');
-});
+Route::resource('store/fast','StoreController');
+Route::resource('store/storeItem','StoreItemsController');
 
-/** 人事 */
-Route::group(['prefix'=>'personnel'],function(){
-    //二维码
-    Route::group(['prefix'=>'checking-in'],function(){
-        //进入打卡
-        Route::get('goGetQRCode','QRCodeController@goGetQRCode');
-        //进入组二维码显示页面
-        Route::get('QRCode','QRCodeController@QRCode');
-        //进入进出场二维码显示页面
-        Route::get('importAndExportQRCode','QRCodeController@importAndExportQRCode');
-        //获取刷新二维码
-        Route::post('refreshQRCode','QRCodeController@refreshQRCode');
-        //去往录入补卡
-        Route::get('createReplenishClock','PersonnelController@createReplenishClock');
-        //搜索临时工下打卡信息
-        Route::post('checkUserLabors','PersonnelController@checkUserLabors');
-        //录入补卡
-        Route::post('storeReplenishClock','PersonnelController@storeReplenishClock');
-        //去往打卡审核
-        Route::get('clockAudit','PersonnelController@clockAudit');
-        //去往任务审核
-        Route::get('missionAudit','PersonnelController@missionAudit');
-        //打卡审核
-        Route::post('storeClockAudit','PersonnelController@storeClockAudit');
-        //打卡审核类型
-        Route::post('updateDutyCheckType','PersonnelController@updateDutyCheckType');
-        //打卡组长审核
-        Route::post('storeGroupAudit','PersonnelController@storeGroupAudit');
-        //打卡审核登出类型判断异常
-        Route::post('isException','PersonnelController@isException');
-        //任务审核
-        Route::post('storeMissionAudit','PersonnelController@storeMissionAudit');
-    });
-    //用户打卡
-    Route::group(['prefix'=>'userDutyCheck'],function(){
-        //进出场打卡接口
-        Route::get('importAndExportClock','UserDutyCheckController@importAndExportClock');
-        //进入打卡接口
-        Route::get('clock','UserDutyCheckController@clock');
-        //进出场提交打卡
-        Route::post('storeClock','UserDutyCheckController@storeClock');
-        Route::post('绑定临时工并进组','UserDutyCheckController@绑定临时工并进组');
-        //进出场提交打卡
-        Route::post('importGroupClock','UserDutyCheckController@importGroupClock');
-        //去往登记资料页面
-        Route::get('createUserDetail/{mobile_phone}','UserDutyCheckController@createUserDetail');
-        //去往修改资料页面
-        Route::get('updateUserLaborCompanies/{mobile_phone}','UserDutyCheckController@updateUserLaborCompanies');
-        //提交登记资料
-        Route::post('storeUserDetail','UserDutyCheckController@storeUserDetail');
-        //提交修改劳务所
-        Route::post('storeUpdateUserLaborCompanies','UserDutyCheckController@storeUpdateUserLaborCompanies');
-    });
-    //相关设置
-    Route::get('relating',function (){return view('personnel/menuPersonnel');});
-    //临时工报表界面
-    Route::resource('laborReport','LaborReportController');
-});
 
+/**
+ *二维码
+ */
+//进入打卡
+Route::get('personnel/checking-in/goGetQRCode','QRCodeController@goGetQRCode');
+//进入组二维码显示页面
+Route::get('personnel/checking-in/QRCode','QRCodeController@QRCode');
+////打卡页面点击仓库获取所有的工作组
+//Route::get('personnel/checking-in/getUserWorkGroups','QRCodeController@getUserWorkGroups');
 
+//进入进出场二维码显示页面
+Route::get('personnel/checking-in/importAndExportQRCode','QRCodeController@importAndExportQRCode');
+//获取刷新二维码
+Route::post('personnel/checking-in/refreshQRCode','QRCodeController@refreshQRCode');
+/**
+ *  用户打卡
+ */
+Route::group(['prefix'=>'personnel/checking-in/userDutyCheck'],function(){
+    //进出场打卡接口
+    Route::get('importAndExportClock','UserDutyCheckController@importAndExportClock');
+    //进入打卡接口
+    Route::get('clock','UserDutyCheckController@clock');
+    //进出场提交打卡
+    Route::post('storeClock','UserDutyCheckController@storeClock');
+    Route::post('绑定临时工并进组','UserDutyCheckController@绑定临时工并进组');
+    //进出场提交打卡
+    Route::post('importGroupClock','UserDutyCheckController@importGroupClock');
+    //去往登记资料页面
+    Route::get('createUserDetail/{mobile_phone}','UserDutyCheckController@createUserDetail');
+    //去往修改资料页面
+    Route::get('updateUserLaborCompanies/{mobile_phone}','UserDutyCheckController@updateUserLaborCompanies');
+    //提交登记资料
+    Route::post('storeUserDetail','UserDutyCheckController@storeUserDetail');
+    //提交修改劳务所
+    Route::post('storeUpdateUserLaborCompanies','UserDutyCheckController@storeUpdateUserLaborCompanies');
+});
 
 /**
  *  二次加工
@@ -231,7 +187,9 @@ Route::group(['prefix'=>'personnel'],function(){
 Route::group(['prefix'=>'process'],function(){
     //相关设置
     Route::get('relating',function (){return view('process.menuProcess');});
-    //统计
+    /*
+     * 统计
+     * */
     Route::group(['prefix'=>'statistic'],function (){
         //首页
         Route::get("",'ProcessStatisticController@index');
@@ -297,9 +255,15 @@ Route::group(['prefix'=>'process'],function(){
     //导出
     Route::any('export','ProcessController@export');
 });
+//process主方法 restful
 Route::resource('process','ProcessController');
 
-/** 人事报表 */
+/**
+ * 人事
+ */
+//临时工报表界面
+Route::resource('personnel/laborReport','LaborReportController');
+
 Route::get('getLaborReport','LaborReportController@getDailyLabor');
 Route::group(['prefix'=>'laborReport'],function(){
     //门卫打卡审核
@@ -316,6 +280,31 @@ Route::group(['prefix'=>'laborReport'],function(){
     Route::any('export','LaborReportController@export');
 });
 
+Route::group(['prefix'=>'personnel'],function(){
+    //去往录入补卡
+    Route::get('checking-in/createReplenishClock','PersonnelController@createReplenishClock');
+    //搜索临时工下打卡信息
+    Route::post('checking-in/checkUserLabors','PersonnelController@checkUserLabors');
+    //录入补卡
+    Route::post('checking-in/storeReplenishClock','PersonnelController@storeReplenishClock');
+    //去往打卡审核
+    Route::get('checking-in/clockAudit','PersonnelController@clockAudit');
+    //去往任务审核
+    Route::get('checking-in/missionAudit','PersonnelController@missionAudit');
+    //打卡审核
+    Route::post('checking-in/storeClockAudit','PersonnelController@storeClockAudit');
+    //打卡审核类型
+    Route::post('checking-in/updateDutyCheckType','PersonnelController@updateDutyCheckType');
+    //打卡组长审核
+    Route::post('checking-in/storeGroupAudit','PersonnelController@storeGroupAudit');
+    //打卡审核登出类型判断异常
+    Route::post('checking-in/isException','PersonnelController@isException');
+    //任务审核
+    Route::post('checking-in/storeMissionAudit','PersonnelController@storeMissionAudit');
+    //相关设置
+    Route::get('relating',function (){return view('personnel/menuPersonnel');});
+});
+
 /**
  * 库存
  */
@@ -332,9 +321,10 @@ Route::group(['prefix'=>'inventory'],function (){
     //同步货主
     Route::get('syncOwners','InventoryAccountController@syncOwners');
     Route::any('删除盘点记录','InventoryAccountController@删除盘点记录');
-    Route::get('盘点任务完结/{id}','InventoryAccountController@盘点任务完结');
+    Route::get('完结盘点任务/{id}','InventoryAccountController@完结盘点任务');
     Route::post('修改质量状态','InventoryAccountController@修改质量状态');
     Route::post('增加系统之外的库位记录','InventoryAccountController@增加系统之外的库位记录');
+    Route::post('盘点选中任务','InventoryAccountController@盘点选中任务');
     //库存盘点
     Route::get('stockInventory/mission','InventoryAccountController@mission');
     //创建盘点任务
@@ -372,37 +362,6 @@ Route::group(['prefix'=>'inventory'],function (){
  * 出库
  */
 Route::group(['prefix'=>'order'],function(){
-    //波次
-    Route::group(['prefix'=>'wave'],function(){
-        // index
-        Route::get('index','WaveController@index');
-        // cancel printing by id or ids
-        Route::post('cancelPrinting','WaveController@cancelPrinting');
-        // export Excel
-        Route::any('exportExcel','WaveController@exportExcelOnParams');
-    });
-    //问题件
-    Route::group(['prefix'=>'issue'],function(){
-        Route::get('index','OrderIssueController@index');// 查询
-        Route::get('create','OrderIssueController@create'); // 录入
-        Route::post('store','OrderIssueController@store'); // 录入
-        Route::post('batchImport','OrderIssueController@batchImport'); // 批量导入
-        Route::get('excelImport','OrderIssueController@excelImport'); // 前往
-        Route::get('edit/{id}','OrderIssueController@edit');// 编辑
-        Route::match(['get','post'],'export','OrderIssueController@exportOrderIssue');// 导出
-        Route::get('workLoad/index','OrderIssuePerformanceController@workLoadPage');
-        Route::any('workLoad/export','OrderIssuePerformanceController@exportWorkLoad');
-        Route::get('orderIssuePerformance/index','OrderIssuePerformanceController@index');
-        Route::any('orderIssuePerformance/export','OrderIssuePerformanceController@export');
-    });
-    /**
-     * tracking
-     */
-    Route::group(['prefix'=>'tracking'],function(){
-        Route::get('index',"OrderTrackingController@index");
-        Route::get('export',"OrderTrackingController@export");
-        Route::get('update','OrderTrackingController@updateApi');
-    });
     //发运
     Route::any('index/delivering','OrderController@delivering');
     //批量备注
@@ -419,4 +378,43 @@ Route::group(['prefix'=>'order'],function(){
     Route::post('deAllocationAll','OrderController@deAllocationAll');
     //重置快递获取标记
     Route::post('resetLogisticsGetMark','OrderController@resetLogisticsGetMark');
-});
+});
+
+/**
+ * 波次
+ */
+Route::group(['prefix'=>'order'],function(){
+    // index
+    Route::get('wave/index','WaveController@index');
+    // cancel printing by id or ids
+    Route::post('wave/cancelPrinting','WaveController@cancelPrinting');
+    // export Excel
+    Route::any('wave/exportExcel','WaveController@exportExcelOnParams');
+});
+/**
+ * 问题件
+ */
+Route::group(['prefix'=>'order'],function(){
+    Route::get('issue/index','OrderIssueController@index');// 查询
+    Route::get('issue/create','OrderIssueController@create'); // 录入
+    Route::post('issue/store','OrderIssueController@store'); // 录入
+
+    Route::post('issue/batchImport','OrderIssueController@batchImport'); // 批量导入
+    Route::get('issue/excelImport','OrderIssueController@excelImport'); // 前往
+    Route::get('issue/edit/{id}','OrderIssueController@edit');// 编辑
+    Route::match(['get','post'],'issue/export','OrderIssueController@exportOrderIssue');// 导出
+
+    Route::get('issue/workLoad/index','OrderIssuePerformanceController@workLoadPage');
+    Route::any('issue/workLoad/export','OrderIssuePerformanceController@exportWorkLoad');
+
+    Route::get('issue/orderIssuePerformance/index','OrderIssuePerformanceController@index');
+    Route::any('issue/orderIssuePerformance/export','OrderIssuePerformanceController@export');
+});
+/**
+ * tracking
+ */
+Route::group(['prefix'=>'order'],function(){
+    Route::get('tracking/index',"OrderTrackingController@index");
+    Route::get('tracking/export',"OrderTrackingController@export");
+    Route::get('tracking/update','OrderTrackingController@updateApi');
+});