瀏覽代碼

村务材料补登

sandm 3 年之前
父節點
當前提交
d3cb8cb869

+ 88 - 0
app/Admin/Controllers/Recruit/RecruitController.php

@@ -14,6 +14,7 @@ use App\Models\RecruitAppointInfo;
 use App\Models\RecruitSubjoin;
 use App\Models\RecruitAppointLog;
 use App\Models\RecruitTicketField;
+use App\Models\RecruitSupplement;
 use dir\Dir;
 use Encore\Admin\Grid;
 use Encore\Admin\Form;
@@ -851,6 +852,33 @@ class RecruitController extends Controller
         return response(['data' => view('admin.recruit.ajax_audit')->with($view_data)->render(), 'status' => 1], '200');
     }
 
+    /**
+     * 材料补登审核
+     * @param Request $request
+     * @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response|mixed|\Psr\Container\ContainerInterface|\Symfony\Component\HttpFoundation\Response|\think\Response
+     * @throws \Throwable
+     */
+    public function ajax_supplement(Request $request)
+    {
+        //Permission::check('recruit_ajax_supplement');
+        $ids = $request->ids;
+        $view_data['ids'] = $ids;
+        $info = RecruitSupplement::where('appoint_id',$ids)->first();
+        if(!$info){
+            $view_data['switch'] = 0;
+        }else{
+            $view_data['switch'] = 1;
+            $info->identification = json_decode($info->identification);
+            $info->household_register = json_decode($info->household_register);
+            $info->education_certification = json_decode($info->education_certification);
+            $info->family_planning = json_decode($info->family_planning);
+            $info->manage = json_decode($info->manage);
+            $view_data['info'] = $info;
+        }
+
+        return response(['data' => view('admin.recruit.ajax_supplement')->with($view_data)->render(), 'status' => 1], '200');
+    }
+
     /**
      * 报名记录审核处理
      * @param Request $request
@@ -1051,6 +1079,66 @@ class RecruitController extends Controller
         return response()->json(['status' => 1, 'msg' => '操作成功!', 'data' => 'ok']);
     }
 
+    /**
+     * 材料补登审核处理
+     * @param Request $request
+     * @return \Illuminate\Http\JsonResponse
+     */
+    public function supplement(Request $request)
+    {
+        $ids = $request->ids;
+        if (empty($ids)) {
+            return response()->json(['status' => 0, 'msg' => '请选择审核记录!'], '200');
+        }
+        $status = $request->status;
+        $reason = $request->reason;
+        if(empty($status)){
+            return response()->json(['status' => 0, 'msg' => '请选择审核状态!'], '200');
+        }
+        if($status == -1 && empty($reason)){
+            return response()->json(['status' => 0, 'msg' => '请输入审核原因!'], '200');
+        }
+        if($status == -1){
+            $info = RecruitSupplement::where('appoint_id', $ids)->first();
+            $appointinfo = RecruitAppointInfo::where('id', $ids)->first();
+            //写日志
+            $log = [
+                'type'  =>  2,
+                'step' => 1,
+                'appoint_id' => $ids,
+                'uid' => Admin::user()->id,
+                'log' => '材料补登审核未通过,原因是:'.$reason
+            ];
+            RecruitAppointLog::create($log);
+            $info->status = -1;
+            $info->msg = $reason;
+            $info->save();
+            $this->smsService->sendSms($appointinfo->mobile,'sms_recruit_register_error',array('reason'=>$reason));
+
+        }
+        if($status == 1){
+            $reason = $reason ?? '符合报考条件';
+            $info = RecruitSupplement::where('appoint_id', $ids)->first();
+            $appointinfo = RecruitAppointInfo::where('id', $ids)->first();
+            //写日志
+            $log = [
+                'type'  =>  2,
+                'step' => 1,
+                'appoint_id' => $ids,
+                'uid' => Admin::user()->id,
+                'log' => '审核通过,原因是:' . $reason
+            ];
+            RecruitAppointLog::create($log);
+            $info->status = 1;
+            $info->msg = $reason;
+            $info->save();
+            $this->smsService->sendSms($appointinfo->mobile,'sms_recruit_register_success',array('reason'=>$reason));
+
+        }
+
+        return response()->json(['status' => 1, 'msg' => '操作成功!', 'data' => 'ok']);
+    }
+
     public function fetchWord(Request $request)
     {
         $recruit_id = $request->recruit_id;

+ 2 - 0
app/Admin/routes.php

@@ -436,6 +436,8 @@ Route::group([
         $router->get('out_zip', 'RecruitController@out_zip')->name('recruit.out_zip');
         $router->get('out_excel', 'RecruitController@out_excel')->name('recruit.out_excel');
         $router->post('appoint_audit', 'RecruitController@appoint_audit')->name('recruit.appoint_audit');
+        $router->get('ajax_supplement', 'RecruitController@ajax_supplement')->name('recruit.ajax_supplement');
+        $router->post('supplement', 'RecruitController@supplement')->name('recruit.supplement');
         $router->post('modify_appoint_info', 'RecruitController@modify_appoint_info')->name('recruit.modify_appoint_info');
         $router->get('seat_sticker', 'RecruitController@seat_sticker')->name('recruit.seat_sticker');
         $router->get('sign_table', 'RecruitController@sign_table')->name('recruit.sign_table');

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

@@ -9,6 +9,7 @@ use Illuminate\Http\Request;
 use App\Models\Recruit;
 use App\Services\Recruit\RecruitService;
 use App\Models\RecruitAppointBasic;
+use App\Models\RecruitSupplement;
 use App\Models\RecruitPost;
 use App\Models\RecruitAppointInfo;
 use think\Route;
@@ -1006,6 +1007,10 @@ class IndexController extends WebBaseController
         return $user;
     }
 
+    /**
+     * 检查用户基本信息
+     * @return array
+     */
     public function checkUserBasicInfo()
     {
         $user = $this->getUser();
@@ -1025,6 +1030,10 @@ class IndexController extends WebBaseController
 
     }
 
+    /**
+     * 个人中心招考页面
+     * @return array|\Illuminate\Contracts\View\Factory|\Illuminate\View\View|mixed|\think\response\View
+     */
     public function person_recruit()
     {
         $user = auth('web-member')->user();
@@ -1037,6 +1046,11 @@ class IndexController extends WebBaseController
         return view('app.person.recruit')->with(['list' => $list,'total' => count($list)]);
     }
 
+    /**
+     * 招考信息基础页
+     * @param Request $request
+     * @return array|\Illuminate\Contracts\View\Factory|\Illuminate\View\View|mixed|\think\response\View
+     */
     public function recruit_info(Request $request)
     {
         $user = auth('web-member')->user();
@@ -1096,6 +1110,11 @@ class IndexController extends WebBaseController
         ]);
     }
 
+    /**
+     * 保存招考信息
+     * @param RecruitValidatorRequest $request
+     * @return \Illuminate\Http\JsonResponse
+     */
     public function saveRecruitInfo(RecruitValidatorRequest $request)
     {
         $user = auth('web-member')->user();
@@ -1126,6 +1145,11 @@ class IndexController extends WebBaseController
 
     }
 
+    /**
+     * 笔试准考证
+     * @param Request $request
+     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
+     */
     public function pen_ticket(Request $request)
     {
         $user = $this->getUser();
@@ -1172,6 +1196,11 @@ class IndexController extends WebBaseController
         }
     }
 
+    /**
+     * 审核准考证
+     * @param Request $request
+     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
+     */
     public function check_ticket(Request $request)
     {
         $user = $this->getUser();
@@ -1218,6 +1247,11 @@ class IndexController extends WebBaseController
         }
     }
 
+    /**
+     * 面试准考证
+     * @param Request $request
+     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
+     */
     public function face_ticket(Request $request)
     {
         $user = $this->getUser();
@@ -1265,6 +1299,11 @@ class IndexController extends WebBaseController
         }
     }
 
+    /**
+     * 复试准考证
+     * @param Request $request
+     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
+     */
     public function reexamine_ticket(Request $request)
     {
         $user = $this->getUser();
@@ -1312,4 +1351,258 @@ class IndexController extends WebBaseController
         }
     }
 
+    /**
+     * 材料补登
+     * @param Request $request
+     */
+    public function material_supplement(Request $request)
+    {
+        $user = $this->getUser();
+        if (!empty($user)) {
+            $uid = $user->id;
+        } else {
+            return redirect(route('login'));
+        }
+
+        //招考id
+        $id = $request->input('id', 0);
+        if (!$id) {
+            return $this->showMessage('请选择报名项目!', route('home'), true, '上一页', '3');
+        }
+        $recruit = Recruit::find($id);
+        if(!$recruit['status'] && !$user->recruit_test){
+            return $this->showMessage('抱歉,该项目状态不正确,请联系客服!', route('recruit.show',array('id',$recruit['id'])), true, '上一页', '3');
+        }
+
+        $appoint_info = RecruitAppointInfo::where('uid',$uid)->where('recruit_id',$id)->first();
+        if(!$appoint_info){
+            return $this->showMessage('抱歉,您没有报名,无需补登!', route('recruit.show',array('id',$recruit['id'])), true, '上一页', '3');
+        }
+        if(!$appoint_info->pen_audit != 1){
+            return $this->showMessage('抱歉,您无需补登!', route('recruit.show',array('id',$recruit['id'])), true, '上一页', '3');
+        }
+
+        $info = RecruitSupplement::where('appoint_id',$appoint_info->id)->first()->toArray();
+        if(!$info){
+            $info = [
+                'appoint_id' => $appoint_info->id,
+                'identification' => '',
+                'household_register' => '',
+                'education_certification' => '',
+                'family_planning' => '',
+                'manage' => '',
+                'status' => -1
+            ];
+        }else{
+            if(json_decode($info['identification'])){
+                $identification = json_decode($info['identification'],true);
+                foreach ($identification as $k => $v){
+                    if(array_key_exists('response',$v)){
+                        $identification[$k]['url'] = $v['response']['path'];
+                    }
+                }
+            }else{
+                $identification = [];
+            }
+            $info['identification'] = $identification;
+
+            if(json_decode($info['household_register'])){
+                $household_register = json_decode($info['household_register'],true);
+                foreach ($household_register as $k => $v){
+                    if(array_key_exists('response',$v)){
+                        $household_register[$k]['url'] = $v['response']['path'];
+                    }
+                }
+            }else{
+                $household_register = [];
+            }
+            $info['household_register'] = $household_register;
+
+            if(json_decode($info['education_certification'])){
+                $education_certification = json_decode($info['education_certification'],true);
+                foreach ($education_certification as $k => $v){
+                    if(array_key_exists('response',$v)){
+                        $education_certification[$k]['url'] = $v['response']['path'];
+                    }
+                }
+            }else{
+                $education_certification = [];
+            }
+            $info['education_certification'] = $education_certification;
+
+            if(json_decode($info['family_planning'])){
+                $family_planning = json_decode($info['family_planning'],true);
+                foreach ($family_planning as $k => $v){
+                    if(array_key_exists('response',$v)){
+                        $family_planning[$k]['url'] = $v['response']['path'];
+                    }
+                }
+            }else{
+                $family_planning = [];
+            }
+            $info['family_planning'] = $family_planning;
+
+            if(json_decode($info['manage'])){
+                $manage = json_decode($info['manage'],true);
+                foreach ($manage as $k => $v){
+                    if(array_key_exists('response',$v)){
+                        $manage[$k]['url'] = $v['response']['path'];
+                    }
+                }
+            }else{
+                $manage = [];
+            }
+            $info['manage'] = $manage;
+
+        }
+
+        $view_data['info'] = json_encode($info);
+        $view_data['title'] = $recruit->company;
+        return view('app.recruit.supplement',$view_data);
+    }
+
+    public function save_supplement(Request $request)
+    {
+        $user = $this->getUser();
+        if (!empty($user)) {
+            $uid = $user->id;
+        } else {
+            return redirect(route('login'));
+        }
+        $appoint_id = $request->input('appoint_id');
+        $appoint_info = RecruitAppointInfo::where('uid',$uid)->where('recruit_id',5)->where('id',$appoint_id)->first();
+        if(!$appoint_info){
+            return ['status' => 0, 'msg' => '抱歉,找不到您要补登的报名记录!'];
+        }
+        $info = RecruitSupplement::where('appoint_id',$appoint_id)->first();
+        if($info){
+            if($info->status == 1){
+                return ['status' => 0, 'msg' => '材料已审核通过,不允许修改'];
+            }
+            if($info->status == 0){
+                return ['status' => 0, 'msg' => '材料审核中,不允许修改'];
+            }
+            //身份证明
+            $identification = $request->input('identification');
+            if(is_array($identification)){
+                //删除掉没有成功返回路径的图片
+                foreach ($identification as $k => $v){
+                    if(!array_key_exists('response',$v)){
+                        unset($identification[$k]);
+                    }
+                }
+            }
+            $info->identification = json_encode($identification);
+            //户口簿
+            $household_register = $request->input('household_register');
+            if(is_array($household_register)){
+                //删除掉没有成功返回路径的图片
+                foreach ($household_register as $k => $v){
+                    if(!array_key_exists('response',$v)){
+                        unset($household_register[$k]);
+                    }
+                }
+            }
+            $info->household_register = json_encode($household_register);
+            //学信网
+            $education_certification = $request->input('education_certification');
+            if(is_array($education_certification)){
+                //删除掉没有成功返回路径的图片
+                foreach ($education_certification as $k => $v){
+                    if(!array_key_exists('response',$v)){
+                        unset($education_certification[$k]);
+                    }
+                }
+            }
+            $info->education_certification = json_encode($education_certification);
+            //计生
+            $family_planning = $request->input('family_planning');
+            if(is_array($family_planning)){
+                //删除掉没有成功返回路径的图片
+                foreach ($family_planning as $k => $v){
+                    if(!array_key_exists('response',$v)){
+                        unset($family_planning[$k]);
+                    }
+                }
+            }
+            $info->family_planning = json_encode($family_planning);
+            //综治
+            $manage = $request->input('manage');
+            if(is_array($manage)){
+                //删除掉没有成功返回路径的图片
+                foreach ($manage as $k => $v){
+                    if(!array_key_exists('response',$v)){
+                        unset($manage[$k]);
+                    }
+                }
+            }
+            $info->manage = json_encode($manage);
+            $info->status = 0;
+            $info->save();
+            return ['status' => 1, 'msg' => '提交成功', 'data' => ''];
+        }else{
+            $data['appoint_id'] = $appoint_id;
+            //身份证明
+            $identification = $request->input('identification');
+            if(is_array($identification)){
+                //删除掉没有成功返回路径的图片
+                foreach ($identification as $k => $v){
+                    if(!array_key_exists('response',$v)){
+                        unset($identification[$k]);
+                    }
+                }
+            }
+            $data['identification'] = json_encode($identification);
+            //户口簿
+            $household_register = $request->input('household_register');
+            if(is_array($household_register)){
+                //删除掉没有成功返回路径的图片
+                foreach ($household_register as $k => $v){
+                    if(!array_key_exists('response',$v)){
+                        unset($household_register[$k]);
+                    }
+                }
+            }
+            $data['household_register'] = json_encode($household_register);
+            //学信网
+            $education_certification = $request->input('education_certification');
+            if(is_array($education_certification)){
+                //删除掉没有成功返回路径的图片
+                foreach ($education_certification as $k => $v){
+                    if(!array_key_exists('response',$v)){
+                        unset($education_certification[$k]);
+                    }
+                }
+            }
+            $data['education_certification'] = json_encode($education_certification);
+            //计生
+            $family_planning = $request->input('family_planning');
+            if(is_array($family_planning)){
+                //删除掉没有成功返回路径的图片
+                foreach ($family_planning as $k => $v){
+                    if(!array_key_exists('response',$v)){
+                        unset($family_planning[$k]);
+                    }
+                }
+            }
+            $data['family_planning'] = json_encode($family_planning);
+            //综治
+            $manage = $request->input('manage');
+            if(is_array($manage)){
+                //删除掉没有成功返回路径的图片
+                foreach ($manage as $k => $v){
+                    if(!array_key_exists('response',$v)){
+                        unset($manage[$k]);
+                    }
+                }
+            }
+            $data['manage'] = json_encode($manage);
+            $data['status'] = 0;
+            $result = RecruitSupplement::create($data);
+            return ['status' => 1, 'msg' => '提交成功', 'data' => ''];
+        }
+
+        return ['status' => 0, 'msg' => 'test', 'data' => ''];
+    }
+
 }

+ 5 - 0
public/themes/default/views/app/recruit/show.blade.php

@@ -82,6 +82,11 @@
                         <li style="background:#7e6740;float: left;margin-bottom:10px;">报名人数统计</li>
                     </a>
                 @endif
+                @if($recruit->id == 5)
+                    <a href="{{ route('recruit.material_supplement',array('id'=>$recruit->id)) }}" >
+                        <li style="background:#EFC1B3;float: left;margin-bottom:10px;">材料补登</li>
+                    </a>
+                @endif
                 <div style="clear: both;"></div>
             </ul>
             <div class="content_right_notice" style="margin-top: 20px;">

+ 48 - 0
resources/views/admin/recruit/appoint_list.blade.php

@@ -353,6 +353,9 @@
                                                 <button class='btn btn-primary btn-xs business ButCompared' data-param="{{$v->id}}" data-url="{{ route('recruit.getUserinfo') }}" style="margin-bottom: 10px" >查看报名信息</button>
                                                 <button class='btn btn-primary btn-xs appoint_audit' data-param="{{$v->id}}" style="margin-bottom: 10px">报名审核</button>
                                                 <button class='btn btn-primary btn-xs fetch_word' data-rid="{{$v->recruit_id}}" data-aid="{{$v->id}}" style="margin-bottom: 10px">生成word简历</button>
+                                                @if($recruit->id == 5)
+                                                    <button class='btn btn-primary btn-xs supplement' data-param="{{$v->id}}" style="margin-bottom: 10px">补登材料审核</button>
+                                                @endif
                                             </td>
                                         </tr>
                                     @endforeach
@@ -510,12 +513,57 @@
             });
         }
     };
+    //材料补登
+    this.supplement = function(type = 0){
+        var ids = show(type);
+        if(!ids){
+            return false;
+        }
+        if (ids !== false) {
+            var qsDialog = $(this).dialog({
+                title: '材料补登审核',
+                loading: true,
+                showFooter: false,
+                yes: function() {
+                    $('.J_btnyes').val('发送中...');
+                    $.post("{{ route('recruit.supplement') }}", $('#J_interviewWrap').serialize(), function(result) {
+                        if (result.status == 1) {
+                            disapperTooltip('success', result.msg);
+                            setTimeout(function() {
+                                $.pjax.reload('#pjax-container');
+                                qsDialog.hide(true);
+                            }, 2000);
+                        } else {
+                            $('.J_btnyes').val('确定');
+                            disapperTooltip('remind', result.msg);
+                        }
+                    }, 'json');
+                }
+            });
+            qsDialog.setCloseDialog(false);
+            var recruit_id = $(this).attr('recruit_id');
+            $.getJSON("/ST3IXxKlOa4eGEv0eTw0CfORI9444Mgj/recruit/ajax_supplement", {
+                recruit_id: recruit_id,
+                ids: ids
+            }, function(result) {
+                if (result.status == 1) {
+                    qsDialog.setContent(result.data);
+                    qsDialog.showFooter(true);
+                } else {
+                    qsDialog.setContent('<div class="confirm">' + result.msg + '<\/div>');
+                }
+            });
+        }
+    }
 
     $(document).ready(function() {
         vtip();
         $(document).off("click",'.appoint_audit').on('click','.appoint_audit',function () {
             appointAudit($(this).data('param'));
         });
+        $(document).off("click",'.supplement').on('click','.supplement',function () {
+            supplement($(this).data('param'));
+        });
         $(document).off("click",'.fetch_word').on('click','.fetch_word',function () {
             var recruit_id = $(this).attr('data-rid'),appoint_id = $(this).attr('data-aid');
 

+ 2 - 0
routes/web.php

@@ -92,6 +92,8 @@ Route::group([
     $router->get('check_ticket','Web\Recruit\IndexController@check_ticket')->name('recruit.check_ticket');
     $router->get('face_ticket','Web\Recruit\IndexController@face_ticket')->name('recruit.face_ticket');
     $router->get('reexamine_ticket','Web\Recruit\IndexController@reexamine_ticket')->name('recruit.reexamine_ticket');
+    $router->get('material_supplement','Web\Recruit\IndexController@material_supplement')->name('recruit.material_supplement');
+    $router->post('save_supplement','Web\Recruit\IndexController@save_supplement')->name('recruit.save_supplement');
 
     $router->post('check_user_basic_info','Web\Recruit\IndexController@checkUserBasicInfo')->name('recruit.check_user_basic_info');
     //招考招聘