Example #1
0
 public function exportcsvAction()
 {
     $request = $this->getRequest()->getParams();
     $whereSearch = "1=1";
     foreach ($request as $k => $v) {
         if ($v) {
             if ($k == 'search_tag') {
                 $whereSearch .= " and (ifnull(t1.code,'') like '%{$v}%' or ifnull(t1.fullname,'') like '%{$v}%' or ifnull(t1.name,'') like '%{$v}%' or ifnull(t1.description,'') like '%{$v}%' or ifnull(t1.remark,'') like '%{$v}%' or ifnull(t1.secretlevel,'') like '%{$v}%')";
             } else {
                 if ($k == 'search_type') {
                     if ($v) {
                         $v = json_decode($v);
                         $v = implode(',', $v);
                         if ($v) {
                             $whereSearch .= " and t1.category in ({$v})";
                         }
                     }
                 } else {
                     $col = str_replace('search_', '', $k);
                     if ($col != $k) {
                         // 查询条件
                         $whereSearch .= " and ifnull(t1." . $col . ",'') like '%" . $v . "%'";
                     }
                 }
             }
         }
     }
     print chr(0xef) . chr(0xbb) . chr(0xbf);
     $record = new Dcc_Model_Record();
     $type = new Dcc_Model_Type();
     $flow = new Admin_Model_Flow();
     $step = new Admin_Model_Step();
     $data = $type->getTypeList($whereSearch);
     $data_csv = array();
     $title = array('cnt' => '#', 'id' => 'ID', 'code' => '文件简号', 'name' => '中文解释', 'fullname' => '全称', 'category' => '文件类别', 'resp_dept_id' => '责任部门', 'resp_emp_id' => '责任人', 'filerequire' => '文件是否必须', 'secretlevel' => '文件密级', 'template' => '文件模板编号', 'duration' => '审核时效', 'length' => '流水号长度', 'autotype' => '自动编码方式', 'description' => '描述', 'model_id' => '新文件自定义表单', 'dev_model_id' => '新版自定义表单', 'flow_id' => '新文件审批流程', 'dev_flow_id' => '升版文件审批流程', 'remark' => '备注', 'creater' => '添加人', 'create_time' => '生效日期', 'update_time' => '取消日期');
     $title = $this->object_array($title);
     $date = date('YmdHsi');
     $filename = "type_list" . $date;
     $path = "../temp/" . $filename . ".csv";
     $file = fopen($path, "w");
     fputcsv($file, $title);
     array_push($data_csv, $title);
     $typeids = array();
     $typenames = array();
     $k = 0;
     for ($i = 0; $i < count($data); $i++) {
         if ($data[$i]['state'] != 1) {
         } else {
             $data[$i]['update_time'] = "";
         }
         $data[$i]['state'] = $data[$i]['state'] == 1 ? true : false;
         $data[$i]['autocode'] = $data[$i]['autocode'] == 1 ? true : false;
         $data[$i]['modelrequire'] = $data[$i]['modelrequire'] == 1 ? true : false;
         $data[$i]['filerequire'] = $data[$i]['filerequire'] == 1 ? '是' : '否';
         // 查询所有审核阶段
         if ($data[$i]['step_ids']) {
             $stepRows = $step->getListByFlow($data[$i]['step_ids']);
             $step_name = "";
             if (count($stepRows) > 0) {
                 $first = true;
                 foreach ($stepRows as $row) {
                     if ($step_name) {
                         $step_name .= "->";
                     }
                     $step_name .= $row['step_name'];
                 }
             }
             $data[$i]['step'] = $step_name;
         }
         if ($data[$i]['dev_step_ids']) {
             $devStepRows = $step->getListByFlow($data[$i]['dev_step_ids']);
             $dev_step_name = "";
             if (count($devStepRows) > 0) {
                 $first = true;
                 foreach ($devStepRows as $row) {
                     if ($dev_step_name) {
                         $dev_step_name .= "->";
                     }
                     $dev_step_name .= $row['step_name'];
                 }
             }
             $data[$i]['dev_step'] = $dev_step_name;
         }
         $data[$i]['resp_emp_name'] = "";
         $data[$i]['resp_dept_name'] = "";
         $data[$i]['grant_dept_name'] = "";
         if ($data[$i]['resp_emp_id']) {
             $emp = $data[$i]['resp_emp_id'];
             $sql = "select GROUP_CONCAT(name) as resp_emp_name from oa_employee_post where id in ({$emp})";
             $db = $step->getAdapter();
             $result = $db->query($sql)->fetchObject();
             $data[$i]['resp_emp_name'] = $result->resp_emp_name;
         }
         if ($data[$i]['resp_dept_id']) {
             $dept = $data[$i]['resp_dept_id'];
             $sql = "select GROUP_CONCAT(name) as resp_dept_name from oa_employee_dept where id in ({$dept})";
             $db = $step->getAdapter();
             $result = $db->query($sql)->fetchObject();
             $data[$i]['resp_dept_name'] = $result->resp_dept_name;
         }
         if ($data[$i]['grant_dept_id']) {
             $dept = $data[$i]['grant_dept_id'];
             $sql = "select GROUP_CONCAT(name) as grant_dept_name from oa_employee_dept where id in ({$dept})";
             $db = $step->getAdapter();
             $result = $db->query($sql)->fetchObject();
             $data[$i]['grant_dept_name'] = $result->grant_dept_name;
         }
         //$data[$i]['record'] = $record->getHis($data[$i]['id'], 'materiel');
         $d = $data[$i];
         $k++;
         $info = array('cnt' => $k, 'id' => $d['id'], 'code' => $d['code'], 'name' => $d['name'], 'fullname' => $d['fullname'], 'category' => $d['category_name'], 'resp_dept_id' => $d['resp_dept_name'], 'resp_emp_id' => $d['resp_emp_name'], 'filerequire' => $d['filerequire'], 'secretlevel' => $d['secretlevel'], 'template' => $d['template'], 'duration' => $d['duration'], 'length' => $d['length'], 'autotype' => $d['auto_description'], 'description' => $d['description'], 'model_id' => $d['model_name'], 'dev_model_id' => $d['dev_model_name'], 'flow_id' => $d['flow_name'], 'dev_flow_id' => $d['dev_flow_name'], 'remark' => $d['remark'], 'creater' => $d['creater'], 'create_time' => $d['create_time'], 'update_time' => $d['update_time']);
         $d = $this->object_array($info);
         array_push($data_csv, $info);
         fputcsv($file, $d);
     }
     fclose($file);
     $this->operate("文件分类导出");
     echo $filename;
     exit;
 }