|
@@ -751,6 +751,35 @@ class Exams extends Backend
|
|
|
->order('user_username asc')
|
|
|
->paginate($limit);
|
|
|
|
|
|
+ foreach ($list as $k=>$v){
|
|
|
+
|
|
|
+ $fault_list = Db::name('real_exam_fault')->where(['exam_id'=>$v['exam_id'],'flag'=>1])->select();
|
|
|
+ $list[$k]['fault_name_one'] = Fault::where('fault_id',$fault_list[0]['fault_id'])->value('name');
|
|
|
+ $list[$k]['fault_name_two'] = Fault::where('fault_id',$fault_list[1]['fault_id'])->value('name');
|
|
|
+ $list[$k]['fault_name_three'] = Fault::where('fault_id',$fault_list[2]['fault_id'])->value('name');
|
|
|
+
|
|
|
+ $score = Db::name('real_exam_score')->where('exam_id', $v['exam_id'])->find();
|
|
|
+ $list[$k]['fault_score'] = 75-$score['fault_one_score']-$score['fault_two_score']-$score['fault_three_score'];
|
|
|
+ $list[$k]['fault_one_score'] = $score['fault_one_score'];
|
|
|
+ $list[$k]['fault_two_score'] = $score['fault_two_score'];
|
|
|
+ $list[$k]['fault_three_score'] = $score['fault_three_score'];
|
|
|
+
|
|
|
+
|
|
|
+ $list[$k]['weixiu_score'] = 10-$score['overtime_score']??0;
|
|
|
+ $list[$k]['overtime_score'] = $score['overtime_score']??0;
|
|
|
+
|
|
|
+ $list[$k]['other_jielun'] = !empty($score['other_jielun']) ? json_decode($score['other_jielun'],true):[];
|
|
|
+
|
|
|
+ $list[$k]['user_depart_name'] = Department::where('id',$v['user_depart_id'])->value('name');
|
|
|
+
|
|
|
+
|
|
|
+ $diffInSeconds = $v['endtime'] - $v['starttime']; // 两个时间戳之间的差异(秒)
|
|
|
+ $minutes = floor($diffInSeconds / 60); // 计算分钟数
|
|
|
+ $seconds = $diffInSeconds % 60; // 计算剩余的秒数
|
|
|
+ $list[$k]['shijian'] = $minutes.'分'.$seconds.'秒';
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
$languageEnGb = new \PhpOffice\PhpWord\Style\Language(\PhpOffice\PhpWord\Style\Language::ZH_CN);
|
|
|
$phpWord = new \PhpOffice\PhpWord\PhpWord();
|
|
|
$phpWord->getSettings()->setThemeFontLang($languageEnGb);
|
|
@@ -760,101 +789,162 @@ class Exams extends Backend
|
|
|
$fancyTableFirstRowStyle = array('borderBottomSize' => 0, 'borderBottomColor' => '#ffffff', 'bgColor' => '000000');
|
|
|
$fancyTableCellStyle = array('valign' => 'center');
|
|
|
$fancyTableFontStyle = array('bold' => true,'alignment' => \PhpOffice\PhpWord\SimpleType\JcTable::CENTER);
|
|
|
+ $fancyTableFontStyle1 = array('bold' => true,'alignment' => \PhpOffice\PhpWord\SimpleType\JcTable::START);
|
|
|
$phpWord-> addTableStyle($fancyTableStyleName, $fancyTableStyle, $fancyTableFirstRowStyle);
|
|
|
|
|
|
//中间学员的成绩信息 start
|
|
|
foreach ($list as $k=> $it) {
|
|
|
$section_string = 'section'.$k;
|
|
|
$section_string = $phpWord->addSection([
|
|
|
- 'pageSizeH' => \PhpOffice\PhpWord\Shared\Converter::inchToTwip(12.7),
|
|
|
- 'pageSizeW' => \PhpOffice\PhpWord\Shared\Converter::inchToTwip(8.3)
|
|
|
+// 'pageSizeH' => \PhpOffice\PhpWord\Shared\Converter::inchToTwip(12.7),
|
|
|
+// 'pageSizeW' => \PhpOffice\PhpWord\Shared\Converter::inchToTwip(8.3)
|
|
|
]);
|
|
|
$section_string->addTextBreak(1);
|
|
|
$table = $section_string->addTable($fancyTableStyleName);
|
|
|
$section_string -> addText($it['user_nickname'].'考试详细',[
|
|
|
- 'size' => 16,
|
|
|
+ 'size' => 14,
|
|
|
'name'=>'黑体',
|
|
|
],['alignment' => \PhpOffice\PhpWord\SimpleType\Jc::CENTER,
|
|
|
'spaceAfter' => 500, //标题后部预留长度
|
|
|
'spaceBefore' => 0]);
|
|
|
|
|
|
- $TableContentStyle1 = array('size'=>10,'name'=>'宋体','lineHeight' => 1.5);
|
|
|
+ $TableContentStyle1 = array('size'=>10,'name'=>'宋体','lineHeight' => 2);
|
|
|
+ $TableContentStyle11 = array('size'=>9,'name'=>'宋体');
|
|
|
+ $TableContentStyle2 = array('size'=>10,'name'=>'宋体','lineHeight' => 1.5);
|
|
|
|
|
|
$table = $section_string->addTable($fancyTableStyleName);
|
|
|
$table->addRow();
|
|
|
- $table->addCell(2000, $fancyTableCellStyle)->addText("学员账号",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
- $table->addCell(2000, $fancyTableCellStyle)->addText($it['user_username'],$TableContentStyle1, $fancyTableFontStyle);
|
|
|
- $table->addCell(2000, $fancyTableCellStyle)->addText("学员姓名",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
- $table->addCell(2000, $fancyTableCellStyle)->addText($it['user_nickname'],$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table->addCell(4000, $fancyTableCellStyle)->addText("学员账号",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table->addCell(5000, $fancyTableCellStyle)->addText($it['user_username'],$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table->addCell(4000, $fancyTableCellStyle)->addText("学员姓名",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table->addCell(5000, $fancyTableCellStyle)->addText($it['user_nickname'],$TableContentStyle1, $fancyTableFontStyle);
|
|
|
$table->addCell(2000, $fancyTableCellStyle)->addText("区队",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
- $table->addCell(2000, $fancyTableCellStyle)->addText($it['user_nickname'],$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table->addCell(3000, $fancyTableCellStyle)->addText($it['user_depart_name'],$TableContentStyle1, $fancyTableFontStyle);
|
|
|
|
|
|
$table->addRow();
|
|
|
- $table->addCell(2000, $fancyTableCellStyle)->addText("考试开始时间",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
- $table->addCell(2000, $fancyTableCellStyle)->addText("详解",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
- $table->addCell(2000, $fancyTableCellStyle)->addText("考试结束时间",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
- $table->addCell(2000, $fancyTableCellStyle)->addText("详解",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
- $table->addCell(2000, $fancyTableCellStyle)->addText("成绩",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
- $table->addCell(2000, $fancyTableCellStyle)->addText("详解",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
+ $table->addCell(4000, $fancyTableCellStyle)->addText("考试开始时间",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table->addCell(5000, $fancyTableCellStyle)->addText(date('Y/m/d H:i:s',$it['starttime']),$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table->addCell(4000, $fancyTableCellStyle)->addText("考试结束时间",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table->addCell(5000, $fancyTableCellStyle)->addText(date('Y/m/d H:i:s',$it['endtime']),$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table->addCell(2000, $fancyTableCellStyle)->addText("成绩",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table->addCell(3000, $fancyTableCellStyle)->addText($it['total_score'],$TableContentStyle1, $fancyTableFontStyle);
|
|
|
|
|
|
$table2 = $section_string->addTable($fancyTableStyleName);
|
|
|
$table2->addRow();
|
|
|
- $table2->addCell(2500, $fancyTableCellStyle)->addText("序号",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
- $table2->addCell(2500, $fancyTableCellStyle)->addText("评分标准",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
- $table2->addCell(2000, $fancyTableCellStyle)->addText("扣分",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
- $table2->addCell(2500, $fancyTableCellStyle)->addText("维修情况",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
- $table2->addCell(2500, $fancyTableCellStyle)->addText("题目",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
+ $table2->addCell(3000, $fancyTableCellStyle)->addText("序号",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table2->addCell(7000, $fancyTableCellStyle)->addText("评分标准",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table2->addCell(3000, $fancyTableCellStyle)->addText("扣分",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table2->addCell(3000, $fancyTableCellStyle)->addText("维修情况",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table2->addCell(7000, $fancyTableCellStyle)->addText("题目",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
|
|
|
$table3 = $section_string->addTable($fancyTableStyleName);
|
|
|
$table3->addRow();
|
|
|
- $table3->addCell(12000, $fancyTableCellStyle)->addText("一.故障排除(75分)(本题得分:0)",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
+ $table3->addCell(23000, $fancyTableCellStyle)->addText("一.故障排除(75分)(本题得分:0)",$TableContentStyle1, $fancyTableFontStyle1);
|
|
|
|
|
|
//4
|
|
|
$table4 = $section_string->addTable($fancyTableStyleName);
|
|
|
$table4->addRow();
|
|
|
+ $table4->addCell(3000, $fancyTableCellStyle)->addText("1",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table4->addCell(7000, $fancyTableCellStyle)->addText("故障一未排除扣25分",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table4->addCell(3000, $fancyTableCellStyle)->addText($it['fault_one_score'],$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ if($it['fault_one_score']==0){
|
|
|
+ $fault_one_result = '已排除';
|
|
|
+ }else{
|
|
|
+ $fault_one_result = '未排除';
|
|
|
+ }
|
|
|
+ $table4->addCell(3000, $fancyTableCellStyle)->addText($fault_one_result,$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table4->addCell(7000, $fancyTableCellStyle)->addText($it['fault_name_one'],$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+
|
|
|
+ $table4->addRow();
|
|
|
+ $table4->addCell(3000, $fancyTableCellStyle)->addText("2",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table4->addCell(7000, $fancyTableCellStyle)->addText("故障二未排除扣25分",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table4->addCell(3000, $fancyTableCellStyle)->addText($it['fault_two_score'],$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ if($it['fault_two_score']==0){
|
|
|
+ $fault_two_result = '已排除';
|
|
|
+ }else{
|
|
|
+ $fault_two_result = '未排除';
|
|
|
+ }
|
|
|
+ $table4->addCell(3000, $fancyTableCellStyle)->addText($fault_two_result,$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table4->addCell(7000, $fancyTableCellStyle)->addText($it['fault_name_two'],$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+
|
|
|
+ $table4->addRow();
|
|
|
+ $table4->addCell(3000, $fancyTableCellStyle)->addText("3",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table4->addCell(7000, $fancyTableCellStyle)->addText("故障三未排除扣25分",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table4->addCell(3000, $fancyTableCellStyle)->addText($it['fault_three_score'],$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ if($it['fault_three_score']==0){
|
|
|
+ $fault_three_result = '已排除';
|
|
|
+ }else{
|
|
|
+ $fault_three_result = '未排除';
|
|
|
+ }
|
|
|
+ $table4->addCell(3000, $fancyTableCellStyle)->addText($fault_three_result,$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table4->addCell(7000, $fancyTableCellStyle)->addText($it['fault_name_three'],$TableContentStyle1, $fancyTableFontStyle);
|
|
|
|
|
|
|
|
|
$table5 = $section_string->addTable($fancyTableStyleName);
|
|
|
$table5->addRow();
|
|
|
- $table5->addCell(12000, $fancyTableCellStyle)->addText("二.修理报告表(15分)(本题得分:0)",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
+ $table5->addCell(23000, $fancyTableCellStyle)->addText("二.修理报告表(15分)(本题得分:".$it['fault_score'].")",$TableContentStyle1, $fancyTableFontStyle1);
|
|
|
$table5->addRow();
|
|
|
- $table5->addCell(12000, $fancyTableCellStyle)->addText("学员答作答情况",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
+ $table5->addCell(23000, $fancyTableCellStyle)->addText("学员答作答情况",$TableContentStyle1, $fancyTableFontStyle1);
|
|
|
+
|
|
|
|
|
|
$table6 = $section_string->addTable($fancyTableStyleName);
|
|
|
$table6->addRow();
|
|
|
- $table6->addCell(600, $fancyTableCellStyle)->addText("序号",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
- $table6->addCell(2000, $fancyTableCellStyle)->addText("故障现象",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
- $table6->addCell(2000, $fancyTableCellStyle)->addText("可能原因",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
- $table6->addCell(2000, $fancyTableCellStyle)->addText("故障部位",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
- $table6->addCell(2000, $fancyTableCellStyle)->addText("排除方法",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
- $table6->addCell(2000, $fancyTableCellStyle)->addText("扣分原因",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
- $table6->addCell(1400, $fancyTableCellStyle)->addText("扣分情况",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
+ $table6->addCell(1000, $fancyTableCellStyle)->addText("序号",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table6->addCell(3000, $fancyTableCellStyle)->addText("故障现象",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table6->addCell(5000, $fancyTableCellStyle)->addText("可能原因",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table6->addCell(3000, $fancyTableCellStyle)->addText("故障部位",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table6->addCell(3000, $fancyTableCellStyle)->addText("排除方法",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table6->addCell(5000, $fancyTableCellStyle)->addText("扣分原因",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table6->addCell(3000, $fancyTableCellStyle)->addText("扣分情况",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
|
|
|
//7
|
|
|
+ $table7 = $section_string->addTable($fancyTableStyleName);
|
|
|
+ foreach ($it['other_jielun'] as $k1 => $v1) {
|
|
|
+ $table7->addRow();
|
|
|
+ $table7->addCell(1000, $fancyTableCellStyle)->addText(++$v1['xh_id'],$TableContentStyle11, $fancyTableFontStyle);
|
|
|
+ $table7->addCell(3000, $fancyTableCellStyle)->addText($v1['xx_name'],$TableContentStyle11, $fancyTableFontStyle);
|
|
|
+ $table7->addCell(5000, $fancyTableCellStyle)->addText($v1['yy_name'],$TableContentStyle11, $fancyTableFontStyle);
|
|
|
+ $table7->addCell(3000, $fancyTableCellStyle)->addText($v1['bw_name'],$TableContentStyle11, $fancyTableFontStyle);
|
|
|
+ $table7->addCell(3000, $fancyTableCellStyle)->addText($v1['pc_name'],$TableContentStyle11, $fancyTableFontStyle);
|
|
|
+ $kf_yy = '';
|
|
|
+ if(!empty($v1['cx_name'])){
|
|
|
+ foreach ($v1['cx_name'] as $k2 => $v2) {
|
|
|
+ if($v1['gzxz_id'] == $v2['gzxz_id']){
|
|
|
+ $kf_yy = $v2['cx_type'].":".$v2['cx_name'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ $kf_yy = $v1['cx_type'];
|
|
|
+ }
|
|
|
+ $table7->addCell(5000, $fancyTableCellStyle)->addText($kf_yy,$TableContentStyle11, $fancyTableFontStyle);
|
|
|
+ $table7->addCell(3000, $fancyTableCellStyle)->addText($v1['cx_score']??0,$TableContentStyle11, $fancyTableFontStyle);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
$table8 = $section_string->addTable($fancyTableStyleName);
|
|
|
$table8->addRow();
|
|
|
- $table8->addCell(12000, $fancyTableCellStyle)->addText("故障现象少写或错写1条扣5分;可能原因少写或错写1条扣1分;故障部位少写或错写1条扣1分;排除方法少写或错写1条扣1分。",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
+ $table8->addCell(23000, $fancyTableCellStyle)->addText("故障现象少写或错写1条扣5分;可能原因少写或错写1条扣1分;故障部位少写或错写1条扣1分;排除方法少写或错写1条扣1分。",$TableContentStyle2, $fancyTableFontStyle1);
|
|
|
$table8->addRow();
|
|
|
- $table8->addCell(12000, $fancyTableCellStyle)->addText("三.维修时间(10分)(本题得分:0)",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
+ $table8->addCell(23000, $fancyTableCellStyle)->addText("三.维修时间(10分)(本题得分:".$it['weixiu_score'].")",$TableContentStyle1, $fancyTableFontStyle1);
|
|
|
|
|
|
|
|
|
$table9 = $section_string->addTable($fancyTableStyleName);
|
|
|
$table9->addRow();
|
|
|
- $table9->addCell(4500, $fancyTableCellStyle)->addText("按没超过1分钟扣1分的比例扣分",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
- $table9->addCell(3000, $fancyTableCellStyle)->addText("考试时长:291分55秒",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
- $table9->addCell(1500, $fancyTableCellStyle)->addText("扣分:10",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
+ $table9->addCell(8500, $fancyTableCellStyle)->addText("按没超过1分钟扣1分的比例扣分",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table9->addCell(8500, $fancyTableCellStyle)->addText("考试时长:".$it['shijian'],$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table9->addCell(6000, $fancyTableCellStyle)->addText("扣分:".$it['overtime_score'],$TableContentStyle1, $fancyTableFontStyle);
|
|
|
|
|
|
|
|
|
$table10 = $section_string->addTable($fancyTableStyleName);
|
|
|
$table10->addRow();
|
|
|
- $table10->addCell(6000, $fancyTableCellStyle)->addText("五.成绩",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
- $table10->addCell(6000, $fancyTableCellStyle)->addText("",['name'=>'宋体','size'=>10], $fancyTableFontStyle);
|
|
|
+ $table10->addCell(11500, $fancyTableCellStyle)->addText("五.成绩",$TableContentStyle1, $fancyTableFontStyle);
|
|
|
+ $table10->addCell(11500, $fancyTableCellStyle)->addText($it['total_score'],$TableContentStyle1, $fancyTableFontStyle);
|
|
|
}
|
|
|
//中间学员的成绩信息 end
|
|
|
|
|
|
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
|
|
|
|
|
|
- $file_name = $doc_name.'.docx';//''uploads/'.date('Ymd').'/'.$userInfo['grade'].'年级'.$userInfo['classed'].'班级'.$userInfo['nickname'].'.docx';
|
|
|
+ $file_name = 'uploads/'.date('Ymd').'/'.$doc_name.'.docx';
|
|
|
|
|
|
$tmpPath ='uploads/'.date('Ymd').'/';
|
|
|
if(!file_exists($tmpPath)){
|