web.php 71 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226
  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. });
  871. /** 创建 */
  872. Route::group(['prefix' => 'create'], function () {
  873. Route::post('batchComments', 'OrderController@batchComments');
  874. });
  875. /** 波次 */
  876. Route::group(['prefix' => 'wave'], function () {
  877. Route::get('index', 'WaveController@index');
  878. Route::post('cancelPrinting', 'WaveController@cancelPrinting');
  879. Route::any('exportExcel', 'WaveController@exportExcelOnParams');
  880. Route::post('repairBatch', 'WaveController@repairBatch');
  881. Route::post('split', 'WaveController@split');
  882. Route::post('printChild', 'WaveController@printChild');
  883. Route::get('picking', 'WaveController@picking');
  884. Route::post('loadBatch', 'WaveController@loadBatch');
  885. });
  886. /** 问题件 */
  887. Route::group(['prefix' => 'issue'], function () {
  888. /** 工作量 */
  889. Route::group(['prefix' => 'workLoad'], function () {
  890. Route::get('index', 'OrderIssuePerformanceController@workLoadPage');
  891. Route::any('export', 'OrderIssuePerformanceController@exportWorkLoad');
  892. });
  893. /** 绩效 */
  894. Route::group(['prefix' => 'orderIssuePerformance'], function () {
  895. Route::get('index', 'OrderIssuePerformanceController@index');
  896. Route::any('export', 'OrderIssuePerformanceController@export');
  897. });
  898. Route::get('index', 'OrderIssueController@index');
  899. Route::get('create', 'OrderIssueController@create');
  900. Route::post('store', 'OrderIssueController@store');
  901. Route::post('batchImport', 'OrderIssueController@batchImport');
  902. Route::get('excelImport', 'OrderIssueController@excelImport');
  903. Route::get('edit/{id}', 'OrderIssueController@edit');
  904. Route::get('recycle', 'OrderIssueController@recycleBin');
  905. Route::match(['get', 'post'], 'export', 'OrderIssueController@exportJsonExcel');
  906. });
  907. /** 跟踪 */
  908. Route::group(['prefix' => 'tracking'], function () {
  909. Route::get('index', "OrderTrackingController@index");
  910. Route::any('export', "OrderTrackingController@export");
  911. Route::get('update', 'OrderTrackingController@updateApi');
  912. Route::post('upload', 'OrderTrackingController@upload');
  913. Route::post('destroyImg', 'OrderTrackingController@destroyImg');
  914. });
  915. Route::post('freeze', 'OrderController@freeze');
  916. Route::post('freezeAll', 'OrderController@freezeAll');
  917. Route::post('thaw', 'OrderController@thaw');
  918. Route::post('deAllocation', 'OrderController@deAllocation');
  919. Route::post('deAllocationAll', 'OrderController@deAllocationAll');
  920. Route::post('allocation', 'OrderController@allocation');
  921. Route::post('manualBack', 'OrderController@manualBack');
  922. Route::post('collectUpload', 'OrderController@collectUpload');
  923. Route::post('resetLogisticsGetMark', 'OrderController@resetLogisticsGetMark');
  924. Route::post('resetInterfaceReturnMark', 'OrderController@resetInterfaceReturnMark');
  925. Route::post('createRejectedBill', 'OrderController@createRejectedBill');
  926. Route::post('isRejectedBillExist', 'OrderController@isRejectedBillExist');
  927. /** 工单 */
  928. Route::prefix('workOrder')->group(function () {
  929. Route::get('index', 'WorkOrderController@index');
  930. Route::match(['get', 'post'], 'export', 'WorkOrderController@exportJsonExcel')->name('workOrder.exportApi');
  931. });
  932. });
  933. /** 结算 */
  934. $route->group(['prefix' => 'finance'], function () {
  935. Route::get('area', 'CustomerController@projectArea');
  936. Route::group(['prefix' => 'instantBill'], function () {
  937. Route::match(['GET', 'POST'], 'export', 'CustomerController@financeInstantBillExport');
  938. });
  939. Route::get('instantBill', 'CustomerController@financeInstantBill');
  940. Route::group(['prefix' => 'billConfirmation'], function () {
  941. Route::match(['GET', 'POST'], 'export', 'CustomerController@financeBillConfirmationExport');
  942. });
  943. Route::get('billConfirmation', 'CustomerController@financeBillConfirmation');
  944. Route::post('updateBillReport', 'CustomerController@updateBillReport');
  945. Route::post('billConfirm', 'CustomerController@billConfirm');
  946. Route::prefix('settlementBills')->group(function () {
  947. //快递费
  948. Route::group(['prefix' => 'expressFee'], function () {
  949. Route::post('detail/confirmBill', 'SettlementBillExpressFeeDetailController@confirmBill');
  950. Route::post('report/confirmBill', 'SettlementBillExpressFeeReportController@confirmBill');
  951. Route::any('detail/export', 'SettlementBillExpressFeeDetailController@export');
  952. Route::any('report/export', 'SettlementBillExpressFeeReportController@export');
  953. Route::get('detail', 'SettlementBillExpressFeeDetailController@index')->name('settlementBills.expressFee.detail');
  954. Route::get('report', 'SettlementBillExpressFeeReportController@index')->name('settlementBills.expressFee.report');
  955. });
  956. //仓储费
  957. Route::group(['prefix' => 'storageFee'], function () {
  958. Route::get('', 'SettlementBillStorageFeeController@index')->name('settlementBills.storageFee.index');
  959. Route::post('confirmBill', 'SettlementBillStorageFeeController@confirmBill');
  960. Route::any('export', 'SettlementBillStorageFeeController@export');
  961. });
  962. //入库费
  963. Route::group(['prefix' => 'storeFee'], function () {
  964. Route::post('detail/confirmBill', 'SettlementBillStoreFeeDetailController@confirmBill');
  965. Route::post('report/confirmBill', 'SettlementBillStoreFeeReportController@confirmBill');
  966. Route::any('detail/export', 'SettlementBillStoreFeeDetailController@export');
  967. Route::any('report/export', 'SettlementBillStoreFeeReportController@export');
  968. Route::get('detail', 'SettlementBillStoreFeeDetailController@index');
  969. Route::get('report', 'SettlementBillStoreFeeReportController@index')->name('settlementBills.storeFee.report');
  970. });
  971. //出库费
  972. Route::group(['prefix' => 'storeOutFee'], function () {
  973. Route::post('detail/confirmBill', 'SettlementBillStoreOutFeeDetailController@confirmBill');
  974. Route::post('report/confirmBill', 'SettlementBillStoreOutFeeReportController@confirmBill');
  975. Route::any('detail/export', 'SettlementBillStoreOutFeeDetailController@export');
  976. Route::any('report/export', 'SettlementBillStoreOutFeeReportController@export');
  977. Route::get('detail', 'SettlementBillStoreOutFeeDetailController@index');
  978. Route::get('report', 'SettlementBillStoreOutFeeReportController@index')->name('settlementBills.storeOutFee.report');
  979. });
  980. //杂项费
  981. Route::group(['prefix' => 'sundryFee'], function () {
  982. Route::get('', 'SettlementBillSundryFeeController@index')->name('settlementBills.sundryFee');
  983. Route::post('confirmBill', 'SettlementBillSundryFeeController@confirmBill');
  984. Route::post('export', 'SettlementBillSundryFeeController@export');
  985. });
  986. //包材费
  987. Route::group(['prefix' => 'packingMaterialFee'], function () {
  988. Route::get('', 'SettlementBillPackingMaterialFeeController@index')->name('settlementBills.packingMaterialFee');
  989. Route::post('confirmBill', 'SettlementBillPackingMaterialFeeController@confirmBill');
  990. Route::any('export', 'SettlementBillPackingMaterialFeeController@export');
  991. });
  992. //加工费
  993. Route::group(['prefix' => 'processFee'], function () {
  994. Route::get('', 'SettlementBillProcessFeeController@index')->name('settlementBills.processFee');
  995. Route::post('confirmBill', 'SettlementBillProcessFeeController@confirmBill');
  996. Route::any('export', 'SettlementBillProcessFeeController@export');
  997. });
  998. //卸货费
  999. Route::group(['prefix' => 'unloadFee'], function () {
  1000. Route::get('', 'SettlementBillUnloadFeeController@index')->name('settlementBills.unloadFee');
  1001. Route::post('confirmBill', 'SettlementBillUnloadFeeController@confirmBill');
  1002. Route::any('export', 'SettlementBillUnloadFeeController@export');
  1003. });
  1004. //物流费
  1005. Route::group(['prefix' => 'logisticFee'], function () {
  1006. Route::get('', 'SettlementBillLogisticFeeController@index')->name('settlementBills.logisticFee');
  1007. Route::post('confirmBill', 'SettlementBillLogisticFeeController@confirmBill');
  1008. Route::any('export', 'SettlementBillLogisticFeeController@export');
  1009. });
  1010. //总费用
  1011. Route::group(['prefix' => 'totalFee'], function () {
  1012. Route::get('', 'OwnerFeeTotalController@index');
  1013. Route::post('confirmBill', 'OwnerFeeTotalController@confirmBill');
  1014. Route::any('export', 'OwnerFeeTotalController@export');
  1015. });
  1016. //理赔费
  1017. Route::group(['prefix' => 'indemnityFee'], function () {
  1018. Route::get('', 'SettlementIndemnityFeeController@index')->name('settlementBills.indemnityFee');
  1019. Route::post('confirmBill', 'SettlementIndemnityFeeController@confirmBill');
  1020. Route::any('export', 'SettlementIndemnityFeeController@export');
  1021. });
  1022. });
  1023. });
  1024. /** 客户 */
  1025. $route->group(['prefix' => 'customer'], function () {
  1026. /** 项目 */
  1027. //杂项费
  1028. Route::group(['prefix' => 'ownerSundryFee'], function () {
  1029. Route::any('export', 'OwnerSundryFeeDetailsController@export');
  1030. });
  1031. Route::group(['prefix' => 'project'], function () {
  1032. Route::group(['prefix' => 'index'], function () {
  1033. Route::match(['GET', 'POST'], 'export', 'CustomerController@projectIndexExport');
  1034. });
  1035. Route::get('index', 'CustomerController@projectIndex');
  1036. Route::get('create', 'CustomerController@projectCreate');
  1037. Route::group(['prefix' => 'area'], function () {
  1038. Route::match(['GET', 'POST'], 'export', 'CustomerController@projectAreaExport');
  1039. });
  1040. Route::get('{id}/edit', 'CustomerController@projectEdit');
  1041. Route::post('projectUpdate', 'CustomerController@projectUpdate');
  1042. Route::post('getOwnerPriceModel', 'CustomerController@getOwnerPriceModel');
  1043. Route::post('updateArea', 'CustomerController@updateArea');
  1044. Route::post('verify', 'CustomerController@verifyProject');
  1045. Route::post('areaReportAudit', 'CustomerController@areaReportAudit');
  1046. //获取现有计费模型
  1047. Route::post('getPriceModel', 'PriceModelController@getPriceModel');
  1048. //手动生成账单
  1049. Route::post("createReport", "CustomerController@createReport");
  1050. Route::post("createAreaReport", "CustomerController@createAreaReport");
  1051. //手动重置账单数据
  1052. Route::post("resetInstantBill", "CustomerController@resetInstantBill");
  1053. Route::post("resetBillConfirmation", "CustomerController@resetBillConfirmation");
  1054. });
  1055. Route::get('relating', function () {
  1056. return view('customer.relating');
  1057. });
  1058. Route::group(['prefix' => 'customer'], function () {
  1059. Route::get('customerLogStatus', 'CustomerLogStatusController@index');
  1060. Route::post('getLog', 'CustomerLogController@get');
  1061. Route::post('editLog', 'CustomerLogController@update');
  1062. Route::post('getLogStatus', 'CustomerLogStatusController@get');
  1063. Route::post('storeLog', 'CustomerLogController@store');
  1064. Route::post('relatedOwner', 'CustomerBaseController@relatedOwner');
  1065. Route::post('addTag', 'CustomerBaseController@addTag');
  1066. Route::post('delTag', 'CustomerBaseController@delTag');
  1067. Route::post('destroyLog', 'CustomerBaseController@destroyLog');
  1068. Route::group(['prefix' => 'customerLogStatus'], function () {
  1069. Route::post('save', 'CustomerLogStatusController@save');
  1070. Route::post('destroy', 'CustomerLogStatusController@destroy');
  1071. });
  1072. Route::group(['prefix' => 'customerTag'], function () {
  1073. Route::post('save', 'CustomerTagController@save');
  1074. Route::post('get', 'CustomerTagController@get');
  1075. });
  1076. Route::resource('customerTag', 'CustomerTagController', ['only' => ['index', "destroy"]]);
  1077. Route::resource('customerLog', 'CustomerLogController', ['only' => ['index', 'show', 'create', 'store', 'update', 'edit', 'destroy']]);
  1078. });
  1079. Route::group(['prefix' => 'ownerContract'], function () {
  1080. Route::post('store', 'OwnerContractController@store');
  1081. Route::get('down', 'OwnerContractController@downFile');
  1082. });
  1083. Route::resource('customer', 'CustomerBaseController');
  1084. Route::resource('ownerSundryFeeDetails', 'OwnerSundryFeeDetailsController', ['only' => ['index', 'create', 'store', 'update', 'edit', 'destroy']]);
  1085. });
  1086. /** 站管理 */
  1087. $route->group(['prefix' => 'station'], function () {
  1088. Route::get('index', 'StationController@monitorIndex');
  1089. /** 监视器 */
  1090. Route::group(['prefix' => 'monitor'], function () {
  1091. Route::get('/', 'StationController@monitorIndex');
  1092. Route::get('/index', 'StationController@monitorIndex');
  1093. /** 料箱分布监视器 */
  1094. Route::group(['prefix' => 'visual'], function () {
  1095. Route::get('index', function () {
  1096. return view("station.monitor.visual");
  1097. });
  1098. Route::post('getData', 'StationController@getVisual');
  1099. Route::post('getBoxes', 'StationController@getBoxes');
  1100. Route::post('getDetail', 'StationController@getDetail');
  1101. });
  1102. });
  1103. /** 缓存架 */
  1104. Route::group(['prefix' => 'cachingShelf'], function () {
  1105. Route::get('/index', 'CacheShelfController@index');
  1106. });
  1107. /** 栈规则 */
  1108. Route::group(['prefix' => 'rule'], function () {
  1109. Route::get('/index', 'StationRuleBatchController@index');
  1110. });
  1111. });
  1112. /** 控制台 */
  1113. $route->group(['prefix' => 'control'], function () {
  1114. Route::get('panel/menu', 'ControlPanelController@index');
  1115. });
  1116. /** 采购管理 */
  1117. $route->group(['prefix' => 'procurement'], function () {
  1118. /** 采购 */
  1119. Route::group(['prefix' => 'procurement'], function () {
  1120. Route::get('index', 'ProcurementController@index');
  1121. Route::get('create', 'ProcurementController@create');
  1122. Route::post('store', 'ProcurementController@store');
  1123. Route::post('getOwnerMaterial', 'ProcurementController@getOwnerMaterial');
  1124. Route::post('createProcurement', 'ProcurementController@createProcurement');
  1125. Route::post('createEnquiry', 'ProcurementController@createEnquiry');
  1126. Route::post('createProof', 'ProcurementController@createProof');
  1127. Route::any('procurementExport', 'ProcurementController@procurementExport');
  1128. Route::get('cancel/{id}', 'ProcurementController@cancel');
  1129. Route::post('initiateProcurement', 'ProcurementController@initiateProcurement');
  1130. Route::post('submitProcurement', 'ProcurementController@submitProcurement');
  1131. Route::post('createAnew', 'ProcurementController@createAnew');
  1132. });
  1133. /** 财务 */
  1134. Route::group(['prefix' => 'finance'], function () {
  1135. Route::get('checkBill', 'ProcurementController@checkBill');
  1136. Route::get('procurementBill', 'ProcurementController@procurementBill');
  1137. Route::get('monthlyBillReport', 'ProcurementController@monthlyBillReport');
  1138. Route::post('fillInvoice', 'ProcurementController@fillInvoice');
  1139. Route::any('procurementTotalBillExport', 'ProcurementController@procurementTotalBillExport');
  1140. Route::any('procurementBillExport', 'ProcurementController@procurementBillExport');
  1141. Route::any('checkBillExport', 'ProcurementController@checkBillExport');
  1142. Route::post('costPrice', 'ProcurementController@costPrice');
  1143. Route::post('getCheckBillMonth', 'ProcurementController@getCheckBillMonth');
  1144. });
  1145. Route::get('relating', function () {
  1146. return view('procurement.menuProcurement');
  1147. });
  1148. });
  1149. /** 需求管理 */
  1150. $route->group(['prefix' => 'demand'], function () {
  1151. Route::get('/', 'DemandController@index');
  1152. });
  1153. /** 需求 */
  1154. Route::group(['prefix' => 'requirements'], function () {
  1155. Route::get('/', 'RequirementController@index')->name('requirements.index');
  1156. Route::post('{requirement}/begin', 'RequirementController@begin')->name('requirements.begin');
  1157. Route::post('{requirement}/finish', 'RequirementController@finish')->name('requirements.finish');
  1158. Route::get('create', 'RequirementController@create')->name('requirements.create');
  1159. Route::post('store', 'RequirementController@store')->name('requirements.store');
  1160. Route::patch('{requirement}', 'RequirementController@update')->name('requirements.update');
  1161. Route::delete('{requirement}', 'RequirementController@destroy')->name('requirements.destroy');
  1162. Route::patch('{requirement}', 'RequirementController@update')->name('requirements.update');
  1163. Route::get('{requirement}', 'RequirementController@show')->name('requirements.show');
  1164. Route::get('{requirement}/edit', 'RequirementController@edit')->name('requirements.edit');
  1165. Route::post('{requirement}/review', 'RequirementController@review')->name('requirements.review');
  1166. Route::post('{requirement}/againReview', 'RequirementController@againReview')->name('requirements.againReview');
  1167. Route::post('{requirement}/status', 'RequirementController@status')->name('requirements.status');
  1168. });
  1169. Route::group(['prefix' => 'storeOut'], function () {
  1170. Route::group(['prefix' => 'storeOutReview'], function () {
  1171. Route::get('/', 'StoreOutReviewController@index')->name('StoreOutReview.index');
  1172. });
  1173. });
  1174. Route::group(['prefix' => 'notification'], static function () {
  1175. Route::get('/regular', 'NotificationController@regular');
  1176. Route::post('/regular', 'NotificationController@getRegularData');
  1177. Route::post('/toTarget', 'NotificationController@toTarget');
  1178. }
  1179. );
  1180. Route::group(['prefix' => 'kpi'], function () {
  1181. Route::get('month', 'KpiController@monthIndex');
  1182. Route::get('day', 'KpiController@dayIndex');
  1183. Route::get('dayDetail', 'KpiController@dayDetailIndex');
  1184. Route::get('dayDetailCustomer', 'KpiController@dayDetailCustomer');
  1185. Route::resource('workCoefficient', 'WorkCoefficientController')->only(['index', 'create', 'update']);
  1186. Route::get('workCoefficientDayStat', 'KpiController@workCoefficientDayStatIndex');
  1187. Route::get('ownerPcsReport', 'KpiController@ownerPcsReport');
  1188. Route::get('logisticsPunctuality', 'KpiController@logisticsPunctuality');
  1189. Route::get('orderOperationLog', 'KpiController@orderOperationLog');
  1190. Route::get('logisticReturnPunctuality', 'KpiController@logisticReturnPunctuality');
  1191. });
  1192. });