You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.2 KiB
PHP
76 lines
2.2 KiB
PHP
<?php
|
|
namespace App\Services\Admin\YeWu;
|
|
use Illuminate\Support\Facades\DB;
|
|
use App\Services\mH5\PersonService;
|
|
|
|
class HealthCheckupService
|
|
{
|
|
//创建体检记录
|
|
public function CreateRecord($CheckupInfo){
|
|
date_default_timezone_set('PRC');
|
|
$currentYear = date('Y');
|
|
$firstDay = date('Y-01-01', strtotime($currentYear));
|
|
$lastDay = date('Y-12-31', strtotime($currentYear));
|
|
|
|
//检查今年是否体检过
|
|
$s=app()->make(PersonService::class);
|
|
$check=$s->GetPersonRecode(['id_num'=>$CheckupInfo['id_card_num']]);
|
|
|
|
if(!$check['status']) return $check;
|
|
|
|
$status=false;
|
|
DB::beginTransaction(); // 开始事务
|
|
try {
|
|
// 执行数据库操作
|
|
if($CheckupInfo['type']==1){
|
|
//如果体检类型为健康证 更新预约记录表
|
|
$u= DB::table('appointment_record')
|
|
->where([
|
|
'id_card_num'=>$CheckupInfo['id_card_num'],
|
|
'org_id'=>$CheckupInfo['institution_id'],
|
|
'status'=>1
|
|
])->whereBetween('created_at',[$firstDay,$lastDay])->update(['status'=>2]);
|
|
|
|
|
|
}
|
|
$u2=DB::table('examination_records')->insert([
|
|
"id_card_num"=>$CheckupInfo['id_card_num'],
|
|
"type"=>$CheckupInfo['type'],
|
|
"institution_id"=>$CheckupInfo['institution_id']
|
|
]);
|
|
if($CheckupInfo['type']==1){
|
|
|
|
if($u==1 and $u2==true){
|
|
|
|
DB::commit(); // 提交事务
|
|
$status=true;
|
|
}else{
|
|
|
|
DB::rollBack(); // 回滚事务
|
|
}
|
|
}else{
|
|
if($u2){
|
|
|
|
DB::commit(); // 提交事务
|
|
$status=true;
|
|
}else{
|
|
DB::rollBack(); // 回滚事务
|
|
|
|
}
|
|
}
|
|
|
|
} catch (\Exception $e) {
|
|
DB::rollBack(); // 回滚事务
|
|
|
|
|
|
}
|
|
|
|
if($status){
|
|
return \Yz::Return(true,'ok',[]);
|
|
}else{
|
|
return \Yz::echoError1("操作失败");
|
|
}
|
|
|
|
}
|
|
}
|