Пример #1
0
 function import()
 {
     // 施工员/调度员 四车间
     if (!has_perm(1, 4) && !has_perm(2, 4)) {
         exit;
     }
     $name = $_FILES['files']['name'][0];
     $size = $_FILES['files']['size'][0];
     $tmp_name = $_FILES['files']['tmp_name'][0];
     if (get_file_ext($name) != 'xls') {
         $results['error'] = '对不起,系统只允许上传扩展名为 <strong>xls</strong> 的电子表格文件!';
         $results['is_success'] = false;
     } else {
         if ($size > 2000000) {
             $results['error'] = '对不起,系统只允许上传小于 <strong>2M</strong> 的电子表格文件!';
             $results['is_success'] = false;
         } else {
             if (!empty($tmp_name)) {
                 $data = new \Spreadsheet_Excel_Reader();
                 $data->setOutputEncoding('UTF-8');
                 $cols = 6;
                 /* 每一行有6个单元格 */
                 $rows = array();
                 $data->read($tmp_name);
                 error_reporting(E_ALL ^ E_NOTICE);
                 // 对电子表格的每一行进行循环
                 // 检测到某个单元格不存在时,设定其为空值
                 foreach ($data->sheets[0]['cells'] as $row) {
                     for ($i = 1; $i <= $cols; $i++) {
                         if (!isset($row[$i])) {
                             $row[$i] = '';
                         }
                         // 计划完成时间
                         if ($i == 6 && !empty($row[$i])) {
                             $row[$i] = change_date_style($row[$i]);
                         }
                     }
                     $rows[] = $row;
                 }
                 //debug( $rows );
                 // 导入数据库
                 foreach ($rows as $row) {
                     $prod_num = $row[1];
                     $prod = Production::find_by_num($prod_num);
                     // 当这条零件记录所对应的生产指令 prod 存在时
                     if (!empty($prod)) {
                         $part = new \Model\Part();
                         $part->production_id = $prod->id;
                         $part->num = $row[2];
                         $part->name = $row[3];
                         $part->graphic_num = $row[4];
                         $part->count = $row[5];
                         $part->planned_completion_date = $row[6];
                         $part->user_id = $_SESSION['user_id'];
                         if ($part->is_valid()) {
                             $part->save();
                         } else {
                             // 如果某条导入失败
                             // 记录该条目的零件指令号,零件名称
                             // 以及具体的错误原因
                             $errors = array();
                             foreach ($part->errors as $error) {
                                 $errors[] = $error;
                             }
                             $results['failed_items'][] = array('num' => $part->num, 'name' => $part->name, 'errors' => $errors);
                         }
                     }
                 }
                 //debug( $results['failed_items'] );
                 $results['is_success'] = true;
             }
         }
     }
     echo json_encode($results);
 }
Пример #2
0
 function import()
 {
     // 工装管理员 生产安全部
     if (!has_perm(6, 1)) {
         exit;
     }
     $name = $_FILES['files']['name'][0];
     $size = $_FILES['files']['size'][0];
     $tmp_name = $_FILES['files']['tmp_name'][0];
     if (get_file_ext($name) != 'xls') {
         $results['error'] = '对不起,系统只允许上传扩展名为 <strong>xls</strong> 的电子表格文件!';
         $results['is_success'] = false;
     } else {
         if ($size > 2000000) {
             $results['error'] = '对不起,系统只允许上传小于 <strong>2M</strong> 的电子表格文件!';
             $results['is_success'] = false;
         } else {
             if (!empty($tmp_name)) {
                 $data = new \Spreadsheet_Excel_Reader();
                 $data->setOutputEncoding('UTF-8');
                 $cols = 12;
                 /* 每一行有12个单元格 */
                 $data->read($tmp_name);
                 error_reporting(E_ALL ^ E_NOTICE);
                 // 对电子表格的每一行进行循环
                 // 检测到某个单元格不存在时,设定其为空值
                 $rows = array();
                 //debug( $data->sheets[0]['cells'] );
                 foreach ($data->sheets[0]['cells'] as $row) {
                     for ($i = 1; $i <= $cols; $i++) {
                         if (!isset($row[$i])) {
                             $row[$i] = '';
                         }
                         // 转换部门名称为部门id值
                         if ($i == 6 && !empty($row[$i])) {
                             $row[$i] = get_group_id($row[$i]);
                         }
                         //  转换产品类型为id值
                         if ($i == 10) {
                             $row[$i] = get_type_id($row[$i]);
                         }
                         // 生产数量如果为空,则置0
                         if ($i == 4 && empty($row[$i])) {
                             $row[$i] = 0;
                         }
                         // 计划完成时间
                         if ($i == 5 && !empty($row[$i])) {
                             $row[$i] = change_date_style($row[$i]);
                         }
                     }
                     $rows[] = $row;
                 }
                 // 导入数据库
                 foreach ($rows as $row) {
                     //debug( $row );
                     $prod = new \Model\Production();
                     $prod->num = $row[1];
                     $prod->name = $row[2];
                     $prod->graphic_num = $row[3];
                     $prod->count = $row[4];
                     $prod->planned_completion_date = $row[5];
                     $prod->graphic_src = $row[6];
                     $prod->use_dep = 18;
                     $prod->completion_contact_person = $row[7];
                     $prod->completion_contact_phone = $row[8];
                     $prod->graphic_count = $row[9];
                     $prod->type = $row[10];
                     $prod->project_src = $row[11];
                     $prod->remark = $row[12];
                     $prod->user_id = $_SESSION['user_id'];
                     if ($prod->is_valid()) {
                         $prod->save();
                     } else {
                         //debug( $prod->errors );
                         // 如果某条导入失败
                         // 记录该条目的生产指令号,产品名称
                         // 以及具体的错误原因
                         $errors = array();
                         foreach ($prod->errors as $error) {
                             $errors[] = $error;
                         }
                         $results['failed_items'][] = array('num' => $prod->num, 'name' => $prod->name, 'errors' => $errors);
                     }
                 }
                 //debug( $rows );*/
                 //debug( $rows );
                 //debug( $rows );
                 $results['is_success'] = true;
             }
         }
     }
     echo json_encode($results);
 }