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); }
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); }