/** * @abstract 获取文件JSON数据 * @return null */ public function getfilesAction() { // 请求参数 $request = $this->getRequest()->getParams(); $limit = $request['limit']; $start = $request['start']; $where = " (t1.state = 'Active' or t1.state='Obsolete')"; foreach ($request as $k => $v) { if ($v) { if ($k == 'search_tag') { $cols = array("t1.project_info", "t1.code", "t1.name", "t1.description", "t1.remark", "t2.cname", "t7.model_standard", "t7.model_internal"); $arr = preg_split('/\\s+/', trim($v)); for ($i = 0; $i < count($arr); $i++) { $tmp = array(); foreach ($cols as $c) { $tmp[] = "ifnull({$c},'')"; } $arr[$i] = "concat(" . implode(',', $tmp) . ") like '%" . $arr[$i] . "%'"; } $where .= " and " . join(' AND ', $arr); // $where .= " and (ifnull(t1.project_info,'') like '%$v%' or ifnull(t1.code,'') like '%$v%' or ifnull(t1.name,'') like '%$v%' or ifnull(t1.description,'') like '%$v%' or ifnull(t1.remark,'') like '%$v%' or ifnull(t2.cname,'') like '%$v%' or ifnull(t7.model_standard,'') like '%$v%' or ifnull(t7.model_internal,'') like '%$v%')"; } else { if ("search_archive_date_from" == $k && $v) { $where .= " and t1.archive_time >= '" . str_replace('T', ' ', $v) . "'"; } else { if ("search_category" == $k && $v) { $where .= " and t5.category = '{$v}'"; } else { if ("search_archive_date_to" == $k && $v) { $where .= " and t1.archive_time <= '" . str_replace('T00:00:00', ' 23:59:59', $v) . "'"; } else { $col = str_replace('search_', '', $k); if ($col != $k) { // 查询条件 $where .= " and ifnull(t1." . $col . ",'') like '%" . $v . "%'"; } } } } } } } $files = new Dcc_Model_Files(); $codemaster = new Admin_Model_Codemaster(); $data = $files->getFilesList($where, $start, $limit); $tmp = $files->getAdapter()->query("select count(*) as sum from oa_doc_files t1 left join oa_employee t2 on t1.create_user = t2.id left join oa_doc_code t4 on t1.code = t4.code left join oa_doc_type t5 on t4.prefix = t5.id left join oa_product_catalog t7 on t4.project_no = t7.id where {$where}")->fetchObject(); $count = $tmp->sum; // $count = $files->getCount($where, $start, $limit); $totalCount = $count; for ($i = 0; $i < count($data); $i++) { $data[$i]['create_time'] = strtotime($data[$i]['create_time']); $data[$i]['update_time'] = strtotime($data[$i]['update_time']); $data[$i]['archive_time'] = strtotime($data[$i]['archive_time']); $data[$i]['codever'] = $data[$i]['code'] . 'V' . $data[$i]['ver']; $data[$i]['description'] = $data[$i]['code_description']; if ($data[$i]['reason_type']) { $masterData = $codemaster->fetchRow("type = 5 and code = '" . $data[$i]['reason_type'] . "'"); $reason_type_name = $masterData->text; $data[$i]['reason_type_name'] = $reason_type_name; } } $resutl = array("totalCount" => $totalCount, "topics" => $data); echo Zend_Json::encode($resutl); exit; }
/** * @abstract 获取文件JSON数据 * @return null */ public function getfilesAction() { // 请求参数 $request = $this->getRequest()->getParams(); $limit = $request['limit']; $start = $request['start']; $where = "1=1"; foreach ($request as $k => $v) { if ($v) { if ($k == 'search_tag') { $cols = array("t1.project_info", "t1.code", "t1.name", "t1.description", "t1.remark", "t2.cname", "t7.model_standard", "t7.model_internal"); $arr = preg_split('/\\s+/', trim($v)); for ($i = 0; $i < count($arr); $i++) { $tmp = array(); foreach ($cols as $c) { $tmp[] = "ifnull({$c},'')"; } $arr[$i] = "concat(" . implode(',', $tmp) . ") like '%" . $arr[$i] . "%'"; } $where .= " and " . join(' AND ', $arr); // $where .= " and (ifnull(t1.project_info,'') like '%$v%' or ifnull(t1.code,'') like '%$v%' or ifnull(t1.name,'') like '%$v%' or ifnull(t1.description,'') like '%$v%' or ifnull(t1.remark,'') like '%$v%' or ifnull(t2.cname,'') like '%$v%')"; } else { if ("search_category" == $k && $v) { $where .= " and t5.category = '{$v}'"; } else { if ("search_archive_date_from" == $k && $v) { $where .= " and t1.archive_time >= '" . str_replace('T', ' ', $v) . "'"; } else { if ("search_archive_date_to" == $k && $v) { $where .= " and t1.archive_time <= '" . str_replace('T00:00:00', ' 23:59:59', $v) . "'"; } else { $col = str_replace('search_', '', $k); if ($col != $k) { // 查询条件 $where .= " and ifnull(t1." . $col . ",'') like '%" . $v . "%'"; } } } } } } } $files = new Dcc_Model_Files(); $record = new Dcc_Model_Record(); $flow = new Admin_Model_Flow(); $step = new Admin_Model_Step(); $share = new Dcc_Model_Share(); $type = new Dcc_Model_Type(); $review = new Dcc_Model_Review(); $employee = new Hra_Model_Employee(); $dept = new Hra_Model_Dept(); $codemaster = new Admin_Model_Codemaster(); if (isset($request['method'])) { $data = $files->getFilesListForEdit($where, $start, $limit); $count = $files->getCountForEdit($where, $start, $limit); $totalCount = $count; } else { $data = $files->getFilesList($where . " and (t1.state = 'Active' or t1.state = 'Obsolete')", $start, $limit); $count = $files->getCount($where . " and (t1.state = 'Active' or t1.state = 'Obsolete')", $start, $limit); $totalCount = $count; } for ($i = 0; $i < count($data); $i++) { $data[$i]['create_time'] = strtotime($data[$i]['create_time']); $data[$i]['update_time'] = strtotime($data[$i]['update_time']); $data[$i]['archive_time'] = strtotime($data[$i]['archive_time']); $data[$i]['codever'] = $data[$i]['code'] . ' V' . $data[$i]['ver']; $data[$i]['send_require'] = $data[$i]['send_require'] == 1 ? true : false; $data[$i]['description'] = $data[$i]['code_description']; // 增加审核状态 $reviewState = ""; $step_name = ""; if ($data[$i]['state'] == 'Active') { $reviewState = "已发布"; } else { if ($data[$i]['state'] == 'Reviewing') { // 查询当前审核状态 // 查询所有审核阶段 $reviewRows = $review->getList("file_id = " . $data[$i]['id'], "files"); if (count($reviewRows) > 0) { $first = true; foreach ($reviewRows as $row) { if ($row['finish_flg'] == 1) { if ($step_name) { $step_name .= "->"; } $step_name .= $row['step_name']; } else { if ($step_name) { $step_name .= "->"; } // 第一条未审核记录就是当前待审核记录 if ($first) { $first = false; $step_name .= "<b>" . $row['step_name'] . "</b>"; $reviewRow = $row; $actual_user = explode(',', $reviewRow['actual_user']); $planUser = $reviewRow['plan_user']; $method = $reviewRow['method']; $plan_dept = $reviewRow['plan_dept']; $depts = array(); $plan_user = explode(',', $planUser); $diff = array_diff($plan_user, $actual_user); foreach ($diff as $u) { if (!$u) { continue; } $e = $employee->fetchRow("id = {$u}"); if ($reviewState) { $reviewState .= ", "; } $reviewState .= $e['cname'] . ":未审核"; } foreach ($depts as $d) { if ($reviewState) { $reviewState .= ", "; } $reviewState .= $d . ":未审核"; } foreach ($actual_user as $u) { if (!$u) { continue; } $e = $employee->fetchRow("id = {$u}"); if ($reviewState) { $reviewState .= ", "; } $reviewState .= $e['cname'] . ":已审核"; } } else { $step_name .= $row['step_name']; } } } } } else { if ($data[$i]['state'] == 'Obsolete') { $reviewState = "已作废"; } else { if ($data[$i]['state'] == 'Return') { $reviewState = "退回"; } else { $reviewState = $data[$i]['state']; } } } } $data[$i]['step_name'] = $step_name; $data[$i]['review_state'] = $reviewState; if ($data[$i]['reason_type']) { $masterData = $codemaster->fetchRow("type = 5 and code = '" . $data[$i]['reason_type'] . "'"); $reason_type_name = $masterData->text; $data[$i]['reason_type_name'] = $reason_type_name; } } $resutl = array("totalCount" => $totalCount, "topics" => $data); echo Zend_Json::encode($resutl); exit; }