Exemple #1
0
 /**
  * @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;
 }
Exemple #2
0
 /**
  * @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;
 }