/** * 流程分配 * * @param flow lib/flow类 * */ public static function dispatch($flow, $accepted_user, $accepted_role) { $user = User::info(); $steps = Config::get('flow.' . $flow->tpl_name . '.steps'); $runing_config = $steps[$flow->running_step]; Model\Flow::where('id', $flow->flow_id)->update(array('current_status' => Status::ACCEPT, 'accepted_users' => $accepted_user, 'accepted_roles' => $accepted_role)); $step = Model\Step::create(array('project_name' => $flow->tpl_name, 'flow_id' => $flow->flow_id, 'title' => $runing_config['title'], 'real_title' => $runing_config['title'], 'content' => '已分配至' . $accepted_user, 'real_content' => '已分配至' . $accepted_user, 'step' => $flow->running_step, 'status' => Status::DISPATCH, 'created_user' => $user->name, 'created_role' => $flow->running_role)); // 添加hook self::addHooks("after_step", $flow, $step, $flow->running_step, $flow->running_step, Status::DISPATCH); }
/** * 发布 */ public function publish() { $user = Util\User::info(); // 如果没有保存过,需要先保存 $flow = false; if (empty($this->flow->flow_id)) { $flow = $this->storage(); } $steps = Config::get('flow.' . $this->flow->tpl_name . '.steps'); $current = current($steps); $current_key = key($steps); $next_key = $current['createto']; // 校验是否可以流转 Util\Condition::checkFlowOwner($this->flow); $now = date('Y-m-d H:i:s'); $yzt_fileno = Config::get('yzt.config.file_num_start') . date("Ymd", strtotime($now)) . str_pad($this->flow->flow_id, 3, 0, STR_PAD_LEFT); Model\Flow::where('id', $this->flow->flow_id)->update(array('current_status' => Util\Status::ARRIVED, 'current_step' => $next_key, 'created_at' => $now, 'yzt_fileno' => $yzt_fileno)); $step = Model\Step::create(array('project_name' => $this->flow->tpl_name, 'flow_id' => $this->flow->flow_id, 'title' => $current['title'], 'real_title' => $current['title'], 'content' => '新申请', 'real_content' => '新申请', 'step' => $current_key, 'status' => Util\Status::CREATE, 'created_user' => $user->name, 'created_role' => $this->flow->running_role)); // 添加hook Util\Step::addHooks("after_step", $this->flow, $step, ZYD_STEP_APPLY, ZYD_STEP_APPLY, Util\Status::CREATE); return $flow; }