Esempio n. 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;
 }
Esempio n. 2
0
 /**
  * @abstract    根据文件简号和流水号生成最新文件编码
  * @return      null
  */
 private function getCode($type_id, $proj_no)
 {
     $type = new Dcc_Model_Type();
     // 获取流水号长度和自动编码方式
     $data = $type->getLengthAndMethod($type_id);
     $type_code = $data['code'];
     $length = $data['length'];
     $automethod = $data['automethod'];
     $code = new Dcc_Model_Code();
     if (strripos($automethod, 'S') !== false) {
         // 获取产品系列代码
         $seriesData = $code->getAdapter()->query("select code from oa_product_catalog_series where id = (select series_id from oa_product_catalog where id = {$proj_no})")->fetchObject();
         $ymd = $seriesData->code;
         if (!$ymd) {
             $result['result'] = false;
             $result['info'] = "产品型号对应的产品代码不存在!";
             echo Zend_Json::encode($result);
             exit;
         }
     } else {
         // 查询符合当前长度和编码方式的流水号
         $ymd = str_replace('DD', date('d'), str_replace('MM', date('m'), str_replace('YYYY', date('y'), str_replace('9', '', $automethod))));
     }
     if ($length) {
         $prefix = $type_code . $ymd;
         $like = "";
         for ($i = 0; $i < $length; $i++) {
             $like .= "_";
         }
         $mData = $code->getAdapter()->query("select max(code) as maxcode from oa_doc_code where code like '{$prefix}{$like}'")->fetchObject();
         $num = "";
         if ($mData && $mData->maxcode) {
             $max = $mData->maxcode;
             $num = str_replace($prefix, '', $max);
             if (strlen($num) != $length) {
                 $num = "";
                 for ($i = 0; $i < $length; $i++) {
                     $num .= "0";
                 }
             }
         } else {
             for ($i = 0; $i < $length; $i++) {
                 $num .= "0";
             }
         }
         // +1
         $prefix .= substr("1" . $num + 1, 1);
         return $prefix;
     } else {
         return "";
     }
     //        // 真实流水号长度
     ////        $num_length = $length - strlen($ymd);
     //        $num_length = $length;
     //        // 查询条件
     //        $prefix = $type_code . $ymd;
     //        $like = $prefix;
     //        $up = 1;
     //        for ($i = 0; $i < $num_length; $i++) {
     //            if ($num_length != $length) {
     //                $like .= '_';
     //            }
     //            $up *= 10;
     //            if ($i + 1 == $num_length) {
     //                $prefix .= '1';
     //            } else {
     //                $prefix .= '0';
     //            }
     //        }
     //        if ($num_length == $length) {
     //            $like = $prefix . '%';
     //        }
     //        $c = $code->getApply($like);
     //        if ($c) {
     //            $current_code = $c['code'];
     //            $prefix_code = substr($current_code, 0, strlen($current_code) - $num_length);
     //            $real_code = substr($current_code, strlen($prefix_code), $num_length);
     //            $tmp = substr($up + $real_code + 1, 1);
     //            $next_code = $prefix_code . $tmp;
     //            $return_code = $next_code;
     //        } else {
     //            $return_code = $prefix;
     //        }
     //        return $return_code;
 }