From 07c6223869e6245a5fd197ec2c297abd2455c92d Mon Sep 17 00:00:00 2001 From: yanzai Date: Sun, 19 Jan 2025 23:07:34 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=99=E7=AC=AC=E4=B8=89=E6=96=B9=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../API/Internal/AppointmentController.php | 50 ++++++++ .../API/Internal/CheckUpController.php | 107 ++++++++++++++++++ .../Admin/YeWu/HealthCheckupService.php | 3 + Laravel/app/Services/OrgService.php | 20 ++++ Laravel/routes/api.php | 7 ++ 5 files changed, 187 insertions(+) create mode 100644 Laravel/app/Http/Controllers/API/Internal/AppointmentController.php create mode 100644 Laravel/app/Http/Controllers/API/Internal/CheckUpController.php create mode 100644 Laravel/app/Services/OrgService.php diff --git a/Laravel/app/Http/Controllers/API/Internal/AppointmentController.php b/Laravel/app/Http/Controllers/API/Internal/AppointmentController.php new file mode 100644 index 0000000..4e759c6 --- /dev/null +++ b/Laravel/app/Http/Controllers/API/Internal/AppointmentController.php @@ -0,0 +1,50 @@ +select('a.id','a.name','a.sex','a.tel','a.id_card_num','a.date','a.time','a.type','a.fee_type as free_type','a.doc_type_id','a.org_code as org_sn','a.org_name','a.doc_type_name','a.created_at','b.org_name') + ->join('medical_institution as b','a.org_code','=','b.sn') + ->where(['a.id_card_num'=>$sfz,'a.is_del'=>0,'a.org_code'=>$org_sn]) + ->whereBetween('a.created_at',[$firstDay,$lastDay])->orderBy('a.id','desc')->first(); + + if(!!$info){ + //查询相关图片 + $imgs=[]; + $imgs=DB::table('appointment_img')->where(['appointment_record_id'=>$info->id])->get(); + foreach ($imgs as $key=>$item){ + $imgs[$key]->imgurl=env('APP_URL').$item->imgurl; + } + $info->files=$imgs; + $info->id_card_num=request('id_card_num'); + $infos[]=$info; + } + return \Yz::Return(true,'查完完成',$infos); + } + } +} diff --git a/Laravel/app/Http/Controllers/API/Internal/CheckUpController.php b/Laravel/app/Http/Controllers/API/Internal/CheckUpController.php new file mode 100644 index 0000000..e906d38 --- /dev/null +++ b/Laravel/app/Http/Controllers/API/Internal/CheckUpController.php @@ -0,0 +1,107 @@ +all(), [ + 'checkup_info.type' => 'required|integer', + 'checkup_info.free_type' => 'required|integer', + 'checkup_info.name' => 'required|string', + 'checkup_info.sex' => 'required|integer', + 'checkup_info.tel' => 'required|string', + 'checkup_info.id_card_num' => 'required|string', + 'checkup_info.doc_type_id' => 'required|integer', + 'checkup_info.doc_type_name' => 'required|string', + 'checkup_info.org_sn' => 'required|string', + 'checkup_info.tijian_num' => 'required|string', + 'checkup_info.tijian_time' => 'required|date', + 'checkup_info.report_content' => 'required|array', + 'checkup_info.report_content.*.item_name' => 'required|string', + 'checkup_info.report_content.*.item_result' => 'required|string', + 'checkup_info.report_content.*.item_range' => 'required|array', + 'checkup_info.report_content.*.flag' => 'required|string', + 'checkup_info.report_content.*.item_unit' => 'required|string', + 'checkup_info.report_content.*.check_time' => 'required|date', + 'checkup_info.result_status' => 'required|integer', + 'checkup_info.shenhe_time' => 'required|date', + 'checkup_info.result_content' => 'required|string', + ]); + + if ($validator->fails()) { + return \Yz::echoError1( $validator->errors()); + } + $checkupInfo = $request->input('checkup_info'); + $checkupInfo['institution_sn']=$checkupInfo['org_sn']; + $checkupInfo['industry_type']=$checkupInfo['doc_type_name']; + $checkupInfo['register_time']=$checkupInfo['tijian_time']; + $checkupInfo['issue_time']=null; + $checkupInfo['expire_time']=null; + $s=app()->make(HealthCheckupService::class); + return $s->CreateRecord($checkupInfo); + + } + //给第三的接口,上传体检结果pdf文档 + public function UploadPdf(Request $request){ + // 验证请求数据 + $validator = Validator::make($request->all(), [ + 'tijian_num' => 'required|string', + 'org_sn' => 'required|string', + 'files' => 'required|array', + 'files.*' => 'required|file|mimes:pdf|max:2048',// 每个文件必须是PDF格式,且大小不超过2MB + ]); + + if ($validator->fails()) { + return \Yz::echoError1( $validator->errors()); + } + //查询体检号是否存在 + $service=new OrgService(); + $res=$service->GetOrgInfo($request->input('org_sn')); + if($res['status']!==true){ + return \Yz::echoError1($res['msg']); + } + //查询体检号是否存在 + $checkupInfo=DB::table('examination_records') + ->where([ + 'tijian_num'=>$request->input('tijian_num'), + 'institution_id'=>$res['data']->id, + ])->orderBy('id','desc')->first(); + if(!$checkupInfo){ + return \Yz::echoError1("体检号不存在"); + } + if ($request->hasFile('files') && $request->file('files')) { + $filesUrls=[]; + foreach ($request->file('files') as $file) { + // 检查文件是否有效 + if ($file->isValid()) { + // 定义存储路径 + $path = 'uploads/pdfs/' . date('Ymd'); // 根据当前日期创建子目录 + + // 保存文件到磁盘 + $filename = uniqid() . '_' . $file->getClientOriginalName(); + $file->storeAs($path, $filename, 'public'); // 使用 'public' 磁盘 + $filesUrls[]=env('APP_URL').'/storage/'.$path.'/'.$filename; + } + } + $u=DB::table('examination_records')->where('id',$checkupInfo->id)->update(['pdfs'=>json_encode($filesUrls,JSON_UNESCAPED_UNICODE)]); + if(!$u){ + return \Yz::echoError1("上传文件失败"); + } + return \Yz::Return(true,'上传成功',[]); + } + + return \Yz::echoError1("上传文件失败"); + } + +} diff --git a/Laravel/app/Services/Admin/YeWu/HealthCheckupService.php b/Laravel/app/Services/Admin/YeWu/HealthCheckupService.php index 576a7d4..a9d987e 100644 --- a/Laravel/app/Services/Admin/YeWu/HealthCheckupService.php +++ b/Laravel/app/Services/Admin/YeWu/HealthCheckupService.php @@ -110,6 +110,9 @@ class HealthCheckupService if( $u2>0){ foreach ($CheckupInfo['report_content'] as $item){ + if(isset($item['item_range']) and is_array($item['item_range'])){ + $item['item_range']=json_encode($item['item_range'],JSON_UNESCAPED_UNICODE); + } $item['examination_id']=$u2; $item['tijian_num']=$CheckupInfo['tijian_num']; DB::table('report_result_item')->insert($item); diff --git a/Laravel/app/Services/OrgService.php b/Laravel/app/Services/OrgService.php new file mode 100644 index 0000000..f9b2a86 --- /dev/null +++ b/Laravel/app/Services/OrgService.php @@ -0,0 +1,20 @@ +where('sn',$org_sn)->get(); + if(count($orgInfo)==0){ + return ['status'=>false,'msg'=>'机构不存在']; + } + if(count($orgInfo)<>1){ + return ['status'=>false,'msg'=>'机构编码异常']; + } + return ['status'=>true,'msg'=>'','data'=>$orgInfo[0]]; + + } +} diff --git a/Laravel/routes/api.php b/Laravel/routes/api.php index ee17a1d..6b13923 100644 --- a/Laravel/routes/api.php +++ b/Laravel/routes/api.php @@ -103,6 +103,13 @@ Route::group(['middleware'=>['check.sign','log'],'prefix'=>'v1'],function () { Route::post('Encrypt','App\Http\Controllers\API\Internal\HsmController@Encrypt');//加密 }); +//给第三方非思信的接口 +//对外接口 +Route::group(['middleware'=>['check.sign','log'],'prefix'=>'s1'],function () { + Route::post('GetAppointmentRecord','App\Http\Controllers\API\Internal\AppointmentController@GetAppointmentRecord');//获取预约记录 + Route::post('CreateCheckupRecord','App\Http\Controllers\API\Internal\CheckUpController@CreateCheckupRecord');//获取预约记录 + Route::post('UploadPdf','App\Http\Controllers\API\Internal\CheckUpController@UploadPdf');//获取预约记录 +}); Route::post('test','App\Http\Controllers\API\Admin\LoginController@test');