data["active_test"] = "active"; } public function method(Request $request, $method) { try { return call_user_func([$this, $method], $request); }catch (\BadMethodCallException $e){ dd("方法不存在"); } } public function test(Request $request) { $waybill = Waybill::query()->where("waybill_number","BSZX2209079840")->first(); $json=" { \"request\": [ { \"OrderNo\": \"{$waybill['wms_bill_number']}\", \"DELIVERYNO\": \"{$waybill['waybill_number']}\" } ] } "; $sendingJson = json_decode($json,true); $url=url(config('api.flux.waybill.new')); try{ $response = Zttp::post($url, $sendingJson); }catch (\Exception $exception){ dd('CURL请求异常:'.$exception->getMessage()); return false; } $responseJson = $response->json(); if(!$responseJson||!isset($responseJson['Response'])||!$responseJson['Response']['return']['returnFlag']=='1'){ dd("向WMS提交运单失败!!SO单号:{$waybill['wms_bill_number']}。提交:{$json},返回:{$response->body()}, URL:{$url}"); return false; } Controller::logS(__METHOD__,''.__FUNCTION__,"向WMS提交运单成功,SO单号:{$waybill['wms_bill_number']}。返回:{$response->body()}",0); return true; } public function test1() { /** @var OracleDocAsnHerderService $oracleDocAsnHerderService */ $oracleDocAsnHerderService = app(OracleDocAsnHerderService::class); $asnHerders = $oracleDocAsnHerderService->getWmsAsnOnStartDateEdit('2022-10-26 20:30:00'); if (count($asnHerders)<1) return; $this->createStore($asnHerders,"update"); } public function createStore($asnHerders,$isUpdate=null) { if (!$asnHerders) return null; /** @var OwnerService $ownerService */ $ownerService = app(OwnerService::class); $owner_codes = []; $warehouse_codes = []; foreach ($asnHerders as $asnHerder) { if (!empty($asnHerder['customerid'])) $owner_codes[$asnHerder['customerid']] = $asnHerder['customerid']; if (!empty($asnHerder['warehouseid'])) $warehouse_codes[$asnHerder['warehouseid']] = $asnHerder['warehouseid']; } $owners = $ownerService->getOwnerByCodes($owner_codes); $warehouses = Warehouse::query()->get(); $owners_code_map=[]; foreach ($owners as $owner) { $owners_code_map[$owner->code] = $owner; } $warehouses_code_map=[]; foreach ($warehouses as $warehouse) { $warehouses_code_map[$warehouse->code] = $warehouse; } $params = $this->getParamsByAsnHeader($asnHerders, $owners_code_map, $warehouses_code_map); dd($params); if (count($params) > 0) $this->insertStore($params); /** @var StoreItemService $storeItemService */ $storeItemService = app(StoreItemService::class); $storeItemService->storeItemCreateByWms($asnHerders); /** @var RejectedBillService $rejectedBillService */ $rejectedBillService = app(RejectedBillService::class); $rejectedBillService->syncLoadedStatusByAsnHerder($asnHerders); } public function getParamsByAsnHeader($asnHerders, $owners_code_map, $warehouses_code_map) { $params = []; $stores = Store::query()->whereIn('asn_code', data_get($asnHerders, '*.asnno'))->get(); $store_asn_code_map = []; foreach ($stores as $store) { $store_asn_code_map[$store->asn_code] = $store; } foreach ($asnHerders as $asnHerder) { if ($store_asn_code_map[$asnHerder->asnno] ?? false) continue; $owner = $owners_code_map[$asnHerder->customerid] ?? null; $warehouse = $warehouses_code_map[$asnHerder->warehouseid] ?? null; $status = null; $fast = null; if ($asnHerder->asnStatus && $asnHerder->asnStatus->codename_c == '完全收货') $status = '已入库'; if ($asnHerder->asnStatus && $asnHerder->asnStatus->codename_c == '订单创建') $status = '未入库'; if ($asnHerder->asnType && $asnHerder->asnType->codename_c == '调拨入库') $fast = '快速入库'; $params[] = [ 'asn_code' => $asnHerder->asnno, 'warehouse_id' => $warehouse->id ?? null, 'owner_id' => $owner->id ?? null, 'stored_method' => $asnHerder->asnType ? $asnHerder->asnType->codename_c : '', 'status' => $status ? $status : $asnHerder->asnStatus->codename_c, 'remark' => $asnHerder->notes ?? null, 'created_at' => $asnHerder->addtime ?? null, 'updated_at' => $asnHerder->edittime ?? null, 'is_fast_stored' => $fast, ]; } return $params; } public function insertStore(array $params) { if (count($params) === 0) return; foreach (array_chunk($params, 1000) as $item) { $bool = $this->insert($item); if ($bool) { app('LogService')->log(__METHOD__, __FUNCTION__, "批量创建 store success " . count($item) . ' || ' . json_encode($item)); } else app('LogService')->log(__METHOD__, __FUNCTION__, "批量添加 store FAILED " . ' || ' . json_encode($item)); } } public function insert($params) { return Store::query()->insert($params); } }