|
|
<?php
|
|
|
|
|
|
namespace App\Http\Controllers\API\Internal;
|
|
|
|
|
|
use App\Http\Controllers\Controller;
|
|
|
use App\Services\Admin\YeWu\HealthCheckupService;
|
|
|
use App\Services\OrgService;
|
|
|
use Illuminate\Http\Request;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
use Illuminate\Support\Facades\Log;
|
|
|
use Illuminate\Support\Facades\Validator;
|
|
|
|
|
|
class CheckUpController extends Controller
|
|
|
{
|
|
|
//给第三的接口,创建体检记录
|
|
|
public function CreateCheckupRecord(Request $request){
|
|
|
// 验证请求数据
|
|
|
$validator = Validator::make($request->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("上传文件失败");
|
|
|
}
|
|
|
|
|
|
}
|