|
|
@@ -3,6 +3,10 @@
|
|
|
namespace App\Providers;
|
|
|
|
|
|
use App\Http\Controllers\Controller;
|
|
|
+use App\Jobs\LogisticSFSync;
|
|
|
+use App\Jobs\LogisticYDSync;
|
|
|
+use App\Jobs\LogisticYTOSync;
|
|
|
+use App\Jobs\LogisticZopSync;
|
|
|
use App\Services\AuthorityService;
|
|
|
use App\Services\BatchService;
|
|
|
use App\Services\CacheService;
|
|
|
@@ -44,6 +48,7 @@ use App\Services\OracleActAllocationDetailService;
|
|
|
use App\Services\OrderIssueProcessLogService;
|
|
|
use App\Services\OrderIssueRejectedBillService;
|
|
|
use App\Services\OrderIssueService;
|
|
|
+use App\Services\OrderPackageReceivedSyncRecordService;
|
|
|
use App\Services\OrderPackageReceivedSyncService;
|
|
|
use App\Services\OrderPackageService;
|
|
|
use App\Services\OrderService;
|
|
|
@@ -106,6 +111,8 @@ use App\Services\DischargeTaskService;
|
|
|
use App\Services\DeliveryAppointmentService;
|
|
|
use App\Services\StationCacheShelfGridService;
|
|
|
use Illuminate\Queue\Events\JobFailed;
|
|
|
+use Illuminate\Queue\Events\JobProcessed;
|
|
|
+use Illuminate\Queue\Events\JobProcessing;
|
|
|
use Illuminate\Support\Facades\Queue;
|
|
|
use Illuminate\Support\Facades\Schema;
|
|
|
use Illuminate\Support\Facades\View;
|
|
|
@@ -140,7 +147,13 @@ class AppServiceProvider extends ServiceProvider
|
|
|
//
|
|
|
Schema::defaultStringLength(191);
|
|
|
Queue::failing(function (JobFailed $event) {
|
|
|
- (new Controller())->log(__METHOD__,'EventError_',json_encode($event));
|
|
|
+ (new Controller())->log(__METHOD__, 'EventError_', json_encode($event));
|
|
|
+ $payload = $event->job->payload();
|
|
|
+ $displayName = $payload['displayName'];
|
|
|
+ //快递信息同步失败计数
|
|
|
+ if ($this->isLogisticSyncJob($displayName)) {
|
|
|
+ $this->logisticSyncRecord($displayName, 'failed_count');
|
|
|
+ }
|
|
|
});
|
|
|
//扩展身份证验证规则
|
|
|
Validator::extend('identity_cards', function($attribute, $value, $parameters) {
|
|
|
@@ -157,6 +170,19 @@ class AppServiceProvider extends ServiceProvider
|
|
|
\Illuminate\Database\Eloquent\Builder::macro('sql', function(){
|
|
|
return ($this->getQuery()->sql());
|
|
|
});
|
|
|
+
|
|
|
+ Queue::before(function (JobProcessing $event) {
|
|
|
+
|
|
|
+ });
|
|
|
+ //任务成功后的回调
|
|
|
+ Queue::after(function (JobProcessed $event) {
|
|
|
+ //快递信息同步成功计数
|
|
|
+ $payload = $event->job->payload();
|
|
|
+ $displayName = $payload['displayName'];
|
|
|
+ if ($this->isLogisticSyncJob($displayName)) {
|
|
|
+ $this->logisticSyncRecord($displayName, 'succeed_count');
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
private function loadingService(){
|
|
|
@@ -186,91 +212,132 @@ class AppServiceProvider extends ServiceProvider
|
|
|
app()->singleton('ForeignHaiRoboticsService',ForeignHaiRoboticsService::class);
|
|
|
app()->singleton('ForeignZhenCangService',ForeignZhenCangService::class);
|
|
|
app()->singleton('LogisticZopService', LogisticZopService::class);
|
|
|
- app()->singleton('InventoryAccountMissionService',InventoryAccountMissionService::class);
|
|
|
- app()->singleton('InventoryCompareService',InventoryCompareService::class);
|
|
|
- app()->singleton('InventoryDailyLogService',InventoryDailyLogService::class);
|
|
|
- app()->singleton('LaborReportsCountingRecordService',LaborReportsCountingRecordService::class);
|
|
|
- app()->singleton('LogService',LogService::class);
|
|
|
- app()->singleton('LogisticSFService',LogisticSFService::class);
|
|
|
- app()->singleton('LogisticService',LogisticService::class);
|
|
|
- app()->singleton('LogisticYDService',LogisticYDService::class);
|
|
|
- app()->singleton('LogisticYTOService',LogisticYTOService::class);
|
|
|
- app()->singleton('MaterialBoxService',MaterialBoxService::class);
|
|
|
- app()->singleton('OracleActAllocationDetailService',OracleActAllocationDetailService::class);
|
|
|
- app()->singleton('OracleBasCustomerService',OracleBasCustomerService::class);
|
|
|
- app()->singleton('OracleBasSkuService',OracleBasSkuService::class);
|
|
|
- app()->singleton('OracleDocAsnDetailService',OracleDocAsnDetailService::class);
|
|
|
- app()->singleton('OracleDocOrderHeaderService',OracleDOCOrderHeaderService::class);
|
|
|
- app()->singleton('OracleDocWaveDetailService',OracleDocWaveDetailService::class);
|
|
|
- app()->singleton('OrderCommodityAssignService',OrderCommodityAssignService::class);
|
|
|
- app()->singleton('OrderCommodityService',OrderCommodityService::class);
|
|
|
- app()->singleton('OrderFreezeService',OrderFreezeService::class);
|
|
|
- app()->singleton('OrderIssuePerformanceService',OrderIssuePerformanceService::class);
|
|
|
- app()->singleton('OrderIssueProcessLogService',OrderIssueProcessLogService::class);
|
|
|
- app()->singleton('OrderIssueRejectedBillService',OrderIssueRejectedBillService::class);
|
|
|
- app()->singleton('OrderIssueService',OrderIssueService::class);
|
|
|
- app()->singleton('OrderIssueWorkLoadService',OrderIssueWorkLoadService::class);
|
|
|
- app()->singleton('OrderPackageCommoditiesService',OrderPackageCommoditiesService::class);
|
|
|
- app()->singleton('OrderPackageCommoditySerialNumberService',OrderPackageCommoditySerialNumberService::class);
|
|
|
- app()->singleton('OrderPackageExceptionTypeCountingRecordService',OrderPackageExceptionTypeCountingRecordService::class);
|
|
|
- app()->singleton('OrderPackageReceivedSyncService',OrderPackageReceivedSyncService::class);
|
|
|
- app()->singleton('OrderPackageService',OrderPackageService::class);
|
|
|
- app()->singleton('OrderService',OrderService::class);
|
|
|
- app()->singleton('OrderTrackingService',OrderTrackingService::class);
|
|
|
- app()->singleton('OwnerAreaReportService',OwnerAreaReportService::class);
|
|
|
- app()->singleton('OwnerBillReportService',OwnerBillReportService::class);
|
|
|
- app()->singleton('OwnerFeeDetailService',OwnerFeeDetailService::class);
|
|
|
- app()->singleton('OwnerMaterialService',OwnerMaterialService::class);
|
|
|
- app()->singleton('OwnerMaterialService',OwnerMaterialService::class);
|
|
|
- app()->singleton('OwnerPriceDirectLogisticService',OwnerPriceDirectLogisticService::class);
|
|
|
- app()->singleton('OwnerPriceExpressService',OwnerPriceExpressService::class);
|
|
|
- app()->singleton('OwnerPriceLogisticService',OwnerPriceLogisticService::class);
|
|
|
- app()->singleton('OwnerPriceOperationItemService',OwnerPriceOperationItemService::class);
|
|
|
- app()->singleton('OwnerPriceOperationService',OwnerPriceOperationService::class);
|
|
|
- app()->singleton('OwnerReportService',OwnerReportService::class);
|
|
|
- app()->singleton('OwnerService',OwnerService::class);
|
|
|
- app()->singleton('OwnerStoragePriceModelService',OwnerStoragePriceModelService::class);
|
|
|
- app()->singleton('PackageService',PackageService::class);
|
|
|
- app()->singleton('PackageStatisticsService',PackageStatisticsService::class);
|
|
|
- app()->singleton('ProcessMethodService',ProcessMethodService::class);
|
|
|
- app()->singleton('ProcessService',ProcessService::class);
|
|
|
- app()->singleton('ProcessStatisticService',ProcessStatisticService::class);
|
|
|
- app()->singleton('ProcessesContentService',ProcessesContentService::class);
|
|
|
- app()->singleton('ProcurementService',ProcurementService::class);
|
|
|
- app()->singleton('ProcurementTotalBillService',ProcurementTotalBillService::class);
|
|
|
- app()->singleton('ProcurementWeiXinSendMessageService',ProcurementWeiXinSendMessageService::class);
|
|
|
- app()->singleton('ProvinceService',ProvinceService::class);
|
|
|
- app()->singleton('RealtimePendingOrdersService',RealtimePendingOrdersService::class);
|
|
|
- app()->singleton('RegionService',RegionService::class);
|
|
|
- app()->singleton('RejectedBillItemService',RejectedBillItemService::class);
|
|
|
- app()->singleton('RejectedBillService',RejectedBillService::class);
|
|
|
- app()->singleton('RejectedService',RejectedService::class);
|
|
|
- app()->singleton('ShopService',ShopService::class);
|
|
|
- app()->singleton('StationCacheShelfGridService',StationCacheShelfGridService::class);
|
|
|
- app()->singleton('StationRuleBatchService',StationRuleBatchService::class);
|
|
|
- app()->singleton('StationService',StationService::class);
|
|
|
- app()->singleton('StationTaskBatchService',StationTaskBatchService::class);
|
|
|
- app()->singleton('StationTaskBatchTypeService',StationTaskBatchTypeService::class);
|
|
|
- app()->singleton('StationTaskChildService',StationTaskChildService::class);
|
|
|
- app()->singleton('StationTaskCommodityService',StationTaskCommodityService::class);
|
|
|
- app()->singleton('StationTaskMaterialBoxService',StationTaskMaterialBoxService::class);
|
|
|
- app()->singleton('StationTaskService',StationTaskService::class);
|
|
|
- app()->singleton('StationTaskTypeService',StationTaskTypeService::class);
|
|
|
- app()->singleton('StationTypeBinMonitorService',StationTypeBinMonitorService::class);
|
|
|
- app()->singleton('StationTypeService',StationTypeService::class);
|
|
|
- app()->singleton('StoreCheckingReceiveItemService',StoreCheckingReceiveItemService::class);
|
|
|
- app()->singleton('StoreCheckingReceiveService',StoreCheckingReceiveService::class);
|
|
|
- app()->singleton('StoreItemService',StoreItemService::class);
|
|
|
- app()->singleton('StoreService',StoreService::class);
|
|
|
- app()->singleton('SupplierService',SupplierService::class);
|
|
|
- app()->singleton('UnitService',UnitService::class);
|
|
|
- app()->singleton('UserOwnerGroupService',UserOwnerGroupService::class);
|
|
|
- app()->singleton('UserService',UserService::class);
|
|
|
- app()->singleton('UserWorkgroupService',UserWorkgroupService::class);
|
|
|
- app()->singleton('WarehouseService',WarehouseService::class);
|
|
|
- app()->singleton('WaybillFinancialService',WaybillFinancialService::class);
|
|
|
- app()->singleton('WeighExceptedService',WeighExceptedService::class);
|
|
|
+ app()->singleton('InventoryAccountMissionService', InventoryAccountMissionService::class);
|
|
|
+ app()->singleton('InventoryCompareService', InventoryCompareService::class);
|
|
|
+ app()->singleton('InventoryDailyLogService', InventoryDailyLogService::class);
|
|
|
+ app()->singleton('LaborReportsCountingRecordService', LaborReportsCountingRecordService::class);
|
|
|
+ app()->singleton('OrderPackageReceivedSyncRecordService', OrderPackageReceivedSyncRecordService::class);
|
|
|
+ app()->singleton('LogService', LogService::class);
|
|
|
+ app()->singleton('LogisticSFService', LogisticSFService::class);
|
|
|
+ app()->singleton('LogisticService', LogisticService::class);
|
|
|
+ app()->singleton('LogisticYDService', LogisticYDService::class);
|
|
|
+ app()->singleton('LogisticYTOService', LogisticYTOService::class);
|
|
|
+ app()->singleton('MaterialBoxService', MaterialBoxService::class);
|
|
|
+ app()->singleton('OracleActAllocationDetailService', OracleActAllocationDetailService::class);
|
|
|
+ app()->singleton('OracleBasCustomerService', OracleBasCustomerService::class);
|
|
|
+ app()->singleton('OracleBasSkuService', OracleBasSkuService::class);
|
|
|
+ app()->singleton('OracleDocAsnDetailService', OracleDocAsnDetailService::class);
|
|
|
+ app()->singleton('OracleDocOrderHeaderService', OracleDOCOrderHeaderService::class);
|
|
|
+ app()->singleton('OracleDocWaveDetailService', OracleDocWaveDetailService::class);
|
|
|
+ app()->singleton('OrderCommodityAssignService', OrderCommodityAssignService::class);
|
|
|
+ app()->singleton('OrderCommodityService', OrderCommodityService::class);
|
|
|
+ app()->singleton('OrderFreezeService', OrderFreezeService::class);
|
|
|
+ app()->singleton('OrderIssuePerformanceService', OrderIssuePerformanceService::class);
|
|
|
+ app()->singleton('OrderIssueProcessLogService', OrderIssueProcessLogService::class);
|
|
|
+ app()->singleton('OrderIssueRejectedBillService', OrderIssueRejectedBillService::class);
|
|
|
+ app()->singleton('OrderIssueService', OrderIssueService::class);
|
|
|
+ app()->singleton('OrderIssueWorkLoadService', OrderIssueWorkLoadService::class);
|
|
|
+ app()->singleton('OrderPackageCommoditiesService', OrderPackageCommoditiesService::class);
|
|
|
+ app()->singleton('OrderPackageCommoditySerialNumberService', OrderPackageCommoditySerialNumberService::class);
|
|
|
+ app()->singleton('OrderPackageExceptionTypeCountingRecordService', OrderPackageExceptionTypeCountingRecordService::class);
|
|
|
+ app()->singleton('OrderPackageReceivedSyncService', OrderPackageReceivedSyncService::class);
|
|
|
+ app()->singleton('OrderPackageService', OrderPackageService::class);
|
|
|
+ app()->singleton('OrderService', OrderService::class);
|
|
|
+ app()->singleton('OrderTrackingService', OrderTrackingService::class);
|
|
|
+ app()->singleton('OwnerAreaReportService', OwnerAreaReportService::class);
|
|
|
+ app()->singleton('OwnerBillReportService', OwnerBillReportService::class);
|
|
|
+ app()->singleton('OwnerFeeDetailService', OwnerFeeDetailService::class);
|
|
|
+ app()->singleton('OwnerMaterialService', OwnerMaterialService::class);
|
|
|
+ app()->singleton('OwnerMaterialService', OwnerMaterialService::class);
|
|
|
+ app()->singleton('OwnerPriceDirectLogisticService', OwnerPriceDirectLogisticService::class);
|
|
|
+ app()->singleton('OwnerPriceExpressService', OwnerPriceExpressService::class);
|
|
|
+ app()->singleton('OwnerPriceLogisticService', OwnerPriceLogisticService::class);
|
|
|
+ app()->singleton('OwnerPriceOperationItemService', OwnerPriceOperationItemService::class);
|
|
|
+ app()->singleton('OwnerPriceOperationService', OwnerPriceOperationService::class);
|
|
|
+ app()->singleton('OwnerReportService', OwnerReportService::class);
|
|
|
+ app()->singleton('OwnerService', OwnerService::class);
|
|
|
+ app()->singleton('OwnerStoragePriceModelService', OwnerStoragePriceModelService::class);
|
|
|
+ app()->singleton('PackageService', PackageService::class);
|
|
|
+ app()->singleton('PackageStatisticsService', PackageStatisticsService::class);
|
|
|
+ app()->singleton('ProcessMethodService', ProcessMethodService::class);
|
|
|
+ app()->singleton('ProcessService', ProcessService::class);
|
|
|
+ app()->singleton('ProcessStatisticService', ProcessStatisticService::class);
|
|
|
+ app()->singleton('ProcessesContentService', ProcessesContentService::class);
|
|
|
+ app()->singleton('ProcurementService', ProcurementService::class);
|
|
|
+ app()->singleton('ProcurementTotalBillService', ProcurementTotalBillService::class);
|
|
|
+ app()->singleton('ProcurementWeiXinSendMessageService', ProcurementWeiXinSendMessageService::class);
|
|
|
+ app()->singleton('ProvinceService', ProvinceService::class);
|
|
|
+ app()->singleton('RealtimePendingOrdersService', RealtimePendingOrdersService::class);
|
|
|
+ app()->singleton('RegionService', RegionService::class);
|
|
|
+ app()->singleton('RejectedBillItemService', RejectedBillItemService::class);
|
|
|
+ app()->singleton('RejectedBillService', RejectedBillService::class);
|
|
|
+ app()->singleton('RejectedService', RejectedService::class);
|
|
|
+ app()->singleton('ShopService', ShopService::class);
|
|
|
+ app()->singleton('StationCacheShelfGridService', StationCacheShelfGridService::class);
|
|
|
+ app()->singleton('StationRuleBatchService', StationRuleBatchService::class);
|
|
|
+ app()->singleton('StationService', StationService::class);
|
|
|
+ app()->singleton('StationTaskBatchService', StationTaskBatchService::class);
|
|
|
+ app()->singleton('StationTaskBatchTypeService', StationTaskBatchTypeService::class);
|
|
|
+ app()->singleton('StationTaskChildService', StationTaskChildService::class);
|
|
|
+ app()->singleton('StationTaskCommodityService', StationTaskCommodityService::class);
|
|
|
+ app()->singleton('StationTaskMaterialBoxService', StationTaskMaterialBoxService::class);
|
|
|
+ app()->singleton('StationTaskService', StationTaskService::class);
|
|
|
+ app()->singleton('StationTaskTypeService', StationTaskTypeService::class);
|
|
|
+ app()->singleton('StationTypeBinMonitorService', StationTypeBinMonitorService::class);
|
|
|
+ app()->singleton('StationTypeService', StationTypeService::class);
|
|
|
+ app()->singleton('StoreCheckingReceiveItemService', StoreCheckingReceiveItemService::class);
|
|
|
+ app()->singleton('StoreCheckingReceiveService', StoreCheckingReceiveService::class);
|
|
|
+ app()->singleton('StoreItemService', StoreItemService::class);
|
|
|
+ app()->singleton('StoreService', StoreService::class);
|
|
|
+ app()->singleton('SupplierService', SupplierService::class);
|
|
|
+ app()->singleton('UnitService', UnitService::class);
|
|
|
+ app()->singleton('UserOwnerGroupService', UserOwnerGroupService::class);
|
|
|
+ app()->singleton('UserService', UserService::class);
|
|
|
+ app()->singleton('UserWorkgroupService', UserWorkgroupService::class);
|
|
|
+ app()->singleton('WarehouseService', WarehouseService::class);
|
|
|
+ app()->singleton('WaybillFinancialService', WaybillFinancialService::class);
|
|
|
+ app()->singleton('WeighExceptedService', WeighExceptedService::class);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 快递同步接口 同步情况统计
|
|
|
+ */
|
|
|
+ private function logisticSyncRecord($displayName, $column_name): void
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @var OrderPackageReceivedSyncRecordService $orderPackageReceivedSyncRecordService
|
|
|
+ */
|
|
|
+ $orderPackageReceivedSyncRecordService = app('OrderPackageReceivedSyncRecordService');
|
|
|
+ switch ($displayName) {
|
|
|
+ case LogisticZopSync::class:
|
|
|
+ $orderPackageReceivedSyncRecordService->createOrIncrementSucceededCount('中通', now()->toDateString(), $column_name);
|
|
|
+ break;
|
|
|
+ case LogisticSFSync::class:
|
|
|
+ $orderPackageReceivedSyncRecordService->createOrIncrementSucceededCount('顺丰', now()->toDateString(), $column_name);
|
|
|
+ break;
|
|
|
+ case LogisticYDSync::class:
|
|
|
+ $orderPackageReceivedSyncRecordService->createOrIncrementSucceededCount('韵达', now()->toDateString(), $column_name);
|
|
|
+ break;
|
|
|
+ case LogisticYTOSync::class:
|
|
|
+ $orderPackageReceivedSyncRecordService->createOrIncrementSucceededCount('圆通', now()->toDateString(), $column_name);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ $orderPackageReceivedSyncRecordService->createOrIncrementSucceededCount('其他', now()->toDateString(), $column_name);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ /**
|
|
|
+ * 判断当前任务类型是否为快递信息同步
|
|
|
+ * @param $displayName
|
|
|
+ * @return bool
|
|
|
+ */
|
|
|
+ private function isLogisticSyncJob($displayName): bool
|
|
|
+ {
|
|
|
+ return ($displayName == LogisticZopSync::class)
|
|
|
+ || ($displayName == LogisticSFSync::class)
|
|
|
+ || ($displayName == LogisticYDSync::class)
|
|
|
+ || ($displayName == LogisticYTOSync::class);
|
|
|
+ }
|
|
|
}
|