validator; } /** * 生成 8-12 位的物品编码(默认10位) * * @param int $length 编码长度,默认为10(范围 8-12) * @return string 返回大写的字母数字组合编码 */ private function generateItemCode($length = 10) { // 排除易混淆字符:0, O, o, 1, I, l $chars = '23456789ABCDEFGHJKLMNPQRSTUVWXYZ'; $code = ''; $maxIndex = strlen($chars) - 1; for ($i = 0; $i < $length; $i++) { $code .= $chars[mt_rand(0, $maxIndex)]; } return $code; } public function beforeServiceStore($data, Request $request): array { $data['item_code'] = $this->generateItemCode(); $data['category_id'] = 0; $data['spec_model'] = ''; $data['unit'] = '件'; $data['is_consumable'] = 0; $data['stock_qty'] = 1; $data['location'] = ''; return $data; } }