|
@@ -240,132 +240,134 @@ class Collection extends Backend
|
|
|
if($fault_right_list[2]['answer_right']==1){
|
|
|
$fault_three_score = 0;
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- //根据故障部位 数组
|
|
|
- $fault_arr = [$fault_right_list[0]['fault_id'],$fault_right_list[1]['fault_id'],$fault_right_list[2]['fault_id']];
|
|
|
-
|
|
|
- //根据故障部位查找,匹配的排除方法
|
|
|
- $paichu_arr = Report::where(['bw_id'=>['in',$fault_arr]])->column('pc_id');
|
|
|
- //根据故障部位查找,匹配可能原因
|
|
|
- $yy_arr = Report::where(['bw_id'=>['in',$fault_arr]])->column('yy_id');
|
|
|
-
|
|
|
- //查找故障现象 数组
|
|
|
- $partent_fault_id = Fault::where(['fault_id'=>['in',$fault_arr]])->column('parent_fault_id');
|
|
|
-
|
|
|
- //获取数组
|
|
|
- $other_report = json_decode($params['other_report'],true);
|
|
|
- if(!empty($other_report)){
|
|
|
- foreach ($other_report as $key => $em){
|
|
|
- //故障现象
|
|
|
- $xianxian_arr[] = $em['xx_id'];
|
|
|
- //故障部位
|
|
|
- $buwei_arr[] = $em['bw_id'];
|
|
|
- //可能原因
|
|
|
- $yuanyin_arr[] = $em['yy_id'];
|
|
|
- //排除方法
|
|
|
- $fangfa_arr[] = $em['pc_id'];
|
|
|
- }
|
|
|
+ $fault_right_list = Db::name('real_exam_fault')->where(['exam_id'=>$ids,'flag'=>1])->select();
|
|
|
+ //根据故障部位 数组
|
|
|
+ $fault_arr = [$fault_right_list[0]['fault_id'],$fault_right_list[1]['fault_id'],$fault_right_list[2]['fault_id']];
|
|
|
+
|
|
|
+ //根据故障部位查找,匹配的排除方法
|
|
|
+ $paichu_arr = Report::where(['bw_id'=>['in',$fault_arr]])->column('pc_id');
|
|
|
+ //根据故障部位查找,匹配可能原因
|
|
|
+ $yy_arr = Report::where(['bw_id'=>['in',$fault_arr]])->column('yy_id');
|
|
|
+
|
|
|
+ //查找故障现象 数组
|
|
|
+ $partent_fault_id = Fault::where(['fault_id'=>['in',$fault_arr]])->column('parent_fault_id');
|
|
|
+
|
|
|
+ //获取数组
|
|
|
+ $other_report = json_decode($params['other_report'],true);
|
|
|
+ if(!empty($other_report)){
|
|
|
+ foreach ($other_report as $key => $em){
|
|
|
+ //故障现象
|
|
|
+ $xianxian_arr[] = $em['xx_id'];
|
|
|
+ //故障部位
|
|
|
+ $buwei_arr[] = $em['bw_id'];
|
|
|
+ //可能原因
|
|
|
+ $yuanyin_arr[] = $em['yy_id'];
|
|
|
+ //排除方法
|
|
|
+ $fangfa_arr[] = $em['pc_id'];
|
|
|
}
|
|
|
-
|
|
|
- //故障现象 分数 start
|
|
|
- foreach ($partent_fault_id as $k1 =>$t){
|
|
|
- if(!in_array($t,$xianxian_arr)){
|
|
|
- $xianxian_score = 1+$xianxian_score;
|
|
|
- $xianxian_content[] = [
|
|
|
- 'cx_id'=>$t,
|
|
|
- 'cx_type'=>'少写',
|
|
|
- 'cx_name'=>Fault::where(['fault_id'=>$t])->value('name'),
|
|
|
- ];
|
|
|
- }
|
|
|
+ }
|
|
|
+
|
|
|
+ //故障现象 分数 start
|
|
|
+ foreach ($partent_fault_id as $k1 =>$t){
|
|
|
+ if(!in_array($t,$xianxian_arr)){
|
|
|
+ $xianxian_score = 1+$xianxian_score;
|
|
|
+ $xianxian_content[] = [
|
|
|
+ 'cx_id'=>$t,
|
|
|
+ 'cx_type'=>'少写',
|
|
|
+ 'cx_name'=>Fault::where(['fault_id'=>$t])->value('name'),
|
|
|
+ ];
|
|
|
}
|
|
|
- foreach ($xianxian_arr as $k2 =>$t2){
|
|
|
- if(!in_array($t2,$partent_fault_id)){
|
|
|
- $xianxian_score = 1+$xianxian_score;
|
|
|
- $xianxian_content[] = [
|
|
|
- 'cx_id'=>$t2,
|
|
|
- 'cx_type'=>'错写',
|
|
|
- 'cx_name'=>Fault::where(['fault_id'=>$t2])->value('name'),
|
|
|
- ];
|
|
|
- }
|
|
|
+ }
|
|
|
+ foreach ($xianxian_arr as $k2 =>$t2){
|
|
|
+ if(!in_array($t2,$partent_fault_id)){
|
|
|
+ $xianxian_score = 1+$xianxian_score;
|
|
|
+ $xianxian_content[] = [
|
|
|
+ 'cx_id'=>$t2,
|
|
|
+ 'cx_type'=>'错写',
|
|
|
+ 'cx_name'=>Fault::where(['fault_id'=>$t2])->value('name'),
|
|
|
+ ];
|
|
|
}
|
|
|
- //故障现象 end
|
|
|
+ }
|
|
|
+ //故障现象 end
|
|
|
|
|
|
|
|
|
- //故障部位 start
|
|
|
- foreach ($fault_arr as $k11 =>$t11){
|
|
|
- if(!in_array($t11,$buwei_arr)){
|
|
|
- $buwei_score = 1+$buwei_score;
|
|
|
- $buwei_content[] = [
|
|
|
- 'cx_id'=>$t11,
|
|
|
- 'cx_type'=>'少写',
|
|
|
- 'cx_name'=>Fault::where(['fault_id'=>$t11])->value('name'),
|
|
|
- ];
|
|
|
- }
|
|
|
+ //故障部位 start
|
|
|
+ foreach ($fault_arr as $k11 =>$t11){
|
|
|
+ if(!in_array($t11,$buwei_arr)){
|
|
|
+ $buwei_score = 1+$buwei_score;
|
|
|
+ $buwei_content[] = [
|
|
|
+ 'cx_id'=>$t11,
|
|
|
+ 'cx_type'=>'少写',
|
|
|
+ 'cx_name'=>Fault::where(['fault_id'=>$t11])->value('name'),
|
|
|
+ ];
|
|
|
}
|
|
|
- foreach ($buwei_arr as $k12 =>$t12){
|
|
|
- if(!empty($t12) && !in_array($t12,$fault_arr)){
|
|
|
- //错写
|
|
|
- $buwei_score = 1+$buwei_score;
|
|
|
- $buwei_content[] = [
|
|
|
- 'cx_id'=>$t12,
|
|
|
- 'cx_type'=>'错写',
|
|
|
- 'cx_name'=>Fault::where(['fault_id'=>$t12])->value('name'),
|
|
|
- ];
|
|
|
- }
|
|
|
+ }
|
|
|
+ foreach ($buwei_arr as $k12 =>$t12){
|
|
|
+ if(!empty($t12) && !in_array($t12,$fault_arr)){
|
|
|
+ //错写
|
|
|
+ $buwei_score = 1+$buwei_score;
|
|
|
+ $buwei_content[] = [
|
|
|
+ 'cx_id'=>$t12,
|
|
|
+ 'cx_type'=>'错写',
|
|
|
+ 'cx_name'=>Fault::where(['fault_id'=>$t12])->value('name'),
|
|
|
+ ];
|
|
|
}
|
|
|
- //故障部位 end
|
|
|
-
|
|
|
-
|
|
|
- //排除方法 start
|
|
|
- //循环固定的排除方法,匹配作答的排除方法
|
|
|
- foreach ($paichu_arr as $k21 =>$t21){
|
|
|
- if(!in_array($t21,$fangfa_arr)){
|
|
|
- $fangfa_score = 1+$fangfa_score;
|
|
|
- $fangfa_content[] = [
|
|
|
- 'cx_id'=>$t21,
|
|
|
- 'cx_type'=>'少写',
|
|
|
- 'cx_name'=>Fault::where(['fault_id'=>$t21])->value('name'),
|
|
|
- ];
|
|
|
- }
|
|
|
+ }
|
|
|
+ //故障部位 end
|
|
|
+
|
|
|
+
|
|
|
+ //排除方法 start
|
|
|
+ //循环固定的排除方法,匹配作答的排除方法
|
|
|
+ foreach ($paichu_arr as $k21 =>$t21){
|
|
|
+ if(!in_array($t21,$fangfa_arr)){
|
|
|
+ $fangfa_score = 1+$fangfa_score;
|
|
|
+ $fangfa_content[] = [
|
|
|
+ 'cx_id'=>$t21,
|
|
|
+ 'cx_type'=>'少写',
|
|
|
+ 'cx_name'=>Fault::where(['fault_id'=>$t21])->value('name'),
|
|
|
+ ];
|
|
|
}
|
|
|
- //循环作答的排除方法,,匹配固定的排除方法
|
|
|
- foreach ($fangfa_arr as $k22 =>$t22){
|
|
|
- if(!empty($t22) && !in_array($t22,$paichu_arr)){
|
|
|
- $fangfa_score = 1+$fangfa_score;
|
|
|
- $fangfa_content[] = [
|
|
|
- 'cx_id'=>$t22,
|
|
|
- 'cx_type'=>'错写',
|
|
|
- 'cx_name'=>Fault::where(['fault_id'=>$t22])->value('name'),
|
|
|
- ];
|
|
|
- }
|
|
|
+ }
|
|
|
+ //循环作答的排除方法,,匹配固定的排除方法
|
|
|
+ foreach ($fangfa_arr as $k22 =>$t22){
|
|
|
+ if(!empty($t22) && !in_array($t22,$paichu_arr)){
|
|
|
+ $fangfa_score = 1+$fangfa_score;
|
|
|
+ $fangfa_content[] = [
|
|
|
+ 'cx_id'=>$t22,
|
|
|
+ 'cx_type'=>'错写',
|
|
|
+ 'cx_name'=>Fault::where(['fault_id'=>$t22])->value('name'),
|
|
|
+ ];
|
|
|
}
|
|
|
- //排除方法 end
|
|
|
-
|
|
|
- //可能原因 start
|
|
|
- //循环固定的可能原因,匹配作答的可能原因
|
|
|
- foreach ($yy_arr as $k31 =>$t31){
|
|
|
- if(!in_array($t31,$yuanyin_arr)){
|
|
|
- $yuanyin_socre = 1+$yuanyin_socre;
|
|
|
- $yuanyin_content[] = [
|
|
|
- 'cx_id'=>$t31,
|
|
|
- 'cx_type'=>'少写',
|
|
|
- 'cx_name'=>Fault::where(['fault_id'=>$t31])->value('name'),
|
|
|
- ];
|
|
|
- }
|
|
|
+ }
|
|
|
+ //排除方法 end
|
|
|
+
|
|
|
+ //可能原因 start
|
|
|
+ //循环固定的可能原因,匹配作答的可能原因
|
|
|
+ foreach ($yy_arr as $k31 =>$t31){
|
|
|
+ if(!in_array($t31,$yuanyin_arr)){
|
|
|
+ $yuanyin_socre = 1+$yuanyin_socre;
|
|
|
+ $yuanyin_content[] = [
|
|
|
+ 'cx_id'=>$t31,
|
|
|
+ 'cx_type'=>'少写',
|
|
|
+ 'cx_name'=>Fault::where(['fault_id'=>$t31])->value('name'),
|
|
|
+ ];
|
|
|
}
|
|
|
- //循环作答的排除方法,,匹配固定的排除方法
|
|
|
- foreach ($yuanyin_arr as $k32 =>$t32){
|
|
|
- if(!empty($t32) && !in_array($t32,$yy_arr)){
|
|
|
- $yuanyin_socre = 1+$yuanyin_socre;
|
|
|
- $yuanyin_content[] = [
|
|
|
- 'cx_id'=>$t32,
|
|
|
- 'cx_type'=>'错写',
|
|
|
- 'cx_name'=>Fault::where(['fault_id'=>$t32])->value('name'),
|
|
|
- ];
|
|
|
- }
|
|
|
+ }
|
|
|
+ //循环作答的排除方法,,匹配固定的排除方法
|
|
|
+ foreach ($yuanyin_arr as $k32 =>$t32){
|
|
|
+ if(!empty($t32) && !in_array($t32,$yy_arr)){
|
|
|
+ $yuanyin_socre = 1+$yuanyin_socre;
|
|
|
+ $yuanyin_content[] = [
|
|
|
+ 'cx_id'=>$t32,
|
|
|
+ 'cx_type'=>'错写',
|
|
|
+ 'cx_name'=>Fault::where(['fault_id'=>$t32])->value('name'),
|
|
|
+ ];
|
|
|
}
|
|
|
- //可能原因 end
|
|
|
}
|
|
|
+ //可能原因 end
|
|
|
+
|
|
|
$weixiu_score = $xianxian_score+$yuanyin_socre+$buwei_score+$fangfa_score;
|
|
|
if($weixiu_score>15){
|
|
|
$weixiu_score = 15;
|