Răsfoiți Sursa

更新生成准考证方法

sandm 3 ani în urmă
părinte
comite
70b4da537f
1 a modificat fișierele cu 54 adăugiri și 25 ștergeri
  1. 54 25
      app/Jobs/TicketJob.php

+ 54 - 25
app/Jobs/TicketJob.php

@@ -106,32 +106,42 @@ class TicketJob implements ShouldQueue
                             $preliminary_end = date("Y-m-d H:i:s",strtotime("+1 days",strtotime($recruit->preliminary_start)));
                         }
                         foreach ($list as $k => $v){
-                            $item = [
-                                'realname' => $v['realname'],
-                                'ex_number' => array_key_exists('ex_number',$ticket_data_list[$v['card']]) ? $ticket_data_list[$v['card']]['ex_number'] : '',
-                                'card' => $v['card'],
-                                'post' => $post_data[$v['post_id']],
-                                'ex_address' => array_key_exists('ex_address',$ticket_data_list[$v['card']]) ? $ticket_data_list[$v['card']]['ex_address'] : '',
-                                'ex_time' => array_key_exists('ex_time',$ticket_data_list[$v['card']]) ? $ticket_data_list[$v['card']]['ex_time'] : '',
-                                'ex_subject' => array_key_exists('ex_subject',$ticket_data_list[$v['card']]) ? $ticket_data_list[$v['card']]['ex_subject'] : '',
-                                'ex_room' => array_key_exists('ex_room',$ticket_data_list[$v['card']]) ? $ticket_data_list[$v['card']]['ex_room'] : '',
-                                'ex_seat' => array_key_exists('ex_seat',$ticket_data_list[$v['card']]) ? $ticket_data_list[$v['card']]['ex_seat'] : '',
-                                'avatar' => $v['avatar']
-                            ];
-                            $ticket = [
-                                'appoint_id' => $v['id'],
-                                'ex_type' => 1,
-                                'ex_number' => $item['ex_number'],
-                                'ex_seat' => $item['ex_seat'],
-                                'ex_room' => $item['ex_room'],
-                                'ex_status' => 0,
-                                'ex_start' => $preliminary_start,
-                                'ex_end' => $preliminary_end
-                            ];
-                            RecruitTicket::create($ticket);
-                            $this->fetch($item,$recruit->pen_ticket_content, 'pen', $recruit);
+                            if(!array_key_exists($v['card'],$ticket_data_list)){
+                                echo "{$v['realname']}_{$v['card']}_{$post_data[$v['post_id']]} 不在准考名单内\r\n";
+                                continue;
+                            }
+                            if(!$this->word_exist($recruit,'pen', ['realname' => $v['realname'],'card' => $v['card'],'post' => $post_data[$v['post_id']]])){
+                                $item = [
+                                    'realname' => $v['realname'],
+                                    'ex_number' => array_key_exists('ex_number',$ticket_data_list[$v['card']]) ? $ticket_data_list[$v['card']]['ex_number'] : '',
+                                    'card' => $v['card'],
+                                    'post' => $post_data[$v['post_id']],
+                                    'ex_address' => array_key_exists('ex_address',$ticket_data_list[$v['card']]) ? $ticket_data_list[$v['card']]['ex_address'] : '',
+                                    'ex_time' => array_key_exists('ex_time',$ticket_data_list[$v['card']]) ? $ticket_data_list[$v['card']]['ex_time'] : '',
+                                    'ex_subject' => array_key_exists('ex_subject',$ticket_data_list[$v['card']]) ? $ticket_data_list[$v['card']]['ex_subject'] : '',
+                                    'ex_room' => array_key_exists('ex_room',$ticket_data_list[$v['card']]) ? $ticket_data_list[$v['card']]['ex_room'] : '',
+                                    'ex_seat' => array_key_exists('ex_seat',$ticket_data_list[$v['card']]) ? $ticket_data_list[$v['card']]['ex_seat'] : '',
+                                    'avatar' => $v['avatar']
+                                ];
+                                $ticket = [
+                                    'appoint_id' => $v['id'],
+                                    'ex_type' => 1,
+                                    'ex_number' => $item['ex_number'],
+                                    'ex_address' => array_key_exists('ex_address',$ticket_data_list[$v['card']]) ? $ticket_data_list[$v['card']]['ex_address'] : '',
+                                    'ex_time' => array_key_exists('ex_time',$ticket_data_list[$v['card']]) ? $ticket_data_list[$v['card']]['ex_time'] : '',
+                                    'ex_seat' => $item['ex_seat'],
+                                    'ex_room' => $item['ex_room'],
+                                    'ex_subject' => array_key_exists('ex_subject',$ticket_data_list[$v['card']]) ? $ticket_data_list[$v['card']]['ex_subject'] : '',
+                                    'ex_status' => 0,
+                                    'ex_start' => $preliminary_start,
+                                    'ex_end' => $preliminary_end
+                                ];
+                                RecruitTicket::create($ticket);
+                                $this->fetch($item,$recruit->pen_ticket_content, 'pen', $recruit);
+                            }
+
                         }
-                        $this->pdf('pen',$recruit);
+                        //$this->pdf('pen',$recruit);
                         Recruit::where('id',$this->recruit_id)->update(['pen_ticket_status' => 2]);
                         break;
                 }
@@ -242,6 +252,25 @@ class TicketJob implements ShouldQueue
 //        shell_exec('libreoffice --headless --convert-to pdf:writer_pdf_Export ' . $word_url . ' --outdir ' . $pdf_url);
     }
 
+    protected function word_exist($recruit,$type,$data)
+    {
+        if($recruit){
+            $name = $recruit->name_en;
+            $date = date("Y-m-d",strtotime($recruit->created_at));
+        }else{
+            $name = uniqid();
+            $date = date("Y-m-d",time());
+        }
+        $filename = $date . '_' . $data['realname'] . '_' . $data['card'] . '_' . $data['post'];
+        if(file_exists(base_path() . "/storage/app/public/recruit/ticket/word/{$date}/{$name}/{$type}/" . $filename . '.docx')){
+            echo $filename . "跳过\r\n";
+            return true;
+        }else{
+            echo $filename . "生成\r\n";
+            return false;
+        }
+    }
+
     protected function pdf($type, $recruit = null){
         if($recruit){
             $name = $recruit->name_en;