whereIn('code', $types)->get(); if ($storeTypes->count() < count($types)) { $types = array_diff($types, data_get($storeTypes, '*.code')); $storeType_list = $this->createStoreTypeByWms($types); $storeTypes=$storeTypes->concat($storeType_list); } return $storeTypes; } public function createStoreTypeByWms($codes){ if(!$codes) {return [];} $basCodes = OracleBasCode::query() ->where('codeid','ASN_TYP') ->whereIn('code', $codes) ->get(); $insert_params = []; $created_at = Carbon::now()->format('Y-m-d H:i:s'); foreach ($basCodes as $item) { $insert_params[] = [ 'code' => $item->code, 'name' => $item->codename_c, 'created_at' => $created_at, ]; } try { if (count($insert_params) > 0) { $this->insert($insert_params); LogService::log(__METHOD__, __FUNCTION__, '批量创建 storeType success' . count($insert_params) . json_encode($insert_params) ); } } catch (\Exception $e) { LogService::log(__METHOD__, __FUNCTION__, '批量创建 storeType error' . json_encode($insert_params) . '||' . $e->getMessage() . '||' . $e->getTraceAsString()); } finally { return StoreType::query()->whereIn('code', $codes)->get(); } } public function insert($fillables){ return StoreType::query()->insert($fillables); } }