web.php 71 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227
  1. <?php
  2. use Illuminate\Support\Facades\Gate;
  3. use Illuminate\Support\Facades\Route;
  4. use Illuminate\Support\Facades\Auth;
  5. /*
  6. |--------------------------------------------------------------------------
  7. | Web Routes
  8. |--------------------------------------------------------------------------
  9. |
  10. | Here is where you can register web routes for your application. These
  11. | routes are loaded by the RouteServiceProvider within a group which
  12. | contains the "web" middleware group. Now create something great!
  13. |
  14. */
  15. //auth组件的一些注册路由
  16. Auth::routes();
  17. /*
  18. * 无需认证的路由
  19. * */
  20. Route::get('/', function () {return redirect('login');});
  21. Route::any('test/{method}', 'TestController@method');
  22. //称重广播
  23. Route::post('package/weigh/measureMonitor/speech', 'MeasureMonitorController@speech')->name('measureMonitor.speechApi');
  24. //设备切换
  25. Route::post('package/measureMonitor/data', 'MeasureMonitorController@data');
  26. Route::post('package/weigh/measureMonitor/data', 'MeasureMonitorController@data')->name('measureMonitor.dataApi');
  27. //称重显示
  28. Route::get('package/measureMonitor', 'MeasureMonitorController@index');
  29. Route::get('package/weigh/measureMonitor', 'MeasureMonitorController@index');
  30. // 开单入库
  31. Route::prefix('store')->group(function(){
  32. Route::prefix('receivingTask')->group(function(){
  33. Route::get("/index","ReceivingTaskController@index");
  34. Route::get("/create","ReceivingTaskController@create");
  35. });
  36. });
  37. //入库预约终端
  38. Route::get('store/deliveryAppointment/exhibition', 'DeliveryAppointmentController@exhibition');
  39. //入库预约预约码输入
  40. Route::get('store/deliveryAppointment/delivery', 'DeliveryAppointmentController@delivery');
  41. //入库预约错误页面
  42. Route::get('store/deliveryAppointment/errMsg', 'DeliveryAppointmentController@errMsg');
  43. //入库预约成功页面
  44. Route::get('store/deliveryAppointment/successMsg', 'DeliveryAppointmentController@successMsg');
  45. //入库预约展览数据
  46. Route::post('store/deliveryAppointment/getExhibitionList', 'DeliveryAppointmentController@getExhibitionList');
  47. //入库预约验证密匙
  48. Route::post('store/deliveryAppointment/getKey', 'DeliveryAppointmentController@getKey');
  49. //临时工二维码
  50. Route::get('personnel/checking-in/goGetQRCode', 'QRCodeController@goGetQRCode');
  51. Route::get('personnel/checking-in/QRCode', 'QRCodeController@QRCode');
  52. Route::get('personnel/checking-in/importAndExportQRCode', 'QRCodeController@importAndExportQRCode');
  53. Route::post('personnel/checking-in/refreshQRCode', 'QRCodeController@refreshQRCode');
  54. Route::post("record", "ReceiveRecordController@receive");
  55. Route::post("record/refreshToken", "ReceiveRecordController@refreshToken");
  56. Route::get("record", function () {
  57. return view("rejected.record");
  58. });
  59. Route::post("record", "ReceiveRecordController@receive");
  60. //人事管理
  61. Route::group(['prefix' => 'personnel', 'middleware' => 'auth'], function () {
  62. //扫描计件
  63. Route::get('scanInfo', 'ScanInfoDetailController@index');
  64. // Route::get('scanInfo/dayHour', 'ScanInfoDetailController@dayHour');
  65. //临时开放录入
  66. Route::put('laborApply/temporaryOpen', 'LaborApplyController@temporaryOpen')->name('laborApply.temporaryOpen');
  67. Route::get('laborApply/createDispatch', 'LaborApplyController@createDispatch')->name('laborApply.createDispatch');
  68. //劳务派遣查看
  69. Route::group(['prefix' => 'laborApply'], function () {
  70. Route::patch('laborCompanyDispatch/{laborCompanyDispatch}/laborCompanyReceivingOrder', 'LaborCompanyDispatchController@laborCompanyReceivingOrder')->name('laborCompanyDispatch.laborCompanyReceivingOrder');
  71. Route::patch('laborCompanyDispatch/{laborCompanyDispatch}/personnelCheck', 'LaborCompanyDispatchController@personnelCheck')->name('laborCompanyDispatch.personnelCheck');
  72. Route::resource('laborCompanyDispatch', 'LaborCompanyDispatchController')->only(['index', 'edit', 'update']);
  73. Route::get('laborCompanyDispatch/{laborCompanyDispatch}/detail/create', 'LaborCompanyDispatchController@createDetail')->name('laborCompanyDispatch.createDetail');
  74. Route::get('laborCompanyDispatch/{laborCompanyDispatch}/detail/edit', 'LaborCompanyDispatchController@editDetail')->name('laborCompanyDispatch.editDetail');
  75. Route::post('laborCompanyDispatch/{laborCompanyDispatch}/detail', 'LaborCompanyDispatchController@storeDetail')->name('laborCompanyDispatch.storeDetail');
  76. });
  77. Route::resource('laborApply', 'LaborApplyController');
  78. });
  79. //监视器
  80. Route::get('station/monitor/{station}', 'StationController@monitorShow');
  81. //打卡记录
  82. Route::group(['prefix' => 'personnel/checking-in/userDutyCheck'], function () {
  83. Route::get('importAndExportClock', 'UserDutyCheckController@importAndExportClock');
  84. Route::get('clock', 'UserDutyCheckController@clock');
  85. Route::any('storeClock', 'UserDutyCheckController@storeClock');
  86. Route::post('绑定临时工并进组', 'UserDutyCheckController@绑定临时工并进组');
  87. Route::post('importGroupClock', 'UserDutyCheckController@importGroupClock');
  88. Route::get('createUserDetail/{mobile_phone}', 'UserDutyCheckController@createUserDetail');
  89. Route::get('updateUserLaborCompanies/{mobile_phone}', 'UserDutyCheckController@updateUserLaborCompanies');
  90. Route::any('storeUserDetail', 'UserDutyCheckController@storeUserDetail');
  91. Route::any('storeUpdateUserLaborCompanies', 'UserDutyCheckController@storeUpdateUserLaborCompanies');
  92. });
  93. /*
  94. * 需要认证的路由
  95. * */
  96. Route::group(['middleware' => 'auth'], function ($route) {
  97. /** @var Route $route */
  98. $route->get('/home', 'HomeController@index')->name('home');
  99. $route->get('/help', 'HomeController@help')->name('help');
  100. /** 密码 */
  101. $route->group(['prefix' => 'password'], function () {
  102. Route::get('change', 'Auth\PasswordController@change');
  103. Route::post('update', 'Auth\PasswordController@update');
  104. });
  105. /** 全局 */
  106. $route->get('denied', function () {
  107. return view('exception.authority');
  108. });
  109. $route->post('getMenu', 'MenuController@get');
  110. $route->get("record","ReceiveRecordController@record");
  111. $route->get("equipment",function (){return view("equipment.index");});
  112. /** 基础设置 */
  113. $route->group(['prefix' => 'maintenance'], function () {
  114. //容器管理
  115. Route::group(['prefix' => 'containerManage'], function () {
  116. Route::get("", 'ContainerManageController@index');
  117. Route::get("create", 'ContainerManageController@create');
  118. });
  119. /** 料箱型号 */
  120. Route::get("materialBoxModel", "MaterialBoxModelController@index");
  121. Route::group(['prefix' => "materialBoxModel"], function () {
  122. Route::post("save", "MaterialBoxModelController@save");
  123. Route::post("destroy", "MaterialBoxModelController@destroy");
  124. Route::post("updateModelSequence", "MaterialBoxModelController@updateModelSequence");
  125. Route::get("ownerSequence", "MaterialBoxModelController@ownerSequence");
  126. });
  127. /** 菜单 */
  128. Route::get('menu', 'MenuController@index');
  129. Route::group(['prefix' => "menu"], function () {
  130. Route::post('update', 'MenuController@update');
  131. Route::post('save', 'MenuController@save');
  132. Route::post('sort', 'MenuController@sort');
  133. Route::post('delete', 'MenuController@delete');
  134. });
  135. /** 权限 */
  136. Route::get('authority', 'AuthorityController@index');
  137. Route::group(['prefix' => "authority"], function () {
  138. Route::post('store', 'AuthorityController@store');
  139. Route::post('update', 'AuthorityController@update');
  140. Route::post('destroy', 'AuthorityController@destroy');
  141. });
  142. /** 权限 */
  143. Route::get('role', 'AuthorityController@index');
  144. Route::group(['prefix' => "role"], function () {
  145. Route::post('save', 'RoleController@save');
  146. Route::post('loadRelevance', 'RoleController@loadRelevance');
  147. Route::post('destroy', 'RoleController@destroy');
  148. Route::post('saveAuthority', 'RoleController@saveAuthority');
  149. Route::post('saveOwner', 'RoleController@saveOwner');
  150. Route::post('saveUserWorkGroup', 'RoleController@saveUserWorkGroup');
  151. });
  152. /** 商品 */
  153. Route::group(['prefix' => 'commodity'], function () {
  154. /** 导出 */
  155. Route::group(['prefix' => 'import'], function () {
  156. Route::post('excel', 'CommodityController@importExcel');
  157. });
  158. Route::get('import', 'CommodityController@import');
  159. Route::post('syncWMS', 'CommodityController@syncWMS');
  160. Route::post('isExist', 'CommodityController@isExist');
  161. });
  162. /** 货主 */
  163. Route::group(['prefix' => 'owner'], function () {
  164. Route::post("get", "OwnerController@get");
  165. Route::post("apiStore", "OwnerController@apiStore");
  166. Route::get('recycle', 'OwnerController@recycle');
  167. Route::post('restoreSelected', 'OwnerController@restoreSelected');
  168. Route::post('changeManualBackType', 'OwnerController@changeManualBackType');
  169. Route::post('intervalTime', 'OwnerController@intervalTime');
  170. });
  171. /** 教程 */
  172. Route::group(['prefix' => 'tutorial'], function () {
  173. Route::post('showContent/{id}', 'TutorialController@showContent');
  174. });
  175. /** 临时工 */
  176. Route::group(['prefix' => 'userLabor'], function () {
  177. Route::post('getWorkRecord', 'UserLaborController@getWorkRecord');
  178. Route::post('getClockRecord', 'UserLaborController@getClockRecord');
  179. Route::post('relieve', 'UserLaborController@relieve');
  180. Route::post('conversion', 'UserLaborController@conversion');
  181. Route::post('black', 'UserLaborController@black');//拉黑
  182. Route::post('cancelBlack', 'UserLaborController@cancelBlack');//取消拉黑
  183. });
  184. /** 纸箱 */
  185. Route::group(['prefix' => 'paperBox'], function () {
  186. /** 首页 */
  187. Route::group(['prefix' => 'index'], function () {
  188. Route::get('model', 'PaperBoxController@indexModel');
  189. Route::get('owner', 'PaperBoxController@indexOwner');
  190. });
  191. /** excel */
  192. Route::group(['prefix' => 'excel'], function () {
  193. Route::post('import', 'PaperBoxController@import');
  194. Route::get('goImport', function () {
  195. return view('maintenance.paperBox.import');
  196. });
  197. });
  198. });
  199. /** 计费模型 */
  200. Route::group(['prefix' => 'priceModel'], function () {
  201. Route::group(['prefix' => 'waybillPriceModel'], function () {
  202. /** excel */
  203. Route::group(['prefix' => 'excel'], function () {
  204. Route::get('goImport', function () {
  205. return view('maintenance.priceModel.waybillPriceModel.import');
  206. });
  207. });
  208. Route::get('cities/{province_id}', 'WaybillPriceModelController@getCities');
  209. });
  210. Route::resource('waybillPriceModel', 'WaybillPriceModelController');
  211. Route::group(['prefix' => 'storage'], function () {
  212. Route::get('create', 'PriceModelController@storageCreate');
  213. Route::post('store', 'PriceModelController@storageStore');
  214. Route::get('{id}/edit', 'PriceModelController@storageEdit');
  215. Route::delete("{id}", "PriceModelController@storageDestroy");
  216. Route::post('update', 'PriceModelController@storageUpdate');
  217. });
  218. Route::get('storage', 'PriceModelController@storageIndex');
  219. Route::group(['prefix' => 'operation'], function () {
  220. Route::get('create', 'PriceModelController@operationCreate');
  221. Route::post('getItems', 'PriceModelController@getItems');
  222. Route::post('updateItem', 'PriceModelController@updateItem');
  223. Route::post('createItem', 'PriceModelController@createItem');
  224. Route::post('getFeatures', 'PriceModelController@getFeatures');
  225. Route::post('addFeature', 'PriceModelController@addFeature');
  226. Route::post('getFeature', 'PriceModelController@getFeature');
  227. Route::delete('{id}', 'PriceModelController@operationDestroy');
  228. Route::get('{id}/edit', 'PriceModelController@operationEdit');
  229. Route::post('{id}/edit', 'PriceModelController@operationUpdate');
  230. });
  231. Route::get('operation', 'PriceModelController@operationIndex');
  232. Route::post('operation', 'PriceModelController@operationStore');
  233. Route::group(['prefix' => 'express'], function () {
  234. Route::get('create', 'PriceModelController@expressCreate');
  235. Route::post('getDetail', 'PriceModelController@expressGetDetail');
  236. Route::post('import', 'PriceModelController@expressImport');
  237. Route::post('updateDetail', 'PriceModelController@expressUpdateDetail');
  238. Route::post('destroyDetail', 'PriceModelController@expressDestroyDetail');
  239. Route::delete('{id}', 'PriceModelController@expressDestroy');
  240. Route::get('{id}/edit', 'PriceModelController@expressEdit');
  241. Route::post('{id}/edit', 'PriceModelController@expressUpdate');
  242. Route::get('export/{id}', 'PriceModelController@expressExport');
  243. });
  244. Route::get('express', 'PriceModelController@expressIndex');
  245. Route::post('express', 'PriceModelController@expressStore');
  246. Route::group(['prefix' => 'logistic'], function () {
  247. Route::get('create', 'PriceModelController@logisticCreate');
  248. Route::delete('{id}', 'PriceModelController@logisticDestroy');
  249. Route::get('{id}/edit', 'PriceModelController@logisticEdit');
  250. Route::post('{id}/edit', 'PriceModelController@logisticUpdate');
  251. Route::post('getDetail', 'PriceModelController@logisticGetDetail');
  252. Route::post('import', 'PriceModelController@logisticImport');
  253. Route::post('updateDetail', 'PriceModelController@logisticUpdateDetail');
  254. Route::post('destroyDetail', 'PriceModelController@logisticDestroyDetail');
  255. Route::get('export/{id}', 'PriceModelController@logisticExport');
  256. });
  257. Route::get('logistic', 'PriceModelController@logisticIndex');
  258. Route::post('logistic', 'PriceModelController@logisticStore');
  259. Route::group(['prefix' => 'directLogistic'], function () {
  260. Route::get('create', 'PriceModelController@directLogisticCreate');
  261. Route::delete('{id}', 'PriceModelController@directLogisticDestroy');
  262. Route::get('{id}/edit', 'PriceModelController@directLogisticEdit');
  263. Route::post('{id}/edit', 'PriceModelController@directLogisticUpdate');
  264. Route::post('getDetail', 'PriceModelController@directLogisticGetDetail');
  265. Route::post('import', 'PriceModelController@directLogisticImport');
  266. Route::post('updateDetail', 'PriceModelController@directLogisticUpdateDetail');
  267. Route::post('destroyDetail', 'PriceModelController@directLogisticDestroyDetail');
  268. });
  269. Route::get('directLogistic', 'PriceModelController@directLogisticIndex');
  270. Route::post('directLogistic', 'PriceModelController@directLogisticStore');
  271. //api 录入计费模型
  272. Route::post('apiStoreStorage', 'PriceModelController@apiStoreStorage');
  273. Route::post('apiStoreOperation', 'PriceModelController@apiStoreOperation');
  274. Route::post('apiStoreExpress', 'PriceModelController@apiStoreExpress');
  275. Route::post('apiStoreLogistic', 'PriceModelController@apiStoreLogistic');
  276. Route::post('apiStoreDirectLogistic', 'PriceModelController@apiStoreDirectLogistic');
  277. Route::post('apiStoreSystem', 'PriceModelController@apiStoreSystem');
  278. //api 获取计费模型
  279. Route::post('apiGetStorage', 'PriceModelController@apiGetStorage');
  280. Route::post('apiGetOperation', 'PriceModelController@apiGetOperation');
  281. Route::post('apiGetExpress', 'PriceModelController@apiGetExpress');
  282. Route::post('apiGetLogistic', 'PriceModelController@apiGetLogistic');
  283. Route::post('apiGetDirectLogistic', 'PriceModelController@apiGetDirectLogistic');
  284. //api 删除计费模型
  285. Route::post('apiDelStorage', 'PriceModelController@apiDelStorage');
  286. Route::post('apiDelOperation', 'PriceModelController@apiDelOperation');
  287. Route::post('apiDelOperationItem', 'PriceModelController@apiDelOperationItem');
  288. Route::post('apiDelExpress', 'PriceModelController@apiDelExpress');
  289. Route::post('apiDelExpressItem', 'PriceModelController@apiDelExpressItem');
  290. Route::post('apiDelLogistic', 'PriceModelController@apiDelLogistic');
  291. Route::post('apiDelLogisticItem', 'PriceModelController@apiDelLogisticItem');
  292. Route::post('apiDelDirectLogistic', 'PriceModelController@apiDelDirectLogistic');
  293. Route::post('apiDelDirectLogisticItem', 'PriceModelController@apiDelDirectLogisticItem');
  294. Route::post('apiDelSystem', 'PriceModelController@apiDelSystem');
  295. //审核或恢复计费模型
  296. Route::post('auditOrRecoverModel', 'PriceModelController@auditOrRecoverModel');
  297. //审核对比
  298. Route::post('getPriceModelAudit', 'PriceModelController@getPriceModelAudit');
  299. });
  300. Route::group(['prefix' => 'unit'], function () {
  301. Route::post('getUnits', 'UnitController@getUnits');
  302. Route::post('save', 'UnitController@save');
  303. Route::post('sort', 'UnitController@sort');
  304. });
  305. Route::group(['prefix' => 'province'], function () {
  306. Route::post('get', 'ProvincesController@get');
  307. });
  308. Route::group(['prefix' => 'city'], function () {
  309. Route::post('get', 'CitiesController@get');
  310. });
  311. Route::group(['prefix' => 'carType'], function () {
  312. Route::post('get', 'CarTypesController@get');
  313. Route::post('batchInsert', 'CarTypesController@batchInsert');
  314. });
  315. Route::group(['prefix' => 'taxRate'], function () {
  316. Route::post('get', 'TaxRateController@get');
  317. Route::post('save', 'TaxRateController@save');
  318. Route::post('destroy', 'TaxRateController@destroy');
  319. });
  320. Route::group(['prefix' => "log"], function () {
  321. Route::get("exception", 'LogController@exception');
  322. });
  323. Route::group(['prefix' => "logistic"], function () {
  324. Route::post("get", 'LogisticController@get');
  325. });
  326. Route::group(['prefix' => "region"], function () {
  327. Route::post("get", 'RegionController@get');
  328. Route::post("store", 'RegionController@store');
  329. Route::post("getProvinces", 'RegionController@getProvinces');
  330. });
  331. /** 耗材 */
  332. Route::get('material', 'MaterialController@index');
  333. /** 用户 */
  334. Route::group(['prefix' => "user"], function () {
  335. Route::post("resetPassword", 'UserController@resetPassword');
  336. Route::post("saveWorkGroups", 'UserController@saveWorkGroups');
  337. Route::post("saveOwnerGroups", 'UserController@saveOwnerGroups');
  338. Route::post("getOwners", 'UserController@getOwners');
  339. Route::post("bindOwner", 'UserController@bindOwner');
  340. Route::post("cloneBindOwner", 'UserController@cloneBindOwner');
  341. });
  342. /** 项目耗材 */
  343. Route::group(['prefix' => "ownerMaterial"], function () {
  344. Route::get("/", 'OwnerMaterialController@index');
  345. Route::get('downFile', 'OwnerMaterialController@downFile');
  346. });
  347. /** 供应商 */
  348. Route::get('supplier', 'SupplierController@index');
  349. /** 系统配置 */
  350. Route::get('configuration', 'ConfigurationController@index');
  351. /** 服务商 */
  352. Route::resource('facilitator', 'FacilitatorController');
  353. /** 快递打印 */
  354. Route::get('/print/index', 'PrintController@index');
  355. Route::group(['prefix' => 'expressPrinting'], function () {
  356. Route::get("index", 'PrintController@index');
  357. Route::group(['prefix' => 'setting'], function () {
  358. Route::get('/terminal/index', 'TerminalController@index');
  359. Route::get('/printer/index', 'TerminalPrinterController@index');
  360. });
  361. Route::get('/printing/index', 'PrintController@index');
  362. });
  363. Route::get('syncRedisLogs', 'LogController@syncRedisLogs');
  364. Route::get('region', 'RegionController@index');
  365. Route::get('taxRate', 'TaxRateController@index');
  366. Route::resource('log', 'LogController');
  367. Route::resource('user', 'UserController');
  368. Route::resource('role', 'RoleController');
  369. Route::resource('owner', 'OwnerController');
  370. Route::resource('logistic', 'LogisticController');
  371. Route::resource('qualityLabel', 'QualityLabelController');
  372. Route::resource('carrier', 'CarriersController');
  373. Route::resource('carType', 'CarTypesController');
  374. Route::resource('unit', 'UnitController');
  375. Route::resource('province', 'ProvincesController');
  376. Route::resource('city', 'CitiesController');
  377. Route::resource('commodity', 'CommodityController');
  378. Route::resource('measuringMachine', 'MeasuringMachineController');
  379. Route::resource('userWorkgroup', 'UserWorkgroupController');
  380. Route::resource('laborCompany', 'LaborCompanyController');
  381. Route::resource('warehouse', 'WarehouseController');
  382. Route::resource('tutorial', 'TutorialController');
  383. Route::resource('userLabor', 'UserLaborController');
  384. Route::resource('paperBox', 'PaperBoxController');
  385. Route::resource('userOwnerGroup', 'UserOwnerGroupController');
  386. Route::resource('processMethod', 'ProcessMethodController');
  387. Route::resource('feature', 'FeatureController');
  388. Route::resource('mail', 'SendEmailsController');
  389. Route::post('mail/addRole', 'SendEmailsController@addRole')->name('mail.addRole');
  390. Route::post('mail/deleteRole', 'SendEmailsController@deleteRole')->name('mail.deleteRole');
  391. Route::post('mail/updateTemplate', 'SendEmailsController@updateTemplate')->name('mail.updateTemplate');
  392. Route::post('mail/updateRemark', 'SendEmailsController@updateRemark')->name('mail.updateRemark');
  393. Route::post('mail/active', 'SendEmailsController@active')->name('mail.active');
  394. Route::get("scanDevice/monitor", 'ScanDeviceMonitorController@index');
  395. });
  396. $route->get('maintenance', function () {
  397. return view('maintenance.index');
  398. });
  399. $route->group(['prefix' => 'transport'], function () {
  400. /** 运单 */
  401. Route::group(['prefix' => 'waybill'], function () {
  402. Route::group(['prefix' => 'android'], function () {
  403. Route::get("shipment", 'WaybillController@shipment');
  404. Route::post("shipment", 'WaybillController@shipmentAndMerge');
  405. Route::get("waybillDispatch", 'WaybillController@waybillDispatch');
  406. Route::post("searchWaybill", 'WaybillController@searchWaybill');
  407. Route::post("waybillDispatch", 'WaybillController@dispatchSubmit');
  408. });
  409. /** 置顶 */
  410. Route::group(['prefix' => 'ontop'], function () {
  411. Route::post('top', 'WaybillController@waybillOnTop');
  412. Route::post('cancel', 'WaybillController@cancelOnTop');
  413. });
  414. /** 判断 */
  415. Route::group(['prefix' => 'is'], function () {
  416. Route::post('waybillPriceModel', 'WaybillController@isWaybillPriceModel');
  417. });
  418. Route::post('deleteImg', 'WaybillController@deleteImg');
  419. Route::post('seekOrder', 'WaybillController@seekOrder');
  420. Route::post('upload', 'WaybillController@upload');
  421. Route::get('relating', function () {
  422. return view('transport.waybill.menuWaybill');
  423. });
  424. Route::get('recycle', 'WaybillController@recycle');
  425. Route::post('refreshWaveHouseWeight', 'WaybillController@refreshWaveHouseWeight');
  426. Route::get('index', 'WaybillController@index');
  427. Route::get('delivering', 'WaybillController@delivering');
  428. Route::any('deliveringExport', 'WaybillController@deliveringExport');
  429. Route::post('storeCarrierBill', 'WaybillController@storeCarrierBill');
  430. Route::post('addCounty', 'WaybillController@addCounty');
  431. Route::any('waybillAudit', 'WaybillController@waybillAudit');
  432. Route::any('waybillEdit/{id}', 'WaybillController@waybillEdit');
  433. Route::any('waybillRetreatAudit', 'WaybillController@waybillRetreatAudit');
  434. Route::any('waybillEndAudit', 'WaybillController@waybillEndAudit');
  435. Route::any('export', 'WaybillController@export');
  436. Route::any('waybillUpdate/{id}', 'WaybillController@waybillUpdate');
  437. Route::post('batchUploadImages', 'WaybillController@batchUploadImages');
  438. Route::post('dailyBilling', 'WaybillController@dailyBilling');
  439. Route::post('countPickUpFee', 'WaybillController@countPickUpFee');
  440. Route::post('waybillMerge', 'WaybillController@waybillMerge');
  441. Route::post('waybillSplit', 'WaybillController@waybillSplit');
  442. Route::resource('waybillFinancialSnapshot', 'WaybillFinancialSnapshotsController');
  443. Route::resource('waybillFinancialExcepted', 'WaybillFinancialExceptedController');
  444. Route::post('expressFaceList', 'WaybillController@expressFaceList');
  445. Route::post('changeExpressTag', 'WaybillController@changeExpressTag');
  446. Route::post('appendSubjoinFee', 'WaybillController@appendSubjoinFee');
  447. Route::post('loadData', 'WaybillController@loadData');
  448. });
  449. Route::resource('waybill', 'WaybillController');
  450. });
  451. /** 运输财务 */
  452. $route->group(['prefix' => 'waybillFinancialSnapshot'], function () {
  453. Route::any('export', 'WaybillFinancialSnapshotsController@export');
  454. });
  455. /** 运输计费模型 */
  456. $route->group(['prefix' => 'waybillPriceModel'], function () {
  457. /** excel */
  458. Route::group(['prefix' => 'excel'], function () {
  459. Route::post('import', 'WaybillPriceModelController@import');
  460. });
  461. });
  462. /** 退货明细 */
  463. $route->group(['prefix' => 'rejectedBill'], function () {
  464. Route::post('{rejectedBill}/edit', 'RejectedBillController@edit');
  465. });
  466. $route->resource('rejectedBill', 'RejectedBillController');
  467. /** 退货 */
  468. $route->group(['prefix' => 'rejected'], function () {
  469. /** 导出 */
  470. Route::group(['prefix' => 'record'], function () {
  471. Route::get('/', 'ReceiveRecordController@index');
  472. Route::match(["get", "post"], 'export', 'ReceiveRecordController@export');
  473. });
  474. /** 导出 */
  475. Route::group(['prefix' => 'import'], function () {
  476. Route::post('excel', 'RejectedController@importExcel');
  477. });
  478. /** 主页 */
  479. Route::group(['prefix' => 'index'], function () {
  480. Route::get('general', 'RejectedController@index');
  481. Route::post('general', 'RejectedController@getTotal');
  482. Route::any('analyze', 'RejectedController@indexAnalyze');
  483. Route::get('import', 'RejectedController@import');
  484. Route::post('cancelCheck', 'RejectedController@cancelCheck');
  485. });
  486. /** 分析 */
  487. Route::group(['prefix' => 'analyze'], function () {
  488. Route::post('exportExcelOnParams', 'RejectedController@exportExcelOnParams');
  489. Route::post('exportAllExcelOnParams', 'RejectedController@exportAllExcelOnParams');
  490. });
  491. Route::get('relating', function () {
  492. return view('rejected.relating');
  493. });
  494. Route::get('recycle', 'RejectedController@recycle');
  495. Route::post('ajaxCheck', 'RejectedController@ajaxCheck');
  496. Route::post('ajaxCheckAll', 'RejectedController@ajaxCheckAll');
  497. Route::post('ajaxFinishAll', 'RejectedController@ajaxFinishAll');
  498. Route::any('export', 'RejectedController@export');
  499. Route::any('exportAnalyze', 'RejectedController@exportAnalyze');
  500. Route::post('ajaxGetRejected', 'RejectedController@ajaxGetRejected');
  501. Route::post('changeRejectedBillRemark', 'RejectedController@changeRejectedBillRemark');
  502. Route::get('importRejectedNumber', 'RejectedBillController@importRejectedNumber');
  503. Route::group(['prefix' => 'rejectedPushTask'], function () {
  504. Route::get('', 'RejectedPushTaskController@index');
  505. });
  506. });
  507. Route::resource('rejected', 'RejectedController');
  508. /** 包裹 */
  509. Route::group(['prefix' => 'package'], function () {
  510. /** 统计 */
  511. Route::group(['prefix' => 'statistics'], function () {
  512. Route::any('export', 'WeighController@statisticsExport');
  513. });
  514. /** 异常 */
  515. Route::group(['prefix' => 'weightExcepted'], function () {
  516. Route::get('indexCreate', 'WeighExceptedController@indexCreate');
  517. Route::get('indexIssued', 'WeighExceptedController@indexIssued');
  518. Route::any('export/{type}', 'WeighExceptedController@export');
  519. });
  520. Route::any('export', 'WeighController@export');
  521. Route::get('statistics', 'WeighController@statistics');
  522. Route::get('relating', function () {
  523. return view('package.measureMonitor.menu');
  524. });
  525. Route::group(['prefix' => 'weigh'], function () {
  526. Route::get('statistics', 'WeighController@statistics');
  527. /** 统计 */
  528. Route::group(['prefix' => 'statistics'], function () {
  529. Route::any('export', 'WeighController@statisticsExport');
  530. });
  531. });
  532. Route::get('weigh/index', 'WeighController@index');
  533. Route::resource('weigh', 'WeighController');
  534. Route::get('logistic/getTotal', 'PackageLogisticController@getTotal');
  535. Route::put('logistic/batchUpdate', 'PackageLogisticController@batchUpdate');
  536. Route::any('logistic/export', 'PackageLogisticController@export');
  537. Route::resource('logistic', 'PackageLogisticController');
  538. });
  539. $route->resource('package', 'WeighController');
  540. /** 入库 */
  541. $route->group(['prefix' => 'store'], function () {
  542. //实时收货看板
  543. Route::prefix("/receivingDashboard")->group(function (){
  544. Route::get("/receivingTableList", "ReceivingDashboardController@receivingTableList");
  545. Route::get("/punctualityProgress", "ReceivingDashboardController@punctualityProgress");
  546. Route::get("/stayPutawayList", "ReceivingDashboardController@stayPutawayList");
  547. });
  548. Route::group(['prefix' => 'inStorage'], function () {
  549. Route::get('index', 'StoreController@storage');
  550. Route::get('cacheRackStorage', 'StoreController@cacheRackStorage');
  551. Route::get('halfChestStorage', 'StoreController@halfChestStorage');
  552. Route::post('putShelf', 'StorageController@putShelf');
  553. Route::post('resetCacheShelf', 'StorageController@resetCacheShelf');
  554. Route::post('checkMaximum', 'StorageController@checkMaximum');
  555. Route::post('overflowRevision', 'StorageController@overflowRevision');
  556. Route::post('acquireBox', 'StorageController@acquireBox');
  557. Route::post('syncStorage', 'StorageController@syncStorage');
  558. Route::post('checkAsnAmount', 'StorageController@checkAsnAmount');
  559. Route::get('android.index', function () {
  560. return view('store.inStorage.androidIndex');
  561. });
  562. Route::post('android.login', 'StorageController@androidLogin');
  563. Route::get('boxBindShelf', function () {
  564. return view("store.inStorage.bindShelf");
  565. });
  566. Route::get('boxBindModel', 'StorageController@bindModelIndex');
  567. Route::get('commodityBindModel', 'StorageController@commodityBindModel');
  568. Route::post('bindBox', 'StorageController@bindBox');
  569. Route::post('searchIde', 'StorageController@searchIde');
  570. Route::post('boxBindModel', 'StorageController@boxBindModel');
  571. Route::post('getModels', 'StorageController@getModels');
  572. Route::post('setMaximum', 'StorageController@settingModelMaximum');
  573. Route::post('searchBarCode', 'StorageController@searchBarCode');
  574. Route::post('searchModel', 'StorageController@searchModel');
  575. Route::post('searchAsn', 'StorageController@searchAsn');
  576. Route::post('settingCommodityMaximum', 'StorageController@settingCommodityMaximum');
  577. Route::post('checkTask', 'StorageController@checkTask');
  578. Route::post('changeAsnRule', 'StorageController@changeAsnRule');
  579. Route::post('callRobot', 'StorageController@callRobot');
  580. });
  581. /** 手持入库 */
  582. Route::group(['prefix' => 'handInStorage'], function () {
  583. Route::get('receive', function () {
  584. return view('store.handInStorage.receive');
  585. });//收货页面
  586. Route::get('putaway', function () {
  587. return view('store.handInStorage.putaway');
  588. });//上架页面
  589. Route::get('inventoryInfo', function () {
  590. return view('store.handInStorage.inventoryInfo');
  591. });//库存查询页面
  592. Route::get('android.index', function () {
  593. return view('store.handInStorage.androidIndex');
  594. });
  595. Route::post('selectAsn', 'HandInStorageController@selectAsn');
  596. Route::post('getInventoryInfos', 'HandInStorageController@getInventoryInfos');
  597. Route::post('checkAsnOperation', 'HandInStorageController@checkAsnOperation');
  598. Route::post('selectAsnDetails', 'HandInStorageController@selectAsnDetails');
  599. Route::post('getBasSkuWithLot', 'HandInStorageController@getBasSkuWithLot');
  600. Route::any('fluxHandIn', 'HandInStorageController@fluxHandIn');
  601. Route::post('getTsk', 'HandInStorageController@getTsk');
  602. Route::post('getPaTaskByTraceInOrCustomerOrAsnOrNull', 'HandInStorageController@getPaTaskByTraceInOrCustomerOrAsnOrNull');
  603. Route::post('handFluxPa', 'HandInStorageController@handFluxPa');
  604. Route::get('receiveDetailPage/{asnno}/{customerid}', 'HandInStorageController@receiveDetailPage');
  605. });
  606. Route::group(['prefix' => 'countGoodsAndReceive'], function () {
  607. Route::get('index', 'StoreCountGoodsAndReceiveController@index');
  608. Route::get('excel', 'StoreCountGoodsAndReceiveController@excel');
  609. Route::post('createExcel', 'StoreCountGoodsAndReceiveController@createExcel');
  610. Route::any('fluxReceive', 'StoreCountGoodsAndReceiveController@fluxReceive');
  611. Route::post('getReceiveTaskByAsnNoAndBarcodes', 'StoreCountGoodsAndReceiveController@getReceiveTaskByAsnNoAndBarcodes');
  612. });
  613. Route::group(['prefix' => 'fast'], function () {
  614. Route::resource('storeItem', 'StoreItemController');
  615. });
  616. Route::resource('fast', "StoreController");
  617. /** 盲收 */
  618. Route::group(['prefix' => 'blindReceive'], function () {
  619. Route::get('/', function () {
  620. return view('store.blindReceive.index');
  621. });
  622. Route::get('excels', 'StoreBlindReceiveController@index');
  623. Route::post('excels/apiStore', 'StoreBlindReceiveController@apiStore');
  624. });
  625. /** 盘收 */
  626. Route::group(['prefix' => 'checkingReceive'], function () {
  627. Route::group(['prefix' => 'mission'], function () {
  628. Route::post('import', 'StoreCheckingReceiveController@import');
  629. Route::get('export', 'StoreCheckingReceiveController@export');
  630. Route::post('resetAmount', 'StoreCheckingReceiveController@resetAmount');
  631. Route::post('matchASN', 'StoreCheckingReceiveController@matchASN');
  632. Route::post('receipt', 'StoreCheckingReceiveController@receipt');
  633. Route::get('{id}', 'StoreCheckingReceiveController@show');
  634. });
  635. Route::post('updateCountedAmount', 'StoreCheckingReceiveController@updateCountedAmount');
  636. Route::post('insertItem', 'StoreCheckingReceiveController@insertItem');
  637. Route::get('mission', 'StoreCheckingReceiveController@mission');
  638. Route::post('destroyItem', 'StoreCheckingReceiveController@destroyItem');
  639. });
  640. /** 入库预约 */
  641. Route::group(['prefix' => 'deliveryAppointment'], function () {
  642. Route::get('appointment', 'DeliveryAppointmentController@appointment');
  643. Route::post('getCapacity', 'DeliveryAppointmentController@getCapacity');
  644. Route::post('submitAppointment', 'DeliveryAppointmentController@submitAppointment');
  645. Route::get('showAppointmentInfo', 'DeliveryAppointmentController@showAppointmentInfo');
  646. Route::get('list', 'DeliveryAppointmentController@list');
  647. Route::post('delivery', 'DeliveryAppointmentController@checkAppointment');
  648. Route::post('cancel', 'DeliveryAppointmentController@cancel');
  649. Route::post('unloading', 'DeliveryAppointmentController@unloading');
  650. Route::post('signIn', 'DeliveryAppointmentController@signIn');
  651. Route::any('export', 'DeliveryAppointmentController@export');
  652. Route::get('qrcode', function () {
  653. if (!Gate::allows('入库管理-入库预约-二维码')) {
  654. return view("exception.authority");
  655. }
  656. return view("store.deliveryAppointment.qrcode");
  657. });
  658. Route::group(['prefix' => 'appointment'], function () {
  659. Route::post('import', 'DeliveryAppointmentController@import');
  660. });
  661. Route::get('capacityMaintenance', 'DeliveryAppointmentController@capacityMaintenance');
  662. Route::post('updateCapacity', 'DeliveryAppointmentController@updateCapacity');
  663. Route::post('verifyASN', 'DeliveryAppointmentController@verifyASN');
  664. Route::post('updateAppointment', 'DeliveryAppointmentController@updateAppointment');
  665. Route::post('qualityInspectionMark', 'DeliveryAppointmentController@qualityInspectionMark');
  666. });
  667. });
  668. /** 二次加工 */
  669. $route->group(['prefix' => 'process'], function () {
  670. /** 统计 */
  671. Route::group(['prefix' => 'statistic'], function () {
  672. Route::any("export", 'ProcessStatisticController@export');
  673. });
  674. Route::get('relating', function () {
  675. return view('process.menuProcess');
  676. });
  677. Route::get("statistic", 'ProcessStatisticController@index');
  678. Route::post('getDailyParticipant', 'ProcessController@getDailyParticipant');
  679. Route::post('reject/{id}', 'ProcessController@reject');
  680. Route::post('receive/{id}', 'ProcessController@receive');
  681. Route::post('accomplish', 'ProcessController@accomplish');
  682. Route::post('updateDailyOutput', 'ProcessController@updateDailyOutput');
  683. Route::post('storeProcessDailyParticipant', 'ProcessController@storeProcessDailyParticipant');
  684. Route::post('verifyUserName', 'ProcessController@verifyUserName');
  685. Route::post('updateProcessDailyParticipant', 'ProcessController@updateProcessDailyParticipant');
  686. Route::post('processDailyParticipantAudit/{id}', 'ProcessController@processDailyParticipantAudit');
  687. Route::post('getTutorials/{id}', 'ProcessController@getTutorials');
  688. Route::post('selectedTutorial', 'ProcessController@selectedTutorial');
  689. Route::post('deleteTutorial', 'ProcessController@deleteTutorial');
  690. Route::post('ownerGetTutorials/{owner_id}', 'ProcessController@ownerGetTutorials');
  691. Route::post('rollback', 'ProcessController@rollback');
  692. Route::get('recycle', 'ProcessController@recycle');
  693. Route::post('recover', 'ProcessController@recover');
  694. Route::post('audit', 'ProcessController@audit');
  695. Route::post('processAccomplish', 'ProcessController@processAccomplish');
  696. Route::post('checkAndAccept', 'ProcessController@checkAndAccept');
  697. Route::post('updateUnitPrice', 'ProcessController@updateUnitPrice');
  698. Route::post('workGroupVerify', 'ProcessController@workGroupVerify');
  699. Route::post('accountantVerify', 'ProcessController@accountantVerify');
  700. Route::post('updateStartDate', 'ProcessController@updateStartDate');
  701. Route::post('updateEndDate', 'ProcessController@updateEndDate');
  702. Route::delete('destroyDailyParticipant/{id}', 'ProcessController@destroyDailyParticipant');
  703. Route::post('importPasteData', 'ProcessController@importPasteData');
  704. Route::any('export', 'ProcessController@export');
  705. Route::post('deleteProcessContent/{id}', 'ProcessController@deleteProcessContent');
  706. });
  707. $route->resource('process', 'ProcessController');
  708. /** 人事 */
  709. $route->group(['prefix' => 'personnel'], function () {
  710. Route::group(['middleware' => 'auth'], function () {
  711. //临时开放录入
  712. Route::put('laborApply/temporaryOpen', 'LaborApplyController@temporaryOpen')->name('laborApply.temporaryOpen');
  713. Route::get('laborApply/createDispatch', 'LaborApplyController@createDispatch')->name('laborApply.createDispatch');
  714. //劳务派遣查看
  715. Route::group(['prefix' => 'laborApply'], function () {
  716. Route::patch('laborCompanyDispatch/{laborCompanyDispatch}/laborCompanyReceivingOrder', 'LaborCompanyDispatchController@laborCompanyReceivingOrder')->name('laborCompanyDispatch.laborCompanyReceivingOrder');
  717. Route::patch('laborCompanyDispatch/{laborCompanyDispatch}/personnelCheck', 'LaborCompanyDispatchController@personnelCheck')->name('laborCompanyDispatch.personnelCheck');
  718. Route::resource('laborCompanyDispatch', 'LaborCompanyDispatchController')->only(['index', 'edit', 'update']);
  719. Route::get('laborCompanyDispatch/{laborCompanyDispatch}/detail/create', 'LaborCompanyDispatchController@createDetail')->name('laborCompanyDispatch.createDetail');
  720. Route::get('laborCompanyDispatch/{laborCompanyDispatch}/detail/edit', 'LaborCompanyDispatchController@editDetail')->name('laborCompanyDispatch.editDetail');
  721. Route::post('laborCompanyDispatch/{laborCompanyDispatch}/detail', 'LaborCompanyDispatchController@storeDetail')->name('laborCompanyDispatch.storeDetail');
  722. });
  723. Route::resource('laborApply', 'LaborApplyController');
  724. });
  725. /** 绩效 */
  726. Route::group(['prefix' => 'report'], function () {
  727. Route::match(['GET', 'POST'], 'export', 'CustomerController@projectReportExport');
  728. });
  729. Route::get('report', 'CustomerController@projectReport');
  730. /** 打卡 */
  731. Route::group(['prefix' => 'checking-in'], function () {
  732. Route::get('createReplenishClock', 'PersonnelController@createReplenishClock');
  733. Route::post('checkUserLabors', 'PersonnelController@checkUserLabors');
  734. Route::post('storeReplenishClock', 'PersonnelController@storeReplenishClock');
  735. Route::get('clockAudit', 'PersonnelController@clockAudit');
  736. Route::get('missionAudit', 'PersonnelController@missionAudit');
  737. Route::post('storeClockAudit', 'PersonnelController@storeClockAudit');
  738. Route::post('updateDutyCheckType', 'PersonnelController@updateDutyCheckType');
  739. Route::post('storeGroupAudit', 'PersonnelController@storeGroupAudit');
  740. Route::post('isException', 'PersonnelController@isException');
  741. Route::post('storeMissionAudit', 'PersonnelController@storeMissionAudit');
  742. });
  743. Route::get('relating', function () {
  744. return view('personnel/menuPersonnel');
  745. });
  746. Route::group(['prefix' => 'discharge'], function () {
  747. /** 卸货任务 */
  748. Route::group(['prefix' => 'task'], function () {
  749. Route::get('index', 'DischargeTaskController@index');
  750. Route::any('export', 'DischargeTaskController@export');
  751. Route::any('receipt', 'DischargeTaskController@receipt');
  752. });
  753. /** 结算报表 */
  754. Route::group(['prefix' => 'statement'], function () {
  755. Route::get('index', 'DischargeTaskController@statementIndex');
  756. Route::any('export', 'DischargeTaskController@exportStatements');
  757. });
  758. /** 服务商 对账单*/
  759. Route::group(['prefix' => 'facilitator'], function () {
  760. Route::get('index', 'FacilitatorController@statementIndex');
  761. Route::any('export', 'FacilitatorController@exportStatement');
  762. Route::get('qrCode', 'FacilitatorController@getQrCode');
  763. Route::group(['prefix' => 'external'], function () {
  764. Route::get('{id}/index', 'FacilitatorExternalController@index');
  765. Route::any('{id}/export', 'FacilitatorExternalController@export');
  766. });
  767. });
  768. });
  769. /** 临时工报表 */
  770. Route::group(['prefix' => 'laborReport'], function () {
  771. Route::get('index', 'LaborReportController@index');
  772. Route::post('recover', 'LaborReportController@recover');
  773. Route::get('recycle', 'LaborReportController@recycle');
  774. Route::post('guardClockAudit', 'LaborReportController@guardClockAudit');
  775. Route::post('groupClockAudit', 'LaborReportController@groupClockAudit');
  776. Route::post('addRemarkAndGroupClock', 'LaborReportController@addRemarkAndGroupClock');
  777. Route::post('groupExport', 'LaborReportController@groupExport');
  778. Route::post('groupExportEnsure', 'LaborReportController@groupExportEnsure');
  779. Route::any('export', 'LaborReportController@export');
  780. Route::post('updateLaborCompany', 'LaborReportController@updateLaborCompany');
  781. Route::any('删除/{id}', 'LaborReportController@删除');
  782. Route::post('changeLaborReportRemark', 'LaborReportController@changeLaborReportRemark');
  783. });
  784. });
  785. /** 库存 */
  786. $route->group(['prefix' => 'inventory'], function () {
  787. /** 说明 */
  788. Route::group(['prefix' => 'stockOut'], function () {
  789. Route::get('/', 'ReplenishmentController@index');
  790. Route::post('/getReplenishmentInfoByCustomer', 'ReplenishmentController@getReplenishmentInfoByCustomer');
  791. Route::get('/export', 'ReplenishmentController@export');
  792. });
  793. Route::group(['prefix' => 'statement'], function () {
  794. /** 动库报表 */
  795. Route::group(['prefix' => 'changeInventory'], function () {
  796. Route::any('export', 'InventoryController@exportData');
  797. Route::get('downLoadExcel', 'InventoryController@downLoadExcel');
  798. Route::post('deleteExcel', 'InventoryController@deleteExcel');
  799. });
  800. Route::get('changeInventory', 'InventoryController@changeInventory');
  801. /** 全部库存 */
  802. Route::group(['prefix' => 'allInventory'], function () {
  803. Route::any('export', 'InventoryController@exportAllInventory');
  804. });
  805. Route::get('allInventory', 'InventoryController@allInventory');
  806. /** 每日记录 */
  807. Route::group(['prefix' => 'dailyLog'], function () {
  808. Route::any('export', 'InventoryController@exportDailyLog');
  809. Route::post('getLoggingOwner', 'InventoryController@getLoggingOwner');
  810. Route::post('addLoggingOwner', 'InventoryController@addLoggingOwner');
  811. });
  812. Route::get('dailyLog', 'InventoryController@dailyLog');
  813. Route::get('inventoryCompare', 'InventoryCompareController@inventoryCompare');
  814. Route::any('inventoryCompare/export', 'InventoryCompareController@exportInventoryCompare');
  815. });
  816. /** 库存盘点 */
  817. Route::group(['prefix' => 'stockInventory'], function () {
  818. Route::get('mission', 'InventoryAccountController@mission');
  819. Route::any('enterStockInventory/{id}', 'InventoryAccountController@enterStockInventory');
  820. Route::any('inventoryAccountMission/export', 'InventoryAccountController@exportInventoryAccountMission');
  821. Route::get('mission', 'InventoryAccountController@mission');
  822. Route::post('createStockInventoryMission', 'InventoryAccountController@createStockInventoryMission');
  823. Route::post('searchCommodityByBarcode', 'InventoryAccountController@searchCommodityByBarcode');
  824. Route::get('blindReceive/{id}', 'InventoryAccountController@enterBlindReceive');
  825. Route::post('baseOnBlindReceive', 'InventoryAccountController@baseOnBlindReceive');
  826. Route::post('batchStockByLocation', 'InventoryAccountController@batchStockByLocation');
  827. Route::post('outToLineUpdateInventoryMissions', 'InventoryAccountController@outToLineUpdateInventoryMissions');
  828. });
  829. /** 库存比对 */
  830. Route::group(['prefix' => 'inventoryCompare'], function () {
  831. /** excel */
  832. Route::group(['prefix' => 'import'], function () {
  833. Route::post('excel', 'InventoryCompareController@importExcel');
  834. });
  835. });
  836. Route::get('syncOwners', 'InventoryAccountController@syncOwners');
  837. Route::post('inventoryChecked', 'InventoryAccountController@inventoryChecked');
  838. Route::any('删除盘点记录', 'InventoryAccountController@删除盘点记录');
  839. Route::post('跳过盘点记录', 'InventoryAccountController@跳过盘点记录');
  840. Route::post('确认盘点差异', 'InventoryAccountController@确认盘点差异');
  841. Route::post('批量跳过或确认差异', 'InventoryAccountController@批量跳过或确认差异');
  842. Route::get('完结盘点任务/{id}', 'InventoryAccountController@完结盘点任务');
  843. Route::post('修改质量状态', 'InventoryAccountController@修改质量状态');
  844. Route::post('增加系统之外的盘点记录', 'InventoryAccountController@增加系统之外的盘点记录');
  845. Route::post('盘点选中任务', 'InventoryAccountController@盘点选中任务');
  846. Route::post('stockInventoryEnd', 'InventoryAccountController@stockInventoryEnd');
  847. Route::any('deleteStockInventoryMission/{id}', 'InventoryAccountController@deleteStockInventoryMission');
  848. Route::any('stockInventoryExport', 'InventoryAccountController@stockInventoryExport');
  849. Route::any('stockInventory', 'InventoryAccountController@stockInventory');
  850. Route::post('searchStockInventoryRecord', 'InventoryAccountController@searchStockInventoryRecord');
  851. });
  852. /** 订单 */
  853. $route->group(['prefix' => 'order'], function () {
  854. //包装记录
  855. Route::group(['prefix' => 'scanInfo'], function () {
  856. Route::get('detail', 'ScanInfoDetailController@detailIndex');
  857. });
  858. /** 主页 */
  859. Route::group(['prefix' => 'index'], function () {
  860. Route::get('delivering', 'OrderController@delivering');
  861. Route::get('commodityAssign', 'OrderCommodityAssignController@index');
  862. Route::match(['get', 'post'], 'export', 'OrderController@export');
  863. Route::group(['prefix' => 'commodityAssign'], function () {
  864. Route::post('import', 'OrderCommodityAssignController@import');
  865. });
  866. Route::group(['prefix' => 'freeze'], function () {
  867. Route::post('delFreeze', 'OrderFreezeController@delFreeze');
  868. });
  869. Route::resource('freeze', 'OrderFreezeController');
  870. Route::get("/batchWorkOrder","WorkOrderController@batchWorkOrder");
  871. });
  872. /** 创建 */
  873. Route::group(['prefix' => 'create'], function () {
  874. Route::post('batchComments', 'OrderController@batchComments');
  875. });
  876. /** 波次 */
  877. Route::group(['prefix' => 'wave'], function () {
  878. Route::get('index', 'WaveController@index');
  879. Route::post('cancelPrinting', 'WaveController@cancelPrinting');
  880. Route::any('exportExcel', 'WaveController@exportExcelOnParams');
  881. Route::post('repairBatch', 'WaveController@repairBatch');
  882. Route::post('split', 'WaveController@split');
  883. Route::post('printChild', 'WaveController@printChild');
  884. Route::get('picking', 'WaveController@picking');
  885. Route::post('loadBatch', 'WaveController@loadBatch');
  886. });
  887. /** 问题件 */
  888. Route::group(['prefix' => 'issue'], function () {
  889. /** 工作量 */
  890. Route::group(['prefix' => 'workLoad'], function () {
  891. Route::get('index', 'OrderIssuePerformanceController@workLoadPage');
  892. Route::any('export', 'OrderIssuePerformanceController@exportWorkLoad');
  893. });
  894. /** 绩效 */
  895. Route::group(['prefix' => 'orderIssuePerformance'], function () {
  896. Route::get('index', 'OrderIssuePerformanceController@index');
  897. Route::any('export', 'OrderIssuePerformanceController@export');
  898. });
  899. Route::get('index', 'OrderIssueController@index');
  900. Route::get('create', 'OrderIssueController@create');
  901. Route::post('store', 'OrderIssueController@store');
  902. Route::post('batchImport', 'OrderIssueController@batchImport');
  903. Route::get('excelImport', 'OrderIssueController@excelImport');
  904. Route::get('edit/{id}', 'OrderIssueController@edit');
  905. Route::get('recycle', 'OrderIssueController@recycleBin');
  906. Route::match(['get', 'post'], 'export', 'OrderIssueController@exportJsonExcel');
  907. });
  908. /** 跟踪 */
  909. Route::group(['prefix' => 'tracking'], function () {
  910. Route::get('index', "OrderTrackingController@index");
  911. Route::any('export', "OrderTrackingController@export");
  912. Route::get('update', 'OrderTrackingController@updateApi');
  913. Route::post('upload', 'OrderTrackingController@upload');
  914. Route::post('destroyImg', 'OrderTrackingController@destroyImg');
  915. });
  916. Route::post('freeze', 'OrderController@freeze');
  917. Route::post('freezeAll', 'OrderController@freezeAll');
  918. Route::post('thaw', 'OrderController@thaw');
  919. Route::post('deAllocation', 'OrderController@deAllocation');
  920. Route::post('deAllocationAll', 'OrderController@deAllocationAll');
  921. Route::post('allocation', 'OrderController@allocation');
  922. Route::post('manualBack', 'OrderController@manualBack');
  923. Route::post('collectUpload', 'OrderController@collectUpload');
  924. Route::post('resetLogisticsGetMark', 'OrderController@resetLogisticsGetMark');
  925. Route::post('resetInterfaceReturnMark', 'OrderController@resetInterfaceReturnMark');
  926. Route::post('createRejectedBill', 'OrderController@createRejectedBill');
  927. Route::post('isRejectedBillExist', 'OrderController@isRejectedBillExist');
  928. /** 工单 */
  929. Route::prefix('workOrder')->group(function () {
  930. Route::get('index', 'WorkOrderController@index');
  931. Route::match(['get', 'post'], 'export', 'WorkOrderController@exportJsonExcel')->name('workOrder.exportApi');
  932. });
  933. });
  934. /** 结算 */
  935. $route->group(['prefix' => 'finance'], function () {
  936. Route::get('area', 'CustomerController@projectArea');
  937. Route::group(['prefix' => 'instantBill'], function () {
  938. Route::match(['GET', 'POST'], 'export', 'CustomerController@financeInstantBillExport');
  939. });
  940. Route::get('instantBill', 'CustomerController@financeInstantBill');
  941. Route::group(['prefix' => 'billConfirmation'], function () {
  942. Route::match(['GET', 'POST'], 'export', 'CustomerController@financeBillConfirmationExport');
  943. });
  944. Route::get('billConfirmation', 'CustomerController@financeBillConfirmation');
  945. Route::post('updateBillReport', 'CustomerController@updateBillReport');
  946. Route::post('billConfirm', 'CustomerController@billConfirm');
  947. Route::prefix('settlementBills')->group(function () {
  948. //快递费
  949. Route::group(['prefix' => 'expressFee'], function () {
  950. Route::post('detail/confirmBill', 'SettlementBillExpressFeeDetailController@confirmBill');
  951. Route::post('report/confirmBill', 'SettlementBillExpressFeeReportController@confirmBill');
  952. Route::any('detail/export', 'SettlementBillExpressFeeDetailController@export');
  953. Route::any('report/export', 'SettlementBillExpressFeeReportController@export');
  954. Route::get('detail', 'SettlementBillExpressFeeDetailController@index')->name('settlementBills.expressFee.detail');
  955. Route::get('report', 'SettlementBillExpressFeeReportController@index')->name('settlementBills.expressFee.report');
  956. });
  957. //仓储费
  958. Route::group(['prefix' => 'storageFee'], function () {
  959. Route::get('', 'SettlementBillStorageFeeController@index')->name('settlementBills.storageFee.index');
  960. Route::post('confirmBill', 'SettlementBillStorageFeeController@confirmBill');
  961. Route::any('export', 'SettlementBillStorageFeeController@export');
  962. });
  963. //入库费
  964. Route::group(['prefix' => 'storeFee'], function () {
  965. Route::post('detail/confirmBill', 'SettlementBillStoreFeeDetailController@confirmBill');
  966. Route::post('report/confirmBill', 'SettlementBillStoreFeeReportController@confirmBill');
  967. Route::any('detail/export', 'SettlementBillStoreFeeDetailController@export');
  968. Route::any('report/export', 'SettlementBillStoreFeeReportController@export');
  969. Route::get('detail', 'SettlementBillStoreFeeDetailController@index');
  970. Route::get('report', 'SettlementBillStoreFeeReportController@index')->name('settlementBills.storeFee.report');
  971. });
  972. //出库费
  973. Route::group(['prefix' => 'storeOutFee'], function () {
  974. Route::post('detail/confirmBill', 'SettlementBillStoreOutFeeDetailController@confirmBill');
  975. Route::post('report/confirmBill', 'SettlementBillStoreOutFeeReportController@confirmBill');
  976. Route::any('detail/export', 'SettlementBillStoreOutFeeDetailController@export');
  977. Route::any('report/export', 'SettlementBillStoreOutFeeReportController@export');
  978. Route::get('detail', 'SettlementBillStoreOutFeeDetailController@index');
  979. Route::get('report', 'SettlementBillStoreOutFeeReportController@index')->name('settlementBills.storeOutFee.report');
  980. });
  981. //杂项费
  982. Route::group(['prefix' => 'sundryFee'], function () {
  983. Route::get('', 'SettlementBillSundryFeeController@index')->name('settlementBills.sundryFee');
  984. Route::post('confirmBill', 'SettlementBillSundryFeeController@confirmBill');
  985. Route::post('export', 'SettlementBillSundryFeeController@export');
  986. });
  987. //包材费
  988. Route::group(['prefix' => 'packingMaterialFee'], function () {
  989. Route::get('', 'SettlementBillPackingMaterialFeeController@index')->name('settlementBills.packingMaterialFee');
  990. Route::post('confirmBill', 'SettlementBillPackingMaterialFeeController@confirmBill');
  991. Route::any('export', 'SettlementBillPackingMaterialFeeController@export');
  992. });
  993. //加工费
  994. Route::group(['prefix' => 'processFee'], function () {
  995. Route::get('', 'SettlementBillProcessFeeController@index')->name('settlementBills.processFee');
  996. Route::post('confirmBill', 'SettlementBillProcessFeeController@confirmBill');
  997. Route::any('export', 'SettlementBillProcessFeeController@export');
  998. });
  999. //卸货费
  1000. Route::group(['prefix' => 'unloadFee'], function () {
  1001. Route::get('', 'SettlementBillUnloadFeeController@index')->name('settlementBills.unloadFee');
  1002. Route::post('confirmBill', 'SettlementBillUnloadFeeController@confirmBill');
  1003. Route::any('export', 'SettlementBillUnloadFeeController@export');
  1004. });
  1005. //物流费
  1006. Route::group(['prefix' => 'logisticFee'], function () {
  1007. Route::get('', 'SettlementBillLogisticFeeController@index')->name('settlementBills.logisticFee');
  1008. Route::post('confirmBill', 'SettlementBillLogisticFeeController@confirmBill');
  1009. Route::any('export', 'SettlementBillLogisticFeeController@export');
  1010. });
  1011. //总费用
  1012. Route::group(['prefix' => 'totalFee'], function () {
  1013. Route::get('', 'OwnerFeeTotalController@index');
  1014. Route::post('confirmBill', 'OwnerFeeTotalController@confirmBill');
  1015. Route::any('export', 'OwnerFeeTotalController@export');
  1016. });
  1017. //理赔费
  1018. Route::group(['prefix' => 'indemnityFee'], function () {
  1019. Route::get('', 'SettlementIndemnityFeeController@index')->name('settlementBills.indemnityFee');
  1020. Route::post('confirmBill', 'SettlementIndemnityFeeController@confirmBill');
  1021. Route::any('export', 'SettlementIndemnityFeeController@export');
  1022. });
  1023. });
  1024. });
  1025. /** 客户 */
  1026. $route->group(['prefix' => 'customer'], function () {
  1027. /** 项目 */
  1028. //杂项费
  1029. Route::group(['prefix' => 'ownerSundryFee'], function () {
  1030. Route::any('export', 'OwnerSundryFeeDetailsController@export');
  1031. });
  1032. Route::group(['prefix' => 'project'], function () {
  1033. Route::group(['prefix' => 'index'], function () {
  1034. Route::match(['GET', 'POST'], 'export', 'CustomerController@projectIndexExport');
  1035. });
  1036. Route::get('index', 'CustomerController@projectIndex');
  1037. Route::get('create', 'CustomerController@projectCreate');
  1038. Route::group(['prefix' => 'area'], function () {
  1039. Route::match(['GET', 'POST'], 'export', 'CustomerController@projectAreaExport');
  1040. });
  1041. Route::get('{id}/edit', 'CustomerController@projectEdit');
  1042. Route::post('projectUpdate', 'CustomerController@projectUpdate');
  1043. Route::post('getOwnerPriceModel', 'CustomerController@getOwnerPriceModel');
  1044. Route::post('updateArea', 'CustomerController@updateArea');
  1045. Route::post('verify', 'CustomerController@verifyProject');
  1046. Route::post('areaReportAudit', 'CustomerController@areaReportAudit');
  1047. //获取现有计费模型
  1048. Route::post('getPriceModel', 'PriceModelController@getPriceModel');
  1049. //手动生成账单
  1050. Route::post("createReport", "CustomerController@createReport");
  1051. Route::post("createAreaReport", "CustomerController@createAreaReport");
  1052. //手动重置账单数据
  1053. Route::post("resetInstantBill", "CustomerController@resetInstantBill");
  1054. Route::post("resetBillConfirmation", "CustomerController@resetBillConfirmation");
  1055. });
  1056. Route::get('relating', function () {
  1057. return view('customer.relating');
  1058. });
  1059. Route::group(['prefix' => 'customer'], function () {
  1060. Route::get('customerLogStatus', 'CustomerLogStatusController@index');
  1061. Route::post('getLog', 'CustomerLogController@get');
  1062. Route::post('editLog', 'CustomerLogController@update');
  1063. Route::post('getLogStatus', 'CustomerLogStatusController@get');
  1064. Route::post('storeLog', 'CustomerLogController@store');
  1065. Route::post('relatedOwner', 'CustomerBaseController@relatedOwner');
  1066. Route::post('addTag', 'CustomerBaseController@addTag');
  1067. Route::post('delTag', 'CustomerBaseController@delTag');
  1068. Route::post('destroyLog', 'CustomerBaseController@destroyLog');
  1069. Route::group(['prefix' => 'customerLogStatus'], function () {
  1070. Route::post('save', 'CustomerLogStatusController@save');
  1071. Route::post('destroy', 'CustomerLogStatusController@destroy');
  1072. });
  1073. Route::group(['prefix' => 'customerTag'], function () {
  1074. Route::post('save', 'CustomerTagController@save');
  1075. Route::post('get', 'CustomerTagController@get');
  1076. });
  1077. Route::resource('customerTag', 'CustomerTagController', ['only' => ['index', "destroy"]]);
  1078. Route::resource('customerLog', 'CustomerLogController', ['only' => ['index', 'show', 'create', 'store', 'update', 'edit', 'destroy']]);
  1079. });
  1080. Route::group(['prefix' => 'ownerContract'], function () {
  1081. Route::post('store', 'OwnerContractController@store');
  1082. Route::get('down', 'OwnerContractController@downFile');
  1083. });
  1084. Route::resource('customer', 'CustomerBaseController');
  1085. Route::resource('ownerSundryFeeDetails', 'OwnerSundryFeeDetailsController', ['only' => ['index', 'create', 'store', 'update', 'edit', 'destroy']]);
  1086. });
  1087. /** 站管理 */
  1088. $route->group(['prefix' => 'station'], function () {
  1089. Route::get('index', 'StationController@monitorIndex');
  1090. /** 监视器 */
  1091. Route::group(['prefix' => 'monitor'], function () {
  1092. Route::get('/', 'StationController@monitorIndex');
  1093. Route::get('/index', 'StationController@monitorIndex');
  1094. /** 料箱分布监视器 */
  1095. Route::group(['prefix' => 'visual'], function () {
  1096. Route::get('index', function () {
  1097. return view("station.monitor.visual");
  1098. });
  1099. Route::post('getData', 'StationController@getVisual');
  1100. Route::post('getBoxes', 'StationController@getBoxes');
  1101. Route::post('getDetail', 'StationController@getDetail');
  1102. });
  1103. });
  1104. /** 缓存架 */
  1105. Route::group(['prefix' => 'cachingShelf'], function () {
  1106. Route::get('/index', 'CacheShelfController@index');
  1107. });
  1108. /** 栈规则 */
  1109. Route::group(['prefix' => 'rule'], function () {
  1110. Route::get('/index', 'StationRuleBatchController@index');
  1111. });
  1112. });
  1113. /** 控制台 */
  1114. $route->group(['prefix' => 'control'], function () {
  1115. Route::get('panel/menu', 'ControlPanelController@index');
  1116. });
  1117. /** 采购管理 */
  1118. $route->group(['prefix' => 'procurement'], function () {
  1119. /** 采购 */
  1120. Route::group(['prefix' => 'procurement'], function () {
  1121. Route::get('index', 'ProcurementController@index');
  1122. Route::get('create', 'ProcurementController@create');
  1123. Route::post('store', 'ProcurementController@store');
  1124. Route::post('getOwnerMaterial', 'ProcurementController@getOwnerMaterial');
  1125. Route::post('createProcurement', 'ProcurementController@createProcurement');
  1126. Route::post('createEnquiry', 'ProcurementController@createEnquiry');
  1127. Route::post('createProof', 'ProcurementController@createProof');
  1128. Route::any('procurementExport', 'ProcurementController@procurementExport');
  1129. Route::get('cancel/{id}', 'ProcurementController@cancel');
  1130. Route::post('initiateProcurement', 'ProcurementController@initiateProcurement');
  1131. Route::post('submitProcurement', 'ProcurementController@submitProcurement');
  1132. Route::post('createAnew', 'ProcurementController@createAnew');
  1133. });
  1134. /** 财务 */
  1135. Route::group(['prefix' => 'finance'], function () {
  1136. Route::get('checkBill', 'ProcurementController@checkBill');
  1137. Route::get('procurementBill', 'ProcurementController@procurementBill');
  1138. Route::get('monthlyBillReport', 'ProcurementController@monthlyBillReport');
  1139. Route::post('fillInvoice', 'ProcurementController@fillInvoice');
  1140. Route::any('procurementTotalBillExport', 'ProcurementController@procurementTotalBillExport');
  1141. Route::any('procurementBillExport', 'ProcurementController@procurementBillExport');
  1142. Route::any('checkBillExport', 'ProcurementController@checkBillExport');
  1143. Route::post('costPrice', 'ProcurementController@costPrice');
  1144. Route::post('getCheckBillMonth', 'ProcurementController@getCheckBillMonth');
  1145. });
  1146. Route::get('relating', function () {
  1147. return view('procurement.menuProcurement');
  1148. });
  1149. });
  1150. /** 需求管理 */
  1151. $route->group(['prefix' => 'demand'], function () {
  1152. Route::get('/', 'DemandController@index');
  1153. });
  1154. /** 需求 */
  1155. Route::group(['prefix' => 'requirements'], function () {
  1156. Route::get('/', 'RequirementController@index')->name('requirements.index');
  1157. Route::post('{requirement}/begin', 'RequirementController@begin')->name('requirements.begin');
  1158. Route::post('{requirement}/finish', 'RequirementController@finish')->name('requirements.finish');
  1159. Route::get('create', 'RequirementController@create')->name('requirements.create');
  1160. Route::post('store', 'RequirementController@store')->name('requirements.store');
  1161. Route::patch('{requirement}', 'RequirementController@update')->name('requirements.update');
  1162. Route::delete('{requirement}', 'RequirementController@destroy')->name('requirements.destroy');
  1163. Route::patch('{requirement}', 'RequirementController@update')->name('requirements.update');
  1164. Route::get('{requirement}', 'RequirementController@show')->name('requirements.show');
  1165. Route::get('{requirement}/edit', 'RequirementController@edit')->name('requirements.edit');
  1166. Route::post('{requirement}/review', 'RequirementController@review')->name('requirements.review');
  1167. Route::post('{requirement}/againReview', 'RequirementController@againReview')->name('requirements.againReview');
  1168. Route::post('{requirement}/status', 'RequirementController@status')->name('requirements.status');
  1169. });
  1170. Route::group(['prefix' => 'storeOut'], function () {
  1171. Route::group(['prefix' => 'storeOutReview'], function () {
  1172. Route::get('/', 'StoreOutReviewController@index')->name('StoreOutReview.index');
  1173. });
  1174. });
  1175. Route::group(['prefix' => 'notification'], static function () {
  1176. Route::get('/regular', 'NotificationController@regular');
  1177. Route::post('/regular', 'NotificationController@getRegularData');
  1178. Route::post('/toTarget', 'NotificationController@toTarget');
  1179. }
  1180. );
  1181. Route::group(['prefix' => 'kpi'], function () {
  1182. Route::get('month', 'KpiController@monthIndex');
  1183. Route::get('day', 'KpiController@dayIndex');
  1184. Route::get('dayDetail', 'KpiController@dayDetailIndex');
  1185. Route::get('dayDetailCustomer', 'KpiController@dayDetailCustomer');
  1186. Route::resource('workCoefficient', 'WorkCoefficientController')->only(['index', 'create', 'update']);
  1187. Route::get('workCoefficientDayStat', 'KpiController@workCoefficientDayStatIndex');
  1188. Route::get('ownerPcsReport', 'KpiController@ownerPcsReport');
  1189. Route::get('logisticsPunctuality', 'KpiController@logisticsPunctuality');
  1190. Route::get('orderOperationLog', 'KpiController@orderOperationLog');
  1191. Route::get('logisticReturnPunctuality', 'KpiController@logisticReturnPunctuality');
  1192. });
  1193. });