Ver código fonte

Merge branch 'master' of http://47.118.43.255:3000/jjhc/jucai

linwu 3 anos atrás
pai
commit
6b77b7f9fb

+ 4 - 1
app/Admin/Controllers/Recruit/RecruitController.php

@@ -586,7 +586,6 @@ class RecruitController extends Controller
                 }
             }
             foreach ($search_data as $k => $v) {
-
                 if ($k == 'realname') {
                     $where[] = [$k, 'like', "%$v%"];
                 } elseif ($k == 'id') {
@@ -616,6 +615,8 @@ class RecruitController extends Controller
             $perpage = 20;
         }
 
+
+
         $list = RecruitAppointInfo::where($where)
             ->join('recruit_post', 'recruit_appoint_info.post_id', '=', 'recruit_post.id', 'left')
             ->join('recruit_ticket', 'recruit_ticket.appoint_id', '=', 'recruit_appoint_info.id','left')
@@ -1813,6 +1814,7 @@ class RecruitController extends Controller
         $list = RecruitAppointInfo::where(['recruit_appoint_info.recruit_id' => $recruit_id,'recruit_appoint_info.audit' => 3, 'recruit_ticket.ex_type' => 1])
             ->join('recruit_ticket', 'recruit_ticket.appoint_id', '=', 'recruit_appoint_info.id','left')
             ->select('recruit_appoint_info.*','recruit_ticket.*')
+            ->orderBy('recruit_ticket.ex_room','asc')
             ->orderBy('recruit_ticket.ex_seat','asc')
             ->get();
         $data = [];
@@ -1839,6 +1841,7 @@ class RecruitController extends Controller
         $list = RecruitAppointInfo::where(['recruit_appoint_info.recruit_id' => $recruit_id,'recruit_appoint_info.audit' => 3, 'recruit_ticket.ex_type' => 1])
             ->join('recruit_ticket', 'recruit_ticket.appoint_id', '=', 'recruit_appoint_info.id','left')
             ->select('recruit_appoint_info.*','recruit_ticket.*')
+            ->orderBy('recruit_ticket.ex_room','asc')
             ->orderBy('recruit_ticket.ex_seat','asc')
             ->get();
         $data = [];

+ 46 - 7
app/Admin/Controllers/Recruit/RecruitTicketController.php

@@ -194,17 +194,56 @@ class RecruitTicketController extends Controller
                     return response()->json(['status' => 0, 'msg' => '请输入每间考试的人员数量'], 200);
                 }
             }
+            if(!array_key_exists('ex_start',$pen) || empty($pen['ex_start'])){
+                return response()->json(['status' => 0, 'msg' => '准考证开启打印时间不能为空'], 200);
+            }
+            if(!array_key_exists('ex_end',$pen) || empty($pen['ex_end'])){
+                return response()->json(['status' => 0, 'msg' => '准考证结束打印时间不能为空'], 200);
+            }
 
             switch ($pen['type']){
                 case '1':
                     //自动生成
-                    $ticket_data = [
-                        'type' => 1,
-                        'auto_each_number' => $pen['auto_each_number']
-                    ];
-                    Recruit::where('id',$data['recruit_id'])->update(['pen_ticket_status' => 1]);
-                    $ticket = new TicketJob($data['recruit_id'],'pen',$ticket_data);
-                    dispatch($ticket);
+                    $list = RecruitAppointInfo::where('recruit_id',$data['recruit_id'])->where('audit',3)->where('pen_audit',-1)->select('id','realname','card','post_id','avatar')->orderBy('post_id','asc')->orderBy('created_at','asc')->get()->toArray();
+                    if(!$list || count($list) == 0){
+                        return response()->json(['status' => 0, 'msg' => '无数据可生成'], 200);
+                    }
+                    //$post_data = RecruitPost::where('recruit_id',$data['recruit_id'])->where('status',1)->selectRaw('id, CONCAT(code," ",name) as post')->pluck('post', 'id');
+                    $list = array_chunk($list,$pen['auto_each_number'],true);
+                    if(count($list) <= 10){
+                        //小于10个队列数直接处理
+                        foreach ($list as $room => $room_list){
+                            if(is_array($room_list)){
+                                $ticket_data = [
+                                    'type' => 1,
+                                    'multiple' => 0,
+                                    'list' => $room_list,
+                                    'room' => $room,
+                                    'ex_start' => $pen['ex_start'],
+                                    'ex_end' => $pen['ex_end']
+                                ];
+                                $ticket = new TicketJob($data['recruit_id'],'pen',$ticket_data);
+                                dispatch($ticket);
+                            }
+                        }
+                    }else{
+                        //划分10个队列任务
+                        $number = count($list) / 10 +1;
+                        $list = array_chunk($list,$number,true);
+                        foreach ($list as $k => $v){
+                            $ticket_data = [
+                                'type' => 1,
+                                'multiple' => 1,
+                                'list' => $v,
+                                'ex_start' => $pen['ex_start'],
+                                'ex_end' => $pen['ex_end']
+                            ];
+                            $ticket = new TicketJob($data['recruit_id'],'pen',$ticket_data);
+                            dispatch($ticket);
+                        }
+                    }
+
+                    Recruit::where('id',$data['recruit_id'])->update(['pen_ticket_status' => 2]);
                     return response()->json(['status' => 1, 'msg' => '准考证生成成功'], 200);
                     break;
                 case '2':

+ 1 - 0
app/Http/Controllers/Web/Recruit/IndexController.php

@@ -122,6 +122,7 @@ class IndexController extends WebBaseController
             $appoint_info->realname = '';
             $appoint_info->card = '';
             $appoint_info->mobile = '';
+            $appoint_info->sex = 0;
         }
 
         $notice = $request->input('notice',0);

+ 47 - 19
app/Jobs/TicketJob.php

@@ -22,6 +22,8 @@ class TicketJob implements ShouldQueue
     private $type;
     private $data;
 
+    public $timeout = 180;
+
     /**
      * Create a new job instance.
      *
@@ -29,6 +31,7 @@ class TicketJob implements ShouldQueue
      */
     public function __construct($recruit_id, $type, $data)
     {
+        $this->queue = "ticket";
         $this->recruit_id = $recruit_id;
         $this->type = $type;
         $this->data = $data;
@@ -53,27 +56,21 @@ class TicketJob implements ShouldQueue
                 switch ($this->data['type']){
                     case '1':
                         //自动生成
-                        $list = RecruitAppointInfo::where('recruit_id',$this->recruit_id)->where('audit',3)->where('pen_audit',-1)->orderBy('post_id','asc')->orderBy('created_at','asc')->get()->toArray();
+                        //$list = RecruitAppointInfo::where('recruit_id',$this->recruit_id)->where('audit',3)->where('pen_audit',-1)->orderBy('post_id','asc')->orderBy('created_at','asc')->get()->toArray();
                         $post_data = RecruitPost::where('recruit_id',$this->recruit_id)->where('status',1)->selectRaw('id, CONCAT(code," ",name) as post')->pluck('post', 'id');
-                        $list = array_chunk($list,$this->data['auto_each_number'],true);
-                        if(!empty($recruit->preliminary_start)){
-                            $preliminary_start = date("Y-m-d H:i:s",strtotime("+1 days",date("Y-m-d",time())));
-                            $preliminary_end = date("Y-m-d H:i:s",strtotime("+5 days",date("Y-m-d",time())));
-                        }else{
-                            $preliminary_start = date("Y-m-d H:i:s",strtotime("-5 days",strtotime($recruit->preliminary_start)));
-                            $preliminary_end = date("Y-m-d H:i:s",strtotime("+1 days",strtotime($recruit->preliminary_start)));
-                        }
-                        foreach ($list as $room => $room_list){
-                            if(is_array($room_list)){
+                        $list = $this->data['list'];//array_chunk($list,$this->data['auto_each_number'],true);
+                        if($this->data['multiple']){
+                            //队列多任务
+                            foreach ($list as $room => $room_list){
                                 foreach ($room_list as $k => $v){
-                                    $seat = $k + 1;
+                                    $seat = ($k%30) + 1;
                                     $item = [
                                         'realname' => $v['realname'],
-                                        'ex_number' => date("Y",time()) . '9' . sprintf("%03d",$v['recruit_id']) . sprintf("%04d",$seat),
+                                        'ex_number' => date("Y",time()) . '0101101' . sprintf("%02d",($room+1)) . sprintf("%02d",$seat),
                                         'card' => $v['card'],
                                         'post' => $post_data[$v['post_id']],
                                         'ex_room' => sprintf("%02d",($room+1)),
-                                        'ex_seat' => sprintf("%03d",$seat),
+                                        'ex_seat' => sprintf("%02d",$seat),
                                         'avatar' => $v['avatar']
                                     ];
                                     $ticket = [
@@ -83,16 +80,44 @@ class TicketJob implements ShouldQueue
                                         'ex_seat' => $item['ex_seat'],
                                         'ex_room' => $item['ex_room'],
                                         'ex_status' => 0,
-                                        'ex_start' => $preliminary_start,
-                                        'ex_end' => $preliminary_end
+                                        'ex_start' => $this->data['ex_start'],
+                                        'ex_end' => $this->data['ex_end']
                                     ];
                                     RecruitTicket::create($ticket);
                                     $this->fetch($item,$recruit->pen_ticket_content, 'pen', $recruit);
                                 }
                             }
+                        }else{
+                            $room = $this->data['room'];
+                            foreach ($list as $k => $v){
+                                $seat = ($k%30) + 1;
+                                $item = [
+                                    'realname' => $v['realname'],
+                                    'ex_number' => date("Y",time()) . '0101101' . sprintf("%02d",($room+1)) . sprintf("%02d",$seat),
+                                    'card' => $v['card'],
+                                    'post' => $post_data[$v['post_id']],
+                                    'ex_room' => sprintf("%02d",($room+1)),
+                                    'ex_seat' => sprintf("%02d",$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' => $this->data['ex_start'],
+                                    'ex_end' => $this->data['ex_end']
+                                ];
+                                RecruitTicket::create($ticket);
+                                $this->fetch($item,$recruit->pen_ticket_content, 'pen', $recruit);
+                            }
+
                         }
-                        $this->pdf('pen',$recruit);
-                        Recruit::where('id',$this->recruit_id)->update(['pen_ticket_status' => 2]);
+
+                        //$this->pdf('pen',$recruit);
+                        //Recruit::where('id',$this->recruit_id)->update(['pen_ticket_status' => 2]);
                         break;
                     case '2':
                         $ticket_data_list = $this->data['list'];
@@ -232,7 +257,10 @@ class TicketJob implements ShouldQueue
         $templateProcessor = new TemplateProcessor(base_path() . $template);
         foreach ($data as $k => $v){
             if($k == 'avatar'){
-                $templateProcessor->setImageValue('avatar',['path' => 'http://www.jucai.gov.cn/'.$v, 'width' => 200, 'height' => 150]);
+                if(file_exists(base_path() . '/public/' . $v)){
+                    $templateProcessor->setImageValue('avatar',['path' => base_path() . '/public/' . $v, 'width' => 200, 'height' => 150]);
+                }
+
             }else{
                 $templateProcessor->setValue($k, $v);
             }

+ 8 - 0
app/Models/RecruitAppointInfo.php

@@ -18,4 +18,12 @@ class RecruitAppointInfo extends Model
         '05' => '民盟盟员', '06' => '民建会员', '07' => '民进会员', '08' => '农工党党员',
         '09' => '致公党党员', '10' => '九三学社社员', '11' => '台盟盟员', '12' => '无党派人士', '13' => '群众',
     ];
+
+    public function posts() {
+        return $this->belongsTo(RecruitTicket::class);
+    }
+
+    public function ticket() {
+        return $this->belongsTo(RecruitTicket::class);
+    }
 }

+ 2 - 2
app/Validators/PersonValidatorRequest.php

@@ -173,11 +173,11 @@ class PersonValidatorRequest extends BaseValidatorRequest
     {
         return [
             'rules'=>[
-                'email'=>['required','email','unique:members,email,'.request('id')],
+                'email'=>['required','email'],
             ],
             'messages'=>[
                 'email.required'=>'请输入邮箱!',
-                'email.unique'=>'邮箱已存在!',
+                //'email.unique'=>'邮箱已存在!',
             ],
         ];
     }

+ 14 - 0
config/horizon.php

@@ -108,6 +108,13 @@ return [
                 'processes' => 1,
                 'tries' => 1,
             ],
+            'jucai-supervisor-1' => [
+                'connection' => 'redis',
+                'queue' => ['ticket'],
+                'balance' => 'auto',
+                'processes' => 10,
+                'tries' => 3,
+            ],
         ],
 
         'local' => [
@@ -132,6 +139,13 @@ return [
                 'processes' => 1,
                 'tries' => 1,
             ],
+            env('APP_NAME', 'jsaix').'-supervisor-4' => [
+                'connection' => 'redis',
+                'queue' => ['ticket'],
+                'balance' => 'auto',
+                'processes' => 10,
+                'tries' => 1,
+            ],
         ],
     ],
 ];

+ 340 - 33
public/themes/default/views/app/recruit/show.blade.php

@@ -137,53 +137,312 @@
     <div id="commit" style="display:none">
         <div style="width: 1000px;margin: 0 auto">
             <p style="margin-left:0;text-indent:0;text-autospace:ideograph-numeric;text-align:center;line-height:37px">
-                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 24px">安全考试承诺书</span>
+                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 24px">考生健康申明卡及安全考试承诺书</span>
             </p>
             <p style="margin-left: 0;text-indent: 0;line-height: 37px;text-align: center">
-                <strong><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">考生姓名:</span></strong><strong><span style="text-decoration:underline;"><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">&nbsp;{{$appoint_info->realname}}&nbsp;</span></span></strong>&nbsp;&nbsp;&nbsp;<strong><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">身份证号:</span></strong><strong><span style="text-decoration:underline;"><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">&nbsp;{{$appoint_info->card}}&nbsp;<span style="font-family:微软雅黑">&nbsp;</span></span></span></strong>&nbsp;&nbsp;<strong><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">手机号码:</span></strong><strong><span style="text-decoration:underline;"><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">&nbsp; {{$appoint_info->mobile}}&nbsp;</span></span></strong>
+                <strong><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">姓名:</span></strong><strong><span style="text-decoration:underline;"><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">&nbsp;{{$appoint_info->realname}}&nbsp;</span></span></strong>&nbsp;&nbsp;<strong><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">性别:</span></strong><strong><span style="text-decoration:underline;"><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">&nbsp;{{$appoint_info->sex == 0 ? '女' : '男'}}&nbsp;</span></span></strong>&nbsp;&nbsp;&nbsp;<strong><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">身份证号:</span></strong><strong><span style="text-decoration:underline;"><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">&nbsp;{{$appoint_info->card}}&nbsp;<span style="font-family:微软雅黑">&nbsp;</span></span></span></strong>&nbsp;&nbsp;<strong><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">有效手机联系方式:</span></strong><strong><span style="text-decoration:underline;"><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">&nbsp; {{$appoint_info->mobile}}&nbsp;</span></span></strong>
             </p>
             <p style="margin-bottom: 0;margin-left: 0;text-indent: 14px;line-height: 37px">
-                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 18px">&nbsp; &nbsp;</span><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">1.本人过去14日内,有出现发热、干咳、乏力、鼻塞、流涕、咽痛、腹泻等症状。</span>
+                <form class="commit_step_1">
+                <table width="100%">
+                    <tbody>
+                        <tr>
+                            <td style="line-height: 37px" width="90%">
+                                1.本人过去14日内,是否出现发热、干咳、乏力、鼻塞、流涕、咽痛、腹泻等症状。
+                            </td>
+                            <td>
+                                <input type="radio"  name="q1" value="1" />是
+                            </td>
+                            <td>
+                                <input type="radio"  name="q1" value="0" />否
+                            </td>
+                        </tr>
+                        <tr>
+                            <td style="line-height: 37px">
+                                2.本人是否属于新冠肺炎确诊或疑似病例、无症状感染者。
+                            </td>
+                            <td>
+                                <input type="radio"  name="q2" value="1" />是
+                            </td>
+                            <td>
+                                <input type="radio"  name="q2" value="0" />否
+                            </td>
+                        </tr>
+                        <tr>
+                            <td style="line-height: 37px">
+                                3.本人过去14日内,是否在居住地有被隔离或曾被隔离且未做核酸检测。
+                            </td>
+                            <td>
+                                <input type="radio"  name="q3" value="1" />是
+                            </td>
+                            <td>
+                                <input type="radio"  name="q3" value="0" />否
+                            </td>
+                        </tr>
+                        <tr>
+                            <td style="line-height: 37px">
+                                4.本人过去14日内,是否从省外中高风险地区入闽。
+                            </td>
+                            <td>
+                                <input type="radio"  name="q4" value="1" />是
+                            </td>
+                            <td>
+                                <input type="radio"  name="q4" value="0" />否
+                            </td>
+                        </tr>
+                        <tr>
+                            <td style="line-height: 37px">
+                                5.本人一个月内是否从境外(含港澳台)入闽。
+                            </td>
+                            <td>
+                                <input type="radio"  name="q5" value="1" />是
+                            </td>
+                            <td>
+                                <input type="radio"  name="q5" value="0" />否
+                            </td>
+                        </tr>
+                        <tr>
+                            <td style="line-height: 37px">
+                                6.本人过去14日内是否与新冠肺炎确诊病例、疑似病例或已发现无症状感染者有接触史。
+                            </td>
+                            <td>
+                                <input type="radio"  name="q6" value="1" />是
+                            </td>
+                            <td>
+                                <input type="radio"  name="q6" value="0" />否
+                            </td>
+                        </tr>
+                        <tr>
+                            <td style="line-height: 37px">
+                                7.本人过去14日内是否与来自境外(含港澳台)人员有接触史。
+                            </td>
+                            <td>
+                                <input type="radio"  name="q7" value="1" />是
+                            </td>
+                            <td>
+                                <input type="radio"  name="q7" value="0" />否
+                            </td>
+                        </tr>
+                        <tr>
+                            <td style="line-height: 37px">
+                                8.过去14日内,本人的工作(实习)岗位是否属于医疗机构医务人员、公共场所服务人员、口岸检疫排查人员、公共交通驾驶员、铁路航空乘务人员、进口冷链一条线从业人员。
+                            </td>
+                            <td>
+                                <input type="radio"  name="q8" value="1" />是
+                            </td>
+                            <td>
+                                <input type="radio"  name="q8" value="0" />否
+                            </td>
+                        </tr>
+                        <tr>
+                            <td style="line-height: 37px">
+                                9.本人“八闽健康码”是否为橙码、红码。
+                            </td>
+                            <td>
+                                <input type="radio"  name="q9" value="1" />是
+                            </td>
+                            <td>
+                                <input type="radio"  name="q9" value="0" />否
+                            </td>
+                        </tr>
+                        <tr>
+                            <td style="line-height: 37px">
+                                10.共同居住家庭成员中是否为新冠肺炎确诊或疑似病例、无症状感染者、密切接触者。
+                            </td>
+                            <td>
+                                <input type="radio"  name="q10" value="1" />是
+                            </td>
+                            <td>
+                                <input type="radio"  name="q10" value="0" />否
+                            </td>
+                        </tr>
+                    </tbody>
+                </table>
+            </form>
             </p>
-            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">
-                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">2.本人属于新冠肺炎确诊病例、无症状感染者。&nbsp;</span>
-            </p>
-            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">
-                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">3.本人过去14日内,在居住地有被隔离或曾被隔离且未做核酸检测。</span>
-            </p>
-            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">
-                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">4.本人过去14日内,从省外中高风险地区入闽。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
+{{--            <p style="margin-bottom: 0;margin-left: 0;text-indent: 14px;line-height: 37px">--}}
+{{--                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 18px">&nbsp; &nbsp;</span><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">1.本人过去14日内,有出现发热、干咳、乏力、鼻塞、流涕、咽痛、腹泻等症状。</span>--}}
+{{--            </p>--}}
+{{--            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">--}}
+{{--                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">2.本人属于新冠肺炎确诊病例、无症状感染者。&nbsp;</span>--}}
+{{--            </p>--}}
+{{--            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">--}}
+{{--                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">3.本人过去14日内,在居住地有被隔离或曾被隔离且未做核酸检测。</span>--}}
+{{--            </p>--}}
+{{--            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">--}}
+{{--                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">4.本人过去14日内,从省外中高风险地区入闽。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>--}}
+{{--            </p>--}}
+{{--            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">--}}
+{{--                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">5.本人疫情期间从境外(含港澳台)入闽。&nbsp;&nbsp;</span>--}}
+{{--            </p>--}}
+{{--            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">--}}
+{{--                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">6.本人过去14日内与新冠肺炎确诊病例、疑似病例或已发现无症状感染者有接触史。</span>--}}
+{{--            </p>--}}
+{{--            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">--}}
+{{--                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">7.本人过去14日内与来自境外(含港澳台)人员有接触史。</span>--}}
+{{--            </p>--}}
+{{--            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">--}}
+{{--                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">8.过去14日内,本人的工作(实习)岗位属于医疗机构医务人员、公共场所服务人员、口岸检疫排查人员、公共交通驾驶员、铁路航空乘务人员、进口冷链食品一线从业人员。</span>--}}
+{{--            </p>--}}
+{{--            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">--}}
+{{--                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">9.本人“八闽健康码”为橙码。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>--}}
+{{--            </p>--}}
+{{--            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">--}}
+{{--                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">10.共同居住家庭成员中有上述1至7的情况。</span><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 18px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>--}}
+{{--            </p>--}}
+            <p style="margin-bottom: 0;margin-left: 0;text-indent: 43px;line-height: 37px">
+                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 20px;font-weight: 700">特别提示:</span><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 20px;font-weight: 700"><span style="font-family:微软雅黑">以上项目中如有“是”的,考试报到时,必须携带考前7天内新型冠状病毒检测阴性的报告。</span></span>
             </p>
             <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">
-                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">5.本人疫情期间从境外(含港澳台)入闽。&nbsp;&nbsp;</span>
+                <strong><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">本人承诺:</span></strong><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">我已如实逐项填报健康申明卡,如因隐瞒或虚假填报引起检疫传染病传播或者有传播严重危险而影响公共安全的后果,本人将承担相应的法律责任,自愿接受《中华人民共和国刑法》《治安管理处罚法》《传染病防治法》和《关于依法惩治妨害新型冠状病毒感染肺炎疫情防控违法犯罪的意见》等法律法规的处罚和制裁。</span>
             </p>
-            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">
-                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">6.本人过去14日内与新冠肺炎确诊病例、疑似病例或已发现无症状感染者有接触史。</span>
+            <p style="margin-top:8px;margin-left:0;text-indent:0;text-autospace:ideograph-numeric;text-align:center;line-height:37px">
+                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 18px"><input type="checkbox" class="agree_commit" /> 我已知晓上述内容并承诺遵守</span>
             </p>
-            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">
-                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">7.本人过去14日内与来自境外(含港澳台)人员有接触史。</span>
+{{--            <p style="margin-top:8px;margin-left:0;text-indent:0;text-autospace:ideograph-numeric;text-align:center;line-height:37px">--}}
+{{--                <button class="print" disabled="disabled">打印准考证</button>--}}
+{{--            </p>--}}
+            <p>
+                <br/>
             </p>
-            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">
-                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">8.过去14日内,本人的工作(实习)岗位属于医疗机构医务人员、公共场所服务人员、口岸检疫排查人员、公共交通驾驶员、铁路航空乘务人员、进口冷链食品一线从业人员。</span>
+        </div>
+
+    </div>
+    <div id="commit1" style="display:none">
+        <div style="width: 1000px;margin: 0 auto">
+            <p style="margin-left:0;text-indent:0;text-autospace:ideograph-numeric;text-align:center;line-height:37px">
+                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 24px">考生报考承诺书</span>
             </p>
-            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">
-                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">9.本人“八闽健康码”为橙码。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
+            <p style="margin-left: 0;text-indent: 0;line-height: 37px;text-align: center">
+                <strong><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">姓名:</span></strong><strong><span style="text-decoration:underline;"><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">&nbsp;{{$appoint_info->realname}}&nbsp;</span></span></strong>&nbsp;&nbsp;<strong><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">性别:</span></strong><strong><span style="text-decoration:underline;"><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">&nbsp;{{$appoint_info->sex == 0 ? '女' : '男'}}&nbsp;</span></span></strong>&nbsp;&nbsp;&nbsp;<strong><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">身份证号:</span></strong><strong><span style="text-decoration:underline;"><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">&nbsp;{{$appoint_info->card}}&nbsp;<span style="font-family:微软雅黑">&nbsp;</span></span></span></strong>&nbsp;&nbsp;<strong><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">有效手机联系方式:</span></strong><strong><span style="text-decoration:underline;"><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">&nbsp; {{$appoint_info->mobile}}&nbsp;</span></span></strong>
             </p>
-            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">
-                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">10.共同居住家庭成员中有上述1至7的情况。</span><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 18px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
+            <p style="margin-bottom: 0;margin-left: 0;text-indent: 14px;line-height: 37px">
+            <form class="commit_step_2">
+            <table width="100%">
+                <tbody>
+                <tr>
+                    <td style="line-height: 37px" width="90%">
+                        1.本人是否为曾因犯罪受过刑事处罚或曾被开除公职的人员;
+                    </td>
+                    <td>
+                        <input type="radio"  name="q11" value="1" />是
+                    </td>
+                    <td>
+                        <input type="radio"  name="q11" value="0" />否
+                    </td>
+                </tr>
+                <tr>
+                    <td style="line-height: 37px">
+                        2.本人是否为被开除中国共产党党籍的人员;
+                    </td>
+                    <td>
+                        <input type="radio"  name="q12" value="1" />是
+                    </td>
+                    <td>
+                        <input type="radio"  name="q12" value="0" />否
+                    </td>
+                </tr>
+                <tr>
+                    <td style="line-height: 37px">
+                        3.本人是否为在近三年内被认定有人事考试作弊行为的人员;
+                    </td>
+                    <td>
+                        <input type="radio"  name="q13" value="1" />是
+                    </td>
+                    <td>
+                        <input type="radio"  name="q13" value="0" />否
+                    </td>
+                </tr>
+                <tr>
+                    <td style="line-height: 37px">
+                        4.本人是否为被依法列为失信联合惩戒对象的人员;
+                    </td>
+                    <td>
+                        <input type="radio"  name="q14" value="1" />是
+                    </td>
+                    <td>
+                        <input type="radio"  name="q14" value="0" />否
+                    </td>
+                </tr>
+                <tr>
+                    <td style="line-height: 37px">
+                        5.本人是否为现役军人;
+                    </td>
+                    <td>
+                        <input type="radio"  name="q15" value="1" />是
+                    </td>
+                    <td>
+                        <input type="radio"  name="q15" value="0" />否
+                    </td>
+                </tr>
+                <tr>
+                    <td style="line-height: 37px">
+                        6.本人是否为普通高等院校全日制在读的非应届毕业生;
+                    </td>
+                    <td>
+                        <input type="radio"  name="q16" value="1" />是
+                    </td>
+                    <td>
+                        <input type="radio"  name="q16" value="0" />否
+                    </td>
+                </tr>
+                <tr>
+                    <td style="line-height: 37px">
+                        7.本人是否为法律法规规章规定不得报考的其他情形的人员。
+                    </td>
+                    <td>
+                        <input type="radio"  name="q17" value="1" />是
+                    </td>
+                    <td>
+                        <input type="radio"  name="q17" value="0" />否
+                    </td>
+                </tr>
+                </tbody>
+            </table>
+            </form>
             </p>
+            {{--            <p style="margin-bottom: 0;margin-left: 0;text-indent: 14px;line-height: 37px">--}}
+            {{--                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 18px">&nbsp; &nbsp;</span><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">1.本人过去14日内,有出现发热、干咳、乏力、鼻塞、流涕、咽痛、腹泻等症状。</span>--}}
+            {{--            </p>--}}
+            {{--            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">--}}
+            {{--                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">2.本人属于新冠肺炎确诊病例、无症状感染者。&nbsp;</span>--}}
+            {{--            </p>--}}
+            {{--            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">--}}
+            {{--                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">3.本人过去14日内,在居住地有被隔离或曾被隔离且未做核酸检测。</span>--}}
+            {{--            </p>--}}
+            {{--            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">--}}
+            {{--                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">4.本人过去14日内,从省外中高风险地区入闽。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>--}}
+            {{--            </p>--}}
+            {{--            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">--}}
+            {{--                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">5.本人疫情期间从境外(含港澳台)入闽。&nbsp;&nbsp;</span>--}}
+            {{--            </p>--}}
+            {{--            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">--}}
+            {{--                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">6.本人过去14日内与新冠肺炎确诊病例、疑似病例或已发现无症状感染者有接触史。</span>--}}
+            {{--            </p>--}}
+            {{--            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">--}}
+            {{--                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">7.本人过去14日内与来自境外(含港澳台)人员有接触史。</span>--}}
+            {{--            </p>--}}
+            {{--            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">--}}
+            {{--                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">8.过去14日内,本人的工作(实习)岗位属于医疗机构医务人员、公共场所服务人员、口岸检疫排查人员、公共交通驾驶员、铁路航空乘务人员、进口冷链食品一线从业人员。</span>--}}
+            {{--            </p>--}}
+            {{--            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">--}}
+            {{--                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">9.本人“八闽健康码”为橙码。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>--}}
+            {{--            </p>--}}
+            {{--            <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">--}}
+            {{--                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">10.共同居住家庭成员中有上述1至7的情况。</span><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 18px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>--}}
+            {{--            </p>--}}
             <p style="margin-bottom: 0;margin-left: 0;text-indent: 43px;line-height: 37px">
-                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">特别提示:</span><span style="font-family: 微软雅黑;color: rgb(255, 0, 0);letter-spacing: 0;font-size: 16px"><span style="font-family:微软雅黑">存在以上情形的,考试报到时应主动提交</span><span style="font-family:微软雅黑">7天内(6月12日后)核酸检测阴性报告单。</span></span>
+                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 20px;font-weight: 700">特别提示:</span><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 20px;font-weight: 700"><span style="font-family:微软雅黑">以上项目中如有“是”的,不得参加考试。</span></span>
             </p>
             <p style="margin-bottom: 0;margin-left: 0;text-indent: 32px;line-height: 37px">
-                <strong><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">本人承诺:</span></strong><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">如因隐瞒或虚假填报引起检疫传染病传播或者有传播严重危险而影响公共安全的后果,本人将承担相应的法律责任,自愿接受《中华人民共和国刑法》《治安管理处罚法》《传染病防治法》和《关于依法惩治妨害新型冠状病毒感染肺炎疫情防控违法犯罪的意见》等法律法规的处罚和制裁。</span>
+                <strong><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">本人承诺:</span></strong><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 16px">本人保证所提交的报名信息和相关证明材料真实、准确、有效,如提供虚假信息和证明材料,本人愿承担一切责任。</span>
             </p>
             <p style="margin-top:8px;margin-left:0;text-indent:0;text-autospace:ideograph-numeric;text-align:center;line-height:37px">
-                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 18px"><input type="checkbox" class="agree_commit" /> 我已知晓上述内容并承诺遵守</span>
+                <span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 18px"><input type="checkbox" class="agree_commit1" /> 我已知晓上述内容并承诺遵守</span>
             </p>
-{{--            <p style="margin-top:8px;margin-left:0;text-indent:0;text-autospace:ideograph-numeric;text-align:center;line-height:37px">--}}
-{{--                <button class="print" disabled="disabled">打印准考证</button>--}}
-{{--            </p>--}}
+            {{--            <p style="margin-top:8px;margin-left:0;text-indent:0;text-autospace:ideograph-numeric;text-align:center;line-height:37px">--}}
+            {{--                <button class="print" disabled="disabled">打印准考证</button>--}}
+            {{--            </p>--}}
             <p>
                 <br/>
             </p>
@@ -228,6 +487,7 @@
             }
         }
 
+
         $(function () {
 
             //右侧悬浮
@@ -335,17 +595,64 @@
                             loading: true,
                             header: false,
                             border: false,
-                            btns: ['打印准考证','取消'],
+                            btns: ['下一份','取消'],
                             yes: function(){
-                                if($($(".agree_commit")[1]).prop('checked')){
-                                    window.location.href = "{!! route('recruit.pen_ticket',['recruit_id'=>$recruit->id,'uid'=>$uid]) !!}";
-                                }else{
-                                    alert('请阅读并承诺遵守《安全考试承诺书》');
+                                qsDialog.setCloseDialog(false);
+                                var total = 0;
+                                $.each($($(".commit_step_1")[1]).find("input"),function(){
+                                    if(this.checked){
+                                        total++;
+                                    }
+                                });
+                                if(total != 10){
+                                    disapperTooltip("remind", "请勾选以上项目!");
+                                    return false;
+                                }
+                                if(!$($(".agree_commit")[1]).prop('checked')){
+                                    disapperTooltip("remind", "请阅读并承诺遵守《考生健康申明卡及安全考试承诺书》!");
+                                    //alert('请阅读并承诺遵守《考生健康申明卡及安全考试承诺书》');
+                                    return false;
                                 }
+                                qsDialog.setCloseDialog(true);
+                                var dialog_1 = $(this).dialog({
+                                    loading: true,
+                                    header: false,
+                                    border: false,
+                                    btns: ['打印准考证','取消'],
+                                    yes: function(){
+                                        dialog_1.setCloseDialog(false);
+                                        var must = 1,total = 0;
+                                        $.each($($(".commit_step_2")[1]).find("input"),function(){
+                                            if(this.checked){
+                                                if($(this).val() == 1){
+                                                    must = 0;
+                                                }
+                                                total++;
+                                            }
+                                        });
+                                        if(total != 7){
+                                            disapperTooltip("remind", "请勾选以上项目!");
+                                            return false;
+                                        }
+                                        if(!must){
+                                            disapperTooltip("remind", "不符合参加考试条件,请检查!");
+                                            return false;
+                                        }
+                                        if(!$($(".agree_commit1")[1]).prop('checked')){
+                                            disapperTooltip("remind", "请阅读并承诺遵守《考生报考承诺书》!");
+                                            return false;
+                                        }
+                                        dialog_1.setCloseDialog(true);
+                                        window.location.href = "{!! route('recruit.pen_ticket',['recruit_id'=>$recruit->id,'uid'=>$uid]) !!}";
+                                    }
+                                });
+                                dialog_1.setContent($('#commit1').html())
 
                             }
                         });
                         qsDialog.setContent($('#commit').html());
+
+
                     }
                 } else {
                     var qsDialog = $(this).dialog({

BIN
public/word/example.docx


+ 29 - 0
resources/views/admin/recruit/ajax_ticket.blade.php

@@ -81,6 +81,26 @@
                                         </label>
                                     </div>
                                 </div>
+                                <div class="form-group  ">
+                                    <label for="apply_start" class="col-sm-2 astrisk control-label">打印时间段</label>
+                                    <div class="col-sm-8">
+                                        <div class="row" style="width: 470px">
+                                            <div class="col-lg-6">
+                                                <div class="input-group">
+                                                    <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
+                                                    <input type="text" name="pen[ex_start]" value="" class="form-control ex_start" style="width: 200px"></div>
+                                            </div>
+
+                                            <div class="col-lg-6">
+                                                <div class="input-group">
+                                                    <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
+                                                    <input type="text" name="pen[ex_end]" value="" class="form-control ex_end" style="width: 200px"></div>
+                                            </div>
+                                        </div>
+
+
+                                    </div>
+                                </div>
                                 <div id="pen_autoCreate">
                                     <div class="form-group">
                                         <label for="auto_each_number" class="col-sm-2 control-label">每间考场人数</label>
@@ -234,5 +254,14 @@
                 $("#"+ type +"_fetchCreate").css('display','none');
             }
         });
+
+        $('.ex_start').datetimepicker({"format":"YYYY-MM-DD HH:mm:ss","locale":"zh-CN"});
+        $('.ex_end').datetimepicker({"format":"YYYY-MM-DD HH:mm:ss","locale":"zh-CN","useCurrent":false});
+        $(".ex_start").on("dp.change", function (e) {
+            $('.ex_end').data("DateTimePicker").minDate(e.date);
+        });
+        $(".ex_end").on("dp.change", function (e) {
+            $('.ex_start').data("DateTimePicker").maxDate(e.date);
+        });
     });
 </script>

+ 1 - 1
resources/views/admin/recruit/seat_sticker.blade.php

@@ -40,7 +40,7 @@
                     @foreach($v as $key => $val)
                         <div class="item">
                             <div class="avatar">
-                                <img src="{{$val['avatar']}}" width="170" />
+                                <img src="{{$val['avatar']}}" width="170" height="247"/>
                             </div>
                             <div class="seat">
                                 座位号:{{$val['seat']}}

+ 1 - 1
resources/views/admin/recruit/sign_table.blade.php

@@ -40,7 +40,7 @@
             @foreach($v as $key => $val)
                 <div class="item">
                     <div class="avatar">
-                        <img src="{{$val['avatar']}}" width="170" />
+                        <img src="{{$val['avatar']}}" width="170" height="247" />
                     </div>
                     <div class="info">
                         {{$val['seat']}}&nbsp;&nbsp;{{$val['realname']}}