model = new ApprovalFlow(); $this->lineModel = new ApprovalFlowLine(); $this->lineNodeModel = new ApprovalFlowLineNode(); } /** 审批列表 */ public function index(Request $request) { if ($request->isAjax()) { $param = $request->all(); $limit = $param['limit']; $where = []; $list = $this->model->getPaginateList($where, ['*'], ['id' => 'desc'], [], $limit); return sparKSuccess(dataReturn(0, 'success', $list)); } return view('system/approval/index'); } /** 审批添加 */ public function add(Request $request) { if ($request->isAjaxPost()) { $data = $request->post(); $data['flow_creator_id'] = admin_id(); $this->model::insert($data); return sparkSuccess(dataReturn(0, '添加成功')); } return sparkSuccess(dataReturn(0, 'error')); } /** 审批编辑 */ public function edit(Request $request) { if ($request->isAjaxPost()) { $data = $request->post(); // $data['flow_path'] = json_encode($data['flow_path']); $data['flow_path'] = $data['flow_path']; $data['update_time'] = now(); $this->model->updateById($data, $data['id']); return sparkSuccess(dataReturn(0, '修改成功')); } return sparkSuccess(dataReturn(0, 'error')); } /** 删除审批 */ public function del(Request $request) { $id = $request->get('id'); $res = $this->model->delById($id); return sparKSuccess(dataReturn(0, '删除成功')); } /** 审批流程列表 */ public function getFlowpath(Request $request) { $param = $request->all(); $where['approval_flow_id'] = $param['id']; $list = $this->lineModel->getAllList($where); return sparKSuccess(dataReturn(0, 'success', $list)); } /** 审批记录列表 */ public function itemsList(Request $request) { if ($request->isAjax()) { $param = $request->all(); $limit = $param['limit']; $where = []; $list = $this->lineModel->getPaginateList($where, ['*'], ['id' => 'desc'], ['projectOrg', 'companyOrg'], $limit); // foreach ($list['data'] as $key => $item) { // $list['data'][$key]['statusname'] = $this->getRoleStatus($item['approval_status']); // $list['data'][$key]['approval_name'] = $this->model->where('id', $item['approval_id'])->value("approval_process_name"); // } return sparKSuccess(dataReturn(0, 'success', $list)); } return view('system/approval/itemslist'); } /** 审核记录列表 */ public function linenodeList(Request $request) { if ($request->isAjax()) { $param = $request->all(); $limit = $param['limit']; $where = []; $list = $this->lineNodeModel->getPaginateList($where, ['*'], ['id' => 'asc'], ['approvalFlowLine', 'approvalRole', 'approvalActualUser'], $limit); return sparKSuccess(dataReturn(0, 'success', $list)); } return view('system/approval/linenodelist'); } /** 审核详情 */ public function linenodeShow(Request $request) { $session = $request->session(); if ($request->isAjax()) { $param = $request->all(); $roleId = $session->get('admin')['role_id']; $data['line'] = $this->lineModel->getInfoById($param['flid']); $where['id'] = $data['line']['approval_flow_id']; $data['flow'] = $this->model->getInfoByWhere($where); $nwhere['approval_flow_line_id'] = $data['line']['id']; $nwhere['flow_line_node_role_id'] = $roleId; $data['node'] = $this->lineNodeModel->getInfoByWhere($nwhere); $data['nodelist'] = $this->lineNodeModel->getAllList($nwhere, ['*'], ['id' => 'asc'], ['approvalActualUser']); return sparKSuccess(dataReturn(0, 'success', $data)); } return view('system/approval/approval_show'); } /** 处理审核 */ public function doApprove(Request $request) { $session = $request->session(); $param = $request->all(); $userId = $session->get('admin')['id']; $isAgreed = $param['status'] == 1 ? 1 : 0; if (isset($param['notes'])) $remark = $param['notes']; $res = (new ApprovalFlowEngine($this->lineModel->find($param['node']['approval_flow_line_id']))) ->approve(AdminUser::find($userId), $isAgreed, $remark); $data['line'] = $this->lineModel->getInfoById($param['node']['approval_flow_line_id']); $where['id'] = $data['line']['approval_flow_id']; $data['flow'] = $this->model->getInfoByWhere($where); return sparKSuccess(dataReturn(0, 'success', $data)); } /** 审批角色状态 */ private function getRoleStatus($type) { $statusArr = ['未审核', '已通过', '已驳回']; return $statusArr[$type]; } }