route?->param('id'); $processId = (string) (request()->input('process_id') ?? ''); return [ 'process_id' => ['required', 'integer'], 'step_code' => [ 'required', 'max:50', Rule::unique(ProcessStep::class, 'step_code') ->where(fn ($query) => $query->where('process_id', $processId)) ->ignore($id, 'id') ], 'step_name' => ['required', 'max:100'], 'description' => ['nullable', 'max:65535'], 'sort' => ['nullable', 'integer', 'min:0'], 'status' => ['nullable', 'integer', 'in:0,1'], 'prerequisite_steps' => ['nullable'], 'prerequisite_mode' => ['nullable', 'in:all,any,none'], 'prerequisite_require_final' => ['nullable', 'integer', 'in:0,1'], 'allow_repeat_scan' => ['nullable', 'integer', 'in:0,1'], 'repeat_scan_statuses' => ['nullable'], ]; } protected array $message = [ 'process_id.required' => '所属工序不能为空', 'process_id.integer' => '所属工序格式不正确', 'step_code.required' => '步骤编码不能为空', 'step_code.max' => '步骤编码不能超过50个字符', 'step_code.unique' => '步骤编码已存在', 'step_name.required' => '步骤名称不能为空', 'step_name.max' => '步骤名称不能超过100个字符', 'description.max' => '步骤描述内容过长', 'sort.integer' => '排序必须为整数', 'sort.min' => '排序不能小于0', 'status.integer' => '状态格式不正确', 'status.in' => '状态值不正确', 'prerequisite_mode.in' => '前置步骤验证模式值不正确', 'prerequisite_require_final.integer' => '前置步骤终态要求格式不正确', 'prerequisite_require_final.in' => '前置步骤终态要求值不正确', 'allow_repeat_scan.integer' => '允许重复扫码格式不正确', 'allow_repeat_scan.in' => '允许重复扫码值不正确', ]; protected array $scene = [ 'store' => ['process_id', 'step_code', 'step_name', 'description', 'sort', 'status', 'prerequisite_steps', 'prerequisite_mode', 'prerequisite_require_final', 'allow_repeat_scan', 'repeat_scan_statuses'], 'update' => ['process_id', 'step_code', 'step_name', 'description', 'sort', 'status', 'prerequisite_steps', 'prerequisite_mode', 'prerequisite_require_final', 'allow_repeat_scan', 'repeat_scan_statuses'], ]; }