filter(function($item){ $consigned = $item->docOrderHeader['carrierid']; if ((strpos($consigned,'SF') != false ) && (!in_array($consigned,['SFSYQHD','SFTHQHD']))){ return true; } return false; }); return $items->map(function($item) { $delivery = $this->getDocOrderDeliveryInfo($item); $item['delivery'] = $delivery; return [ // TODO 需要动态获取面单获取的组件 TYPE 'type' => 'SF', 'task_id' => Str::uuid(), 'is_process' => true, 'data' => $item->docOrderHeader['user'], 'component_type' => 'SF', 'owner_code' => $item->docOrderHeader->customerid ?? '', 'logistic_code' => $item->docOrderHeader->userdefine1 ?? '', 'logistic_number' => $item['trackingno'], 'delivery' => $this->getDelivery($item), 'base64' => $this->getBase64($item), 'printerName' => '', ]; })->toArray(); } public function getBase64($item): string { $item = OwnerLogisticPrintTemplate::query()->with('printTemplate')->where('owner_id', function(Builder $query)use($item){ $query->from('owners')->selectRaw('id')->where("code",$item['customerid']); })->where('logistic_id', function(Builder $query)use($item){ $query->from('logistics')->selectRaw('id')->where("code",$item['userdefine1']); })->first(); if (!$item) return ''; $image = $this->draw($item['delivery'],$item,null); $path = ''; $this->saveImage($image,$path); app(DeliveryService::class)->pushClearCache($path); return $this->readImageBase64($path); } function getDelivery($item): array { return $this->getDocOrderDeliveryInfo($item); } }