$params['name'], 'check_type' => $params['check_type'], 'type' => $params['type'], 'flow_cate' => $params['flow_cate'], 'department_ids' => $params['department_ids'] ?? '', 'copy_uids' => $params['copy_uids'] ?? '', 'remark' => $params['remark'] ?? '', 'flow_list' => !empty($params['flow_list']) ? serialize($params['flow_list']) : '' ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 编辑审批流程 * @param array $params * @return bool * @author likeadmin * @date 2024/05/24 14:16 */ public static function edit(array $params): bool { if($params['check_type'] == 3){ $flow_list = $params['flow_list']; foreach($flow_list as &$v){ $v['flow_type'] = 5; } $params['flow_list'] = $flow_list; } if($params['check_type'] == 2){ $params['flow_list'] = ''; } Db::startTrans(); try { OaFlow::where('id', $params['id'])->update([ 'name' => $params['name'], 'check_type' => $params['check_type'], 'type' => $params['type'], 'flow_cate' => $params['flow_cate'], 'department_ids' => $params['department_ids'] ?? '', 'copy_uids' => $params['copy_uids'] ?? '', 'remark' => $params['remark'] ?? '', 'flow_list' => !empty($params['flow_list']) ? serialize($params['flow_list']) : '' ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 删除审批流程 * @param array $params * @return bool * @author likeadmin * @date 2024/05/24 14:16 */ public static function delete(array $params): bool { return OaFlow::destroy($params['id']); } /** * @notes 获取审批流程详情 * @param $params * @return array * @author likeadmin * @date 2024/05/24 14:16 */ public static function detail($params): array { $data = OaFlow::findOrEmpty($params['id']); $data['type_text'] = $data->type_text; $data['check_type_text'] = $data->check_type_text; $flow_cate = OaFlowType::where('id',$data['flow_cate'])->findOrEmpty(); $data['flow_cate_name'] = $flow_cate['title']; if(!empty($data['department_ids'])){ $dept = Dept::where('id','in',$data['department_ids'])->column('name'); $data['department_names'] = implode(',',$dept); }else{ $data['department_names'] = '全公司'; } if(!empty($data['copy_uids'])){ $copy_user = Admin::where('id','in',$data['copy_uids'])->column('name'); $data['copy_user_names'] = implode(',',$copy_user); }else{ $data['copy_user_names'] = ''; } $flow_list = unserialize($data['flow_list']); foreach ($flow_list as &$v){ if(!empty($v['flow_uids'])){ $flow_users = Admin::where('id','in',$v['flow_uids'])->column('name'); $v['flow_user_names'] = implode(',',$flow_users); }else{ $v['flow_user_names'] = ''; } } $data['flow_list'] = $flow_list; return $data->toArray(); } }